From b2ae44e06a11c211a2e30aee342d68e376573541 Mon Sep 17 00:00:00 2001 From: Dmitry Ilyin <6576495+widgetii@users.noreply.github.com> Date: Sat, 24 Oct 2026 12:50:52 +0300 Subject: [PATCH 1/2] nor: split layout on hi3519v101 and hi3516av200 CONFIG_OPENIPC_NOR_SPLIT for hi3519v101 and hi3516av200, whose kernel (OpenIPC/linux hisilicon-hi3519v101) finds the split layout from its device tree. misc_init_r() sets verify=n before openipc_helper(). NOR images: u-boot-hi3519v101-nor.bin 162684 bytes, u-boot-hi3516av200-nor.bin 162720 bytes. --- board/hisilicon/hi3516av200/board.c | 3 ++- board/hisilicon/hi3519v101/board.c | 3 ++- openipc/hi3516av200_config | 4 ++++ openipc/hi3519v101_config | 4 ++++ 4 files changed, 12 insertions(+), 2 deletions(-) diff --git a/board/hisilicon/hi3516av200/board.c b/board/hisilicon/hi3516av200/board.c index e6de3b13d737..4054c27c9eb0 100644 --- a/board/hisilicon/hi3516av200/board.c +++ b/board/hisilicon/hi3516av200/board.c @@ -90,8 +90,9 @@ int board_init(void) int misc_init_r(void) { - openipc_helper(); + /* before the scan: a split image clears it, so bootm checks its CRC */ env_set("verify", "n"); + openipc_helper(); return 0; } diff --git a/board/hisilicon/hi3519v101/board.c b/board/hisilicon/hi3519v101/board.c index a621c4eaa929..c4e8e647a21b 100644 --- a/board/hisilicon/hi3519v101/board.c +++ b/board/hisilicon/hi3519v101/board.c @@ -90,8 +90,9 @@ int board_init(void) int misc_init_r(void) { - openipc_helper(); + /* before the scan: a split image clears it, so bootm checks its CRC */ env_set("verify", "n"); + openipc_helper(); return 0; } diff --git a/openipc/hi3516av200_config b/openipc/hi3516av200_config index e2b18d81d7cd..c1e85c401685 100644 --- a/openipc/hi3516av200_config +++ b/openipc/hi3516av200_config @@ -32,3 +32,7 @@ CONFIG_XMEDIA_DISABLE_DOWNLOAD=y # CONFIG_CMD_CREAD is not set # CONFIG_CMD_UGZIP is not set # CONFIG_DDR_TRAINING_V2 is not set + +# The split NOR layout: the kernel (OpenIPC/linux hisilicon-hi3519v101) +# divides one firmware partition from its own device tree. +CONFIG_OPENIPC_NOR_SPLIT=y diff --git a/openipc/hi3519v101_config b/openipc/hi3519v101_config index c49b591b01cf..a299c6cee724 100644 --- a/openipc/hi3519v101_config +++ b/openipc/hi3519v101_config @@ -32,3 +32,7 @@ CONFIG_XMEDIA_DISABLE_DOWNLOAD=y # CONFIG_CMD_CREAD is not set # CONFIG_CMD_UGZIP is not set # CONFIG_DDR_TRAINING_V2 is not set + +# The split NOR layout: the kernel (OpenIPC/linux hisilicon-hi3519v101) +# divides one firmware partition from its own device tree. +CONFIG_OPENIPC_NOR_SPLIT=y From 8322425ff488ce8e0a6797f3715212d0d7736fcf Mon Sep 17 00:00:00 2001 From: Dmitry Ilyin <6576495+widgetii@users.noreply.github.com> Date: Sat, 24 Oct 2026 12:50:52 +0300 Subject: [PATCH 2/2] nor: split layout on hi3536cv100 CONFIG_OPENIPC_NOR_SPLIT for hi3536cv100, whose kernel (OpenIPC/linux hisilicon-hi3536cv100) finds the split layout from its device tree. misc_init_r() sets verify=n before openipc_helper(). NOR image: u-boot-hi3536cv100-nor.bin 143656 bytes. --- board/hisilicon/hi3536c/board.c | 3 ++- openipc/hi3536cv100_config | 4 ++++ 2 files changed, 6 insertions(+), 1 deletion(-) diff --git a/board/hisilicon/hi3536c/board.c b/board/hisilicon/hi3536c/board.c index c5be3c8a0248..224aaab873c8 100644 --- a/board/hisilicon/hi3536c/board.c +++ b/board/hisilicon/hi3536c/board.c @@ -85,8 +85,9 @@ int board_init(void) int misc_init_r(void) { - openipc_helper(); + /* before the scan: a split image clears it, so bootm checks its CRC */ env_set("verify", "n"); + openipc_helper(); return 0; } diff --git a/openipc/hi3536cv100_config b/openipc/hi3536cv100_config index 3dc5a38d4bdb..a6160a2ac8bb 100644 --- a/openipc/hi3536cv100_config +++ b/openipc/hi3536cv100_config @@ -37,3 +37,7 @@ CONFIG_XMEDIA_DISABLE_DOWNLOAD=y # CONFIG_CMD_CREAD is not set # CONFIG_CMD_UGZIP is not set # CONFIG_DDR_TRAINING_V2 is not set + +# The split NOR layout: the kernel (OpenIPC/linux hisilicon-hi3536cv100) +# divides one firmware partition from its own device tree. +CONFIG_OPENIPC_NOR_SPLIT=y