[PATCH 0/2] add bookworm versions of nanopi-neo

15 views
Skip to first unread message

Felix Moessbauer

unread,
Sep 14, 2023, 3:42:44 AM9/14/23
to isar-...@googlegroups.com, daniel.bo...@siemens.com, jan.k...@siemens.com, cedric.h...@siemens.com, Felix Moessbauer
This series adds two bookworm targets for the nanopi-neo board.
The standard version uses the classical u-boot boot chain and by
that makes it easy to use device-tree-overlays. The second patch
adds a version using EFI boot, which makes it possible to add
patterns like swupdate from CIP-Core. However, we split these to,
as the support for device-tree overlays highly depends on the EFI
booloader and support for that is not widely available.

Best regards,
Felix Moessbauer

Felix Moessbauer (2):
add nanopi-neo-bookworm target
add EFI boot version of nanopi-neo target

meta-isar/conf/machine/nanopi-neo-efi.conf | 13 +++++++++++++
.../conf/multiconfig/nanopi-neo-bookworm.conf | 5 +++++
.../conf/multiconfig/nanopi-neo-efi-bookworm.conf | 5 +++++
.../lib/wic/canned-wks/nanopi-neo-efi.wks.in | 15 +++++++++++++++
testsuite/citest.py | 2 ++
5 files changed, 40 insertions(+)
create mode 100644 meta-isar/conf/machine/nanopi-neo-efi.conf
create mode 100644 meta-isar/conf/multiconfig/nanopi-neo-bookworm.conf
create mode 100644 meta-isar/conf/multiconfig/nanopi-neo-efi-bookworm.conf
create mode 100644 meta-isar/scripts/lib/wic/canned-wks/nanopi-neo-efi.wks.in

--
2.34.1

Felix Moessbauer

unread,
Sep 14, 2023, 3:42:50 AM9/14/23
to isar-...@googlegroups.com, daniel.bo...@siemens.com, jan.k...@siemens.com, cedric.h...@siemens.com, Felix Moessbauer
This target is based on the classical u-boot boot chain to
allow easy use of device tree overlays.

Signed-off-by: Felix Moessbauer <felix.mo...@siemens.com>
---
meta-isar/conf/multiconfig/nanopi-neo-bookworm.conf | 5 +++++
testsuite/citest.py | 1 +
2 files changed, 6 insertions(+)
create mode 100644 meta-isar/conf/multiconfig/nanopi-neo-bookworm.conf

diff --git a/meta-isar/conf/multiconfig/nanopi-neo-bookworm.conf b/meta-isar/conf/multiconfig/nanopi-neo-bookworm.conf
new file mode 100644
index 00000000..e11bf37e
--- /dev/null
+++ b/meta-isar/conf/multiconfig/nanopi-neo-bookworm.conf
@@ -0,0 +1,5 @@
+# This software is a part of ISAR.
+# Copyright (C) 2023 Siemens AG
+
+MACHINE ?= "nanopi-neo"
+DISTRO ?= "debian-bookworm"
diff --git a/testsuite/citest.py b/testsuite/citest.py
index 48b10286..73dddaf3 100755
--- a/testsuite/citest.py
+++ b/testsuite/citest.py
@@ -197,6 +197,7 @@ class NoCrossTest(CIBaseTest):
'mc:virtualbox-bullseye:isar-image-base',
'mc:bananapi-bullseye:isar-image-base',
'mc:nanopi-neo-bullseye:isar-image-base',
+ 'mc:nanopi-neo-bookworm:isar-image-base',
'mc:stm32mp15x-bullseye:isar-image-base',
'mc:qemuamd64-focal:isar-image-ci',
'mc:qemuamd64-bookworm:isar-image-ci',
--
2.34.1

Felix Moessbauer

unread,
Sep 14, 2023, 3:42:55 AM9/14/23
to isar-...@googlegroups.com, daniel.bo...@siemens.com, jan.k...@siemens.com, cedric.h...@siemens.com, Felix Moessbauer
This patch adds the nanopi-neo-efi machine that implements the EFI boot
chain on the nanopi-neo board. This is only supported from debian
bookworm on, as a more recent u-boot version is required (2021.01 which
is shipped in bullseye does not work).

The EFI boot pattern later can be used to support mechanisms like
swupdate.

Signed-off-by: Felix Moessbauer <felix.mo...@siemens.com>
---
meta-isar/conf/machine/nanopi-neo-efi.conf | 13 +++++++++++++
.../conf/multiconfig/nanopi-neo-efi-bookworm.conf | 5 +++++
.../lib/wic/canned-wks/nanopi-neo-efi.wks.in | 15 +++++++++++++++
testsuite/citest.py | 1 +
4 files changed, 34 insertions(+)
create mode 100644 meta-isar/conf/machine/nanopi-neo-efi.conf
create mode 100644 meta-isar/conf/multiconfig/nanopi-neo-efi-bookworm.conf
create mode 100644 meta-isar/scripts/lib/wic/canned-wks/nanopi-neo-efi.wks.in

