summaryrefslogtreecommitdiff
path: root/rtl/gfx/gfx_xbar_sched.sv
diff options
context:
space:
mode:
authorAlejandro Soto <alejandro@34project.org>2024-05-12 13:25:45 -0600
committerAlejandro Soto <alejandro@34project.org>2024-05-12 13:30:03 -0600
commitb9f1829b68530dbcabfec66835aea136d385e50e (patch)
tree23ecc96583d3a68f7c378e3f0367fa87719bfe09 /rtl/gfx/gfx_xbar_sched.sv
parent9324d6fdfe6f605d61fc047c05c5bbe7c1507873 (diff)
rtl/gfx/firmware: implement bootloader
Diffstat (limited to '')
-rw-r--r--rtl/gfx/gfx_xbar_sched.sv36
1 files changed, 28 insertions, 8 deletions
diff --git a/rtl/gfx/gfx_xbar_sched.sv b/rtl/gfx/gfx_xbar_sched.sv
index 5661012..32305cd 100644
--- a/rtl/gfx/gfx_xbar_sched.sv
+++ b/rtl/gfx/gfx_xbar_sched.sv
@@ -7,28 +7,34 @@ import gfx::*;
if_axil.s sched,
if_axil.m debug,
- if_axil.m bootrom,
- if_axil.m shader_0
+ bootrom,
+ shader_0,
+ host_ctrl
);
- localparam word BOOTROM_MASK = 32'hfff0_0000;
- localparam word DEBUG_BASE = 32'h0020_0000;
- localparam word DEBUG_MASK = 32'hfff0_0000;
- localparam word SHADER_0_BASE = 32'h0100_0000;
- localparam word SHADER_0_MASK = 32'hfff0_0000;
+ localparam word
+ BOOTROM_MASK = 32'hfff0_0000,
+ DEBUG_BASE = 32'h0020_0000,
+ DEBUG_MASK = 32'hfff0_0000,
+ HOST_CTRL_BASE = 32'h0030_0000,
+ HOST_CTRL_MASK = 32'hfff0_0000,
+ SHADER_0_BASE = 32'h0100_0000,
+ SHADER_0_MASK = 32'hfff0_0000;
defparam xbar.NM = 1;
- defparam xbar.NS = 3;
+ defparam xbar.NS = 4;
defparam xbar.OPT_LOWPOWER = 0;
defparam xbar.SLAVE_ADDR = {
SHADER_0_BASE,
+ HOST_CTRL_BASE,
DEBUG_BASE,
BOOTROM_BASE
};
defparam xbar.SLAVE_MASK = {
SHADER_0_MASK,
+ HOST_CTRL_MASK,
DEBUG_MASK,
BOOTROM_MASK
};
@@ -64,34 +70,40 @@ import gfx::*;
.M_AXI_AWADDR({
shader_0.awaddr,
+ host_ctrl.awaddr,
debug.awaddr,
bootrom.awaddr
}),
.M_AXI_AWPROT(),
.M_AXI_AWVALID({
shader_0.awvalid,
+ host_ctrl.awvalid,
debug.awvalid,
bootrom.awvalid
}),
.M_AXI_AWREADY({
shader_0.awready,
+ host_ctrl.awready,
debug.awready,
bootrom.awready
}),
.M_AXI_WDATA({
shader_0.wdata,
+ host_ctrl.wdata,
debug.wdata,
bootrom.wdata
}),
.M_AXI_WSTRB(),
.M_AXI_WVALID({
shader_0.wvalid,
+ host_ctrl.wvalid,
debug.wvalid,
bootrom.wvalid
}),
.M_AXI_WREADY({
shader_0.wready,
+ host_ctrl.wready,
debug.wready,
bootrom.wready
}),
@@ -99,45 +111,53 @@ import gfx::*;
.M_AXI_BRESP('0),
.M_AXI_BVALID({
shader_0.bvalid,
+ host_ctrl.bvalid,
debug.bvalid,
bootrom.bvalid
}),
.M_AXI_BREADY({
shader_0.bready,
+ host_ctrl.bready,
debug.bready,
bootrom.bready
}),
.M_AXI_ARADDR({
shader_0.araddr,
+ host_ctrl.araddr,
debug.araddr,
bootrom.araddr
}),
.M_AXI_ARPROT(),
.M_AXI_ARVALID({
shader_0.arvalid,
+ host_ctrl.arvalid,
debug.arvalid,
bootrom.arvalid
}),
.M_AXI_ARREADY({
shader_0.arready,
+ host_ctrl.arready,
debug.arready,
bootrom.arready
}),
.M_AXI_RDATA({
shader_0.rdata,
+ host_ctrl.rdata,
debug.rdata,
bootrom.rdata
}),
.M_AXI_RRESP('0),
.M_AXI_RVALID({
shader_0.rvalid,
+ host_ctrl.rvalid,
debug.rvalid,
bootrom.rvalid
}),
.M_AXI_RREADY({
shader_0.rready,
+ host_ctrl.rready,
debug.rready,
bootrom.rready
})