[U-Boot] [RESEND][PATCH v11 0/3] Adds support for Exynos5422 odroid xu3 board

This is v11 of the patchset adding support Odroud XU3 board.
link to the previous version: v2: https://www.mail-archive.com/u-boot@lists.denx.de/msg152275.html v3: https://www.mail-archive.com/u-boot%40lists.denx.de/msg152677.html v4: https://patchwork.ozlabs.org/patch/407411/ v5: https://patchwork.ozlabs.org/patch/407941/ v6: https://patchwork.ozlabs.org/patch/408647/ v7: https://patchwork.ozlabs.org/patch/410204/ v8: https://patchwork.ozlabs.org/patch/410709/ v9: https://patchwork.ozlabs.org/patch/415514/ v10: https://patchwork.ozlabs.org/patch/416720/
The patchset by Akshay Saraswat is already merged into u-boot-samsung. Please ignore the instruction about the additional patchset in v8.
How to test this patch: 1. git clone http://git.denx.de/u-boot-samsung.git 2. Apply this patchset 3. make ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf- odroid-xu3_config 4. make ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf- -j8 5. Now you can use u-boot-dtb.bin for your downloading
WARNING: (update in V10) It was impossible to make the u-boot image smaller than 335872 bytes, and also I did not want to waste my time to make it fit for that restriction, because the discussion about this issue is in progress in malining list. I used BL2 by Suriyan Ramasami suriyan.r@gmail.com which the restriction is removed for testing. If you need the BL2 for testing, please contact me or Suriyan.
Note: If you use micro SD card for your test you have to apply the below patch additionally. This patch is needed, because micro sd card is recognized as MMC1 instead of MMC0. Additional work is needed to make it work regardless of device id.
Thanks for Sjoerd Simons. Not only did he comment my patchset, but he also made real patch for me. I squashed some part of that patchset, and included the remainings into my patchset.
diff --git a/include/configs/exynos5-common.h b/include/configs/exynos5-common.h index ba591e7..437eaae 100644 --- a/include/configs/exynos5-common.h +++ b/include/configs/exynos5-common.h @@ -109,7 +109,7 @@
#define CONFIG_SYS_MONITOR_BASE 0x00000000
-#define CONFIG_SYS_MMC_ENV_DEV 0 +#define CONFIG_SYS_MMC_ENV_DEV 1
#define CONFIG_SECURE_BL1_ONLY
Changes for v2: - Add a patch to add new common setup header file for Odroid X2/U3 and Odroid XU3
Changes for v3: - Remove the patch which adds new common setup header file from v2 - Remove the wrong patch to fix GPIO information of Exynos 5800 - Remove unnecessary node from DT file - Remove unnecessary features from config file - Fix some trivial typos in comments
Changes for v4: - Add MMC FIFO buffer's configuration to DT file - Make CONFIG_OF_CONTROL be set by the target information - Add basic document to doc/README.odroid-xu3 - Add CONFIG_CMD_EXT4 to config file - Add environment size and offset to config file - Add extra default environment to make bootable without modification - Remove unnecessary features from config file
Changes for v5: - Add the specific build instruction - Update the information of patchset by Akshay Saraswat - Convert /include/ to #include in DT file
Changes for v6: - Separate out the documentation to new commit - Remove unnecessary header file inclusuib from the board-specific setup file - Make the function board_clock_init be declared, only when CONFIG_BOARD_EARLY_INIT_F is defined
Changes for v7: - Fix several errata in the documentation - Remove OF_CONTROL dependency from !SPL_BUILD
Changes for v8: - Remove unnecessary properties in DT mmc node
Changes for v9: - Remove the first patch which change GPIO entries order. It became useless, after DT support is added - Remove useless variables in the default environment - Add the new contents to the documentation of Odroid X2/U2, instead of making new document for Odorid XU3 - Remove the detailed information in the header file, and leave the reference to the documentation
Changes for v10: - Move the non common configs in Exynos5420 config file to each board file - Remove the config unsets which are added to make the result image small This is needless now, because the image is not small enough even though these unsets are added. - Remove redundant DT node and properties - Remove the odroid-xu3 board file and make odroid-xu3 a variant of smdk5420 - Fix some errata in documentation - Include the patch by Sjoerd Simons as 4th patch
Changes for v11: - Move the include point of exynos5420-common.h after CONFIG_ENV_IS_IN_SPI_FLASH in smdk5420.h - Remove duplicated CONFIG_CMD_EXT2/EXT4/FAT from odroid_xu3.h - Fix the typo in the comment, which is found in odroid_xu3.h - Add a comment to specify not available networking yet - Remove the patch abou EHCI
Hyungwon Hwang (3): config: exynos5420: move non common configs to specific board files Odroid-XU3: Add support for Odroid-XU3 Odroid-XU3: Add documentation for Odroid-XU3
arch/arm/cpu/armv7/exynos/Kconfig | 4 +++ arch/arm/dts/Makefile | 3 ++- arch/arm/dts/exynos5422-odroidxu3.dts | 45 +++++++++++++++++++++++++++++++ board/samsung/smdk5420/Kconfig | 13 +++++++++ configs/odroid-xu3_defconfig | 4 +++ doc/README.odroid | 47 +++++++++++++++++++++----------- include/configs/exynos5420-common.h | 18 ------------- include/configs/odroid_xu3.h | 51 +++++++++++++++++++++++++++++++++++ include/configs/peach-pi.h | 6 +++++ include/configs/peach-pit.h | 6 +++++ include/configs/smdk5420.h | 11 ++++++++ 11 files changed, 173 insertions(+), 35 deletions(-) create mode 100644 arch/arm/dts/exynos5422-odroidxu3.dts create mode 100644 configs/odroid-xu3_defconfig create mode 100644 include/configs/odroid_xu3.h

