mirror of
https://github.com/smaeul/u-boot.git
synced 2025-10-19 07:08:14 +01:00
arm: mvebu: Move get_boot_device() to cpu.c and make visible
Move the function get_boot_device() from spl.c to cpu.c. Make it visible, so that it may be used from other files. Signed-off-by: Marek Behún <marek.behun@nic.cz> Reviewed-by: Pali Rohár <pali@kernel.org> Reviewed-by: Stefan Roese <sr@denx.de>
This commit is contained in:
parent
167689897b
commit
dc595e3e45
@ -14,6 +14,7 @@
|
|||||||
#include <asm/pl310.h>
|
#include <asm/pl310.h>
|
||||||
#include <asm/arch/cpu.h>
|
#include <asm/arch/cpu.h>
|
||||||
#include <asm/arch/soc.h>
|
#include <asm/arch/soc.h>
|
||||||
|
#include <asm/spl.h>
|
||||||
#include <sdhci.h>
|
#include <sdhci.h>
|
||||||
|
|
||||||
#define DDR_BASE_CS_OFF(n) (0x0000 + ((n) << 3))
|
#define DDR_BASE_CS_OFF(n) (0x0000 + ((n) << 3))
|
||||||
@ -80,6 +81,65 @@ int mvebu_soc_family(void)
|
|||||||
return MVEBU_SOC_UNKNOWN;
|
return MVEBU_SOC_UNKNOWN;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
u32 get_boot_device(void)
|
||||||
|
{
|
||||||
|
u32 val;
|
||||||
|
u32 boot_device;
|
||||||
|
|
||||||
|
/*
|
||||||
|
* First check, if UART boot-mode is active. This can only
|
||||||
|
* be done, via the bootrom error register. Here the
|
||||||
|
* MSB marks if the UART mode is active.
|
||||||
|
*/
|
||||||
|
val = readl(CONFIG_BOOTROM_ERR_REG);
|
||||||
|
boot_device = (val & BOOTROM_ERR_MODE_MASK) >> BOOTROM_ERR_MODE_OFFS;
|
||||||
|
debug("BOOTROM_REG=0x%08x boot_device=0x%x\n", val, boot_device);
|
||||||
|
if (boot_device == BOOTROM_ERR_MODE_UART)
|
||||||
|
return BOOT_DEVICE_UART;
|
||||||
|
|
||||||
|
#ifdef CONFIG_ARMADA_38X
|
||||||
|
/*
|
||||||
|
* If the bootrom error code contains any other than zeros it's an
|
||||||
|
* error condition and the bootROM has fallen back to UART boot
|
||||||
|
*/
|
||||||
|
boot_device = (val & BOOTROM_ERR_CODE_MASK) >> BOOTROM_ERR_CODE_OFFS;
|
||||||
|
if (boot_device)
|
||||||
|
return BOOT_DEVICE_UART;
|
||||||
|
#endif
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Now check the SAR register for the strapped boot-device
|
||||||
|
*/
|
||||||
|
val = readl(CONFIG_SAR_REG); /* SAR - Sample At Reset */
|
||||||
|
boot_device = (val & BOOT_DEV_SEL_MASK) >> BOOT_DEV_SEL_OFFS;
|
||||||
|
debug("SAR_REG=0x%08x boot_device=0x%x\n", val, boot_device);
|
||||||
|
switch (boot_device) {
|
||||||
|
#ifdef BOOT_FROM_NAND
|
||||||
|
case BOOT_FROM_NAND:
|
||||||
|
return BOOT_DEVICE_NAND;
|
||||||
|
#endif
|
||||||
|
#ifdef BOOT_FROM_MMC
|
||||||
|
case BOOT_FROM_MMC:
|
||||||
|
case BOOT_FROM_MMC_ALT:
|
||||||
|
return BOOT_DEVICE_MMC1;
|
||||||
|
#endif
|
||||||
|
case BOOT_FROM_UART:
|
||||||
|
#ifdef BOOT_FROM_UART_ALT
|
||||||
|
case BOOT_FROM_UART_ALT:
|
||||||
|
#endif
|
||||||
|
return BOOT_DEVICE_UART;
|
||||||
|
#ifdef BOOT_FROM_SATA
|
||||||
|
case BOOT_FROM_SATA:
|
||||||
|
case BOOT_FROM_SATA_ALT:
|
||||||
|
return BOOT_DEVICE_SATA;
|
||||||
|
#endif
|
||||||
|
case BOOT_FROM_SPI:
|
||||||
|
return BOOT_DEVICE_SPI;
|
||||||
|
default:
|
||||||
|
return BOOT_DEVICE_BOOTROM;
|
||||||
|
};
|
||||||
|
}
|
||||||
|
|
||||||
#if defined(CONFIG_DISPLAY_CPUINFO)
|
#if defined(CONFIG_DISPLAY_CPUINFO)
|
||||||
|
|
||||||
#if defined(CONFIG_ARMADA_375)
|
#if defined(CONFIG_ARMADA_375)
|
||||||
|
@ -148,6 +148,8 @@ void __noreturn return_to_bootrom(void);
|
|||||||
int mv_sdh_init(unsigned long regbase, u32 max_clk, u32 min_clk, u32 quirks);
|
int mv_sdh_init(unsigned long regbase, u32 max_clk, u32 min_clk, u32 quirks);
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
u32 get_boot_device(void);
|
||||||
|
|
||||||
void get_sar_freq(struct sar_freq_modes *sar_freq);
|
void get_sar_freq(struct sar_freq_modes *sar_freq);
|
||||||
|
|
||||||
/*
|
/*
|
||||||
|
@ -171,74 +171,6 @@ int spl_parse_board_header(struct spl_image_info *spl_image,
|
|||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
static u32 get_boot_device(void)
|
|
||||||
{
|
|
||||||
u32 val;
|
|
||||||
u32 boot_device;
|
|
||||||
|
|
||||||
/*
|
|
||||||
* First check, if UART boot-mode is active. This can only
|
|
||||||
* be done, via the bootrom error register. Here the
|
|
||||||
* MSB marks if the UART mode is active.
|
|
||||||
*/
|
|
||||||
val = readl(CONFIG_BOOTROM_ERR_REG);
|
|
||||||
boot_device = (val & BOOTROM_ERR_MODE_MASK) >> BOOTROM_ERR_MODE_OFFS;
|
|
||||||
debug("BOOTROM_REG=0x%08x boot_device=0x%x\n", val, boot_device);
|
|
||||||
if (boot_device == BOOTROM_ERR_MODE_UART)
|
|
||||||
return BOOT_DEVICE_UART;
|
|
||||||
|
|
||||||
#ifdef CONFIG_ARMADA_38X
|
|
||||||
/*
|
|
||||||
* If the bootrom error code contains any other than zeros it's an
|
|
||||||
* error condition and the bootROM has fallen back to UART boot
|
|
||||||
*/
|
|
||||||
boot_device = (val & BOOTROM_ERR_CODE_MASK) >> BOOTROM_ERR_CODE_OFFS;
|
|
||||||
if (boot_device)
|
|
||||||
return BOOT_DEVICE_UART;
|
|
||||||
#endif
|
|
||||||
|
|
||||||
/*
|
|
||||||
* Now check the SAR register for the strapped boot-device
|
|
||||||
*/
|
|
||||||
val = readl(CONFIG_SAR_REG); /* SAR - Sample At Reset */
|
|
||||||
boot_device = (val & BOOT_DEV_SEL_MASK) >> BOOT_DEV_SEL_OFFS;
|
|
||||||
debug("SAR_REG=0x%08x boot_device=0x%x\n", val, boot_device);
|
|
||||||
switch (boot_device) {
|
|
||||||
#ifdef BOOT_FROM_NAND
|
|
||||||
case BOOT_FROM_NAND:
|
|
||||||
return BOOT_DEVICE_NAND;
|
|
||||||
#endif
|
|
||||||
#ifdef BOOT_FROM_MMC
|
|
||||||
case BOOT_FROM_MMC:
|
|
||||||
case BOOT_FROM_MMC_ALT:
|
|
||||||
return BOOT_DEVICE_MMC1;
|
|
||||||
#endif
|
|
||||||
case BOOT_FROM_UART:
|
|
||||||
#ifdef BOOT_FROM_UART_ALT
|
|
||||||
case BOOT_FROM_UART_ALT:
|
|
||||||
#endif
|
|
||||||
return BOOT_DEVICE_UART;
|
|
||||||
#ifdef BOOT_FROM_SATA
|
|
||||||
case BOOT_FROM_SATA:
|
|
||||||
case BOOT_FROM_SATA_ALT:
|
|
||||||
return BOOT_DEVICE_SATA;
|
|
||||||
#endif
|
|
||||||
case BOOT_FROM_SPI:
|
|
||||||
return BOOT_DEVICE_SPI;
|
|
||||||
default:
|
|
||||||
return BOOT_DEVICE_BOOTROM;
|
|
||||||
};
|
|
||||||
}
|
|
||||||
|
|
||||||
#else
|
|
||||||
|
|
||||||
static u32 get_boot_device(void)
|
|
||||||
{
|
|
||||||
return BOOT_DEVICE_BOOTROM;
|
|
||||||
}
|
|
||||||
|
|
||||||
#endif
|
|
||||||
|
|
||||||
u32 spl_boot_device(void)
|
u32 spl_boot_device(void)
|
||||||
{
|
{
|
||||||
u32 boot_device = get_boot_device();
|
u32 boot_device = get_boot_device();
|
||||||
@ -285,6 +217,15 @@ u32 spl_boot_device(void)
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#else
|
||||||
|
|
||||||
|
u32 spl_boot_device(void)
|
||||||
|
{
|
||||||
|
return BOOT_DEVICE_BOOTROM;
|
||||||
|
}
|
||||||
|
|
||||||
|
#endif
|
||||||
|
|
||||||
int board_return_to_bootrom(struct spl_image_info *spl_image,
|
int board_return_to_bootrom(struct spl_image_info *spl_image,
|
||||||
struct spl_boot_device *bootdev)
|
struct spl_boot_device *bootdev)
|
||||||
{
|
{
|
||||||
|
Loading…
x
Reference in New Issue
Block a user