diff options
author | Martin LUNDHOLM <martin.xa.lundholm@stericsson.com> | 2010-08-23 17:31:29 +0200 |
---|---|---|
committer | Michael BRANDT <michael.brandt@stericsson.com> | 2010-08-30 19:39:16 +0200 |
commit | 3a5b27b58258ff61dfae3167bc46fed0146ddffd (patch) | |
tree | f185f10ccb07c693998340343afc4a680949aea7 /board/st/u8500/mmc_utils.c | |
parent | 6e7432129841a6177b097c5d2388c6aa9ed257c3 (diff) |
U-boot: MMC update.
MMC has been updated with several improvements. Primarily MMC
performance has been improved by using assembler code for low
level FIFO handling. Also some MMC functionality has been added,
e.g. support for DDR and reliable write.
Data and command delay times were incremented, otherwise hangups and
timeouts were observed.
Tested on HREF+ 1.1 V21 and HREF+ 1.1 V32 (Micron PoP).
Following WP depends on this change (more reliable SD card write
support):
ST-Ericsson ID: WP264488
Change-Id: Ic92abffe1640aa9375b8d43a6b8522ca8296a368
Reviewed-on: http://gerrit.lud.stericsson.com/gerrit/4056
Reviewed-by: Michael BRANDT <michael.brandt@stericsson.com>
Tested-by: Michael BRANDT <michael.brandt@stericsson.com>
Diffstat (limited to 'board/st/u8500/mmc_utils.c')
-rw-r--r-- | board/st/u8500/mmc_utils.c | 14 |
1 files changed, 12 insertions, 2 deletions
diff --git a/board/st/u8500/mmc_utils.c b/board/st/u8500/mmc_utils.c index af5f0475d..b630e8adb 100644 --- a/board/st/u8500/mmc_utils.c +++ b/board/st/u8500/mmc_utils.c @@ -66,12 +66,12 @@ static struct partition partitions_v1[] = { [0] = PART(0x83, 0x000A0000, 0x00004000), /* Kernel */ [1] = PART(0x83, 0x000A4000, 0x00080000), /* Root file system */ [2] = PART(0x83, 0x001FF800, 0x00000800), /* Modem parameters */ - [3] = {0}, + [3] = {0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, }; #undef PART -int write_partition_block(void) +int write_partition_block(cmd_tbl_t *cmdtp, int flag, int argc, char *argv[]) { int err; u32 offset = PIB_EMMC_ADDR; @@ -79,6 +79,11 @@ int write_partition_block(void) u8 emmc_existing_partition[512]; struct mmc *boot_dev = NULL; + (void) cmdtp; /* Parameter not used! */ + (void) flag; /* Parameter not used! */ + (void) argc; /* Parameter not used! */ + (void) argv; /* Parameter not used! */ + memset(mbr, 0, 0x1be); if (u8500_is_earlydrop()) memcpy(mbr + 0x1be, partitions_ed, sizeof(partitions_ed)); @@ -136,6 +141,11 @@ static int mmc_read_cmd_file(cmd_tbl_t *cmdtp, int flag, int argc, long sz; char mmc_cmdbuffer[1024]; + (void) cmdtp; /* Parameter not used! */ + (void) flag; /* Parameter not used! */ + (void) argc; /* Parameter not used! */ + (void) argv; /* Parameter not used! */ + sz = file_fat_read("command.txt", &mmc_cmdbuffer, sizeof(mmc_cmdbuffer) - 1); if (sz == -1) { |