This commit is contained in:
David Harris 2021-07-13 13:19:24 -04:00
commit 3427d2b7d6
7 changed files with 274 additions and 2472 deletions

1
.gitignore vendored
View File

@ -30,5 +30,6 @@ wally-pipelined/linux-testgen/x*
!wally-pipelined/linux-testgen/linux-testvectors/tvLinker.sh
wally-pipelined/linux-testgen/buildroot/
wally-pipelined/linux-testgen/buildroot-image-output
wally-pipelined/linux-testgen/buildroot-config-src/main.config.old
wally-pipelined/regression/slack-notifier/slack-webhook-url.txt

View File

@ -7,32 +7,51 @@ If you instead wish to regenerate the RAMs and testvectors from a new Linux imag
you'll need to build the new Linux image, simulate it, and parse its output,
as described below.
* To build a new Linux image, Git clone the Buildroot repository to ./buildroot.
For reference, most recent commit made to the Buildroot repo was
as of last generating the image found on Tera:
commit 4047e10ed6e20492bae572d4929eaa5d67eed746
Author: Gwenhael Goavec-Merou <gwenhael.goavec-merou@trabucayre.com>
Date: Wed Jun 30 06:27:10 2021 +0200
Then hard link ./buildroot-config-src/main.config to ./buildroot/.config.
That config file will in turn point to the other config files in ./buildroot-config-src.
If you wish to modify the configs, then
1. Copy ./buildroot-config-src/linux.config to ./buildroot/output/build/linux-5.10.7/.config
2. Copy ./buildroot-config-src/busybox.config to ./buildroot/output/build/busybox-1.33.1/.config
3. Run "make menuconfig" "make linux-menuconfig" "make busybox-menuconfig" as needed.
4. Copy ./buildroot/output/build/linux-5.10.7/.config back to ./buildroot-config-src/linux.config
5. Copy ./buildroot/output/build/busybox-1.33.1/.config back to ./buildroot-config-src/busybox.config
(*** There may be a better way to do this, but do know that setting up main.config
to point to those two locations within the Buildroot repo results in interesting
".config is the same as .config" errors.)
Then finally you can run make. Note that it may be necessary to rerun make twice,
once when main.config asks for an "Image" output, and once when main.config
"vmlinux" output.
*To build a new Linux image:
1. Git clone the Buildroot repository to ./buildroot:
git clone https://github.com/buildroot/buildroot.git
For reference, Wally (*** will) be proven to work on an image built using
Buildroot when the following was the most recent commit to the Buildroot repo:
commit 4047e10ed6e20492bae572d4929eaa5d67eed746
Author: Gwenhael Goavec-Merou <gwenhael.goavec-merou@trabucayre.com>
Date: Wed Jun 30 06:27:10 2021 +0200
* To generate new RAMs and testvectors from a Linux image,
sym link ./buildroot-image-output to either your new image in ./buildroot/output/image
or the existing image at /courses/e190ax/buildroot/output/image on Tera.
(This might require first deleting the empty buildroot-image-output directory).
Then run ./testvector-generation/logBuildrootMem.sh to generate RAMs.
Then run ./testvector-generation/logAllBuildroot.sh to generate testvectors.
Note that you can only have one instance of QEMU open at a time! Check "ps -ef" to see if
anybody else is running QEMU.
2. If you wish to modify the configs, then in ./buildroot:
a. Run "make menuconfig" or "make linux-menuconfig" or "make busybox-menuconfig".
b. Use the TUI (terminal UI) to load in the existing configs.
For menuconfig, you can load in the source file from
"../buildroot-config-src/main.config"
For linux-menuconfig or busybox-menuconfig, load in from
"../../../../buildroot-config-src/<type>.config"
because for linux and busybox, make traverses down to
./buildroot/output/build/<linux or busybox>.
One annoying thing about the TUI is that if it has a path already loaded,
then before you can enter the new path to buildroot-config-src, you need to
delete the existing one from the textbox. Doing so requires more than backspace.
Once you've deleted as much of the existing path as you can see, arrow left to
check if there is more text you need to delete.
c. Likewise, when you are done editing, tell the TUI to save to the same location.
3. Finally go to ./buildroot-config-src and run make-buildroot.sh.
This script copies ./buildroot-config-src/main.config to ./buildroot/.config
and then invokes make. This is clumsy but effective because buildroot
sometimes does weird things to .config, like moving it to .config.old and
making a new .config -- doing so can really mess up symbolic/hard links.
4. If you'd like debugging symbols, then reconfigure Buildroot to output "vmlinux"
and run make-buildroot again.
*To generate new RAMs and testvectors from a Linux image:
1. sym link ./buildroot-image-output to either your new image in ./buildroot/output/image
or the existing image at /courses/e190ax/buildroot-image-output on Tera.
This might require first deleting the empty buildroot-image-output directory.
2. Then run ./testvector-generation/logBuildrootMem.sh to generate RAMs.
3. Then run ./testvector-generation/logAllBuildroot.sh to generate testvectors.
These latter two steps require QEMU.
Note that you can only have one instance of QEMU open at a time!
At least on Tera, it seems. Check "ps -ef" to see if anybody else is running QEMU.

