mirror of
https://github.com/Fishwaldo/u-boot.git
synced 2025-04-01 03:51:31 +00:00
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>
This commit is contained in:
parent
55cdbb8d4e
commit
f0881250f9
5 changed files with 38 additions and 26 deletions
|
@ -17,8 +17,10 @@
|
||||||
*/
|
*/
|
||||||
|
|
||||||
#include <common.h>
|
#include <common.h>
|
||||||
|
#include <asm/spl.h>
|
||||||
#include <asm/omap_common.h>
|
#include <asm/omap_common.h>
|
||||||
#include <asm/arch/omap.h>
|
#include <asm/arch/omap.h>
|
||||||
|
#include <asm/arch/mmc_host_def.h>
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* This is used to verify if the configuration header
|
* This is used to verify if the configuration header
|
||||||
|
@ -46,4 +48,18 @@ u32 spl_boot_mode(void)
|
||||||
{
|
{
|
||||||
return omap_bootmode;
|
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
|
#endif
|
||||||
|
|
|
@ -26,31 +26,12 @@
|
||||||
#include <asm/spl.h>
|
#include <asm/spl.h>
|
||||||
#include <asm/u-boot.h>
|
#include <asm/u-boot.h>
|
||||||
#include <asm/utils.h>
|
#include <asm/utils.h>
|
||||||
#include <asm/arch/sys_proto.h>
|
|
||||||
#include <mmc.h>
|
#include <mmc.h>
|
||||||
#include <fat.h>
|
#include <fat.h>
|
||||||
#include <version.h>
|
#include <version.h>
|
||||||
#include <asm/omap_common.h>
|
|
||||||
#include <asm/arch/mmc_host_def.h>
|
|
||||||
|
|
||||||
DECLARE_GLOBAL_DATA_PTR;
|
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)
|
static void mmc_load_image_raw(struct mmc *mmc)
|
||||||
{
|
{
|
||||||
u32 image_size_sectors, err;
|
u32 image_size_sectors, err;
|
||||||
|
@ -70,8 +51,8 @@ static void mmc_load_image_raw(struct mmc *mmc)
|
||||||
spl_parse_image_header(header);
|
spl_parse_image_header(header);
|
||||||
|
|
||||||
/* convert size to sectors - round up */
|
/* convert size to sectors - round up */
|
||||||
image_size_sectors = (spl_image.size + MMCSD_SECTOR_SIZE - 1) /
|
image_size_sectors = (spl_image.size + mmc->read_bl_len - 1) /
|
||||||
MMCSD_SECTOR_SIZE;
|
mmc->read_bl_len;
|
||||||
|
|
||||||
/* Read the header too to avoid extra memcpy */
|
/* Read the header too to avoid extra memcpy */
|
||||||
err = mmc->block_dev.block_read(0,
|
err = mmc->block_dev.block_read(0,
|
||||||
|
|
|
@ -41,6 +41,7 @@
|
||||||
#include <asm/arch/gpio.h>
|
#include <asm/arch/gpio.h>
|
||||||
#include <asm/spl.h>
|
#include <asm/spl.h>
|
||||||
#include <asm/omap_common.h>
|
#include <asm/omap_common.h>
|
||||||
|
#include <asm/arch/mmc_host_def.h>
|
||||||
#include <i2c.h>
|
#include <i2c.h>
|
||||||
#include <linux/compiler.h>
|
#include <linux/compiler.h>
|
||||||
|
|
||||||
|
@ -89,6 +90,20 @@ u32 spl_boot_device(void)
|
||||||
return omap3_boot_device;
|
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)
|
void spl_board_init(void)
|
||||||
{
|
{
|
||||||
#ifdef CONFIG_SPL_I2C_SUPPORT
|
#ifdef CONFIG_SPL_I2C_SUPPORT
|
||||||
|
|
|
@ -34,11 +34,6 @@
|
||||||
#define OMAP_INIT_CONTEXT_UBOOT_AFTER_SPL 2
|
#define OMAP_INIT_CONTEXT_UBOOT_AFTER_SPL 2
|
||||||
#define OMAP_INIT_CONTEXT_UBOOT_AFTER_CH 3
|
#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)
|
static inline u32 omap_revision(void)
|
||||||
{
|
{
|
||||||
extern u32 *const omap_si_rev;
|
extern u32 *const omap_si_rev;
|
||||||
|
|
|
@ -26,6 +26,11 @@
|
||||||
/* Platform-specific defines */
|
/* Platform-specific defines */
|
||||||
#include <asm/arch/spl.h>
|
#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 {
|
struct spl_image_info {
|
||||||
const char *name;
|
const char *name;
|
||||||
u8 os;
|
u8 os;
|
||||||
|
|
Loading…
Add table
Reference in a new issue