diff --git a/meta-isar/conf/machine/nanopi-neo-efi.conf b/meta-isar/conf/machine/nanopi-neo-efi.conf
new file mode 100644
index 00000000..1878c3cc
--- /dev/null
+++ b/meta-isar/conf/machine/nanopi-neo-efi.conf
@@ -0,0 +1,13 @@
+# This software is a part of ISAR.
+# Copyright (c) Siemens AG, 2023
+#
+# SPDX-License-Identifier: MIT
+
+DISTRO_ARCH ?= "armhf"
+
+KERNEL_NAME ?= "armmp"
+
+IMAGE_FSTYPES ?= "wic"
+WKS_FILE ?= "nanopi-neo-efi.wks.in"
+
+IMAGER_INSTALL += "u-boot-sunxi ${SYSTEMD_BOOTLOADER_INSTALL}"
diff --git a/meta-isar/conf/multiconfig/nanopi-neo-efi-bookworm.conf b/meta-isar/conf/multiconfig/nanopi-neo-efi-bookworm.conf
new file mode 100644
index 00000000..02daf94f
--- /dev/null
+++ b/meta-isar/conf/multiconfig/nanopi-neo-efi-bookworm.conf
@@ -0,0 +1,5 @@
+# This software is a part of ISAR.
+# Copyright (C) 2023 Siemens AG
+
+MACHINE ?= "nanopi-neo-efi"
+DISTRO ?= "debian-bookworm"
diff --git a/meta-isar/scripts/lib/wic/canned-wks/nanopi-neo-efi.wks.in b/meta-isar/scripts/lib/wic/canned-wks/nanopi-neo-efi.wks.in
new file mode 100644
index 00000000..7171a23e
--- /dev/null
+++ b/meta-isar/scripts/lib/wic/canned-wks/nanopi-neo-efi.wks.in
@@ -0,0 +1,15 @@
+#
+# Copyright (c) Siemens AG, 2023
+#
+# SPDX-License-Identifier: MIT
+
+# Newer SoCs (tested on H2+, A64, H5, H6) can also load the SPL from sector 256 (128KB)
+# of an SD card or eMMC, if no valid eGON/TOC0 signature is found at 8KB. This is required
+# to not overlap with the GPT header.
+# https://linux-sunxi.org/Bootable_SD_card#SD_Card_Layout
+part u-boot --source rawcopy --sourceparams "file=/usr/lib/u-boot/nanopi_neo/u-boot-sunxi-with-spl.bin" --no-table --align 128
+
+part /boot --use-uuid --source bootimg-efi-isar --sourceparams="loader=systemd-boot" --label efi --part-type EF00 --align 1024
+part / --use-uuid --source rootfs --fstype=ext4 --mkfs-extraopts "-T default" --label platform --active --align 1024 --exclude-path boot
+
+bootloader --ptable gpt --timeout 0 --append "rootwait"
diff --git a/testsuite/citest.py b/testsuite/citest.py
index 73dddaf3..5e8299d6 100755
--- a/testsuite/citest.py
+++ b/testsuite/citest.py
@@ -134,6 +134,7 @@ class CrossTest(CIBaseTest):
'mc:qemuarm-bookworm:isar-image-ci',
'mc:qemuarm64-bookworm:isar-image-ci',
'mc:qemuarm64-focal:isar-image-base',
+ 'mc:nanopi-neo-efi-bookworm:isar-image-base',
]

self.init()
--
2.34.1

Uladzimir Bely

unread,
Sep 20, 2023, 4:42:31 AM9/20/23
to Felix Moessbauer, isar-...@googlegroups.com
On Thu, 2023-09-14 at 07:42 +0000, 'Felix Moessbauer' via isar-users
wrote:
New multiconfig records should also be added to local.conf.sample,
otherwise CI fails with:
"ERROR: Multiconfig dependency mc:nanopi-neo-efi-bookworm:isar-image-
base depends on nonexistent multiconfig configuration named nanopi-neo-
efi-bookworm"

By the way, we now have different "local.conf.sample" files in both
"meta-isar" and "meta-test" layers and should think about possibility
of reusing the code in them...


Felix Moessbauer

unread,
Sep 21, 2023, 6:42:34 AM9/21/23
to isar-...@googlegroups.com, daniel.bo...@siemens.com, jan.k...@siemens.com, cedric.h...@siemens.com, ub...@ilbers.de, Felix Moessbauer
This series adds two bookworm targets for the nanopi-neo board.
The standard version uses the classical u-boot boot chain and by
that makes it easy to use device-tree-overlays. The second patch
adds a version using EFI boot, which makes it possible to add
patterns like swupdate from CIP-Core. However, we split these to,
as the support for device-tree overlays highly depends on the EFI
booloader and support for that is not widely available.

