Commit Graph

13 Commits

Author SHA1 Message Date
Romain Naour
c58a2a9687 configs/qemu_aarch64_sbsa_defconfig: switch to neoverse-n1 (armv8.2a)
The SBSA Reference Platform was updated to neoverse-n1 (armv8.2a) in
Qemu v8.1 [1].

BR2_cortex_a57:
  # cat /proc/cpuinfo
  processor       : 0
  BogoMIPS        : 2000.00
  Features        : fp asimd evtstrm aes pmull sha1 sha2 crc32 cpuid
  CPU implementer : 0x41
  CPU architecture: 8
  CPU variant     : 0x1
  CPU part        : 0xd07
  CPU revision    : 0
[...]

BR2_neoverse_n1:
  # cat /proc/cpuinfo
  processor       : 0
  BogoMIPS        : 2000.00
  Features        : fp asimd evtstrm aes pmull sha1 sha2 crc32 atomics fphp asimdhp cpuid asimdrdm lrcpc dcpop asimddp ssbs
  CPU implementer : 0x41
  CPU architecture: 8
  CPU variant     : 0x4
  CPU part        : 0xd0c
  CPU revision    : 1
[...]

Tests test_fwts.py test_edk2.py using
BR2_TARGET_EDK2_PLATFORM_QEMU_SBSA=y are not updated to neoverse-n1 by
this commit. Those tests were disabled in a previous commit. Those
tests will be updated and fixed in followup commits.

Note: SBSA Reference Platform was recently updated again to neoverse-n2
(armv9.0a) in Qemu v9.1 [2]. But there is no armv9.0a support yet in
Buildroot.

[1] 1877272bad
[2] b1d592e7b0

Signed-off-by: Romain Naour <romain.naour@smile.fr>
[Julien: add a small comment in commit log about tests]
Signed-off-by: Julien Olivain <ju.o@free.fr>
2024-11-04 23:03:47 +01:00
Niklas Cassel
3ecff27df1 support/testing: move the kernel config only used by test_edk2.py
The kernel config board/qemu/aarch64-sbsa/linux.config has never been in
use by qemu_aarch64_sbsa_defconfig, neither via
BR2_LINUX_KERNEL_CUSTOM_CONFIG_FILE, nor via
BR2_LINUX_KERNEL_CONFIG_FRAGMENT_FILES.

test_edk2.py is using the kernel config
board/qemu/aarch64-sbsa/linux.config. However, storing a kernel config
that is not used by qemu_aarch64_sbsa_defconfig, in a directory that is
"owned" by qemu_aarch64_sbsa_defconfig, is bound to cause confusion.

Therefore, move the config file to a new subdirectory:
support/testing/tests/boot/test_edk2/

This is similar to how e.g. test_grub.py has a subdirectory:
support/testing/tests/boot/test_grub/
where it keeps the kernel config that is only used by test_grub.py.

Signed-off-by: Niklas Cassel <niklas.cassel@wdc.com>
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@bootlin.com>
2023-03-12 10:08:43 +01:00
Niklas Cassel
92f6a843b8 board/qemu/aarch64-sbsa: use the default console specified by ACPI
ARM SBBR (Server Base Boot Requirements) defines SPCR (Serial Port
Console Redirection Table) as a mandatory ACPI table that specifies
the configuration of a serial console.

In the linux kernel, ARM developers have decided that consoles defined
by SPCR are always enabled when existing, see e.g.:
https://lore.kernel.org/linux-serial/20200430161438.17640-1-alpernebiyasak@gmail.com/T/

Specifying console=ttyAMA0 (which is a serial console) is thus
redundant for an ARM SBSA board. (It also blindly assumes that
the serial console is on ttyAMA0, which might not be true.)

Drop the explicit console=ttyAMA0 on the kernel command line,
such that the kernel can pick up the default console defined
by SPCR.

This is similar to how it is currently done for
board/aarch64-efi/grub.cfg.

Signed-off-by: Niklas Cassel <niklas.cassel@wdc.com>
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@bootlin.com>
2023-03-12 10:08:39 +01:00
Niklas Cassel
d1b87a346a board/qemu/aarch64-sbsa: use PARTLABEL to specify root
Specifying /dev/sda2 is ambigious, and when booting my arm64 machine
this tries to mount the second partition of my ATA drive, instead of
the second partition of the USB-stick, simply because the ATA driver
is probed earlier than the USB controller driver.

To solve this problem, use PARTLABEL=root to specify the root filesystem.
This is similar to how it is currently done for board/aarch64-efi/grub.cfg
and board/qemu/aarch64-ebbr/grub.cfg.

