From: Ross Burton <[email protected]>
This is a new 64-bit "generic" Arm machine, that expects the hardware to
be SystemReady compatible.
Signed-off-by: Ross Burton <[email protected]>
---
.../conf/templates/default/local.conf.sample | 1 +
meta-yocto-bsp/README.hardware.md | 18 ++++++++++-
meta-yocto-bsp/conf/machine/genericarm64.conf | 31 +++++++++++++++++++
.../linux/linux-yocto_6.6.bbappend | 5 +++
meta-yocto-bsp/wic/genericarm64.wks.in | 11 +++++++
5 files changed, 65 insertions(+), 1 deletion(-)
create mode 100644 meta-yocto-bsp/conf/machine/genericarm64.conf
create mode 100644 meta-yocto-bsp/wic/genericarm64.wks.in
diff --git a/meta-poky/conf/templates/default/local.conf.sample b/meta-poky/conf/templates/default/local.conf.sample
index 5fb6944f3f0..1a93c9bdcf3 100644
--- a/meta-poky/conf/templates/default/local.conf.sample
+++ b/meta-poky/conf/templates/default/local.conf.sample
@@ -31,6 +31,7 @@
# demonstration purposes:
#
#MACHINE ?= "beaglebone-yocto"
+#MACHINE ?= "genericarm64"
#MACHINE ?= "genericx86"
#MACHINE ?= "genericx86-64"
#
diff --git a/meta-yocto-bsp/README.hardware.md b/meta-yocto-bsp/README.hardware.md
index a8f38cb21a6..e84c3e0e3dc 100644
--- a/meta-yocto-bsp/README.hardware.md
+++ b/meta-yocto-bsp/README.hardware.md
@@ -28,6 +28,7 @@ Hardware Reference Boards
The following boards are supported by the meta-yocto-bsp layer:
* Texas Instruments Beaglebone (beaglebone-yocto)
+ * General 64-bit Arm SystemReady platforms (genericarm64)
* General IA platforms (genericx86 and genericx86-64)
For more information see the board's section below. The appropriate MACHINE
@@ -55,7 +56,8 @@ Consumer Devices
The following consumer devices are supported by the meta-yocto-bsp layer:
- * Intel x86 based PCs and devices (genericx86)
+ * Arm-based SystemReady devices (genericarm64)
+ * Intel x86 based PCs and devices (genericx86 and genericx86-64)
For more information see the device's section below. The appropriate MACHINE
variable value corresponding to the device is given in brackets.
@@ -126,6 +128,20 @@ USB Device:
dd command to write the image to a USB stick.
+SystemReady Arm Platforms
+=========================
+
+The genericarm64 MACHINE is designed to work on standard SystemReady IR/SR
+compliant boards with preinstalled firmware.
+
+The genericarm64 MACHINE is currently tested on the following platforms:
+
+ * Texas Instruments BeaglePlay (IR)
+
+The images built are EFI bootable disk images and can be written directly to a
+SD card for booting, for example.
+
+
Texas Instruments Beaglebone (beaglebone-yocto)
===============================================
diff --git a/meta-yocto-bsp/conf/machine/genericarm64.conf b/meta-yocto-bsp/conf/machine/genericarm64.conf
new file mode 100644
index 00000000000..33ffa3fc019
--- /dev/null
+++ b/meta-yocto-bsp/conf/machine/genericarm64.conf
@@ -0,0 +1,31 @@
+#@TYPE: Machine
+#@NAME: genericarm64
+#@DESCRIPTION: Generic Arm64 machine for typical SystemReady IR/ES platforms, which
+#have working firmware and boot via EFI.
+
+require conf/machine/include/arm/arch-armv8a.inc
+
+# Arm Base System Architecture says v8.0+ is allowed, but FEAT_CRC32 is required
+DEFAULTTUNE = "armv8a-crc"
+
+MACHINE_FEATURES = "acpi alsa bluetooth efi keyboard pci qemu-usermode rtc screen usbhost vfat wifi"
+
+KERNEL_IMAGETYPE = "Image"
+PREFERRED_PROVIDER_virtual/kernel ?= "linux-yocto"
+
+# Install all the kernel modules into the rootfs
+MACHINE_EXTRA_RRECOMMENDS += "kernel-modules"
+# Install selected pieces of firmware
+MACHINE_EXTRA_RRECOMMENDS += "linux-firmware-wl12xx linux-firmware-wl18xx linux-firmware-wlcommon linux-firmware-rtl-nic"
+
+# Use an initramfs and populate it with the kernel modules and key firmware
+INITRAMFS_IMAGE ?= "core-image-initramfs-boot"
+PACKAGE_INSTALL:append:pn-core-image-initramfs-boot = " kernel-modules linux-firmware-rtl-nic"
+
+IMAGE_FSTYPES ?= "wic"
+WKS_FILE ?= "genericarm64.wks.in"
+
+EFI_PROVIDER ?= "${@bb.utils.contains("DISTRO_FEATURES", "systemd", "systemd-boot", "grub-efi", d)}"
+
+# Try to bring up one physical serial console, or a virtualized serial console
+SERIAL_CONSOLES ?= "115200;ttyAMA0 115200;hvc0"
diff --git a/meta-yocto-bsp/recipes-kernel/linux/linux-yocto_6.6.bbappend b/meta-yocto-bsp/recipes-kernel/linux/linux-yocto_6.6.bbappend
index 8e465c241e8..ca7b2b09df7 100644
--- a/meta-yocto-bsp/recipes-kernel/linux/linux-yocto_6.6.bbappend
+++ b/meta-yocto-bsp/recipes-kernel/linux/linux-yocto_6.6.bbappend
@@ -1,19 +1,24 @@
+KBRANCH:genericarm64 = "v6.6/standard/base"
KBRANCH:genericx86 = "v6.6/standard/base"
KBRANCH:genericx86-64 = "v6.6/standard/base"
KBRANCH:beaglebone-yocto = "v6.6/standard/beaglebone"
+KMACHINE:genericarm64 ?= "genericarm64"
KMACHINE:genericx86 ?= "common-pc"
KMACHINE:genericx86-64 ?= "common-pc-64"
KMACHINE:beaglebone-yocto ?= "beaglebone"
+SRCREV_machine:genericarm64 ?= "e064a7d658a30b027b999183e21cd37305caff2a"
SRCREV_machine:genericx86 ?= "332d4668fcc32826907d4f3c4938845206006089"
SRCREV_machine:genericx86-64 ?= "332d4668fcc32826907d4f3c4938845206006089"
SRCREV_machine:beaglebone-yocto ?= "332d4668fcc32826907d4f3c4938845206006089"
+COMPATIBLE_MACHINE:genericarm64 = "genericarm64"
COMPATIBLE_MACHINE:genericx86 = "genericx86"
COMPATIBLE_MACHINE:genericx86-64 = "genericx86-64"
COMPATIBLE_MACHINE:beaglebone-yocto = "beaglebone-yocto"
+LINUX_VERSION:genericarm64 = "6.6.18"
LINUX_VERSION:genericx86 = "6.6.15"
LINUX_VERSION:genericx86-64 = "6.6.15"
LINUX_VERSION:beaglebone-yocto = "6.6.15"
diff --git a/meta-yocto-bsp/wic/genericarm64.wks.in b/meta-yocto-bsp/wic/genericarm64.wks.in
new file mode 100644
index 00000000000..f76e5444be4
--- /dev/null
+++ b/meta-yocto-bsp/wic/genericarm64.wks.in
@@ -0,0 +1,11 @@
+# short-description: Create an EFI disk image
+# long-description: Creates a partitioned EFI disk image that the user
+# can directly dd to boot media.
+
+part /boot --source bootimg-efi --sourceparams="loader=${EFI_PROVIDER},initrd=${INITRAMFS_IMAGE}-${MACHINE}.${INITRAMFS_FSTYPES}" --label boot --active --align 1024 --use-uuid
+
+part swap --size 32 --label swap --fstype=swap --use-uuid
+
+part / --source rootfs --fstype=ext4 --label root --align 1024 --use-uuid
+
+bootloader --ptable gpt --timeout=5 --append="rootwait rootfstype=ext4"
--
2.34.1
lmpx.com only provides a reader for public news (NNTP) servers. It is not
affiliated with the servers or forums shown here and is not responsible for
the content of articles, which is written by their respective authors.