public inbox for isar-users@googlegroups.com
 help / color / mirror / Atom feed
From: Jan Kiszka <jan.kiszka@siemens.com>
To: isar-users <isar-users@googlegroups.com>
Cc: Nishanth Menon <nm@ti.com>
Subject: [PATCH 8/9] Add support for the BeaglePlay board
Date: Sun,  7 Jan 2024 13:54:15 +0100	[thread overview]
Message-ID: <f158b7531b4384421203602a186e6ff0c349cf49.1704632056.git.jan.kiszka@siemens.com> (raw)
In-Reply-To: <cover.1704632056.git.jan.kiszka@siemens.com>

From: Jan Kiszka <jan.kiszka@siemens.com>

This creates a minimal image for the BeaglePlay board [1], using UEFI as
boot method.

That is requiring some extra work so that the image can also be used on
SD cards: The ROM loader only supports legacy DOS partition tables, but
UEFI needs GPT. We address this by creating a hybrid image with both
partition tables in place, first allowing wic to generate a GPT table,
then using fdisk to add a DOS partition entry at least for the UEFI boot
partition.

[1] https://www.beagleboard.org/boards/beagleplay

Signed-off-by: Jan Kiszka <jan.kiszka@siemens.com>
---
 kas/machine/Kconfig                           |  5 ++++
 kas/machine/beagleplay.yaml                   |  9 +++++++
 .../imagetypes_beagleplay_hybrid.bbclass      | 25 +++++++++++++++++++
 meta-isar/conf/machine/beagleplay.conf        | 24 ++++++++++++++++++
 meta-isar/conf/mc.conf                        |  1 +
 .../conf/multiconfig/beagleplay-bookworm.conf |  7 ++++++
 .../lib/wic/canned-wks/beagleplay.wks.in      | 11 ++++++++
 7 files changed, 82 insertions(+)
 create mode 100644 kas/machine/beagleplay.yaml
 create mode 100644 meta-isar/classes/imagetypes_beagleplay_hybrid.bbclass
 create mode 100644 meta-isar/conf/machine/beagleplay.conf
 create mode 100644 meta-isar/conf/multiconfig/beagleplay-bookworm.conf
 create mode 100644 meta-isar/scripts/lib/wic/canned-wks/beagleplay.wks.in

diff --git a/kas/machine/Kconfig b/kas/machine/Kconfig
index d0e3963a..b06cddf1 100644
--- a/kas/machine/Kconfig
+++ b/kas/machine/Kconfig
@@ -14,6 +14,10 @@ config MACHINE_BANANAPI
 	bool "bananapi"
 	depends on DEBIAN_BUSTER || DEBIAN_BULLSEYE || DEBIAN_BOOKWORM
 
+config MACHINE_BEAGLEPLAY
+	bool "beagleplay"
+	depends on DEBIAN_BOOKWORM
+
 config MACHINE_CONTAINER_AMD64
 	bool "container-amd64"
 	depends on DEBIAN_BUSTER || DEBIAN_BULLSEYE || DEBIAN_BOOKWORM
@@ -111,6 +115,7 @@ endchoice
 config KAS_INCLUDE_MACHINE
 	string
 	default "kas/machine/bananapi.yaml" if MACHINE_BANANAPI
+	default "kas/machine/beagleplay.yaml" if MACHINE_BEAGLEPLAY
 	default "kas/machine/container-amd64.yaml" if MACHINE_CONTAINER_AMD64
 	default "kas/machine/de0-nano-soc.yaml" if MACHINE_DE0_NANO_SOC
 	default "kas/machine/hikey.yaml" if MACHINE_HIKEY
