We've gotten the second SD controller working on Zedboard and Zybo, using PMOD SD connected via either the MIO PMOD E connector or EMIO and one of the other PMOD connectors. We've tested it with SD cards and with an Atheros WiFi card.
There are a number of changes to make in order to get it working.
1) Configure MIO to connect the second controller to the MIO pins. Or Configure MIO so that the second controller is connected to none of the MIO pins so that it can be connected via EMIO and programmable logic.
We did this in clearreg.c, which is run by our FSBL before it jumps to the entry point of zImage.
2) If attaching the SD card slot to MIO, use fly wires to swizzle the signals onto the right pins.
If using EMIO, add the connection of the appropriate pins to the SD controller in the programmable logic.
3) The controller cannot run at full speed with fly wires or our EMIO logic, so added code to reduce the clock frequency used by the controller.
4) We program the logic after booting Linux, so we added a second SD devuce driver that we could load as a module after we programmed the logic. It reads the configuration from DTS just like the xilinx one.
It would be nice to have a PMOD SD whose pinout matches Zedboard and Zybo so that MIO could be used without fly wires. It would be much tidier and would run faster.
Question
jamey.hicks
We've gotten the second SD controller working on Zedboard and Zybo, using PMOD SD connected via either the MIO PMOD E connector or EMIO and one of the other PMOD connectors. We've tested it with SD cards and with an Atheros WiFi card.
There are a number of changes to make in order to get it working.
1) Configure MIO to connect the second controller to the MIO pins. Or Configure MIO so that the second controller is connected to none of the MIO pins so that it can be connected via EMIO and programmable logic.
We did this in clearreg.c, which is run by our FSBL before it jumps to the entry point of zImage.
https://github.com/cambridgehackers/zynq-boot/blob/master/clearreg.c
2) If attaching the SD card slot to MIO, use fly wires to swizzle the signals onto the right pins.
If using EMIO, add the connection of the appropriate pins to the SD controller in the programmable logic.
3) The controller cannot run at full speed with fly wires or our EMIO logic, so added code to reduce the clock frequency used by the controller.
4) We program the logic after booting Linux, so we added a second SD devuce driver that we could load as a module after we programmed the logic. It reads the configuration from DTS just like the xilinx one.
It would be nice to have a PMOD SD whose pinout matches Zedboard and Zybo so that MIO could be used without fly wires. It would be much tidier and would run faster.
Link to comment
Share on other sites
1 answer to this question
Recommended Posts
Archived
This topic is now archived and is closed to further replies.