Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Extend parametrization to compiled software and initialized hardware. #7

Closed
wants to merge 34 commits into from
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
34 commits
Select commit Hold shift + click to select a range
9dadd37
Integrating 2nd master axi port for opentitan's IDMA
Mar 6, 2024
18bcb14
Finalize OpenTitan's idma port in carfield. Now passing the test.
Mar 8, 2024
c6540b5
Fixing linting errors.
Mar 13, 2024
a9b2be8
Fixing typo
Mar 13, 2024
35790f4
Bumping OT with fixes for CI and update CI with idma test.
Mar 13, 2024
1bce2d5
Fix minor unclear stuff.
Mar 19, 2024
10e1318
Fix last PR comments and typos.
Mar 19, 2024
174eaf8
Fix linting errs
Mar 19, 2024
d9da6af
Fix linting errs
Mar 19, 2024
08f6f96
Removing useless parameters from structs
Mar 21, 2024
8d1e265
Increasing to 3h the CI timeout
Mar 21, 2024
49f2321
Bump PULP cluster and other IPs.
Mar 22, 2024
c29897c
Add a "small" chip configuration for the tapeout.
Mar 23, 2024
2a3a990
Bump PULP cluster and adapt environment to new config.
Mar 23, 2024
02d7cef
Bump nonfree.
Mar 23, 2024
958309e
Adapt SW tests to tapeout configuration.
Mar 23, 2024
606b047
Add pulp-offload-intf.c to stimulate and test CVA6-PULP cluster inter…
luca-valente Mar 22, 2024
f1e0ca9
Remove boot address redefinition.
Mar 24, 2024
9128f08
Cleanup propagation of the NumSlaveCDCs parameter and fix comments.
Apr 2, 2024
9f9de0b
Bump non-free.
Apr 2, 2024
5a1cb01
[SECD] Bump OpenTitan for reduced memory and iDMA. (#3)
maicolciani Mar 26, 2024
ba86fce
Add PULP cluster exclusion in runtime compile.
Apr 9, 2024
4531f9d
Add islands exclusion from build flow.
Apr 9, 2024
8e63968
Add chip config.
Apr 9, 2024
2a788d3
Bump Cheshire to fetch buildroot with HTTPS.
Apr 10, 2024
dd60128
Use HTTPS to clone mibench.
Apr 11, 2024
f276244
Fix Spatz enabler in carfield.mk.
Apr 11, 2024
036a26a
Enable full config.
Apr 12, 2024
ac65164
Bump CVA6 to update nonfree and CVA6 SDK commit.
Apr 12, 2024
1ceef7e
Update dependencies.
Apr 13, 2024
2c846ae
Adapt PULP cluster configuration.
Apr 13, 2024
68dfce4
Bump zero-riscy to exclude tracer in synthesis.
Apr 13, 2024
05f1d16
Fix path to synthesis wrap.
Apr 13, 2024
328045c
Bump CLIC to cut critical path.
Apr 13, 2024
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 2 additions & 2 deletions Bender.local
Original file line number Diff line number Diff line change
Expand Up @@ -7,14 +7,14 @@ overrides:
axi_riscv_atomics: { git: https://github.com/pulp-platform/axi_riscv_atomics.git , version: 0.8.2 }
apb: { git: "https://github.com/pulp-platform/apb.git" , version: 0.2.3 }
redundancy_cells: { git: "https://github.com/pulp-platform/redundancy_cells.git" , rev: "c37bdb47339bf70e8323de8df14ea8bbeafb6583" } # branch: astral-rebase
hci: { git: "https://github.com/pulp-platform/hci.git" , rev: v1.1 }
hci: { git: "https://github.com/pulp-platform/hci.git" , rev: e47627c20b33bcaf4842c1add81fb888b4f12a9d } # branch: old commit in v2.0.0
tech_cells_generic: { git: "https://github.com/pulp-platform/tech_cells_generic.git" , version: =0.2.13 }
riscv-dbg: { git: "https://github.com/pulp-platform/riscv-dbg.git" , version: =0.8.0 }
idma: { git: "https://github.com/pulp-platform/idma.git" , version: 0.5.1 }
hier-icache: { git: "https://github.com/pulp-platform/hier-icache.git" , rev: 2886cb2a46cea3e2bd2d979b505d88fadfbe150c } # branch: astral
scm: { git: "https://github.com/pulp-platform/scm.git" , rev: 74426dee36f28ae1c02f7635cf844a0156145320 }
cluster_interconnect: { git: "https://github.com/pulp-platform/cluster_interconnect.git", rev: 89e1019d64a86425211be6200770576cbdf3e8b3 } # branch: assertion-fix
clic: { git: "https://github.com/pulp-platform/clic.git" , rev: 0ff9f07e0a492bff046dfe24399b1e1e82d557b7 } # branch: balasr/dev-2
clic: { git: "https://github.com/pulp-platform/clic.git" , rev: 40ae266dab5768f63ca8dabe70e7474feb403bab } # branch: critical-path
fpnew: { git: "https://github.com/pulp-platform/cvfpu.git" , rev: pulp-v0.1.3 }
cv32e40p: { git: "https://github.com/pulp-platform/cv32e40p.git" , rev: e863f576699815b38cc9d80dbdede8ed5efd5991 }
axi_rt: { git: "https://github.com/pulp-platform/axi_rt.git" , version: =0.0.0-alpha.4 }
46 changes: 33 additions & 13 deletions Bender.lock
Original file line number Diff line number Diff line change
Expand Up @@ -106,7 +106,7 @@ packages:
Git: https://github.com/AlSaqr-platform/can_bus.git
dependencies: []
cheshire:
revision: 6d389373df6b54c09888f89411b7e231d2430722
revision: cc1ca617df246f7aae7ef76d5a3277e44b974ed6
version: null
source:
Git: https://github.com/pulp-platform/cheshire.git
Expand All @@ -132,8 +132,8 @@ packages:
- tagger
- unbent
clic:
revision: 0ff9f07e0a492bff046dfe24399b1e1e82d557b7
version: 3.0.0-for-carfield
revision: 40ae266dab5768f63ca8dabe70e7474feb403bab
version: null
source:
Git: https://github.com/pulp-platform/clic.git
dependencies:
Expand All @@ -155,15 +155,15 @@ packages:
dependencies:
- common_cells
cluster_peripherals:
revision: c9defcfb4f4e8733383b28a451c430783c2febbd
revision: 8a9f62dafb5ec23c6cd361847ff0047e12befca4
version: null
source:
Git: https://github.com/pulp-platform/cluster_peripherals.git
dependencies:
- hci
common_cells:
revision: ad22699793d98ef714f120c6268fe92d096a61e1
version: 1.33.1
revision: 7773d971b9d7bef7f5f6a2ef36ee1e4d02cefcd3
version: 1.34.0
source:
Git: https://github.com/pulp-platform/common_cells.git
dependencies:
Expand Down Expand Up @@ -231,7 +231,7 @@ packages:
dependencies:
- common_cells
hci:
revision: 4823e503851eb7e8cc765a58621d767a01d6a77b
revision: e47627c20b33bcaf4842c1add81fb888b4f12a9d
version: null
source:
Git: https://github.com/pulp-platform/hci.git
Expand All @@ -252,15 +252,15 @@ packages:
- scm
- tech_cells_generic
hwpe-ctrl:
revision: b7857919ea14b586901ff4282ad7749a3d50501e
revision: a5966201aeeb988d607accdc55da933a53c6a56e
version: null
source:
Git: https://github.com/pulp-platform/hwpe-ctrl.git
dependencies:
- tech_cells_generic
hwpe-stream:
revision: bcb4435f802add732f557dc7fa1c6b5dd8854458
version: 1.7.1
revision: 65c99a4a2f37a79acee800ab0151f67dfb1edef1
version: 1.8.0
source:
Git: https://github.com/pulp-platform/hwpe-stream.git
dependencies:
Expand Down Expand Up @@ -329,6 +329,16 @@ packages:
Git: https://github.com/pulp-platform/mchan.git
dependencies:
- common_cells
neureka:
revision: 3131e87c40118f75e11a1ff9bae60fe764336a19
version: null
source:
Git: https://github.com/pulp-platform/neureka.git
dependencies:
- hci
- hwpe-ctrl
- hwpe-stream
- zeroriscy
obi:
revision: 1aa411df145c4ebdd61f8fed4d003c33f7b20636
version: 0.1.2
Expand All @@ -338,12 +348,15 @@ packages:
- common_cells
- common_verification
opentitan:
revision: 74e7d6ca17e6a46e727ae2ae11177611232eaeb9
revision: 3fc11c14f29a161054766fabd95f90ab2a9e473a
version: null
source:
Git: https://github.com/pulp-platform/opentitan.git
dependencies:
- axi
- cluster_interconnect
- idma
- register_interface
opentitan_peripherals:
revision: cd3153de2783abd3d03d0595e6c4b32413c62f14
version: 0.4.0
Expand All @@ -369,7 +382,7 @@ packages:
- axi
- common_verification
pulp_cluster:
revision: 3cd3e83fdd7a791e8ae54aef39423004581c8a48
revision: 9be39b5b300f48015c931993273f9a288abc1318
version: null
source:
Git: https://github.com/pulp-platform/pulp_cluster.git
Expand All @@ -387,6 +400,7 @@ packages:
- ibex
- idma
- mchan
- neureka
- per2axi
- redmule
- redundancy_cells
Expand All @@ -396,7 +410,7 @@ packages:
- tech_cells_generic
- timer_unit
redmule:
revision: 1b30b0b9a31afa702eb2d166d672ceda2f5d463a
revision: 68999ccc922b10a5043bb98f67aaf3d8d8d59f3f
version: null
source:
Git: https://github.com/pulp-platform/redmule.git
Expand Down Expand Up @@ -528,3 +542,9 @@ packages:
- axi
- common_cells
- register_interface
zeroriscy:
revision: cc4068a0ccb7691cd062b809c34b2304e7fbfa36
version: null
source:
Git: [email protected]:yvantor/ibex.git
dependencies: []
17 changes: 13 additions & 4 deletions Bender.yml
Original file line number Diff line number Diff line change
Expand Up @@ -13,12 +13,12 @@ package:
dependencies:
register_interface: { git: https://github.com/pulp-platform/register_interface.git, version: 0.4.3 }
axi: { git: https://github.com/pulp-platform/axi.git, version: 0.39.1 }
cheshire: { git: https://github.com/pulp-platform/cheshire.git, rev: 6d389373df6b54c09888f89411b7e231d2430722 } # branch: astral-new
cheshire: { git: https://github.com/pulp-platform/cheshire.git, rev: cc1ca617df246f7aae7ef76d5a3277e44b974ed6 } # branch: buildroot-remote
hyperbus: { git: https://github.com/pulp-platform/hyperbus.git, rev: f039e601c8b6590181734e6d26ff8b77aa380412 } # branch: chi/add_fsm_with_Tcsh
dyn_mem: { git: https://github.com/pulp-platform/dyn_spm.git, rev: 480590062742230dc9bd4050358a15b4747bdf34 } # branch: main
safety_island: { git: https://github.com/pulp-platform/safety_island.git, rev: aaef55c798ab53560faaf451a86668fa1e6d0f3b } # branch: carfield
pulp_cluster: { git: https://github.com/pulp-platform/pulp_cluster.git, rev: 3cd3e83fdd7a791e8ae54aef39423004581c8a48 } # branch: idw-conv
opentitan: { git: https://github.com/pulp-platform/opentitan.git, rev: 74e7d6ca17e6a46e727ae2ae11177611232eaeb9 } # branch: carfield_soc
pulp_cluster: { git: https://github.com/pulp-platform/pulp_cluster.git, rev: 9be39b5b300f48015c931993273f9a288abc1318 } # branch: astral
opentitan: { git: https://github.com/pulp-platform/opentitan.git, rev: 3fc11c14f29a161054766fabd95f90ab2a9e473a } # branch: mc/astral
mailbox_unit: { git: https://github.com/pulp-platform/mailbox_unit.git, version: 1.1.0 }
apb: { git: https://github.com/pulp-platform/apb.git, version: 0.2.3 }
timer_unit: { git: https://github.com/pulp-platform/timer_unit.git, version: 1.0.2 }
Expand All @@ -39,6 +39,11 @@ workspace:

sources:
# Configurations
# "Small" Astral configuration
- target: carfield_secure_pulp_periph_can
files:
- hw/configs/carfield_secure_pulp_periph_can.sv

- target: carfield_l2dual_safe_secure_pulp_spatz_periph_can
files:
- hw/configs/carfield_l2dual_safe_secure_pulp_spatz_periph_can.sv
Expand Down Expand Up @@ -71,6 +76,10 @@ sources:
files:
- hw/configs/carfield_l2dual_safe_pulp_spatz_periph.sv

- target: carfield_l2dual_secure_pulp_periph_can
files:
- hw/configs/carfield_l2dual_secure_pulp_periph_can.sv

# Source files grouped in levels. Files in level 0 have no dependencies on files in this
# package. Files in level 1 only depend on files in level 0, files in level 2 on files in
# levels 1 and 0, etc. Files within a level are ordered alphabetically.
Expand Down Expand Up @@ -102,7 +111,7 @@ sources:
files:
- tech/sourcecode/tc_clk.sv
- tech/sourcecode/tc_sram.sv
- target/synth/carfield_synth_wrap.sv
- target/synth/src/carfield_synth_wrap.sv

- target: tech_sim
files:
Expand Down
35 changes: 29 additions & 6 deletions carfield.mk
Original file line number Diff line number Diff line change
Expand Up @@ -23,6 +23,7 @@ CAR_SW_DIR := $(CAR_ROOT)/sw
CAR_TGT_DIR := $(CAR_ROOT)/target/
CAR_XIL_DIR := $(CAR_TGT_DIR)/xilinx
CAR_SIM_DIR := $(CAR_TGT_DIR)/sim
SECD_ROOT ?= $(shell $(BENDER) path opentitan)
# Questasim
CAR_VSIM_DIR := $(CAR_TGT_DIR)/sim/vsim

Expand All @@ -46,7 +47,7 @@ include $(CAR_ROOT)/bender-safed.mk
######################

CAR_NONFREE_REMOTE ?= [email protected]:astral/astral-nonfree.git
CAR_NONFREE_COMMIT ?= 711d0097
CAR_NONFREE_COMMIT ?= 28fc3580f64f048174cc7dbb618421c254364c74

## @section Carfield platform nonfree components
## Clone the non-free verification IP for Carfield. Some components such as CI scripts and ASIC
Expand Down Expand Up @@ -155,17 +156,35 @@ car-checkout: car-checkout-deps
############
# Build SW #
############
include $(CAR_SW_DIR)/sw.mk
## @section Islands compile exclusion
ifeq ($(shell echo $(PULPD_PRESENT)), 1)
PULPD_SW_BUILD := pulpd-sw-build
PULPD_SW_INIT := pulpd-sw-init
endif

ifeq ($(shell echo $(SAFED_PRESENT)), 1)
SAFED_SW_BUILD := safed-sw-build
SAFED_SW_INIT := safed-sw-init
endif

ifeq ($(shell echo $(SPATZD_PRESENT)), 1)
SPATZD_HW_INIT := spatzd-hw-init
endif

ifeq ($(shell echo $(SECURED_PRESENT)), 1)
SECD_HW_INIT := secd-hw-init
endif

## @section Carfield platform SW build
include $(CAR_SW_DIR)/sw.mk
.PHONY: chs-sw-build
## Build the host domain (Cheshire) SW libraries and generates an archive (`libcheshire.a`)
## available for Carfield as static library at link time.
chs-sw-build: chs-sw-all

.PHONY: car-sw-build
## Builds carfield application SW and specific libraries. It links against `libcheshire.a`.
car-sw-build: chs-sw-build safed-sw-build pulpd-sw-build car-sw-all
car-sw-build: chs-sw-build $(SAFED_SW_BUILD) $(PULPD_SW_BUILD) car-sw-all

.PHONY: safed-sw-init pulpd-sw-init
## Clone safe domain's SW stack in the dedicated repository.
Expand Down Expand Up @@ -213,7 +232,11 @@ pulpd-sw-build: pulpd-sw-init
## Initialize Carfield HW. This step takes care of the generation of the missing hardware or the
## update of default HW configurations in some of the domains. See the two prerequisite's comment
## for more information.
car-hw-init: spatzd-hw-init chs-hw-init
car-hw-init: $(SPATZD_HW_INIT) chs-hw-init $(SECD_HW_INIT)

#Build OpenTitan's debug rom with support for coreid != 0x0
secd-hw-init:
$(MAKE) -C $(SECD_ROOT)/hw/vendor/pulp_riscv_dbg/debug_rom clean all FLAGS=-DCARFIELD=1

## @section Carfield platform PCRs generation
.PHONY: regenerate_soc_regs
Expand Down Expand Up @@ -284,7 +307,7 @@ include $(CAR_SIM_DIR)/sim.mk

.PHONY: car-init-all
## Shortcut to initialize carfield with all the targets described above.
car-init-all: car-checkout car-hw-init car-sim-init safed-sw-init pulpd-sw-init mibench
car-init-all: car-checkout car-hw-init car-sim-init $(SAFED_SW_INIT) $(PULPD_SW_INIT) mibench

## Initialize Carfield and build SW
.PHONY: car-all
Expand Down Expand Up @@ -324,7 +347,7 @@ include $(CAR_XIL_DIR)/xilinx.mk
mibench: $(CAR_SW_DIR)/benchmarks/mibench

$(CAR_SW_DIR)/benchmarks/mibench:
git clone git@github.com:alex96295/mibench.git -b carfield $@
git clone https://github.com/alex96295/mibench.git -b carfield $@

# Litmus tests
LITMUS_WORK_DIR := work-litmus
Expand Down
6 changes: 6 additions & 0 deletions env/env-iis.sh
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,12 @@
# SPDX-License-Identifier: SHL-0.51
#

# Set environment variables to choose of which island we have to compile the sw
export PULPD_PRESENT=1
export SAFED_PRESENT=1
export SECURED_PRESENT=1
export SPATZD_PRESENT=1

# set up environment variables for rtl simulation
ROOTD=$(cd "$(dirname "${BASH_SOURCE[0]:-$0}")/.." && pwd)
export PATH=/usr/pack/riscv-1.0-kgf/riscv64-gcc-11.2.0/bin:$PATH # RV64 GCC toolchain
Expand Down
2 changes: 1 addition & 1 deletion env/pulpd-env.sh
Original file line number Diff line number Diff line change
Expand Up @@ -5,4 +5,4 @@

# set up environment variables for rtl simulation
ROOTD=$(cd "$(dirname "${BASH_SOURCE[0]:-$0}")/.." && pwd)
[[ -d "$ROOTD/pulp_cluster/pulp-runtime" ]] && source "$ROOTD/pulp_cluster/pulp-runtime/configs/carfield-cluster.sh"
[[ -d "$ROOTD/pulp_cluster/pulp-runtime" ]] && source "$ROOTD/pulp_cluster/pulp-runtime/configs/astral-cluster.sh"
Loading
Loading