From e21c036a20049ad8a5083967943f932a08412a89 Mon Sep 17 00:00:00 2001 From: Moritz Imfeld Date: Mon, 1 Jul 2024 14:45:30 +0200 Subject: [PATCH 1/5] Add Ara support for back-referencing Co-authored-by: Vincenzo Maisto Co-authored-by: Matteo Perotti Signed-off-by: Moritz Imfeld --- target/xilinx/src/cheshire_top_xilinx.sv | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/target/xilinx/src/cheshire_top_xilinx.sv b/target/xilinx/src/cheshire_top_xilinx.sv index b0494052..9756670e 100644 --- a/target/xilinx/src/cheshire_top_xilinx.sv +++ b/target/xilinx/src/cheshire_top_xilinx.sv @@ -97,6 +97,11 @@ module cheshire_top_xilinx import cheshire_pkg::*; ( ret.Usb = 1; `else ret.Usb = 0; + `endif + `ifdef ARA + ret.Ara = 1; + ret.AraVLEN = `ifdef VLEN `VLEN `else 0 `endif; + ret.AraNrLanes = `ifdef NR_LANES `NR_LANES `else 0 `endif; `endif return ret; endfunction From f25be6ae5f8a022ab342433442a64fce14e9c29d Mon Sep 17 00:00:00 2001 From: Matteo Perotti Date: Wed, 3 Jul 2024 18:36:36 +0200 Subject: [PATCH 2/5] bender: bump Ara and CVA6 --- Bender.lock | 4 ++-- Bender.yml | 4 ++-- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/Bender.lock b/Bender.lock index a994bbce..e3f47703 100644 --- a/Bender.lock +++ b/Bender.lock @@ -15,7 +15,7 @@ packages: - apb - register_interface ara: - revision: 3dad93de70c6bb20c4c0b20780d96d4243f94136 + revision: 9ea9e56b784b6f8994710fe3030d900d44966a4e version: null source: Git: https://github.com/pulp-platform/ara.git @@ -103,7 +103,7 @@ packages: Git: https://github.com/pulp-platform/common_verification.git dependencies: [] cva6: - revision: 99ae53bde1a94b90c1d9bbbe7fe272a9336200a6 + revision: 5614fc9ceeae6db3851e8c721de868355db9476b version: null source: Git: https://github.com/pulp-platform/cva6.git diff --git a/Bender.yml b/Bender.yml index d922154b..9df18fe0 100644 --- a/Bender.yml +++ b/Bender.yml @@ -22,8 +22,8 @@ dependencies: clint: { git: "https://github.com/pulp-platform/clint.git", version: 0.2.0 } common_cells: { git: "https://github.com/pulp-platform/common_cells.git", version: 1.33.0 } common_verification: { git: "https://github.com/pulp-platform/common_verification.git", version: 0.2.0 } - cva6: { git: "https://github.com/pulp-platform/cva6.git", rev: pulp-v1 } - ara: { git: "https://github.com/pulp-platform/ara.git", rev: mp/cva6-pulpv1/rebase } + cva6: { git: "https://github.com/pulp-platform/cva6.git", rev: mp/pulp-v1-araOS } + ara: { git: "https://github.com/pulp-platform/ara.git", rev: mp/pulp-v1-os-fpga } iDMA: { git: "https://github.com/pulp-platform/iDMA.git", version: 0.5.1 } irq_router: { git: "https://github.com/pulp-platform/irq_router.git", version: 0.0.1-beta.1 } opentitan_peripherals: { git: "https://github.com/pulp-platform/opentitan_peripherals.git", version: 0.4.0 } From 395976af8faeb102262d045c7dcc4bb3138c5fc1 Mon Sep 17 00:00:00 2001 From: Matteo Perotti Date: Thu, 4 Jul 2024 14:43:23 +0200 Subject: [PATCH 3/5] hw: add MMU interface between Ara and CVA6 --- hw/cheshire_soc.sv | 20 ++++++++++---------- 1 file changed, 10 insertions(+), 10 deletions(-) diff --git a/hw/cheshire_soc.sv b/hw/cheshire_soc.sv index 965c025e..e680b5a1 100644 --- a/hw/cheshire_soc.sv +++ b/hw/cheshire_soc.sv @@ -557,8 +557,8 @@ module cheshire_soc import cheshire_pkg::*; #( // TODO: Implement X interface support // Accelerator ports - acc_pkg::accelerator_req_t acc_req; - acc_pkg::accelerator_resp_t acc_resp; + acc_pkg::cva6_to_acc_t acc_req; + acc_pkg::acc_to_cva6_t acc_resp; // CVA6-Ara memory consistency logic acc_cons_en; @@ -567,13 +567,13 @@ module cheshire_soc import cheshire_pkg::*; #( logic inval_ready; // Pack invalidation interface into acc interface - acc_pkg::accelerator_resp_t acc_resp_pack; + acc_pkg::acc_to_cva6_t acc_resp_pack; always_comb begin : pack_inval - acc_resp_pack = acc_resp; - acc_resp_pack.inval_valid = inval_valid; - acc_resp_pack.inval_addr = inval_addr; - inval_ready = acc_req.inval_ready; - acc_cons_en = acc_req.acc_cons_en; + acc_resp_pack = acc_resp; + acc_resp_pack.acc_resp.inval_valid = inval_valid; + acc_resp_pack.acc_resp.inval_addr = inval_addr; + inval_ready = acc_req.acc_req.inval_ready; + acc_cons_en = acc_req.acc_req.acc_cons_en; end `CHESHIRE_TYPEDEF_AXI_CT(axi_cva6, addr_t, cva6_id_t, axi_data_t, axi_strb_t, axi_user_t) @@ -626,8 +626,8 @@ module cheshire_soc import cheshire_pkg::*; #( .axi_w_chan_t ( axi_cva6_w_chan_t ), .b_chan_t ( axi_cva6_b_chan_t ), .r_chan_t ( axi_cva6_r_chan_t ), - .cvxif_req_t ( acc_pkg::accelerator_req_t ), - .cvxif_resp_t ( acc_pkg::accelerator_resp_t ), + .cvxif_req_t ( acc_pkg::cva6_to_acc_t ), + .cvxif_resp_t ( acc_pkg::acc_to_cva6_t ), .noc_req_t ( axi_cva6_req_t ), .noc_resp_t ( axi_cva6_rsp_t ) ) i_core_cva6 ( From c57c29bd34ce73c0bdfe6c358237ecae4460d4cd Mon Sep 17 00:00:00 2001 From: Matteo Perotti Date: Tue, 15 Oct 2024 17:41:09 +0200 Subject: [PATCH 4/5] Bump Ara and CVA6 to official PRs --- Bender.lock | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/Bender.lock b/Bender.lock index e3f47703..19b8f678 100644 --- a/Bender.lock +++ b/Bender.lock @@ -15,7 +15,7 @@ packages: - apb - register_interface ara: - revision: 9ea9e56b784b6f8994710fe3030d900d44966a4e + revision: 19985464b2d8801f21900c1f9d6d7dd356f92b8b version: null source: Git: https://github.com/pulp-platform/ara.git @@ -103,7 +103,7 @@ packages: Git: https://github.com/pulp-platform/common_verification.git dependencies: [] cva6: - revision: 5614fc9ceeae6db3851e8c721de868355db9476b + revision: 5086bff7a039f02a2d9604bca7b1b3e9d961713e version: null source: Git: https://github.com/pulp-platform/cva6.git From dc2cbd1869f73ad8473a4712aa9703a42221bc1b Mon Sep 17 00:00:00 2001 From: Matteo Perotti Date: Thu, 17 Oct 2024 13:40:10 +0200 Subject: [PATCH 5/5] ci: test Ara's FPGA and Linux flow in the CI --- cheshire.mk | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/cheshire.mk b/cheshire.mk index 2534ee9f..63a6dc15 100644 --- a/cheshire.mk +++ b/cheshire.mk @@ -58,7 +58,7 @@ chs-clean-deps: ###################### CHS_NONFREE_REMOTE ?= git@iis-git.ee.ethz.ch:pulp-restricted/cheshire-nonfree.git -CHS_NONFREE_COMMIT ?= dc0a4e4c08d185829e7e7934fb458ed429cd10ec +CHS_NONFREE_COMMIT ?= d514a884aeef03ae3d9fcb7166e169417d00f991 CHS_PHONY += chs-nonfree-init chs-nonfree-init: