Skip to content
Snippets Groups Projects
  • Tom Rini's avatar
    Merge patch series "Implement ACPI on aarch64" · 2800aecc
    Tom Rini authored
    Patrick Rudolph <patrick.rudolph@9elements.com> says:
    
    Based on the existing work done by Simon Glass this series adds
    support for booting aarch64 devices using ACPI only.
    As first target QEMU SBSA support is added, which relies on ACPI
    only to boot an OS. As secondary target the Raspberry Pi4 was used,
    which is broadly available and allows easy testing of the proposed
    solution.
    
    The series is split into ACPI cleanups and code movements, adding
    Arm specific ACPI tables and finally SoC and mainboard related
    changes to boot a Linux on the QEMU SBSA and RPi4. Currently only the
    mandatory ACPI tables are supported, allowing to boot into Linux
    without errors.
    
    The QEMU SBSA support is feature complete and provides the same
    functionality as the EDK2 implementation.
    
    The changes were tested on real hardware as well on QEMU v9.0:
    
    qemu-system-aarch64 -machine sbsa-ref -nographic -cpu cortex-a57 \
                        -pflash secure-world.rom \
                        -pflash unsecure-world.rom
    
    qemu-system-aarch64 -machine raspi4b -kernel u-boot.bin -cpu cortex-a72 \
    -smp 4 -m 2G -drive file=raspbian.img,format=raw,index=0 \
    -dtb bcm2711-rpi-4-b.dtb -nographic
    
    Tested against FWTS V24.03.00.
    
    Known issues:
    - The QEMU rpi4 support is currently limited as it doesn't emulate PCI,
      USB or ethernet devices!
    - The SMP bringup doesn't work on RPi4, but works in QEMU (Possibly
      cache related).
    - PCI on RPI4 isn't working on real hardware since the pcie_brcmstb
      Linux kernel module doesn't support ACPI yet.
    
    Link: https://lore.kernel.org/r/20241023132116.970117-1-patrick.rudolph@9elements.com
    2800aecc