diff options
| author | Tom Rini <trini@ti.com> | 2012-08-14 10:25:15 -0700 | 
|---|---|---|
| committer | Tom Rini <trini@ti.com> | 2012-09-27 09:49:58 -0700 | 
| commit | f0881250f9429a5c88e39e90c2d7100b0e10f7b9 (patch) | |
| tree | 829a5278080546333a565de20d86afb9e6d6ba3d | |
| parent | 55cdbb8d4e8508dcdb95400f6dfcb928220ffc70 (diff) | |
| download | olio-uboot-2014.01-f0881250f9429a5c88e39e90c2d7100b0e10f7b9.tar.xz olio-uboot-2014.01-f0881250f9429a5c88e39e90c2d7100b0e10f7b9.zip | |
ARM: SPL: Make spl_mmc.c more generic
Move the default omap/related-centric board_mmc_init to
arch/arm/cpu/armv7/omap-common/boot-common.c and move the type defines
to <asm/spl.h>.  Also use mmc->read_bl_len rather than MMCSD_SECTOR_SIZE
Signed-off-by: Tom Rini <trini@ti.com>
| -rw-r--r-- | arch/arm/cpu/armv7/omap-common/boot-common.c | 16 | ||||
| -rw-r--r-- | arch/arm/cpu/armv7/omap-common/spl_mmc.c | 23 | ||||
| -rw-r--r-- | arch/arm/cpu/armv7/omap3/board.c | 15 | ||||
| -rw-r--r-- | arch/arm/include/asm/omap_common.h | 5 | ||||
| -rw-r--r-- | arch/arm/include/asm/spl.h | 5 | 
5 files changed, 38 insertions, 26 deletions
| diff --git a/arch/arm/cpu/armv7/omap-common/boot-common.c b/arch/arm/cpu/armv7/omap-common/boot-common.c index 53568acf3..3406cfbbe 100644 --- a/arch/arm/cpu/armv7/omap-common/boot-common.c +++ b/arch/arm/cpu/armv7/omap-common/boot-common.c @@ -17,8 +17,10 @@   */  #include <common.h> +#include <asm/spl.h>  #include <asm/omap_common.h>  #include <asm/arch/omap.h> +#include <asm/arch/mmc_host_def.h>  /*   * This is used to verify if the configuration header @@ -46,4 +48,18 @@ u32 spl_boot_mode(void)  {  	return omap_bootmode;  } + +int board_mmc_init(bd_t *bis) +{ +	switch (spl_boot_device()) { +	case BOOT_DEVICE_MMC1: +		omap_mmc_init(0, 0, 0); +		break; +	case BOOT_DEVICE_MMC2: +	case BOOT_DEVICE_MMC2_2: +		omap_mmc_init(1, 0, 0); +		break; +	} +	return 0; +}  #endif diff --git a/arch/arm/cpu/armv7/omap-common/spl_mmc.c b/arch/arm/cpu/armv7/omap-common/spl_mmc.c index fe44538bf..fdecf94c2 100644 --- a/arch/arm/cpu/armv7/omap-common/spl_mmc.c +++ b/arch/arm/cpu/armv7/omap-common/spl_mmc.c @@ -26,31 +26,12 @@  #include <asm/spl.h>  #include <asm/u-boot.h>  #include <asm/utils.h> -#include <asm/arch/sys_proto.h>  #include <mmc.h>  #include <fat.h>  #include <version.h> -#include <asm/omap_common.h> -#include <asm/arch/mmc_host_def.h>  DECLARE_GLOBAL_DATA_PTR; -#ifdef CONFIG_GENERIC_MMC -int board_mmc_init(bd_t *bis) -{ -	switch (spl_boot_device()) { -	case BOOT_DEVICE_MMC1: -		omap_mmc_init(0, 0, 0); -		break; -	case BOOT_DEVICE_MMC2: -	case BOOT_DEVICE_MMC2_2: -		omap_mmc_init(1, 0, 0); -		break; -	} -	return 0; -} -#endif -  static void mmc_load_image_raw(struct mmc *mmc)  {  	u32 image_size_sectors, err; @@ -70,8 +51,8 @@ static void mmc_load_image_raw(struct mmc *mmc)  	spl_parse_image_header(header);  	/* convert size to sectors - round up */ -	image_size_sectors = (spl_image.size + MMCSD_SECTOR_SIZE - 1) / -				MMCSD_SECTOR_SIZE; +	image_size_sectors = (spl_image.size + mmc->read_bl_len - 1) / +				mmc->read_bl_len;  	/* Read the header too to avoid extra memcpy */  	err = mmc->block_dev.block_read(0, diff --git a/arch/arm/cpu/armv7/omap3/board.c b/arch/arm/cpu/armv7/omap3/board.c index 45976f90e..3d74f09b0 100644 --- a/arch/arm/cpu/armv7/omap3/board.c +++ b/arch/arm/cpu/armv7/omap3/board.c @@ -41,6 +41,7 @@  #include <asm/arch/gpio.h>  #include <asm/spl.h>  #include <asm/omap_common.h> +#include <asm/arch/mmc_host_def.h>  #include <i2c.h>  #include <linux/compiler.h> @@ -89,6 +90,20 @@ u32 spl_boot_device(void)  	return omap3_boot_device;  } +int board_mmc_init(bd_t *bis) +{ +	switch (spl_boot_device()) { +	case BOOT_DEVICE_MMC1: +		omap_mmc_init(0, 0, 0); +		break; +	case BOOT_DEVICE_MMC2: +	case BOOT_DEVICE_MMC2_2: +		omap_mmc_init(1, 0, 0); +		break; +	} +	return 0; +} +  void spl_board_init(void)  {  #ifdef CONFIG_SPL_I2C_SUPPORT diff --git a/arch/arm/include/asm/omap_common.h b/arch/arm/include/asm/omap_common.h index 775ab6c82..2a40b898e 100644 --- a/arch/arm/include/asm/omap_common.h +++ b/arch/arm/include/asm/omap_common.h @@ -34,11 +34,6 @@  #define OMAP_INIT_CONTEXT_UBOOT_AFTER_SPL	2  #define OMAP_INIT_CONTEXT_UBOOT_AFTER_CH	3 -/* Boot type */ -#define	MMCSD_MODE_UNDEFINED	0 -#define MMCSD_MODE_RAW		1 -#define MMCSD_MODE_FAT		2 -  static inline u32 omap_revision(void)  {  	extern u32 *const omap_si_rev; diff --git a/arch/arm/include/asm/spl.h b/arch/arm/include/asm/spl.h index 19e6c5050..fdb78b51e 100644 --- a/arch/arm/include/asm/spl.h +++ b/arch/arm/include/asm/spl.h @@ -26,6 +26,11 @@  /* Platform-specific defines */  #include <asm/arch/spl.h> +/* Boot type */ +#define MMCSD_MODE_UNDEFINED	0 +#define MMCSD_MODE_RAW		1 +#define MMCSD_MODE_FAT		2 +  struct spl_image_info {  	const char *name;  	u8 os; |