-
Notifications
You must be signed in to change notification settings - Fork 66
Troubleshooting
There are two factors that can affect SD card detection during the boot sequence.
One is that the GPIO pins for powering the SD card slot and detecting the presence of a card are not set.
You can fix this by setting these pins in the environment.
You need to set at least the gpio_mmc_power
and gpio_mmc_cd
pins.
Another factor is that not every card is detected correctly. You can try different cards (different class, size, etc) to find the one that works.
This is most likely an extension of the above problem. If your camera cannot detect the SD card during boot, then none of these files can be accessed and processed by U-Boot.
Interrupt the boot process with Ctrl-C
and get into the boot shell.
Once in the shell, set the GPIO pin to power up MMC bus, and reinsert the card.
Make sure it is recognized correctly and you can access the files
gpio clear 48;
mmc rescan;
mmcinfo;
fatls mmc 0;
then install the firmware as follows
setenv baseaddr 0x82000000;
setenv flashsize 0x1000000;
mw.b ${baseaddr} 0xff ${flashsize};
fatload mmc 0:1 ${baseaddr} autoupdate-full.bin;
sf probe 0; sf erase 0x0 ${flashsize};
sf write ${baseaddr} 0x0 ${filesize};
reset
You will still need to set the correct environment for your hardware. Interrupt the boto process once again, set the GPIO pin for MMC, check the card is recognized
gpio clear 48;
mmc rescan;
mmcinfo;
fatls mmc 0;
and import the environment settings from the file on the card
fatload mmc 0 ${baseaddr} uEnv.txt;
env import -t ${baseaddr} ${filesize};
saveenv;
reset
Alternatively, import the enviroment settings from within Lunux:
sed 's/=/ /' /mnt/mmcblk0p1/uEnv.txt > env.txt
fw_setenv -s env.txt