@@ -1568,6 +1568,11 @@ F: package/libuhttpd/
F: package/libuwsc/
F: package/rtty/
+N: Jiaxun Yang <jiaxun.yang@flygoat.com>
+F: arch/Config.in.loongarch
+F: board/loongarch64-efi
+F: configs/loongarch64_efi_defconfig
+
N: Joachim Wiberg <troglobit@gmail.com>
F: configs/globalscale_espressobin_defconfig
F: board/globalscale/espressobin/
new file mode 100644
@@ -0,0 +1,33 @@
+image efi-part.vfat {
+ vfat {
+ file EFI {
+ image = "efi-part/EFI"
+ }
+ file vmlinuz.efi {
+ image = "vmlinuz.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 {
+ # For partition-type-uuid value, see:
+ # https://uapi-group.org/specifications/specs/discoverable_partitions_specification/
+ # SD_GPT_ROOT_LOONGARCH64
+ partition-type-uuid = 77055800-792c-4f94-b39a-98c91b762bb6
+ image = "rootfs.ext2"
+ }
+}
new file mode 100644
@@ -0,0 +1,6 @@
+set default="0"
+set timeout="5"
+
+menuentry "Buildroot" {
+ linux /vmlinuz.efi root=PARTLABEL=root rootwait console=ttyS0,115200
+}
new file mode 100755
@@ -0,0 +1,5 @@
+#!/bin/sh
+
+BOARD_DIR="$(dirname $0)"
+
+cp -f ${BOARD_DIR}/grub.cfg ${BINARIES_DIR}/efi-part/EFI/BOOT/grub.cfg
new file mode 100644
@@ -0,0 +1,34 @@
+The loongarch64_efi_defconfig allows to build a minimal Linux system that
+can boot on all loongarch64 systems providing an EFI firmware.
+
+This includes almost all Loongson-3 series workstations and servers.
+
+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 .
new file mode 100644
@@ -0,0 +1,36 @@
+# Architecture
+BR2_loongarch64=y
+BR2_loongarch64_generic=y
+
+# System
+BR2_ROOTFS_DEVICE_CREATION_DYNAMIC_EUDEV=y
+
+## Required tools to create bootable media
+BR2_PACKAGE_HOST_GENIMAGE=y
+
+# Bootloader
+BR2_TARGET_GRUB2=y
+BR2_TARGET_GRUB2_LOONGARCH64_EFI=y
+
+# Filesystem / image
+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_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"
+
+# Linux headers same as kernel, a 6.6 series
+BR2_PACKAGE_HOST_LINUX_HEADERS_CUSTOM_6_6=y
+
+# Kernel
+BR2_LINUX_KERNEL=y
+BR2_LINUX_KERNEL_CUSTOM_VERSION=y
+BR2_LINUX_KERNEL_CUSTOM_VERSION_VALUE="6.6.30"
+BR2_LINUX_KERNEL_USE_ARCH_DEFAULT_CONFIG=y
+BR2_LINUX_KERNEL_NEEDS_HOST_OPENSSL=y
+BR2_LINUX_KERNEL_VMLINUZ_EFI=y
+
+# Host tools for genimage
+BR2_PACKAGE_HOST_DOSFSTOOLS=y
+BR2_PACKAGE_HOST_MTOOLS=y
Introduce bread new loongarch64-efi board, with skeleton from aarch64-efi board. It corverd most LoongArch64 systems. Linux 6.6, as the most recent LTS kernel, was chosen to ensure proper architecture support is included. A developer entry is created for myself for future contacts as well. Signed-off-by: Jiaxun Yang <jiaxun.yang@flygoat.com> --- DEVELOPERS | 5 +++++ board/loongarch64-efi/genimage-efi.cfg | 33 +++++++++++++++++++++++++++++++ board/loongarch64-efi/grub.cfg | 6 ++++++ board/loongarch64-efi/post-image.sh | 5 +++++ board/loongarch64-efi/readme.txt | 34 ++++++++++++++++++++++++++++++++ configs/loongarch64_efi_defconfig | 36 ++++++++++++++++++++++++++++++++++ 6 files changed, 119 insertions(+)