8926f21ce1
This also fixes a few minor violations of the SD protocol, such as running the bus at high speed during the card identification sequence. The sdcard_init() routine now probes for SDHC cards so that later read requests can make needed adjustments between block and byte offsets based on card type. There is a new MCI_readblocks() function that takes block number and block count parameters instead of byte-offset values. Using this routine, boot loader code can load a kernel from any location on an SDHC or standard SD. The old MCI_read() interface remains unchanged so that existing customized boot loader code will still keep working without changes. Using this routine, boot loaders can load a kernel from anywhere in the first 4GB of an SDHC card (or of course any location on a standard SD card). A new sdcard_use4wire() routine allows boot loaders to request 4-bit transfers; it should be called after sdcard_init(). The sdcard_init() routine no longer assumes the hardware is 4-wire capable and by default sets things up for 1-bit transfers. (4-wire mode is unreliable on at91rm9200, works on later SoCs.) PR: 155894 Submitted by: me. years ago. |
||
---|---|---|
.. | ||
arm_init.S | ||
at91rm9200_lowlevel.c | ||
at91rm9200_lowlevel.h | ||
at91rm9200.h | ||
delay.c | ||
eeprom.c | ||
emac_init.c | ||
emac.c | ||
emac.h | ||
getc.c | ||
lib_AT91RM9200.h | ||
lib.h | ||
Makefile | ||
mci_device.h | ||
memcmp.c | ||
memcpy.c | ||
memset.c | ||
p_string.c | ||
printf.c | ||
putchar.c | ||
reset.c | ||
sd-card.c | ||
sd-card.h | ||
spi_flash.c | ||
spi_flash.h | ||
strcmp.c | ||
strcpy.c | ||
strcvt.c | ||
strlen.c | ||
tag_list.c | ||
tag_list.h | ||
xmodem.c |