From bc6956f08c225304cfb62b7314a660f52701d30c Mon Sep 17 00:00:00 2001 From: Waldemar Brodkorb Date: Sun, 16 Feb 2020 13:28:47 +0100 Subject: riscv64: use upstream Linux kernel --- target/riscv32/Makefile | 47 ++++++++++++++++++++++++++++++++++------------- 1 file changed, 34 insertions(+), 13 deletions(-) (limited to 'target/riscv32/Makefile') diff --git a/target/riscv32/Makefile b/target/riscv32/Makefile index 9b268093a..37750d763 100644 --- a/target/riscv32/Makefile +++ b/target/riscv32/Makefile @@ -5,15 +5,35 @@ include $(ADK_TOPDIR)/rules.mk include $(ADK_TOPDIR)/mk/kernel-build.mk include $(ADK_TOPDIR)/mk/image.mk -KERNEL:=$(LINUX_DIR)/vmlinux -OSTRIP:=-R .reginfo -R .notes -R .note -R .comment -R .mdebug -R .note.gnu.build-id -QEMU_ARGS:=-nographic +KERNEL:=$(LINUX_DIR)/arch/riscv/boot/Image +QEMU_ARGS:=-M virt -m 256 -nographic -device loader,file=$(FW_DIR)/$(TARGET_KERNEL),addr=0x80200000 +ifeq ($(ADK_TARGET_QEMU_WITH_VIRTIO),y) +QEMU_ARGS+=-netdev user,id=eth0 -device virtio-net-device,netdev=eth0 +endif +ifeq ($(ADK_TARGET_FS),archive) +QEMU_ARGS+=-device virtio-blk-device,drive=vda -drive file=qemu-${ADK_TARGET_CPU_ARCH}.img,if=none,id=vda,format=raw +endif # 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)/$(ROOTFSTARBALL)" + @echo "Start qemu with following options:" + @echo 'qemu-system-${ADK_TARGET_CPU_ARCH} ${QEMU_ARGS} -kernel $(FW_DIR)/fw_jump.elf' +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-riscv32 ${QEMU_ARGS} -kernel $(FW_DIR)/fw_jump.elf -initrd ${FW_DIR}/${INITRAMFS}' +endif endif ifeq ($(ADK_TARGET_FS),initramfsarchive) targethelp: @@ -23,23 +43,24 @@ 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-riscv32 ${QEMU_ARGS} -kernel $(FW_DIR)/fw_jump.elf' +endif endif kernel-strip: - $(TARGET_CROSS)objcopy $(OSTRIP) -S $(KERNEL) $(BUILD_DIR)/$(TARGET_KERNEL) kernel-install: kernel-strip - @cp $(BUILD_DIR)/$(TARGET_KERNEL) $(FW_DIR)/$(TARGET_KERNEL) + @cp $(KERNEL) $(FW_DIR)/$(TARGET_KERNEL) bbl: - @mkdir -p $(BUILD_DIR)/bbl - @rm -rf $(BUILD_DIR)/riscv-pk - (cd $(BUILD_DIR)/ && git clone https://github.com/riscv/riscv-pk.git) - (cd $(BUILD_DIR)/bbl && PATH='$(HOST_PATH)' ../riscv-pk/configure \ - --host=$(GNU_TARGET_NAME) --target=$(GNU_TARGET_NAME) \ - --with-payload=$(FW_DIR)/$(TARGET_KERNEL)) - (cd $(BUILD_DIR)/bbl && PATH='$(HOST_PATH)' make) - cp $(BUILD_DIR)/bbl/bbl $(FW_DIR)/$(TARGET_KERNEL).bbl + @rm -rf $(BUILD_DIR)/opensbi + (cd $(BUILD_DIR)/ && git clone https://github.com/riscv/opensbi.git) + (cd $(BUILD_DIR)/opensbi && PATH='$(HOST_PATH)' \ + CROSS_COMPILE=$(GNU_TARGET_NAME)- \ + PLATFORM=qemu/virt make) + cp $(BUILD_DIR)/opensbi/build/platform/qemu/virt/firmware/fw_jump.elf $(FW_DIR) # filesystem specific targets ifeq ($(ADK_TARGET_FS),initramfs) -- cgit v1.2.3