Quantcast
Channel: Linux Device Hacking - uBoot
Viewing all articles
Browse latest Browse all 902

Changing boot sequence for making stubborn SSD (bad firmware?) boot. (no replies)

$
0
0
Hi Bodhi!
It's me again, with that annoying Transcend SSD.
The problem is, that this SSD doesn't work reliably after the IDE reset. Sometimes it's working and some times it's timing out. This is not solved by increasing the time span between the ide resets, it seems just completely random.
So what I need is a boot sequence that repeats the ide reset until the SSD is in working condition.

As far as I understood, that's what
bootcmd_uenv=run uenv_load; if test $uenv_loaded -eq 1; then run uenv_import; fi; sleep 5
is doing already.

But of course there are consecutive ide resets in the general boot sequence, like for example in:
scan_disk=echo running scan_disk ...; scan_done=0; setenv scan_usb "usb start"; setenv scan_ide "ide reset";  setenv scan_mmc "mmc rescan"; for dev in $devices; do if test $scan_done -eq 0; then echo Scan device $dev; run scan_$dev; for disknum in $disks; do if test $scan_done -eq 0; then echo device $dev $disknum:1; if load $dev $disknum:1 $load_uimage_addr /boot/uImage 1; then scan_done=1; echo Found bootable drive on $dev $disknum; setenv device $disknum:1; setenv bootdev $dev; fi; fi; done; fi; done


And as the result of those additional ide resets is random for this SSD again, it will not work for booting from this SSD.

So I wonder, what the additional ide resets are actually needed for, while scanning for the boot drive. Shouldn't all connected devices be already available from the initial
 bootcmd_uenv 
on?


I now have the time for fiddling a bit again and I wanted to get this to work.

Thak you! :)

Viewing all articles
Browse latest Browse all 902

Trending Articles