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