Mainline u-boot installation on Odroid-UX4
Hi Przemyslaw, Anand,
I just got a Odroid-UX4 board to play. I installed firmware (bl1, bl2, tzsw, u-boot) from hardkernel using sd_fusing.sh, and the board boots fine. But when I install mainline u-boot v2016.03 by following doc/README.odroid, the board refuses to boot with nothing appearing on serial console.
Here is what I did:
- make odroid-xu3_defconfig
- make (using arm-linux-gnueabi-gcc 4.7.3)
- copy u-boot.bin (which is same as u-boot-dtb.bin in v2016.03 release) to sd_fuse/hardkernel folder, and modify sd_fusing.sh to get it point to this new U-Boot
- ./sd_fusing.sh /dev/sdX to flash the SD card
One thing I'm not sure is the offset that firmware should be installed to SD card. The doc/README.odroid and hardkernel sd_fusing.sh tells different ones.
doc/README.odroid:
-------------------------------------
| Binary | Block offset| part type | | name | SD | eMMC |(eMMC only)| ------------------------------------- | Bl1 | 1 | 0 | 1 (boot) | | Bl2 | 31 | 30 | 1 (boot) | | U-Boot | 63 | 62 | 1 (boot) | | Tzsw | 2111 | 2110 | 1 (boot) | | Uboot Env | 2560 | 2560 | 0 (user) |
-------------------------------------
sd_fusing.sh:
signed_bl1_position=1
bl2_position=31
uboot_position=63
tzsw_position=719
env_position=1231
I tried both sets, and neither works for me.
I know Odroid-UX4 is supported by mainline U-Boot today, so there must be something missing from my setup. Could you please help me here? Thanks.
Shawn
Hello Shawn.
Quoted 8 lines · Shawn Guo
Hi Przemyslaw, Anand,
I just got a Odroid-UX4 board to play. I installed firmware (bl1, bl2, tzsw, u-boot) from hardkernel using
sd_fusing.sh, and the board boots fine. But when I install mainline u-boot v2016.03 by following doc/README.odroid, the board refuses to boot with nothing appearing on serial console.
Quoted 8 lines
Here is what I did:
- make odroid-xu3_defconfig
- make (using arm-linux-gnueabi-gcc 4.7.3)
- copy u-boot.bin (which is same as u-boot-dtb.bin in v2016.03 release) to sd_fuse/hardkernel folder, and modifysd_fusing.shto get it point to this new U-Boot
- ./sd_fusing.sh/dev/sdXto flash the SD card
We can assume, that the aboce steps are ok.
Quoted 26 lines
One thing I'm not sure is the offset that firmware should be installed to SD card. The doc/README.odroid and hardkernel
sd_fusing.shtells different ones.doc/README.odroid:
-------------------------------------
| Binary | Block offset| part type | | name | SD | eMMC |(eMMC only)| ------------------------------------- | Bl1 | 1 | 0 | 1 (boot) | | Bl2 | 31 | 30 | 1 (boot) | | U-Boot | 63 | 62 | 1 (boot) | | Tzsw | 2111 | 2110 | 1 (boot) | | Uboot Env | 2560 | 2560 | 0 (user) |-------------------------------------
sd_fusing.sh:signed_bl1_position=1
bl2_position=31
uboot_position=63
tzsw_position=719
env_position=1231
Quoted 9 lines
I tried both sets, and neither works for me.
I know Odroid-UX4 is supported by mainline U-Boot today, so there must be something missing from my setup. Could you please help me here? Thanks.
Shawn
There were two variants of boot chain with U-Boot for XU3/XU4, which differs in U-Boot size - originally U-Boot was 328K, but for the mainline we assume 1MB of size.
So for mainline, you need a prober version of BL2, which loads 1MB of U-Boot instead of 328K - in other way, the mainline U-Boot will be overwritten by tzsw and env.
Please use the resources from this site:
https://github.com/hardkernel/u-boot/tree/odroidxu3-v2012.07/sd_fuse/hardkernel_1mb_uboot
In sd_fuse.1M.sh, you can see, that for U-Boot area we have: 2111-63 == 2048blk == 1MB.
And of course change the U-Boot to mainline.
Best regards,
Signature · 4 lines
Przemyslaw Marczak Samsung R&D Institute Poland Samsung Electronics p.marczak at samsung.com
Hi Shwan,
Quoted 74 lines · Przemyslaw Marczak
Hello Shawn.
Quoted 9 lines · Shawn Guo
Hi Przemyslaw, Anand,
I just got a Odroid-UX4 board to play. I installed firmware (bl1, bl2, tzsw, u-boot) from hardkernel using
sd_fusing.sh, and the board boots fine. But when I install mainline u-boot v2016.03 by following doc/README.odroid, the board refuses to boot with nothing appearing on serial console.Quoted 8 lines
Here is what I did:
- make odroid-xu3_defconfig
- make (using arm-linux-gnueabi-gcc 4.7.3)
- copy u-boot.bin (which is same as u-boot-dtb.bin in v2016.03 release) to sd_fuse/hardkernel folder, and modifysd_fusing.shto get it point to this new U-Boot
- ./sd_fusing.sh/dev/sdXto flash the SD cardWe can assume, that the aboce steps are ok.
Quoted 26 lines
One thing I'm not sure is the offset that firmware should be installed to SD card. The doc/README.odroid and hardkernel
sd_fusing.shtells different ones.doc/README.odroid:
-------------------------------------
| Binary | Block offset| part type | | name | SD | eMMC |(eMMC only)| ------------------------------------- | Bl1 | 1 | 0 | 1 (boot) | | Bl2 | 31 | 30 | 1 (boot) | | U-Boot | 63 | 62 | 1 (boot) | | Tzsw | 2111 | 2110 | 1 (boot) | | Uboot Env | 2560 | 2560 | 0 (user) |-------------------------------------
sd_fusing.sh:signed_bl1_position=1
bl2_position=31
uboot_position=63
tzsw_position=719
env_position=1231Quoted 9 lines
I tried both sets, and neither works for me.
I know Odroid-UX4 is supported by mainline U-Boot today, so there must be something missing from my setup. Could you please help me here? Thanks.
Shawn
There were two variants of boot chain with U-Boot for XU3/XU4, which differs in U-Boot size - originally U-Boot was 328K, but for the mainline we assume 1MB of size.
So for mainline, you need a prober version of BL2, which loads 1MB of U-Boot instead of 328K - in other way, the mainline U-Boot will be overwritten by tzsw and env.
Please use the resources from this site:
https://github.com/hardkernel/u-boot/tree/odroidxu3-v2012.07/sd_fuse/hardkernel_1mb_ubootIn
sd_fuse.1M.sh, you can see, that for U-Boot area we have: 2111-63 == 2048blk == 1MB.
Quoted 8 lines
And of course change the U-Boot to mainline.
Best regards,
--
Przemyslaw Marczak
Samsung R&D Institute Poland
Samsung Electronics
p.marczak at samsung.com
Adding to this you requires
mainline u-boot requires boot.scr file to boot.
$ mkimage -C none -A arm -T script -d board/samsung/common/bootscripts/autoboot.cmd boot.scr $ cp boot.scr /media/boot/
Because Przemyslaw Marczak has implemented card detection logic for Odroid XU3/XU4 board.
You need to use following exynos5422-odroidxu4.dtb DTB file in /media/boot/
Best Regards
-Anand Moon
Quoted 10 lines · Przemyslaw Marczak
There were two variants of boot chain with U-Boot for XU3/XU4, which differs in U-Boot size - originally U-Boot was 328K, but for the mainline we assume 1MB of size.
So for mainline, you need a prober version of BL2, which loads 1MB of U-Boot instead of 328K - in other way, the mainline U-Boot will be overwritten by tzsw and env.
Please use the resources from this site:
https://github.com/hardkernel/u-boot/tree/odroidxu3-v2012.07/sd_fuse/hardkernel_1mb_uboot
Thanks much, Przemyslaw. It works now.
I think we should update README.odroid a bit to ease future users. Do you prefer something like the patch below, or we simply replace the existing link with hardkernel_1mb_uboot one, considering the default U-Boot image today is already bigger than 328KB anyway?
Shawn
---8<----
doc/README.odroid +4 -0
@@ -33,6 +33,10 @@ http://odroid.in/guides/ubuntu-lfs/boot.tar.gz It can be downloaded from: https://github.com/hardkernel/u-boot/tree/odroidxu3-v2012.07/sd_fuse/hardkernel +If U-Boot image is bigger than 328KB, the following binaries should be +used instead. +https://github.com/hardkernel/u-boot/tree/odroidxu3-v2012.07/sd_fuse/hardkernel_1mb_uboot + 4. Boot media layout ====================
Hello Shawn,
Quoted 12 lines · Shawn Guo
Quoted 10 lines · Przemyslaw Marczak
There were two variants of boot chain with U-Boot for XU3/XU4, which differs in U-Boot size - originally U-Boot was 328K, but for the mainline we assume 1MB of size.
So for mainline, you need a prober version of BL2, which loads 1MB of U-Boot instead of 328K - in other way, the mainline U-Boot will be overwritten by tzsw and env.
Please use the resources from this site:
https://github.com/hardkernel/u-boot/tree/odroidxu3-v2012.07/sd_fuse/hardkernel_1mb_uboot
Quoted 9 lines
Thanks much, Przemyslaw. It works now.
I think we should update README.odroid a bit to ease future users. Do you prefer something like the patch below, or we simply replace the existing link with
hardkernel_1mb_ubootone, considering the default U-Boot image today is already bigger than 328KB anyway?Shawn
Good point, it wasn't updated for a long time. Yes, useful U-Boot's size is much bigger than 328k, so you can just, replace the link.
Quoted 10 lines
---8<----
doc/README.odroid +0
-0
doc/README.odroid http://odroid.in/guides/ubuntu-lfs/boot.tar.gz · line 42
Quoted 10 lines
doc/README.odroid +4
-0@@ -33,6 +33,10 @@ http://odroid.in/guides/ubuntu-lfs/boot.tar.gz It can be downloaded from: https://github.com/hardkernel/u-boot/tree/odroidxu3-v2012.07/sd_fuse/hardkernel +If U-Boot image is bigger than 328KB, the following binaries should be +used instead. +https://github.com/hardkernel/u-boot/tree/odroidxu3-v2012.07/sd_fuse/hardkernel_1mb_uboot + 4. Boot media layout ====================
It would be nice if you could update the supported fdt files list at line 25 of doc/README.odroid - with file: exynos5422-odroidxu4.dtb, mentioned by Anand Moon.
Best regards,
Signature · 4 lines
Przemyslaw Marczak Samsung R&D Institute Poland Samsung Electronics p.marczak at samsung.com