Booting from large microSD (SDHC) [success]
Marian Flor
deichkind.08 at schweiz.eu
Sat Nov 8 12:47:05 CET 2008
Hello list members,
here another FR success story: Booting and usage of a large 16GB SDHC
works!
My configuration and recipe:
- QtExtend on flash
- Debian on microSD (ext2+ext2) [1]
- u-boot daily (8 Nov 2008) from [2]
- Applied configure-uboot.sh from [3]
- Kernel for Debian from [4] (but the kernel should not matter)
- microSD card:
Vendor: SanDisk
Model: SDSDQ-016G-E11M
Size: 16GB
Speed: Class2
With this configuration I encountered first this error (output from
minicom, /dev/ttyACM0) when I tried to boot directly (i.e. just pressed
"power" on the FR):
--- 8< --- snip ---
Card Type: SD 2.0 SDHC
Manufacturer: 0x03, OEM "SD"
Product name: "SU16G", revision 8.0
Serial number: 2684394330
Manufacturing date: 8/2008
MMC/SD size: 3MiB
cmd 0x10, arg 0x200 flags 0x15
Error after cmd: 0xfffffffc
cmd 0x11, arg 0x0 flags 0x235
Error after cmd: 0xfffffffc
bad MBR sector signature 0x0000
** Bad partition 1 **
Wrong Image Format for bootm command
ERROR: can't get kernel image!
--- 8< --- snap ---
Note that mmcinit reports a false size [5].
Booting manually from that point worked well:
--- 8< --- snip ---
GTA02v6 # boot
Card Type: SD 2.0 SDHC
Manufacturer: 0x03, OEM "SD"
Product name: "SU16G", revision 8.0
Serial number: 2684394330
Manufacturing date: 8/2008
MMC/SD size: 3MiB
1939024 bytes read
## Booting kernel from Legacy Image at 32000000 ...
Image Name: Openmoko Freerunner Kernel
Created: 2008-10-03 15:57:45 UTC
Image Type: ARM Linux Kernel Image (uncompressed)
Data Size: 1938960 Bytes = 1at MB
Load Address: 30008000
Entry Point: 30008000
Verifying Checksum ... OK
--- 8< --- snap ---
Then I modified the configure-uboot.sh, entered some idle time to let
the SDHC card settle after mmcinit and applied configure-uboot.sh again
to the FR:
--- 8< --- snip ---
--- configure-uboot.sh 2008-08-15 16:01:06.000000000 +0200
+++ configure-uboot-delay.sh 2008-11-08 11:36:20.000000000 +0100
@@ -37,6 +37,7 @@
${bootargs_base} ${mtdparts}
rootfstype=ext2 root=/dev/mmcblk0p2 rootdelay=5;
mmcinit;
+ sleep 2;
ext2load mmc 1 0x32000000 ${sd_image_name};
bootm 0x32000000
--- 8< --- snap ---
Two seconds settle time is suitable for all boot situations (warm and
cold boot, powered by usb or on battery). Tested. Works. :-D
Note: There is still an issue with the suspend mode [6]. But my MBR was
not eaten (until now ;-) ). I was able to fix a mangled filesystem on
the card with a fsck.ext2 -y /dev/mmcblk0p2 after booting the Linux from
flash.
Enjoy!
Greetings from switzerland,
Marian
[1] http://wiki.debian.org/DebianOnFreeRunner
[2] http://downloads.openmoko.org/daily/gta02v5_and_up-u-boot.bin
[3] http://pkg-fso.alioth.debian.org/freerunner/configure-uboot.sh
[4] http://moko.mwester.net/dl.html#kernels
[5] https://docs.openmoko.org/trac/ticket/1815
[6]
http://wiki.openmoko.org/wiki/Booting_from_SD#Booting_from_SDHC_.2F_suspend_problems
More information about the community
mailing list