From cf30d2922270a47c9e0336611477befcf8fa4239 Mon Sep 17 00:00:00 2001 From: Waldemar Brodkorb Date: Thu, 11 Aug 2022 11:42:32 +0200 Subject: add basic loongarch support, qemu does not boot the kernel, yet --- target/loongarch/Makefile | 62 +++++++++++++++++++++++++++++++++ target/loongarch/kernel/qemu-loongarch | 7 ++++ target/loongarch/systems/qemu-loongarch | 7 ++++ 3 files changed, 76 insertions(+) create mode 100644 target/loongarch/Makefile create mode 100644 target/loongarch/kernel/qemu-loongarch create mode 100644 target/loongarch/systems/qemu-loongarch (limited to 'target/loongarch') diff --git a/target/loongarch/Makefile b/target/loongarch/Makefile new file mode 100644 index 000000000..b8569d69a --- /dev/null +++ b/target/loongarch/Makefile @@ -0,0 +1,62 @@ +# This file is part of the OpenADK project. OpenADK is copyrighted +# material, please see the LICENCE file in the top-level directory. + +include $(ADK_TOPDIR)/rules.mk +include $(ADK_TOPDIR)/mk/kernel-build.mk +include $(ADK_TOPDIR)/mk/image.mk + +KERNEL:=$(LINUX_DIR)/vmlinux + +QEMU_ARGS:=-M virt +QEMU_ARGS+=-nographic +# +# target helper text +ifeq ($(ADK_TARGET_FS),archive) +targethelp: + @echo "The RootFS tarball is: $(FW_DIR)/$(ROOTFSTARBALL)" +ifeq ($(ADK_TARGET_QEMU),y) + @echo 'The kernel file is: $(FW_DIR)/${TARGET_KERNEL}' + @echo "Use following command to create a QEMU Image:" + @echo "./scripts/create.sh qemu-${ADK_TARGET_CPU_ARCH}.img $(FW_DIR)/$(ROOTFSUSERTARBALL)" + @echo "Start qemu with following options:" + @echo 'qemu-system-${ADK_TARGET_CPU_ARCH} ${QEMU_ARGS} -kernel $(FW_DIR)/$(TARGET_KERNEL) qemu-${ADK_TARGET_CPU_ARCH}.img' +endif +endif +ifeq ($(ADK_TARGET_FS),initramfs) +targethelp: + @echo 'The kernel file is: $(FW_DIR)/${TARGET_KERNEL}' + @echo 'The initramfs image is: ${FW_DIR}/${INITRAMFS}' +ifeq ($(ADK_TARGET_QEMU),y) + @echo "Start qemu with following command line:" + @echo 'qemu-system-${ADK_TARGET_CPU_ARCH} ${QEMU_ARGS} -kernel $(FW_DIR)/$(TARGET_KERNEL) -initrd ${FW_DIR}/${INITRAMFS}' +endif +endif +ifeq ($(ADK_TARGET_FS),initramfsarchive) +targethelp: + @echo 'The kernel file is: $(FW_DIR)/${TARGET_KERNEL}' + @echo "The RootFS tarball is: $(FW_DIR)/$(ROOTFSUSERTARBALL)" +endif +ifeq ($(ADK_TARGET_FS),initramfspiggyback) +targethelp: + @echo 'The kernel+initramfs file is: $(FW_DIR)/${TARGET_KERNEL}' +ifeq ($(ADK_TARGET_QEMU),y) + @echo "Start qemu with following command line:" + @echo 'qemu-system-${ADK_TARGET_CPU_ARCH} ${QEMU_ARGS} -kernel $(FW_DIR)/$(TARGET_KERNEL)' +endif +endif + +kernel-strip: + +kernel-install: kernel-strip + @cp $(KERNEL) $(FW_DIR)/$(TARGET_KERNEL) + +# filesystem specific targets +ifeq ($(ADK_TARGET_FS),initramfs) +imageinstall: kernel-install $(FW_DIR)/$(INITRAMFS) targethelp +endif +ifeq ($(ADK_TARGET_FS),initramfsarchive) +imageinstall: kernel-install $(FW_DIR)/$(ROOTFSUSERTARBALL) targethelp +endif +ifeq ($(ADK_TARGET_FS),initramfspiggyback) +imageinstall: createinitramfs targethelp +endif diff --git a/target/loongarch/kernel/qemu-loongarch b/target/loongarch/kernel/qemu-loongarch new file mode 100644 index 000000000..582028585 --- /dev/null +++ b/target/loongarch/kernel/qemu-loongarch @@ -0,0 +1,7 @@ +CONFIG_LOONGARCH=y +CONFIG_64BIT=y +CONFIG_MACH_LOONGSON64=y +CONFIG_EFI=y +CONFIG_SMP=y +CONFIG_SERIAL_8250=y +CONFIG_SERIAL_8250_CONSOLE=y diff --git a/target/loongarch/systems/qemu-loongarch b/target/loongarch/systems/qemu-loongarch new file mode 100644 index 000000000..b5f6c3d34 --- /dev/null +++ b/target/loongarch/systems/qemu-loongarch @@ -0,0 +1,7 @@ +config ADK_TARGET_SYSTEM_QEMU_LOONGARCH + bool "Qemu Emulator" + select ADK_TARGET_QEMU + select ADK_TARGET_CPU_LOONGARCH + help + Support for Qemu Emulator Loongarch architecture. + -- cgit v1.2.3