common: Pass the boot device into spl_boot_mode()
The SPL code already knows which boot device it calls the spl_boot_mode() on, so pass that information into the function. This allows the code of spl_boot_mode() avoid invoking spl_boot_device() again, but it also lets board_boot_order() correctly alter the behavior of the boot process. The later one is important, since in certain cases, it is desired that spl_boot_device() return value be overriden using board_boot_order(). Signed-off-by: Marek Vasut <marex@denx.de> Cc: Andreas Bießmann <andreas.devel@googlemail.com> Cc: Albert Aribaud <albert.u.boot@aribaud.net> Cc: Tom Rini <trini@konsulko.com> Reviewed-by: Andreas Bießmann <andreas@biessmann.org> [add newly introduced zynq variant] Signed-aff-by: Andreas Bießmann <andreas@biessmann.org>
This commit is contained in:
		
							parent
							
								
									4141e85bcd
								
							
						
					
					
						commit
						2b1cdafa9f
					
				|  | @ -526,7 +526,7 @@ u32 spl_boot_device(void) | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
| #ifdef CONFIG_SPL_BUILD | #ifdef CONFIG_SPL_BUILD | ||||||
| u32 spl_boot_mode(void) | u32 spl_boot_mode(const u32 boot_device) | ||||||
| { | { | ||||||
| 	switch (spl_boot_device()) { | 	switch (spl_boot_device()) { | ||||||
| 	case BOOT_DEVICE_MMC1: | 	case BOOT_DEVICE_MMC1: | ||||||
|  |  | ||||||
|  | @ -15,7 +15,7 @@ u32 spl_boot_device(void) | ||||||
| 	return BOOT_DEVICE_NAND; | 	return BOOT_DEVICE_NAND; | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
| u32 spl_boot_mode(void) | u32 spl_boot_mode(const u32 boot_device) | ||||||
| { | { | ||||||
| 	switch (spl_boot_device()) { | 	switch (spl_boot_device()) { | ||||||
| 	case BOOT_DEVICE_MMC1: | 	case BOOT_DEVICE_MMC1: | ||||||
|  |  | ||||||
|  | @ -166,7 +166,7 @@ u32 spl_boot_device(void) | ||||||
| 	return gd->arch.omap_boot_device; | 	return gd->arch.omap_boot_device; | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
| u32 spl_boot_mode(void) | u32 spl_boot_mode(const u32 boot_device) | ||||||
| { | { | ||||||
| 	return gd->arch.omap_boot_mode; | 	return gd->arch.omap_boot_mode; | ||||||
| } | } | ||||||
|  |  | ||||||
|  | @ -24,7 +24,7 @@ u32 spl_boot_device(void) | ||||||
| 	return 0; | 	return 0; | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
| u32 spl_boot_mode(void) | u32 spl_boot_mode(const u32 boot_device) | ||||||
| { | { | ||||||
| 	switch (spl_boot_device()) { | 	switch (spl_boot_device()) { | ||||||
| 	case BOOT_DEVICE_MMC1: | 	case BOOT_DEVICE_MMC1: | ||||||
|  |  | ||||||
|  | @ -68,7 +68,7 @@ u32 spl_boot_device(void) | ||||||
| 	return 0; | 	return 0; | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
| u32 spl_boot_mode(void) | u32 spl_boot_mode(const u32 boot_device) | ||||||
| { | { | ||||||
| 	switch (spl_boot_device()) { | 	switch (spl_boot_device()) { | ||||||
| 	case BOOT_DEVICE_RAM: | 	case BOOT_DEVICE_RAM: | ||||||
|  |  | ||||||
|  | @ -70,7 +70,7 @@ u32 spl_boot_device(void) | ||||||
| 
 | 
 | ||||||
| #if defined(CONFIG_SPL_MMC_SUPPORT) | #if defined(CONFIG_SPL_MMC_SUPPORT) | ||||||
| /* called from spl_mmc to see type of boot mode for storage (RAW or FAT) */ | /* called from spl_mmc to see type of boot mode for storage (RAW or FAT) */ | ||||||
| u32 spl_boot_mode(void) | u32 spl_boot_mode(const u32 boot_device) | ||||||
| { | { | ||||||
| 	switch (spl_boot_device()) { | 	switch (spl_boot_device()) { | ||||||
| 	/* for MMC return either RAW or FAT mode */ | 	/* for MMC return either RAW or FAT mode */ | ||||||
|  |  | ||||||
|  | @ -75,7 +75,7 @@ u32 spl_boot_device(void) | ||||||
| } | } | ||||||
| #endif | #endif | ||||||
| 
 | 
 | ||||||
| u32 spl_boot_mode(void) | u32 spl_boot_mode(const u32 boot_device) | ||||||
| { | { | ||||||
| 	switch (spl_boot_device()) { | 	switch (spl_boot_device()) { | ||||||
| #ifdef CONFIG_SYS_USE_MMC | #ifdef CONFIG_SYS_USE_MMC | ||||||
|  |  | ||||||
|  | @ -45,7 +45,7 @@ void spl_board_init(void) | ||||||
| 	preloader_console_init(); | 	preloader_console_init(); | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
| u32 spl_boot_mode(void) | u32 spl_boot_mode(const u32 boot_device) | ||||||
| { | { | ||||||
| 	return MMCSD_MODE_RAW; | 	return MMCSD_MODE_RAW; | ||||||
| } | } | ||||||
|  |  | ||||||
|  | @ -57,7 +57,7 @@ u32 spl_boot_device(void) | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
| #ifdef CONFIG_SPL_MMC_SUPPORT | #ifdef CONFIG_SPL_MMC_SUPPORT | ||||||
| u32 spl_boot_mode(void) | u32 spl_boot_mode(const u32 boot_device) | ||||||
| { | { | ||||||
| 	return MMCSD_MODE_RAW; | 	return MMCSD_MODE_RAW; | ||||||
| } | } | ||||||
|  |  | ||||||
|  | @ -66,7 +66,7 @@ fallback: | ||||||
| 	return BOOT_DEVICE_MMC1; | 	return BOOT_DEVICE_MMC1; | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
| u32 spl_boot_mode(void) | u32 spl_boot_mode(const u32 boot_device) | ||||||
| { | { | ||||||
| 	return MMCSD_MODE_RAW; | 	return MMCSD_MODE_RAW; | ||||||
| } | } | ||||||
|  |  | ||||||
|  | @ -58,7 +58,7 @@ u32 spl_boot_device(void) | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
| #ifdef CONFIG_SPL_MMC_SUPPORT | #ifdef CONFIG_SPL_MMC_SUPPORT | ||||||
| u32 spl_boot_mode(void) | u32 spl_boot_mode(const u32 boot_device) | ||||||
| { | { | ||||||
| #if defined(CONFIG_SPL_FAT_SUPPORT) || defined(CONFIG_SPL_EXT_SUPPORT) | #if defined(CONFIG_SPL_FAT_SUPPORT) || defined(CONFIG_SPL_EXT_SUPPORT) | ||||||
| 	return MMCSD_MODE_FS; | 	return MMCSD_MODE_FS; | ||||||
|  |  | ||||||
|  | @ -257,7 +257,7 @@ void spl_board_announce_boot_device(void) | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
| /* No confirmation data available in SPL yet. Hardcode bootmode */ | /* No confirmation data available in SPL yet. Hardcode bootmode */ | ||||||
| u32 spl_boot_mode(void) | u32 spl_boot_mode(const u32 boot_device) | ||||||
| { | { | ||||||
| 	return MMCSD_MODE_RAW; | 	return MMCSD_MODE_RAW; | ||||||
| } | } | ||||||
|  |  | ||||||
|  | @ -77,7 +77,7 @@ u32 spl_boot_device(void) | ||||||
| 	return mode; | 	return mode; | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
| u32 spl_boot_mode(void) | u32 spl_boot_mode(const u32 boot_device) | ||||||
| { | { | ||||||
| 	struct mmc *mmc; | 	struct mmc *mmc; | ||||||
| 
 | 
 | ||||||
|  |  | ||||||
|  | @ -69,7 +69,7 @@ u32 spl_boot_device(void) | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
| #ifdef CONFIG_SPL_MMC_SUPPORT | #ifdef CONFIG_SPL_MMC_SUPPORT | ||||||
| u32 spl_boot_mode(void) | u32 spl_boot_mode(const u32 boot_device) | ||||||
| { | { | ||||||
| 	return MMCSD_MODE_FS; | 	return MMCSD_MODE_FS; | ||||||
| } | } | ||||||
|  |  | ||||||
|  | @ -286,7 +286,7 @@ int spl_mmc_load_image(u32 boot_device) | ||||||
| 		return err; | 		return err; | ||||||
| 	} | 	} | ||||||
| 
 | 
 | ||||||
| 	boot_mode = spl_boot_mode(); | 	boot_mode = spl_boot_mode(boot_device); | ||||||
| 	err = -EINVAL; | 	err = -EINVAL; | ||||||
| 	switch (boot_mode) { | 	switch (boot_mode) { | ||||||
| 	case MMCSD_MODE_EMMCBOOT: | 	case MMCSD_MODE_EMMCBOOT: | ||||||
|  |  | ||||||
|  | @ -66,7 +66,7 @@ extern struct spl_image_info spl_image; | ||||||
| /* SPL common functions */ | /* SPL common functions */ | ||||||
| void preloader_console_init(void); | void preloader_console_init(void); | ||||||
| u32 spl_boot_device(void); | u32 spl_boot_device(void); | ||||||
| u32 spl_boot_mode(void); | u32 spl_boot_mode(const u32 boot_device); | ||||||
| void spl_set_header_raw_uboot(void); | void spl_set_header_raw_uboot(void); | ||||||
| int spl_parse_image_header(const struct image_header *header); | int spl_parse_image_header(const struct image_header *header); | ||||||
| void spl_board_prepare_for_linux(void); | void spl_board_prepare_for_linux(void); | ||||||
|  |  | ||||||
		Loading…
	
		Reference in New Issue