summaryrefslogtreecommitdiff
path: root/board/st/u8500/init_mmc.c
AgeCommit message (Collapse)Author
2010-08-11Replace MMC/SD driver to fit new framework.Ulf Hansson
IR265772: MMC driver does not detect SDHC cards. IR254201: Restructure MMC/SD driver for U8500 board according to the block device framework in mainline U-Boot. Changes to mmc framework: - Multi Block Read support in mmc framework. - Wrap Multi Block Write/Read to be able to adopt for large transaction. - Removed incorrect check in EXT CSD for high capacity MMC. - Corrected check for high capacity SD cards. - Set MMC buswidth to 8, prio of using 4. Known limitations/bugs in mmc framework: - High capacity MMC, will likely not get the correct density. - High speed is set, whether or not the host supports it or not. board/st/u8500/mmc_utils: IMPORTANT FOR DEVELOPERS: - Removed unessary U-Boot commands which is already supported in cmd_fat. - mmc_read_cmd_file: Read command.txt into bootcmd env from FAT FS in SD card. - write_partition_block: Writes the MBR if it is not already written. board/st/u8500/mmc_host[c.h]: - Implements the entire MMC/SD host driver for the PL180 block. - There is still room for optimization: Increase CLK-speed. Use high-speed for SD cards. Is GPIO setup correctly for both cards an eMMC. EarlyDrop support not fully tested. Dynamically turn on voltage/clocks to SD, not always. More... Note: - Increased read/write performance for eMMC, to around 5.4 MB/s for sequential read/write. Earlier measurements was 3.5 MB/s for read and 2.6 MB/s for write. ST-Ericsson ID: ER265772, CR267996, ER267993 Change-Id: I921102edbde761407ff5ad476d1bb99f5dc7a2ef Reviewed-on: http://gerrit.lud.stericsson.com/gerrit/2288 Reviewed-by: Michael BRANDT <michael.brandt@stericsson.com> Tested-by: Michael BRANDT <michael.brandt@stericsson.com> Reviewed-by: Martin LUNDHOLM <martin.xa.lundholm@stericsson.com> Tested-by: Martin LUNDHOLM <martin.xa.lundholm@stericsson.com> Reviewed-by: Mikael LARSSON <mikael.xt.larsson@stericsson.com> Tested-by: Mikael LARSSON <mikael.xt.larsson@stericsson.com>
2010-05-24Use proper copyright linesRabin Vincent
Signed-off-by: Rabin Vincent <rabin.vincent@stericsson.com> Change-Id: Ieec8e7940e7acdc88d7c17b12007f61841741325 Reviewed-on: http://gerrit.lud.stericsson.com/gerrit/390 Reviewed-by: Michael BRANDT <michael.brandt@stericsson.com> Reviewed-by: Jonas ABERG <jonas.aberg@stericsson.com> Tested-by: Jonas ABERG <jonas.aberg@stericsson.com>
2010-05-19HREF V1 updatesMichael Brandt
This patch is part of WP254081 which depends on WP252006. * Fixed I2C, use real timeouts instead of counter * Undefined CONFIG_BOOTTIME, since it as to be changed to new timer.c * Merged V1 patches from Bangalore The patches were merged manually, because of the differences of the U-Boot baseline (Bangalore U-Boot 1.3.1, Lund 2009.11). The original patches were created by Rabin Vincent <rabin.vincent@stericsson.com>. and were applied originally to Branches: blr_lsp, remotes/origin/blr_lsp Follows: qpppaaa_20100210_094651 0001-u8500-gpio-add-I2C0-altfun.patch 0002-u8500-use-correct-v1-macros.patch 0003-emmc-clean-up-paritioning.patch 0004-u8500-remove-incorrect-ram-settings.patch 0005-u8500-gpio-remove-unnecessary-ifdefs.patch 0006-u8500-add-ED-v1-detection-and-handle-eMMC-diff.patch 0008-u8500-mmc-don-t-disable-altfuns.patch 0009-u8500-gpio-remove-unused-defined.patch 0010-u8500-mmc-add-barrier-for-while-loop.patch 0011-u8500-mmc-handle-non-block-addressed-cards.patch 0012-u8500-mmc-remove-unused-gpio-settings-on-v1.patch 0013-u8500-emmc-build-fix.patch 0014-u8500-handle-v1-gpios-and-clocks.patch 0015-mmc-build-fix-for-block-addressing.patch 0016-u8500-add-clocks-and-hardware-files.patch 0017-u8500-enable-PRCUM-timers-reg-for-ED.patch 0018-u8500-handle-MTU-for-v1-ED.patch 0019-u8500-emmc-remove-unnecessary-GPIO-settings.patch 0020-u8500-remove-dead-code.patch 0021-u8500-add-working-MTU-timer.patch 0022-pl011-empty-rx-fifo-if-necessary.patch 0023-u8500-gpio-fix-cont-handling-in-altfunc.patch 0024-u8500-reduce-bootdelay-to-1-and-enable-zero-check.patch 0025-u8500-disable-forcing-of-verify-but-set-n-by-default.patch 0029-u8500-fix-some-gpio-settings.patch 0030-emmc-make-v1-paritioning-differences-explicit.patch Signed-off-by: Michael Brandt <Michael.Brandt@stericsson.com> Change-Id: I1106702e393c34f630e71f071e06c3952b0d3a1a Reviewed-on: http://gerrit.lud.stericsson.com/gerrit/182 Reviewed-by: Michael BRANDT <michael.brandt@stericsson.com> Tested-by: Jonas ABERG <jonas.aberg@stericsson.com> Reviewed-by: Jonas ABERG <jonas.aberg@stericsson.com>
2010-05-19General I2C refactoring and environment settings cleanupMichael Brandt
These are the patches for WP252006. There will be a follow-up patched for WP254081. Environment settings * board_id bootargs parameter from board_id environment var set in board_late_init(). * decreased bootdelay to 1 second * added check for keypress on bootdelay==0 * removed preboot command and introduced "run cmdfile" instead * changed rootfstype from ext2 to ext3 General I2C refactoring * include/configs/u8500.h: Enabled i2c command line commands. Changed environment settings to use board_id as set in board_late_init(). Added I2C address and configuration defines. * board/st/u8500/Makefile: Replaced i2c.o with u8500_i2c.o. * board/st/u8500/gpio.c, gpio.h: Added I2C busses to altfunc_table. * board/st/u8500/init_mmc.c: removed config_extended_gpio() and therefore I2C references. GPIOE settings are now in board_late_init(). * board/st/u8500/u8500.c: Removed I2C/SD gpio settings from addr,value array. board_late_init(): Determine and set board_id environment variable 0: mop500, 1: href500 Above boards have different GPIO expander chips which we can distinguish by the chip id (1 and 3). The board_id environment variable is needed for the Linux bootargs. Signed-off-by: Michael Brandt <Michael.Brandt@stericsson.com> Change-Id: I4c2cab28c1cb74692e0c72b2daa422e97787ff8d Reviewed-on: http://gerrit.lud.stericsson.com/gerrit/167 Reviewed-by: Michael BRANDT <michael.brandt@stericsson.com> Reviewed-by: Jonas ABERG <jonas.aberg@stericsson.com> Tested-by: Jonas ABERG <jonas.aberg@stericsson.com>
2010-01-07PACK3 changesMichael Brandt
applied PACK3 changes: * cpu/arm_cortexa9/start.S: reset register changed, but U-Boot reset command still does not work. * config.mk: build address changed to 0x05FC0000 * board/st/u8500/mmc.c: MBR change: descrease 4th partition size (userfs 2) from 0x00c0'0000 to 0x00b9'a000 sectors (6,442,450,944 to 6,228,541,440 bytes). * board\st\u8500\init_mmc.c: modify bootargs to set board_id to HREF or MOP. Is is an extremly ugly solution. It modifies the bootargs env variable directly (bootargs[9] = board_id;), instead of setting a additional environment variable board_id and use it in the bootargs envvar. * board/st/u8500/mmc.c: undocumented clock changes. * board/st/u8500/mmc_utils.c: new routine to switch to 4-bit interface. The switch is done in mmc_read_file(). It would make more sense to do so in mmc_init. * board/st/u8500/u8500.c: clock changes for HSI and I2C. I2C is now clocked by SOC1 PLL and runs with 24 MHz (depends on boot ROM SOC1 initialisation)
2009-11-23support eMMC and MMC as block devicesMichael Brandt
mmc init 0 will now initialise eMMC and mmc init 1 initialises MMC. They can now be used in subsequent fatload or ext2load commands. The numbering was choosing according to the Linux device numbering /dev/mmcblk0 (eMMC) and /dev/mmcblk1 (MMC).
2009-10-23re-enabled original readblock loop.Michael Brandt
2009-10-22new files for u8500 support.Michael Brandt