// 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"], | |
}, | |
} |