Changes since v1:

- add multiconfig entries to local.conf.sample

Best regards,
Felix Moessbauer

Felix Moessbauer (2):
add nanopi-neo-bookworm target
add EFI boot version of nanopi-neo target

meta-isar/conf/local.conf.sample | 2 ++
meta-isar/conf/machine/nanopi-neo-efi.conf | 13 +++++++++++++
.../conf/multiconfig/nanopi-neo-bookworm.conf | 5 +++++
.../conf/multiconfig/nanopi-neo-efi-bookworm.conf | 5 +++++
.../lib/wic/canned-wks/nanopi-neo-efi.wks.in | 15 +++++++++++++++
testsuite/citest.py | 2 ++
6 files changed, 42 insertions(+)
create mode 100644 meta-isar/conf/machine/nanopi-neo-efi.conf
create mode 100644 meta-isar/conf/multiconfig/nanopi-neo-bookworm.conf
create mode 100644 meta-isar/conf/multiconfig/nanopi-neo-efi-bookworm.conf
create mode 100644 meta-isar/scripts/lib/wic/canned-wks/nanopi-neo-efi.wks.in

--
2.39.2

Felix Moessbauer

unread,
Sep 21, 2023, 6:42:39 AM9/21/23
to isar-...@googlegroups.com, daniel.bo...@siemens.com, jan.k...@siemens.com, cedric.h...@siemens.com, ub...@ilbers.de, Felix Moessbauer
This target is based on the classical u-boot boot chain to
allow easy use of device tree overlays.

Signed-off-by: Felix Moessbauer <felix.mo...@siemens.com>
---
meta-isar/conf/local.conf.sample | 1 +
meta-isar/conf/multiconfig/nanopi-neo-bookworm.conf | 5 +++++
testsuite/citest.py | 1 +
3 files changed, 7 insertions(+)
create mode 100644 meta-isar/conf/multiconfig/nanopi-neo-bookworm.conf

diff --git a/meta-isar/conf/local.conf.sample b/meta-isar/conf/local.conf.sample
index 07fcdc3d..5fd45f29 100644
--- a/meta-isar/conf/local.conf.sample
+++ b/meta-isar/conf/local.conf.sample
@@ -69,6 +69,7 @@ BBMULTICONFIG = " \
phyboard-mira-bullseye \
nanopi-neo-buster \
nanopi-neo-bullseye \
+ nanopi-neo-bookworm \
stm32mp15x-bullseye \
virtualbox-bullseye \
rpi-arm-bullseye \
diff --git a/meta-isar/conf/multiconfig/nanopi-neo-bookworm.conf b/meta-isar/conf/multiconfig/nanopi-neo-bookworm.conf
new file mode 100644
index 00000000..e11bf37e
--- /dev/null
+++ b/meta-isar/conf/multiconfig/nanopi-neo-bookworm.conf
@@ -0,0 +1,5 @@
+# This software is a part of ISAR.
+# Copyright (C) 2023 Siemens AG
+
+MACHINE ?= "nanopi-neo"
+DISTRO ?= "debian-bookworm"
diff --git a/testsuite/citest.py b/testsuite/citest.py
index 1e7a32c0..2f832435 100755
--- a/testsuite/citest.py
+++ b/testsuite/citest.py
@@ -197,6 +197,7 @@ class NoCrossTest(CIBaseTest):
'mc:virtualbox-bullseye:isar-image-base',
'mc:bananapi-bullseye:isar-image-base',
'mc:nanopi-neo-bullseye:isar-image-base',
+ 'mc:nanopi-neo-bookworm:isar-image-base',
'mc:stm32mp15x-bullseye:isar-image-base',
'mc:qemuamd64-focal:isar-image-ci',
'mc:qemuamd64-bookworm:isar-image-ci',
--
2.39.2

Felix Moessbauer

unread,
Sep 21, 2023, 6:42:42 AM9/21/23
to isar-...@googlegroups.com, daniel.bo...@siemens.com, jan.k...@siemens.com, cedric.h...@siemens.com, ub...@ilbers.de, Felix Moessbauer
This patch adds the nanopi-neo-efi machine that implements the EFI boot
chain on the nanopi-neo board. This is only supported from debian
bookworm on, as a more recent u-boot version is required (2021.01 which
is shipped in bullseye does not work).

The EFI boot pattern later can be used to support mechanisms like
swupdate.