File diff suppressed because it is too large Load Diff

View File

@ -1,6 +1,6 @@
#
# Automatically generated file; DO NOT EDIT.
# Buildroot -g6622c9f-dirty Configuration
# Buildroot -g1cd7186-dirty Configuration
#
BR2_HAVE_DOT_CONFIG=y
@ -82,7 +82,7 @@ BR2_BZCAT="bzcat"
BR2_XZCAT="xzcat"
BR2_LZCAT="lzip -d -c"
BR2_TAR_OPTIONS=""
BR2_DEFCONFIG="./configs/qemu_riscv64_virt_defconfig"
BR2_DEFCONFIG="./configs/wally-qemu_riscv64_virt_defconfig"
BR2_DL_DIR="$(TOPDIR)/dl"
BR2_HOST_DIR="$(BASE_DIR)/host"
@ -107,8 +107,8 @@ BR2_DEBUG_3=y
# BR2_OPTIMIZE_1 is not set
# BR2_OPTIMIZE_2 is not set
# BR2_OPTIMIZE_3 is not set
BR2_OPTIMIZE_G=y
# BR2_OPTIMIZE_S is not set
# BR2_OPTIMIZE_G is not set
BR2_OPTIMIZE_S=y
# BR2_OPTIMIZE_FAST is not set
# BR2_STATIC_LIBS is not set
BR2_SHARED_LIBS=y
@ -248,10 +248,10 @@ BR2_BINUTILS_EXTRA_CONFIG_OPTIONS=""
# GCC Options
#
# BR2_GCC_VERSION_8_X is not set
BR2_GCC_VERSION_9_X=y
# BR2_GCC_VERSION_10_X is not set
# BR2_GCC_VERSION_9_X is not set
BR2_GCC_VERSION_10_X=y
# BR2_GCC_VERSION_11_X is not set
BR2_GCC_VERSION="9.4.0"
BR2_GCC_VERSION="10.3.0"
BR2_EXTRA_GCC_CONFIG_OPTIONS=""
# BR2_TOOLCHAIN_BUILDROOT_CXX is not set
# BR2_TOOLCHAIN_BUILDROOT_FORTRAN is not set
@ -345,7 +345,8 @@ BR2_TOOLCHAIN_GCC_AT_LEAST_6=y
BR2_TOOLCHAIN_GCC_AT_LEAST_7=y
BR2_TOOLCHAIN_GCC_AT_LEAST_8=y
BR2_TOOLCHAIN_GCC_AT_LEAST_9=y
BR2_TOOLCHAIN_GCC_AT_LEAST="9"
BR2_TOOLCHAIN_GCC_AT_LEAST_10=y
BR2_TOOLCHAIN_GCC_AT_LEAST="10"
BR2_TOOLCHAIN_HAS_MNAN_OPTION=y
BR2_TOOLCHAIN_HAS_SYNC_1=y
BR2_TOOLCHAIN_HAS_SYNC_2=y
@ -359,19 +360,19 @@ BR2_TOOLCHAIN_HAS_ATOMIC=y
#
BR2_ROOTFS_SKELETON_DEFAULT=y
# BR2_ROOTFS_SKELETON_CUSTOM is not set
BR2_TARGET_GENERIC_HOSTNAME="BuildrootHost"
BR2_TARGET_GENERIC_ISSUE="Welcome to Wally Buildroot"
BR2_TARGET_GENERIC_HOSTNAME="WallyHostname"
BR2_TARGET_GENERIC_ISSUE="Greetings! This RISC-V Linux image was built for Wally on Buildroot!"
BR2_TARGET_GENERIC_PASSWD_SHA256=y
# BR2_TARGET_GENERIC_PASSWD_SHA512 is not set
BR2_TARGET_GENERIC_PASSWD_METHOD="sha-256"
# BR2_INIT_BUSYBOX is not set
BR2_INIT_BUSYBOX=y
# BR2_INIT_SYSV is not set
# BR2_INIT_OPENRC is not set
#
# systemd needs a glibc toolchain w/ SSP, headers >= 3.10, host and target gcc >= 5
#
BR2_INIT_NONE=y
# BR2_INIT_NONE is not set
# BR2_ROOTFS_DEVICE_CREATION_STATIC is not set
BR2_ROOTFS_DEVICE_CREATION_DYNAMIC_DEVTMPFS=y
# BR2_ROOTFS_DEVICE_CREATION_DYNAMIC_MDEV is not set
@ -382,10 +383,10 @@ BR2_ROOTFS_DEVICE_TABLE="system/device_table.txt"
BR2_TARGET_ENABLE_ROOT_LOGIN=y
BR2_TARGET_GENERIC_ROOT_PASSWD=""
BR2_SYSTEM_BIN_SH_BUSYBOX=y
# BR2_SYSTEM_BIN_SH_BASH is not set
# BR2_SYSTEM_BIN_SH_DASH is not set
# BR2_SYSTEM_BIN_SH_MKSH is not set
# BR2_SYSTEM_BIN_SH_ZSH is not set
#
# bash, dash, mksh, zsh need BR2_PACKAGE_BUSYBOX_SHOW_OTHERS
#
# BR2_SYSTEM_BIN_SH_NONE is not set
BR2_TARGET_GENERIC_GETTY=y
BR2_TARGET_GENERIC_GETTY_PORT="console"
@ -399,7 +400,7 @@ BR2_TARGET_GENERIC_GETTY_BAUDRATE="0"
BR2_TARGET_GENERIC_GETTY_TERM="vt100"
BR2_TARGET_GENERIC_GETTY_OPTIONS=""
BR2_TARGET_GENERIC_REMOUNT_ROOTFS_RW=y
BR2_SYSTEM_DHCP=""
BR2_SYSTEM_DHCP="eth0"
BR2_SYSTEM_DEFAULT_PATH="/bin:/sbin:/usr/bin:/usr/sbin"
BR2_ENABLE_LOCALE_PURGE=y
BR2_ENABLE_LOCALE_WHITELIST="C en_US"
@ -429,14 +430,13 @@ BR2_LINUX_KERNEL_CUSTOM_VERSION_VALUE="5.10.7"
BR2_LINUX_KERNEL_VERSION="5.10.7"
BR2_LINUX_KERNEL_PATCH=""
# BR2_LINUX_KERNEL_USE_DEFCONFIG is not set
# BR2_LINUX_KERNEL_USE_ARCH_DEFAULT_CONFIG is not set
BR2_LINUX_KERNEL_USE_CUSTOM_CONFIG=y
BR2_LINUX_KERNEL_CUSTOM_CONFIG_FILE="../buildroot-config-src/linux.config"
BR2_LINUX_KERNEL_USE_ARCH_DEFAULT_CONFIG=y
# BR2_LINUX_KERNEL_USE_CUSTOM_CONFIG is not set
BR2_LINUX_KERNEL_CONFIG_FRAGMENT_FILES=""
BR2_LINUX_KERNEL_CUSTOM_LOGO_PATH=""
# BR2_LINUX_KERNEL_IMAGE is not set
BR2_LINUX_KERNEL_IMAGE=y
# BR2_LINUX_KERNEL_IMAGEGZ is not set
BR2_LINUX_KERNEL_VMLINUX=y
# BR2_LINUX_KERNEL_VMLINUX is not set
# BR2_LINUX_KERNEL_IMAGE_TARGET_CUSTOM is not set
BR2_LINUX_KERNEL_GZIP=y
# BR2_LINUX_KERNEL_LZ4 is not set
@ -464,23 +464,26 @@ BR2_LINUX_KERNEL_GZIP=y
# BR2_PACKAGE_LINUX_TOOLS_IIO is not set
# BR2_PACKAGE_LINUX_TOOLS_PCI is not set
# BR2_PACKAGE_LINUX_TOOLS_PERF is not set
# BR2_PACKAGE_LINUX_TOOLS_SELFTESTS is not set
#
# selftests needs BR2_PACKAGE_BUSYBOX_SHOW_OTHERS and a toolchain w/ dynamic library
#
# BR2_PACKAGE_LINUX_TOOLS_TMON is not set
#
# Target packages
#
BR2_PACKAGE_BUSYBOX=y
BR2_PACKAGE_BUSYBOX_CONFIG="../buildroot-config-src/busybox.config"
BR2_PACKAGE_BUSYBOX_CONFIG="package/busybox/busybox.config"
BR2_PACKAGE_BUSYBOX_CONFIG_FRAGMENT_FILES=""
BR2_PACKAGE_BUSYBOX_SHOW_OTHERS=y
# BR2_PACKAGE_BUSYBOX_SHOW_OTHERS is not set
# BR2_PACKAGE_BUSYBOX_INDIVIDUAL_BINARIES is not set
# BR2_PACKAGE_BUSYBOX_WATCHDOG is not set
BR2_PACKAGE_SKELETON=y
BR2_PACKAGE_HAS_SKELETON=y
BR2_PACKAGE_PROVIDES_SKELETON="skeleton-init-none"
BR2_PACKAGE_PROVIDES_SKELETON="skeleton-init-sysv"
BR2_PACKAGE_SKELETON_INIT_COMMON=y
BR2_PACKAGE_SKELETON_INIT_NONE=y
BR2_PACKAGE_SKELETON_INIT_SYSV=y
#
# Audio and video applications
@ -590,7 +593,6 @@ BR2_PACKAGE_PULSEAUDIO_HAS_ATOMIC=y
#
# BR2_PACKAGE_BROTLI is not set
# BR2_PACKAGE_BZIP2 is not set
# BR2_PACKAGE_GZIP is not set
#
# lrzip needs a toolchain w/ wchar, threads, C++
@ -610,7 +612,6 @@ BR2_PACKAGE_PULSEAUDIO_HAS_ATOMIC=y
#
# unrar needs a toolchain w/ C++, wchar, threads
#
# BR2_PACKAGE_UNZIP is not set
# BR2_PACKAGE_XZ is not set
# BR2_PACKAGE_ZIP is not set
# BR2_PACKAGE_ZSTD is not set
@ -656,7 +657,6 @@ BR2_PACKAGE_GDB_ARCH_SUPPORTS=y
# BR2_PACKAGE_LATENCYTOP is not set
# BR2_PACKAGE_LIBBPF is not set
# BR2_PACKAGE_LMBENCH is not set
# BR2_PACKAGE_LSOF is not set
BR2_PACKAGE_LTP_TESTSUITE_ARCH_SUPPORTS=y
# BR2_PACKAGE_LTP_TESTSUITE is not set
# BR2_PACKAGE_LTTNG_BABELTRACE is not set
@ -689,7 +689,6 @@ BR2_PACKAGE_LTP_TESTSUITE_ARCH_SUPPORTS=y
#
# Development tools
#
# BR2_PACKAGE_BATS_CORE is not set
# BR2_PACKAGE_BINUTILS is not set
# BR2_PACKAGE_BITWISE is not set
# BR2_PACKAGE_BSDIFF is not set
@ -705,11 +704,7 @@ BR2_PACKAGE_LTP_TESTSUITE_ARCH_SUPPORTS=y
#
# cxxtest needs a toolchain w/ C++ support
#
# BR2_PACKAGE_DIFFUTILS is not set
# BR2_PACKAGE_DOS2UNIX is not set
# BR2_PACKAGE_FINDUTILS is not set
# BR2_PACKAGE_FLEX is not set
# BR2_PACKAGE_GAWK is not set
# BR2_PACKAGE_GETTEXT is not set
BR2_PACKAGE_PROVIDES_HOST_GETTEXT="host-gettext-tiny"
# BR2_PACKAGE_GIT is not set
@ -721,15 +716,12 @@ BR2_PACKAGE_PROVIDES_HOST_GETTEXT="host-gettext-tiny"
#
# gperf needs a toolchain w/ C++
#
# BR2_PACKAGE_GREP is not set
# BR2_PACKAGE_JO is not set
# BR2_PACKAGE_JQ is not set
# BR2_PACKAGE_LIBTOOL is not set
# BR2_PACKAGE_MAKE is not set
# BR2_PACKAGE_MAWK is not set
# BR2_PACKAGE_PATCH is not set
# BR2_PACKAGE_PKGCONF is not set
# BR2_PACKAGE_SED is not set
# BR2_PACKAGE_SUBVERSION is not set
# BR2_PACKAGE_TREE is not set
@ -908,7 +900,6 @@ BR2_PACKAGE_NETSURF_ARCH_SUPPORTS=y
# BR2_PACKAGE_FB_TEST_APP is not set
# BR2_PACKAGE_FBDUMP is not set
# BR2_PACKAGE_FBGRAB is not set
# BR2_PACKAGE_FBSET is not set
#
# fbterm needs a toolchain w/ C++, wchar, locale
@ -1051,10 +1042,8 @@ BR2_PACKAGE_FLASHROM_ARCH_SUPPORTS=y
# gptfdisk needs a toolchain w/ C++
#
# BR2_PACKAGE_GVFS is not set
# BR2_PACKAGE_HDPARM is not set
# BR2_PACKAGE_HWDATA is not set
# BR2_PACKAGE_HWLOC is not set
# BR2_PACKAGE_I2C_TOOLS is not set
# BR2_PACKAGE_INPUT_EVENT_DAEMON is not set
# BR2_PACKAGE_IPMITOOL is not set
# BR2_PACKAGE_IRDA_UTILS is not set
@ -2437,10 +2426,7 @@ BR2_PACKAGE_PROTOBUF_ARCH_SUPPORTS=y
# BR2_PACKAGE_LIBFRIBIDI is not set
# BR2_PACKAGE_LIBUNISTRING is not set
# BR2_PACKAGE_LINENOISE is not set
BR2_PACKAGE_NCURSES=y
# BR2_PACKAGE_NCURSES_WCHAR is not set
# BR2_PACKAGE_NCURSES_TARGET_PROGS is not set
BR2_PACKAGE_NCURSES_ADDITIONAL_TERMINFO=""
# BR2_PACKAGE_NCURSES is not set
# BR2_PACKAGE_NEWT is not set
# BR2_PACKAGE_ONIGURUMA is not set
# BR2_PACKAGE_PCRE is not set
@ -2450,8 +2436,7 @@ BR2_PACKAGE_NCURSES_ADDITIONAL_TERMINFO=""
#
# re2 needs a toolchain w/ C++, threads, gcc >= 4.8
#
BR2_PACKAGE_READLINE=y
# BR2_PACKAGE_READLINE_BRACKETED_PASTE is not set
# BR2_PACKAGE_READLINE is not set
# BR2_PACKAGE_SLANG is not set
#
@ -2598,7 +2583,6 @@ BR2_PACKAGE_BITCOIN_ARCH_SUPPORTS=y
# BR2_PACKAGE_DANTE is not set
# BR2_PACKAGE_DARKHTTPD is not set
# BR2_PACKAGE_DEHYDRATED is not set
# BR2_PACKAGE_DHCP is not set
# BR2_PACKAGE_DHCPCD is not set
# BR2_PACKAGE_DHCPDUMP is not set
# BR2_PACKAGE_DNSMASQ is not set
@ -2656,18 +2640,14 @@ BR2_PACKAGE_HAPROXY_ARCH_SUPPORTS=y
#
# ibrdtnd needs a toolchain w/ C++, threads
#
# BR2_PACKAGE_IFENSLAVE is not set
# BR2_PACKAGE_IFMETRIC is not set
# BR2_PACKAGE_IFPLUGD is not set
# BR2_PACKAGE_IFTOP is not set
# BR2_PACKAGE_IFUPDOWN is not set
# BR2_PACKAGE_IFUPDOWN_SCRIPTS is not set
# BR2_PACKAGE_IGD2_FOR_LINUX is not set
# BR2_PACKAGE_IGH_ETHERCAT is not set
# BR2_PACKAGE_IGMPPROXY is not set
# BR2_PACKAGE_INADYN is not set
# BR2_PACKAGE_IODINE is not set
# BR2_PACKAGE_IPCALC is not set
#
# iperf needs a toolchain w/ C++
@ -2733,11 +2713,8 @@ BR2_PACKAGE_MONGREL2_LIBC_SUPPORTS=y
# BR2_PACKAGE_NBD is not set
# BR2_PACKAGE_NCFTP is not set
# BR2_PACKAGE_NDISC6 is not set
# BR2_PACKAGE_NET_TOOLS is not set
# BR2_PACKAGE_NETATALK is not set
# BR2_PACKAGE_NETCALC is not set
# BR2_PACKAGE_NETCAT is not set
# BR2_PACKAGE_NETCAT_OPENBSD is not set
# BR2_PACKAGE_NETPLUG is not set
# BR2_PACKAGE_NETSNMP is not set
# BR2_PACKAGE_NETSTAT_NAT is not set
@ -2845,7 +2822,6 @@ BR2_PACKAGE_MONGREL2_LIBC_SUPPORTS=y
# BR2_PACKAGE_TCPDUMP is not set
# BR2_PACKAGE_TCPING is not set
# BR2_PACKAGE_TCPREPLAY is not set
# BR2_PACKAGE_TFTPD is not set
# BR2_PACKAGE_THTTPD is not set
# BR2_PACKAGE_TINC is not set
# BR2_PACKAGE_TINYPROXY is not set
@ -2874,8 +2850,6 @@ BR2_PACKAGE_MONGREL2_LIBC_SUPPORTS=y
# BR2_PACKAGE_VSFTPD is not set
# BR2_PACKAGE_VTUN is not set
# BR2_PACKAGE_WAVEMON is not set
# BR2_PACKAGE_WGET is not set
# BR2_PACKAGE_WHOIS is not set
# BR2_PACKAGE_WIREGUARD_TOOLS is not set
# BR2_PACKAGE_WIRELESS_REGDB is not set
# BR2_PACKAGE_WIRELESS_TOOLS is not set
@ -2939,7 +2913,6 @@ BR2_PACKAGE_MONGREL2_LIBC_SUPPORTS=y
#
# BR2_PACKAGE_OPKG is not set
# BR2_PACKAGE_OPKG_UTILS is not set
# BR2_PACKAGE_RPM is not set
#
# Real-Time
@ -2975,9 +2948,6 @@ BR2_PACKAGE_MONGREL2_LIBC_SUPPORTS=y
#
# Shells
#
BR2_PACKAGE_BASH=y
# BR2_PACKAGE_BASH_LOADABLE_EXAMPLES is not set
# BR2_PACKAGE_DASH is not set
# BR2_PACKAGE_MKSH is not set
# BR2_PACKAGE_ZSH is not set
@ -2985,7 +2955,6 @@ BR2_PACKAGE_BASH=y
# Utilities
#
# BR2_PACKAGE_AT is not set
# BR2_PACKAGE_BASH_COMPLETION is not set
# BR2_PACKAGE_CCRYPT is not set
# BR2_PACKAGE_DIALOG is not set
# BR2_PACKAGE_DTACH is not set
@ -2997,20 +2966,16 @@ BR2_PACKAGE_BASH=y
# BR2_PACKAGE_LOCKFILE_PROGS is not set
# BR2_PACKAGE_LOGROTATE is not set
# BR2_PACKAGE_LOGSURFER is not set
# BR2_PACKAGE_NEOFETCH is not set
# BR2_PACKAGE_PDMENU is not set
# BR2_PACKAGE_PINENTRY is not set
# BR2_PACKAGE_QPRINT is not set
# BR2_PACKAGE_RANGER is not set
# BR2_PACKAGE_RTTY is not set
# BR2_PACKAGE_SCREEN is not set
# BR2_PACKAGE_SCREENFETCH is not set
# BR2_PACKAGE_SUDO is not set
# BR2_PACKAGE_TIME is not set
# BR2_PACKAGE_TINI is not set
# BR2_PACKAGE_TMUX is not set
# BR2_PACKAGE_TTYD is not set
# BR2_PACKAGE_WHICH is not set
# BR2_PACKAGE_XMLSTARLET is not set
# BR2_PACKAGE_XXHASH is not set
# BR2_PACKAGE_YTREE is not set
@ -3028,16 +2993,13 @@ BR2_PACKAGE_BASH=y
#
# circus needs Python 3 and a toolchain w/ C++, threads
#
# BR2_PACKAGE_COREUTILS is not set
# BR2_PACKAGE_CPULOAD is not set
# BR2_PACKAGE_DAEMON is not set
# BR2_PACKAGE_DC3DD is not set
# BR2_PACKAGE_DCRON is not set
#
# ddrescue needs a toolchain w/ C++
#
# BR2_PACKAGE_DEBIANUTILS is not set
#
# docker-compose needs a toolchain w/ C++, wchar, threads, dynamic library
@ -3049,6 +3011,7 @@ BR2_PACKAGE_BASH=y
# BR2_PACKAGE_GKRELLM is not set
# BR2_PACKAGE_HTOP is not set
# BR2_PACKAGE_IBM_SW_TPM2 is not set
BR2_PACKAGE_INITSCRIPTS=y
#
# iotop depends on python or python3
@ -3083,14 +3046,11 @@ BR2_PACKAGE_BASH=y
#
# polkit needs a glibc or musl toolchain with C++, wchar, dynamic library, NPTL, gcc >= 4.9
#
# BR2_PACKAGE_PROCPS_NG is not set
# BR2_PACKAGE_PROCRANK_LINUX is not set
# BR2_PACKAGE_PSMISC is not set
# BR2_PACKAGE_PWGEN is not set
# BR2_PACKAGE_QUOTA is not set
# BR2_PACKAGE_QUOTATOOL is not set
# BR2_PACKAGE_RAUC is not set
# BR2_PACKAGE_RSYSLOG is not set
# BR2_PACKAGE_S6 is not set
# BR2_PACKAGE_S6_LINUX_INIT is not set
# BR2_PACKAGE_S6_LINUX_UTILS is not set
@ -3104,16 +3064,12 @@ BR2_PACKAGE_BASH=y
#
# BR2_PACKAGE_SEATD is not set
# BR2_PACKAGE_SMACK is not set
# BR2_PACKAGE_START_STOP_DAEMON is not set
#
# supervisor needs a python interpreter
#
# BR2_PACKAGE_SWUPDATE is not set
# BR2_PACKAGE_SYSKLOGD is not set
# BR2_PACKAGE_SYSLOG_NG is not set
BR2_PACKAGE_SYSTEMD_ARCH_SUPPORTS=y
# BR2_PACKAGE_TAR is not set
# BR2_PACKAGE_TPM_TOOLS is not set
# BR2_PACKAGE_TPM2_ABRMD is not set
# BR2_PACKAGE_TPM2_TOOLS is not set
@ -3128,14 +3084,11 @@ BR2_PACKAGE_SYSTEMD_ARCH_SUPPORTS=y
#
# BR2_PACKAGE_ED is not set
# BR2_PACKAGE_JOE is not set
# BR2_PACKAGE_LESS is not set
# BR2_PACKAGE_MC is not set
# BR2_PACKAGE_MG is not set
# BR2_PACKAGE_MOST is not set
# BR2_PACKAGE_NANO is not set
# BR2_PACKAGE_UEMACS is not set
BR2_PACKAGE_VIM=y
# BR2_PACKAGE_VIM_RUNTIME is not set
#
# Filesystem images
@ -3144,8 +3097,8 @@ BR2_PACKAGE_VIM=y
# BR2_TARGET_ROOTFS_BTRFS is not set
# BR2_TARGET_ROOTFS_CLOOP is not set
BR2_TARGET_ROOTFS_CPIO=y
# BR2_TARGET_ROOTFS_CPIO_NONE is not set
BR2_TARGET_ROOTFS_CPIO_GZIP=y
BR2_TARGET_ROOTFS_CPIO_NONE=y
# BR2_TARGET_ROOTFS_CPIO_GZIP is not set
# BR2_TARGET_ROOTFS_CPIO_BZIP2 is not set
# BR2_TARGET_ROOTFS_CPIO_LZ4 is not set
# BR2_TARGET_ROOTFS_CPIO_LZMA is not set
@ -3179,9 +3132,10 @@ BR2_TARGET_OPENSBI_LATEST_VERSION=y
# BR2_TARGET_OPENSBI_CUSTOM_GIT is not set
BR2_TARGET_OPENSBI_VERSION="0.9"
BR2_TARGET_OPENSBI_PLAT="generic"
# BR2_TARGET_OPENSBI_INSTALL_DYNAMIC_IMG is not set
BR2_TARGET_OPENSBI_INSTALL_DYNAMIC_IMG=y
BR2_TARGET_OPENSBI_INSTALL_JUMP_IMG=y
# BR2_TARGET_OPENSBI_INSTALL_PAYLOAD_IMG is not set
# BR2_TARGET_OPENSBI_LINUX_PAYLOAD is not set
# BR2_TARGET_UBOOT is not set
#
@ -3196,7 +3150,7 @@ BR2_TARGET_OPENSBI_INSTALL_JUMP_IMG=y
# BR2_PACKAGE_HOST_BTRFS_PROGS is not set
# BR2_PACKAGE_HOST_CHECKPOLICY is not set
# BR2_PACKAGE_HOST_CHECKSEC is not set
BR2_PACKAGE_HOST_CMAKE=y
# BR2_PACKAGE_HOST_CMAKE is not set
# BR2_PACKAGE_HOST_CRAMFS is not set
# BR2_PACKAGE_HOST_CRYPTSETUP is not set
# BR2_PACKAGE_HOST_DBUS_PYTHON is not set
@ -3207,7 +3161,7 @@ BR2_PACKAGE_HOST_CMAKE=y
# BR2_PACKAGE_HOST_DOS2UNIX is not set
# BR2_PACKAGE_HOST_DOSFSTOOLS is not set
# BR2_PACKAGE_HOST_DTC is not set
# BR2_PACKAGE_HOST_E2FSPROGS is not set
BR2_PACKAGE_HOST_E2FSPROGS=y
# BR2_PACKAGE_HOST_E2TOOLS is not set
# BR2_PACKAGE_HOST_ENVIRONMENT_SETUP is not set
# BR2_PACKAGE_HOST_EROFS_UTILS is not set
@ -3250,16 +3204,14 @@ BR2_PACKAGE_HOST_KMOD=y
# BR2_PACKAGE_HOST_PARTED is not set
BR2_PACKAGE_HOST_PATCHELF=y
# BR2_PACKAGE_HOST_PIGZ is not set
BR2_PACKAGE_HOST_PKGCONF=y
# BR2_PACKAGE_HOST_PKGCONF is not set
# BR2_PACKAGE_HOST_PWGEN is not set
BR2_PACKAGE_HOST_PYTHON=y
# BR2_PACKAGE_HOST_PYTHON_SSL is not set
# BR2_PACKAGE_HOST_PYTHON is not set
# BR2_PACKAGE_HOST_PYTHON_CYTHON is not set
# BR2_PACKAGE_HOST_PYTHON_LXML is not set
# BR2_PACKAGE_HOST_PYTHON_SIX is not set
# BR2_PACKAGE_HOST_PYTHON_XLRD is not set
BR2_PACKAGE_HOST_PYTHON3=y
# BR2_PACKAGE_HOST_PYTHON3_SSL is not set
# BR2_PACKAGE_HOST_PYTHON3 is not set
BR2_PACKAGE_HOST_QEMU_ARCH_SUPPORTS=y
BR2_PACKAGE_HOST_QEMU_SYSTEM_ARCH_SUPPORTS=y
BR2_PACKAGE_HOST_QEMU_USER_ARCH_SUPPORTS=y

