diff options
author | Ross Burton <ross.burton@arm.com> | 2024-02-28 11:44:15 +0000 |
---|---|---|
committer | Richard Purdie <richard.purdie@linuxfoundation.org> | 2024-03-05 12:26:21 +0000 |
commit | 2f4f72fff2b642beff179530a74403fa2c608b64 (patch) | |
tree | 14cef82a3e98f307d3c4a131e9360f2541b348d9 | |
parent | be10de34231d2b0081aa0ff7cbc36aef110d7fee (diff) | |
download | poky-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.sample | 1 | ||||
-rw-r--r-- | meta-yocto-bsp/README.hardware.md | 18 | ||||
-rw-r--r-- | meta-yocto-bsp/conf/machine/genericarm64.conf | 29 | ||||
-rw-r--r-- | meta-yocto-bsp/recipes-kernel/linux/linux-yocto_6.6.bbappend | 5 | ||||
-rw-r--r-- | meta-yocto-bsp/wic/genericarm64.wks.in | 11 |
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 | |||
28 | The following boards are supported by the meta-yocto-bsp layer: | 28 | The 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 | ||
33 | For more information see the board's section below. The appropriate MACHINE | 34 | For more information see the board's section below. The appropriate MACHINE |
@@ -55,7 +56,8 @@ Consumer Devices | |||
55 | 56 | ||
56 | The following consumer devices are supported by the meta-yocto-bsp layer: | 57 | The 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 | ||
60 | For more information see the device's section below. The appropriate MACHINE | 62 | For more information see the device's section below. The appropriate MACHINE |
61 | variable value corresponding to the device is given in brackets. | 63 | variable 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 | ||
131 | SystemReady Arm Platforms | ||
132 | ========================= | ||
133 | |||
134 | The genericarm64 MACHINE is designed to work on standard SystemReady IR | ||
135 | compliant boards with preinstalled firmware. | ||
136 | |||
137 | The genericarm64 MACHINE is currently tested on the following platforms: | ||
138 | |||
139 | * Texas Instruments BeaglePlay | ||
140 | |||
141 | The images built are EFI bootable disk images and can be written directly to a | ||
142 | SD card for booting, for example. | ||
143 | |||
144 | |||
129 | Texas Instruments Beaglebone (beaglebone-yocto) | 145 | Texas 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 | |||
6 | require conf/machine/include/arm/arch-armv8a.inc | ||
7 | |||
8 | # Arm Base System Architecture says v8.0+ is allowed, but FEAT_CRC32 is required | ||
9 | DEFAULTTUNE = "armv8a-crc" | ||
10 | |||
11 | MACHINE_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 | ||
14 | MACHINE_EXTRA_RRECOMMENDS += "kernel-modules linux-firmware" | ||
15 | |||
16 | KERNEL_IMAGETYPE = "Image" | ||
17 | PREFERRED_PROVIDER_virtual/kernel ?= "linux-yocto" | ||
18 | |||
19 | # Use an initramfs and populate it with the kernel modules | ||
20 | INITRAMFS_IMAGE ?= "core-image-initramfs-boot" | ||
21 | PACKAGE_INSTALL:append:pn-core-image-initramfs-boot = " kernel-modules" | ||
22 | |||
23 | IMAGE_FSTYPES ?= "wic" | ||
24 | WKS_FILE ?= "genericarm64.wks.in" | ||
25 | |||
26 | EFI_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 | ||
29 | 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 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 @@ | |||
1 | KBRANCH:genericarm64 = "v6.6/standard/base" | ||
1 | KBRANCH:genericx86 = "v6.6/standard/base" | 2 | KBRANCH:genericx86 = "v6.6/standard/base" |
2 | KBRANCH:genericx86-64 = "v6.6/standard/base" | 3 | KBRANCH:genericx86-64 = "v6.6/standard/base" |
3 | KBRANCH:beaglebone-yocto = "v6.6/standard/beaglebone" | 4 | KBRANCH:beaglebone-yocto = "v6.6/standard/beaglebone" |
4 | 5 | ||
6 | KMACHINE:genericarm64 ?= "genericarm64" | ||
5 | KMACHINE:genericx86 ?= "common-pc" | 7 | KMACHINE:genericx86 ?= "common-pc" |
6 | KMACHINE:genericx86-64 ?= "common-pc-64" | 8 | KMACHINE:genericx86-64 ?= "common-pc-64" |
7 | KMACHINE:beaglebone-yocto ?= "beaglebone" | 9 | KMACHINE:beaglebone-yocto ?= "beaglebone" |
8 | 10 | ||
11 | SRCREV_machine:genericarm64 ?= "e064a7d658a30b027b999183e21cd37305caff2a" | ||
9 | SRCREV_machine:genericx86 ?= "332d4668fcc32826907d4f3c4938845206006089" | 12 | SRCREV_machine:genericx86 ?= "332d4668fcc32826907d4f3c4938845206006089" |
10 | SRCREV_machine:genericx86-64 ?= "332d4668fcc32826907d4f3c4938845206006089" | 13 | SRCREV_machine:genericx86-64 ?= "332d4668fcc32826907d4f3c4938845206006089" |
11 | SRCREV_machine:beaglebone-yocto ?= "332d4668fcc32826907d4f3c4938845206006089" | 14 | SRCREV_machine:beaglebone-yocto ?= "332d4668fcc32826907d4f3c4938845206006089" |
12 | 15 | ||
16 | COMPATIBLE_MACHINE:genericarm64 = "genericarm64" | ||
13 | COMPATIBLE_MACHINE:genericx86 = "genericx86" | 17 | COMPATIBLE_MACHINE:genericx86 = "genericx86" |
14 | COMPATIBLE_MACHINE:genericx86-64 = "genericx86-64" | 18 | COMPATIBLE_MACHINE:genericx86-64 = "genericx86-64" |
15 | COMPATIBLE_MACHINE:beaglebone-yocto = "beaglebone-yocto" | 19 | COMPATIBLE_MACHINE:beaglebone-yocto = "beaglebone-yocto" |
16 | 20 | ||
21 | LINUX_VERSION:genericarm64 = "6.6.18" | ||
17 | LINUX_VERSION:genericx86 = "6.6.15" | 22 | LINUX_VERSION:genericx86 = "6.6.15" |
18 | LINUX_VERSION:genericx86-64 = "6.6.15" | 23 | LINUX_VERSION:genericx86-64 = "6.6.15" |
19 | LINUX_VERSION:beaglebone-yocto = "6.6.15" | 24 | 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 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 | |||
5 | part /boot --source bootimg-efi --sourceparams="loader=${EFI_PROVIDER},initrd=${INITRAMFS_IMAGE}-${MACHINE}.${INITRAMFS_FSTYPES}" --label boot --active --align 1024 --use-uuid | ||
6 | |||
7 | part / --source rootfs --fstype=ext4 --label root --align 1024 --use-uuid | ||
8 | |||
9 | part swap --size 44 --label swap --fstype=swap --use-uuid | ||
10 | |||
11 | bootloader --ptable gpt --timeout=5 --append="rootwait rootfstype=ext4" | ||