Signed-off-by: Felix Moessbauer <felix.mo...@siemens.com>
---
meta-isar/conf/local.conf.sample | 1 +
meta-isar/conf/machine/nanopi-neo-efi.conf | 13 +++++++++++++
.../conf/multiconfig/nanopi-neo-efi-bookworm.conf | 5 +++++
.../lib/wic/canned-wks/nanopi-neo-efi.wks.in | 15 +++++++++++++++
testsuite/citest.py | 1 +
5 files changed, 35 insertions(+)
create mode 100644 meta-isar/conf/machine/nanopi-neo-efi.conf
create mode 100644 meta-isar/conf/multiconfig/nanopi-neo-efi-bookworm.conf
create mode 100644 meta-isar/scripts/lib/wic/canned-wks/nanopi-neo-efi.wks.in

diff --git a/meta-isar/conf/local.conf.sample b/meta-isar/conf/local.conf.sample
index 5fd45f29..9ed5e21c 100644
--- a/meta-isar/conf/local.conf.sample
+++ b/meta-isar/conf/local.conf.sample
@@ -70,6 +70,7 @@ BBMULTICONFIG = " \
nanopi-neo-buster \
nanopi-neo-bullseye \
nanopi-neo-bookworm \
+ nanopi-neo-efi-bookworm \
stm32mp15x-bullseye \
virtualbox-bullseye \
rpi-arm-bullseye \
diff --git a/meta-isar/conf/machine/nanopi-neo-efi.conf b/meta-isar/conf/machine/nanopi-neo-efi.conf
new file mode 100644
index 00000000..1878c3cc
--- /dev/null
+++ b/meta-isar/conf/machine/nanopi-neo-efi.conf
@@ -0,0 +1,13 @@
+# This software is a part of ISAR.
+# Copyright (c) Siemens AG, 2023
+#
+# SPDX-License-Identifier: MIT
+
+DISTRO_ARCH ?= "armhf"
+
+KERNEL_NAME ?= "armmp"
+
+IMAGE_FSTYPES ?= "wic"
+WKS_FILE ?= "nanopi-neo-efi.wks.in"
+
+IMAGER_INSTALL += "u-boot-sunxi ${SYSTEMD_BOOTLOADER_INSTALL}"
diff --git a/meta-isar/conf/multiconfig/nanopi-neo-efi-bookworm.conf b/meta-isar/conf/multiconfig/nanopi-neo-efi-bookworm.conf
new file mode 100644
index 00000000..02daf94f
--- /dev/null
+++ b/meta-isar/conf/multiconfig/nanopi-neo-efi-bookworm.conf
@@ -0,0 +1,5 @@
+# This software is a part of ISAR.
+# Copyright (C) 2023 Siemens AG
+
+MACHINE ?= "nanopi-neo-efi"
+DISTRO ?= "debian-bookworm"
diff --git a/meta-isar/scripts/lib/wic/canned-wks/nanopi-neo-efi.wks.in b/meta-isar/scripts/lib/wic/canned-wks/nanopi-neo-efi.wks.in
new file mode 100644
index 00000000..7171a23e
--- /dev/null
+++ b/meta-isar/scripts/lib/wic/canned-wks/nanopi-neo-efi.wks.in
@@ -0,0 +1,15 @@
+#
+# Copyright (c) Siemens AG, 2023
+#
+# SPDX-License-Identifier: MIT
+
+# Newer SoCs (tested on H2+, A64, H5, H6) can also load the SPL from sector 256 (128KB)
+# of an SD card or eMMC, if no valid eGON/TOC0 signature is found at 8KB. This is required
+# to not overlap with the GPT header.
+# https://linux-sunxi.org/Bootable_SD_card#SD_Card_Layout
+part u-boot --source rawcopy --sourceparams "file=/usr/lib/u-boot/nanopi_neo/u-boot-sunxi-with-spl.bin" --no-table --align 128
+
+part /boot --use-uuid --source bootimg-efi-isar --sourceparams="loader=systemd-boot" --label efi --part-type EF00 --align 1024
+part / --use-uuid --source rootfs --fstype=ext4 --mkfs-extraopts "-T default" --label platform --active --align 1024 --exclude-path boot
+
+bootloader --ptable gpt --timeout 0 --append "rootwait"
diff --git a/testsuite/citest.py b/testsuite/citest.py
index 2f832435..7304efe6 100755
--- a/testsuite/citest.py
+++ b/testsuite/citest.py
@@ -134,6 +134,7 @@ class CrossTest(CIBaseTest):
'mc:qemuarm-bookworm:isar-image-ci',
'mc:qemuarm64-bookworm:isar-image-ci',
'mc:qemuarm64-focal:isar-image-base',
+ 'mc:nanopi-neo-efi-bookworm:isar-image-base',
]

self.init()
--
2.39.2

Uladzimir Bely

unread,
Sep 25, 2023, 1:56:09 AM9/25/23
to Felix Moessbauer, isar-...@googlegroups.com, daniel.bo...@siemens.com, jan.k...@siemens.com, cedric.h...@siemens.com
Applied to next, thanks.
Reply all
Reply to author
Forward
0 new messages