The media for boot and environment is a board-specific feature, not a processor-specific. This is same to console port number and some other addresses. This patch moves the that kinds of configs to each board-specific files from the common config file for Exynos5420.
Signed-off-by: Hyungwon Hwang human.hwang@samsung.com Acked-by: Simon Glass sjg@chromium.org Tested-by: Kevin Hilman khilman@linaro.org Cc: Minkyu Kang mk7.kang@samsung.com Cc: Lukasz Majewski l.majewski@samsung.com Cc: Sjoerd Simons sjoerd.simons@collabora.co.uk Cc: Javier Martinez Canillas javier@dowhile0.org Cc: Simon Glass sjg@chromium.org --- Changes for v10: - Newly added
Changes for v11: - Move the include point of exynos5420-common.h after CONFIG_ENV_IS_IN_SPI_FLASH in smdk5420.h
include/configs/exynos5420-common.h | 18 ------------------ include/configs/peach-pi.h | 6 ++++++ include/configs/peach-pit.h | 6 ++++++ include/configs/smdk5420.h | 11 +++++++++++ 4 files changed, 23 insertions(+), 18 deletions(-)
diff --git a/include/configs/exynos5420-common.h b/include/configs/exynos5420-common.h index ef6e155..7322f33 100644 --- a/include/configs/exynos5420-common.h +++ b/include/configs/exynos5420-common.h @@ -13,13 +13,6 @@ /* A variant of Exynos5420 (Exynos5 Family) */ #define CONFIG_EXYNOS5800
-#define CONFIG_ENV_IS_IN_SPI_FLASH -#define CONFIG_SPI_FLASH -#define CONFIG_ENV_SPI_BASE 0x12D30000 -#define FLASH_SIZE (0x4 << 20) -#define CONFIG_ENV_OFFSET (FLASH_SIZE - CONFIG_BL2_SIZE) -#define CONFIG_SPI_BOOTING - #include <configs/exynos5-common.h>
#define CONFIG_ARCH_EARLY_INIT_R @@ -29,8 +22,6 @@
#define CONFIG_VAR_SIZE_SPL
-#define CONFIG_SYS_SDRAM_BASE 0x20000000 -#define CONFIG_SYS_TEXT_BASE 0x23E00000 #ifdef CONFIG_VAR_SIZE_SPL #define CONFIG_SPL_TEXT_BASE 0x02024410 #else @@ -49,13 +40,4 @@
#define CONFIG_SYS_USB_XHCI_MAX_ROOT_PORTS 2
-/* - * Put the initial stack pointer 1KB below this to allow room for the - * SPL marker. This value is arbitrary, but gd_t is placed starting here. - */ -#define CONFIG_SYS_INIT_SP_ADDR (CONFIG_IRAM_TOP - 0x800) - -/* Miscellaneous configurable options */ -#define CONFIG_DEFAULT_CONSOLE "console=ttySAC1,115200n8\0" - #endif /* __CONFIG_EXYNOS5420_H */ diff --git a/include/configs/peach-pi.h b/include/configs/peach-pi.h index 8a82402..a1c980d 100644 --- a/include/configs/peach-pi.h +++ b/include/configs/peach-pi.h @@ -14,14 +14,20 @@ #define CONFIG_ENV_SPI_BASE 0x12D30000 #define FLASH_SIZE (0x4 << 20) #define CONFIG_ENV_OFFSET (FLASH_SIZE - CONFIG_BL2_SIZE) +#define CONFIG_SPI_BOOTING
#include <configs/exynos5420-common.h> #include <configs/exynos5-dt-common.h>
#define CONFIG_BOARD_COMMON
+#define CONFIG_SYS_SDRAM_BASE 0x20000000 +#define CONFIG_SYS_TEXT_BASE 0x23E00000 +#define CONFIG_SYS_INIT_SP_ADDR (CONFIG_IRAM_TOP - 0x800) + /* select serial console configuration */ #define CONFIG_SERIAL3 /* use SERIAL 3 */ +#define CONFIG_DEFAULT_CONSOLE "console=ttySAC1,115200n8\0"
#define CONFIG_SYS_PROMPT "Peach-Pi # " #define CONFIG_IDENT_STRING " for Peach-Pi" diff --git a/include/configs/peach-pit.h b/include/configs/peach-pit.h index ad5db57..6516a72 100644 --- a/include/configs/peach-pit.h +++ b/include/configs/peach-pit.h @@ -14,14 +14,20 @@ #define CONFIG_ENV_SPI_BASE 0x12D30000 #define FLASH_SIZE (0x4 << 20) #define CONFIG_ENV_OFFSET (FLASH_SIZE - CONFIG_BL2_SIZE) +#define CONFIG_SPI_BOOTING
#include <configs/exynos5420-common.h> #include <configs/exynos5-dt-common.h>
#define CONFIG_BOARD_COMMON
+#define CONFIG_SYS_SDRAM_BASE 0x20000000 +#define CONFIG_SYS_TEXT_BASE 0x23E00000 +#define CONFIG_SYS_INIT_SP_ADDR (CONFIG_IRAM_TOP - 0x800) + /* select serial console configuration */ #define CONFIG_SERIAL3 /* use SERIAL 3 */ +#define CONFIG_DEFAULT_CONSOLE "console=ttySAC1,115200n8\0"
#define CONFIG_SYS_PROMPT "Peach-Pit # " #define CONFIG_IDENT_STRING " for Peach-Pit" diff --git a/include/configs/smdk5420.h b/include/configs/smdk5420.h index 5c9a3c0..6b45948 100644 --- a/include/configs/smdk5420.h +++ b/include/configs/smdk5420.h @@ -9,15 +9,26 @@ #ifndef __CONFIG_SMDK5420_H #define __CONFIG_SMDK5420_H
+#define CONFIG_ENV_IS_IN_SPI_FLASH +#define CONFIG_SPI_FLASH +#define CONFIG_ENV_SPI_BASE 0x12D30000 +#define FLASH_SIZE (0x4 << 20) +#define CONFIG_ENV_OFFSET (FLASH_SIZE - CONFIG_BL2_SIZE) +#define CONFIG_SPI_BOOTING + #include <configs/exynos5420-common.h>
#define CONFIG_BOARD_COMMON
#define CONFIG_SMDK5420 /* which is in a SMDK5420 */
+#define CONFIG_SYS_SDRAM_BASE 0x20000000 +#define CONFIG_SYS_TEXT_BASE 0x23E00000 +#define CONFIG_SYS_INIT_SP_ADDR (CONFIG_IRAM_TOP - 0x800)
/* select serial console configuration */ #define CONFIG_SERIAL3 /* use SERIAL 3 */ +#define CONFIG_DEFAULT_CONSOLE "console=ttySAC1,115200n8\0"
#define CONFIG_SYS_PROMPT "SMDK5420 # " #define CONFIG_IDENT_STRING " for SMDK5420"

