blob: 1db12699ee02362f8af9ef68959d3e74cae9751e [file] [log] [blame]
// Copyright 2022 Google contributors.
// Licensed under the Apache License, Version 2.0, see LICENSE for details.
// SPDX-License-Identifier: Apache-2.0
{ 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: {
// TO-DO(pbf): the connection from main(security core) to some of SMC subsystem peripheral,
// such as smc_uart, rv_timer_smc, cam_i2c, cam_ctrl, isp_wrapper are
// optional to allow software test running from 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"],
},
}