mirror of
git://git.yoctoproject.org/poky
synced 2026-04-02 02:49:11 +00:00
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>
66 lines
2.9 KiB
Plaintext
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"
|