This patch adds support for Odroid-XU3.
Signed-off-by: Hyungwon Hwang human.hwang@samsung.com Reviewed-by: Sjoerd Simons sjoerd.simons@collabora.co.uk Tested-by: Sjoerd Simons sjoerd.simons@collabora.co.uk Acked-by: Simon Glass sjg@chromium.org Tested-by: Kevin Hilman khilman@linaro.org Cc: Minkyu Kang mk7.kang@samsung.com Cc: Lukasz Majewski l.majewski@samsung.com Cc: Sjoerd Simons sjoerd.simons@collabora.co.uk Cc: Javier Martinez Canillas javier@dowhile0.org Cc: Simon Glass sjg@chromium.org --- Changes for v3: - Remove unnecessary node from DT file - Remove unnecessary features from config file - Remove unnecessary macros from board-specific header file - Fix some trivial typos in comments
Changes for v4: - Add MMC FIFO buffer's configuration to DT file - Make CONFIG_OF_CONTROL be set by the target information - Add basic document to doc/README.odroid-xu3 - Add CONFIG_CMD_EXT4 to config file - Add environment size and offset to config file - Add extra default environment to make bootable without modification - Remove unnecessary features from config file
Changes for v5: - Convert /include/ to #include in DT file
Changes for v6: - Separate out the documentation to new commit - Remove unnecessary header file inclusions from the board-specific setup file - Make the function board_clock_init be declared, only when CONFIG_BOARD_EARLY_INIT_F is defined
Changes for v7: - Remove OF_CONTROL dependency from !SPL_BUILD
Changes for v8: - Remove unnecessary properties in DT mmc node
Changes for v9: - Remove useless variables in the default environment - Replace the detailed information to the reference to the documentation
Changes for v10: - Remove the config unsets which are added to make the result image small This is needless now, because the image is not small enough even though these unsets are added. - Remove redundant DT node and properties - Remove the odroid-xu3 board file and make odroid-xu3 a variant of smdk5420
Changes for v11: - Remove duplicated CONFIG_CMD_EXT2/EXT4/FAT from odroid_xu3.h - Fix the typo in the comment, which is found in odroid_xu3.h
arch/arm/cpu/armv7/exynos/Kconfig | 4 +++ arch/arm/dts/Makefile | 3 ++- arch/arm/dts/exynos5422-odroidxu3.dts | 45 +++++++++++++++++++++++++++++++ board/samsung/smdk5420/Kconfig | 13 +++++++++ configs/odroid-xu3_defconfig | 4 +++ include/configs/odroid_xu3.h | 51 +++++++++++++++++++++++++++++++++++ 6 files changed, 119 insertions(+), 1 deletion(-) create mode 100644 arch/arm/dts/exynos5422-odroidxu3.dts create mode 100644 configs/odroid-xu3_defconfig create mode 100644 include/configs/odroid_xu3.h
diff --git a/arch/arm/cpu/armv7/exynos/Kconfig b/arch/arm/cpu/armv7/exynos/Kconfig index f3eadb4..7fcb5d2 100644 --- a/arch/arm/cpu/armv7/exynos/Kconfig +++ b/arch/arm/cpu/armv7/exynos/Kconfig @@ -24,6 +24,10 @@ config TARGET_TRATS2 config TARGET_ODROID bool "Exynos4412 Odroid board"
+config TARGET_ODROID_XU3 + bool "Exynos5422 Odroid board" + select OF_CONTROL + config TARGET_ARNDALE bool "Exynos5250 Arndale board" select CPU_V7_HAS_NONSEC diff --git a/arch/arm/dts/Makefile b/arch/arm/dts/Makefile index e5846ea..a811b1b 100644 --- a/arch/arm/dts/Makefile +++ b/arch/arm/dts/Makefile @@ -13,7 +13,8 @@ dtb-$(CONFIG_EXYNOS5) += exynos5250-arndale.dtb \ exynos5250-smdk5250.dtb \ exynos5420-smdk5420.dtb \ exynos5420-peach-pit.dtb \ - exynos5800-peach-pi.dtb + exynos5800-peach-pi.dtb \ + exynos5422-odroidxu3.dtb dtb-$(CONFIG_TEGRA) += tegra20-harmony.dtb \ tegra20-medcom-wide.dtb \ tegra20-paz00.dtb \ diff --git a/arch/arm/dts/exynos5422-odroidxu3.dts b/arch/arm/dts/exynos5422-odroidxu3.dts new file mode 100644 index 0000000..cff32a9 --- /dev/null +++ b/arch/arm/dts/exynos5422-odroidxu3.dts @@ -0,0 +1,45 @@ +/* + * Odroid XU3 device tree source + * + * Copyright (c) 2014 Samsung Electronics Co., Ltd. + * http://www.samsung.com + * + * SPDX-License-Identifier: GPL-2.0+ + */ + +/dts-v1/; +#include "exynos54xx.dtsi" + +/ { + model = "Odroid XU3 based on EXYNOS5422"; + compatible = "samsung,odroidxu3", "samsung,exynos5"; + + aliases { + serial0 = "/serial@12C00000"; + console = "/serial@12C20000"; + }; + + memory { + device_type = "memory"; + reg = <0x40000000 0x10000000 + 0x50000000 0x10000000 + 0x60000000 0x10000000 + 0x70000000 0x10000000 + 0x80000000 0x10000000 + 0x90000000 0x10000000 + 0xa0000000 0x10000000 + 0xb0000000 0xea00000>; + }; + + serial@12C20000 { + status="okay"; + }; + + mmc@12200000 { + fifoth_val = <0x201f0020>; + }; + + mmc@12220000 { + fifoth_val = <0x201f0020>; + }; +}; diff --git a/board/samsung/smdk5420/Kconfig b/board/samsung/smdk5420/Kconfig index e7aafe5..ff28b1d 100644 --- a/board/samsung/smdk5420/Kconfig +++ b/board/samsung/smdk5420/Kconfig @@ -1,3 +1,16 @@ +if TARGET_ODROID_XU3 + +config SYS_BOARD + default "smdk5420" + +config SYS_VENDOR + default "samsung" + +config SYS_CONFIG_NAME + default "odroid_xu3" + +endif + if TARGET_PEACH_PI
config SYS_BOARD diff --git a/configs/odroid-xu3_defconfig b/configs/odroid-xu3_defconfig new file mode 100644 index 0000000..74aa0cf --- /dev/null +++ b/configs/odroid-xu3_defconfig @@ -0,0 +1,4 @@ +CONFIG_ARM=y +CONFIG_ARCH_EXYNOS=y +CONFIG_TARGET_ODROID_XU3=y +CONFIG_DEFAULT_DEVICE_TREE="exynos5422-odroidxu3" diff --git a/include/configs/odroid_xu3.h b/include/configs/odroid_xu3.h new file mode 100644 index 0000000..a92b5cc --- /dev/null +++ b/include/configs/odroid_xu3.h @@ -0,0 +1,51 @@ +/* + * Copyright (C) 2013 Samsung Electronics + * Hyungwon Hwang human.hwang@samsung.com + * + * SPDX-License-Identifier: GPL-2.0+ + */ + +#ifndef __CONFIG_ODROID_XU3_H +#define __CONFIG_ODROID_XU3_H + +#include "exynos5420-common.h" + +#define CONFIG_SYS_PROMPT "ODROID-XU3 # " +#define CONFIG_IDENT_STRING " for ODROID-XU3" + +#define CONFIG_BOARD_COMMON + +#define CONFIG_SYS_SDRAM_BASE 0x40000000 +#define CONFIG_SYS_TEXT_BASE 0x43E00000 + +/* select serial console configuration */ +#define CONFIG_SERIAL2 /* use SERIAL 2 */ + +#define TZPC_BASE_OFFSET 0x10000 + +#define CONFIG_CMD_MMC + +/* + * FIXME: The number of bank is actually 8. But there is no way to reserve the + * last 16 Mib in the last bank now. So I just excluded the last bank + * temporally. + */ +#define CONFIG_NR_DRAM_BANKS 7 +#define SDRAM_BANK_SIZE (256UL << 20UL) /* 256 MB */ + +#define CONFIG_ENV_IS_IN_MMC + +#undef CONFIG_ENV_SIZE +#undef CONFIG_ENV_OFFSET +#define CONFIG_ENV_SIZE 4096 +#define CONFIG_ENV_OFFSET (SZ_1K * 1280) /* 1.25 MiB offset */ + +#define CONFIG_SYS_INIT_SP_ADDR (CONFIG_SYS_LOAD_ADDR - 0x1000000) + +#define CONFIG_DEFAULT_CONSOLE "console=ttySAC2,115200n8\0" + +/* FIXME: MUST BE REMOVED AFTER TMU IS TURNED ON */ +#undef CONFIG_EXYNOS_TMU +#undef CONFIG_TMU_CMD_DTT + +#endif /* __CONFIG_H */

