1 # This file is part of the OpenADK project. OpenADK is copyrighted
2 # material, please see the LICENCE file in the top-level directory.
4 include $(ADK_TOPDIR
)/rules.mk
5 include $(ADK_TOPDIR
)/mk
/kernel-build.mk
6 include $(ADK_TOPDIR
)/mk
/image.mk
8 KERNEL
:=$(LINUX_DIR
)/arch
/riscv
/boot
/Image
9 QEMU_ARGS
:=-M virt
-m
256 -nographic
10 ifeq ($(ADK_TARGET_QEMU_WITH_VIRTIO
),y
)
11 QEMU_ARGS
+=-netdev user
,id
=eth0
-device virtio-net-device
,netdev
=eth0
13 ifeq ($(ADK_TARGET_FS
),archive
)
14 QEMU_ARGS
+=-device virtio-blk-device
,drive
=vda
-drive file
=qemu-
${ADK_TARGET_CPU_ARCH}.img
,if
=none
,id
=vda
,format
=raw
18 ifeq ($(ADK_TARGET_FS
),archive
)
20 @echo
"The RootFS tarball is: $(FW_DIR)/$(ROOTFSTARBALL)"
21 ifeq ($(ADK_TARGET_QEMU
),y
)
22 @echo
'The kernel file is: $(FW_DIR)/${TARGET_KERNEL}'
23 @echo
"Use following command to create a QEMU Image:"
24 @echo
"./scripts/create.sh qemu-${ADK_TARGET_CPU_ARCH}.img $(FW_DIR)/$(ROOTFSTARBALL)"
25 @echo
"Start qemu with following options:"
26 @echo
'qemu-system-${ADK_TARGET_CPU_ARCH} ${QEMU_ARGS} -kernel $(FW_DIR)/$(TARGET_KERNEL)'
29 ifeq ($(ADK_TARGET_FS
),initramfs
)
31 @echo
'The kernel file is: $(FW_DIR)/${TARGET_KERNEL}'
32 @echo
'The initramfs image is: ${FW_DIR}/${INITRAMFS}'
33 ifeq ($(ADK_TARGET_QEMU
),y
)
34 @echo
"Start qemu with following command line:"
35 @echo
'qemu-system-riscv64 ${QEMU_ARGS} -kernel $(FW_DIR)/$(TARGET_KERNEL) -initrd ${FW_DIR}/${INITRAMFS}'
38 ifeq ($(ADK_TARGET_FS
),initramfsarchive
)
40 @echo
'The kernel file is: $(FW_DIR)/${TARGET_KERNEL}'
41 @echo
"The RootFS tarball is: $(FW_DIR)/$(ROOTFSUSERTARBALL)"
43 ifeq ($(ADK_TARGET_FS
),initramfspiggyback
)
45 @echo
'The kernel+initramfs file is: $(FW_DIR)/${TARGET_KERNEL}'
46 ifeq ($(ADK_TARGET_QEMU
),y
)
47 @echo
"Start qemu with following command line:"
48 @echo
'qemu-system-riscv64 ${QEMU_ARGS} -kernel $(FW_DIR)/$(TARGET_KERNEL)'
54 kernel-install
: kernel-strip
57 @
rm -rf
$(BUILD_DIR
)/opensbi
58 (cd
$(BUILD_DIR
)/ && git clone https
://github.com
/riscv
/opensbi.git
)
59 (cd
$(BUILD_DIR
)/opensbi
&& PATH
='$(HOST_PATH)' \
60 CROSS_COMPILE
=$(GNU_TARGET_NAME
)- \
61 FW_PAYLOAD_PATH
=$(KERNEL
) \
62 PLATFORM
=generic make
)
63 cp
$(BUILD_DIR
)/opensbi
/build
/platform
/generic
/firmware
/fw_payload.elf \
64 $(FW_DIR
)/$(TARGET_KERNEL
)
66 # filesystem specific targets
67 ifeq ($(ADK_TARGET_FS
),archive
)
68 imageinstall
: kernel-install boot
$(FW_DIR
)/$(ROOTFSTARBALL
) targethelp
70 ifeq ($(ADK_TARGET_FS
),initramfs
)
71 imageinstall
: kernel-install boot
$(FW_DIR
)/$(INITRAMFS
) targethelp
73 ifeq ($(ADK_TARGET_FS
),initramfsarchive
)
74 imageinstall
: kernel-install boot
$(FW_DIR
)/$(ROOTFSUSERTARBALL
) targethelp
76 ifeq ($(ADK_TARGET_FS
),initramfspiggyback
)
77 imageinstall
: createinitramfs boot targethelp