summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorRoss Burton <ross.burton@arm.com>2024-02-28 11:44:15 +0000
committerRichard Purdie <richard.purdie@linuxfoundation.org>2024-03-05 12:26:21 +0000
commit2f4f72fff2b642beff179530a74403fa2c608b64 (patch)
tree14cef82a3e98f307d3c4a131e9360f2541b348d9
parentbe10de34231d2b0081aa0ff7cbc36aef110d7fee (diff)
downloadpoky-2f4f72fff2b642beff179530a74403fa2c608b64.tar.gz
Add genericarm64 MACHINE
This is a new 64-bit "generic" Arm machine, that expects the hardware to be SystemReady IR compatible. (From meta-yocto rev: 68de209f58917d8e7108caacfefc55bbe0e0c5a2) Signed-off-by: Ross Burton <ross.burton@arm.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
-rw-r--r--meta-poky/conf/templates/default/local.conf.sample1
-rw-r--r--meta-yocto-bsp/README.hardware.md18
-rw-r--r--meta-yocto-bsp/conf/machine/genericarm64.conf29
-rw-r--r--meta-yocto-bsp/recipes-kernel/linux/linux-yocto_6.6.bbappend5
-rw-r--r--meta-yocto-bsp/wic/genericarm64.wks.in11
5 files changed, 63 insertions, 1 deletions
diff --git a/meta-poky/conf/templates/default/local.conf.sample b/meta-poky/conf/templates/default/local.conf.sample
index 5fb6944f3f..1a93c9bdcf 100644
--- a/meta-poky/conf/templates/default/local.conf.sample
+++ b/meta-poky/conf/templates/default/local.conf.sample
@@ -31,6 +31,7 @@
31# demonstration purposes: 31# demonstration purposes:
32# 32#
33#MACHINE ?= "beaglebone-yocto" 33#MACHINE ?= "beaglebone-yocto"
34#MACHINE ?= "genericarm64"
34#MACHINE ?= "genericx86" 35#MACHINE ?= "genericx86"
35#MACHINE ?= "genericx86-64" 36#MACHINE ?= "genericx86-64"
36# 37#
diff --git a/meta-yocto-bsp/README.hardware.md b/meta-yocto-bsp/README.hardware.md
index a8f38cb21a..bb8f57913f 100644
--- a/meta-yocto-bsp/README.hardware.md
+++ b/meta-yocto-bsp/README.hardware.md
@@ -28,6 +28,7 @@ Hardware Reference Boards
28The following boards are supported by the meta-yocto-bsp layer: 28The following boards are supported by the meta-yocto-bsp layer:
29 29
30 * Texas Instruments Beaglebone (beaglebone-yocto) 30 * Texas Instruments Beaglebone (beaglebone-yocto)
31 * General 64-bit Arm SystemReady platforms (genericarm64)
31 * General IA platforms (genericx86 and genericx86-64) 32 * General IA platforms (genericx86 and genericx86-64)
32 33
33For more information see the board's section below. The appropriate MACHINE 34For more information see the board's section below. The appropriate MACHINE
@@ -55,7 +56,8 @@ Consumer Devices
55 56
56The following consumer devices are supported by the meta-yocto-bsp layer: 57The following consumer devices are supported by the meta-yocto-bsp layer:
57 58
58 * Intel x86 based PCs and devices (genericx86) 59 * Arm-based SystemReady devices (genericarm64)
60 * Intel x86 based PCs and devices (genericx86 and genericx86-64)
59 61
60For more information see the device's section below. The appropriate MACHINE 62For more information see the device's section below. The appropriate MACHINE
61variable value corresponding to the device is given in brackets. 63variable value corresponding to the device is given in brackets.
@@ -126,6 +128,20 @@ USB Device:
126 dd command to write the image to a USB stick. 128 dd command to write the image to a USB stick.
127 129
128 130
131SystemReady Arm Platforms
132=========================
133
134The genericarm64 MACHINE is designed to work on standard SystemReady IR
135compliant boards with preinstalled firmware.
136
137The genericarm64 MACHINE is currently tested on the following platforms:
138
139 * Texas Instruments BeaglePlay
140
141The images built are EFI bootable disk images and can be written directly to a
142SD card for booting, for example.
143
144
129Texas Instruments Beaglebone (beaglebone-yocto) 145Texas Instruments Beaglebone (beaglebone-yocto)
130=============================================== 146===============================================
131 147
diff --git a/meta-yocto-bsp/conf/machine/genericarm64.conf b/meta-yocto-bsp/conf/machine/genericarm64.conf
new file mode 100644
index 0000000000..83f1aca137
--- /dev/null
+++ b/meta-yocto-bsp/conf/machine/genericarm64.conf
@@ -0,0 +1,29 @@
1#@TYPE: Machine
2#@NAME: genericarm64
3#@DESCRIPTION: Generic Arm64 machine for typical SystemReady platforms, which
4#have working firmware and boot via EFI.
5
6require conf/machine/include/arm/arch-armv8a.inc
7
8# Arm Base System Architecture says v8.0+ is allowed, but FEAT_CRC32 is required
9DEFAULTTUNE = "armv8a-crc"
10
11MACHINE_FEATURES = "acpi alsa bluetooth efi keyboard pci qemu-usermode rtc screen usbhost vfat wifi"
12
13# Install all the kernel modules and all the firmware
14MACHINE_EXTRA_RRECOMMENDS += "kernel-modules linux-firmware"
15
16KERNEL_IMAGETYPE = "Image"
17PREFERRED_PROVIDER_virtual/kernel ?= "linux-yocto"
18
19# Use an initramfs and populate it with the kernel modules
20INITRAMFS_IMAGE ?= "core-image-initramfs-boot"
21PACKAGE_INSTALL:append:pn-core-image-initramfs-boot = " kernel-modules"
22
23IMAGE_FSTYPES ?= "wic"
24WKS_FILE ?= "genericarm64.wks.in"
25
26EFI_PROVIDER ?= "${@bb.utils.contains("DISTRO_FEATURES", "systemd", "systemd-boot", "grub-efi", d)}"
27
28# Try to bring up one physical serial console, or a virtualized serial console
29SERIAL_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 8e465c241e..ca7b2b09df 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 @@
1KBRANCH:genericarm64 = "v6.6/standard/base"
1KBRANCH:genericx86 = "v6.6/standard/base" 2KBRANCH:genericx86 = "v6.6/standard/base"
2KBRANCH:genericx86-64 = "v6.6/standard/base" 3KBRANCH:genericx86-64 = "v6.6/standard/base"
3KBRANCH:beaglebone-yocto = "v6.6/standard/beaglebone" 4KBRANCH:beaglebone-yocto = "v6.6/standard/beaglebone"
4 5
6KMACHINE:genericarm64 ?= "genericarm64"
5KMACHINE:genericx86 ?= "common-pc" 7KMACHINE:genericx86 ?= "common-pc"
6KMACHINE:genericx86-64 ?= "common-pc-64" 8KMACHINE:genericx86-64 ?= "common-pc-64"
7KMACHINE:beaglebone-yocto ?= "beaglebone" 9KMACHINE:beaglebone-yocto ?= "beaglebone"
8 10
11SRCREV_machine:genericarm64 ?= "e064a7d658a30b027b999183e21cd37305caff2a"
9SRCREV_machine:genericx86 ?= "332d4668fcc32826907d4f3c4938845206006089" 12SRCREV_machine:genericx86 ?= "332d4668fcc32826907d4f3c4938845206006089"
10SRCREV_machine:genericx86-64 ?= "332d4668fcc32826907d4f3c4938845206006089" 13SRCREV_machine:genericx86-64 ?= "332d4668fcc32826907d4f3c4938845206006089"
11SRCREV_machine:beaglebone-yocto ?= "332d4668fcc32826907d4f3c4938845206006089" 14SRCREV_machine:beaglebone-yocto ?= "332d4668fcc32826907d4f3c4938845206006089"
12 15
16COMPATIBLE_MACHINE:genericarm64 = "genericarm64"
13COMPATIBLE_MACHINE:genericx86 = "genericx86" 17COMPATIBLE_MACHINE:genericx86 = "genericx86"
14COMPATIBLE_MACHINE:genericx86-64 = "genericx86-64" 18COMPATIBLE_MACHINE:genericx86-64 = "genericx86-64"
15COMPATIBLE_MACHINE:beaglebone-yocto = "beaglebone-yocto" 19COMPATIBLE_MACHINE:beaglebone-yocto = "beaglebone-yocto"
16 20
21LINUX_VERSION:genericarm64 = "6.6.18"
17LINUX_VERSION:genericx86 = "6.6.15" 22LINUX_VERSION:genericx86 = "6.6.15"
18LINUX_VERSION:genericx86-64 = "6.6.15" 23LINUX_VERSION:genericx86-64 = "6.6.15"
19LINUX_VERSION:beaglebone-yocto = "6.6.15" 24LINUX_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 0000000000..417d4d8810
--- /dev/null
+++ b/meta-yocto-bsp/wic/genericarm64.wks.in
@@ -0,0 +1,11 @@
1# short-description: Create an EFI disk image
2# long-description: Creates a partitioned EFI disk image that the user
3# can directly dd to boot media.
4
5part /boot --source bootimg-efi --sourceparams="loader=${EFI_PROVIDER},initrd=${INITRAMFS_IMAGE}-${MACHINE}.${INITRAMFS_FSTYPES}" --label boot --active --align 1024 --use-uuid
6
7part / --source rootfs --fstype=ext4 --label root --align 1024 --use-uuid
8
9part swap --size 44 --label swap --fstype=swap --use-uuid
10
11bootloader --ptable gpt --timeout=5 --append="rootwait rootfstype=ext4"