This patch adds documentation for Odroid-XU3. This documentation is based on that of Odroid (doc/README-odroid) made by Przemyslaw Marczak. The documentation includes basic information about boot media layout, environment, partition layout, and the instruction to burn the u-boot image to boot media.
Signed-off-by: Hyungwon Hwang human.hwang@samsung.com Acked-by: Simon Glass sjg@chromium.org Tested-by: Kevin Hilman khilman@linaro.org Cc: Minkyu Kang mk7.kang@samsung.com Cc: Lukasz Majewski l.majewski@samsung.com Cc: Sjoerd Simons sjoerd.simons@collabora.co.uk Cc: Javier Martinez Canillas javier@dowhile0.org Cc: Simon Glass sjg@chromium.org --- Changes for v6: - Newly added
Changes for v7: - Fix several errata in the documentation
Changes for v8: - None
Changes for v9: - Add the new contents to the documentation of Odroid X2/U2, instead of making new document for Odorid XU3
Changes for v10: - Fix a erratum
Changes for v11: - Add a comment to specify not available networking yet
doc/README.odroid | 46 ++++++++++++++++++++++++++++++---------------- 1 file changed, 30 insertions(+), 16 deletions(-) doc/README.odroid | 47 +++++++++++++++++++++++++++++++---------------- 1 file changed, 31 insertions(+), 16 deletions(-)
diff --git a/doc/README.odroid b/doc/README.odroid index 25b962b..8a004ca 100644 --- a/doc/README.odroid +++ b/doc/README.odroid @@ -1,28 +1,39 @@ - U-boot for Odroid X2/U3 + U-boot for Odroid X2/U3/XU3 ========================
1. Summary ========== -This is a quick instruction for setup Odroid boards based on Exynos4412. -Board config: odroid_config +This is a quick instruction for setup Odroid boards. +Board config: odroid_config for X2/U3 +Board config: odroid-xu3_config for XU3
2. Supported devices ==================== -This U-BOOT config can be used on two boards: +This U-BOOT config can be used on three boards: - Odroid U3 - Odroid X2 with CPU Exynos 4412 rev 2.0 and 2GB of RAM +- Odroid XU3 +with CPU Exynos5422 and 2GB of RAM
3. Boot sequence ================ iROM->BL1->(BL2 + TrustZone)->U-BOOT
-This version of U-BOOT doesn't implement SPL but it is required(BL2) -and can be found in "boot.tar.gz" from here: +This version of U-BOOT doesn't implement SPL. So, BL1, BL2, and TrustZone +binaries are needed to boot up. + +<< X2/U3 >> +It can be found in "boot.tar.gz" from here: http://dev.odroid.com/projects/4412boot/wiki/FrontPage?action=download&v... or here: http://odroid.in/guides/ubuntu-lfs/boot.tar.gz
+<< XU3 >> +It can be downloaded from: +https://github.com/hardkernel/u-boot/tree/odroidxu3-v2012.07/sd_fuse/hardker... + + 4. Boot media layout ==================== The table below shows SD/eMMC cards layout for U-boot. @@ -35,18 +46,20 @@ The block offset is starting from 0 and the block size is 512B. | Bl2 | 31 | 30 | 1 (boot) | | U-boot | 63 | 62 | 1 (boot) | | Tzsw | 2111 | 2110 | 1 (boot) | -| Uboot Env | 2500 | 2500 | 0 (user) | +| Uboot Env | 2560 | 2560 | 0 (user) | -------------------------------------
5. Prepare the SD boot card - with SD card reader ================================================= To prepare bootable media you need boot binaries provided by hardkernel. -File "boot.tar.gz" (link in point 3.) contains: -- E4412_S.bl1.HardKernel.bin -- E4412_S.tzsw.signed.bin -- bl2.signed.bin +From the downloaded files, You can find: +- bl1.bin +- tzsw.bin +- bl2.bin - sd_fusing.sh - u-boot.bin +(The file names can be slightly different, but you can distinguish what they are +without problem)
This is all you need to boot this board. But if you want to use your custom u-boot then you need to change u-boot.bin with your own u-boot binary* @@ -56,7 +69,7 @@ and run the script "sd_fusing.sh" - this script is valid only for SD card. The proper binary file of current U-boot is u-boot-dtb.bin.
quick steps for Linux: -- extract boot.tar.gz +- Download all files from the link at point 3 and extract it if needed. - put any SD card into the SD reader - check the device with "dmesg" - run ./sd_fusing.sh /dev/sdX - where X is SD card device (but not a partition) @@ -66,7 +79,7 @@ Check if Hardkernel U-boot is booting, and next do the same with your U-boot. with a eMMC card reader (boot from eMMC card slot) ===================================================== To boot the device from the eMMC slot you should use a special card reader -which supports eMMC partiion switch. All of the boot binaries are stored +which supports eMMC partition switch. All of the boot binaries are stored on the eMMC boot partition which is normally hidden.
The "sd_fusing.sh" script can be used after updating offsets of binaries @@ -81,8 +94,8 @@ But then the device can boot only from the SD card slot.
8. Prepare the boot media using Hardkernel U-boot ================================================= -You can update the U-boot to the custom one if you have an working bootloader -delivered with the board on a eMMC/SD card. Then follow the steps: +You can update the U-boot to the custom one if you have a working bootloader +delivered with the board on the eMMC/SD card. Then follow the steps: - install the android fastboot tool - connect a micro usb cable to the board - on the U-boot prompt, run command: fastboot (as a root) @@ -91,7 +104,7 @@ delivered with the board on a eMMC/SD card. Then follow the steps:
9. Partition layout ==================== -Default U-boot environment is setup for fixed partiion layout. +Default U-boot environment is setup for fixed partition layout.
Partition table: MSDOS. Disk layout and files as listed in the table below. ----- ------ ------ ------ -------- --------------------------------- @@ -106,6 +119,7 @@ Partition table: MSDOS. Disk layout and files as listed in the table below. Supported fdt files are: - exynos4412-odroidx2.dtb - exynos4412-odroidu3.dtb +- exynos5422-odroidxu3.dtb
Supported kernel files are: - Image.itb @@ -144,6 +158,7 @@ And the boot sequence is:
11. USB host support ==================== +NOTE: This section is only for Odroid X2/U3.
The ethernet can be accessed after starting the USB subsystem in U-Boot. The adapter does not come with a preconfigured MAC address, and hence it needs

