[U-Boot] [PATCH v2] ARM: Samsung: Add Exynos5422-based Odroid HC2 support

From: Dirk Meul dirk.meul@rwth-aachen.de Date: Sun, 14 Oct 2018 17:14:17 +0200
Odroid HC2 board is based on Odroid XU4 board, like the Odroid HC1.
The linux kernel does not provide a hc2 DTB so the hc1 DTB is also used for the Odroid HC2.
Resend because MUA changed whitespace.
Signed-off-by: Dirk Meul dirk.meul@rwth-aachen.de Acked-by: Marek Szyprowski m.szyprowski@samsung.com Reviewed-by: Lukasz Majewski lukma@denx.de --- board/samsung/common/exynos5-dt-types.c | 16 +++++++++++++--- board/samsung/common/exynos5-dt.c | 4 ++-- configs/odroid-xu3_defconfig | 2 +- include/samsung/exynos5-dt-types.h | 2 ++ 4 files changed, 18 insertions(+), 6 deletions(-)
diff --git a/board/samsung/common/exynos5-dt-types.c b/board/samsung/common/exynos5-dt-types.c index 4473968db6..7a86e91877 100644 --- a/board/samsung/common/exynos5-dt-types.c +++ b/board/samsung/common/exynos5-dt-types.c @@ -24,14 +24,15 @@ static const struct udevice_id board_ids[] = { };
/** - * Odroix XU3/XU4/HC1 board revisions (from HC1_MAIN_REV0.1_20170630.pdf): + * Odroix XU3/XU4/HC1/HC2 board revisions (from HC1+_HC2_MAIN_REV0.1_20171017.pdf): * Rev ADCmax Board * 0.1 0 XU3 0.1 * 0.2 372 XU3 0.2 | XU3L - no DISPLAYPORT (probe I2C0:0x40 / INA231) * 0.3 1280 XU4 0.1 * 0.4 739 XU4 0.2 * 0.5 1016 XU4+Air0.1 (Passive cooling) - * 0.6 1308 XU4S 0.1 (HC1) + * 0.6 1309 XU4-HC1 0.1 + * 0.7 1470 XU4-HC1+ 0.1 (HC2) * Use +1% for ADC value tolerance in the array below, the code loops until * the measured ADC value is lower than then ADCmax from the array. */ @@ -39,7 +40,8 @@ struct odroid_rev_info odroid_info[] = { { EXYNOS5_BOARD_ODROID_XU3_REV01, 1, 10, "xu3" }, { EXYNOS5_BOARD_ODROID_XU3_REV02, 2, 375, "xu3" }, { EXYNOS5_BOARD_ODROID_XU4_REV01, 1, 1293, "xu4" }, - { EXYNOS5_BOARD_ODROID_HC1_REV01, 1, 1321, "hc1" }, + { EXYNOS5_BOARD_ODROID_HC1_REV01, 1, 1322, "hc1" }, + { EXYNOS5_BOARD_ODROID_HC2_REV01, 1, 1484, "hc1" }, { EXYNOS5_BOARD_ODROID_UNKNOWN, 0, 4095, "unknown" }, };
@@ -144,6 +146,14 @@ bool board_is_odroidhc1(void) return false; }
+bool board_is_odroidhc2(void) +{ + if (gd->board_type == EXYNOS5_BOARD_ODROID_HC2_REV01) + return true; + + return false; +} + bool board_is_generic(void) { if (gd->board_type == EXYNOS5_BOARD_GENERIC) diff --git a/board/samsung/common/exynos5-dt.c b/board/samsung/common/exynos5-dt.c index 8c3a9ea564..c183965b92 100644 --- a/board/samsung/common/exynos5-dt.c +++ b/board/samsung/common/exynos5-dt.c @@ -179,7 +179,7 @@ char *get_dfu_alt_system(char *interface, char *devstr) { char *info = "Not supported!";
- if (board_is_odroidxu4() || board_is_odroidhc1()) + if (board_is_odroidxu4() || board_is_odroidhc1() || board_is_odroidhc2()) return info;
return env_get("dfu_alt_system"); @@ -192,7 +192,7 @@ char *get_dfu_alt_boot(char *interface, char *devstr) char *alt_boot; int dev_num;
- if (board_is_odroidxu4() || board_is_odroidhc1()) + if (board_is_odroidxu4() || board_is_odroidhc1() || board_is_odroidhc2()) return info;
dev_num = simple_strtoul(devstr, NULL, 10); diff --git a/configs/odroid-xu3_defconfig b/configs/odroid-xu3_defconfig index 258b9781cc..d5c7cc7129 100644 --- a/configs/odroid-xu3_defconfig +++ b/configs/odroid-xu3_defconfig @@ -2,7 +2,7 @@ CONFIG_ARM=y CONFIG_ARCH_EXYNOS=y CONFIG_SYS_TEXT_BASE=0x43E00000 CONFIG_ARCH_EXYNOS5=y -CONFIG_IDENT_STRING=" for ODROID-XU3/XU4/HC1" +CONFIG_IDENT_STRING=" for ODROID-XU3/XU4/HC1/HC2" CONFIG_DISTRO_DEFAULTS=y CONFIG_NR_DRAM_BANKS=8 # CONFIG_SYS_MALLOC_CLEAR_ON_INIT is not set diff --git a/include/samsung/exynos5-dt-types.h b/include/samsung/exynos5-dt-types.h index 8e11af30d1..8fe08fe211 100644 --- a/include/samsung/exynos5-dt-types.h +++ b/include/samsung/exynos5-dt-types.h @@ -9,6 +9,7 @@ enum { EXYNOS5_BOARD_ODROID_XU3_REV02, EXYNOS5_BOARD_ODROID_XU4_REV01, EXYNOS5_BOARD_ODROID_HC1_REV01, + EXYNOS5_BOARD_ODROID_HC2_REV01, EXYNOS5_BOARD_ODROID_UNKNOWN,
EXYNOS5_BOARD_COUNT, @@ -25,5 +26,6 @@ bool board_is_generic(void); bool board_is_odroidxu3(void); bool board_is_odroidxu4(void); bool board_is_odroidhc1(void); +bool board_is_odroidhc2(void);
#endif

On 23/10/18 16:23, Dirk Meul wrote:
From: Dirk Meul dirk.meul@rwth-aachen.de Date: Sun, 14 Oct 2018 17:14:17 +0200
Odroid HC2 board is based on Odroid XU4 board, like the Odroid HC1.
The linux kernel does not provide a hc2 DTB so the hc1 DTB is also used for the Odroid HC2.
Resend because MUA changed whitespace.
Signed-off-by: Dirk Meul dirk.meul@rwth-aachen.de Acked-by: Marek Szyprowski m.szyprowski@samsung.com Reviewed-by: Lukasz Majewski lukma@denx.de
board/samsung/common/exynos5-dt-types.c | 16 +++++++++++++--- board/samsung/common/exynos5-dt.c | 4 ++-- configs/odroid-xu3_defconfig | 2 +- include/samsung/exynos5-dt-types.h | 2 ++ 4 files changed, 18 insertions(+), 6 deletions(-)
applied to u-boot-samsung.
Thanks, Minkyu Kang.

Hi Dirk Meul
On Tue, 23 Oct 2018 at 16:08, Dirk Meul dirk.meul@rwth-aachen.de wrote:
From: Dirk Meul dirk.meul@rwth-aachen.de Date: Sun, 14 Oct 2018 17:14:17 +0200
Odroid HC2 board is based on Odroid XU4 board, like the Odroid HC1.
The linux kernel does not provide a hc2 DTB so the hc1 DTB is also used for the Odroid HC2.
Resend because MUA changed whitespace.
Signed-off-by: Dirk Meul dirk.meul@rwth-aachen.de Acked-by: Marek Szyprowski m.szyprowski@samsung.com Reviewed-by: Lukasz Majewski lukma@denx.de
board/samsung/common/exynos5-dt-types.c | 16 +++++++++++++--- board/samsung/common/exynos5-dt.c | 4 ++-- configs/odroid-xu3_defconfig | 2 +- include/samsung/exynos5-dt-types.h | 2 ++ 4 files changed, 18 insertions(+), 6 deletions(-)
diff --git a/board/samsung/common/exynos5-dt-types.c b/board/samsung/common/exynos5-dt-types.c index 4473968db6..7a86e91877 100644 --- a/board/samsung/common/exynos5-dt-types.c +++ b/board/samsung/common/exynos5-dt-types.c @@ -24,14 +24,15 @@ static const struct udevice_id board_ids[] = { };
/**
- Odroix XU3/XU4/HC1 board revisions (from HC1_MAIN_REV0.1_20170630.pdf):
- Odroix XU3/XU4/HC1/HC2 board revisions (from HC1+_HC2_MAIN_REV0.1_20171017.pdf):
- Rev ADCmax Board
- 0.1 0 XU3 0.1
- 0.2 372 XU3 0.2 | XU3L - no DISPLAYPORT (probe I2C0:0x40 / INA231)
- 0.3 1280 XU4 0.1
- 0.4 739 XU4 0.2
- 0.5 1016 XU4+Air0.1 (Passive cooling)
- 0.6 1308 XU4S 0.1 (HC1)
- 0.6 1309 XU4-HC1 0.1
*/
- 0.7 1470 XU4-HC1+ 0.1 (HC2)
- Use +1% for ADC value tolerance in the array below, the code loops until
- the measured ADC value is lower than then ADCmax from the array.
@@ -39,7 +40,8 @@ struct odroid_rev_info odroid_info[] = { { EXYNOS5_BOARD_ODROID_XU3_REV01, 1, 10, "xu3" }, { EXYNOS5_BOARD_ODROID_XU3_REV02, 2, 375, "xu3" }, { EXYNOS5_BOARD_ODROID_XU4_REV01, 1, 1293, "xu4" },
{ EXYNOS5_BOARD_ODROID_HC1_REV01, 1, 1321, "hc1" },
{ EXYNOS5_BOARD_ODROID_HC1_REV01, 1, 1322, "hc1" },
{ EXYNOS5_BOARD_ODROID_HC2_REV01, 1, 1484, "hc1" }, { EXYNOS5_BOARD_ODROID_UNKNOWN, 0, 4095, "unknown" },
};
@@ -144,6 +146,14 @@ bool board_is_odroidhc1(void) return false; }
+bool board_is_odroidhc2(void) +{
if (gd->board_type == EXYNOS5_BOARD_ODROID_HC2_REV01)
return true;
return false;
+}
bool board_is_generic(void) { if (gd->board_type == EXYNOS5_BOARD_GENERIC) diff --git a/board/samsung/common/exynos5-dt.c b/board/samsung/common/exynos5-dt.c index 8c3a9ea564..c183965b92 100644 --- a/board/samsung/common/exynos5-dt.c +++ b/board/samsung/common/exynos5-dt.c @@ -179,7 +179,7 @@ char *get_dfu_alt_system(char *interface, char *devstr) { char *info = "Not supported!";
if (board_is_odroidxu4() || board_is_odroidhc1())
if (board_is_odroidxu4() || board_is_odroidhc1() || board_is_odroidhc2()) return info; return env_get("dfu_alt_system");
@@ -192,7 +192,7 @@ char *get_dfu_alt_boot(char *interface, char *devstr) char *alt_boot; int dev_num;
if (board_is_odroidxu4() || board_is_odroidhc1())
if (board_is_odroidxu4() || board_is_odroidhc1() || board_is_odroidhc2()) return info; dev_num = simple_strtoul(devstr, NULL, 10);
diff --git a/configs/odroid-xu3_defconfig b/configs/odroid-xu3_defconfig index 258b9781cc..d5c7cc7129 100644 --- a/configs/odroid-xu3_defconfig +++ b/configs/odroid-xu3_defconfig @@ -2,7 +2,7 @@ CONFIG_ARM=y CONFIG_ARCH_EXYNOS=y CONFIG_SYS_TEXT_BASE=0x43E00000 CONFIG_ARCH_EXYNOS5=y -CONFIG_IDENT_STRING=" for ODROID-XU3/XU4/HC1" +CONFIG_IDENT_STRING=" for ODROID-XU3/XU4/HC1/HC2" CONFIG_DISTRO_DEFAULTS=y CONFIG_NR_DRAM_BANKS=8 # CONFIG_SYS_MALLOC_CLEAR_ON_INIT is not set diff --git a/include/samsung/exynos5-dt-types.h b/include/samsung/exynos5-dt-types.h index 8e11af30d1..8fe08fe211 100644 --- a/include/samsung/exynos5-dt-types.h +++ b/include/samsung/exynos5-dt-types.h @@ -9,6 +9,7 @@ enum { EXYNOS5_BOARD_ODROID_XU3_REV02, EXYNOS5_BOARD_ODROID_XU4_REV01, EXYNOS5_BOARD_ODROID_HC1_REV01,
EXYNOS5_BOARD_ODROID_HC2_REV01, EXYNOS5_BOARD_ODROID_UNKNOWN, EXYNOS5_BOARD_COUNT,
@@ -25,5 +26,6 @@ bool board_is_generic(void); bool board_is_odroidxu3(void); bool board_is_odroidxu4(void); bool board_is_odroidhc1(void); +bool board_is_odroidhc2(void);
#endif
I think on reboot boot on Odroid HC1 and Odroid HC2 is broken. I am testing on Arch Linux XU3/XU4 distro and it fails to boot after *warm boot*. I have tested this on Odroid HC1 and Odroid HC2 the result is the same.
Below is the debug logs. ----------------------------------------------------------------------------------------------------- [ 577.135979] usb 4-1: reset SuperSpeed Gen 1 USB device number 2 using xhci-hc d [ 577.312156] reboot: Restarting
U-Boot 2018.11-rc3-00062-g26cc40d8c4-dirty (Nov 12 2018 - 06:51:53 +0000) for ODROID-XU3/XU4/HC1/HC2
CPU: Exynos5422 @ 800 MHz Model: Odroid XU3 based on EXYNOS5422 Board: Odroid XU3 based on EXYNOS5422 DRAM: 2 GiB MMC: EXYNOS DWMMC: 0, EXYNOS DWMMC: 2 Loading Environment from MMC... Card did not respond to voltage select! *** Warning - No block device, using default environment
In: serial Out: serial Err: serial Net: No ethernet found. Hit any key to stop autoboot: 0 MMC Device 1 not found no mmc device at slot 1 Card did not respond to voltage select! switch to partitions #0, OK mmc2 is current device Scanning mmc 2:1... Found U-Boot script /boot/boot.scr 2046 bytes read in 7 ms (285.2 KiB/s) ## Executing script at 50000000 6782384 bytes read in 504 ms (12.8 MiB/s) ** File not found /boot/dtbs/exynos5422-odroid.dtb ** SCRIPT FAILED: continuing... starting USB... USB0: USB EHCI 1.00 USB1: Register 2000140 NbrPorts 2 Starting the controller USB XHCI 1.00 USB2: Register 2000140 NbrPorts 2 Starting the controller USB XHCI 1.00 scanning bus 0 for devices... 1 USB Device(s) found scanning bus 1 for devices... cannot reset port 1!? 2 USB Device(s) found scanning bus 2 for devices... 2 USB Device(s) found scanning usb for storage devices... 1 Storage Device(s) found scanning usb for ethernet devices... 1 Ethernet Device(s) found Waiting for Ethernet connection... done. BOOTP broadcast 1 BOOTP broadcast 2 DHCP client bound to address 10.0.0.154 (848 ms) *** ERROR: `serverip' not set Cannot autoload with TFTPGET missing environment variable: pxeuuid missing environment variable: bootfile Retrieving file: pxelinux.cfg/0A00009A *** ERROR: `serverip' not set missing environment variable: bootfile Retrieving file: pxelinux.cfg/0A00009 *** ERROR: `serverip' not set missing environment variable: bootfile Retrieving file: pxelinux.cfg/0A0000 *** ERROR: `serverip' not set missing environment variable: bootfile Retrieving file: pxelinux.cfg/0A000 *** ERROR: `serverip' not set missing environment variable: bootfile Retrieving file: pxelinux.cfg/0A00 *** ERROR: `serverip' not set missing environment variable: bootfile Retrieving file: pxelinux.cfg/0A0 *** ERROR: `serverip' not set missing environment variable: bootfile Retrieving file: pxelinux.cfg/0A *** ERROR: `serverip' not set missing environment variable: bootfile Retrieving file: pxelinux.cfg/0 *** ERROR: `serverip' not set missing environment variable: bootfile Retrieving file: pxelinux.cfg/default-arm-exynos *** ERROR: `serverip' not set missing environment variable: bootfile Retrieving file: pxelinux.cfg/default-arm *** ERROR: `serverip' not set missing environment variable: bootfile Retrieving file: pxelinux.cfg/default *** ERROR: `serverip' not set Config file not found BOOTP broadcast 1 BOOTP broadcast 2 DHCP client bound to address 10.0.0.154 (567 ms) *** ERROR: `serverip' not set Cannot autoload with TFTPGET BOOTP broadcast 1 DHCP client bound to address 10.0.0.154 (204 ms) *** ERROR: `serverip' not set Cannot autoload with TFTPGET ODROID-XU3 # ---------------------------------------------------------------------------------------------------------------------------------------------- Only after disconnecting and reconnect the power cable it start to boot again normally. ie cold boot. ---------------------------------------------------------------------------------------------------------------------------------------------- U-Boot 2018.11-rc3-00062-g26cc40d8c4-dirty (Nov 12 2018 - 06:51:53 +0000) for ODROID-XU3/XU4/HC1/HC2
CPU: Exynos5422 @ 800 MHz Model: Odroid XU3 based on EXYNOS5422 Board: Odroid XU3 based on EXYNOS5422 Type: hc1 DRAM: 2 GiB MMC: EXYNOS DWMMC: 0, EXYNOS DWMMC: 2 Loading Environment from MMC... Card did not respond to voltage select! *** Warning - No block device, using default environment
In: serial Out: serial Err: serial Net: No ethernet found. Hit any key to stop autoboot: 0 MMC Device 1 not found no mmc device at slot 1 Card did not respond to voltage select! switch to partitions #0, OK mmc2 is current device Scanning mmc 2:1... Found U-Boot script /boot/boot.scr 2046 bytes read in 6 ms (333 KiB/s) ## Executing script at 50000000 6782384 bytes read in 504 ms (12.8 MiB/s) 53878 bytes read in 16 ms (3.2 MiB/s) 5664652 bytes read in 420 ms (12.9 MiB/s) Kernel image @ 0x42000000 [ 0x000000 - 0x677db0 ] ## Flattened Device Tree blob at 43000000 Booting using the fdt blob at 0x43000000 Loading Ramdisk to 4fa99000, end 4fffff8c ... OK Loading Device Tree to 4fa88000, end 4fa98275 ... OK
Is their any other thing I could try to get this thing working.
Best Regards -Anand

Hi Anand Moon,
with U-Boot 2018.11-rc3-00062-g26cc40d8c4 and booting Fedora 28 Server I have no problems with a *warm boot* of my Odroid HC2. So I think this is not a general problem.
My u-boot.bin was created using: $ ARCH=arm CROSS_COMPILE=arm-linux-gnu- make odroid-xu3_defconfig $ ARCH=arm CROSS_COMPILE=arm-linux-gnu- make -j $(nproc) on Fedora 28 Workstation.
BR, Dirk
Am Montag, den 12.11.2018, 13:06 +0530 schrieb Anand Moon:
Hi Dirk Meul
On Tue, 23 Oct 2018 at 16:08, Dirk Meul dirk.meul@rwth-aachen.de wrote:
From: Dirk Meul dirk.meul@rwth-aachen.de Date: Sun, 14 Oct 2018 17:14:17 +0200
Odroid HC2 board is based on Odroid XU4 board, like the Odroid HC1.
The linux kernel does not provide a hc2 DTB so the hc1 DTB is also used for the Odroid HC2.
Resend because MUA changed whitespace.
Signed-off-by: Dirk Meul dirk.meul@rwth-aachen.de Acked-by: Marek Szyprowski m.szyprowski@samsung.com Reviewed-by: Lukasz Majewski lukma@denx.de
board/samsung/common/exynos5-dt-types.c | 16 +++++++++++++--- board/samsung/common/exynos5-dt.c | 4 ++-- configs/odroid-xu3_defconfig | 2 +- include/samsung/exynos5-dt-types.h | 2 ++ 4 files changed, 18 insertions(+), 6 deletions(-)
diff --git a/board/samsung/common/exynos5-dt-types.c b/board/samsung/common/exynos5-dt-types.c index 4473968db6..7a86e91877 100644 --- a/board/samsung/common/exynos5-dt-types.c +++ b/board/samsung/common/exynos5-dt-types.c @@ -24,14 +24,15 @@ static const struct udevice_id board_ids[] = { };
/**
- Odroix XU3/XU4/HC1 board revisions (from
HC1_MAIN_REV0.1_20170630.pdf):
- Odroix XU3/XU4/HC1/HC2 board revisions (from
HC1+_HC2_MAIN_REV0.1_20171017.pdf):
- Rev ADCmax Board
- 0.1 0 XU3 0.1
- 0.2 372 XU3 0.2 | XU3L - no DISPLAYPORT (probe I2C0:0x40
/ INA231)
- 0.3 1280 XU4 0.1
- 0.4 739 XU4 0.2
- 0.5 1016 XU4+Air0.1 (Passive cooling)
- 0.6 1308 XU4S 0.1 (HC1)
- 0.6 1309 XU4-HC1 0.1
- 0.7 1470 XU4-HC1+ 0.1 (HC2)
- Use +1% for ADC value tolerance in the array below, the code
loops until
- the measured ADC value is lower than then ADCmax from the
array. */ @@ -39,7 +40,8 @@ struct odroid_rev_info odroid_info[] = { { EXYNOS5_BOARD_ODROID_XU3_REV01, 1, 10, "xu3" }, { EXYNOS5_BOARD_ODROID_XU3_REV02, 2, 375, "xu3" }, { EXYNOS5_BOARD_ODROID_XU4_REV01, 1, 1293, "xu4" },
{ EXYNOS5_BOARD_ODROID_HC1_REV01, 1, 1321, "hc1" },
{ EXYNOS5_BOARD_ODROID_HC1_REV01, 1, 1322, "hc1" },
{ EXYNOS5_BOARD_ODROID_HC2_REV01, 1, 1484, "hc1" }, { EXYNOS5_BOARD_ODROID_UNKNOWN, 0, 4095, "unknown" },
};
@@ -144,6 +146,14 @@ bool board_is_odroidhc1(void) return false; }
+bool board_is_odroidhc2(void) +{
if (gd->board_type == EXYNOS5_BOARD_ODROID_HC2_REV01)
return true;
return false;
+}
bool board_is_generic(void) { if (gd->board_type == EXYNOS5_BOARD_GENERIC) diff --git a/board/samsung/common/exynos5-dt.c b/board/samsung/common/exynos5-dt.c index 8c3a9ea564..c183965b92 100644 --- a/board/samsung/common/exynos5-dt.c +++ b/board/samsung/common/exynos5-dt.c @@ -179,7 +179,7 @@ char *get_dfu_alt_system(char *interface, char *devstr) { char *info = "Not supported!";
if (board_is_odroidxu4() || board_is_odroidhc1())
if (board_is_odroidxu4() || board_is_odroidhc1() ||
board_is_odroidhc2()) return info;
return env_get("dfu_alt_system");
@@ -192,7 +192,7 @@ char *get_dfu_alt_boot(char *interface, char *devstr) char *alt_boot; int dev_num;
if (board_is_odroidxu4() || board_is_odroidhc1())
if (board_is_odroidxu4() || board_is_odroidhc1() ||
board_is_odroidhc2()) return info;
dev_num = simple_strtoul(devstr, NULL, 10);
diff --git a/configs/odroid-xu3_defconfig b/configs/odroid- xu3_defconfig index 258b9781cc..d5c7cc7129 100644 --- a/configs/odroid-xu3_defconfig +++ b/configs/odroid-xu3_defconfig @@ -2,7 +2,7 @@ CONFIG_ARM=y CONFIG_ARCH_EXYNOS=y CONFIG_SYS_TEXT_BASE=0x43E00000 CONFIG_ARCH_EXYNOS5=y -CONFIG_IDENT_STRING=" for ODROID-XU3/XU4/HC1" +CONFIG_IDENT_STRING=" for ODROID-XU3/XU4/HC1/HC2" CONFIG_DISTRO_DEFAULTS=y CONFIG_NR_DRAM_BANKS=8 # CONFIG_SYS_MALLOC_CLEAR_ON_INIT is not set diff --git a/include/samsung/exynos5-dt-types.h b/include/samsung/exynos5-dt-types.h index 8e11af30d1..8fe08fe211 100644 --- a/include/samsung/exynos5-dt-types.h +++ b/include/samsung/exynos5-dt-types.h @@ -9,6 +9,7 @@ enum { EXYNOS5_BOARD_ODROID_XU3_REV02, EXYNOS5_BOARD_ODROID_XU4_REV01, EXYNOS5_BOARD_ODROID_HC1_REV01,
EXYNOS5_BOARD_ODROID_HC2_REV01, EXYNOS5_BOARD_ODROID_UNKNOWN, EXYNOS5_BOARD_COUNT,
@@ -25,5 +26,6 @@ bool board_is_generic(void); bool board_is_odroidxu3(void); bool board_is_odroidxu4(void); bool board_is_odroidhc1(void); +bool board_is_odroidhc2(void);
#endif
I think on reboot boot on Odroid HC1 and Odroid HC2 is broken. I am testing on Arch Linux XU3/XU4 distro and it fails to boot after *warm boot*. I have tested this on Odroid HC1 and Odroid HC2 the result is the same.
Below is the debug logs.
[ 577.135979] usb 4-1: reset SuperSpeed Gen 1 USB device number 2 using xhci-hc d [ 577.312156] reboot: Restarting
U-Boot 2018.11-rc3-00062-g26cc40d8c4-dirty (Nov 12 2018 - 06:51:53 +0000) for ODROID-XU3/XU4/HC1/HC2
CPU: Exynos5422 @ 800 MHz Model: Odroid XU3 based on EXYNOS5422 Board: Odroid XU3 based on EXYNOS5422 DRAM: 2 GiB MMC: EXYNOS DWMMC: 0, EXYNOS DWMMC: 2 Loading Environment from MMC... Card did not respond to voltage select! *** Warning - No block device, using default environment
In: serial Out: serial Err: serial Net: No ethernet found. Hit any key to stop autoboot: 0 MMC Device 1 not found no mmc device at slot 1 Card did not respond to voltage select! switch to partitions #0, OK mmc2 is current device Scanning mmc 2:1... Found U-Boot script /boot/boot.scr 2046 bytes read in 7 ms (285.2 KiB/s) ## Executing script at 50000000 6782384 bytes read in 504 ms (12.8 MiB/s) ** File not found /boot/dtbs/exynos5422-odroid.dtb ** SCRIPT FAILED: continuing... starting USB... USB0: USB EHCI 1.00 USB1: Register 2000140 NbrPorts 2 Starting the controller USB XHCI 1.00 USB2: Register 2000140 NbrPorts 2 Starting the controller USB XHCI 1.00 scanning bus 0 for devices... 1 USB Device(s) found scanning bus 1 for devices... cannot reset port 1!? 2 USB Device(s) found scanning bus 2 for devices... 2 USB Device(s) found scanning usb for storage devices... 1 Storage Device(s) found scanning usb for ethernet devices... 1 Ethernet Device(s) found Waiting for Ethernet connection... done. BOOTP broadcast 1 BOOTP broadcast 2 DHCP client bound to address 10.0.0.154 (848 ms) *** ERROR: `serverip' not set Cannot autoload with TFTPGET missing environment variable: pxeuuid missing environment variable: bootfile Retrieving file: pxelinux.cfg/0A00009A *** ERROR: `serverip' not set missing environment variable: bootfile Retrieving file: pxelinux.cfg/0A00009 *** ERROR: `serverip' not set missing environment variable: bootfile Retrieving file: pxelinux.cfg/0A0000 *** ERROR: `serverip' not set missing environment variable: bootfile Retrieving file: pxelinux.cfg/0A000 *** ERROR: `serverip' not set missing environment variable: bootfile Retrieving file: pxelinux.cfg/0A00 *** ERROR: `serverip' not set missing environment variable: bootfile Retrieving file: pxelinux.cfg/0A0 *** ERROR: `serverip' not set missing environment variable: bootfile Retrieving file: pxelinux.cfg/0A *** ERROR: `serverip' not set missing environment variable: bootfile Retrieving file: pxelinux.cfg/0 *** ERROR: `serverip' not set missing environment variable: bootfile Retrieving file: pxelinux.cfg/default-arm-exynos *** ERROR: `serverip' not set missing environment variable: bootfile Retrieving file: pxelinux.cfg/default-arm *** ERROR: `serverip' not set missing environment variable: bootfile Retrieving file: pxelinux.cfg/default *** ERROR: `serverip' not set Config file not found BOOTP broadcast 1 BOOTP broadcast 2 DHCP client bound to address 10.0.0.154 (567 ms) *** ERROR: `serverip' not set Cannot autoload with TFTPGET BOOTP broadcast 1 DHCP client bound to address 10.0.0.154 (204 ms) *** ERROR: `serverip' not set Cannot autoload with TFTPGET ODROID-XU3 #
Only after disconnecting and reconnect the power cable it start to boot again normally. ie cold boot.
U-Boot 2018.11-rc3-00062-g26cc40d8c4-dirty (Nov 12 2018 - 06:51:53 +0000) for ODROID-XU3/XU4/HC1/HC2
CPU: Exynos5422 @ 800 MHz Model: Odroid XU3 based on EXYNOS5422 Board: Odroid XU3 based on EXYNOS5422 Type: hc1 DRAM: 2 GiB MMC: EXYNOS DWMMC: 0, EXYNOS DWMMC: 2 Loading Environment from MMC... Card did not respond to voltage select! *** Warning - No block device, using default environment
In: serial Out: serial Err: serial Net: No ethernet found. Hit any key to stop autoboot: 0 MMC Device 1 not found no mmc device at slot 1 Card did not respond to voltage select! switch to partitions #0, OK mmc2 is current device Scanning mmc 2:1... Found U-Boot script /boot/boot.scr 2046 bytes read in 6 ms (333 KiB/s) ## Executing script at 50000000 6782384 bytes read in 504 ms (12.8 MiB/s) 53878 bytes read in 16 ms (3.2 MiB/s) 5664652 bytes read in 420 ms (12.9 MiB/s) Kernel image @ 0x42000000 [ 0x000000 - 0x677db0 ] ## Flattened Device Tree blob at 43000000 Booting using the fdt blob at 0x43000000 Loading Ramdisk to 4fa99000, end 4fffff8c ... OK Loading Device Tree to 4fa88000, end 4fa98275 ... OK
Is their any other thing I could try to get this thing working.
Best Regards -Anand

Hi Dirk,
On Mon, 12 Nov 2018 at 23:54, Dirk Meul dirk.meul@rwth-aachen.de wrote:
Hi Anand Moon,
with U-Boot 2018.11-rc3-00062-g26cc40d8c4 and booting Fedora 28 Server I have no problems with a *warm boot* of my Odroid HC2. So I think this is not a general problem.
My u-boot.bin was created using: $ ARCH=arm CROSS_COMPILE=arm-linux-gnu- make odroid-xu3_defconfig $ ARCH=arm CROSS_COMPILE=arm-linux-gnu- make -j $(nproc) on Fedora 28 Workstation.
BR, Dirk
I could be distro issue with Arch Linux I will recheck on other distro.
Best Regards -Anand
participants (3)
-
Anand Moon
-
Dirk Meul
-
Minkyu Kang