Browse Source

riscv: use default BIOS included in qemu

Waldemar Brodkorb 2 years ago
parent
commit
38ae283cb4
3 changed files with 17 additions and 28 deletions
  1. 5 13
      target/riscv32/Makefile
  2. 7 0
      target/riscv32/kernel/qemu-riscv32
  3. 5 15
      target/riscv64/Makefile

+ 5 - 13
target/riscv32/Makefile

@@ -6,7 +6,7 @@ include $(ADK_TOPDIR)/mk/kernel-build.mk
 include $(ADK_TOPDIR)/mk/image.mk
 
 KERNEL:=$(LINUX_DIR)/arch/riscv/boot/Image
-QEMU_ARGS:=-M virt -m 256 -nographic -device loader,file=$(FW_DIR)/$(TARGET_KERNEL),addr=0x80200000 
+QEMU_ARGS:=-M virt -m 512 -nographic
 ifeq ($(ADK_TARGET_QEMU_WITH_VIRTIO),y)
 QEMU_ARGS+=-netdev user,id=eth0 -device virtio-net-device,netdev=eth0
 endif
@@ -45,7 +45,7 @@ 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'
+	@echo 'qemu-system-riscv32 ${QEMU_ARGS} -kernel $(FW_DIR)/$(TARGET_KERNEL)'
 endif
 endif
 
@@ -54,21 +54,13 @@ kernel-strip:
 kernel-install: kernel-strip
 	 @cp $(KERNEL) $(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)
-imageinstall: kernel-install bbl $(FW_DIR)/$(INITRAMFS) targethelp
+imageinstall: kernel-install $(FW_DIR)/$(INITRAMFS) targethelp
 endif
 ifeq ($(ADK_TARGET_FS),initramfsarchive)
-imageinstall: kernel-install bbl $(FW_DIR)/$(ROOTFSUSERTARBALL) targethelp
+imageinstall: kernel-install $(FW_DIR)/$(ROOTFSUSERTARBALL) targethelp
 endif
 ifeq ($(ADK_TARGET_FS),initramfspiggyback)
-imageinstall: createinitramfs bbl targethelp
+imageinstall: createinitramfs targethelp
 endif

+ 7 - 0
target/riscv32/kernel/qemu-riscv32

@@ -5,3 +5,10 @@ CONFIG_CPU_RV_GENERIC=y
 CONFIG_RV_SYSRISCV_ATOMIC=y
 CONFIG_CPU_SUPPORTS_32BIT_KERNEL=y
 CONFIG_32BIT=y
+CONFIG_HVC_DRIVER=y
+CONFIG_HVC_RISCV_SBI=y
+CONFIG_SERIAL_EARLYCON_RISCV_SBI=y
+CONFIG_CMDLINE_BOOL=y
+CONFIG_SOC_SIFIVE=y
+CONFIG_SERIAL_SIFIVE=y
+CONFIG_SERIAL_SIFIVE_CONSOLE=y

+ 5 - 15
target/riscv64/Makefile

@@ -6,7 +6,7 @@ include $(ADK_TOPDIR)/mk/kernel-build.mk
 include $(ADK_TOPDIR)/mk/image.mk
 
 KERNEL:=$(LINUX_DIR)/arch/riscv/boot/Image
-QEMU_ARGS:=-M virt -m 512 -nographic -bios $(FW_DIR)/fw_jump.elf
+QEMU_ARGS:=-M virt -m 512 -nographic
 ifeq ($(ADK_TARGET_QEMU_WITH_VIRTIO),y)
 QEMU_ARGS+=-netdev user,id=eth0 -device virtio-net-device,netdev=eth0
 endif
@@ -53,26 +53,16 @@ kernel-strip:
 
 kernel-install: kernel-strip
 
-boot:
-	@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)- \
-		FW_PAYLOAD_PATH=$(KERNEL) \
-		PLATFORM=generic make)
-	cp $(BUILD_DIR)/opensbi/build/platform/generic/firmware/fw_jump.elf \
-		$(FW_DIR)
-
 # filesystem specific targets
 ifeq ($(ADK_TARGET_FS),archive)
-imageinstall: kernel-install boot $(FW_DIR)/$(ROOTFSTARBALL) targethelp
+imageinstall: kernel-install $(FW_DIR)/$(ROOTFSTARBALL) targethelp
 endif
 ifeq ($(ADK_TARGET_FS),initramfs)
-imageinstall: kernel-install boot $(FW_DIR)/$(INITRAMFS) targethelp
+imageinstall: kernel-install $(FW_DIR)/$(INITRAMFS) targethelp
 endif
 ifeq ($(ADK_TARGET_FS),initramfsarchive)
-imageinstall: kernel-install boot $(FW_DIR)/$(ROOTFSUSERTARBALL) targethelp
+imageinstall: kernel-install $(FW_DIR)/$(ROOTFSUSERTARBALL) targethelp
 endif
 ifeq ($(ADK_TARGET_FS),initramfspiggyback)
-imageinstall: createinitramfs boot targethelp
+imageinstall: createinitramfs targethelp
 endif