blob: d9562bcc1cb7788ba0f98628085f855e1e416f09 [file] [log] [blame]
// Copyright 2023 Google LLC
//
// Licensed under the Apache License, Version 2.0 (the "License");
// you may not use this file except in compliance with the License.
// You may obtain a copy of the License at
//
// http://www.apache.org/licenses/LICENSE-2.0
//
// Unless required by applicable law or agreed to in writing, software
// distributed under the License is distributed on an "AS IS" BASIS,
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
// See the License for the specific language governing permissions and
// limitations under the License.
{ name: "smc",
type: "xbar",
clock_primary: "clk_smc_i", // Main clock, used in sockets
other_clock_list: [ "clk_peri_i", "clk_spi_host2_i" , "clk_ml_i", "clk_video_i", "clk_audio_i", "clk_main_i"],
reset_primary: "rst_smc_ni", // Main reset, used in sockets
other_reset_list: [ "rst_peri_ni", "rst_spi_host2_ni" , "rst_ml_ni" , "rst_video_ni", "rst_audio_ni", "rst_main_ni"],
nodes: [
{ name: "main",
type: "host",
clock: "clk_smc_i",
reset: "rst_smc_ni",
xbar: "true",
pipeline: "false"
},
{ name: "rv_core_ibex_smc.corei",
type: "host",
clock: "clk_smc_i",
reset: "rst_smc_ni",
pipeline: "false"
},
{ name: "rv_core_ibex_smc.cored",
type: "host",
clock: "clk_smc_i",
reset: "rst_smc_ni",
pipeline: "false"
},
{ name: "dma_smc.reader",
type: "host",
clock: "clk_smc_i",
reset: "rst_smc_ni",
pipeline: "false"
},
{ name: "dma_smc.writer",
type: "host",
clock: "clk_smc_i",
reset: "rst_smc_ni",
pipeline: "false"
},
{ name: "rv_plic_smc",
type: "device",
clock: "clk_smc_i",
reset: "rst_smc_ni",
inst_type: "rv_plic",
pipeline_byp: "false"
},
{ name: "rv_core_ibex_smc.cfg",
type: "device",
clock: "clk_smc_i"
reset: "rst_smc_ni"
pipeline_byp: "false"
},
{ name: "ram_smc",
type: "device",
clock: "clk_smc_i",
reset: "rst_smc_ni",
pipeline: "false"
},
{ name: "smc_uart",
type: "device",
clock: "clk_peri_i",
reset: "rst_peri_ni",
req_fifo_pass: false,
rsp_fifo_pass: false,
},
{ name: "rv_timer_smc",
type: "device",
clock: "clk_peri_i",
reset: "rst_peri_ni",
req_fifo_pass: false,
rsp_fifo_pass: false,
},
{ name: "tlul_mailbox_smc",
type: "device",
clock: "clk_main_i",
reset: "rst_main_ni",
req_fifo_pass: false,
rsp_fifo_pass: false,
},
{ name: "smc_ctrl",
type: "device",
clock: "clk_smc_i",
reset: "rst_smc_ni",
req_fifo_pass: false,
rsp_fifo_pass: false,
},
{ name: "cam_i2c",
type: "device",
clock: "clk_peri_i",
reset: "rst_peri_ni",
req_fifo_pass: false,
rsp_fifo_pass: false,
},
{ name: "cam_ctrl",
type: "device",
clock: "clk_peri_i",
reset: "rst_peri_ni",
req_fifo_pass: false,
rsp_fifo_pass: false,
},
{ name: "ml_top.dmem",
type: "device",
clock: "clk_ml_i",
reset: "rst_ml_ni",
pipeline: "false"
},
{ name: "ml_top.core",
type: "device",
clock: "clk_ml_i",
reset: "rst_ml_ni",
pipeline: "false"
},
{ name: "isp_wrapper",
type: "device",
clock: "clk_smc_i",
reset: "rst_smc_ni",
pipeline: "false"
},
{ name: "dma_smc",
type: "device",
clock: "clk_smc_i",
reset: "rst_smc_ni",
pipeline: "false"
},
{ name: "spi_host2",
type: "device",
clock: "clk_spi_host2_i",
reset: "rst_spi_host2_ni",
req_fifo_pass: false,
rsp_fifo_pass: false,
},
{ name: "dbg",
type: "device",
clock: "clk_main_i",
reset: "rst_main_ni",
xbar: "true",
pipeline: "false"
},
{ name: "rv_timer_smc2",
type: "device",
clock: "clk_peri_i",
reset: "rst_peri_ni",
req_fifo_pass: false,
rsp_fifo_pass: false,
},
{ name: "i2s0",
type: "device",
clock: "clk_peri_i",
reset: "rst_peri_ni",
req_fifo_pass: false,
rsp_fifo_pass: false,
},
],
connections: {
// TODO: connections from main xbar (security core) to some of the SMC subsystem peripherals,
// such as smc_uart, rv_timer_smc, cam_i2c, cam_ctrl, isp_wrapper are optional to
// allow software tests to run from the security core. They may be removed
// in the final silicon netlist.
main: ["ram_smc", "smc_ctrl", "smc_uart", "rv_timer_smc", "cam_i2c", "cam_ctrl",
"ml_top.dmem","ml_top.core", "isp_wrapper", "dma_smc", "spi_host2", "rv_timer_smc2", "i2s0"],
rv_core_ibex_smc.corei: ["ram_smc", "dbg"],
rv_core_ibex_smc.cored: [ "ram_smc", "rv_core_ibex_smc.cfg",
"smc_uart", "rv_timer_smc", "rv_plic_smc", "tlul_mailbox_smc", "cam_i2c", "cam_ctrl",
"ml_top.dmem", "ml_top.core", "isp_wrapper", "dma_smc", "spi_host2", "dbg", "rv_timer_smc2", "i2s0"],
dma_smc.reader: ["ram_smc", "ml_top.dmem"],
dma_smc.writer: ["ram_smc", "ml_top.dmem"],
},
}