From d04c37b74db30a1756f15dc313b51e28a0b286c1 Mon Sep 17 00:00:00 2001 From: Palmer Dabbelt Date: Mon, 11 Dec 2017 13:12:19 -0800 Subject: [PATCH 01/15] Re-build linux_defconfig This shouldn't change any functionality, it just makes the next diff easier to see. --- .gitmodules | 3 +++ conf/linux_defconfig | 55 ++++++++++++++------------------------------ riscv-qemu | 1 + 3 files changed, 21 insertions(+), 38 deletions(-) create mode 160000 riscv-qemu diff --git a/.gitmodules b/.gitmodules index c245a1c..352e6b3 100644 --- a/.gitmodules +++ b/.gitmodules @@ -16,3 +16,6 @@ [submodule "riscv-fesvr"] path = riscv-fesvr url = https://github.com/riscv/riscv-fesvr.git +[submodule "riscv-qemu"] + path = riscv-qemu + url = git://github.com/riscv/riscv-qemu.git diff --git a/conf/linux_defconfig b/conf/linux_defconfig index b2f71ea..6b09fd7 100644 --- a/conf/linux_defconfig +++ b/conf/linux_defconfig @@ -1,6 +1,9 @@ CONFIG_SMP=y # CONFIG_COMPACTION is not set CONFIG_HZ_100=y +CONFIG_PCI=y +CONFIG_PCI_DEBUG=y +CONFIG_PCIE_XILINX=y CONFIG_CROSS_COMPILE="riscv64-unknown-linux-gnu-" CONFIG_DEFAULT_HOSTNAME="ucbvax" # CONFIG_CROSS_MEMORY_ATTACH is not set @@ -14,29 +17,35 @@ CONFIG_BLK_DEV_INITRD=y CONFIG_EMBEDDED=y # CONFIG_BLK_DEV_BSG is not set CONFIG_PARTITION_ADVANCED=y -# CONFIG_EFI_PARTITION is not set # CONFIG_IOSCHED_DEADLINE is not set CONFIG_NET=y +CONFIG_PACKET=y CONFIG_UNIX=y CONFIG_INET=y # CONFIG_INET_XFRM_MODE_TRANSPORT is not set # CONFIG_INET_XFRM_MODE_TUNNEL is not set # CONFIG_INET_XFRM_MODE_BEET is not set -# CONFIG_INET_LRO is not set # CONFIG_INET_DIAG is not set # CONFIG_IPV6 is not set -# CONFIG_WIRELESS is not set CONFIG_DEVTMPFS=y CONFIG_DEVTMPFS_MOUNT=y # CONFIG_FIRMWARE_IN_KERNEL is not set -# CONFIG_BLK_DEV is not set -# CONFIG_INPUT_MOUSEDEV is not set +CONFIG_BLK_DEV_SD=y +CONFIG_ATA=y +CONFIG_SATA_AHCI=y +CONFIG_SATA_SIL24=y +CONFIG_NETDEVICES=y +CONFIG_E1000E=y +CONFIG_R8169=y # CONFIG_INPUT_KEYBOARD is not set # CONFIG_INPUT_MOUSE is not set # CONFIG_VT is not set # CONFIG_HW_RANDOM is not set # CONFIG_HWMON is not set -# CONFIG_USB_SUPPORT is not set +CONFIG_USB=y +CONFIG_USB_XHCI_HCD=y +CONFIG_USB_EHCI_HCD=y +CONFIG_USB_STORAGE=y # CONFIG_IOMMU_SUPPORT is not set CONFIG_EXT3_FS=y # CONFIG_FILE_LOCKING is not set @@ -46,40 +55,10 @@ CONFIG_EXT3_FS=y CONFIG_TMPFS=y # CONFIG_MISC_FILESYSTEMS is not set # CONFIG_NETWORK_FILESYSTEMS is not set -CONFIG_EARLY_PRINTK=y +CONFIG_CMDLINE_BOOL=y +CONFIG_CMDLINE="earlyprintk" CONFIG_PRINTK_TIME=y CONFIG_STRIP_ASM_SYMS=y CONFIG_DEBUG_SECTION_MISMATCH=y -CONFIG_CMDLINE_BOOL=y -CONFIG_CMDLINE="earlyprintk" -CONFIG_FRAME_POINTER=y CONFIG_STACKTRACE=y -# CONFIG_CRYPTO_ANSI_CPRNG is not set # CONFIG_CRYPTO_HW is not set -CONFIG_PCI=y -CONFIG_PCI_DEBUG=y -CONFIG_USB_HID=y -CONFIG_USB_SUPPORT=y -CONFIG_USB_COMMON=y -CONFIG_USB=y -CONFIG_USB_XHCI_HCD=y -CONFIG_USB_XHCI_PCI=y -CONFIG_USB_EHCI_HCD=y -CONFIG_PACKET=y -CONFIG_NETDEVICES=y -CONFIG_NET_CORE=y -CONFIG_ETHERNET=y -CONFIG_NET_VENDOR_INTEL=y -CONFIG_E1000E=y -CONFIG_PCIE_XILINX=y -CONFIG_R8169=y -CONFIG_SCSI=y -CONFIG_SCSI_DMA=y -CONFIG_SCSI_PROC_FS=y -CONFIG_USB_STORAGE=y -CONFIG_BLK_DEV=y -CONFIG_BLK_DEV_SD=y -CONFIG_EFI_PARTITION=y -CONFIG_ATA=y -CONFIG_SATA_AHCI=y -CONFIG_SATA_SIL24=y diff --git a/riscv-qemu b/riscv-qemu new file mode 160000 index 0000000..2ab9055 --- /dev/null +++ b/riscv-qemu @@ -0,0 +1 @@ +Subproject commit 2ab905517f367c4ac60603080c4d9abec658a647 From 376514570845e0032b293738a9e94a5ce82d4917 Mon Sep 17 00:00:00 2001 From: Palmer Dabbelt Date: Mon, 11 Dec 2017 13:28:21 -0800 Subject: [PATCH 02/15] Move Linux to 4.14 4.14 was actually released, so we're moving to a branch based on that. --- linux | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/linux b/linux index c2d852c..87cb3b7 160000 --- a/linux +++ b/linux @@ -1 +1 @@ -Subproject commit c2d852cb2f3d1875389ed23ad41fbab541b9533b +Subproject commit 87cb3b7930572ac03ffefeb4b5c473b899c9f875 From 86de0ac05a94e0c2b38530ad4f6c7fad1ffbc0e2 Mon Sep 17 00:00:00 2001 From: Palmer Dabbelt Date: Mon, 11 Dec 2017 13:30:24 -0800 Subject: [PATCH 03/15] Add "make qemu", which runs a QEMU-based system This currently has support for a virtio disk, and the Makefiles will create an empty one for you. --- Makefile | 27 ++++++++++++++++++++++++++- conf/linux_defconfig | 2 ++ riscv-qemu | 2 +- 3 files changed, 29 insertions(+), 2 deletions(-) diff --git a/Makefile b/Makefile index 8e2cb44..f868b49 100644 --- a/Makefile +++ b/Makefile @@ -40,6 +40,12 @@ spike_srcdir := $(srcdir)/riscv-isa-sim spike_wrkdir := $(wrkdir)/riscv-isa-sim spike := $(spike_wrkdir)/prefix/bin/spike +qemu_srcdir := $(srcdir)/riscv-qemu +qemu_wrkdir := $(wrkdir)/riscv-qemu +qemu := $(qemu_wrkdir)/prefix/bin/qemu-system-riscv64 + +rootfs := $(wrkdir)/rootfs.bin + target := riscv64-unknown-linux-gnu .PHONY: all @@ -110,7 +116,7 @@ $(bbl): $(pk_srcdir) $(vmlinux_stripped) cd $(pk_wrkdir) && $ Date: Mon, 11 Dec 2017 13:52:07 -0800 Subject: [PATCH 04/15] Add VirtIO net support --- Makefile | 4 +++- conf/linux_defconfig | 1 + 2 files changed, 4 insertions(+), 1 deletion(-) diff --git a/Makefile b/Makefile index f868b49..a8f3f5d 100644 --- a/Makefile +++ b/Makefile @@ -177,4 +177,6 @@ sim: $(spike) $(bbl) .PHONY: qemu qemu: $(qemu) $(bbl) $(rootfs) - $(qemu) -nographic -machine virt -kernel $(bbl) -drive file=$(rootfs),format=raw,id=hd0 -device virtio-blk-device,drive=hd0 + $(qemu) -nographic -machine virt -kernel $(bbl) \ + -drive file=$(rootfs),format=raw,id=hd0 -device virtio-blk-device,drive=hd0 \ + -netdev user,id=net0 -device virtio-net-device,netdev=net0 diff --git a/conf/linux_defconfig b/conf/linux_defconfig index a066f0e..50fe1f4 100644 --- a/conf/linux_defconfig +++ b/conf/linux_defconfig @@ -36,6 +36,7 @@ CONFIG_ATA=y CONFIG_SATA_AHCI=y CONFIG_SATA_SIL24=y CONFIG_NETDEVICES=y +CONFIG_VIRTIO_NET=y CONFIG_E1000E=y CONFIG_R8169=y # CONFIG_INPUT_KEYBOARD is not set From fb4fbbffe22376f24b0b5728cf29ef3795aca9d0 Mon Sep 17 00:00:00 2001 From: Palmer Dabbelt Date: Wed, 13 Dec 2017 17:17:29 -0800 Subject: [PATCH 05/15] Rename the buildroot output, so I can have two of them --- Makefile | 40 +++++++++++++++++++-------------- conf/buildroot_initramfs_config | 19 ++++++++++++++++ 2 files changed, 42 insertions(+), 17 deletions(-) create mode 100644 conf/buildroot_initramfs_config diff --git a/Makefile b/Makefile index a8f3f5d..406c847 100644 --- a/Makefile +++ b/Makefile @@ -13,11 +13,12 @@ toolchain_wrkdir := $(wrkdir)/riscv-gnu-toolchain toolchain_dest := $(CURDIR)/toolchain buildroot_srcdir := $(srcdir)/buildroot -buildroot_wrkdir := $(wrkdir)/buildroot -buildroot_tar := $(buildroot_wrkdir)/images/rootfs.tar +buildroot_initramfs_wrkdir := $(wrkdir)/buildroot_initramfs +buildroot_initramfs_tar := $(buildroot_initramfs_wrkdir)/images/rootfs.tar +buildroot_initramfs_config := $(confdir)/buildroot_initramfs_config -sysroot_stamp := $(wrkdir)/.sysroot -sysroot := $(wrkdir)/sysroot +buildroot_initramfs_sysroot_stamp := $(wrkdir)/.buildroot_initramfs_sysroot +buildroot_initramfs_sysroot := $(wrkdir)/buildroot_initramfs_sysroot linux_srcdir := $(srcdir)/linux linux_wrkdir := $(wrkdir)/linux @@ -66,17 +67,22 @@ $(toolchain_dest)/bin/$(target)-gcc: $(toolchain_srcdir) $(MAKE) -C $(toolchain_wrkdir) sed 's/^#define LINUX_VERSION_CODE.*/#define LINUX_VERSION_CODE 263682/' -i $(toolchain_dest)/sysroot/usr/include/linux/version.h -$(buildroot_tar): $(buildroot_srcdir) $(RISCV)/bin/$(target)-gcc - $(MAKE) -C $< RISCV=$(RISCV) PATH=$(PATH) O=$(buildroot_wrkdir) riscv64_defconfig - $(MAKE) -C $< RISCV=$(RISCV) PATH=$(PATH) O=$(buildroot_wrkdir) +$(buildroot_initramfs_wrkdir)/.config: $(buildroot_srcdir) + rm -rf $(dir $@) + mkdir -p $(dir $@) + cp $(buildroot_initramfs_config) $@ + $(MAKE) -C $< RISCV=$(RISCV) PATH=$(PATH) O=$(buildroot_initramfs_wrkdir) olddefconfig -.PHONY: buildroot-menuconfig -buildroot-menuconfig: $(buildroot_srcdir) - $(MAKE) -C $< O=$(buildroot_wrkdir) menuconfig +$(buildroot_initramfs_tar): $(buildroot_srcdir) $(buildroot_initramfs_wrkdir)/.config $(RISCV)/bin/$(target)-gcc $(buildroot_initramfs_config) + $(MAKE) -C $< RISCV=$(RISCV) PATH=$(PATH) O=$(buildroot_initramfs_wrkdir) -$(sysroot_stamp): $(buildroot_tar) - mkdir -p $(sysroot) - tar -xpf $< -C $(sysroot) --exclude ./dev --exclude ./usr/share/locale +.PHONY: buildroot_initramfs-menuconfig +buildroot_initramfs-menuconfig: $(buildroot_srcdir) + $(MAKE) -C $< O=$(buildroot_initramfs_wrkdir) menuconfig + +$(buildroot_initramfs_sysroot_stamp): $(buildroot_initramfs_tar) + mkdir -p $(buildroot_initramfs_sysroot) + tar -xpf $< -C $(buildroot_initramfs_sysroot) --exclude ./dev --exclude ./usr/share/locale touch $@ $(linux_wrkdir)/.config: $(linux_defconfig) $(linux_srcdir) @@ -95,9 +101,9 @@ ifeq ($(ISA),$(filter rv32%,$(ISA))) $(MAKE) -C $(linux_srcdir) O=$(linux_wrkdir) ARCH=riscv olddefconfig endif -$(vmlinux): $(linux_srcdir) $(linux_wrkdir)/.config $(sysroot_stamp) +$(vmlinux): $(linux_srcdir) $(linux_wrkdir)/.config $(buildroot_initramfs_sysroot_stamp) $(MAKE) -C $< O=$(linux_wrkdir) \ - CONFIG_INITRAMFS_SOURCE="$(confdir)/initramfs.txt $(sysroot)" \ + CONFIG_INITRAMFS_SOURCE="$(confdir)/initramfs.txt $(buildroot_initramfs_sysroot)" \ CONFIG_INITRAMFS_ROOT_UID=$(shell id -u) \ CONFIG_INITRAMFS_ROOT_GID=$(shell id -g) \ ARCH=riscv \ @@ -162,8 +168,8 @@ $(rootfs): truncate --size=1G $@ mkfs.ext4 $@ -.PHONY: sysroot vmlinux bbl -sysroot: $(sysroot) +.PHONY: buildroot_initramfs_sysroot vmlinux bbl +buildroot_initramfs_sysroot: $(buildroot_initramfs_sysroot) vmlinux: $(vmlinux) bbl: $(bbl) diff --git a/conf/buildroot_initramfs_config b/conf/buildroot_initramfs_config new file mode 100644 index 0000000..bf2a6d3 --- /dev/null +++ b/conf/buildroot_initramfs_config @@ -0,0 +1,19 @@ +BR2_riscv64=y +BR2_TOOLCHAIN_EXTERNAL=y +BR2_TOOLCHAIN_EXTERNAL_PATH="$(RISCV)" +BR2_TOOLCHAIN_EXTERNAL_CUSTOM_PREFIX="$(ARCH)-unknown-linux-gnu" +BR2_TOOLCHAIN_EXTERNAL_GCC_7=y +BR2_TOOLCHAIN_EXTERNAL_HEADERS_4_6=y +BR2_TOOLCHAIN_EXTERNAL_CUSTOM_GLIBC=y +# BR2_TOOLCHAIN_EXTERNAL_INET_RPC is not set +BR2_TOOLCHAIN_EXTERNAL_CXX=y +BR2_TARGET_ROOTFS_EXT2=y +BR2_TARGET_ROOTFS_EXT2_2r1=y +BR2_PACKAGE_DROPBEAR=y +BR2_PACKAGE_DROPBEAR_CLIENT=y +BR2_PACKAGE_DROPBEAR_SMALL=y +BR2_ROOTFS_DEVICE_CREATION_DYNAMIC_DEVTMPFS=y +BR2_ROOTFS_DEVICE_CREATION_DYNAMIC_MDEV=y +BR2_TARGET_GENERIC_ROOT_PASSWD="sifive" +BR2_SYSTEM_DHCP="eth0" +BR2_PACKAGE_PCIUTILS=y From e95495250536709a556452ab1ae81cdba0f667c2 Mon Sep 17 00:00:00 2001 From: Palmer Dabbelt Date: Wed, 13 Dec 2017 17:21:09 -0800 Subject: [PATCH 06/15] Don't bother generating ext2 images for the initramfs --- conf/buildroot_initramfs_config | 8 ++------ 1 file changed, 2 insertions(+), 6 deletions(-) diff --git a/conf/buildroot_initramfs_config b/conf/buildroot_initramfs_config index bf2a6d3..ab434d3 100644 --- a/conf/buildroot_initramfs_config +++ b/conf/buildroot_initramfs_config @@ -7,13 +7,9 @@ BR2_TOOLCHAIN_EXTERNAL_HEADERS_4_6=y BR2_TOOLCHAIN_EXTERNAL_CUSTOM_GLIBC=y # BR2_TOOLCHAIN_EXTERNAL_INET_RPC is not set BR2_TOOLCHAIN_EXTERNAL_CXX=y -BR2_TARGET_ROOTFS_EXT2=y -BR2_TARGET_ROOTFS_EXT2_2r1=y -BR2_PACKAGE_DROPBEAR=y -BR2_PACKAGE_DROPBEAR_CLIENT=y -BR2_PACKAGE_DROPBEAR_SMALL=y -BR2_ROOTFS_DEVICE_CREATION_DYNAMIC_DEVTMPFS=y BR2_ROOTFS_DEVICE_CREATION_DYNAMIC_MDEV=y BR2_TARGET_GENERIC_ROOT_PASSWD="sifive" BR2_SYSTEM_DHCP="eth0" BR2_PACKAGE_PCIUTILS=y +BR2_PACKAGE_DROPBEAR=y +BR2_PACKAGE_HOST_MKE2IMG=y From f622fc4061e11346d394e490e4931fd56487a420 Mon Sep 17 00:00:00 2001 From: Palmer Dabbelt Date: Wed, 13 Dec 2017 17:32:34 -0800 Subject: [PATCH 07/15] Don't install dropbear in the initramfs --- conf/buildroot_initramfs_config | 1 - 1 file changed, 1 deletion(-) diff --git a/conf/buildroot_initramfs_config b/conf/buildroot_initramfs_config index ab434d3..6f4e2f0 100644 --- a/conf/buildroot_initramfs_config +++ b/conf/buildroot_initramfs_config @@ -11,5 +11,4 @@ BR2_ROOTFS_DEVICE_CREATION_DYNAMIC_MDEV=y BR2_TARGET_GENERIC_ROOT_PASSWD="sifive" BR2_SYSTEM_DHCP="eth0" BR2_PACKAGE_PCIUTILS=y -BR2_PACKAGE_DROPBEAR=y BR2_PACKAGE_HOST_MKE2IMG=y From f4d32edd0f0fa0d59e1dc3f501f8e499b20cafb0 Mon Sep 17 00:00:00 2001 From: Palmer Dabbelt Date: Thu, 14 Dec 2017 16:03:24 -0800 Subject: [PATCH 08/15] Have buildroot generate a root file system --- Makefile | 30 ++++++++++--- conf/buildroot_rootfs_config | 81 ++++++++++++++++++++++++++++++++++++ 2 files changed, 105 insertions(+), 6 deletions(-) create mode 100644 conf/buildroot_rootfs_config diff --git a/Makefile b/Makefile index 406c847..b6b8b9b 100644 --- a/Makefile +++ b/Makefile @@ -16,9 +16,11 @@ buildroot_srcdir := $(srcdir)/buildroot buildroot_initramfs_wrkdir := $(wrkdir)/buildroot_initramfs buildroot_initramfs_tar := $(buildroot_initramfs_wrkdir)/images/rootfs.tar buildroot_initramfs_config := $(confdir)/buildroot_initramfs_config - buildroot_initramfs_sysroot_stamp := $(wrkdir)/.buildroot_initramfs_sysroot buildroot_initramfs_sysroot := $(wrkdir)/buildroot_initramfs_sysroot +buildroot_rootfs_wrkdir := $(wrkdir)/buildroot_rootfs +buildroot_rootfs_ext := $(buildroot_rootfs_wrkdir)/images/rootfs.ext4 +buildroot_rootfs_config := $(confdir)/buildroot_rootfs_config linux_srcdir := $(srcdir)/linux linux_wrkdir := $(wrkdir)/linux @@ -77,8 +79,25 @@ $(buildroot_initramfs_tar): $(buildroot_srcdir) $(buildroot_initramfs_wrkdir)/.c $(MAKE) -C $< RISCV=$(RISCV) PATH=$(PATH) O=$(buildroot_initramfs_wrkdir) .PHONY: buildroot_initramfs-menuconfig -buildroot_initramfs-menuconfig: $(buildroot_srcdir) - $(MAKE) -C $< O=$(buildroot_initramfs_wrkdir) menuconfig +buildroot_initramfs-menuconfig: $(buildroot_initramfs_wrkdir)/.config $(buildroot_srcdir) + $(MAKE) -C $(dir $<) O=$(buildroot_initramfs_wrkdir) menuconfig + $(MAKE) -C $(dir $<) O=$(buildroot_initramfs_wrkdir) savedefconfig + cp $(dir $<)/defconfig conf/buildroot_initramfs_config + +$(buildroot_rootfs_wrkdir)/.config: $(buildroot_srcdir) + rm -rf $(dir $@) + mkdir -p $(dir $@) + cp $(buildroot_rootfs_config) $@ + $(MAKE) -C $< RISCV=$(RISCV) PATH=$(PATH) O=$(buildroot_rootfs_wrkdir) olddefconfig + +$(buildroot_rootfs_ext): $(buildroot_srcdir) $(buildroot_rootfs_wrkdir)/.config $(RISCV)/bin/$(target)-gcc $(buildroot_rootfs_config) + $(MAKE) -C $< RISCV=$(RISCV) PATH=$(PATH) O=$(buildroot_rootfs_wrkdir) + +.PHONY: buildroot_rootfs-menuconfig +buildroot_rootfs-menuconfig: $(buildroot_rootfs_wrkdir)/.config $(buildroot_srcdir) + $(MAKE) -C $(dir $<) O=$(buildroot_rootfs_wrkdir) menuconfig + $(MAKE) -C $(dir $<) O=$(buildroot_rootfs_wrkdir) savedefconfig + cp $(dir $<)/defconfig conf/buildroot_rootfs_config $(buildroot_initramfs_sysroot_stamp): $(buildroot_initramfs_tar) mkdir -p $(buildroot_initramfs_sysroot) @@ -164,9 +183,8 @@ $(qemu): $(qemu_srcdir) $(MAKE) -C $(qemu_wrkdir) install touch -c $@ -$(rootfs): - truncate --size=1G $@ - mkfs.ext4 $@ +$(rootfs): $(buildroot_rootfs_ext) + cp $< $@ .PHONY: buildroot_initramfs_sysroot vmlinux bbl buildroot_initramfs_sysroot: $(buildroot_initramfs_sysroot) diff --git a/conf/buildroot_rootfs_config b/conf/buildroot_rootfs_config new file mode 100644 index 0000000..4a280ca --- /dev/null +++ b/conf/buildroot_rootfs_config @@ -0,0 +1,81 @@ +BR2_riscv64=y +BR2_TOOLCHAIN_EXTERNAL=y +BR2_TOOLCHAIN_EXTERNAL_PATH="$(RISCV)" +BR2_TOOLCHAIN_EXTERNAL_CUSTOM_PREFIX="$(ARCH)-unknown-linux-gnu" +BR2_TOOLCHAIN_EXTERNAL_GCC_7=y +BR2_TOOLCHAIN_EXTERNAL_HEADERS_4_6=y +BR2_TOOLCHAIN_EXTERNAL_CUSTOM_GLIBC=y +# BR2_TOOLCHAIN_EXTERNAL_INET_RPC is not set +BR2_TOOLCHAIN_EXTERNAL_CXX=y +BR2_ROOTFS_DEVICE_CREATION_DYNAMIC_MDEV=y +BR2_TARGET_GENERIC_ROOT_PASSWD="sifive" +BR2_SYSTEM_DHCP="eth0" +BR2_PACKAGE_BUSYBOX_SHOW_OTHERS=y +BR2_PACKAGE_FFMPEG=y +BR2_PACKAGE_FFMPEG_GPL=y +BR2_PACKAGE_BONNIE=y +BR2_PACKAGE_CACHE_CALIBRATOR=y +BR2_PACKAGE_DHRYSTONE=y +BR2_PACKAGE_LMBENCH=y +BR2_PACKAGE_LTP_TESTSUITE=y +BR2_PACKAGE_RAMSMP=y +BR2_PACKAGE_RAMSPEED=y +BR2_PACKAGE_STRESS_NG=y +BR2_PACKAGE_WHETSTONE=y +BR2_PACKAGE_PCIUTILS=y +BR2_PACKAGE_MSMTP=y +BR2_PACKAGE_MUTT=y +BR2_PACKAGE_MUTT_IMAP=y +BR2_PACKAGE_MUTT_POP3=y +BR2_PACKAGE_BASH=y +BR2_PACKAGE_WHICH=y +BR2_PACKAGE_COREUTILS=y +BR2_PACKAGE_UTIL_LINUX=y +BR2_PACKAGE_UTIL_LINUX_BINARIES=y +BR2_PACKAGE_UTIL_LINUX_AGETTY=y +BR2_PACKAGE_UTIL_LINUX_BFS=y +BR2_PACKAGE_UTIL_LINUX_CHFN_CHSH=y +BR2_PACKAGE_UTIL_LINUX_CRAMFS=y +BR2_PACKAGE_UTIL_LINUX_EJECT=y +BR2_PACKAGE_UTIL_LINUX_FALLOCATE=y +BR2_PACKAGE_UTIL_LINUX_FDFORMAT=y +BR2_PACKAGE_UTIL_LINUX_FINDFS=y +BR2_PACKAGE_UTIL_LINUX_FSCK=y +BR2_PACKAGE_UTIL_LINUX_HWCLOCK=y +BR2_PACKAGE_UTIL_LINUX_KILL=y +BR2_PACKAGE_UTIL_LINUX_LAST=y +BR2_PACKAGE_UTIL_LINUX_LINE=y +BR2_PACKAGE_UTIL_LINUX_LOGIN_UTILS=y +BR2_PACKAGE_UTIL_LINUX_LOSETUP=y +BR2_PACKAGE_UTIL_LINUX_LSBLK=y +BR2_PACKAGE_UTIL_LINUX_MESG=y +BR2_PACKAGE_UTIL_LINUX_MINIX=y +BR2_PACKAGE_UTIL_LINUX_MORE=y +BR2_PACKAGE_UTIL_LINUX_MOUNT=y +BR2_PACKAGE_UTIL_LINUX_MOUNTPOINT=y +BR2_PACKAGE_UTIL_LINUX_NEWGRP=y +BR2_PACKAGE_UTIL_LINUX_NOLOGIN=y +BR2_PACKAGE_UTIL_LINUX_NSENTER=y +BR2_PACKAGE_UTIL_LINUX_PARTX=y +BR2_PACKAGE_UTIL_LINUX_PIVOT_ROOT=y +BR2_PACKAGE_UTIL_LINUX_RAW=y +BR2_PACKAGE_UTIL_LINUX_RENAME=y +BR2_PACKAGE_UTIL_LINUX_RESET=y +BR2_PACKAGE_UTIL_LINUX_SCHEDUTILS=y +BR2_PACKAGE_UTIL_LINUX_SETPRIV=y +BR2_PACKAGE_UTIL_LINUX_SETTERM=y +BR2_PACKAGE_UTIL_LINUX_SWITCH_ROOT=y +BR2_PACKAGE_UTIL_LINUX_TUNELP=y +BR2_PACKAGE_UTIL_LINUX_UL=y +BR2_PACKAGE_UTIL_LINUX_UNSHARE=y +BR2_PACKAGE_UTIL_LINUX_UTMPDUMP=y +BR2_PACKAGE_UTIL_LINUX_UUIDD=y +BR2_PACKAGE_UTIL_LINUX_VIPW=y +BR2_PACKAGE_UTIL_LINUX_WALL=y +BR2_PACKAGE_UTIL_LINUX_WDCTL=y +BR2_PACKAGE_UTIL_LINUX_WRITE=y +BR2_PACKAGE_UTIL_LINUX_ZRAMCTL=y +BR2_TARGET_ROOTFS_EXT2=y +BR2_TARGET_ROOTFS_EXT2_4=y +BR2_TARGET_ROOTFS_EXT2_EXTRA_BLOCKS=10240 +# BR2_TARGET_ROOTFS_TAR is not set From 61eee3bdfcddc9a1b3b6b1988274d93fe5e7b4f5 Mon Sep 17 00:00:00 2001 From: Palmer Dabbelt Date: Thu, 14 Dec 2017 16:04:33 -0800 Subject: [PATCH 09/15] Split the Linux menuconfig and savedefconfig --- Makefile | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/Makefile b/Makefile index b6b8b9b..3b5ddde 100644 --- a/Makefile +++ b/Makefile @@ -133,7 +133,9 @@ $(vmlinux_stripped): $(vmlinux) .PHONY: linux-menuconfig linux-menuconfig: $(linux_wrkdir)/.config - $(MAKE) -C $(linux_srcdir) O=$(dir $<) ARCH=riscv menuconfig savedefconfig + $(MAKE) -C $(linux_srcdir) O=$(dir $<) ARCH=riscv menuconfig + $(MAKE) -C $(linux_srcdir) O=$(dir $<) ARCH=riscv savedefconfig + cp $(dir $<)/defconfig conf/linux_defconfig $(bbl): $(pk_srcdir) $(vmlinux_stripped) rm -rf $(pk_wrkdir) From a9843529e585e4ff40832bd3bbdd5e361fb0702f Mon Sep 17 00:00:00 2001 From: Palmer Dabbelt Date: Thu, 14 Dec 2017 16:04:50 -0800 Subject: [PATCH 10/15] Add the 16550 serial driver to Linux --- conf/linux_defconfig | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/conf/linux_defconfig b/conf/linux_defconfig index 50fe1f4..c1812e7 100644 --- a/conf/linux_defconfig +++ b/conf/linux_defconfig @@ -42,6 +42,11 @@ CONFIG_R8169=y # CONFIG_INPUT_KEYBOARD is not set # CONFIG_INPUT_MOUSE is not set # CONFIG_VT is not set +CONFIG_SERIAL_8250=y +CONFIG_SERIAL_8250_CONSOLE=y +# CONFIG_SERIAL_8250_PCI is not set +CONFIG_SERIAL_OF_PLATFORM=y +CONFIG_VIRTIO_CONSOLE=y # CONFIG_HW_RANDOM is not set # CONFIG_HWMON is not set CONFIG_USB=y From bdd827549311909ad396b94fff728dd3f7904b7f Mon Sep 17 00:00:00 2001 From: Palmer Dabbelt Date: Fri, 5 Jan 2018 18:04:00 -0800 Subject: [PATCH 11/15] Enable notification and locking --- conf/linux_defconfig | 3 --- 1 file changed, 3 deletions(-) diff --git a/conf/linux_defconfig b/conf/linux_defconfig index c1812e7..7e703d5 100644 --- a/conf/linux_defconfig +++ b/conf/linux_defconfig @@ -56,9 +56,6 @@ CONFIG_USB_STORAGE=y CONFIG_VIRTIO_MMIO=y # CONFIG_IOMMU_SUPPORT is not set CONFIG_EXT3_FS=y -# CONFIG_FILE_LOCKING is not set -# CONFIG_DNOTIFY is not set -# CONFIG_INOTIFY_USER is not set # CONFIG_PROC_PAGE_MONITOR is not set CONFIG_TMPFS=y # CONFIG_MISC_FILESYSTEMS is not set From 7f0577b240c11b1de921e0bdbc8c96c303d96791 Mon Sep 17 00:00:00 2001 From: Palmer Dabbelt Date: Fri, 5 Jan 2018 18:28:35 -0800 Subject: [PATCH 12/15] Build quake for RISC-V --- buildroot | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/buildroot b/buildroot index 672f627..dfc1531 160000 --- a/buildroot +++ b/buildroot @@ -1 +1 @@ -Subproject commit 672f627ce0fe9720b4a193fb9bd583518a990882 +Subproject commit dfc15319532373fb8cea6b67edfd7f16c366d188 From 4563eae51e14e8a5f69cbc7073799f494a2e107e Mon Sep 17 00:00:00 2001 From: Palmer Dabbelt Date: Fri, 5 Jan 2018 18:30:39 -0800 Subject: [PATCH 13/15] Update riscv-pk This adds support for the new toolchain and the 16550 UART. --- riscv-pk | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/riscv-pk b/riscv-pk index 57740d9..0ff3390 160000 --- a/riscv-pk +++ b/riscv-pk @@ -1 +1 @@ -Subproject commit 57740d97cdec928c372d8e752c04a691418cbfa1 +Subproject commit 0ff33906ff8fe4252613e5735ba6e886fd27d9c1 From 62f5a8fc0381aab137409e864961f76405d5f629 Mon Sep 17 00:00:00 2001 From: Palmer Dabbelt Date: Fri, 5 Jan 2018 19:19:53 -0800 Subject: [PATCH 14/15] Disable FFMPEG and LTP These don't work with the stable compiler release, and I don't wan to move right now. --- conf/buildroot_rootfs_config | 3 --- 1 file changed, 3 deletions(-) diff --git a/conf/buildroot_rootfs_config b/conf/buildroot_rootfs_config index 4a280ca..c0ba5a7 100644 --- a/conf/buildroot_rootfs_config +++ b/conf/buildroot_rootfs_config @@ -11,13 +11,10 @@ BR2_ROOTFS_DEVICE_CREATION_DYNAMIC_MDEV=y BR2_TARGET_GENERIC_ROOT_PASSWD="sifive" BR2_SYSTEM_DHCP="eth0" BR2_PACKAGE_BUSYBOX_SHOW_OTHERS=y -BR2_PACKAGE_FFMPEG=y -BR2_PACKAGE_FFMPEG_GPL=y BR2_PACKAGE_BONNIE=y BR2_PACKAGE_CACHE_CALIBRATOR=y BR2_PACKAGE_DHRYSTONE=y BR2_PACKAGE_LMBENCH=y -BR2_PACKAGE_LTP_TESTSUITE=y BR2_PACKAGE_RAMSMP=y BR2_PACKAGE_RAMSPEED=y BR2_PACKAGE_STRESS_NG=y From f51abfd862d46fdc589851633ae50ee99ca1bfb8 Mon Sep 17 00:00:00 2001 From: Palmer Dabbelt Date: Fri, 5 Jan 2018 19:20:28 -0800 Subject: [PATCH 15/15] Use linux/'s headers for the toolchain build This lets me move Linux and the toolchain somewhat independently. --- Makefile | 1 + 1 file changed, 1 insertion(+) diff --git a/Makefile b/Makefile index 3b5ddde..7f528cb 100644 --- a/Makefile +++ b/Makefile @@ -61,6 +61,7 @@ all: $(hex) $(toolchain_dest)/bin/$(target)-gcc: $(toolchain_srcdir) mkdir -p $(toolchain_wrkdir) + $(MAKE) -C $(linux_srcdir) O=$(dir $<) ARCH=riscv INSTALL_HDR_PATH=$(abspath $(toolchain_srcdir)/linux-headers) headers_install cd $(toolchain_wrkdir); $(toolchain_srcdir)/configure \ --prefix=$(toolchain_dest) \ --with-arch=$(ISA) \