xistor 910619de4c fix missing semicolon | 1 year ago | |
---|---|---|
.. | ||
Makefile | 5 years ago | |
Makefile.clang | 2 years ago | |
Makefile.gcc | 2 years ago | |
OLVASSEL.md | 6 years ago | |
README.md | 2 years ago | |
delays.c | 1 year ago | |
delays.h | 6 years ago | |
gpio.h | 6 years ago | |
kernel8.img | 4 years ago | |
link.ld | 6 years ago | |
main.c | 6 years ago | |
mbox.c | 6 years ago | |
mbox.h | 6 years ago | |
sd.c | 6 years ago | |
sd.h | 6 years ago | |
start.S | 3 years ago | |
uart.c | 6 years ago | |
uart.h | 6 years ago |
So far we have linked our data (pixmap, font) to the kernel image. It is time to read data from the SD card. For this tutorial we're implementing a real driver for read sector function.
Well, it would be nice to have a mailbox for reading and writing sectors, but there isn't. So we have to talk directly to the EMMC, which is tricky and boring. We have to handle all kinds of cards. But finally, we have two functions.
sd_init()
initialize EMMC for SD card read.
sd_readblock(lba,buffer,num)
read num blocks (sectors) from the SD card into buffer starting at sector lba.
We read a block after the bss segment in memory, and then we dump it to the console. The read function will display detailed information on the EMMC communication.