All notable changes to this project will be documented in this file.
The format is based on Keep a Changelog.
- Support for multiple reconfigurable partitions in the build system.
- Mechanism to acknowledge accesses to invalid addresses and non-responsive slaves, returning a
0xDEADBEEF
data pattern. This feature is enabled in project builds (boxlambda_base
,boxlambda_dfx
) and disabled in test builds. - Invalid Addressing Test Case.
- Second bus master port added to Reconfigurable Partition
VS0
, enablingVS0
to support a CPU with Harvard Architecture. - DFX documentation.
- "Official" BoxLambda Project build
boxlambda_base
, which does not support DFX. - "Official" BoxLambda Project build
boxlambda_dfx
, which supports DFX. - Gateware build flags:
VS0
,DFX
, andACK_INVALID_ADDR
. - Two build variants introduced for all software builds:
<sw_project>_ram
(RAM image) and<sw_project>_flsh
(Flash Memory image). dfx_load_rm()
helper function indfx_controller_hal
for loading a reconfigurable module from memory into Virtual Socket 0 (VS0
).
- Verilator script fails if VERILATOR_CPP_FLAGS not set in Makefile.
- Build trees not clean after running boxlambda_setup.sh.
- Renamed IRQ ID and handler for
VS_1
toVERA
. - Renamed directory
gw/projects/boxlambda_top/
togw/projects/boxlambda_base/
. - Renamed CMake function
link_and_create_mem_file
tolink_and_create_image
. - In gw CMakeLists, replaced VERILATOR_CPP_FLAGS and VERILATOR_LD_FLAGS parameters with a single VERILATOR_FLAGS multi value parameter.
- Instead of relying on a VIVADO_FLAGS environment variable, vivado is now invoked through a wrapper script: scripts/vivado_wrapper.sh. The script defines the vivado flags to use.
- Moved all verilator build artifacts except the Vmodel executable to a verilator/ subdirectory of the gw project build directory.
- Placeholder IRQ ID and handler for
VS_2
. - ICAP IRQ handler.
- Deprecated support for the Arty-A7-35T platform.
- Ncurses dependency.
- Swapforth fork as a submodule.
- Build system support for Vivado IP (.xci) dependencies.
- Build system support for DFX projects.
- Virtual socket gateware components vs0_stub/j1b.
- Wb_dfx_controller gateware component.
- Wb_arbiter to arbitrate between DFX controller and Debug Module accessing the xbar.
- DFX example/test project gw/projects/dfx_test + sw/projects/dfx_test.
- J1B example/test project gw/projects/j1b_test + sw/projects/j1b_test.
- J1b_hal SW component providing HAL-level interface to proof-on-concept vs0_j1b core.
- Ymodem and ymodem_cli SW components for transfering files to/from BoxLambda over serial port.
- Mem_fs_cli SW component providing CLI-level access to memory management and file system.
- Dfx_controller_hal SW component providing HAL-level access to DFX Controller.
- Bender target dfx_constraints specifying the file containing the DFX-specific constraints (partition block location and dimensions) of a DFX-enabled project.
- Add -ffunction-sections to CFLAGS to reduce CMEM code footprint.
- Submodule updates not getting git pulled by boxlambda_setup.sh -s.
- CMake build tree generation fails when SDL2 is not installed.
- Dependency of FindSDL2 CMake module is too brittle/distro-dependant. Dependency of FindSDL2 CMake module is too brittle/distro-dependant.
- i2c_test and rtcc_test don't fit in Arty-A7-35T CMEM.
- Boxlambda_setup.sh creates build trees fresh (cmake --fresh).
- Gw/CMakeLists.txt replaces vivado flags -nolog -nojournal -notrace with VIVADO_FLAGS environment variable.
- Bender target constraints is now called prj_constraints to differentiate it from dfx_constraints.
- Split gw/ CMake functions creating build rules into _vivado and _verilator variants.
- Rename RM_0/1/2 interrupts to VS_0/1/3 interrupts.
- PicoRV DMA bus master address vector reduced from 30 bits to 28 bits.
- Bender memory target split into memory_verilator and memory_vivado variants.
- Wb_dp_ram_wrapper INIT_FILE is also used in Vivado builds, used to be only Verilator.
- All non-dfx build bitstream files are called project.bin/bit/sw/bit and are written in project directory itself, not project.runs/impl.
- The default contents of CMEM, i.e. after building _bit target, is cmem_to_flash_vector (was: empty). The _bit_sw target overrules this default with the selected SW project.
- Increase Embedded CLI max. bindings to 24.
- Projectlint target from arty* build trees.
- Verilator flags from CMake gw_component_rules().
- Bender.lock file generation.