ARM64 – Odroid C2 – U-Boot MMC Support..
After the initial patches to provide basic U-Boot support for the C2, as mentioned in a previous article – there is now a further patch, to enable MMC support. Details at https://www.mail-archive.com/u-boot@lists.denx.de/msg212503.html
I have applied this additional patch, and for SDcard-based systems, it works:
U-Boot 2016.05-rc3 (May 14 2016 - 21:06:28 -0700) odroid-c2 aarch64-linux-gnu-gcc (GCC) 5.3.1 20160212 (Red Hat Cross 5.3.1-2) GNU ld version 2.26.20160125 => mmc info Device: <NULL> Manufacturer ID: 3 OEM: 5054 Name: SL64G Tran Speed: 25000000 Rd Block Len: 512 SD version 1.0 High Capacity: Yes Capacity: 58.3 GiB Bus Width: 1-bit Erase Group Size: 512 Bytes => mmc part Partition Map for MMC device 0 -- Partition Type: DOS Part Start Sector Num Sectors UUID Type 1 2048 122238976 e5ec0000-01 83
But… If the system is on an Odroid eMMC module, then it fails:
MMC: <NULL>: 0 Card did not respond to voltage select! *** Warning - MMC init failed, using default environment => mmc list <NULL>: 0 => mmc dev 0 Card did not respond to voltage select!
I was able to get a successful SDcard U-boot/Kernel boot, as far as the rootfs load (as the Linux kernel does not yet have C2 mmc support):
........................... => setenv loadaddr "0x11000000" => setenv dtb_loadaddr "0x1000000" => setenv bootargs "root=/dev/mmcblk0p1 rootwait rw" => setenv bootcmd "ext4load mmc 0:1 ${loadaddr} /boot/uboot/Image; ext4load mmc 0:1 ${dtb_loadaddr} /boot/uboot/meson-gxbb-odroidc2.dtb; booti ${loadaddr} - ${dtb_loadaddr}" => boot 9298944 bytes read in 7277 ms (1.2 MiB/s) 2734 bytes read in 37 ms (71.3 KiB/s) ## Flattened Device Tree blob at 01000000 Booting using the fdt blob at 0x1000000 Loading Device Tree to 000000007df68000, end 000000007df6baad ... OK Starting kernel ... [ 0.000000] Booting Linux on physical CPU 0x0 [ 0.000000] Linux version 4.6.0-rc7-next-20160510 (rgadsdon@rglinux-i7) (gcc version 5.3.1 20160212 (Red Hat Cross 5.3.1-2) (GCC) ) #1 SMP PREEMPT Sat May 14 21:36:55 PDT 2016 ........... etc..................
So – good progress, but not sure why the eMMC fails… I’ll probably wait for Linux Kernel MMC support, now..
Robert Gadsdon. May 15, 2016
So at least using ad card you can complete full boot?
are you saying you can complete the kernel boot and goes to command line using as card?
No. Only as far as the rootfs load, as the kernel does not yet include C2 mmc support.. Same as for the example using tftp, before..
Waiting for root device /dev/mmcblk0p1…
RG.
Hi Robert,
how do I get this part of boot process? Do I need a tftp-server? I’ve didn’t find a Fedora aarch64 image to “dd” it to SD-card. Does it work with the 4.7.0 Kernel?
Thanks
Andreas
Works from SDcard (and eMMC module) now, with all the patches.. U-Boot is OK, but the Linux kernel does not support the Meson MMC yet, so not possible to boot all the way.. You could do this by loading the rootfs by NFS, if you really wanted to.. ‘Full’ mainline kernel support might be later in the 4.7-rc cycle, or maybe not until 4.8..
Info, and link to repo and images, here: https://fedoraproject.org/wiki/Architectures/AArch64/F23/Installation
The rootfs image (contained inside install.img – squashfs format) is for a ‘server’ version, but the repo includes workstation stuff..
I use gnome-disk-utility to mount the image file (click on top left button for menu..)..
RG.