View File

@ -0,0 +1,3 @@
cp main.config ../buildroot/.config
cd ../buildroot
make

View File

@ -0,0 +1,3 @@
file ../buildroot-image-output/vmlinux
set pagination off
target extended-remote :1234

View File

@ -5,6 +5,7 @@
# outputted to the terminal if you didn't use nohup
customQemu="/courses/e190ax/qemu_sim/rv64_initrd/qemu_experimental/qemu/build/qemu-system-riscv64"
#customQemu="qemu-system-riscv64"
imageDir="../buildroot-image-output"
intermedDir="../linux-testvectors/intermediate-outputs"
outDir="../linux-testvectors"
@ -13,6 +14,7 @@ outDir="../linux-testvectors"
# Uncomment this version for GDB/QEMU debugging
# - Opens up GDB interactively
# - Logs raw QEMU output to qemu_output.txt
$customQemu -M virt -nographic -bios $imageDir/fw_jump.elf -kernel $imageDir/Image -append "root=/dev/vda ro" -initrd $imageDir/rootfs.cpio -s -S & riscv64-unknown-elf-gdb -x gdbinit_debug
#($customQemu -M virt -nographic -bios $imageDir/fw_jump.elf -kernel $imageDir/Image -append "root=/dev/vda ro" -initrd $imageDir/rootfs.cpio -d nochain,cpu,in_asm -serial /dev/null -singlestep -s -S 2> $intermedDir/qemu_output.txt) & riscv64-unknown-elf-gdb
# Uncomment this version to generate qemu_output.txt
@ -24,15 +26,15 @@ outDir="../linux-testvectors"
# - Uses qemu_output.txt
# - Makes qemu_in_gdb_format.txt
# - Splits qemu_in_gdb_format.txt into chunks of 100,000 instrs
cat $intermedDir/qemu_output.txt | ./parse_qemu.py >$intermedDir/qemu_in_gdb_format.txt
cd $intermedDir
split -d -l 5600000 ./qemu_in_gdb_format.txt --verbose
cd ../../testvector-generation
#cat $intermedDir/qemu_output.txt | ./parse_qemu.py >$intermedDir/qemu_in_gdb_format.txt
#cd $intermedDir
#split -d -l 5600000 ./qemu_in_gdb_format.txt --verbose
#cd ../../testvector-generation
# Uncomment this version for parse_gdb_output.py debugging
# - Uses qemu_in_gdb_format.txt
# - Makes testvectors
#cat qemu_in_gdb_format.txt | ./parse_gdb_output.py "$outdir"
#cat $intermedDir/qemu_in_gdb_format.txt | ./parse_gdb_output.py "$outdir"
# =========== Just Do the Thing ==========
# Uncomment this version for the whole thing