poky/meta-yocto-bsp/conf/machine/genericarm64.conf
Mikko Rapeli aae6b86024 genericarm64.conf: increase INITRAMFS_MAXSIZE
Since pmem kernel drivers were enabled as modules, the initrd
size limit is hit. On genericarm64 all kernel modules and some
firmware files get installed to initrd by default which make
the thing large. I'm working on patches to reduce the kernel drivers
installed to initrd and to make the kernel in general more modular
(btrfs 5 Mb etc built into kernel by default). For now just increase
the size limit to unblock genericarm64 builds and testing.

Fixes: https://bugzilla.yoctoproject.org/show_bug.cgi?id=15833

(From meta-yocto rev: c8b151d2d7879c2b1276824444a963a59dfcf240)

Signed-off-by: Mikko Rapeli <mikko.rapeli@linaro.org>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
(cherry picked from commit 09bef6a491c087f0f0371874e759aae08a720c4e)
Signed-off-by: Steve Sakoman <steve@sakoman.com>
2025-06-05 09:18:43 -07:00

66 lines
2.9 KiB
Plaintext

#@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-rtl-nic"
# increase default size since we install a lot of kernel drivers and firmware by default
INITRAMFS_MAXSIZE = "200000"
# 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 = " ${MACHINE_EXTRA_RRECOMMENDS}"
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 a selection of physical or virtual serial consoles
SERIAL_CONSOLES ?= "115200;ttyAMA0 115200;hvc0 115200;ttyS0 115200;ttyS1 115200;ttyS2 115200;ttyPS1"
# Allow u-boot to be built for use with qemu-system-aarch64.
# This u-boot is _not_ suitable for use with real hardware, and the expectation
# of this machine is that real hardware comes with the firmware pre-loaded.
UBOOT_MACHINE ?= "qemu_arm64_defconfig"
# runqemu configuration to run a genericarm64 image inside a qemu-system-aarch64. You will need
# to build u-boot explicitly.
IMAGE_CLASSES += "qemuboot"
QB_SYSTEM_NAME ?= "qemu-system-aarch64"
# Boot the virtual machine with either an emulated Cortex-A76, or the host if using KVM
QB_MACHINE ?= "-machine virt"
QB_CPU ?= "-cpu cortex-a76"
QB_CPU_KVM ?= "-cpu host -machine gic-version=3"
QB_SMP ?= "-smp 4"
# Boot into U-Boot and let that scan the disk for the next step, don't pass any kernel or filesystem hints
QB_DEFAULT_BIOS ?= "u-boot.bin"
QB_DEFAULT_KERNEL ?= "none"
QB_DEFAULT_FSTYPE ?= "wic"
QB_FSINFO ?= "wic:no-kernel-in-fs"
# Mount the wic rootfs as a virtio block device
QB_ROOTFS_OPT ?= "-drive id=root,file=@ROOTFS@,if=none,format=raw -device virtio-blk-pci,drive=root"
# Virtio graphics
QB_GRAPHICS ?= "-device virtio-gpu-pci"
# Virtio serial consoles
QB_SERIAL_OPT ?= "-device virtio-serial-pci -chardev null,id=virtcon -device virtconsole,chardev=virtcon"
QB_TCPSERIAL_OPT ?= "-device virtio-serial-pci -chardev socket,id=virtcon,port=@PORT@,host=127.0.0.1,nodelay=on -device virtconsole,chardev=virtcon"
# Virtio networking
QB_TAP_OPT ?= "-netdev tap,id=net0,ifname=@TAP@,script=no,downscript=no"
# If we're running testimage then we're in a qemu, so ensure u-boot is build
TESTIMAGEDEPENDS:append = " u-boot:do_deploy"