diff --git a/kas/machine/beagleplay.yaml b/kas/machine/beagleplay.yaml
new file mode 100644
index 00000000..81fc4c32
--- /dev/null
+++ b/kas/machine/beagleplay.yaml
@@ -0,0 +1,9 @@
+# This software is a part of ISAR.
+# Copyright (c) Siemens AG, 2023
+#
+# SPDX-License-Identifier: MIT
+
+header:
+  version: 14
+
+machine: beagleplay
diff --git a/meta-isar/classes/imagetypes_beagleplay_hybrid.bbclass b/meta-isar/classes/imagetypes_beagleplay_hybrid.bbclass
new file mode 100644
index 00000000..00631082
--- /dev/null
+++ b/meta-isar/classes/imagetypes_beagleplay_hybrid.bbclass
@@ -0,0 +1,25 @@
+#
+# Copyright (c) Siemens AG, 2023
+#
+# SPDX-License-Identifier: MIT
+
+IMAGE_TYPEDEP:beagleplay_hybrid = "wic"
+
+IMAGER_INSTALL:beagleplay_hybrid += "gdisk fdisk bmap-tools"
+
+IMAGE_CMD:beagleplay_hybrid() {
+    ln -sf "${IMAGE_FULLNAME}.wic" "${IMAGE_FILE_HOST}"
+    ${SUDO_CHROOT} sh -c '
+        sgdisk "${IMAGE_FILE_CHROOT}" --hybrid 1:EE
+        fdisk "${IMAGE_FILE_CHROOT}" << EOF
+M
+t
+1
+c
+a
+1
+w
+q
+EOF
+        bmaptool create ${IMAGE_FILE_CHROOT} -o ${PP_DEPLOY}/${IMAGE_FULLNAME}.wic.bmap'
+}
diff --git a/meta-isar/conf/machine/beagleplay.conf b/meta-isar/conf/machine/beagleplay.conf
new file mode 100644
index 00000000..8b1a088c
--- /dev/null
+++ b/meta-isar/conf/machine/beagleplay.conf
@@ -0,0 +1,24 @@
+#
+# Copyright (c) Siemens AG, 2023
+#
+# SPDX-License-Identifier: MIT
+
+DISTRO_ARCH ?= "arm64"
+
+KERNEL_NAME ?= "mainline"
+
+DTB_BEAGLEPLAY = "k3-am625-beagleplay.dtb"
+DTB_FILES ?= "${DTB_BEAGLEPLAY}"
+
+IMAGE_CLASSES += "imagetypes_beagleplay_hybrid"
+IMAGE_FSTYPES ?= "wic beagleplay_hybrid"
+WKS_FILE ?= "beagleplay.wks.in"
+IMAGER_INSTALL += "${SYSTEMD_BOOTLOADER_INSTALL} u-boot-beagleplay"
+IMAGER_BUILD_DEPS += "u-boot-beagleplay"
+
+IMAGE_BOOT_FILES = " \
+    /usr/lib/u-boot/beagleplay/tiboot3-am62x-gp-evm.bin;tiboot3.bin \
+    /usr/lib/u-boot/beagleplay/tispl.bin_unsigned;tispl.bin \
+    /usr/lib/u-boot/beagleplay/u-boot.img_unsigned;u-boot.img"
+
+IMAGE_PREINSTALL += "firmware-ti-connectivity"
diff --git a/meta-isar/conf/mc.conf b/meta-isar/conf/mc.conf
index d16f54b5..f1fb50c6 100644
--- a/meta-isar/conf/mc.conf
+++ b/meta-isar/conf/mc.conf
@@ -28,6 +28,7 @@ BBMULTICONFIG = " \
     qemuriscv64-sid \
     bananapi-buster \
     bananapi-bullseye \
+    beagleplay-bookworm \
     de0-nano-soc-buster \
     de0-nano-soc-bullseye \
     hikey-bullseye \
diff --git a/meta-isar/conf/multiconfig/beagleplay-bookworm.conf b/meta-isar/conf/multiconfig/beagleplay-bookworm.conf
new file mode 100644
index 00000000..1720cf5d
--- /dev/null
+++ b/meta-isar/conf/multiconfig/beagleplay-bookworm.conf
@@ -0,0 +1,7 @@
+#
+# Copyright (c) Siemens AG, 2023
+#
+# SPDX-License-Identifier: MIT
+
+MACHINE ?= "beagleplay"
+DISTRO ?= "debian-bookworm"
diff --git a/meta-isar/scripts/lib/wic/canned-wks/beagleplay.wks.in b/meta-isar/scripts/lib/wic/canned-wks/beagleplay.wks.in
new file mode 100644
index 00000000..4a437e89
--- /dev/null
+++ b/meta-isar/scripts/lib/wic/canned-wks/beagleplay.wks.in
@@ -0,0 +1,11 @@
+#
+# Copyright (c) Siemens AG, 2023
+#
+# SPDX-License-Identifier: MIT
+
+part /boot/firmware --source bootimg-partition --fstype=vfat --label firmware --active --align 1024 --size 16M --overhead-factor 1 --extra-space 0 --use-uuid
+part /boot --source bootimg-efi-isar --sourceparams "loader=systemd-boot,dtb=${DTB_BEAGLEPLAY}" --label efi --part-type EF00 --align 1024 --use-uuid
+
+part / --source rootfs --fstype ext4 --mkfs-extraopts "-T default" --label platform --align 1024 --use-uuid --exclude-path boot/
+
+bootloader --ptable gpt --timeout=0 --append "rootwait rw"
-- 
2.35.3


  parent reply	other threads:[~2024-01-07 12:54 UTC|newest]

Thread overview: 18+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2024-01-07 12:54 [PATCH 0/9] Add support for BeaglePlay Jan Kiszka
2024-01-07 12:54 ` [PATCH 1/9] meta-isar: linux-mainline: Update to 6.6.10 Jan Kiszka
2024-01-07 12:54 ` [PATCH 2/9] optee-os: Switch default binary to tee-raw.bin Jan Kiszka
2024-01-07 12:54 ` [PATCH 3/9] u-boot-custom: Allow to set BL31 and TEE from recipes Jan Kiszka
2024-01-07 12:54 ` [PATCH 4/9] u-boot-custom: Allow to define different installation binaries Jan Kiszka
2024-01-07 12:54 ` [PATCH 5/9] beagleplay: Add TF-A recipe Jan Kiszka
2024-01-08 12:49   ` Florian Bezdeka
2024-01-07 12:54 ` [PATCH 6/9] beagleplay: Add OP-TEE recipe Jan Kiszka
2024-01-07 12:54 ` [PATCH 7/9] beagleplay: Add U-Boot recipe Jan Kiszka
2024-01-08 13:17   ` Florian Bezdeka
2024-01-08 13:19     ` Jan Kiszka
2024-01-07 12:54 ` Jan Kiszka [this message]
2024-01-07 16:40   ` [PATCH 8/9] Add support for the BeaglePlay board Jan Kiszka
2024-01-07 12:54 ` [PATCH 9/9] expand-on-first-boot: Preserve MBR on expansion of GPT disks Jan Kiszka
2024-01-08  8:51 ` [PATCH 0/9] Add support for BeaglePlay Anton Mikanovich
2024-01-08 12:18   ` Jan Kiszka
2024-01-08 13:53     ` Anton Mikanovich
2024-01-08 15:07       ` Jan Kiszka

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=f158b7531b4384421203602a186e6ff0c349cf49.1704632056.git.jan.kiszka@siemens.com \
    --to=jan.kiszka@siemens.com \
    --cc=isar-users@googlegroups.com \
    --cc=nm@ti.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox