diff mbox series

[isar-cip-core,6/6] Enable BeagleBone Black images with A/B SWUpdate support

Message ID c8d5fc471ca1d3d1877d32c894a664086f8c858b.1661931081.git.jan.kiszka@siemens.com (mailing list archive)
State Handled Elsewhere
Headers show
Series Enable SWUpdate support for bbb, update Isar | expand

Commit Message

Jan Kiszka Aug. 31, 2022, 7:31 a.m. UTC
From: Jan Kiszka <jan.kiszka@siemens.com>

We only needs to add the related wks file and configure the EBG watchdog
timeout to 0, and then also this target can gain support for A/B rootfs
SWUpdate with EFI Boot Guard as switcher.

Note that some extra kernel parameters are needed so that the omap_wdt
is properly taken over by the kernel from U-Boot but without petting it
too early during boot. This must only be done once userspace open the
device and signals real system readiness.

Signed-off-by: Jan Kiszka <jan.kiszka@siemens.com>
---
 Kconfig                     |  2 +-
 conf/machine/bbb.conf       |  3 +++
 wic/bbb-efibootguard.wks.in | 21 +++++++++++++++++++++
 3 files changed, 25 insertions(+), 1 deletion(-)
 create mode 100644 wic/bbb-efibootguard.wks.in
diff mbox series

Patch

diff --git a/Kconfig b/Kconfig
index c63000b..d87e0a6 100644
--- a/Kconfig
+++ b/Kconfig
@@ -132,7 +132,7 @@  if IMAGE_FLASH && !KERNEL_4_4 && !KERNEL_4_19
 
 config IMAGE_SWUPDATE
 	bool "SWUpdate support for root partition"
-	depends on TARGET_QEMU_AMD64 || TARGET_SIMATIC_IPC227E || TARGET_QEMU_ARM64 || TARGET_QEMU_ARM
+	depends on TARGET_QEMU_AMD64 || TARGET_SIMATIC_IPC227E || TARGET_QEMU_ARM64 || TARGET_QEMU_ARM || TARGET_BBB
 
 config IMAGE_SECURE_BOOT
 	bool "Secure boot support"
diff --git a/conf/machine/bbb.conf b/conf/machine/bbb.conf
index eaec5a3..c8b4aaa 100644
--- a/conf/machine/bbb.conf
+++ b/conf/machine/bbb.conf
@@ -18,4 +18,7 @@  IMAGE_INSTALL += "u-boot-script"
 USE_CIP_KERNEL_CONFIG = "1"
 KERNEL_DEFCONFIG = "cip-kernel-config/${KERNEL_DEFCONFIG_VERSION}/arm/cip_bbb_defconfig"
 
+# for SWUpdate setups: watchdog is configured in U-Boot
+WDOG_TIMEOUT = "0"
+
 PREFERRED_PROVIDER_u-boot-${MACHINE} = "u-boot-bbb"
diff --git a/wic/bbb-efibootguard.wks.in b/wic/bbb-efibootguard.wks.in
new file mode 100644
index 0000000..e48cc7f
--- /dev/null
+++ b/wic/bbb-efibootguard.wks.in
@@ -0,0 +1,21 @@ 
+#
+# CIP Core, generic profile
+#
+# Copyright (c) Siemens AG, 2019-2022
+#
+# SPDX-License-Identifier: MIT
+#
+
+part --source rawcopy --sourceparams "file=/usr/lib/u-boot/bbb/MLO" --no-table --align 128
+part --source rawcopy --sourceparams "file=/usr/lib/u-boot/bbb/u-boot.img" --no-table --align 384
+
+include ebg-sysparts.inc
+
+part --source rawcopy --sourceparams "file=${IMAGE_FULLNAME}.squashfs" --align 1024 --fixed-size 1G --uuid "fedcba98-7654-3210-cafe-5e0710000001"
+part --source rawcopy --sourceparams "file=${IMAGE_FULLNAME}.squashfs" --align 1024 --fixed-size 1G --uuid "fedcba98-7654-3210-cafe-5e0710000002"
+
+# home and var are extra partitions
+part /home --source rootfs --rootfs-dir=${IMAGE_ROOTFS}/home --fstype=ext4 --label home --align 1024  --size 1G
+part /var --source rootfs --rootfs-dir=${IMAGE_ROOTFS}/var --fstype=ext4 --label var --align 1024  --size 2G
+
+bootloader --ptable gpt --append="rootwait console=ttyO0,115200 omap_wdt.early_enable=1 omap_wdt.nowayout=1 watchdog.handle_boot_enabled=0"