[sw] Move device code into sw/device folder This change addresses issue #27. All device code is being moved to the `sw/device` folder. Makefiles and Meson build files had been updated to support the new directory structure. Documentation, and top level and DV dependencies have been updated as well. Manual tests: * ci/run_sw_build.sh * ./meson_init.sh && ninja -C build-fpga && ninja -C build-verilator
diff --git a/ci/run_sw_build.sh b/ci/run_sw_build.sh index 63f19a2..e94a36f 100755 --- a/ci/run_sw_build.sh +++ b/ci/run_sw_build.sh
@@ -38,7 +38,7 @@ PASS_TARGETS=() for target in "${BUILD_TARGETS[@]}"; do echo "Building target ${target}" - if make -C sw "SW_DIR=${target}" "SW_BUILD_DIR=build/${target}"; then + if make -C sw "SW_DIR=device/${target}" "SW_BUILD_DIR=build/${target}"; then PASS_TARGETS=("${PASS_TARGETS[@]}" "${target}") else FAIL_TARGETS=("${FAIL_TARGETS[@]}" "${target}")
diff --git a/doc/ug/getting_started_fpga.md b/doc/ug/getting_started_fpga.md index 83e13f3..c7562dd 100644 --- a/doc/ug/getting_started_fpga.md +++ b/doc/ug/getting_started_fpga.md
@@ -22,7 +22,7 @@ Synthesizing a design for a FPGA board is done with the following commands. The FPGA build will pull in a program to act as the boot ROM. -This is pulled in from the `sw/boot_rom` directory (see the `parameters:` section of the `hw/top_earlgrey/top_earlgrey_nexysvideo.core` file). +This is pulled in from the `sw/device/boot_rom` directory (see the `parameters:` section of the `hw/top_earlgrey/top_earlgrey_nexysvideo.core` file). At the moment there is no check that the `rom.vmem` file is up to date, so it is best to follow the instructions to [Build software](getting_started_sw.md) and understand the FPGA's overall software flow In the following example we synthesize the Earl Grey design for the Nexys Video board using Xilinx Vivado 2018.3. @@ -157,7 +157,7 @@ ```console $ cd $REPO_TOP -$ riscv32-unknown-elf-gdb -ex "target extended-remote :3333" -ex "info reg" sw/boot_rom/boot_rom.elf +$ riscv32-unknown-elf-gdb -ex "target extended-remote :3333" -ex "info reg" sw/device/boot_rom/boot_rom.elf ``` #### Common operations with GDB @@ -190,7 +190,7 @@ It is especially useful in the context of our `boot_rom.elf`, which resides in the ROM region, which will eventually jump to a different executable as part of the flash region. ```console -(gdb) file sw/examples/hello_world/hello_world.elf +(gdb) file sw/device/examples/hello_world/hello_world.elf (gdb) disassemble 0x200005c0,0x200005c0+16*4 ```
diff --git a/doc/ug/getting_started_verilator.md b/doc/ug/getting_started_verilator.md index 0d503af..1831e65 100644 --- a/doc/ug/getting_started_verilator.md +++ b/doc/ug/getting_started_verilator.md
@@ -184,6 +184,6 @@ ```console $ cd $REPO_TOP -$ build/lowrisc_systems_top_earlgrey_verilator_0.1/sim-verilator/Vtop_earlgrey_verilator --meminit=sw/examples/hello_world/hello_world.vmem --trace +$ build/lowrisc_systems_top_earlgrey_verilator_0.1/sim-verilator/Vtop_earlgrey_verilator --meminit=sw/device/examples/hello_world/hello_world.vmem --trace $ gtkwave sim.fst ```
diff --git a/doc/ug/quickstart.md b/doc/ug/quickstart.md index cf47c78..90cdacd 100644 --- a/doc/ug/quickstart.md +++ b/doc/ug/quickstart.md
@@ -11,10 +11,10 @@ ```console $ cd $REPO_TOP $ fusesoc --cores-root . run --target=sim --setup --build lowrisc:systems:top_earlgrey_verilator -$ make SIM=1 -C sw/boot_rom clean all -$ make SIM=1 -C sw/examples/hello_world clean all -$ build/lowrisc_systems_top_earlgrey_verilator_0.1/sim-verilator/Vtop_earlgrey_verilator --rominit=sw/boot_rom/boot_rom.vmem \ -$ --flashinit=sw/examples/hello_world/hello_world.vmem +$ make SIM=1 -C sw/device/boot_rom clean all +$ make SIM=1 -C sw/device/examples/hello_world clean all +$ build/lowrisc_systems_top_earlgrey_verilator_0.1/sim-verilator/Vtop_earlgrey_verilator --rominit=sw/device/boot_rom/boot_rom.vmem \ +$ --flashinit=sw/device/examples/hello_world/hello_world.vmem ``` See the [Getting Started with Verilator Guide](getting_started_verilator.md) for more information.
diff --git a/hw/dv/tools/rules.mk b/hw/dv/tools/rules.mk index bed89c2..b6e6454 100644 --- a/hw/dv/tools/rules.mk +++ b/hw/dv/tools/rules.mk
@@ -49,7 +49,7 @@ rm -rf ${SW_BUILD_DIR} mkdir -p ${SW_BUILD_DIR} $(MAKE) -C $(SW_ROOT_DIR) \ - SW_DIR=boot_rom \ + SW_DIR=device/boot_rom \ SW_BUILD_DIR=$(SW_BUILD_DIR)/rom \ MAKEFLAGS="$(SW_OPTS)" $(MAKE) -C $(SW_ROOT_DIR) \
diff --git a/hw/top_earlgrey/dv/Makefile b/hw/top_earlgrey/dv/Makefile index fb166e8..09f49fd 100644 --- a/hw/top_earlgrey/dv/Makefile +++ b/hw/top_earlgrey/dv/Makefile
@@ -27,30 +27,30 @@ UVM_TEST_SEQ ?= chip_base_vseq ifeq (${TEST_NAME},chip_sanity) - SW_DIR = examples/hello_world + SW_DIR = device/examples/hello_world SW_NAME = hello_world endif ifeq (${TEST_NAME},chip_flash_test) - SW_DIR = tests/flash_ctrl + SW_DIR = device/tests/flash_ctrl SW_NAME = flash_test RUN_OPTS += +cpu_test_timeout_ns=15000000 endif ifeq (${TEST_NAME},chip_sha256_test) - SW_DIR = tests/hmac + SW_DIR = device/tests/hmac SW_NAME = sha256_test RUN_OPTS += +cpu_test_timeout_ns=4000000 endif ifeq (${TEST_NAME},chip_rv_timer_test) - SW_DIR = tests/rv_timer + SW_DIR = device/tests/rv_timer SW_NAME = rv_timer_test RUN_OPTS += +cpu_test_timeout_ns=4000000 endif ifeq (${TEST_NAME},coremark) - SW_DIR = benchmarks/coremark + SW_DIR = device/benchmarks/coremark SW_NAME = coremark RUN_OPTS += +cpu_test_timeout_ns=20000000 SW_OPTS += ITERATIONS=1
diff --git a/hw/top_earlgrey/top_earlgrey_artys7-50.core b/hw/top_earlgrey/top_earlgrey_artys7-50.core index 9864d41..64e1631 100644 --- a/hw/top_earlgrey/top_earlgrey_artys7-50.core +++ b/hw/top_earlgrey/top_earlgrey_artys7-50.core
@@ -21,14 +21,14 @@ parameters: # XXX: This parameter needs to be absolute, or relative to the *.runs/synth_1 # directory. It's best to pass it as absolute path when invoking fusesoc, e.g. - # --SRAM_INIT_FILE=$PWD/sw/examples/hello_world/hello_world.vmem + # --SRAM_INIT_FILE=$PWD/sw/device/examples/hello_world/hello_world.vmem # XXX: The VMEM file should be added to the sources of the Vivado project to # make the Vivado dependency tracking work. However this requires changes to # fusesoc first. SRAM_INIT_FILE: datatype: str description: SRAM initialization file in vmem hex format - default: "../../../../../sw/examples/hello_world/hello_world.vmem" + default: "../../../../../sw/device/examples/hello_world/hello_world.vmem" paramtype: vlogdefine # For value definition, please see ip/prim/rtl/prim_pkg.sv PRIM_DEFAULT_IMPL:
diff --git a/hw/top_earlgrey/top_earlgrey_nexysvideo.core b/hw/top_earlgrey/top_earlgrey_nexysvideo.core index f0e5ca6..2c6eb6c 100644 --- a/hw/top_earlgrey/top_earlgrey_nexysvideo.core +++ b/hw/top_earlgrey/top_earlgrey_nexysvideo.core
@@ -29,14 +29,14 @@ parameters: # XXX: This parameter needs to be absolute, or relative to the *.runs/synth_1 # directory. It's best to pass it as absolute path when invoking fusesoc, e.g. - # --SRAM_INIT_FILE=$PWD/sw/examples/hello_world/hello_world.vmem + # --SRAM_INIT_FILE=$PWD/sw/device/examples/hello_world/hello_world.vmem # XXX: The VMEM file should be added to the sources of the Vivado project to # make the Vivado dependency tracking work. However this requires changes to # fusesoc first. ROM_INIT_FILE: datatype: str description: SRAM initialization file in vmem hex format - default: "../../../../../sw/boot_rom/rom.vmem" + default: "../../../../../sw/device/boot_rom/rom.vmem" paramtype: vlogdefine # For value definition, please see ip/prim/rtl/prim_pkg.sv PRIM_DEFAULT_IMPL:
diff --git a/hw/top_earlgrey/top_earlgrey_usb_nexysvideo.core b/hw/top_earlgrey/top_earlgrey_usb_nexysvideo.core index edbc907..49aaff9 100644 --- a/hw/top_earlgrey/top_earlgrey_usb_nexysvideo.core +++ b/hw/top_earlgrey/top_earlgrey_usb_nexysvideo.core
@@ -21,14 +21,14 @@ parameters: # XXX: This parameter needs to be absolute, or relative to the *.runs/synth_1 # directory. It's best to pass it as absolute path when invoking fusesoc, e.g. - # --SRAM_INIT_FILE=$PWD/sw/examples/hello_world/hello_world.vmem + # --SRAM_INIT_FILE=$PWD/sw/device/examples/hello_world/hello_world.vmem # XXX: The VMEM file should be added to the sources of the Vivado project to # make the Vivado dependency tracking work. However this requires changes to # fusesoc first. SRAM_INIT_FILE: datatype: str description: SRAM initialization file in vmem hex format - default: "../../../../../sw/examples/hello_usbdev/hello_usbdev.vmem" + default: "../../../../../sw/device/examples/hello_usbdev/hello_usbdev.vmem" paramtype: vlogdefine PRIM_DEFAULT_IMPL: datatype: str
diff --git a/meson.build b/meson.build index ef32c46..1df4b00 100644 --- a/meson.build +++ b/meson.build
@@ -46,12 +46,12 @@ prog_git = find_program('git') # RISCV linker parameters. -riscv_linkfile = files(['sw/exts/common/link.ld']) +riscv_linkfile = files(['sw/device/exts/common/link.ld']) riscv_link_args = ['-Wl,-T,@0@/@1@'.format('..', riscv_linkfile[0])] riscv_link_deps = [riscv_linkfile] # RISCV CRT parameters -startup_files = files(['sw/exts/common/_crt.c']) +startup_files = files(['sw/device/exts/common/_crt.c']) # Additional arguments for utility in charge of generating bin and vmem outputs # These variables are expected to be used in custom_target rules.
diff --git a/sw/Makefile b/sw/Makefile index 57d0b31..1c55359 100644 --- a/sw/Makefile +++ b/sw/Makefile
@@ -24,13 +24,13 @@ # Generate a baremetal application for the microcontroller SW_ROOT_DIR := $(shell dirname $(realpath $(lastword $(MAKEFILE_LIST)))) -SW_DIR ?= examples/hello_world +SW_DIR ?= device/examples/hello_world # sources STANDALONE_SW ?= 0 include ${SW_DIR}/srcs.mk -include exts/common/srcs.mk -include lib/srcs.mk +include device/exts/common/srcs.mk +include device/lib/srcs.mk # common options and rules include opts.mk
diff --git a/sw/benchmarks/coremark/README.md b/sw/device/benchmarks/coremark/README.md similarity index 100% rename from sw/benchmarks/coremark/README.md rename to sw/device/benchmarks/coremark/README.md
diff --git a/sw/benchmarks/coremark/srcs.mk b/sw/device/benchmarks/coremark/srcs.mk similarity index 100% rename from sw/benchmarks/coremark/srcs.mk rename to sw/device/benchmarks/coremark/srcs.mk
diff --git a/sw/benchmarks/coremark/top_earlgrey/core_portme.c b/sw/device/benchmarks/coremark/top_earlgrey/core_portme.c similarity index 100% rename from sw/benchmarks/coremark/top_earlgrey/core_portme.c rename to sw/device/benchmarks/coremark/top_earlgrey/core_portme.c
diff --git a/sw/benchmarks/coremark/top_earlgrey/core_portme.h b/sw/device/benchmarks/coremark/top_earlgrey/core_portme.h similarity index 98% rename from sw/benchmarks/coremark/top_earlgrey/core_portme.h rename to sw/device/benchmarks/coremark/top_earlgrey/core_portme.h index 2ddaf8f..caa9dc1 100644 --- a/sw/benchmarks/coremark/top_earlgrey/core_portme.h +++ b/sw/device/benchmarks/coremark/top_earlgrey/core_portme.h
@@ -14,8 +14,8 @@ #include <sys/types.h> -#include "sw/lib/common.h" -#include "sw/lib/uart.h" +#include "sw/device/lib/common.h" +#include "sw/device/lib/uart.h" extern unsigned int _stack_start;
diff --git a/sw/benchmarks/coremark/top_earlgrey/core_portme.mak b/sw/device/benchmarks/coremark/top_earlgrey/core_portme.mak similarity index 100% rename from sw/benchmarks/coremark/top_earlgrey/core_portme.mak rename to sw/device/benchmarks/coremark/top_earlgrey/core_portme.mak
diff --git a/sw/benchmarks/coremark/top_earlgrey/cvt.c b/sw/device/benchmarks/coremark/top_earlgrey/cvt.c similarity index 100% rename from sw/benchmarks/coremark/top_earlgrey/cvt.c rename to sw/device/benchmarks/coremark/top_earlgrey/cvt.c
diff --git a/sw/benchmarks/coremark/top_earlgrey/ee_printf.c b/sw/device/benchmarks/coremark/top_earlgrey/ee_printf.c similarity index 100% rename from sw/benchmarks/coremark/top_earlgrey/ee_printf.c rename to sw/device/benchmarks/coremark/top_earlgrey/ee_printf.c
diff --git a/sw/boot_rom/boot_rom.c b/sw/device/boot_rom/boot_rom.c similarity index 72% rename from sw/boot_rom/boot_rom.c rename to sw/device/boot_rom/boot_rom.c index 91cd210..d0ac43f 100644 --- a/sw/boot_rom/boot_rom.c +++ b/sw/device/boot_rom/boot_rom.c
@@ -2,14 +2,14 @@ // Licensed under the Apache License, Version 2.0, see LICENSE for details. // SPDX-License-Identifier: Apache-2.0 -#include "sw/boot_rom/chip_info.h" // Generated. +#include "sw/device/boot_rom/chip_info.h" // Generated. -#include "sw/boot_rom/bootstrap.h" -#include "sw/lib/common.h" -#include "sw/lib/flash_ctrl.h" -#include "sw/lib/gpio.h" -#include "sw/lib/spi_device.h" -#include "sw/lib/uart.h" +#include "sw/device/boot_rom/bootstrap.h" +#include "sw/device/lib/common.h" +#include "sw/device/lib/flash_ctrl.h" +#include "sw/device/lib/gpio.h" +#include "sw/device/lib/spi_device.h" +#include "sw/device/lib/uart.h" static inline void try_launch(void) { __asm__ volatile(
diff --git a/sw/boot_rom/bootstrap.c b/sw/device/boot_rom/bootstrap.c similarity index 91% rename from sw/boot_rom/bootstrap.c rename to sw/device/boot_rom/bootstrap.c index e56e748..e4f5f29 100644 --- a/sw/boot_rom/bootstrap.c +++ b/sw/device/boot_rom/bootstrap.c
@@ -2,14 +2,14 @@ // Licensed under the Apache License, Version 2.0, see LICENSE for details. // SPDX-License-Identifier: Apache-2.0 -#include "sw/boot_rom/bootstrap.h" +#include "sw/device/boot_rom/bootstrap.h" -#include "sw/lib/common.h" -#include "sw/lib/flash_ctrl.h" -#include "sw/lib/gpio.h" -#include "sw/lib/hw_sha256.h" -#include "sw/lib/spi_device.h" -#include "sw/lib/uart.h" // TODO: Wrap uart in DEBUG macros. +#include "sw/device/lib/common.h" +#include "sw/device/lib/flash_ctrl.h" +#include "sw/device/lib/gpio.h" +#include "sw/device/lib/hw_sha256.h" +#include "sw/device/lib/spi_device.h" +#include "sw/device/lib/uart.h" // TODO: Wrap uart in DEBUG macros. /* Checks if flash is blank to determine if bootstrap is needed. */ /* TODO: Update this to check bootstrap pin instead in Verilator. */
diff --git a/sw/boot_rom/bootstrap.h b/sw/device/boot_rom/bootstrap.h similarity index 93% rename from sw/boot_rom/bootstrap.h rename to sw/device/boot_rom/bootstrap.h index fd0b1bf..ace2692 100644 --- a/sw/boot_rom/bootstrap.h +++ b/sw/device/boot_rom/bootstrap.h
@@ -5,7 +5,7 @@ #ifndef _F_BOOTSTRAP_H__ #define _F_BOOTSTRAP_H__ -#include "sw/boot_rom/bootstrap_msgs.h" +#include "sw/device/boot_rom/bootstrap_msgs.h" /** * Bootstrap Flash with payload received on SPI device.
diff --git a/sw/boot_rom/bootstrap_msgs.h b/sw/device/boot_rom/bootstrap_msgs.h similarity index 100% rename from sw/boot_rom/bootstrap_msgs.h rename to sw/device/boot_rom/bootstrap_msgs.h
diff --git a/sw/boot_rom/crt0.S b/sw/device/boot_rom/crt0.S similarity index 100% rename from sw/boot_rom/crt0.S rename to sw/device/boot_rom/crt0.S
diff --git a/sw/boot_rom/meson.build b/sw/device/boot_rom/meson.build similarity index 100% rename from sw/boot_rom/meson.build rename to sw/device/boot_rom/meson.build
diff --git a/sw/boot_rom/rom_link.ld b/sw/device/boot_rom/rom_link.ld similarity index 100% rename from sw/boot_rom/rom_link.ld rename to sw/device/boot_rom/rom_link.ld
diff --git a/sw/boot_rom/srcs.mk b/sw/device/boot_rom/srcs.mk similarity index 100% rename from sw/boot_rom/srcs.mk rename to sw/device/boot_rom/srcs.mk
diff --git a/sw/examples/hello_usbdev/hello_usbdev.c b/sw/device/examples/hello_usbdev/hello_usbdev.c similarity index 95% rename from sw/examples/hello_usbdev/hello_usbdev.c rename to sw/device/examples/hello_usbdev/hello_usbdev.c index 2dbff9a..24c1c0c 100644 --- a/sw/examples/hello_usbdev/hello_usbdev.c +++ b/sw/device/examples/hello_usbdev/hello_usbdev.c
@@ -2,12 +2,12 @@ // Licensed under the Apache License, Version 2.0, see LICENSE for details. // SPDX-License-Identifier: Apache-2.0 -#include "sw/lib/common.h" -#include "sw/lib/gpio.h" -#include "sw/lib/uart.h" -#include "sw/lib/usb_controlep.h" -#include "sw/lib/usb_simpleserial.h" -#include "sw/lib/usbdev.h" +#include "sw/device/lib/common.h" +#include "sw/device/lib/gpio.h" +#include "sw/device/lib/uart.h" +#include "sw/device/lib/usb_controlep.h" +#include "sw/device/lib/usb_simpleserial.h" +#include "sw/device/lib/usbdev.h" // These just for the '/' printout #define USBDEV_BASE_ADDR 0x40020000
diff --git a/sw/examples/hello_usbdev/meson.build b/sw/device/examples/hello_usbdev/meson.build similarity index 100% rename from sw/examples/hello_usbdev/meson.build rename to sw/device/examples/hello_usbdev/meson.build
diff --git a/sw/examples/hello_usbdev/srcs.mk b/sw/device/examples/hello_usbdev/srcs.mk similarity index 100% rename from sw/examples/hello_usbdev/srcs.mk rename to sw/device/examples/hello_usbdev/srcs.mk
diff --git a/sw/examples/hello_world/hello_world.c b/sw/device/examples/hello_world/hello_world.c similarity index 96% rename from sw/examples/hello_world/hello_world.c rename to sw/device/examples/hello_world/hello_world.c index 8f44872..a02158d 100644 --- a/sw/examples/hello_world/hello_world.c +++ b/sw/device/examples/hello_world/hello_world.c
@@ -2,10 +2,10 @@ // Licensed under the Apache License, Version 2.0, see LICENSE for details. // SPDX-License-Identifier: Apache-2.0 -#include "sw/lib/common.h" -#include "sw/lib/gpio.h" -#include "sw/lib/spi_device.h" -#include "sw/lib/uart.h" +#include "sw/device/lib/common.h" +#include "sw/device/lib/gpio.h" +#include "sw/device/lib/spi_device.h" +#include "sw/device/lib/uart.h" #define SPI_MAX 32
diff --git a/sw/examples/hello_world/meson.build b/sw/device/examples/hello_world/meson.build similarity index 100% rename from sw/examples/hello_world/meson.build rename to sw/device/examples/hello_world/meson.build
diff --git a/sw/examples/hello_world/srcs.mk b/sw/device/examples/hello_world/srcs.mk similarity index 100% rename from sw/examples/hello_world/srcs.mk rename to sw/device/examples/hello_world/srcs.mk
diff --git a/sw/examples/meson.build b/sw/device/examples/meson.build similarity index 100% rename from sw/examples/meson.build rename to sw/device/examples/meson.build
diff --git a/sw/exts/common/_crt.c b/sw/device/exts/common/_crt.c similarity index 88% rename from sw/exts/common/_crt.c rename to sw/device/exts/common/_crt.c index e06889f..109a92d 100644 --- a/sw/exts/common/_crt.c +++ b/sw/device/exts/common/_crt.c
@@ -4,8 +4,8 @@ #include <string.h> -#include "sw/lib/common.h" -#include "sw/lib/irq.h" +#include "sw/device/lib/common.h" +#include "sw/device/lib/irq.h" extern int main(void);
diff --git a/sw/exts/common/link.ld b/sw/device/exts/common/link.ld similarity index 100% rename from sw/exts/common/link.ld rename to sw/device/exts/common/link.ld
diff --git a/sw/exts/common/srcs.mk b/sw/device/exts/common/srcs.mk similarity index 83% rename from sw/exts/common/srcs.mk rename to sw/device/exts/common/srcs.mk index e50b681..a585a52 100644 --- a/sw/exts/common/srcs.mk +++ b/sw/device/exts/common/srcs.mk
@@ -2,7 +2,7 @@ # Licensed under the Apache License, Version 2.0, see LICENSE for details. # SPDX-License-Identifier: Apache-2.0 -EXT_COMMON_DIR ?= $(SW_ROOT_DIR)/exts/common +EXT_COMMON_DIR ?= $(SW_ROOT_DIR)/device/exts/common INCS += -I$(EXT_COMMON_DIR) EXT_COMMON_LOC_SRCS +=
diff --git a/sw/lib/common.h b/sw/device/lib/common.h similarity index 100% rename from sw/lib/common.h rename to sw/device/lib/common.h
diff --git a/sw/lib/flash_ctrl.c b/sw/device/lib/flash_ctrl.c similarity index 98% rename from sw/lib/flash_ctrl.c rename to sw/device/lib/flash_ctrl.c index 24e6559..8d8f7a1 100644 --- a/sw/lib/flash_ctrl.c +++ b/sw/device/lib/flash_ctrl.c
@@ -1,11 +1,11 @@ // Copyright lowRISC contributors. // Licensed under the Apache License, Version 2.0, see LICENSE for details. // SPDX-License-Identifier: Apache-2.0 -#include "sw/lib/flash_ctrl.h" +#include "sw/device/lib/flash_ctrl.h" #include "flash_ctrl_regs.h" // Generated. -#include "sw/lib/common.h" +#include "sw/device/lib/common.h" #define FLASH_CTRL0_BASE_ADDR 0x40030000
diff --git a/sw/lib/flash_ctrl.h b/sw/device/lib/flash_ctrl.h similarity index 100% rename from sw/lib/flash_ctrl.h rename to sw/device/lib/flash_ctrl.h
diff --git a/sw/lib/gpio.c b/sw/device/lib/gpio.c similarity index 92% rename from sw/lib/gpio.c rename to sw/device/lib/gpio.c index aed2247..a7ddf74 100644 --- a/sw/lib/gpio.c +++ b/sw/device/lib/gpio.c
@@ -2,11 +2,11 @@ // Licensed under the Apache License, Version 2.0, see LICENSE for details. // SPDX-License-Identifier: Apache-2.0 -#include "sw/lib/gpio.h" +#include "sw/device/lib/gpio.h" #include <assert.h> -#include "sw/lib/common.h" +#include "sw/device/lib/common.h" void gpio_init(uint32_t oe) { REG32(GPIO_DIRECT_OE(0)) = oe; }
diff --git a/sw/lib/gpio.h b/sw/device/lib/gpio.h similarity index 100% rename from sw/lib/gpio.h rename to sw/device/lib/gpio.h
diff --git a/sw/lib/handler.c b/sw/device/lib/handler.c similarity index 97% rename from sw/lib/handler.c rename to sw/device/lib/handler.c index f882750..b344415 100644 --- a/sw/lib/handler.c +++ b/sw/device/lib/handler.c
@@ -4,8 +4,8 @@ #include "handler.h" -#include "sw/lib/common.h" -#include "sw/lib/uart.h" +#include "sw/device/lib/common.h" +#include "sw/device/lib/uart.h" /** * Default exception handler. Can be overidden.
diff --git a/sw/lib/handler.h b/sw/device/lib/handler.h similarity index 100% rename from sw/lib/handler.h rename to sw/device/lib/handler.h
diff --git a/sw/lib/hmac.c b/sw/device/lib/hmac.c similarity index 98% rename from sw/lib/hmac.c rename to sw/device/lib/hmac.c index 59d954f..bfad441 100644 --- a/sw/lib/hmac.c +++ b/sw/device/lib/hmac.c
@@ -6,7 +6,7 @@ #include "hmac_regs.h" // Generated. -#include "sw/lib/common.h" +#include "sw/device/lib/common.h" #define HMAC0_BASE_ADDR 0x40120000 #define HMAC_FIFO_MAX 16
diff --git a/sw/lib/hmac.h b/sw/device/lib/hmac.h similarity index 100% rename from sw/lib/hmac.h rename to sw/device/lib/hmac.h
diff --git a/sw/lib/hw_sha256.c b/sw/device/lib/hw_sha256.c similarity index 96% rename from sw/lib/hw_sha256.c rename to sw/device/lib/hw_sha256.c index 67731bd..af67cae 100644 --- a/sw/lib/hw_sha256.c +++ b/sw/device/lib/hw_sha256.c
@@ -2,7 +2,7 @@ // Licensed under the Apache License, Version 2.0, see LICENSE for details. // SPDX-License-Identifier: Apache-2.0 -#include "sw/lib/hw_sha256.h" +#include "sw/device/lib/hw_sha256.h" #include "hmac.h"
diff --git a/sw/lib/hw_sha256.h b/sw/device/lib/hw_sha256.h similarity index 100% rename from sw/lib/hw_sha256.h rename to sw/device/lib/hw_sha256.h
diff --git a/sw/lib/irq.c b/sw/device/lib/irq.c similarity index 94% rename from sw/lib/irq.c rename to sw/device/lib/irq.c index 0ecf2dc..f57f5e7 100644 --- a/sw/lib/irq.c +++ b/sw/device/lib/irq.c
@@ -2,9 +2,9 @@ // Licensed under the Apache License, Version 2.0, see LICENSE for details. // SPDX-License-Identifier: Apache-2.0 -#include "sw/lib/irq.h" +#include "sw/device/lib/irq.h" -#include "sw/lib/common.h" +#include "sw/device/lib/common.h" static const uint32_t IRQ_EXT_ENABLE_OFFSET = 11; static const uint32_t IRQ_TIMER_ENABLE_OFFSET = 7;
diff --git a/sw/lib/irq.h b/sw/device/lib/irq.h similarity index 100% rename from sw/lib/irq.h rename to sw/device/lib/irq.h
diff --git a/sw/lib/irq_vectors.S b/sw/device/lib/irq_vectors.S similarity index 100% rename from sw/lib/irq_vectors.S rename to sw/device/lib/irq_vectors.S
diff --git a/sw/lib/meson.build b/sw/device/lib/meson.build similarity index 100% rename from sw/lib/meson.build rename to sw/device/lib/meson.build
diff --git a/sw/lib/rv_timer.c b/sw/device/lib/rv_timer.c similarity index 94% rename from sw/lib/rv_timer.c rename to sw/device/lib/rv_timer.c index 98c7dd1..caa8f24 100644 --- a/sw/lib/rv_timer.c +++ b/sw/device/lib/rv_timer.c
@@ -2,11 +2,11 @@ // Licensed under the Apache License, Version 2.0, see LICENSE for details. // SPDX-License-Identifier: Apache-2.0 -#include "sw/lib/rv_timer.h" +#include "sw/device/lib/rv_timer.h" #include "rv_timer_regs.h" // Generated. -#include "sw/lib/common.h" +#include "sw/device/lib/common.h" #define RV_TIMER0_BASE_ADDR 0x40080000 #define HART_CFG_ADDR_GAP 0x100
diff --git a/sw/lib/rv_timer.h b/sw/device/lib/rv_timer.h similarity index 100% rename from sw/lib/rv_timer.h rename to sw/device/lib/rv_timer.h
diff --git a/sw/lib/spi_device.c b/sw/device/lib/spi_device.c similarity index 98% rename from sw/lib/spi_device.c rename to sw/device/lib/spi_device.c index 9e02f89..04caa34 100644 --- a/sw/lib/spi_device.c +++ b/sw/device/lib/spi_device.c
@@ -2,11 +2,11 @@ // Licensed under the Apache License, Version 2.0, see LICENSE for details. // SPDX-License-Identifier: Apache-2.0 -#include "sw/lib/spi_device.h" +#include "sw/device/lib/spi_device.h" #include "spi_device_regs.h" // Generated. -#include "sw/lib/common.h" +#include "sw/device/lib/common.h" #define SPI_DEVICE0_BASE_ADDR 0x40020000 #define SPID_SRAM_ADDR SPI_DEVICE_BUFFER(0)
diff --git a/sw/lib/spi_device.h b/sw/device/lib/spi_device.h similarity index 100% rename from sw/lib/spi_device.h rename to sw/device/lib/spi_device.h
diff --git a/sw/lib/srcs.mk b/sw/device/lib/srcs.mk similarity index 82% rename from sw/lib/srcs.mk rename to sw/device/lib/srcs.mk index eada8f0..3431149 100644 --- a/sw/lib/srcs.mk +++ b/sw/device/lib/srcs.mk
@@ -2,7 +2,7 @@ # Licensed under the Apache License, Version 2.0, see LICENSE for details. # SPDX-License-Identifier: Apache-2.0 -GEN_HEADERS += $(LIB_LOC_DIF_SRCS:.c=_regs.h) sw/boot_rom/chip_info.h +GEN_HEADERS += $(LIB_LOC_DIF_SRCS:.c=_regs.h) sw/device/boot_rom/chip_info.h LIB_LOC_DIF_SRCS += uart.c gpio.c spi_device.c flash_ctrl.c hmac.c usbdev.c rv_timer.c LIB_LOC_EXT_SRCS += usb_controlep.c usb_simpleserial.c irq.c handler.c irq_vectors.S
diff --git a/sw/lib/uart.c b/sw/device/lib/uart.c similarity index 95% rename from sw/lib/uart.c rename to sw/device/lib/uart.c index f3b10d1..f184916 100644 --- a/sw/lib/uart.c +++ b/sw/device/lib/uart.c
@@ -2,9 +2,9 @@ // Licensed under the Apache License, Version 2.0, see LICENSE for details. // SPDX-License-Identifier: Apache-2.0 -#include "sw/lib/uart.h" +#include "sw/device/lib/uart.h" -#include "sw/lib/common.h" +#include "sw/device/lib/common.h" inline void uart_init(unsigned int baud) { // nco = 2^20 * baud / fclk
diff --git a/sw/lib/uart.h b/sw/device/lib/uart.h similarity index 100% rename from sw/lib/uart.h rename to sw/device/lib/uart.h
diff --git a/sw/lib/usb_consts.h b/sw/device/lib/usb_consts.h similarity index 100% rename from sw/lib/usb_consts.h rename to sw/device/lib/usb_consts.h
diff --git a/sw/lib/usb_controlep.c b/sw/device/lib/usb_controlep.c similarity index 99% rename from sw/lib/usb_controlep.c rename to sw/device/lib/usb_controlep.c index 064b9b2..5ff370a 100644 --- a/sw/lib/usb_controlep.c +++ b/sw/device/lib/usb_controlep.c
@@ -7,7 +7,7 @@ #include <stddef.h> -#include "sw/lib/common.h" +#include "sw/device/lib/common.h" #include "usb_consts.h" #include "usbdev.h"
diff --git a/sw/lib/usb_controlep.h b/sw/device/lib/usb_controlep.h similarity index 98% rename from sw/lib/usb_controlep.h rename to sw/device/lib/usb_controlep.h index 1046083..9e9e218 100644 --- a/sw/lib/usb_controlep.h +++ b/sw/device/lib/usb_controlep.h
@@ -6,7 +6,7 @@ #define __USB_CONTROLEP_H__ #include <stddef.h> -#include "sw/lib/common.h" +#include "sw/device/lib/common.h" #include "usbdev.h" typedef enum ctstate {
diff --git a/sw/lib/usb_simpleserial.c b/sw/device/lib/usb_simpleserial.c similarity index 98% rename from sw/lib/usb_simpleserial.c rename to sw/device/lib/usb_simpleserial.c index 66da987..46229b1 100644 --- a/sw/lib/usb_simpleserial.c +++ b/sw/device/lib/usb_simpleserial.c
@@ -7,7 +7,7 @@ #include <stddef.h> -#include "sw/lib/common.h" +#include "sw/device/lib/common.h" #include "usbdev.h" #define MAX_GATHER 16
diff --git a/sw/lib/usb_simpleserial.h b/sw/device/lib/usb_simpleserial.h similarity index 96% rename from sw/lib/usb_simpleserial.h rename to sw/device/lib/usb_simpleserial.h index c1cc51a..dbb994a 100644 --- a/sw/lib/usb_simpleserial.h +++ b/sw/device/lib/usb_simpleserial.h
@@ -5,7 +5,7 @@ #ifndef __USB_SIMPLESERIAL_H__ #define __USB_SIMPLESERIAL_H__ -#include "sw/lib/common.h" +#include "sw/device/lib/common.h" #include "usbdev.h" // This is only here because caller of _init needs it
diff --git a/sw/lib/usbdev.c b/sw/device/lib/usbdev.c similarity index 99% rename from sw/lib/usbdev.c rename to sw/device/lib/usbdev.c index 1b95688..eb47297 100644 --- a/sw/lib/usbdev.c +++ b/sw/device/lib/usbdev.c
@@ -7,7 +7,7 @@ #include <stddef.h> -#include "sw/lib/common.h" +#include "sw/device/lib/common.h" #define USBDEV_BASE_ADDR 0x40020000 #include "usbdev_regs.h" // Generated.
diff --git a/sw/lib/usbdev.h b/sw/device/lib/usbdev.h similarity index 99% rename from sw/lib/usbdev.h rename to sw/device/lib/usbdev.h index f93784a..4f769f1 100644 --- a/sw/lib/usbdev.h +++ b/sw/device/lib/usbdev.h
@@ -175,7 +175,7 @@ void usbdev_init(usbdev_ctx_t *ctx); // Used for tracing what is going on -#include "sw/lib/uart.h" +#include "sw/device/lib/uart.h" #define TRC_S(s) uart_send_str(s) #define TRC_I(i, b) uart_send_uint(i, b) #define TRC_C(c) uart_send_char(c)
diff --git a/sw/device/meson.build b/sw/device/meson.build new file mode 100644 index 0000000..052b2db --- /dev/null +++ b/sw/device/meson.build
@@ -0,0 +1,9 @@ +# Copyright lowRISC contributors. +# Licensed under the Apache License, Version 2.0, see LICENSE for details. +# SPDX-License-Identifier: Apache-2.0 + +subdir('lib') + +subdir('boot_rom') +subdir('examples') +subdir('tests')
diff --git a/sw/tests/flash_ctrl/flash_test.c b/sw/device/tests/flash_ctrl/flash_test.c similarity index 97% rename from sw/tests/flash_ctrl/flash_test.c rename to sw/device/tests/flash_ctrl/flash_test.c index 391fd8a..db92381 100644 --- a/sw/tests/flash_ctrl/flash_test.c +++ b/sw/device/tests/flash_ctrl/flash_test.c
@@ -2,10 +2,10 @@ // Licensed under the Apache License, Version 2.0, see LICENSE for details. // SPDX-License-Identifier: Apache-2.0 -#include "sw/lib/common.h" -#include "sw/lib/flash_ctrl.h" -#include "sw/lib/gpio.h" -#include "sw/lib/uart.h" +#include "sw/device/lib/common.h" +#include "sw/device/lib/flash_ctrl.h" +#include "sw/device/lib/gpio.h" +#include "sw/device/lib/uart.h" /** * Delay loop executing within 8 cycles on ibex
diff --git a/sw/tests/flash_ctrl/meson.build b/sw/device/tests/flash_ctrl/meson.build similarity index 100% rename from sw/tests/flash_ctrl/meson.build rename to sw/device/tests/flash_ctrl/meson.build
diff --git a/sw/tests/flash_ctrl/srcs.mk b/sw/device/tests/flash_ctrl/srcs.mk similarity index 100% rename from sw/tests/flash_ctrl/srcs.mk rename to sw/device/tests/flash_ctrl/srcs.mk
diff --git a/sw/tests/hmac/meson.build b/sw/device/tests/hmac/meson.build similarity index 100% rename from sw/tests/hmac/meson.build rename to sw/device/tests/hmac/meson.build
diff --git a/sw/tests/hmac/sha256_test.c b/sw/device/tests/hmac/sha256_test.c similarity index 89% rename from sw/tests/hmac/sha256_test.c rename to sw/device/tests/hmac/sha256_test.c index 58ec263..8b5d7ea 100644 --- a/sw/tests/hmac/sha256_test.c +++ b/sw/device/tests/hmac/sha256_test.c
@@ -5,10 +5,10 @@ #include <stdlib.h> #include <string.h> -#include "sw/lib/common.h" -#include "sw/lib/flash_ctrl.h" -#include "sw/lib/hw_sha256.h" -#include "sw/lib/uart.h" +#include "sw/device/lib/common.h" +#include "sw/device/lib/flash_ctrl.h" +#include "sw/device/lib/hw_sha256.h" +#include "sw/device/lib/uart.h" typedef struct test_data { uint32_t digest[8];
diff --git a/sw/tests/hmac/srcs.mk b/sw/device/tests/hmac/srcs.mk similarity index 100% rename from sw/tests/hmac/srcs.mk rename to sw/device/tests/hmac/srcs.mk
diff --git a/sw/tests/meson.build b/sw/device/tests/meson.build similarity index 100% rename from sw/tests/meson.build rename to sw/device/tests/meson.build
diff --git a/sw/tests/rv_timer/meson.build b/sw/device/tests/rv_timer/meson.build similarity index 100% rename from sw/tests/rv_timer/meson.build rename to sw/device/tests/rv_timer/meson.build
diff --git a/sw/tests/rv_timer/rv_timer_test.c b/sw/device/tests/rv_timer/rv_timer_test.c similarity index 86% rename from sw/tests/rv_timer/rv_timer_test.c rename to sw/device/tests/rv_timer/rv_timer_test.c index 4be8142..76721f7 100644 --- a/sw/tests/rv_timer/rv_timer_test.c +++ b/sw/device/tests/rv_timer/rv_timer_test.c
@@ -5,10 +5,10 @@ #include <stdlib.h> #include <string.h> -#include "sw/lib/common.h" -#include "sw/lib/irq.h" -#include "sw/lib/rv_timer.h" -#include "sw/lib/uart.h" +#include "sw/device/lib/common.h" +#include "sw/device/lib/irq.h" +#include "sw/device/lib/rv_timer.h" +#include "sw/device/lib/uart.h" static uint32_t intr_handling_success = 0; static const uint32_t hart = 0;
diff --git a/sw/tests/rv_timer/srcs.mk b/sw/device/tests/rv_timer/srcs.mk similarity index 100% rename from sw/tests/rv_timer/srcs.mk rename to sw/device/tests/rv_timer/srcs.mk
diff --git a/sw/doc/sw_build_flow.md b/sw/doc/sw_build_flow.md index c2f8566..5ff186b 100644 --- a/sw/doc/sw_build_flow.md +++ b/sw/doc/sw_build_flow.md
@@ -24,13 +24,13 @@ from the `SW_ROOT_DIR`. It is **mandatory** to set this variable on the command line. -- **SW_NAME**: A `SW_DIR` could cotain one or more unique SW build targets. +- **SW_NAME**: A `SW_DIR` could contain one or more unique SW build targets. This variable is used to indicate which one is to be built, on the command line. - **lib**: This refers to the library code generated from the shared common - sources. These sources are currently placed in `sw/lib`, `sw/util` and - `sw/exts` directories. More such directories can be added in future. + sources. These sources are currently placed in `sw/device/lib`, `sw/device/util` and + `sw/device/exts` directories. More such directories can be added in future. Also, this is one of the goals of the make flow. - **LIB_SRCS**: This is a list of all common / shared sources compiled into the @@ -68,11 +68,11 @@ within that directory. These `srcs.mk` files are then required to be added to the top level SW build Makefile. -- **`exts/common/srcs.mk`**: Additional extended common sources. This includes +- **`device/exts/common/srcs.mk`**: Additional extended common sources. This includes the default `CRT_SRCS` and the `LINKER_SCRIPT` which can be overridden for sw specific requirements. -- **`lib/srcs.mk`**: Directory containing sources to compile the lib elements and +- **`device/lib/srcs.mk`**: Directory containing sources to compile the lib elements and its dependencies. - **`$(SW_DIR)/srcs.mk`**: This sub-make file contains sources for building a SW @@ -85,7 +85,7 @@ same name as the directory and the C source) in this file. In that case, indicating `SW_NAME` on the command line is not required. -- **`exts/common/srcs.mk`**: Additional extended common sources. This includes +- **`device/exts/common/srcs.mk`**: Additional extended common sources. This includes the default `CRT_SRCS` and the `LINKER_SCRIPT` which can be overridden for sw specific requirements. @@ -98,24 +98,24 @@ Build boot_rom: ```console -$ make SW_DIR=boot_rom SW_NAME=boot_rom +$ make SW_DIR=device/boot_rom SW_NAME=boot_rom ``` -This will build the boot_rom image in the boot_rom directly itself. SW_NAME in -boot_rom/srcs.mk is already set to boot_rom, so there is no need to specify it +This will build the boot_rom image in the device/boot_rom directly itself. SW_NAME in +device/boot_rom/srcs.mk is already set to boot_rom, so there is no need to specify it on the command line. - Build the boot_rom in a separate build directory: ```console -$ make SW_DIR=boot_rom SW_BUILD_DIR=path/to/scratch +$ make SW_DIR=device/boot_rom SW_BUILD_DIR=path/to/scratch ``` - Build hello_world test: ```console -$ make SW_DIR=examples/hello_world SW_NAME=hello_world SW_BUILD_DIR=path/to/scratch +$ make SW_DIR=device/examples/hello_world SW_NAME=hello_world SW_BUILD_DIR=path/to/scratch ``` - Build sha256 test: ```console -$ make SW_DIR=tests/hmac SW_NAME=sha256_test +$ make SW_DIR=device/tests/hmac SW_NAME=sha256_test ```
diff --git a/sw/examples/hello_world/README.md b/sw/examples/hello_world/README.md index 97735fb..d2e22c3 100644 --- a/sw/examples/hello_world/README.md +++ b/sw/examples/hello_world/README.md
@@ -12,7 +12,7 @@ All data input over SPI is echo'd on UART in a word aligned fashion. The sample output below is hello_world run on a verilator model. ```shell -$ ./Vtop_earlgrey_verilator --rominit=sw/boot_rom/rom.vmem --flashinit=sw/examples/hello_world/sw.vmem +$ ./Vtop_earlgrey_verilator --rominit=sw/device/boot_rom/rom.vmem --flashinit=sw/device/examples/hello_world/sw.vmem ``` Output:
diff --git a/sw/host/spiflash/README.md b/sw/host/spiflash/README.md index b1aea5d..e85c361 100644 --- a/sw/host/spiflash/README.md +++ b/sw/host/spiflash/README.md
@@ -49,7 +49,7 @@ ```console $ cd ${REPO_TOP} $ build/lowrisc_systems_top_earlgrey_verilator_0.1/sim-verilator/Vtop_earlgrey_verilator \ - --rominit=sw/boot_rom/rom.vmem + --rominit=sw/device/boot_rom/rom.vmem ``` Run spiflash. In this example we use SPI device `/dev/pts/3` as an example. @@ -57,7 +57,7 @@ ```console $ cd ${REPO_TOP} -$ ./sw/host/spiflash/spiflash --input=sw/examples/hello_world/sw.bin --verilator=/dev/pts/3 +$ ./sw/host/spiflash/spiflash --input=sw/device/examples/hello_world/sw.bin --verilator=/dev/pts/3 ``` ## Run the tool in FPGA @@ -69,5 +69,5 @@ ```console $ cd ${REPO_TOP} -$ ./sw/host/spiflash/spiflash --input=sw/examples/hello_world/sw.bin +$ ./sw/host/spiflash/spiflash --input=sw/device/examples/hello_world/sw.bin ```
diff --git a/sw/meson.build b/sw/meson.build index 9d70a8e..142c20f 100644 --- a/sw/meson.build +++ b/sw/meson.build
@@ -2,10 +2,5 @@ # Licensed under the Apache License, Version 2.0, see LICENSE for details. # SPDX-License-Identifier: Apache-2.0 -subdir('lib') - -subdir('boot_rom') -subdir('examples') -subdir('tests') - +subdir('device') subdir('host')
diff --git a/sw/opts.mk b/sw/opts.mk index 18e1663..d0d21d8 100644 --- a/sw/opts.mk +++ b/sw/opts.mk
@@ -24,7 +24,7 @@ SW_BUILD_DIR ?= $(SW_ROOT_DIR)/$(SW_DIR) LIB_NAME ?= ot -LIB_DIR ?= $(SW_ROOT_DIR)/lib +LIB_DIR ?= $(SW_ROOT_DIR)/device/lib LIB_TARGET ?= $(LIB_BUILD_DIR)/lib${LIB_NAME}.a LIB_SRCS += LIB_OBJS += $(addprefix $(LIB_BUILD_DIR)/, $(addsuffix .o, $(basename $(notdir $(LIB_SRCS))))) @@ -56,7 +56,7 @@ # defaults CRT_SRCS ?= $(EXT_COMMON_DIR)/_crt.c -LINKER_SCRIPT ?= $(SW_ROOT_DIR)/exts/common/link.ld +LINKER_SCRIPT ?= $(SW_ROOT_DIR)/device/exts/common/link.ld # tools and opts REGTOOL ?= $(SW_ROOT_DIR)/../util/regtool.py
diff --git a/sw/rules.mk b/sw/rules.mk index 662208b..3c3e029 100644 --- a/sw/rules.mk +++ b/sw/rules.mk
@@ -121,8 +121,8 @@ $(REGTOOL) -D -o $@ $< # chip_info -$(LIB_BUILD_DIR)/sw/boot_rom/chip_info.h: $(INFOTOOL) - $(INFOTOOL) -o $(LIB_BUILD_DIR)/sw/boot_rom +$(LIB_BUILD_DIR)/sw/device/boot_rom/chip_info.h: $(INFOTOOL) + $(INFOTOOL) -o $(LIB_BUILD_DIR)/sw/device/boot_rom -include $(DEPS)
diff --git a/test/systemtest/functional_fpga_test.py b/test/systemtest/functional_fpga_test.py index ea8383c..507700a 100644 --- a/test/systemtest/functional_fpga_test.py +++ b/test/systemtest/functional_fpga_test.py
@@ -18,7 +18,7 @@ $ cd ${REPO_TOP} $ pytest -s -v test/systemtest/functional_fpga_test.py \ - --test_bin sw/tests/hmac/sw.bin \ + --test_bin sw/device/tests/hmac/sw.bin \ --fpga_uart /dev/ttyUSB2 \ --spiflash sw/host/spiflash/spiflash """
diff --git a/test/systemtest/functional_verilator_test.py b/test/systemtest/functional_verilator_test.py index 657091e..27fb63c 100644 --- a/test/systemtest/functional_verilator_test.py +++ b/test/systemtest/functional_verilator_test.py
@@ -7,13 +7,13 @@ Failing to write either will result in a timeout. This test requires some configuration options. Use the following steps to -run the test manually after building Verilator and the sw/boot_rom and -sw/examples/hello_world targets. +run the test manually after building Verilator and the sw/device/boot_rom and +sw/device/examples/hello_world targets. $ cd ${REPO_TOP} $ pytest -s -v test/systemtest/functional_verilator_test.py \ - --test_bin sw/tests/hmac/sw.vmem \ - --rom_bin sw/boot_rom/rom.vmem \ + --test_bin sw/device/tests/hmac/sw.vmem \ + --rom_bin sw/device/boot_rom/rom.vmem \ --verilator_model build/lowrisc_systems_top_earlgrey_verilator_0.1/sim-verilator/Vtop_earlgrey_verilator """
diff --git a/test/systemtest/openocd_verilator_test.py b/test/systemtest/openocd_verilator_test.py index ae4f6c1..a66f2c5 100644 --- a/test/systemtest/openocd_verilator_test.py +++ b/test/systemtest/openocd_verilator_test.py
@@ -5,13 +5,13 @@ r"""Runs OpenOCD compliance test against Verilator target. This test requires some configuration options. Use the following steps to -run the test manually after building Verilator and the sw/boot_rom and -sw/examples/hello_world targets. +run the test manually after building Verilator and the sw/device/boot_rom and +sw/device/examples/hello_world targets. $ cd ${REPO_TOP} $ pytest -s -v test/systemtest/openocd_verilator_test.py \ - --test_bin sw/examples/hello_world/sw.vmem \ - --rom_bin sw/boot_rom/rom.vmem \ + --test_bin sw/device/examples/hello_world/sw.vmem \ + --rom_bin sw/device/boot_rom/rom.vmem \ --verilator_model build/lowrisc_systems_top_earlgrey_verilator_0.1/sim-verilator/Vtop_earlgrey_verilator In some cases the pytest environment may not be able to find the openocd binary.