]>
Commit | Line | Data |
---|---|---|
73eca211 PM |
1 | U-boot for Odroid X2/U3 |
2 | ======================== | |
3 | ||
4 | 1. Summary | |
5 | ========== | |
6 | This is a quick instruction for setup Odroid boards based on Exynos4412. | |
7 | Board config: odroid_config | |
8 | ||
9 | 2. Supported devices | |
10 | ==================== | |
11 | This U-BOOT config can be used on two boards: | |
12 | - Odroid U3 | |
13 | - Odroid X2 | |
14 | with CPU Exynos 4412 rev 2.0 and 2GB of RAM | |
15 | ||
16 | 3. Boot sequence | |
17 | ================ | |
18 | iROM->BL1->(BL2 + TrustZone)->U-BOOT | |
19 | ||
20 | This version of U-BOOT doesn't implement SPL but it is required(BL2) | |
21 | and can be found in "boot.tar.gz" from here: | |
22 | http://dev.odroid.com/projects/4412boot/wiki/FrontPage?action=download&value=boot.tar.gz | |
23 | or here: | |
24 | http://odroid.in/guides/ubuntu-lfs/boot.tar.gz | |
25 | ||
26 | 4. Boot media layout | |
27 | ==================== | |
28 | The table below shows SD/eMMC cards layout for U-boot. | |
29 | The block offset is starting from 0 and the block size is 512B. | |
30 | ------------------------------------- | |
31 | | Binary | Block offset| part type | | |
32 | | name | SD | eMMC |(eMMC only)| | |
33 | ------------------------------------- | |
34 | | Bl1 | 1 | 0 | 1 (boot) | | |
35 | | Bl2 | 31 | 30 | 1 (boot) | | |
36 | | U-boot | 63 | 62 | 1 (boot) | | |
37 | | Tzsw | 2111 | 2110 | 1 (boot) | | |
38 | | Uboot Env | 2500 | 2500 | 0 (user) | | |
39 | ------------------------------------- | |
40 | ||
41 | 5. Prepare the SD boot card - with SD card reader | |
42 | ================================================= | |
43 | To prepare bootable media you need boot binaries provided by hardkernel. | |
44 | File "boot.tar.gz" (link in point 3.) contains: | |
45 | - E4412_S.bl1.HardKernel.bin | |
46 | - E4412_S.tzsw.signed.bin | |
47 | - bl2.signed.bin | |
48 | - sd_fusing.sh | |
49 | - u-boot.bin | |
50 | ||
51 | This is all you need to boot this board. But if you want to use your custom | |
52 | u-boot then you need to change u-boot.bin with your own u-boot binary* | |
53 | and run the script "sd_fusing.sh" - this script is valid only for SD card. | |
54 | ||
55 | *note: | |
56 | The proper binary file of current U-boot is u-boot-dtb.bin. | |
57 | ||
58 | quick steps for Linux: | |
59 | - extract boot.tar.gz | |
60 | - put any SD card into the SD reader | |
61 | - check the device with "dmesg" | |
62 | - run ./sd_fusing.sh /dev/sdX - where X is SD card device (but not a partition) | |
63 | Check if Hardkernel U-boot is booting, and next do the same with your U-boot. | |
64 | ||
65 | 6. Prepare the eMMC boot card | |
66 | with a eMMC card reader (boot from eMMC card slot) | |
67 | ===================================================== | |
68 | To boot the device from the eMMC slot you should use a special card reader | |
69 | which supports eMMC partiion switch. All of the boot binaries are stored | |
70 | on the eMMC boot partition which is normally hidden. | |
71 | ||
72 | The "sd_fusing.sh" script can be used after updating offsets of binaries | |
73 | according to the table from point 4. Be sure that you are working on the right | |
74 | eMMC partition - its size is usually very small, about 1-4 MiB. | |
75 | ||
76 | 7. Prepare the eMMC boot card | |
77 | with a SD card reader (boot from SD card slot) | |
78 | ================================================= | |
79 | If you have an eMMC->microSD adapter you can prepare the card as in point 5. | |
80 | But then the device can boot only from the SD card slot. | |
81 | ||
82 | 8. Prepare the boot media using Hardkernel U-boot | |
83 | ================================================= | |
84 | You can update the U-boot to the custom one if you have an working bootloader | |
85 | delivered with the board on a eMMC/SD card. Then follow the steps: | |
86 | - install the android fastboot tool | |
87 | - connect a micro usb cable to the board | |
88 | - on the U-boot prompt, run command: fastboot (as a root) | |
89 | - on the host, run command: "fastboot flash bootloader u-boot-dtb.bin" | |
90 | - the custom U-boot should start after the board resets. | |
91 | ||
92 | 9. Partition layout | |
93 | ==================== | |
94 | Default U-boot environment is setup for fixed partiion layout. | |
95 | ||
96 | Partition table: MSDOS. Disk layout and files as listed in the table below. | |
97 | ----- ------ ------ ------ -------- --------------------------------- | |
98 | | Num | Name | FS | Size | Offset | Reguired files | | |
99 | | | | Type | MiB | MiB | | | |
100 | ----- ------ ------ ------ -------- --------------------------------- | |
101 | | 1 | BOOT | fat | 100 | 2 | kernel, fdt** | | |
102 | | 2 | ROOT | ext4 | - | | any Linux system | | |
103 | ----- ------ ------ ------ -------- --------------------------------- | |
104 | ||
105 | **note: | |
106 | Supported fdt files are: | |
107 | - exynos4412-odroidx2.dtb | |
108 | - exynos4412-odroidu3.dtb | |
109 | ||
110 | Supported kernel files are: | |
111 | - Image.itb | |
112 | - zImage | |
113 | - uImage | |
114 | ||
115 | The default environmental variable "dfu_alt_info" is set* for above layout. | |
116 | Each partition size is just an example, dfu_alt_info tries init two partitions. | |
117 | The size of each is not important. | |
118 | ||
119 | *note: | |
120 | $dfu_alt_info is set on a boot time and it is concatenated using two variables: | |
121 | - $dfu_alt_boot(set dynamically) | |
122 | - $dfu_alt_system(from current env). | |
123 | ||
124 | To add any changes to dfu_alt_info - please modify $dfu_alt_system only. | |
125 | Changes are visible after board reset. | |
126 | ||
127 | 10. The environment and booting the kernel | |
128 | ========================================== | |
129 | There are three macros defined in config for various boot options: | |
130 | Two for both, kernel with device tree support and also without it: | |
131 | - boot_uimg - load uImage | |
132 | - boot_zimg - load zImage | |
133 | If proper fdt file exists then it will be automatically loaded, | |
134 | so for old kernel types, please remove fdt file from boot partition. | |
135 | ||
136 | The third boot option for multi image support (more info: doc/uImage.FIT/) | |
137 | - boot_fit - for binary file: "Image.itb" | |
138 | ||
139 | Default boot command: "autoboot" | |
140 | And the boot sequence is: | |
141 | - boot_fit - if "Image.itb" exists | |
142 | - boot_zimg - if "zImage" exists | |
143 | - boot_uimg - if "uImage" exists |