On 12/12/14 14:45, Hyungwon Hwang wrote:
This is v11 of the patchset adding support Odroud XU3 board.
link to the previous version: v2: https://www.mail-archive.com/u-boot@lists.denx.de/msg152275.html v3: https://www.mail-archive.com/u-boot%40lists.denx.de/msg152677.html v4: https://patchwork.ozlabs.org/patch/407411/ v5: https://patchwork.ozlabs.org/patch/407941/ v6: https://patchwork.ozlabs.org/patch/408647/ v7: https://patchwork.ozlabs.org/patch/410204/ v8: https://patchwork.ozlabs.org/patch/410709/ v9: https://patchwork.ozlabs.org/patch/415514/ v10: https://patchwork.ozlabs.org/patch/416720/
The patchset by Akshay Saraswat is already merged into u-boot-samsung. Please ignore the instruction about the additional patchset in v8.
How to test this patch:
- git clone http://git.denx.de/u-boot-samsung.git
- Apply this patchset
- make ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf- odroid-xu3_config
- make ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf- -j8
- Now you can use u-boot-dtb.bin for your downloading
WARNING: (update in V10) It was impossible to make the u-boot image smaller than 335872 bytes, and also I did not want to waste my time to make it fit for that restriction, because the discussion about this issue is in progress in malining list. I used BL2 by Suriyan Ramasami suriyan.r@gmail.com which the restriction is removed for testing. If you need the BL2 for testing, please contact me or Suriyan.
Note: If you use micro SD card for your test you have to apply the below patch additionally. This patch is needed, because micro sd card is recognized as MMC1 instead of MMC0. Additional work is needed to make it work regardless of device id.
Thanks for Sjoerd Simons. Not only did he comment my patchset, but he also made real patch for me. I squashed some part of that patchset, and included the remainings into my patchset.
diff --git a/include/configs/exynos5-common.h b/include/configs/exynos5-common.h index ba591e7..437eaae 100644 --- a/include/configs/exynos5-common.h +++ b/include/configs/exynos5-common.h @@ -109,7 +109,7 @@
#define CONFIG_SYS_MONITOR_BASE 0x00000000
-#define CONFIG_SYS_MMC_ENV_DEV 0 +#define CONFIG_SYS_MMC_ENV_DEV 1
#define CONFIG_SECURE_BL1_ONLY
Changes for v2:
- Add a patch to add new common setup header file for Odroid X2/U3
and Odroid XU3
Changes for v3:
- Remove the patch which adds new common setup header file from v2
- Remove the wrong patch to fix GPIO information of Exynos 5800
- Remove unnecessary node from DT file
- Remove unnecessary features from config file
- Fix some trivial typos in comments
Changes for v4:
- Add MMC FIFO buffer's configuration to DT file
- Make CONFIG_OF_CONTROL be set by the target information
- Add basic document to doc/README.odroid-xu3
- Add CONFIG_CMD_EXT4 to config file
- Add environment size and offset to config file
- Add extra default environment to make bootable without modification
- Remove unnecessary features from config file
Changes for v5:
- Add the specific build instruction
- Update the information of patchset by Akshay Saraswat
- Convert /include/ to #include in DT file
Changes for v6:
- Separate out the documentation to new commit
- Remove unnecessary header file inclusuib from the board-specific setup file
- Make the function board_clock_init be declared, only when CONFIG_BOARD_EARLY_INIT_F is defined
Changes for v7:
- Fix several errata in the documentation
- Remove OF_CONTROL dependency from !SPL_BUILD
Changes for v8:
- Remove unnecessary properties in DT mmc node
Changes for v9:
- Remove the first patch which change GPIO entries order. It became useless,
after DT support is added
- Remove useless variables in the default environment
- Add the new contents to the documentation of Odroid X2/U2, instead of
making new document for Odorid XU3
- Remove the detailed information in the header file, and leave the
reference to the documentation
Changes for v10:
- Move the non common configs in Exynos5420 config file to each board file
- Remove the config unsets which are added to make the result image small This is needless now, because the image is not small enough even though these unsets are added.
- Remove redundant DT node and properties
- Remove the odroid-xu3 board file and make odroid-xu3 a variant of smdk5420
- Fix some errata in documentation
- Include the patch by Sjoerd Simons as 4th patch
Changes for v11:
- Move the include point of exynos5420-common.h after CONFIG_ENV_IS_IN_SPI_FLASH in smdk5420.h
- Remove duplicated CONFIG_CMD_EXT2/EXT4/FAT from odroid_xu3.h
- Fix the typo in the comment, which is found in odroid_xu3.h
- Add a comment to specify not available networking yet
- Remove the patch abou EHCI
Hyungwon Hwang (3): config: exynos5420: move non common configs to specific board files Odroid-XU3: Add support for Odroid-XU3 Odroid-XU3: Add documentation for Odroid-XU3
arch/arm/cpu/armv7/exynos/Kconfig | 4 +++ arch/arm/dts/Makefile | 3 ++- arch/arm/dts/exynos5422-odroidxu3.dts | 45 +++++++++++++++++++++++++++++++ board/samsung/smdk5420/Kconfig | 13 +++++++++ configs/odroid-xu3_defconfig | 4 +++ doc/README.odroid | 47 +++++++++++++++++++++----------- include/configs/exynos5420-common.h | 18 ------------- include/configs/odroid_xu3.h | 51 +++++++++++++++++++++++++++++++++++ include/configs/peach-pi.h | 6 +++++ include/configs/peach-pit.h | 6 +++++ include/configs/smdk5420.h | 11 ++++++++ 11 files changed, 173 insertions(+), 35 deletions(-) create mode 100644 arch/arm/dts/exynos5422-odroidxu3.dts create mode 100644 configs/odroid-xu3_defconfig create mode 100644 include/configs/odroid_xu3.h
applied to u-boot-samsung.
Thanks, Minkyu Kang.
participants (2)
-
Hyungwon Hwang
-
Minkyu Kang