configs/loongarch64_efi: new defconfig

Introduce bread new loongarch64-efi board, with skeleton
from aarch64-efi board.

It corverd most LoongArch64 systems.

Linux 6.12, as the most recent LTS kernel, was chosen
to ensure proper architecture support is included.

This board config is validated on my Lemote A2101
Loongson 3A5000 board.

A developer entry is created for myself for future contacts
as well.

Signed-off-by: Jiaxun Yang <jiaxun.yang@flygoat.com>
Reviewed-by: Romain Naour <romain.naour@smile.fr>
Signed-off-by: Julien Olivain <ju.o@free.fr>
This commit is contained in:
Jiaxun Yang
2025-06-18 19:20:32 +01:00
committed by Julien Olivain
parent c4a4b8552f
commit 59f661b8fa
8 changed files with 106 additions and 0 deletions

View File

@@ -1644,6 +1644,8 @@ F: package/rtty/
N: Jiaxun Yang <jiaxun.yang@flygoat.com> N: Jiaxun Yang <jiaxun.yang@flygoat.com>
F: arch/Config.in.loongarch F: arch/Config.in.loongarch
F: board/loongarch64-efi
F: configs/loongarch64_efi_defconfig
N: Joachim Wiberg <troglobit@gmail.com> N: Joachim Wiberg <troglobit@gmail.com>
F: configs/globalscale_espressobin_defconfig F: configs/globalscale_espressobin_defconfig

View File

@@ -0,0 +1,30 @@
image efi-part.vfat {
vfat {
file EFI {
image = "efi-part/EFI"
}
file vmlinux.efi {
image = "vmlinux.efi"
}
}
size = 64M
}
image disk.img {
hdimage {
partition-table-type = "gpt"
}
partition boot {
image = "efi-part.vfat"
partition-type-uuid = U
offset = 32K
bootable = true
}
partition root {
partition-type-uuid = root-loongarch64
image = "rootfs.ext2"
}
}

View File

@@ -0,0 +1,6 @@
/set default="0"
set timeout="5"
menuentry "Buildroot" {
linux /vmlinux.efi root=PARTLABEL=root rootwait console=ttyS0,115200
}

View File

@@ -0,0 +1 @@
../linux/linux.hash

View File

@@ -0,0 +1,2 @@
# From https://www.kernel.org/pub/linux/kernel/v6.x/sha256sums.asc
sha256 a9b020721778384507010177d3929e7d4058f7f6120f05a99d56b5c5c0346a70 linux-6.12.32.tar.xz

View File

@@ -0,0 +1,5 @@
#!/bin/sh
BOARD_DIR="$(dirname "$0")"
cp -f "${BOARD_DIR}/grub.cfg" "${BINARIES_DIR}/efi-part/EFI/BOOT/grub.cfg"

View File

@@ -0,0 +1,38 @@
The loongarch64_efi_defconfig allows to build a minimal Linux system that
can boot on all loongarch64 systems providing an New World [1] EFI firmware.
This includes almost all LoongArch Loongson-3 series workstations and servers,
see [2] for hardware and firmware information.
Building and booting
====================
$ make loongarch64_efi_defconfig
$ make
The file output/images/disk.img is a complete disk image that can be
booted, it includes the grub2 bootloader, Linux kernel and root
filesystem.
Testing under Qemu
==================
This image can also be tested using Qemu:
qemu-system-loongarch64 \
-M virt \
-cpu la464 \
-nographic \
-bios </path/to/QEMU_EFI.fd> \
-drive file=output/images/disk.img,if=none,format=raw,id=hd0 \
-device virtio-blk-pci,drive=hd0 \
-netdev user,id=eth0 \
-device virtio-net-pci,netdev=eth0
Note that </path/to/QEMU_EFI.fd> needs to point to a valid loongarch64 UEFI
firmware image for qemu.
It may be provided by your distribution as a edk2-loongarch64 package,
in path such as /usr/share/edk2/loongarch64/QEMU_EFI.fd .
[1]: https://areweloongyet.com/en/docs/old-and-new-worlds/
[2]: https://github.com/loongson/Firmware

View File

@@ -0,0 +1,22 @@
BR2_loongarch64=y
BR2_PACKAGE_HOST_LINUX_HEADERS_CUSTOM_6_12=y
BR2_GLOBAL_PATCH_DIR="board/loongarch64-efi/patches"
BR2_DOWNLOAD_FORCE_CHECK_HASHES=y
BR2_ROOTFS_DEVICE_CREATION_DYNAMIC_EUDEV=y
BR2_ROOTFS_POST_IMAGE_SCRIPT="board/loongarch64-efi/post-image.sh support/scripts/genimage.sh"
BR2_ROOTFS_POST_SCRIPT_ARGS="-c board/loongarch64-efi/genimage-efi.cfg"
BR2_LINUX_KERNEL=y
BR2_LINUX_KERNEL_CUSTOM_VERSION=y
BR2_LINUX_KERNEL_CUSTOM_VERSION_VALUE="6.12.32"
BR2_LINUX_KERNEL_USE_ARCH_DEFAULT_CONFIG=y
BR2_LINUX_KERNEL_NEEDS_HOST_OPENSSL=y
BR2_LINUX_KERNEL_NEEDS_HOST_LIBELF=y
BR2_TARGET_ROOTFS_EXT2=y
BR2_TARGET_ROOTFS_EXT2_4=y
BR2_TARGET_ROOTFS_EXT2_SIZE="200M"
# BR2_TARGET_ROOTFS_TAR is not set
BR2_TARGET_GRUB2=y
BR2_TARGET_GRUB2_LOONGARCH64_EFI=y
BR2_PACKAGE_HOST_DOSFSTOOLS=y
BR2_PACKAGE_HOST_GENIMAGE=y
BR2_PACKAGE_HOST_MTOOLS=y