blob: 29c5ee3f3462e30c7ca83bad1ce4b6a8650a7962 [file] [log] [blame]
// Copyright lowRISC contributors.
// Licensed under the Apache License, Version 2.0, see LICENSE for details.
// SPDX-License-Identifier: Apache-2.0
{ name: "main",
type: "xbar",
clock: "clk_main_i", // Main clock, used in sockets
clock_connections: {
clk_main_i: "main"
clk_jtag_i: "main"
clk_periph_i: "fixed"
clk_crypt_i: "main"
}
reset: "rst_main_ni"
reset_connections: {
rst_main_ni: "sys"
rst_jtag_ni: "sys"
rst_periph_ni: "sys_fixed"
rst_crypt_ni: "sys"
}
nodes: [
{ name: "ibexif",
type: "host",
clock: "clk_main_i",
reset: "rst_main_ni",
xbar: false
pipeline: "false"
},
{ name: "ibexlsu",
type: "host",
clock: "clk_periph_i",
reset: "rst_periph_ni",
xbar: false
pipeline: "false"
},
{ name: "dm_sba", // DM
type: "host",
clock: "clk_jtag_i",
reset: "rst_jtag_ni",
xbar: false
pipeline_byp: "false"
},
{ name: "rom",
type: "device",
clock: "clk_main_i",
reset: "rst_main_ni",
xbar: false
addr_range: [{
base_addr: "0x00000000",
size_byte: "0x10000", // 64kB
}]
},
{ name: "debug_rom",
type: "device",
clock: "clk_jtag_i",
reset: "rst_jtag_ni",
xbar: false
addr_range: [{
base_addr: "0x10040000",
size_byte: "0x1000"
}]
},
{ name: "sram",
type: "device",
clock: "clk_main_i",
reset: "rst_main_ni",
xbar: false
addr_range: [{
base_addr: "0x10000000",
size_byte: "0x10000",
}]
},
{ name: "flash_ctrl",
type: "device",
// clock is omitted --> use default clock
xbar: false
addr_range: [{
base_addr: "0x10080000",
size_byte: "0x10000",
}]
},
{ name: "uart0",
type: "device",
clock: "clk_periph_i",
reset: "rst_periph_ni",
xbar: false
addr_range: [{
base_addr: "0x40000000",
size_byte: "0x10000",
}]
},
{ name: "gpio0",
type: "device",
clock: "clk_periph_i",
reset: "rst_periph_ni",
xbar: false
addr_range: [{
base_addr: "0x40010000",
size_byte: "0x10000",
}]
},
{ name: "spi_device",
type: "device",
clock: "clk_periph_i",
reset: "rst_periph_ni",
xbar: false
addr_range: [{
base_addr: "0x40020000",
size_byte: "0x10000",
}]
},
{ name: "spi_host",
type: "device",
clock: "clk_periph_i",
reset: "rst_periph_ni",
xbar: false
addr_range: [{
base_addr: "0x40030000",
size_byte: "0x10000",
}]
},
{ name: "timer0",
type: "device",
clock: "clk_main_i",
reset: "rst_main_ni",
xbar: false
addr_range: [{
base_addr: "0x50000000",
size_byte: "0x1000"
}]
},
{ name: "watchdog",
type: "device",
clock: "clk_main_i",
reset: "rst_main_ni",
xbar: false
addr_range: [{
base_addr: "0x50010000",
size_byte: "0x1000"
}]
},
{ name: "alert_h",
type: "device",
clock: "clk_main_i",
reset: "rst_main_ni",
xbar: false
addr_range: [{
base_addr: "0x50020000",
size_byte: "0x1000"
}]
},
// Crypto domain : use crypt clock
{ name: "aes",
type: "device",
clock: "clk_crypt_i",
reset: "rst_crypt_ni",
xbar: false
addr_range: [{
base_addr: "0x60000000",
size_byte: "0x8000"
}]
},
{ name: "hmac",
type: "device",
clock: "clk_crypt_i",
reset: "rst_crypt_ni",
xbar: false
addr_range: [{
base_addr: "0x60010000",
size_byte: "0x10000"
}]
},
{ name: "keymgr",
type: "device",
clock: "clk_crypt_i",
reset: "rst_crypt_ni",
xbar: false
addr_range: [{
base_addr: "0x60080000",
size_byte: "0x20000"
}]
},
],
connections: {
ibexif: ["rom", "debug_rom", "sram", "flash_ctrl"],
ibexlsu: ["rom", "sram", "flash_ctrl", "uart0", "gpio0", "spi_device", "spi_host", "timer0",
"watchdog", "alert_h", "aes", "hmac", "keymgr"],
dm_sba: ["sram", "flash_ctrl", "uart0", "gpio0", "spi_device", "spi_host", "timer0",
"watchdog", "alert_h", "aes", "hmac", "keymgr"],
},
}