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

}