Signed-off-by: Niklas Cassel <niklas.cassel@wdc.com>
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@bootlin.com>
2023-03-12 10:08:34 +01:00
Thomas Petazzoni
025d8ac80d board/*/genimage.cfg: use partition-type-uuid U where relevant
This commit changes to use partition-type-uuid = U instead of
c12a7328-f81f-11d2-ba4b-00a0c93ec93b where relevant for the EFI System
Partition.

Signed-off-by: Thomas Petazzoni <thomas.petazzoni@bootlin.com>
Signed-off-by: Yann E. MORIN <yann.morin.1998@free.fr>
2022-07-23 15:36:22 +02:00
Romain Naour
16d490d111 board/qemu/aarch64-sbsa: use partition-type-uuid for genimage-15
Genimage 15 restricted the partition-type option to mbr and hybrid
partition-table-type and now prints a warning when it is used [1]:

ERROR: hdimage(disk.img): part boot: 'partition-type' is only valid for mbr and hybrid partition-table-type

[1] 1d72d8091f

Sync the genimage.cfg with the one used for aarch64_efi_defconfig

Fixes:
https://gitlab.com/buildroot.org/buildroot/-/jobs/1929717179
https://gitlab.com/buildroot.org/buildroot/-/jobs/1921792262

FTR, the magic UUID are from:
    https://en.wikipedia.org/wiki/GUID_Partition_Table#Partition_type_GUIDs

Signed-off-by: Romain Naour <romain.naour@gmail.com>
Cc: Dick Olsson <hi@senzilla.io>
Cc: Pierre-Jean Texier <texier.pj2@gmail.com>
[yann.morin.1998@free.fr: add Wikipedia link]
Signed-off-by: Yann E. MORIN <yann.morin.1998@free.fr>
2022-01-03 21:41:50 +01:00
Peter Korsgaard
b59f938302 board/*/genimage.cfg: use partition-table-type = "gpt" for genimage-15
Genimage 15 deprecated the gpt option and now prints a warning when it is
used:

INFO: hdimage(sdcard.img): The option 'gpt' is deprecated. Use 'partition-table-type' instead

So change the genimage configuration files to use that instead.

Signed-off-by: Peter Korsgaard <peter@korsgaard.com>
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@bootlin.com>
2021-12-27 15:41:51 +01:00
Giulio Benetti
543b8e906d board/qemu/aarch64-sbsa/genimage.cfg: beautify file
Beatify this genimage .cfg file to have consistency with all genimage .cfg
files in Buildroot.

Signed-off-by: Giulio Benetti <giulio.benetti@benettiengineering.com>
Signed-off-by: Arnout Vandecappelle (Essensium/Mind) <arnout@mind.be>
2021-11-08 22:59:26 +01:00
Romain Naour
0bd07a0cc6 configs/qemu_aarch64_sbsa_defconfig: add gitlab runtime testing tag
Enable the runtime testing by adding the tag in the readme.txt

Signed-off-by: Romain Naour <romain.naour@gmail.com>
Cc: Dick Olsson <hi@senzilla.io>
Reviewed-by: Dick Olsson <hi@senzilla.io>
Signed-off-by: Yann E. MORIN <yann.morin.1998@free.fr>
2021-11-08 10:56:38 +01:00
Romain Naour
17c516d67a configs/qemu_aarch64_sbsa_defconfig: use ARM cortex a57
Cortex-a53 is not a vaild CPU supported by the SBSA reference machine
[0], so qemu fails to boot in our current defconfig:

  qemu-system-aarch64: sbsa-ref: CPU type other than the built-in cortex-a57 not supported

Use ARM cortex-a57 which is the CPU that SBSA was meant to emulate [1]

[0] https://git.qemu.org/?p=qemu.git;a=commitdiff;h=4f335a6381f83beb5d6ac0d3993514379454a99d
[1] https://git.qemu.org/?p=qemu.git;a=commitdiff;h=64580903c2b3aee08d74d64e6248a313b246cb69

Signed-off-by: Romain Naour <romain.naour@gmail.com>
Cc: Dick Olsson <hi@senzilla.io>
Reviewed-by: Dick Olsson <hi@senzilla.io>
[yann.morin.1998@free.fr: update the commit log with info from Dick]
Signed-off-by: Yann E. MORIN <yann.morin.1998@free.fr>
2021-11-08 10:36:09 +01:00
Romain Naour
2c52579451 configs/qemu_aarch64_sbsa_defconfig: update to Linux 5.15
Increase vfat partition size for qemu-aarch64-sbsa since it now
requires more than 32M. See "Disk full" [1].

[1] https://gitlab.com/kubu93/buildroot/-/jobs/1745752049

Signed-off-by: Romain Naour <romain.naour@gmail.com>
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@bootlin.com>
2021-11-06 11:51:38 +01:00
Kory Maincent
3efb5e31fc board, boot, package: remove usage of startup.nsh in EFI partition
The startup.nsh file is useless to boot EFI payloads. We just need to
follow the naming detection specified in the UEFI spec.
The EFI payload need to be placed in the boot/efi folder in the EFI partition
and follow the architecture naming as described below:
32bit : bootia32.efi
x64 : bootx64.efi
aarch32 : bootarm.efi
aarch64 : bootaa64.efi

This naming is already right in the packages involved (systemd, grub2,
gummiboot), therefore we just need to drop the generation of the
startup.nsh file.

The usage of the startup.nsh in genimage is also dropped to avoid errors in
the image generation.

Signed-off-by: Kory Maincent <kory.maincent@bootlin.com>
Tested-by: Erico Nunes <nunes.erico@gmail.com>
Signed-off-by: Yann E. MORIN <yann.morin.1998@free.fr>
2021-09-27 21:27:02 +02:00
Dick Olsson
a8466cc5ac configs/qemu_aarch64_sbsa_defconfig: new config for QEMU sbsa-ref
This introduces a configuration for the SBSA reference machine under
QEMU that is intended for developing and testing firmware. It consists
of ATF that load EDK2 as BL33 which in turn will load GRUB2.

Included with the board files is a minimal kernel configuration, almost
identical to that of board/qemu/aarch64-virt/linux.config. The main
difference is the addition of ACPI which is preferred over DTB for
booting an UEFI system.

Signed-off-by: Dick Olsson <hi@senzilla.io>
Signed-off-by: Yann E. MORIN <yann.morin.1998@free.fr>
2021-05-17 17:26:27 +02:00