Skip to content

Commit 5d5ea0e

Browse files
committed
rdl: Parametrize serial link properly
1 parent 96e1626 commit 5d5ea0e

File tree

4 files changed

+211
-206
lines changed

4 files changed

+211
-206
lines changed

cheshire.mk

Lines changed: 15 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -35,9 +35,6 @@ DRAM_RTL_SIM_ROOT := $(shell $(BENDER) path dram_rtl_sim)
3535
REGTOOL ?= $(CHS_REG_DIR)/vendor/lowrisc_opentitan/util/regtool.py
3636
PEAKRDL ?= peakrdl
3737

38-
PEAKRDL_INCLUDES := -I $(CHS_ROOT)/hw/regs
39-
PEAKRDL_INCLUDES += -I $(CHS_SLINK_DIR)/src/regs
40-
4138

4239
################
4340
# Dependencies #
@@ -77,6 +74,19 @@ chs-nonfree-init:
7774

7875
-include $(CHS_ROOT)/nonfree/nonfree.mk
7976

77+
########################
78+
# SystemRDL components #
79+
########################
80+
81+
PEAKRDL_INCLUDES := -I $(CHS_ROOT)/hw/regs
82+
83+
# Serial Link
84+
SLINK_NUM_LANES ?= 4
85+
include $(CHS_SLINK_DIR)/slink.mk
86+
87+
PEAKRDL_INCLUDES += -I $(CHS_SLINK_DIR)/src/regs
88+
PEAKRDL_PARAMS += -P SlinkNumLanes=$(SLINK_NUM_LANES)
89+
8090
############
8191
# Build SW #
8292
############
@@ -92,8 +102,8 @@ $(CHS_ROOT)/hw/regs/cheshire_soc_regs_pkg.sv $(CHS_ROOT)/hw/regs/cheshire_soc_re
92102
$(PEAKRDL) regblock $< -o $(CHS_ROOT)/hw/regs/ --cpuif apb4-flat --default-reset arst_n --module-name cheshire_soc_regs
93103
@sed -i '1i// Copyright 2025 ETH Zurich and University of Bologna.\n// Solderpad Hardware License, Version 0.51, see LICENSE for details.\n// SPDX-License-Identifier: SHL-0.51\n' $(CHS_ROOT)/hw/regs/cheshire_soc_regs.sv $(CHS_ROOT)/hw/regs/cheshire_soc_regs_pkg.sv
94104

95-
$(CHS_ROOT)/hw/cheshire_addrmap_pkg.sv: $(CHS_ROOT)/hw/cheshire.rdl
96-
$(PEAKRDL) raw-header $< --format svpkg --no-prefix $(PEAKRDL_INCLUDES) --license-str $$'Copyright 2025 ETH Zurich and University of Bologna.\nSolderpad Hardware License, Version 0.51, see LICENSE for details.\nSPDX-License-Identifier: SHL-0.51' -o $@
105+
$(CHS_ROOT)/hw/cheshire_addrmap_pkg.sv: $(CHS_ROOT)/hw/cheshire.rdl $(CHS_SLINK_DIR)/.generated
106+
$(PEAKRDL) raw-header $< --format svpkg --no-prefix $(PEAKRDL_INCLUDES) $(PEAKRDL_PARAMS) --license-str $$'Copyright 2025 ETH Zurich and University of Bologna.\nSolderpad Hardware License, Version 0.51, see LICENSE for details.\nSPDX-License-Identifier: SHL-0.51' -o $@
97107

98108
# CLINT
99109
CLINTCORES ?= 1
@@ -118,10 +128,6 @@ include $(AXI_VGA_ROOT)/axi_vga.mk
118128
$(AXI_VGA_ROOT)/.generated:
119129
flock -x $@ $(MAKE) axi_vga && touch $@
120130

121-
# Custom serial link
122-
SLINK_NUM_LANES ?= 4
123-
include $(CHS_SLINK_DIR)/slink.mk
124-
125131
# iDMA
126132
include $(IDMA_ROOT)/idma.mk
127133

hw/cheshire.rdl

Lines changed: 3 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -24,7 +24,7 @@ addrmap periph_stub_t #(longint unsigned Size = 0x1000) {
2424
external reg { field {} _end[31:0] = 0; } _end @(Size - 4);
2525
};
2626

27-
addrmap cheshire {
27+
addrmap cheshire #(longint unsigned SlinkNumLanes = 4) {
2828
desc = "Cheshire SoC system address map";
2929

3030
////////////////////
@@ -101,9 +101,8 @@ addrmap cheshire {
101101
// GPIO (4 KiB)
102102
periph_stub_t #(.Size(0x0000_1000)) gpio @0x0300_5000;
103103

104-
// Serial link (4 KiB)
105-
// TODO(fischeti): Parametrize
106-
slink_reg slink @0x0300_6000;
104+
// Serial link registers
105+
slink_reg #(.NumLanes(SlinkNumLanes)) slink @0x0300_6000;
107106

108107
// AXI VGA (4 KiB)
109108
periph_stub_t #(.Size(0x0000_1000)) vga @0x0300_7000;

0 commit comments

Comments
 (0)