blob: 4948bff0af7e6a0b997f0e3a115040c70100aaea [file] [log] [blame]
// Copyright lowRISC contributors.
// Licensed under the Apache License, Version 2.0, see LICENSE for details.
// SPDX-License-Identifier: Apache-2.0
#![allow(dead_code)]
//! This file contains enums and consts for use within the Rust codebase.
//!
//! These definitions are for information that depends on the top-specific chip
//! configuration, which includes:
//! - Device Memory Information (for Peripherals and Memory)
//! - PLIC Interrupt ID Names and Source Mappings
//! - Alert ID Names and Source Mappings
//! - Pinmux Pin/Select Names
//! - Power Manager Wakeups
/// Peripheral base address for uart0 in top earlgrey.
///
/// This should be used with #mmio_region_from_addr to access the memory-mapped
/// registers associated with the peripheral (usually via a DIF).
pub const TOP_EARLGREY_UART0_BASE_ADDR: usize = 0x40000000;
/// Peripheral size for uart0 in top earlgrey.
///
/// This is the size (in bytes) of the peripheral's reserved memory area. All
/// memory-mapped registers associated with this peripheral should have an
/// address between #TOP_EARLGREY_UART0_BASE_ADDR and
/// `TOP_EARLGREY_UART0_BASE_ADDR + TOP_EARLGREY_UART0_SIZE_BYTES`.
pub const TOP_EARLGREY_UART0_SIZE_BYTES: usize = 0x40;
/// Peripheral base address for uart1 in top earlgrey.
///
/// This should be used with #mmio_region_from_addr to access the memory-mapped
/// registers associated with the peripheral (usually via a DIF).
pub const TOP_EARLGREY_UART1_BASE_ADDR: usize = 0x40010000;
/// Peripheral size for uart1 in top earlgrey.
///
/// This is the size (in bytes) of the peripheral's reserved memory area. All
/// memory-mapped registers associated with this peripheral should have an
/// address between #TOP_EARLGREY_UART1_BASE_ADDR and
/// `TOP_EARLGREY_UART1_BASE_ADDR + TOP_EARLGREY_UART1_SIZE_BYTES`.
pub const TOP_EARLGREY_UART1_SIZE_BYTES: usize = 0x40;
/// Peripheral base address for uart2 in top earlgrey.
///
/// This should be used with #mmio_region_from_addr to access the memory-mapped
/// registers associated with the peripheral (usually via a DIF).
pub const TOP_EARLGREY_UART2_BASE_ADDR: usize = 0x40020000;
/// Peripheral size for uart2 in top earlgrey.
///
/// This is the size (in bytes) of the peripheral's reserved memory area. All
/// memory-mapped registers associated with this peripheral should have an
/// address between #TOP_EARLGREY_UART2_BASE_ADDR and
/// `TOP_EARLGREY_UART2_BASE_ADDR + TOP_EARLGREY_UART2_SIZE_BYTES`.
pub const TOP_EARLGREY_UART2_SIZE_BYTES: usize = 0x40;
/// Peripheral base address for uart3 in top earlgrey.
///
/// This should be used with #mmio_region_from_addr to access the memory-mapped
/// registers associated with the peripheral (usually via a DIF).
pub const TOP_EARLGREY_UART3_BASE_ADDR: usize = 0x40030000;
/// Peripheral size for uart3 in top earlgrey.
///
/// This is the size (in bytes) of the peripheral's reserved memory area. All
/// memory-mapped registers associated with this peripheral should have an
/// address between #TOP_EARLGREY_UART3_BASE_ADDR and
/// `TOP_EARLGREY_UART3_BASE_ADDR + TOP_EARLGREY_UART3_SIZE_BYTES`.
pub const TOP_EARLGREY_UART3_SIZE_BYTES: usize = 0x40;
/// Peripheral base address for gpio in top earlgrey.
///
/// This should be used with #mmio_region_from_addr to access the memory-mapped
/// registers associated with the peripheral (usually via a DIF).
pub const TOP_EARLGREY_GPIO_BASE_ADDR: usize = 0x40040000;
/// Peripheral size for gpio in top earlgrey.
///
/// This is the size (in bytes) of the peripheral's reserved memory area. All
/// memory-mapped registers associated with this peripheral should have an
/// address between #TOP_EARLGREY_GPIO_BASE_ADDR and
/// `TOP_EARLGREY_GPIO_BASE_ADDR + TOP_EARLGREY_GPIO_SIZE_BYTES`.
pub const TOP_EARLGREY_GPIO_SIZE_BYTES: usize = 0x40;
/// Peripheral base address for spi_device in top earlgrey.
///
/// This should be used with #mmio_region_from_addr to access the memory-mapped
/// registers associated with the peripheral (usually via a DIF).
pub const TOP_EARLGREY_SPI_DEVICE_BASE_ADDR: usize = 0x40050000;
/// Peripheral size for spi_device in top earlgrey.
///
/// This is the size (in bytes) of the peripheral's reserved memory area. All
/// memory-mapped registers associated with this peripheral should have an
/// address between #TOP_EARLGREY_SPI_DEVICE_BASE_ADDR and
/// `TOP_EARLGREY_SPI_DEVICE_BASE_ADDR + TOP_EARLGREY_SPI_DEVICE_SIZE_BYTES`.
pub const TOP_EARLGREY_SPI_DEVICE_SIZE_BYTES: usize = 0x2000;
/// Peripheral base address for i2c0 in top earlgrey.
///
/// This should be used with #mmio_region_from_addr to access the memory-mapped
/// registers associated with the peripheral (usually via a DIF).
pub const TOP_EARLGREY_I2C0_BASE_ADDR: usize = 0x40080000;
/// Peripheral size for i2c0 in top earlgrey.
///
/// This is the size (in bytes) of the peripheral's reserved memory area. All
/// memory-mapped registers associated with this peripheral should have an
/// address between #TOP_EARLGREY_I2C0_BASE_ADDR and
/// `TOP_EARLGREY_I2C0_BASE_ADDR + TOP_EARLGREY_I2C0_SIZE_BYTES`.
pub const TOP_EARLGREY_I2C0_SIZE_BYTES: usize = 0x80;
/// Peripheral base address for i2c1 in top earlgrey.
///
/// This should be used with #mmio_region_from_addr to access the memory-mapped
/// registers associated with the peripheral (usually via a DIF).
pub const TOP_EARLGREY_I2C1_BASE_ADDR: usize = 0x40090000;
/// Peripheral size for i2c1 in top earlgrey.
///
/// This is the size (in bytes) of the peripheral's reserved memory area. All
/// memory-mapped registers associated with this peripheral should have an
/// address between #TOP_EARLGREY_I2C1_BASE_ADDR and
/// `TOP_EARLGREY_I2C1_BASE_ADDR + TOP_EARLGREY_I2C1_SIZE_BYTES`.
pub const TOP_EARLGREY_I2C1_SIZE_BYTES: usize = 0x80;
/// Peripheral base address for i2c2 in top earlgrey.
///
/// This should be used with #mmio_region_from_addr to access the memory-mapped
/// registers associated with the peripheral (usually via a DIF).
pub const TOP_EARLGREY_I2C2_BASE_ADDR: usize = 0x400A0000;
/// Peripheral size for i2c2 in top earlgrey.
///
/// This is the size (in bytes) of the peripheral's reserved memory area. All
/// memory-mapped registers associated with this peripheral should have an
/// address between #TOP_EARLGREY_I2C2_BASE_ADDR and
/// `TOP_EARLGREY_I2C2_BASE_ADDR + TOP_EARLGREY_I2C2_SIZE_BYTES`.
pub const TOP_EARLGREY_I2C2_SIZE_BYTES: usize = 0x80;
/// Peripheral base address for pattgen in top earlgrey.
///
/// This should be used with #mmio_region_from_addr to access the memory-mapped
/// registers associated with the peripheral (usually via a DIF).
pub const TOP_EARLGREY_PATTGEN_BASE_ADDR: usize = 0x400E0000;
/// Peripheral size for pattgen in top earlgrey.
///
/// This is the size (in bytes) of the peripheral's reserved memory area. All
/// memory-mapped registers associated with this peripheral should have an
/// address between #TOP_EARLGREY_PATTGEN_BASE_ADDR and
/// `TOP_EARLGREY_PATTGEN_BASE_ADDR + TOP_EARLGREY_PATTGEN_SIZE_BYTES`.
pub const TOP_EARLGREY_PATTGEN_SIZE_BYTES: usize = 0x40;
/// Peripheral base address for rv_timer in top earlgrey.
///
/// This should be used with #mmio_region_from_addr to access the memory-mapped
/// registers associated with the peripheral (usually via a DIF).
pub const TOP_EARLGREY_RV_TIMER_BASE_ADDR: usize = 0x40100000;
/// Peripheral size for rv_timer in top earlgrey.
///
/// This is the size (in bytes) of the peripheral's reserved memory area. All
/// memory-mapped registers associated with this peripheral should have an
/// address between #TOP_EARLGREY_RV_TIMER_BASE_ADDR and
/// `TOP_EARLGREY_RV_TIMER_BASE_ADDR + TOP_EARLGREY_RV_TIMER_SIZE_BYTES`.
pub const TOP_EARLGREY_RV_TIMER_SIZE_BYTES: usize = 0x200;
/// Peripheral base address for core device on otp_ctrl in top earlgrey.
///
/// This should be used with #mmio_region_from_addr to access the memory-mapped
/// registers associated with the peripheral (usually via a DIF).
pub const TOP_EARLGREY_OTP_CTRL_CORE_BASE_ADDR: usize = 0x40130000;
/// Peripheral size for core device on otp_ctrl in top earlgrey.
///
/// This is the size (in bytes) of the peripheral's reserved memory area. All
/// memory-mapped registers associated with this peripheral should have an
/// address between #TOP_EARLGREY_OTP_CTRL_CORE_BASE_ADDR and
/// `TOP_EARLGREY_OTP_CTRL_CORE_BASE_ADDR + TOP_EARLGREY_OTP_CTRL_CORE_SIZE_BYTES`.
pub const TOP_EARLGREY_OTP_CTRL_CORE_SIZE_BYTES: usize = 0x2000;
/// Peripheral base address for prim device on otp_ctrl in top earlgrey.
///
/// This should be used with #mmio_region_from_addr to access the memory-mapped
/// registers associated with the peripheral (usually via a DIF).
pub const TOP_EARLGREY_OTP_CTRL_PRIM_BASE_ADDR: usize = 0x40132000;
/// Peripheral size for prim device on otp_ctrl in top earlgrey.
///
/// This is the size (in bytes) of the peripheral's reserved memory area. All
/// memory-mapped registers associated with this peripheral should have an
/// address between #TOP_EARLGREY_OTP_CTRL_PRIM_BASE_ADDR and
/// `TOP_EARLGREY_OTP_CTRL_PRIM_BASE_ADDR + TOP_EARLGREY_OTP_CTRL_PRIM_SIZE_BYTES`.
pub const TOP_EARLGREY_OTP_CTRL_PRIM_SIZE_BYTES: usize = 0x20;
/// Peripheral base address for lc_ctrl in top earlgrey.
///
/// This should be used with #mmio_region_from_addr to access the memory-mapped
/// registers associated with the peripheral (usually via a DIF).
pub const TOP_EARLGREY_LC_CTRL_BASE_ADDR: usize = 0x40140000;
/// Peripheral size for lc_ctrl in top earlgrey.
///
/// This is the size (in bytes) of the peripheral's reserved memory area. All
/// memory-mapped registers associated with this peripheral should have an
/// address between #TOP_EARLGREY_LC_CTRL_BASE_ADDR and
/// `TOP_EARLGREY_LC_CTRL_BASE_ADDR + TOP_EARLGREY_LC_CTRL_SIZE_BYTES`.
pub const TOP_EARLGREY_LC_CTRL_SIZE_BYTES: usize = 0x100;
/// Peripheral base address for alert_handler in top earlgrey.
///
/// This should be used with #mmio_region_from_addr to access the memory-mapped
/// registers associated with the peripheral (usually via a DIF).
pub const TOP_EARLGREY_ALERT_HANDLER_BASE_ADDR: usize = 0x40150000;
/// Peripheral size for alert_handler in top earlgrey.
///
/// This is the size (in bytes) of the peripheral's reserved memory area. All
/// memory-mapped registers associated with this peripheral should have an
/// address between #TOP_EARLGREY_ALERT_HANDLER_BASE_ADDR and
/// `TOP_EARLGREY_ALERT_HANDLER_BASE_ADDR + TOP_EARLGREY_ALERT_HANDLER_SIZE_BYTES`.
pub const TOP_EARLGREY_ALERT_HANDLER_SIZE_BYTES: usize = 0x800;
/// Peripheral base address for spi_host0 in top earlgrey.
///
/// This should be used with #mmio_region_from_addr to access the memory-mapped
/// registers associated with the peripheral (usually via a DIF).
pub const TOP_EARLGREY_SPI_HOST0_BASE_ADDR: usize = 0x40300000;
/// Peripheral size for spi_host0 in top earlgrey.
///
/// This is the size (in bytes) of the peripheral's reserved memory area. All
/// memory-mapped registers associated with this peripheral should have an
/// address between #TOP_EARLGREY_SPI_HOST0_BASE_ADDR and
/// `TOP_EARLGREY_SPI_HOST0_BASE_ADDR + TOP_EARLGREY_SPI_HOST0_SIZE_BYTES`.
pub const TOP_EARLGREY_SPI_HOST0_SIZE_BYTES: usize = 0x40;
/// Peripheral base address for spi_host1 in top earlgrey.
///
/// This should be used with #mmio_region_from_addr to access the memory-mapped
/// registers associated with the peripheral (usually via a DIF).
pub const TOP_EARLGREY_SPI_HOST1_BASE_ADDR: usize = 0x40310000;
/// Peripheral size for spi_host1 in top earlgrey.
///
/// This is the size (in bytes) of the peripheral's reserved memory area. All
/// memory-mapped registers associated with this peripheral should have an
/// address between #TOP_EARLGREY_SPI_HOST1_BASE_ADDR and
/// `TOP_EARLGREY_SPI_HOST1_BASE_ADDR + TOP_EARLGREY_SPI_HOST1_SIZE_BYTES`.
pub const TOP_EARLGREY_SPI_HOST1_SIZE_BYTES: usize = 0x40;
/// Peripheral base address for usbdev in top earlgrey.
///
/// This should be used with #mmio_region_from_addr to access the memory-mapped
/// registers associated with the peripheral (usually via a DIF).
pub const TOP_EARLGREY_USBDEV_BASE_ADDR: usize = 0x40320000;
/// Peripheral size for usbdev in top earlgrey.
///
/// This is the size (in bytes) of the peripheral's reserved memory area. All
/// memory-mapped registers associated with this peripheral should have an
/// address between #TOP_EARLGREY_USBDEV_BASE_ADDR and
/// `TOP_EARLGREY_USBDEV_BASE_ADDR + TOP_EARLGREY_USBDEV_SIZE_BYTES`.
pub const TOP_EARLGREY_USBDEV_SIZE_BYTES: usize = 0x1000;
/// Peripheral base address for pwrmgr_aon in top earlgrey.
///
/// This should be used with #mmio_region_from_addr to access the memory-mapped
/// registers associated with the peripheral (usually via a DIF).
pub const TOP_EARLGREY_PWRMGR_AON_BASE_ADDR: usize = 0x40400000;
/// Peripheral size for pwrmgr_aon in top earlgrey.
///
/// This is the size (in bytes) of the peripheral's reserved memory area. All
/// memory-mapped registers associated with this peripheral should have an
/// address between #TOP_EARLGREY_PWRMGR_AON_BASE_ADDR and
/// `TOP_EARLGREY_PWRMGR_AON_BASE_ADDR + TOP_EARLGREY_PWRMGR_AON_SIZE_BYTES`.
pub const TOP_EARLGREY_PWRMGR_AON_SIZE_BYTES: usize = 0x80;
/// Peripheral base address for rstmgr_aon in top earlgrey.
///
/// This should be used with #mmio_region_from_addr to access the memory-mapped
/// registers associated with the peripheral (usually via a DIF).
pub const TOP_EARLGREY_RSTMGR_AON_BASE_ADDR: usize = 0x40410000;
/// Peripheral size for rstmgr_aon in top earlgrey.
///
/// This is the size (in bytes) of the peripheral's reserved memory area. All
/// memory-mapped registers associated with this peripheral should have an
/// address between #TOP_EARLGREY_RSTMGR_AON_BASE_ADDR and
/// `TOP_EARLGREY_RSTMGR_AON_BASE_ADDR + TOP_EARLGREY_RSTMGR_AON_SIZE_BYTES`.
pub const TOP_EARLGREY_RSTMGR_AON_SIZE_BYTES: usize = 0x80;
/// Peripheral base address for clkmgr_aon in top earlgrey.
///
/// This should be used with #mmio_region_from_addr to access the memory-mapped
/// registers associated with the peripheral (usually via a DIF).
pub const TOP_EARLGREY_CLKMGR_AON_BASE_ADDR: usize = 0x40420000;
/// Peripheral size for clkmgr_aon in top earlgrey.
///
/// This is the size (in bytes) of the peripheral's reserved memory area. All
/// memory-mapped registers associated with this peripheral should have an
/// address between #TOP_EARLGREY_CLKMGR_AON_BASE_ADDR and
/// `TOP_EARLGREY_CLKMGR_AON_BASE_ADDR + TOP_EARLGREY_CLKMGR_AON_SIZE_BYTES`.
pub const TOP_EARLGREY_CLKMGR_AON_SIZE_BYTES: usize = 0x80;
/// Peripheral base address for sysrst_ctrl_aon in top earlgrey.
///
/// This should be used with #mmio_region_from_addr to access the memory-mapped
/// registers associated with the peripheral (usually via a DIF).
pub const TOP_EARLGREY_SYSRST_CTRL_AON_BASE_ADDR: usize = 0x40430000;
/// Peripheral size for sysrst_ctrl_aon in top earlgrey.
///
/// This is the size (in bytes) of the peripheral's reserved memory area. All
/// memory-mapped registers associated with this peripheral should have an
/// address between #TOP_EARLGREY_SYSRST_CTRL_AON_BASE_ADDR and
/// `TOP_EARLGREY_SYSRST_CTRL_AON_BASE_ADDR + TOP_EARLGREY_SYSRST_CTRL_AON_SIZE_BYTES`.
pub const TOP_EARLGREY_SYSRST_CTRL_AON_SIZE_BYTES: usize = 0x100;
/// Peripheral base address for adc_ctrl_aon in top earlgrey.
///
/// This should be used with #mmio_region_from_addr to access the memory-mapped
/// registers associated with the peripheral (usually via a DIF).
pub const TOP_EARLGREY_ADC_CTRL_AON_BASE_ADDR: usize = 0x40440000;
/// Peripheral size for adc_ctrl_aon in top earlgrey.
///
/// This is the size (in bytes) of the peripheral's reserved memory area. All
/// memory-mapped registers associated with this peripheral should have an
/// address between #TOP_EARLGREY_ADC_CTRL_AON_BASE_ADDR and
/// `TOP_EARLGREY_ADC_CTRL_AON_BASE_ADDR + TOP_EARLGREY_ADC_CTRL_AON_SIZE_BYTES`.
pub const TOP_EARLGREY_ADC_CTRL_AON_SIZE_BYTES: usize = 0x80;
/// Peripheral base address for pwm_aon in top earlgrey.
///
/// This should be used with #mmio_region_from_addr to access the memory-mapped
/// registers associated with the peripheral (usually via a DIF).
pub const TOP_EARLGREY_PWM_AON_BASE_ADDR: usize = 0x40450000;
/// Peripheral size for pwm_aon in top earlgrey.
///
/// This is the size (in bytes) of the peripheral's reserved memory area. All
/// memory-mapped registers associated with this peripheral should have an
/// address between #TOP_EARLGREY_PWM_AON_BASE_ADDR and
/// `TOP_EARLGREY_PWM_AON_BASE_ADDR + TOP_EARLGREY_PWM_AON_SIZE_BYTES`.
pub const TOP_EARLGREY_PWM_AON_SIZE_BYTES: usize = 0x80;
/// Peripheral base address for pinmux_aon in top earlgrey.
///
/// This should be used with #mmio_region_from_addr to access the memory-mapped
/// registers associated with the peripheral (usually via a DIF).
pub const TOP_EARLGREY_PINMUX_AON_BASE_ADDR: usize = 0x40460000;
/// Peripheral size for pinmux_aon in top earlgrey.
///
/// This is the size (in bytes) of the peripheral's reserved memory area. All
/// memory-mapped registers associated with this peripheral should have an
/// address between #TOP_EARLGREY_PINMUX_AON_BASE_ADDR and
/// `TOP_EARLGREY_PINMUX_AON_BASE_ADDR + TOP_EARLGREY_PINMUX_AON_SIZE_BYTES`.
pub const TOP_EARLGREY_PINMUX_AON_SIZE_BYTES: usize = 0x1000;
/// Peripheral base address for aon_timer_aon in top earlgrey.
///
/// This should be used with #mmio_region_from_addr to access the memory-mapped
/// registers associated with the peripheral (usually via a DIF).
pub const TOP_EARLGREY_AON_TIMER_AON_BASE_ADDR: usize = 0x40470000;
/// Peripheral size for aon_timer_aon in top earlgrey.
///
/// This is the size (in bytes) of the peripheral's reserved memory area. All
/// memory-mapped registers associated with this peripheral should have an
/// address between #TOP_EARLGREY_AON_TIMER_AON_BASE_ADDR and
/// `TOP_EARLGREY_AON_TIMER_AON_BASE_ADDR + TOP_EARLGREY_AON_TIMER_AON_SIZE_BYTES`.
pub const TOP_EARLGREY_AON_TIMER_AON_SIZE_BYTES: usize = 0x40;
/// Peripheral base address for ast in top earlgrey.
///
/// This should be used with #mmio_region_from_addr to access the memory-mapped
/// registers associated with the peripheral (usually via a DIF).
pub const TOP_EARLGREY_AST_BASE_ADDR: usize = 0x40480000;
/// Peripheral size for ast in top earlgrey.
///
/// This is the size (in bytes) of the peripheral's reserved memory area. All
/// memory-mapped registers associated with this peripheral should have an
/// address between #TOP_EARLGREY_AST_BASE_ADDR and
/// `TOP_EARLGREY_AST_BASE_ADDR + TOP_EARLGREY_AST_SIZE_BYTES`.
pub const TOP_EARLGREY_AST_SIZE_BYTES: usize = 0x400;
/// Peripheral base address for sensor_ctrl in top earlgrey.
///
/// This should be used with #mmio_region_from_addr to access the memory-mapped
/// registers associated with the peripheral (usually via a DIF).
pub const TOP_EARLGREY_SENSOR_CTRL_BASE_ADDR: usize = 0x40490000;
/// Peripheral size for sensor_ctrl in top earlgrey.
///
/// This is the size (in bytes) of the peripheral's reserved memory area. All
/// memory-mapped registers associated with this peripheral should have an
/// address between #TOP_EARLGREY_SENSOR_CTRL_BASE_ADDR and
/// `TOP_EARLGREY_SENSOR_CTRL_BASE_ADDR + TOP_EARLGREY_SENSOR_CTRL_SIZE_BYTES`.
pub const TOP_EARLGREY_SENSOR_CTRL_SIZE_BYTES: usize = 0x40;
/// Peripheral base address for regs device on sram_ctrl_ret_aon in top earlgrey.
///
/// This should be used with #mmio_region_from_addr to access the memory-mapped
/// registers associated with the peripheral (usually via a DIF).
pub const TOP_EARLGREY_SRAM_CTRL_RET_AON_REGS_BASE_ADDR: usize = 0x40500000;
/// Peripheral size for regs device on sram_ctrl_ret_aon in top earlgrey.
///
/// This is the size (in bytes) of the peripheral's reserved memory area. All
/// memory-mapped registers associated with this peripheral should have an
/// address between #TOP_EARLGREY_SRAM_CTRL_RET_AON_REGS_BASE_ADDR and
/// `TOP_EARLGREY_SRAM_CTRL_RET_AON_REGS_BASE_ADDR + TOP_EARLGREY_SRAM_CTRL_RET_AON_REGS_SIZE_BYTES`.
pub const TOP_EARLGREY_SRAM_CTRL_RET_AON_REGS_SIZE_BYTES: usize = 0x20;
/// Peripheral base address for ram device on sram_ctrl_ret_aon in top earlgrey.
///
/// This should be used with #mmio_region_from_addr to access the memory-mapped
/// registers associated with the peripheral (usually via a DIF).
pub const TOP_EARLGREY_SRAM_CTRL_RET_AON_RAM_BASE_ADDR: usize = 0x40600000;
/// Peripheral size for ram device on sram_ctrl_ret_aon in top earlgrey.
///
/// This is the size (in bytes) of the peripheral's reserved memory area. All
/// memory-mapped registers associated with this peripheral should have an
/// address between #TOP_EARLGREY_SRAM_CTRL_RET_AON_RAM_BASE_ADDR and
/// `TOP_EARLGREY_SRAM_CTRL_RET_AON_RAM_BASE_ADDR + TOP_EARLGREY_SRAM_CTRL_RET_AON_RAM_SIZE_BYTES`.
pub const TOP_EARLGREY_SRAM_CTRL_RET_AON_RAM_SIZE_BYTES: usize = 0x1000;
/// Peripheral base address for core device on flash_ctrl in top earlgrey.
///
/// This should be used with #mmio_region_from_addr to access the memory-mapped
/// registers associated with the peripheral (usually via a DIF).
pub const TOP_EARLGREY_FLASH_CTRL_CORE_BASE_ADDR: usize = 0x41000000;
/// Peripheral size for core device on flash_ctrl in top earlgrey.
///
/// This is the size (in bytes) of the peripheral's reserved memory area. All
/// memory-mapped registers associated with this peripheral should have an
/// address between #TOP_EARLGREY_FLASH_CTRL_CORE_BASE_ADDR and
/// `TOP_EARLGREY_FLASH_CTRL_CORE_BASE_ADDR + TOP_EARLGREY_FLASH_CTRL_CORE_SIZE_BYTES`.
pub const TOP_EARLGREY_FLASH_CTRL_CORE_SIZE_BYTES: usize = 0x200;
/// Peripheral base address for prim device on flash_ctrl in top earlgrey.
///
/// This should be used with #mmio_region_from_addr to access the memory-mapped
/// registers associated with the peripheral (usually via a DIF).
pub const TOP_EARLGREY_FLASH_CTRL_PRIM_BASE_ADDR: usize = 0x41008000;
/// Peripheral size for prim device on flash_ctrl in top earlgrey.
///
/// This is the size (in bytes) of the peripheral's reserved memory area. All
/// memory-mapped registers associated with this peripheral should have an
/// address between #TOP_EARLGREY_FLASH_CTRL_PRIM_BASE_ADDR and
/// `TOP_EARLGREY_FLASH_CTRL_PRIM_BASE_ADDR + TOP_EARLGREY_FLASH_CTRL_PRIM_SIZE_BYTES`.
pub const TOP_EARLGREY_FLASH_CTRL_PRIM_SIZE_BYTES: usize = 0x80;
/// Peripheral base address for mem device on flash_ctrl in top earlgrey.
///
/// This should be used with #mmio_region_from_addr to access the memory-mapped
/// registers associated with the peripheral (usually via a DIF).
pub const TOP_EARLGREY_FLASH_CTRL_MEM_BASE_ADDR: usize = 0x20000000;
/// Peripheral size for mem device on flash_ctrl in top earlgrey.
///
/// This is the size (in bytes) of the peripheral's reserved memory area. All
/// memory-mapped registers associated with this peripheral should have an
/// address between #TOP_EARLGREY_FLASH_CTRL_MEM_BASE_ADDR and
/// `TOP_EARLGREY_FLASH_CTRL_MEM_BASE_ADDR + TOP_EARLGREY_FLASH_CTRL_MEM_SIZE_BYTES`.
pub const TOP_EARLGREY_FLASH_CTRL_MEM_SIZE_BYTES: usize = 0x100000;
/// Peripheral base address for regs device on rv_dm in top earlgrey.
///
/// This should be used with #mmio_region_from_addr to access the memory-mapped
/// registers associated with the peripheral (usually via a DIF).
pub const TOP_EARLGREY_RV_DM_REGS_BASE_ADDR: usize = 0x41200000;
/// Peripheral size for regs device on rv_dm in top earlgrey.
///
/// This is the size (in bytes) of the peripheral's reserved memory area. All
/// memory-mapped registers associated with this peripheral should have an
/// address between #TOP_EARLGREY_RV_DM_REGS_BASE_ADDR and
/// `TOP_EARLGREY_RV_DM_REGS_BASE_ADDR + TOP_EARLGREY_RV_DM_REGS_SIZE_BYTES`.
pub const TOP_EARLGREY_RV_DM_REGS_SIZE_BYTES: usize = 0x4;
/// Peripheral base address for mem device on rv_dm in top earlgrey.
///
/// This should be used with #mmio_region_from_addr to access the memory-mapped
/// registers associated with the peripheral (usually via a DIF).
pub const TOP_EARLGREY_RV_DM_MEM_BASE_ADDR: usize = 0x10000;
/// Peripheral size for mem device on rv_dm in top earlgrey.
///
/// This is the size (in bytes) of the peripheral's reserved memory area. All
/// memory-mapped registers associated with this peripheral should have an
/// address between #TOP_EARLGREY_RV_DM_MEM_BASE_ADDR and
/// `TOP_EARLGREY_RV_DM_MEM_BASE_ADDR + TOP_EARLGREY_RV_DM_MEM_SIZE_BYTES`.
pub const TOP_EARLGREY_RV_DM_MEM_SIZE_BYTES: usize = 0x1000;
/// Peripheral base address for rv_plic in top earlgrey.
///
/// This should be used with #mmio_region_from_addr to access the memory-mapped
/// registers associated with the peripheral (usually via a DIF).
pub const TOP_EARLGREY_RV_PLIC_BASE_ADDR: usize = 0x48000000;
/// Peripheral size for rv_plic in top earlgrey.
///
/// This is the size (in bytes) of the peripheral's reserved memory area. All
/// memory-mapped registers associated with this peripheral should have an
/// address between #TOP_EARLGREY_RV_PLIC_BASE_ADDR and
/// `TOP_EARLGREY_RV_PLIC_BASE_ADDR + TOP_EARLGREY_RV_PLIC_SIZE_BYTES`.
pub const TOP_EARLGREY_RV_PLIC_SIZE_BYTES: usize = 0x8000000;
/// Peripheral base address for aes in top earlgrey.
///
/// This should be used with #mmio_region_from_addr to access the memory-mapped
/// registers associated with the peripheral (usually via a DIF).
pub const TOP_EARLGREY_AES_BASE_ADDR: usize = 0x41100000;
/// Peripheral size for aes in top earlgrey.
///
/// This is the size (in bytes) of the peripheral's reserved memory area. All
/// memory-mapped registers associated with this peripheral should have an
/// address between #TOP_EARLGREY_AES_BASE_ADDR and
/// `TOP_EARLGREY_AES_BASE_ADDR + TOP_EARLGREY_AES_SIZE_BYTES`.
pub const TOP_EARLGREY_AES_SIZE_BYTES: usize = 0x100;
/// Peripheral base address for hmac in top earlgrey.
///
/// This should be used with #mmio_region_from_addr to access the memory-mapped
/// registers associated with the peripheral (usually via a DIF).
pub const TOP_EARLGREY_HMAC_BASE_ADDR: usize = 0x41110000;
/// Peripheral size for hmac in top earlgrey.
///
/// This is the size (in bytes) of the peripheral's reserved memory area. All
/// memory-mapped registers associated with this peripheral should have an
/// address between #TOP_EARLGREY_HMAC_BASE_ADDR and
/// `TOP_EARLGREY_HMAC_BASE_ADDR + TOP_EARLGREY_HMAC_SIZE_BYTES`.
pub const TOP_EARLGREY_HMAC_SIZE_BYTES: usize = 0x1000;
/// Peripheral base address for kmac in top earlgrey.
///
/// This should be used with #mmio_region_from_addr to access the memory-mapped
/// registers associated with the peripheral (usually via a DIF).
pub const TOP_EARLGREY_KMAC_BASE_ADDR: usize = 0x41120000;
/// Peripheral size for kmac in top earlgrey.
///
/// This is the size (in bytes) of the peripheral's reserved memory area. All
/// memory-mapped registers associated with this peripheral should have an
/// address between #TOP_EARLGREY_KMAC_BASE_ADDR and
/// `TOP_EARLGREY_KMAC_BASE_ADDR + TOP_EARLGREY_KMAC_SIZE_BYTES`.
pub const TOP_EARLGREY_KMAC_SIZE_BYTES: usize = 0x1000;
/// Peripheral base address for otbn in top earlgrey.
///
/// This should be used with #mmio_region_from_addr to access the memory-mapped
/// registers associated with the peripheral (usually via a DIF).
pub const TOP_EARLGREY_OTBN_BASE_ADDR: usize = 0x41130000;
/// Peripheral size for otbn in top earlgrey.
///
/// This is the size (in bytes) of the peripheral's reserved memory area. All
/// memory-mapped registers associated with this peripheral should have an
/// address between #TOP_EARLGREY_OTBN_BASE_ADDR and
/// `TOP_EARLGREY_OTBN_BASE_ADDR + TOP_EARLGREY_OTBN_SIZE_BYTES`.
pub const TOP_EARLGREY_OTBN_SIZE_BYTES: usize = 0x10000;
/// Peripheral base address for keymgr in top earlgrey.
///
/// This should be used with #mmio_region_from_addr to access the memory-mapped
/// registers associated with the peripheral (usually via a DIF).
pub const TOP_EARLGREY_KEYMGR_BASE_ADDR: usize = 0x41140000;
/// Peripheral size for keymgr in top earlgrey.
///
/// This is the size (in bytes) of the peripheral's reserved memory area. All
/// memory-mapped registers associated with this peripheral should have an
/// address between #TOP_EARLGREY_KEYMGR_BASE_ADDR and
/// `TOP_EARLGREY_KEYMGR_BASE_ADDR + TOP_EARLGREY_KEYMGR_SIZE_BYTES`.
pub const TOP_EARLGREY_KEYMGR_SIZE_BYTES: usize = 0x100;
/// Peripheral base address for csrng in top earlgrey.
///
/// This should be used with #mmio_region_from_addr to access the memory-mapped
/// registers associated with the peripheral (usually via a DIF).
pub const TOP_EARLGREY_CSRNG_BASE_ADDR: usize = 0x41150000;
/// Peripheral size for csrng in top earlgrey.
///
/// This is the size (in bytes) of the peripheral's reserved memory area. All
/// memory-mapped registers associated with this peripheral should have an
/// address between #TOP_EARLGREY_CSRNG_BASE_ADDR and
/// `TOP_EARLGREY_CSRNG_BASE_ADDR + TOP_EARLGREY_CSRNG_SIZE_BYTES`.
pub const TOP_EARLGREY_CSRNG_SIZE_BYTES: usize = 0x80;
/// Peripheral base address for entropy_src in top earlgrey.
///
/// This should be used with #mmio_region_from_addr to access the memory-mapped
/// registers associated with the peripheral (usually via a DIF).
pub const TOP_EARLGREY_ENTROPY_SRC_BASE_ADDR: usize = 0x41160000;
/// Peripheral size for entropy_src in top earlgrey.
///
/// This is the size (in bytes) of the peripheral's reserved memory area. All
/// memory-mapped registers associated with this peripheral should have an
/// address between #TOP_EARLGREY_ENTROPY_SRC_BASE_ADDR and
/// `TOP_EARLGREY_ENTROPY_SRC_BASE_ADDR + TOP_EARLGREY_ENTROPY_SRC_SIZE_BYTES`.
pub const TOP_EARLGREY_ENTROPY_SRC_SIZE_BYTES: usize = 0x100;
/// Peripheral base address for edn0 in top earlgrey.
///
/// This should be used with #mmio_region_from_addr to access the memory-mapped
/// registers associated with the peripheral (usually via a DIF).
pub const TOP_EARLGREY_EDN0_BASE_ADDR: usize = 0x41170000;
/// Peripheral size for edn0 in top earlgrey.
///
/// This is the size (in bytes) of the peripheral's reserved memory area. All
/// memory-mapped registers associated with this peripheral should have an
/// address between #TOP_EARLGREY_EDN0_BASE_ADDR and
/// `TOP_EARLGREY_EDN0_BASE_ADDR + TOP_EARLGREY_EDN0_SIZE_BYTES`.
pub const TOP_EARLGREY_EDN0_SIZE_BYTES: usize = 0x80;
/// Peripheral base address for edn1 in top earlgrey.
///
/// This should be used with #mmio_region_from_addr to access the memory-mapped
/// registers associated with the peripheral (usually via a DIF).
pub const TOP_EARLGREY_EDN1_BASE_ADDR: usize = 0x41180000;
/// Peripheral size for edn1 in top earlgrey.
///
/// This is the size (in bytes) of the peripheral's reserved memory area. All
/// memory-mapped registers associated with this peripheral should have an
/// address between #TOP_EARLGREY_EDN1_BASE_ADDR and
/// `TOP_EARLGREY_EDN1_BASE_ADDR + TOP_EARLGREY_EDN1_SIZE_BYTES`.
pub const TOP_EARLGREY_EDN1_SIZE_BYTES: usize = 0x80;
/// Peripheral base address for regs device on sram_ctrl_main in top earlgrey.
///
/// This should be used with #mmio_region_from_addr to access the memory-mapped
/// registers associated with the peripheral (usually via a DIF).
pub const TOP_EARLGREY_SRAM_CTRL_MAIN_REGS_BASE_ADDR: usize = 0x411C0000;
/// Peripheral size for regs device on sram_ctrl_main in top earlgrey.
///
/// This is the size (in bytes) of the peripheral's reserved memory area. All
/// memory-mapped registers associated with this peripheral should have an
/// address between #TOP_EARLGREY_SRAM_CTRL_MAIN_REGS_BASE_ADDR and
/// `TOP_EARLGREY_SRAM_CTRL_MAIN_REGS_BASE_ADDR + TOP_EARLGREY_SRAM_CTRL_MAIN_REGS_SIZE_BYTES`.
pub const TOP_EARLGREY_SRAM_CTRL_MAIN_REGS_SIZE_BYTES: usize = 0x20;
/// Peripheral base address for ram device on sram_ctrl_main in top earlgrey.
///
/// This should be used with #mmio_region_from_addr to access the memory-mapped
/// registers associated with the peripheral (usually via a DIF).
pub const TOP_EARLGREY_SRAM_CTRL_MAIN_RAM_BASE_ADDR: usize = 0x10000000;
/// Peripheral size for ram device on sram_ctrl_main in top earlgrey.
///
/// This is the size (in bytes) of the peripheral's reserved memory area. All
/// memory-mapped registers associated with this peripheral should have an
/// address between #TOP_EARLGREY_SRAM_CTRL_MAIN_RAM_BASE_ADDR and
/// `TOP_EARLGREY_SRAM_CTRL_MAIN_RAM_BASE_ADDR + TOP_EARLGREY_SRAM_CTRL_MAIN_RAM_SIZE_BYTES`.
pub const TOP_EARLGREY_SRAM_CTRL_MAIN_RAM_SIZE_BYTES: usize = 0x20000;
/// Peripheral base address for regs device on rom_ctrl in top earlgrey.
///
/// This should be used with #mmio_region_from_addr to access the memory-mapped
/// registers associated with the peripheral (usually via a DIF).
pub const TOP_EARLGREY_ROM_CTRL_REGS_BASE_ADDR: usize = 0x411E0000;
/// Peripheral size for regs device on rom_ctrl in top earlgrey.
///
/// This is the size (in bytes) of the peripheral's reserved memory area. All
/// memory-mapped registers associated with this peripheral should have an
/// address between #TOP_EARLGREY_ROM_CTRL_REGS_BASE_ADDR and
/// `TOP_EARLGREY_ROM_CTRL_REGS_BASE_ADDR + TOP_EARLGREY_ROM_CTRL_REGS_SIZE_BYTES`.
pub const TOP_EARLGREY_ROM_CTRL_REGS_SIZE_BYTES: usize = 0x80;
/// Peripheral base address for rom device on rom_ctrl in top earlgrey.
///
/// This should be used with #mmio_region_from_addr to access the memory-mapped
/// registers associated with the peripheral (usually via a DIF).
pub const TOP_EARLGREY_ROM_CTRL_ROM_BASE_ADDR: usize = 0x8000;
/// Peripheral size for rom device on rom_ctrl in top earlgrey.
///
/// This is the size (in bytes) of the peripheral's reserved memory area. All
/// memory-mapped registers associated with this peripheral should have an
/// address between #TOP_EARLGREY_ROM_CTRL_ROM_BASE_ADDR and
/// `TOP_EARLGREY_ROM_CTRL_ROM_BASE_ADDR + TOP_EARLGREY_ROM_CTRL_ROM_SIZE_BYTES`.
pub const TOP_EARLGREY_ROM_CTRL_ROM_SIZE_BYTES: usize = 0x8000;
/// Peripheral base address for cfg device on rv_core_ibex in top earlgrey.
///
/// This should be used with #mmio_region_from_addr to access the memory-mapped
/// registers associated with the peripheral (usually via a DIF).
pub const TOP_EARLGREY_RV_CORE_IBEX_CFG_BASE_ADDR: usize = 0x411F0000;
/// Peripheral size for cfg device on rv_core_ibex in top earlgrey.
///
/// This is the size (in bytes) of the peripheral's reserved memory area. All
/// memory-mapped registers associated with this peripheral should have an
/// address between #TOP_EARLGREY_RV_CORE_IBEX_CFG_BASE_ADDR and
/// `TOP_EARLGREY_RV_CORE_IBEX_CFG_BASE_ADDR + TOP_EARLGREY_RV_CORE_IBEX_CFG_SIZE_BYTES`.
pub const TOP_EARLGREY_RV_CORE_IBEX_CFG_SIZE_BYTES: usize = 0x100;
/// Memory base address for ram_ret_aon in top earlgrey.
pub const RAM_RET_AON_BASE_ADDR: usize = 0x40600000;
/// Memory size for ram_ret_aon in top earlgrey.
pub const RAM_RET_AON_SIZE_BYTES: usize = 0x1000;
/// Memory base address for eflash in top earlgrey.
pub const EFLASH_BASE_ADDR: usize = 0x20000000;
/// Memory size for eflash in top earlgrey.
pub const EFLASH_SIZE_BYTES: usize = 0x100000;
/// Memory base address for ram_main in top earlgrey.
pub const RAM_MAIN_BASE_ADDR: usize = 0x10000000;
/// Memory size for ram_main in top earlgrey.
pub const RAM_MAIN_SIZE_BYTES: usize = 0x20000;
/// Memory base address for rom in top earlgrey.
pub const ROM_BASE_ADDR: usize = 0x8000;
/// Memory size for rom in top earlgrey.
pub const ROM_SIZE_BYTES: usize = 0x8000;
/// PLIC Interrupt Source Peripheral.
///
/// Enumeration used to determine which peripheral asserted the corresponding
/// interrupt.
#[repr(u32)]
pub enum TopEarlgreyPlicPeripheral {
/// Unknown Peripheral
Unknown = 0,
/// uart0
Uart0 = 1,
/// uart1
Uart1 = 2,
/// uart2
Uart2 = 3,
/// uart3
Uart3 = 4,
/// gpio
Gpio = 5,
/// spi_device
SpiDevice = 6,
/// i2c0
I2c0 = 7,
/// i2c1
I2c1 = 8,
/// i2c2
I2c2 = 9,
/// pattgen
Pattgen = 10,
/// rv_timer
RvTimer = 11,
/// otp_ctrl
OtpCtrl = 12,
/// alert_handler
AlertHandler = 13,
/// spi_host0
SpiHost0 = 14,
/// spi_host1
SpiHost1 = 15,
/// usbdev
Usbdev = 16,
/// pwrmgr_aon
PwrmgrAon = 17,
/// sysrst_ctrl_aon
SysrstCtrlAon = 18,
/// adc_ctrl_aon
AdcCtrlAon = 19,
/// aon_timer_aon
AonTimerAon = 20,
/// sensor_ctrl
SensorCtrl = 21,
/// flash_ctrl
FlashCtrl = 22,
/// hmac
Hmac = 23,
/// kmac
Kmac = 24,
/// otbn
Otbn = 25,
/// keymgr
Keymgr = 26,
/// csrng
Csrng = 27,
/// entropy_src
EntropySrc = 28,
/// edn0
Edn0 = 29,
/// edn1
Edn1 = 30,
/// \internal Number of PLIC peripheral
End = 31,
}
/// PLIC Interrupt Source.
///
/// Enumeration of all PLIC interrupt sources. The interrupt sources belonging to
/// the same peripheral are guaranteed to be consecutive.
#[repr(u32)]
pub enum TopEarlgreyPlicIrqId {
/// No Interrupt
None = 0,
/// uart0_tx_watermark
Uart0TxWatermark = 1,
/// uart0_rx_watermark
Uart0RxWatermark = 2,
/// uart0_tx_empty
Uart0TxEmpty = 3,
/// uart0_rx_overflow
Uart0RxOverflow = 4,
/// uart0_rx_frame_err
Uart0RxFrameErr = 5,
/// uart0_rx_break_err
Uart0RxBreakErr = 6,
/// uart0_rx_timeout
Uart0RxTimeout = 7,
/// uart0_rx_parity_err
Uart0RxParityErr = 8,
/// uart1_tx_watermark
Uart1TxWatermark = 9,
/// uart1_rx_watermark
Uart1RxWatermark = 10,
/// uart1_tx_empty
Uart1TxEmpty = 11,
/// uart1_rx_overflow
Uart1RxOverflow = 12,
/// uart1_rx_frame_err
Uart1RxFrameErr = 13,
/// uart1_rx_break_err
Uart1RxBreakErr = 14,
/// uart1_rx_timeout
Uart1RxTimeout = 15,
/// uart1_rx_parity_err
Uart1RxParityErr = 16,
/// uart2_tx_watermark
Uart2TxWatermark = 17,
/// uart2_rx_watermark
Uart2RxWatermark = 18,
/// uart2_tx_empty
Uart2TxEmpty = 19,
/// uart2_rx_overflow
Uart2RxOverflow = 20,
/// uart2_rx_frame_err
Uart2RxFrameErr = 21,
/// uart2_rx_break_err
Uart2RxBreakErr = 22,
/// uart2_rx_timeout
Uart2RxTimeout = 23,
/// uart2_rx_parity_err
Uart2RxParityErr = 24,
/// uart3_tx_watermark
Uart3TxWatermark = 25,
/// uart3_rx_watermark
Uart3RxWatermark = 26,
/// uart3_tx_empty
Uart3TxEmpty = 27,
/// uart3_rx_overflow
Uart3RxOverflow = 28,
/// uart3_rx_frame_err
Uart3RxFrameErr = 29,
/// uart3_rx_break_err
Uart3RxBreakErr = 30,
/// uart3_rx_timeout
Uart3RxTimeout = 31,
/// uart3_rx_parity_err
Uart3RxParityErr = 32,
/// gpio_gpio 0
GpioGpio0 = 33,
/// gpio_gpio 1
GpioGpio1 = 34,
/// gpio_gpio 2
GpioGpio2 = 35,
/// gpio_gpio 3
GpioGpio3 = 36,
/// gpio_gpio 4
GpioGpio4 = 37,
/// gpio_gpio 5
GpioGpio5 = 38,
/// gpio_gpio 6
GpioGpio6 = 39,
/// gpio_gpio 7
GpioGpio7 = 40,
/// gpio_gpio 8
GpioGpio8 = 41,
/// gpio_gpio 9
GpioGpio9 = 42,
/// gpio_gpio 10
GpioGpio10 = 43,
/// gpio_gpio 11
GpioGpio11 = 44,
/// gpio_gpio 12
GpioGpio12 = 45,
/// gpio_gpio 13
GpioGpio13 = 46,
/// gpio_gpio 14
GpioGpio14 = 47,
/// gpio_gpio 15
GpioGpio15 = 48,
/// gpio_gpio 16
GpioGpio16 = 49,
/// gpio_gpio 17
GpioGpio17 = 50,
/// gpio_gpio 18
GpioGpio18 = 51,
/// gpio_gpio 19
GpioGpio19 = 52,
/// gpio_gpio 20
GpioGpio20 = 53,
/// gpio_gpio 21
GpioGpio21 = 54,
/// gpio_gpio 22
GpioGpio22 = 55,
/// gpio_gpio 23
GpioGpio23 = 56,
/// gpio_gpio 24
GpioGpio24 = 57,
/// gpio_gpio 25
GpioGpio25 = 58,
/// gpio_gpio 26
GpioGpio26 = 59,
/// gpio_gpio 27
GpioGpio27 = 60,
/// gpio_gpio 28
GpioGpio28 = 61,
/// gpio_gpio 29
GpioGpio29 = 62,
/// gpio_gpio 30
GpioGpio30 = 63,
/// gpio_gpio 31
GpioGpio31 = 64,
/// spi_device_generic_rx_full
SpiDeviceGenericRxFull = 65,
/// spi_device_generic_rx_watermark
SpiDeviceGenericRxWatermark = 66,
/// spi_device_generic_tx_watermark
SpiDeviceGenericTxWatermark = 67,
/// spi_device_generic_rx_error
SpiDeviceGenericRxError = 68,
/// spi_device_generic_rx_overflow
SpiDeviceGenericRxOverflow = 69,
/// spi_device_generic_tx_underflow
SpiDeviceGenericTxUnderflow = 70,
/// spi_device_upload_cmdfifo_not_empty
SpiDeviceUploadCmdfifoNotEmpty = 71,
/// spi_device_upload_payload_not_empty
SpiDeviceUploadPayloadNotEmpty = 72,
/// spi_device_upload_payload_overflow
SpiDeviceUploadPayloadOverflow = 73,
/// spi_device_readbuf_watermark
SpiDeviceReadbufWatermark = 74,
/// spi_device_readbuf_flip
SpiDeviceReadbufFlip = 75,
/// spi_device_tpm_header_not_empty
SpiDeviceTpmHeaderNotEmpty = 76,
/// i2c0_fmt_threshold
I2c0FmtThreshold = 77,
/// i2c0_rx_threshold
I2c0RxThreshold = 78,
/// i2c0_fmt_overflow
I2c0FmtOverflow = 79,
/// i2c0_rx_overflow
I2c0RxOverflow = 80,
/// i2c0_nak
I2c0Nak = 81,
/// i2c0_scl_interference
I2c0SclInterference = 82,
/// i2c0_sda_interference
I2c0SdaInterference = 83,
/// i2c0_stretch_timeout
I2c0StretchTimeout = 84,
/// i2c0_sda_unstable
I2c0SdaUnstable = 85,
/// i2c0_cmd_complete
I2c0CmdComplete = 86,
/// i2c0_tx_stretch
I2c0TxStretch = 87,
/// i2c0_tx_overflow
I2c0TxOverflow = 88,
/// i2c0_acq_full
I2c0AcqFull = 89,
/// i2c0_unexp_stop
I2c0UnexpStop = 90,
/// i2c0_host_timeout
I2c0HostTimeout = 91,
/// i2c1_fmt_threshold
I2c1FmtThreshold = 92,
/// i2c1_rx_threshold
I2c1RxThreshold = 93,
/// i2c1_fmt_overflow
I2c1FmtOverflow = 94,
/// i2c1_rx_overflow
I2c1RxOverflow = 95,
/// i2c1_nak
I2c1Nak = 96,
/// i2c1_scl_interference
I2c1SclInterference = 97,
/// i2c1_sda_interference
I2c1SdaInterference = 98,
/// i2c1_stretch_timeout
I2c1StretchTimeout = 99,
/// i2c1_sda_unstable
I2c1SdaUnstable = 100,
/// i2c1_cmd_complete
I2c1CmdComplete = 101,
/// i2c1_tx_stretch
I2c1TxStretch = 102,
/// i2c1_tx_overflow
I2c1TxOverflow = 103,
/// i2c1_acq_full
I2c1AcqFull = 104,
/// i2c1_unexp_stop
I2c1UnexpStop = 105,
/// i2c1_host_timeout
I2c1HostTimeout = 106,
/// i2c2_fmt_threshold
I2c2FmtThreshold = 107,
/// i2c2_rx_threshold
I2c2RxThreshold = 108,
/// i2c2_fmt_overflow
I2c2FmtOverflow = 109,
/// i2c2_rx_overflow
I2c2RxOverflow = 110,
/// i2c2_nak
I2c2Nak = 111,
/// i2c2_scl_interference
I2c2SclInterference = 112,
/// i2c2_sda_interference
I2c2SdaInterference = 113,
/// i2c2_stretch_timeout
I2c2StretchTimeout = 114,
/// i2c2_sda_unstable
I2c2SdaUnstable = 115,
/// i2c2_cmd_complete
I2c2CmdComplete = 116,
/// i2c2_tx_stretch
I2c2TxStretch = 117,
/// i2c2_tx_overflow
I2c2TxOverflow = 118,
/// i2c2_acq_full
I2c2AcqFull = 119,
/// i2c2_unexp_stop
I2c2UnexpStop = 120,
/// i2c2_host_timeout
I2c2HostTimeout = 121,
/// pattgen_done_ch0
PattgenDoneCh0 = 122,
/// pattgen_done_ch1
PattgenDoneCh1 = 123,
/// rv_timer_timer_expired_hart0_timer0
RvTimerTimerExpiredHart0Timer0 = 124,
/// otp_ctrl_otp_operation_done
OtpCtrlOtpOperationDone = 125,
/// otp_ctrl_otp_error
OtpCtrlOtpError = 126,
/// alert_handler_classa
AlertHandlerClassa = 127,
/// alert_handler_classb
AlertHandlerClassb = 128,
/// alert_handler_classc
AlertHandlerClassc = 129,
/// alert_handler_classd
AlertHandlerClassd = 130,
/// spi_host0_error
SpiHost0Error = 131,
/// spi_host0_spi_event
SpiHost0SpiEvent = 132,
/// spi_host1_error
SpiHost1Error = 133,
/// spi_host1_spi_event
SpiHost1SpiEvent = 134,
/// usbdev_pkt_received
UsbdevPktReceived = 135,
/// usbdev_pkt_sent
UsbdevPktSent = 136,
/// usbdev_disconnected
UsbdevDisconnected = 137,
/// usbdev_host_lost
UsbdevHostLost = 138,
/// usbdev_link_reset
UsbdevLinkReset = 139,
/// usbdev_link_suspend
UsbdevLinkSuspend = 140,
/// usbdev_link_resume
UsbdevLinkResume = 141,
/// usbdev_av_empty
UsbdevAvEmpty = 142,
/// usbdev_rx_full
UsbdevRxFull = 143,
/// usbdev_av_overflow
UsbdevAvOverflow = 144,
/// usbdev_link_in_err
UsbdevLinkInErr = 145,
/// usbdev_rx_crc_err
UsbdevRxCrcErr = 146,
/// usbdev_rx_pid_err
UsbdevRxPidErr = 147,
/// usbdev_rx_bitstuff_err
UsbdevRxBitstuffErr = 148,
/// usbdev_frame
UsbdevFrame = 149,
/// usbdev_powered
UsbdevPowered = 150,
/// usbdev_link_out_err
UsbdevLinkOutErr = 151,
/// pwrmgr_aon_wakeup
PwrmgrAonWakeup = 152,
/// sysrst_ctrl_aon_event_detected
SysrstCtrlAonEventDetected = 153,
/// adc_ctrl_aon_match_done
AdcCtrlAonMatchDone = 154,
/// aon_timer_aon_wkup_timer_expired
AonTimerAonWkupTimerExpired = 155,
/// aon_timer_aon_wdog_timer_bark
AonTimerAonWdogTimerBark = 156,
/// sensor_ctrl_io_status_change
SensorCtrlIoStatusChange = 157,
/// sensor_ctrl_init_status_change
SensorCtrlInitStatusChange = 158,
/// flash_ctrl_prog_empty
FlashCtrlProgEmpty = 159,
/// flash_ctrl_prog_lvl
FlashCtrlProgLvl = 160,
/// flash_ctrl_rd_full
FlashCtrlRdFull = 161,
/// flash_ctrl_rd_lvl
FlashCtrlRdLvl = 162,
/// flash_ctrl_op_done
FlashCtrlOpDone = 163,
/// flash_ctrl_corr_err
FlashCtrlCorrErr = 164,
/// hmac_hmac_done
HmacHmacDone = 165,
/// hmac_fifo_empty
HmacFifoEmpty = 166,
/// hmac_hmac_err
HmacHmacErr = 167,
/// kmac_kmac_done
KmacKmacDone = 168,
/// kmac_fifo_empty
KmacFifoEmpty = 169,
/// kmac_kmac_err
KmacKmacErr = 170,
/// otbn_done
OtbnDone = 171,
/// keymgr_op_done
KeymgrOpDone = 172,
/// csrng_cs_cmd_req_done
CsrngCsCmdReqDone = 173,
/// csrng_cs_entropy_req
CsrngCsEntropyReq = 174,
/// csrng_cs_hw_inst_exc
CsrngCsHwInstExc = 175,
/// csrng_cs_fatal_err
CsrngCsFatalErr = 176,
/// entropy_src_es_entropy_valid
EntropySrcEsEntropyValid = 177,
/// entropy_src_es_health_test_failed
EntropySrcEsHealthTestFailed = 178,
/// entropy_src_es_observe_fifo_ready
EntropySrcEsObserveFifoReady = 179,
/// entropy_src_es_fatal_err
EntropySrcEsFatalErr = 180,
/// edn0_edn_cmd_req_done
Edn0EdnCmdReqDone = 181,
/// edn0_edn_fatal_err
Edn0EdnFatalErr = 182,
/// edn1_edn_cmd_req_done
Edn1EdnCmdReqDone = 183,
/// edn1_edn_fatal_err
Edn1EdnFatalErr = 184,
/// \internal Number of Interrupt ID.
End = 185,
}
/// PLIC Interrupt Target.
///
/// Enumeration used to determine which set of IE, CC, threshold registers to
/// access for a given interrupt target.
pub enum TopEarlgreyPlicTarget {
/// Ibex Core 0
Ibex0 = 0,
/// \internal Final number of PLIC target
End = 1,
}
/// Alert Handler Source Peripheral.
///
/// Enumeration used to determine which peripheral asserted the corresponding
/// alert.
#[repr(u32)]
pub enum TopEarlgreyAlertPeripheral {
/// uart0
Uart0 = 0,
/// uart1
Uart1 = 1,
/// uart2
Uart2 = 2,
/// uart3
Uart3 = 3,
/// gpio
Gpio = 4,
/// spi_device
SpiDevice = 5,
/// i2c0
I2c0 = 6,
/// i2c1
I2c1 = 7,
/// i2c2
I2c2 = 8,
/// pattgen
Pattgen = 9,
/// rv_timer
RvTimer = 10,
/// otp_ctrl
OtpCtrl = 11,
/// lc_ctrl
LcCtrl = 12,
/// spi_host0
SpiHost0 = 13,
/// spi_host1
SpiHost1 = 14,
/// usbdev
Usbdev = 15,
/// pwrmgr_aon
PwrmgrAon = 16,
/// rstmgr_aon
RstmgrAon = 17,
/// clkmgr_aon
ClkmgrAon = 18,
/// sysrst_ctrl_aon
SysrstCtrlAon = 19,
/// adc_ctrl_aon
AdcCtrlAon = 20,
/// pwm_aon
PwmAon = 21,
/// pinmux_aon
PinmuxAon = 22,
/// aon_timer_aon
AonTimerAon = 23,
/// sensor_ctrl
SensorCtrl = 24,
/// sram_ctrl_ret_aon
SramCtrlRetAon = 25,
/// flash_ctrl
FlashCtrl = 26,
/// rv_dm
RvDm = 27,
/// rv_plic
RvPlic = 28,
/// aes
Aes = 29,
/// hmac
Hmac = 30,
/// kmac
Kmac = 31,
/// otbn
Otbn = 32,
/// keymgr
Keymgr = 33,
/// csrng
Csrng = 34,
/// entropy_src
EntropySrc = 35,
/// edn0
Edn0 = 36,
/// edn1
Edn1 = 37,
/// sram_ctrl_main
SramCtrlMain = 38,
/// rom_ctrl
RomCtrl = 39,
/// rv_core_ibex
RvCoreIbex = 40,
/// \internal Final number of Alert peripheral
End = 41,
}
/// Alert Handler Alert Source.
///
/// Enumeration of all Alert Handler Alert Sources. The alert sources belonging to
/// the same peripheral are guaranteed to be consecutive.
#[repr(u32)]
pub enum TopEarlgreyAlertId {
/// uart0_fatal_fault
Uart0FatalFault = 0,
/// uart1_fatal_fault
Uart1FatalFault = 1,
/// uart2_fatal_fault
Uart2FatalFault = 2,
/// uart3_fatal_fault
Uart3FatalFault = 3,
/// gpio_fatal_fault
GpioFatalFault = 4,
/// spi_device_fatal_fault
SpiDeviceFatalFault = 5,
/// i2c0_fatal_fault
I2c0FatalFault = 6,
/// i2c1_fatal_fault
I2c1FatalFault = 7,
/// i2c2_fatal_fault
I2c2FatalFault = 8,
/// pattgen_fatal_fault
PattgenFatalFault = 9,
/// rv_timer_fatal_fault
RvTimerFatalFault = 10,
/// otp_ctrl_fatal_macro_error
OtpCtrlFatalMacroError = 11,
/// otp_ctrl_fatal_check_error
OtpCtrlFatalCheckError = 12,
/// otp_ctrl_fatal_bus_integ_error
OtpCtrlFatalBusIntegError = 13,
/// otp_ctrl_fatal_prim_otp_alert
OtpCtrlFatalPrimOtpAlert = 14,
/// otp_ctrl_recov_prim_otp_alert
OtpCtrlRecovPrimOtpAlert = 15,
/// lc_ctrl_fatal_prog_error
LcCtrlFatalProgError = 16,
/// lc_ctrl_fatal_state_error
LcCtrlFatalStateError = 17,
/// lc_ctrl_fatal_bus_integ_error
LcCtrlFatalBusIntegError = 18,
/// spi_host0_fatal_fault
SpiHost0FatalFault = 19,
/// spi_host1_fatal_fault
SpiHost1FatalFault = 20,
/// usbdev_fatal_fault
UsbdevFatalFault = 21,
/// pwrmgr_aon_fatal_fault
PwrmgrAonFatalFault = 22,
/// rstmgr_aon_fatal_fault
RstmgrAonFatalFault = 23,
/// rstmgr_aon_fatal_cnsty_fault
RstmgrAonFatalCnstyFault = 24,
/// clkmgr_aon_recov_fault
ClkmgrAonRecovFault = 25,
/// clkmgr_aon_fatal_fault
ClkmgrAonFatalFault = 26,
/// sysrst_ctrl_aon_fatal_fault
SysrstCtrlAonFatalFault = 27,
/// adc_ctrl_aon_fatal_fault
AdcCtrlAonFatalFault = 28,
/// pwm_aon_fatal_fault
PwmAonFatalFault = 29,
/// pinmux_aon_fatal_fault
PinmuxAonFatalFault = 30,
/// aon_timer_aon_fatal_fault
AonTimerAonFatalFault = 31,
/// sensor_ctrl_recov_alert
SensorCtrlRecovAlert = 32,
/// sensor_ctrl_fatal_alert
SensorCtrlFatalAlert = 33,
/// sram_ctrl_ret_aon_fatal_error
SramCtrlRetAonFatalError = 34,
/// flash_ctrl_recov_err
FlashCtrlRecovErr = 35,
/// flash_ctrl_fatal_std_err
FlashCtrlFatalStdErr = 36,
/// flash_ctrl_fatal_err
FlashCtrlFatalErr = 37,
/// flash_ctrl_fatal_prim_flash_alert
FlashCtrlFatalPrimFlashAlert = 38,
/// flash_ctrl_recov_prim_flash_alert
FlashCtrlRecovPrimFlashAlert = 39,
/// rv_dm_fatal_fault
RvDmFatalFault = 40,
/// rv_plic_fatal_fault
RvPlicFatalFault = 41,
/// aes_recov_ctrl_update_err
AesRecovCtrlUpdateErr = 42,
/// aes_fatal_fault
AesFatalFault = 43,
/// hmac_fatal_fault
HmacFatalFault = 44,
/// kmac_recov_operation_err
KmacRecovOperationErr = 45,
/// kmac_fatal_fault_err
KmacFatalFaultErr = 46,
/// otbn_fatal
OtbnFatal = 47,
/// otbn_recov
OtbnRecov = 48,
/// keymgr_recov_operation_err
KeymgrRecovOperationErr = 49,
/// keymgr_fatal_fault_err
KeymgrFatalFaultErr = 50,
/// csrng_recov_alert
CsrngRecovAlert = 51,
/// csrng_fatal_alert
CsrngFatalAlert = 52,
/// entropy_src_recov_alert
EntropySrcRecovAlert = 53,
/// entropy_src_fatal_alert
EntropySrcFatalAlert = 54,
/// edn0_recov_alert
Edn0RecovAlert = 55,
/// edn0_fatal_alert
Edn0FatalAlert = 56,
/// edn1_recov_alert
Edn1RecovAlert = 57,
/// edn1_fatal_alert
Edn1FatalAlert = 58,
/// sram_ctrl_main_fatal_error
SramCtrlMainFatalError = 59,
/// rom_ctrl_fatal
RomCtrlFatal = 60,
/// rv_core_ibex_fatal_sw_err
RvCoreIbexFatalSwErr = 61,
/// rv_core_ibex_recov_sw_err
RvCoreIbexRecovSwErr = 62,
/// rv_core_ibex_fatal_hw_err
RvCoreIbexFatalHwErr = 63,
/// rv_core_ibex_recov_hw_err
RvCoreIbexRecovHwErr = 64,
/// \internal The number of Alert ID.
End = 65,
}
/// PLIC Interrupt Source to Peripheral Map
///
/// This array is a mapping from `TopEarlgreyPlicIrqId` to
/// `TopEarlgreyPlicPeripheral`.
pub const TOP_EARLGREY_PLIC_INTERRUPT_FOR_PERIPHERAL: [TopEarlgreyPlicPeripheral; 185] = [
// None -> TopEarlgreyPlicPeripheral::Unknown
TopEarlgreyPlicPeripheral::Unknown,
// Uart0TxWatermark -> TopEarlgreyPlicPeripheral::Uart0
TopEarlgreyPlicPeripheral::Uart0,
// Uart0RxWatermark -> TopEarlgreyPlicPeripheral::Uart0
TopEarlgreyPlicPeripheral::Uart0,
// Uart0TxEmpty -> TopEarlgreyPlicPeripheral::Uart0
TopEarlgreyPlicPeripheral::Uart0,
// Uart0RxOverflow -> TopEarlgreyPlicPeripheral::Uart0
TopEarlgreyPlicPeripheral::Uart0,
// Uart0RxFrameErr -> TopEarlgreyPlicPeripheral::Uart0
TopEarlgreyPlicPeripheral::Uart0,
// Uart0RxBreakErr -> TopEarlgreyPlicPeripheral::Uart0
TopEarlgreyPlicPeripheral::Uart0,
// Uart0RxTimeout -> TopEarlgreyPlicPeripheral::Uart0
TopEarlgreyPlicPeripheral::Uart0,
// Uart0RxParityErr -> TopEarlgreyPlicPeripheral::Uart0
TopEarlgreyPlicPeripheral::Uart0,
// Uart1TxWatermark -> TopEarlgreyPlicPeripheral::Uart1
TopEarlgreyPlicPeripheral::Uart1,
// Uart1RxWatermark -> TopEarlgreyPlicPeripheral::Uart1
TopEarlgreyPlicPeripheral::Uart1,
// Uart1TxEmpty -> TopEarlgreyPlicPeripheral::Uart1
TopEarlgreyPlicPeripheral::Uart1,
// Uart1RxOverflow -> TopEarlgreyPlicPeripheral::Uart1
TopEarlgreyPlicPeripheral::Uart1,
// Uart1RxFrameErr -> TopEarlgreyPlicPeripheral::Uart1
TopEarlgreyPlicPeripheral::Uart1,
// Uart1RxBreakErr -> TopEarlgreyPlicPeripheral::Uart1
TopEarlgreyPlicPeripheral::Uart1,
// Uart1RxTimeout -> TopEarlgreyPlicPeripheral::Uart1
TopEarlgreyPlicPeripheral::Uart1,
// Uart1RxParityErr -> TopEarlgreyPlicPeripheral::Uart1
TopEarlgreyPlicPeripheral::Uart1,
// Uart2TxWatermark -> TopEarlgreyPlicPeripheral::Uart2
TopEarlgreyPlicPeripheral::Uart2,
// Uart2RxWatermark -> TopEarlgreyPlicPeripheral::Uart2
TopEarlgreyPlicPeripheral::Uart2,
// Uart2TxEmpty -> TopEarlgreyPlicPeripheral::Uart2
TopEarlgreyPlicPeripheral::Uart2,
// Uart2RxOverflow -> TopEarlgreyPlicPeripheral::Uart2
TopEarlgreyPlicPeripheral::Uart2,
// Uart2RxFrameErr -> TopEarlgreyPlicPeripheral::Uart2
TopEarlgreyPlicPeripheral::Uart2,
// Uart2RxBreakErr -> TopEarlgreyPlicPeripheral::Uart2
TopEarlgreyPlicPeripheral::Uart2,
// Uart2RxTimeout -> TopEarlgreyPlicPeripheral::Uart2
TopEarlgreyPlicPeripheral::Uart2,
// Uart2RxParityErr -> TopEarlgreyPlicPeripheral::Uart2
TopEarlgreyPlicPeripheral::Uart2,
// Uart3TxWatermark -> TopEarlgreyPlicPeripheral::Uart3
TopEarlgreyPlicPeripheral::Uart3,
// Uart3RxWatermark -> TopEarlgreyPlicPeripheral::Uart3
TopEarlgreyPlicPeripheral::Uart3,
// Uart3TxEmpty -> TopEarlgreyPlicPeripheral::Uart3
TopEarlgreyPlicPeripheral::Uart3,
// Uart3RxOverflow -> TopEarlgreyPlicPeripheral::Uart3
TopEarlgreyPlicPeripheral::Uart3,
// Uart3RxFrameErr -> TopEarlgreyPlicPeripheral::Uart3
TopEarlgreyPlicPeripheral::Uart3,
// Uart3RxBreakErr -> TopEarlgreyPlicPeripheral::Uart3
TopEarlgreyPlicPeripheral::Uart3,
// Uart3RxTimeout -> TopEarlgreyPlicPeripheral::Uart3
TopEarlgreyPlicPeripheral::Uart3,
// Uart3RxParityErr -> TopEarlgreyPlicPeripheral::Uart3
TopEarlgreyPlicPeripheral::Uart3,
// GpioGpio0 -> TopEarlgreyPlicPeripheral::Gpio
TopEarlgreyPlicPeripheral::Gpio,
// GpioGpio1 -> TopEarlgreyPlicPeripheral::Gpio
TopEarlgreyPlicPeripheral::Gpio,
// GpioGpio2 -> TopEarlgreyPlicPeripheral::Gpio
TopEarlgreyPlicPeripheral::Gpio,
// GpioGpio3 -> TopEarlgreyPlicPeripheral::Gpio
TopEarlgreyPlicPeripheral::Gpio,
// GpioGpio4 -> TopEarlgreyPlicPeripheral::Gpio
TopEarlgreyPlicPeripheral::Gpio,
// GpioGpio5 -> TopEarlgreyPlicPeripheral::Gpio
TopEarlgreyPlicPeripheral::Gpio,
// GpioGpio6 -> TopEarlgreyPlicPeripheral::Gpio
TopEarlgreyPlicPeripheral::Gpio,
// GpioGpio7 -> TopEarlgreyPlicPeripheral::Gpio
TopEarlgreyPlicPeripheral::Gpio,
// GpioGpio8 -> TopEarlgreyPlicPeripheral::Gpio
TopEarlgreyPlicPeripheral::Gpio,
// GpioGpio9 -> TopEarlgreyPlicPeripheral::Gpio
TopEarlgreyPlicPeripheral::Gpio,
// GpioGpio10 -> TopEarlgreyPlicPeripheral::Gpio
TopEarlgreyPlicPeripheral::Gpio,
// GpioGpio11 -> TopEarlgreyPlicPeripheral::Gpio
TopEarlgreyPlicPeripheral::Gpio,
// GpioGpio12 -> TopEarlgreyPlicPeripheral::Gpio
TopEarlgreyPlicPeripheral::Gpio,
// GpioGpio13 -> TopEarlgreyPlicPeripheral::Gpio
TopEarlgreyPlicPeripheral::Gpio,
// GpioGpio14 -> TopEarlgreyPlicPeripheral::Gpio
TopEarlgreyPlicPeripheral::Gpio,
// GpioGpio15 -> TopEarlgreyPlicPeripheral::Gpio
TopEarlgreyPlicPeripheral::Gpio,
// GpioGpio16 -> TopEarlgreyPlicPeripheral::Gpio
TopEarlgreyPlicPeripheral::Gpio,
// GpioGpio17 -> TopEarlgreyPlicPeripheral::Gpio
TopEarlgreyPlicPeripheral::Gpio,
// GpioGpio18 -> TopEarlgreyPlicPeripheral::Gpio
TopEarlgreyPlicPeripheral::Gpio,
// GpioGpio19 -> TopEarlgreyPlicPeripheral::Gpio
TopEarlgreyPlicPeripheral::Gpio,
// GpioGpio20 -> TopEarlgreyPlicPeripheral::Gpio
TopEarlgreyPlicPeripheral::Gpio,
// GpioGpio21 -> TopEarlgreyPlicPeripheral::Gpio
TopEarlgreyPlicPeripheral::Gpio,
// GpioGpio22 -> TopEarlgreyPlicPeripheral::Gpio
TopEarlgreyPlicPeripheral::Gpio,
// GpioGpio23 -> TopEarlgreyPlicPeripheral::Gpio
TopEarlgreyPlicPeripheral::Gpio,
// GpioGpio24 -> TopEarlgreyPlicPeripheral::Gpio
TopEarlgreyPlicPeripheral::Gpio,
// GpioGpio25 -> TopEarlgreyPlicPeripheral::Gpio
TopEarlgreyPlicPeripheral::Gpio,
// GpioGpio26 -> TopEarlgreyPlicPeripheral::Gpio
TopEarlgreyPlicPeripheral::Gpio,
// GpioGpio27 -> TopEarlgreyPlicPeripheral::Gpio
TopEarlgreyPlicPeripheral::Gpio,
// GpioGpio28 -> TopEarlgreyPlicPeripheral::Gpio
TopEarlgreyPlicPeripheral::Gpio,
// GpioGpio29 -> TopEarlgreyPlicPeripheral::Gpio
TopEarlgreyPlicPeripheral::Gpio,
// GpioGpio30 -> TopEarlgreyPlicPeripheral::Gpio
TopEarlgreyPlicPeripheral::Gpio,
// GpioGpio31 -> TopEarlgreyPlicPeripheral::Gpio
TopEarlgreyPlicPeripheral::Gpio,
// SpiDeviceGenericRxFull -> TopEarlgreyPlicPeripheral::SpiDevice
TopEarlgreyPlicPeripheral::SpiDevice,
// SpiDeviceGenericRxWatermark -> TopEarlgreyPlicPeripheral::SpiDevice
TopEarlgreyPlicPeripheral::SpiDevice,
// SpiDeviceGenericTxWatermark -> TopEarlgreyPlicPeripheral::SpiDevice
TopEarlgreyPlicPeripheral::SpiDevice,
// SpiDeviceGenericRxError -> TopEarlgreyPlicPeripheral::SpiDevice
TopEarlgreyPlicPeripheral::SpiDevice,
// SpiDeviceGenericRxOverflow -> TopEarlgreyPlicPeripheral::SpiDevice
TopEarlgreyPlicPeripheral::SpiDevice,
// SpiDeviceGenericTxUnderflow -> TopEarlgreyPlicPeripheral::SpiDevice
TopEarlgreyPlicPeripheral::SpiDevice,
// SpiDeviceUploadCmdfifoNotEmpty -> TopEarlgreyPlicPeripheral::SpiDevice
TopEarlgreyPlicPeripheral::SpiDevice,
// SpiDeviceUploadPayloadNotEmpty -> TopEarlgreyPlicPeripheral::SpiDevice
TopEarlgreyPlicPeripheral::SpiDevice,
// SpiDeviceUploadPayloadOverflow -> TopEarlgreyPlicPeripheral::SpiDevice
TopEarlgreyPlicPeripheral::SpiDevice,
// SpiDeviceReadbufWatermark -> TopEarlgreyPlicPeripheral::SpiDevice
TopEarlgreyPlicPeripheral::SpiDevice,
// SpiDeviceReadbufFlip -> TopEarlgreyPlicPeripheral::SpiDevice
TopEarlgreyPlicPeripheral::SpiDevice,
// SpiDeviceTpmHeaderNotEmpty -> TopEarlgreyPlicPeripheral::SpiDevice
TopEarlgreyPlicPeripheral::SpiDevice,
// I2c0FmtThreshold -> TopEarlgreyPlicPeripheral::I2c0
TopEarlgreyPlicPeripheral::I2c0,
// I2c0RxThreshold -> TopEarlgreyPlicPeripheral::I2c0
TopEarlgreyPlicPeripheral::I2c0,
// I2c0FmtOverflow -> TopEarlgreyPlicPeripheral::I2c0
TopEarlgreyPlicPeripheral::I2c0,
// I2c0RxOverflow -> TopEarlgreyPlicPeripheral::I2c0
TopEarlgreyPlicPeripheral::I2c0,
// I2c0Nak -> TopEarlgreyPlicPeripheral::I2c0
TopEarlgreyPlicPeripheral::I2c0,
// I2c0SclInterference -> TopEarlgreyPlicPeripheral::I2c0
TopEarlgreyPlicPeripheral::I2c0,
// I2c0SdaInterference -> TopEarlgreyPlicPeripheral::I2c0
TopEarlgreyPlicPeripheral::I2c0,
// I2c0StretchTimeout -> TopEarlgreyPlicPeripheral::I2c0
TopEarlgreyPlicPeripheral::I2c0,
// I2c0SdaUnstable -> TopEarlgreyPlicPeripheral::I2c0
TopEarlgreyPlicPeripheral::I2c0,
// I2c0CmdComplete -> TopEarlgreyPlicPeripheral::I2c0
TopEarlgreyPlicPeripheral::I2c0,
// I2c0TxStretch -> TopEarlgreyPlicPeripheral::I2c0
TopEarlgreyPlicPeripheral::I2c0,
// I2c0TxOverflow -> TopEarlgreyPlicPeripheral::I2c0
TopEarlgreyPlicPeripheral::I2c0,
// I2c0AcqFull -> TopEarlgreyPlicPeripheral::I2c0
TopEarlgreyPlicPeripheral::I2c0,
// I2c0UnexpStop -> TopEarlgreyPlicPeripheral::I2c0
TopEarlgreyPlicPeripheral::I2c0,
// I2c0HostTimeout -> TopEarlgreyPlicPeripheral::I2c0
TopEarlgreyPlicPeripheral::I2c0,
// I2c1FmtThreshold -> TopEarlgreyPlicPeripheral::I2c1
TopEarlgreyPlicPeripheral::I2c1,
// I2c1RxThreshold -> TopEarlgreyPlicPeripheral::I2c1
TopEarlgreyPlicPeripheral::I2c1,
// I2c1FmtOverflow -> TopEarlgreyPlicPeripheral::I2c1
TopEarlgreyPlicPeripheral::I2c1,
// I2c1RxOverflow -> TopEarlgreyPlicPeripheral::I2c1
TopEarlgreyPlicPeripheral::I2c1,
// I2c1Nak -> TopEarlgreyPlicPeripheral::I2c1
TopEarlgreyPlicPeripheral::I2c1,
// I2c1SclInterference -> TopEarlgreyPlicPeripheral::I2c1
TopEarlgreyPlicPeripheral::I2c1,
// I2c1SdaInterference -> TopEarlgreyPlicPeripheral::I2c1
TopEarlgreyPlicPeripheral::I2c1,
// I2c1StretchTimeout -> TopEarlgreyPlicPeripheral::I2c1
TopEarlgreyPlicPeripheral::I2c1,
// I2c1SdaUnstable -> TopEarlgreyPlicPeripheral::I2c1
TopEarlgreyPlicPeripheral::I2c1,
// I2c1CmdComplete -> TopEarlgreyPlicPeripheral::I2c1
TopEarlgreyPlicPeripheral::I2c1,
// I2c1TxStretch -> TopEarlgreyPlicPeripheral::I2c1
TopEarlgreyPlicPeripheral::I2c1,
// I2c1TxOverflow -> TopEarlgreyPlicPeripheral::I2c1
TopEarlgreyPlicPeripheral::I2c1,
// I2c1AcqFull -> TopEarlgreyPlicPeripheral::I2c1
TopEarlgreyPlicPeripheral::I2c1,
// I2c1UnexpStop -> TopEarlgreyPlicPeripheral::I2c1
TopEarlgreyPlicPeripheral::I2c1,
// I2c1HostTimeout -> TopEarlgreyPlicPeripheral::I2c1
TopEarlgreyPlicPeripheral::I2c1,
// I2c2FmtThreshold -> TopEarlgreyPlicPeripheral::I2c2
TopEarlgreyPlicPeripheral::I2c2,
// I2c2RxThreshold -> TopEarlgreyPlicPeripheral::I2c2
TopEarlgreyPlicPeripheral::I2c2,
// I2c2FmtOverflow -> TopEarlgreyPlicPeripheral::I2c2
TopEarlgreyPlicPeripheral::I2c2,
// I2c2RxOverflow -> TopEarlgreyPlicPeripheral::I2c2
TopEarlgreyPlicPeripheral::I2c2,
// I2c2Nak -> TopEarlgreyPlicPeripheral::I2c2
TopEarlgreyPlicPeripheral::I2c2,
// I2c2SclInterference -> TopEarlgreyPlicPeripheral::I2c2
TopEarlgreyPlicPeripheral::I2c2,
// I2c2SdaInterference -> TopEarlgreyPlicPeripheral::I2c2
TopEarlgreyPlicPeripheral::I2c2,
// I2c2StretchTimeout -> TopEarlgreyPlicPeripheral::I2c2
TopEarlgreyPlicPeripheral::I2c2,
// I2c2SdaUnstable -> TopEarlgreyPlicPeripheral::I2c2
TopEarlgreyPlicPeripheral::I2c2,
// I2c2CmdComplete -> TopEarlgreyPlicPeripheral::I2c2
TopEarlgreyPlicPeripheral::I2c2,
// I2c2TxStretch -> TopEarlgreyPlicPeripheral::I2c2
TopEarlgreyPlicPeripheral::I2c2,
// I2c2TxOverflow -> TopEarlgreyPlicPeripheral::I2c2
TopEarlgreyPlicPeripheral::I2c2,
// I2c2AcqFull -> TopEarlgreyPlicPeripheral::I2c2
TopEarlgreyPlicPeripheral::I2c2,
// I2c2UnexpStop -> TopEarlgreyPlicPeripheral::I2c2
TopEarlgreyPlicPeripheral::I2c2,
// I2c2HostTimeout -> TopEarlgreyPlicPeripheral::I2c2
TopEarlgreyPlicPeripheral::I2c2,
// PattgenDoneCh0 -> TopEarlgreyPlicPeripheral::Pattgen
TopEarlgreyPlicPeripheral::Pattgen,
// PattgenDoneCh1 -> TopEarlgreyPlicPeripheral::Pattgen
TopEarlgreyPlicPeripheral::Pattgen,
// RvTimerTimerExpiredHart0Timer0 -> TopEarlgreyPlicPeripheral::RvTimer
TopEarlgreyPlicPeripheral::RvTimer,
// OtpCtrlOtpOperationDone -> TopEarlgreyPlicPeripheral::OtpCtrl
TopEarlgreyPlicPeripheral::OtpCtrl,
// OtpCtrlOtpError -> TopEarlgreyPlicPeripheral::OtpCtrl
TopEarlgreyPlicPeripheral::OtpCtrl,
// AlertHandlerClassa -> TopEarlgreyPlicPeripheral::AlertHandler
TopEarlgreyPlicPeripheral::AlertHandler,
// AlertHandlerClassb -> TopEarlgreyPlicPeripheral::AlertHandler
TopEarlgreyPlicPeripheral::AlertHandler,
// AlertHandlerClassc -> TopEarlgreyPlicPeripheral::AlertHandler
TopEarlgreyPlicPeripheral::AlertHandler,
// AlertHandlerClassd -> TopEarlgreyPlicPeripheral::AlertHandler
TopEarlgreyPlicPeripheral::AlertHandler,
// SpiHost0Error -> TopEarlgreyPlicPeripheral::SpiHost0
TopEarlgreyPlicPeripheral::SpiHost0,
// SpiHost0SpiEvent -> TopEarlgreyPlicPeripheral::SpiHost0
TopEarlgreyPlicPeripheral::SpiHost0,
// SpiHost1Error -> TopEarlgreyPlicPeripheral::SpiHost1
TopEarlgreyPlicPeripheral::SpiHost1,
// SpiHost1SpiEvent -> TopEarlgreyPlicPeripheral::SpiHost1
TopEarlgreyPlicPeripheral::SpiHost1,
// UsbdevPktReceived -> TopEarlgreyPlicPeripheral::Usbdev
TopEarlgreyPlicPeripheral::Usbdev,
// UsbdevPktSent -> TopEarlgreyPlicPeripheral::Usbdev
TopEarlgreyPlicPeripheral::Usbdev,
// UsbdevDisconnected -> TopEarlgreyPlicPeripheral::Usbdev
TopEarlgreyPlicPeripheral::Usbdev,
// UsbdevHostLost -> TopEarlgreyPlicPeripheral::Usbdev
TopEarlgreyPlicPeripheral::Usbdev,
// UsbdevLinkReset -> TopEarlgreyPlicPeripheral::Usbdev
TopEarlgreyPlicPeripheral::Usbdev,
// UsbdevLinkSuspend -> TopEarlgreyPlicPeripheral::Usbdev
TopEarlgreyPlicPeripheral::Usbdev,
// UsbdevLinkResume -> TopEarlgreyPlicPeripheral::Usbdev
TopEarlgreyPlicPeripheral::Usbdev,
// UsbdevAvEmpty -> TopEarlgreyPlicPeripheral::Usbdev
TopEarlgreyPlicPeripheral::Usbdev,
// UsbdevRxFull -> TopEarlgreyPlicPeripheral::Usbdev
TopEarlgreyPlicPeripheral::Usbdev,
// UsbdevAvOverflow -> TopEarlgreyPlicPeripheral::Usbdev
TopEarlgreyPlicPeripheral::Usbdev,
// UsbdevLinkInErr -> TopEarlgreyPlicPeripheral::Usbdev
TopEarlgreyPlicPeripheral::Usbdev,
// UsbdevRxCrcErr -> TopEarlgreyPlicPeripheral::Usbdev
TopEarlgreyPlicPeripheral::Usbdev,
// UsbdevRxPidErr -> TopEarlgreyPlicPeripheral::Usbdev
TopEarlgreyPlicPeripheral::Usbdev,
// UsbdevRxBitstuffErr -> TopEarlgreyPlicPeripheral::Usbdev
TopEarlgreyPlicPeripheral::Usbdev,
// UsbdevFrame -> TopEarlgreyPlicPeripheral::Usbdev
TopEarlgreyPlicPeripheral::Usbdev,
// UsbdevPowered -> TopEarlgreyPlicPeripheral::Usbdev
TopEarlgreyPlicPeripheral::Usbdev,
// UsbdevLinkOutErr -> TopEarlgreyPlicPeripheral::Usbdev
TopEarlgreyPlicPeripheral::Usbdev,
// PwrmgrAonWakeup -> TopEarlgreyPlicPeripheral::PwrmgrAon
TopEarlgreyPlicPeripheral::PwrmgrAon,
// SysrstCtrlAonEventDetected -> TopEarlgreyPlicPeripheral::SysrstCtrlAon
TopEarlgreyPlicPeripheral::SysrstCtrlAon,
// AdcCtrlAonMatchDone -> TopEarlgreyPlicPeripheral::AdcCtrlAon
TopEarlgreyPlicPeripheral::AdcCtrlAon,
// AonTimerAonWkupTimerExpired -> TopEarlgreyPlicPeripheral::AonTimerAon
TopEarlgreyPlicPeripheral::AonTimerAon,
// AonTimerAonWdogTimerBark -> TopEarlgreyPlicPeripheral::AonTimerAon
TopEarlgreyPlicPeripheral::AonTimerAon,
// SensorCtrlIoStatusChange -> TopEarlgreyPlicPeripheral::SensorCtrl
TopEarlgreyPlicPeripheral::SensorCtrl,
// SensorCtrlInitStatusChange -> TopEarlgreyPlicPeripheral::SensorCtrl
TopEarlgreyPlicPeripheral::SensorCtrl,
// FlashCtrlProgEmpty -> TopEarlgreyPlicPeripheral::FlashCtrl
TopEarlgreyPlicPeripheral::FlashCtrl,
// FlashCtrlProgLvl -> TopEarlgreyPlicPeripheral::FlashCtrl
TopEarlgreyPlicPeripheral::FlashCtrl,
// FlashCtrlRdFull -> TopEarlgreyPlicPeripheral::FlashCtrl
TopEarlgreyPlicPeripheral::FlashCtrl,
// FlashCtrlRdLvl -> TopEarlgreyPlicPeripheral::FlashCtrl
TopEarlgreyPlicPeripheral::FlashCtrl,
// FlashCtrlOpDone -> TopEarlgreyPlicPeripheral::FlashCtrl
TopEarlgreyPlicPeripheral::FlashCtrl,
// FlashCtrlCorrErr -> TopEarlgreyPlicPeripheral::FlashCtrl
TopEarlgreyPlicPeripheral::FlashCtrl,
// HmacHmacDone -> TopEarlgreyPlicPeripheral::Hmac
TopEarlgreyPlicPeripheral::Hmac,
// HmacFifoEmpty -> TopEarlgreyPlicPeripheral::Hmac
TopEarlgreyPlicPeripheral::Hmac,
// HmacHmacErr -> TopEarlgreyPlicPeripheral::Hmac
TopEarlgreyPlicPeripheral::Hmac,
// KmacKmacDone -> TopEarlgreyPlicPeripheral::Kmac
TopEarlgreyPlicPeripheral::Kmac,
// KmacFifoEmpty -> TopEarlgreyPlicPeripheral::Kmac
TopEarlgreyPlicPeripheral::Kmac,
// KmacKmacErr -> TopEarlgreyPlicPeripheral::Kmac
TopEarlgreyPlicPeripheral::Kmac,
// OtbnDone -> TopEarlgreyPlicPeripheral::Otbn
TopEarlgreyPlicPeripheral::Otbn,
// KeymgrOpDone -> TopEarlgreyPlicPeripheral::Keymgr
TopEarlgreyPlicPeripheral::Keymgr,
// CsrngCsCmdReqDone -> TopEarlgreyPlicPeripheral::Csrng
TopEarlgreyPlicPeripheral::Csrng,
// CsrngCsEntropyReq -> TopEarlgreyPlicPeripheral::Csrng
TopEarlgreyPlicPeripheral::Csrng,
// CsrngCsHwInstExc -> TopEarlgreyPlicPeripheral::Csrng
TopEarlgreyPlicPeripheral::Csrng,
// CsrngCsFatalErr -> TopEarlgreyPlicPeripheral::Csrng
TopEarlgreyPlicPeripheral::Csrng,
// EntropySrcEsEntropyValid -> TopEarlgreyPlicPeripheral::EntropySrc
TopEarlgreyPlicPeripheral::EntropySrc,
// EntropySrcEsHealthTestFailed -> TopEarlgreyPlicPeripheral::EntropySrc
TopEarlgreyPlicPeripheral::EntropySrc,
// EntropySrcEsObserveFifoReady -> TopEarlgreyPlicPeripheral::EntropySrc
TopEarlgreyPlicPeripheral::EntropySrc,
// EntropySrcEsFatalErr -> TopEarlgreyPlicPeripheral::EntropySrc
TopEarlgreyPlicPeripheral::EntropySrc,
// Edn0EdnCmdReqDone -> TopEarlgreyPlicPeripheral::Edn0
TopEarlgreyPlicPeripheral::Edn0,
// Edn0EdnFatalErr -> TopEarlgreyPlicPeripheral::Edn0
TopEarlgreyPlicPeripheral::Edn0,
// Edn1EdnCmdReqDone -> TopEarlgreyPlicPeripheral::Edn1
TopEarlgreyPlicPeripheral::Edn1,
// Edn1EdnFatalErr -> TopEarlgreyPlicPeripheral::Edn1
TopEarlgreyPlicPeripheral::Edn1,
];
/// Alert Handler Alert Source to Peripheral Map
///
/// This array is a mapping from `TopEarlgreyAlertId` to
/// `TopEarlgreyAlertPeripheral`.
pub const TOP_EARLGREY_ALERT_FOR_PERIPHERAL: [TopEarlgreyAlertPeripheral; 65] = [
// Uart0FatalFault -> TopEarlgreyAlertPeripheral::Uart0
TopEarlgreyAlertPeripheral::Uart0,
// Uart1FatalFault -> TopEarlgreyAlertPeripheral::Uart1
TopEarlgreyAlertPeripheral::Uart1,
// Uart2FatalFault -> TopEarlgreyAlertPeripheral::Uart2
TopEarlgreyAlertPeripheral::Uart2,
// Uart3FatalFault -> TopEarlgreyAlertPeripheral::Uart3
TopEarlgreyAlertPeripheral::Uart3,
// GpioFatalFault -> TopEarlgreyAlertPeripheral::Gpio
TopEarlgreyAlertPeripheral::Gpio,
// SpiDeviceFatalFault -> TopEarlgreyAlertPeripheral::SpiDevice
TopEarlgreyAlertPeripheral::SpiDevice,
// I2c0FatalFault -> TopEarlgreyAlertPeripheral::I2c0
TopEarlgreyAlertPeripheral::I2c0,
// I2c1FatalFault -> TopEarlgreyAlertPeripheral::I2c1
TopEarlgreyAlertPeripheral::I2c1,
// I2c2FatalFault -> TopEarlgreyAlertPeripheral::I2c2
TopEarlgreyAlertPeripheral::I2c2,
// PattgenFatalFault -> TopEarlgreyAlertPeripheral::Pattgen
TopEarlgreyAlertPeripheral::Pattgen,
// RvTimerFatalFault -> TopEarlgreyAlertPeripheral::RvTimer
TopEarlgreyAlertPeripheral::RvTimer,
// OtpCtrlFatalMacroError -> TopEarlgreyAlertPeripheral::OtpCtrl
TopEarlgreyAlertPeripheral::OtpCtrl,
// OtpCtrlFatalCheckError -> TopEarlgreyAlertPeripheral::OtpCtrl
TopEarlgreyAlertPeripheral::OtpCtrl,
// OtpCtrlFatalBusIntegError -> TopEarlgreyAlertPeripheral::OtpCtrl
TopEarlgreyAlertPeripheral::OtpCtrl,
// OtpCtrlFatalPrimOtpAlert -> TopEarlgreyAlertPeripheral::OtpCtrl
TopEarlgreyAlertPeripheral::OtpCtrl,
// OtpCtrlRecovPrimOtpAlert -> TopEarlgreyAlertPeripheral::OtpCtrl
TopEarlgreyAlertPeripheral::OtpCtrl,
// LcCtrlFatalProgError -> TopEarlgreyAlertPeripheral::LcCtrl
TopEarlgreyAlertPeripheral::LcCtrl,
// LcCtrlFatalStateError -> TopEarlgreyAlertPeripheral::LcCtrl
TopEarlgreyAlertPeripheral::LcCtrl,
// LcCtrlFatalBusIntegError -> TopEarlgreyAlertPeripheral::LcCtrl
TopEarlgreyAlertPeripheral::LcCtrl,
// SpiHost0FatalFault -> TopEarlgreyAlertPeripheral::SpiHost0
TopEarlgreyAlertPeripheral::SpiHost0,
// SpiHost1FatalFault -> TopEarlgreyAlertPeripheral::SpiHost1
TopEarlgreyAlertPeripheral::SpiHost1,
// UsbdevFatalFault -> TopEarlgreyAlertPeripheral::Usbdev
TopEarlgreyAlertPeripheral::Usbdev,
// PwrmgrAonFatalFault -> TopEarlgreyAlertPeripheral::PwrmgrAon
TopEarlgreyAlertPeripheral::PwrmgrAon,
// RstmgrAonFatalFault -> TopEarlgreyAlertPeripheral::RstmgrAon
TopEarlgreyAlertPeripheral::RstmgrAon,
// RstmgrAonFatalCnstyFault -> TopEarlgreyAlertPeripheral::RstmgrAon
TopEarlgreyAlertPeripheral::RstmgrAon,
// ClkmgrAonRecovFault -> TopEarlgreyAlertPeripheral::ClkmgrAon
TopEarlgreyAlertPeripheral::ClkmgrAon,
// ClkmgrAonFatalFault -> TopEarlgreyAlertPeripheral::ClkmgrAon
TopEarlgreyAlertPeripheral::ClkmgrAon,
// SysrstCtrlAonFatalFault -> TopEarlgreyAlertPeripheral::SysrstCtrlAon
TopEarlgreyAlertPeripheral::SysrstCtrlAon,
// AdcCtrlAonFatalFault -> TopEarlgreyAlertPeripheral::AdcCtrlAon
TopEarlgreyAlertPeripheral::AdcCtrlAon,
// PwmAonFatalFault -> TopEarlgreyAlertPeripheral::PwmAon
TopEarlgreyAlertPeripheral::PwmAon,
// PinmuxAonFatalFault -> TopEarlgreyAlertPeripheral::PinmuxAon
TopEarlgreyAlertPeripheral::PinmuxAon,
// AonTimerAonFatalFault -> TopEarlgreyAlertPeripheral::AonTimerAon
TopEarlgreyAlertPeripheral::AonTimerAon,
// SensorCtrlRecovAlert -> TopEarlgreyAlertPeripheral::SensorCtrl
TopEarlgreyAlertPeripheral::SensorCtrl,
// SensorCtrlFatalAlert -> TopEarlgreyAlertPeripheral::SensorCtrl
TopEarlgreyAlertPeripheral::SensorCtrl,
// SramCtrlRetAonFatalError -> TopEarlgreyAlertPeripheral::SramCtrlRetAon
TopEarlgreyAlertPeripheral::SramCtrlRetAon,
// FlashCtrlRecovErr -> TopEarlgreyAlertPeripheral::FlashCtrl
TopEarlgreyAlertPeripheral::FlashCtrl,
// FlashCtrlFatalStdErr -> TopEarlgreyAlertPeripheral::FlashCtrl
TopEarlgreyAlertPeripheral::FlashCtrl,
// FlashCtrlFatalErr -> TopEarlgreyAlertPeripheral::FlashCtrl
TopEarlgreyAlertPeripheral::FlashCtrl,
// FlashCtrlFatalPrimFlashAlert -> TopEarlgreyAlertPeripheral::FlashCtrl
TopEarlgreyAlertPeripheral::FlashCtrl,
// FlashCtrlRecovPrimFlashAlert -> TopEarlgreyAlertPeripheral::FlashCtrl
TopEarlgreyAlertPeripheral::FlashCtrl,
// RvDmFatalFault -> TopEarlgreyAlertPeripheral::RvDm
TopEarlgreyAlertPeripheral::RvDm,
// RvPlicFatalFault -> TopEarlgreyAlertPeripheral::RvPlic
TopEarlgreyAlertPeripheral::RvPlic,
// AesRecovCtrlUpdateErr -> TopEarlgreyAlertPeripheral::Aes
TopEarlgreyAlertPeripheral::Aes,
// AesFatalFault -> TopEarlgreyAlertPeripheral::Aes
TopEarlgreyAlertPeripheral::Aes,
// HmacFatalFault -> TopEarlgreyAlertPeripheral::Hmac
TopEarlgreyAlertPeripheral::Hmac,
// KmacRecovOperationErr -> TopEarlgreyAlertPeripheral::Kmac
TopEarlgreyAlertPeripheral::Kmac,
// KmacFatalFaultErr -> TopEarlgreyAlertPeripheral::Kmac
TopEarlgreyAlertPeripheral::Kmac,
// OtbnFatal -> TopEarlgreyAlertPeripheral::Otbn
TopEarlgreyAlertPeripheral::Otbn,
// OtbnRecov -> TopEarlgreyAlertPeripheral::Otbn
TopEarlgreyAlertPeripheral::Otbn,
// KeymgrRecovOperationErr -> TopEarlgreyAlertPeripheral::Keymgr
TopEarlgreyAlertPeripheral::Keymgr,
// KeymgrFatalFaultErr -> TopEarlgreyAlertPeripheral::Keymgr
TopEarlgreyAlertPeripheral::Keymgr,
// CsrngRecovAlert -> TopEarlgreyAlertPeripheral::Csrng
TopEarlgreyAlertPeripheral::Csrng,
// CsrngFatalAlert -> TopEarlgreyAlertPeripheral::Csrng
TopEarlgreyAlertPeripheral::Csrng,
// EntropySrcRecovAlert -> TopEarlgreyAlertPeripheral::EntropySrc
TopEarlgreyAlertPeripheral::EntropySrc,
// EntropySrcFatalAlert -> TopEarlgreyAlertPeripheral::EntropySrc
TopEarlgreyAlertPeripheral::EntropySrc,
// Edn0RecovAlert -> TopEarlgreyAlertPeripheral::Edn0
TopEarlgreyAlertPeripheral::Edn0,
// Edn0FatalAlert -> TopEarlgreyAlertPeripheral::Edn0
TopEarlgreyAlertPeripheral::Edn0,
// Edn1RecovAlert -> TopEarlgreyAlertPeripheral::Edn1
TopEarlgreyAlertPeripheral::Edn1,
// Edn1FatalAlert -> TopEarlgreyAlertPeripheral::Edn1
TopEarlgreyAlertPeripheral::Edn1,
// SramCtrlMainFatalError -> TopEarlgreyAlertPeripheral::SramCtrlMain
TopEarlgreyAlertPeripheral::SramCtrlMain,
// RomCtrlFatal -> TopEarlgreyAlertPeripheral::RomCtrl
TopEarlgreyAlertPeripheral::RomCtrl,
// RvCoreIbexFatalSwErr -> TopEarlgreyAlertPeripheral::RvCoreIbex
TopEarlgreyAlertPeripheral::RvCoreIbex,
// RvCoreIbexRecovSwErr -> TopEarlgreyAlertPeripheral::RvCoreIbex
TopEarlgreyAlertPeripheral::RvCoreIbex,
// RvCoreIbexFatalHwErr -> TopEarlgreyAlertPeripheral::RvCoreIbex
TopEarlgreyAlertPeripheral::RvCoreIbex,
// RvCoreIbexRecovHwErr -> TopEarlgreyAlertPeripheral::RvCoreIbex
TopEarlgreyAlertPeripheral::RvCoreIbex,
];
// PERIPH_INSEL ranges from 0 to NUM_MIO_PADS + 2 -1}
// 0 and 1 are tied to value 0 and 1
pub const NUM_MIO_PADS: usize = 47;
pub const NUM_DIO_PADS: usize = 16;
pub const PINMUX_MIO_PERIPH_INSEL_IDX_OFFSET: usize = 2;
pub const PINMUX_PERIPH_OUTSEL_IDX_OFFSET: usize = 3;
/// Pinmux Peripheral Input.
#[repr(u32)]
pub enum TopEarlgreyPinmuxPeripheralIn {
/// Peripheral Input 0
GpioGpio0 = 0,
/// Peripheral Input 1
GpioGpio1 = 1,
/// Peripheral Input 2
GpioGpio2 = 2,
/// Peripheral Input 3
GpioGpio3 = 3,
/// Peripheral Input 4
GpioGpio4 = 4,
/// Peripheral Input 5
GpioGpio5 = 5,
/// Peripheral Input 6
GpioGpio6 = 6,
/// Peripheral Input 7
GpioGpio7 = 7,
/// Peripheral Input 8
GpioGpio8 = 8,
/// Peripheral Input 9
GpioGpio9 = 9,
/// Peripheral Input 10
GpioGpio10 = 10,
/// Peripheral Input 11
GpioGpio11 = 11,
/// Peripheral Input 12
GpioGpio12 = 12,
/// Peripheral Input 13
GpioGpio13 = 13,
/// Peripheral Input 14
GpioGpio14 = 14,
/// Peripheral Input 15
GpioGpio15 = 15,
/// Peripheral Input 16
GpioGpio16 = 16,
/// Peripheral Input 17
GpioGpio17 = 17,
/// Peripheral Input 18
GpioGpio18 = 18,
/// Peripheral Input 19
GpioGpio19 = 19,
/// Peripheral Input 20
GpioGpio20 = 20,
/// Peripheral Input 21
GpioGpio21 = 21,
/// Peripheral Input 22
GpioGpio22 = 22,
/// Peripheral Input 23
GpioGpio23 = 23,
/// Peripheral Input 24
GpioGpio24 = 24,
/// Peripheral Input 25
GpioGpio25 = 25,
/// Peripheral Input 26
GpioGpio26 = 26,
/// Peripheral Input 27
GpioGpio27 = 27,
/// Peripheral Input 28
GpioGpio28 = 28,
/// Peripheral Input 29
GpioGpio29 = 29,
/// Peripheral Input 30
GpioGpio30 = 30,
/// Peripheral Input 31
GpioGpio31 = 31,
/// Peripheral Input 32
I2c0Sda = 32,
/// Peripheral Input 33
I2c0Scl = 33,
/// Peripheral Input 34
I2c1Sda = 34,
/// Peripheral Input 35
I2c1Scl = 35,
/// Peripheral Input 36
I2c2Sda = 36,
/// Peripheral Input 37
I2c2Scl = 37,
/// Peripheral Input 38
SpiHost1Sd0 = 38,
/// Peripheral Input 39
SpiHost1Sd1 = 39,
/// Peripheral Input 40
SpiHost1Sd2 = 40,
/// Peripheral Input 41
SpiHost1Sd3 = 41,
/// Peripheral Input 42
Uart0Rx = 42,
/// Peripheral Input 43
Uart1Rx = 43,
/// Peripheral Input 44
Uart2Rx = 44,
/// Peripheral Input 45
Uart3Rx = 45,
/// Peripheral Input 46
SpiDeviceTpmCsb = 46,
/// Peripheral Input 47
FlashCtrlTck = 47,
/// Peripheral Input 48
FlashCtrlTms = 48,
/// Peripheral Input 49
FlashCtrlTdi = 49,
/// Peripheral Input 50
SysrstCtrlAonAcPresent = 50,
/// Peripheral Input 51
SysrstCtrlAonKey0In = 51,
/// Peripheral Input 52
SysrstCtrlAonKey1In = 52,
/// Peripheral Input 53
SysrstCtrlAonKey2In = 53,
/// Peripheral Input 54
SysrstCtrlAonPwrbIn = 54,
/// Peripheral Input 55
SysrstCtrlAonLidOpen = 55,
/// Peripheral Input 56
UsbdevSense = 56,
/// \internal Number of peripheral input
End = 57,
}
/// Pinmux MIO Input Selector.
#[repr(u32)]
pub enum TopEarlgreyPinmuxInsel {
/// Tie constantly to zero
ConstantZero = 0,
/// Tie constantly to one
ConstantOne = 1,
/// MIO Pad 0
Ioa0 = 2,
/// MIO Pad 1
Ioa1 = 3,
/// MIO Pad 2
Ioa2 = 4,
/// MIO Pad 3
Ioa3 = 5,
/// MIO Pad 4
Ioa4 = 6,
/// MIO Pad 5
Ioa5 = 7,
/// MIO Pad 6
Ioa6 = 8,
/// MIO Pad 7
Ioa7 = 9,
/// MIO Pad 8
Ioa8 = 10,
/// MIO Pad 9
Iob0 = 11,
/// MIO Pad 10
Iob1 = 12,
/// MIO Pad 11
Iob2 = 13,
/// MIO Pad 12
Iob3 = 14,
/// MIO Pad 13
Iob4 = 15,
/// MIO Pad 14
Iob5 = 16,
/// MIO Pad 15
Iob6 = 17,
/// MIO Pad 16
Iob7 = 18,
/// MIO Pad 17
Iob8 = 19,
/// MIO Pad 18
Iob9 = 20,
/// MIO Pad 19
Iob10 = 21,
/// MIO Pad 20
Iob11 = 22,
/// MIO Pad 21
Iob12 = 23,
/// MIO Pad 22
Ioc0 = 24,
/// MIO Pad 23
Ioc1 = 25,
/// MIO Pad 24
Ioc2 = 26,
/// MIO Pad 25
Ioc3 = 27,
/// MIO Pad 26
Ioc4 = 28,
/// MIO Pad 27
Ioc5 = 29,
/// MIO Pad 28
Ioc6 = 30,
/// MIO Pad 29
Ioc7 = 31,
/// MIO Pad 30
Ioc8 = 32,
/// MIO Pad 31
Ioc9 = 33,
/// MIO Pad 32
Ioc10 = 34,
/// MIO Pad 33
Ioc11 = 35,
/// MIO Pad 34
Ioc12 = 36,
/// MIO Pad 35
Ior0 = 37,
/// MIO Pad 36
Ior1 = 38,
/// MIO Pad 37
Ior2 = 39,
/// MIO Pad 38
Ior3 = 40,
/// MIO Pad 39
Ior4 = 41,
/// MIO Pad 40
Ior5 = 42,
/// MIO Pad 41
Ior6 = 43,
/// MIO Pad 42
Ior7 = 44,
/// MIO Pad 43
Ior10 = 45,
/// MIO Pad 44
Ior11 = 46,
/// MIO Pad 45
Ior12 = 47,
/// MIO Pad 46
Ior13 = 48,
/// \internal Number of valid insel value
End = 49,
}
/// Pinmux MIO Output.
pub enum TopEarlgreyPinmuxMioOut {
/// MIO Pad 0
Ioa0 = 0,
/// MIO Pad 1
Ioa1 = 1,
/// MIO Pad 2
Ioa2 = 2,
/// MIO Pad 3
Ioa3 = 3,
/// MIO Pad 4
Ioa4 = 4,
/// MIO Pad 5
Ioa5 = 5,
/// MIO Pad 6
Ioa6 = 6,
/// MIO Pad 7
Ioa7 = 7,
/// MIO Pad 8
Ioa8 = 8,
/// MIO Pad 9
Iob0 = 9,
/// MIO Pad 10
Iob1 = 10,
/// MIO Pad 11
Iob2 = 11,
/// MIO Pad 12
Iob3 = 12,
/// MIO Pad 13
Iob4 = 13,
/// MIO Pad 14
Iob5 = 14,
/// MIO Pad 15
Iob6 = 15,
/// MIO Pad 16
Iob7 = 16,
/// MIO Pad 17
Iob8 = 17,
/// MIO Pad 18
Iob9 = 18,
/// MIO Pad 19
Iob10 = 19,
/// MIO Pad 20
Iob11 = 20,
/// MIO Pad 21
Iob12 = 21,
/// MIO Pad 22
Ioc0 = 22,
/// MIO Pad 23
Ioc1 = 23,
/// MIO Pad 24
Ioc2 = 24,
/// MIO Pad 25
Ioc3 = 25,
/// MIO Pad 26
Ioc4 = 26,
/// MIO Pad 27
Ioc5 = 27,
/// MIO Pad 28
Ioc6 = 28,
/// MIO Pad 29
Ioc7 = 29,
/// MIO Pad 30
Ioc8 = 30,
/// MIO Pad 31
Ioc9 = 31,
/// MIO Pad 32
Ioc10 = 32,
/// MIO Pad 33
Ioc11 = 33,
/// MIO Pad 34
Ioc12 = 34,
/// MIO Pad 35
Ior0 = 35,
/// MIO Pad 36
Ior1 = 36,
/// MIO Pad 37
Ior2 = 37,
/// MIO Pad 38
Ior3 = 38,
/// MIO Pad 39
Ior4 = 39,
/// MIO Pad 40
Ior5 = 40,
/// MIO Pad 41
Ior6 = 41,
/// MIO Pad 42
Ior7 = 42,
/// MIO Pad 43
Ior10 = 43,
/// MIO Pad 44
Ior11 = 44,
/// MIO Pad 45
Ior12 = 45,
/// MIO Pad 46
Ior13 = 46,
/// \internal Number of valid mio output
End = 47,
}
/// Pinmux Peripheral Output Selector.
#[repr(u32)]
pub enum TopEarlgreyPinmuxOutsel {
/// Tie constantly to zero
ConstantZero = 0,
/// Tie constantly to one
ConstantOne = 1,
/// Tie constantly to high-Z
ConstantHighZ = 2,
/// Peripheral Output 0
GpioGpio0 = 3,
/// Peripheral Output 1
GpioGpio1 = 4,
/// Peripheral Output 2
GpioGpio2 = 5,
/// Peripheral Output 3
GpioGpio3 = 6,
/// Peripheral Output 4
GpioGpio4 = 7,
/// Peripheral Output 5
GpioGpio5 = 8,
/// Peripheral Output 6
GpioGpio6 = 9,
/// Peripheral Output 7
GpioGpio7 = 10,
/// Peripheral Output 8
GpioGpio8 = 11,
/// Peripheral Output 9
GpioGpio9 = 12,
/// Peripheral Output 10
GpioGpio10 = 13,
/// Peripheral Output 11
GpioGpio11 = 14,
/// Peripheral Output 12
GpioGpio12 = 15,
/// Peripheral Output 13
GpioGpio13 = 16,
/// Peripheral Output 14
GpioGpio14 = 17,
/// Peripheral Output 15
GpioGpio15 = 18,
/// Peripheral Output 16
GpioGpio16 = 19,
/// Peripheral Output 17
GpioGpio17 = 20,
/// Peripheral Output 18
GpioGpio18 = 21,
/// Peripheral Output 19
GpioGpio19 = 22,
/// Peripheral Output 20
GpioGpio20 = 23,
/// Peripheral Output 21
GpioGpio21 = 24,
/// Peripheral Output 22
GpioGpio22 = 25,
/// Peripheral Output 23
GpioGpio23 = 26,
/// Peripheral Output 24
GpioGpio24 = 27,
/// Peripheral Output 25
GpioGpio25 = 28,
/// Peripheral Output 26
GpioGpio26 = 29,
/// Peripheral Output 27
GpioGpio27 = 30,
/// Peripheral Output 28
GpioGpio28 = 31,
/// Peripheral Output 29
GpioGpio29 = 32,
/// Peripheral Output 30
GpioGpio30 = 33,
/// Peripheral Output 31
GpioGpio31 = 34,
/// Peripheral Output 32
I2c0Sda = 35,
/// Peripheral Output 33
I2c0Scl = 36,
/// Peripheral Output 34
I2c1Sda = 37,
/// Peripheral Output 35
I2c1Scl = 38,
/// Peripheral Output 36
I2c2Sda = 39,
/// Peripheral Output 37
I2c2Scl = 40,
/// Peripheral Output 38
SpiHost1Sd0 = 41,
/// Peripheral Output 39
SpiHost1Sd1 = 42,
/// Peripheral Output 40
SpiHost1Sd2 = 43,
/// Peripheral Output 41
SpiHost1Sd3 = 44,
/// Peripheral Output 42
Uart0Tx = 45,
/// Peripheral Output 43
Uart1Tx = 46,
/// Peripheral Output 44
Uart2Tx = 47,
/// Peripheral Output 45
Uart3Tx = 48,
/// Peripheral Output 46
PattgenPda0Tx = 49,
/// Peripheral Output 47
PattgenPcl0Tx = 50,
/// Peripheral Output 48
PattgenPda1Tx = 51,
/// Peripheral Output 49
PattgenPcl1Tx = 52,
/// Peripheral Output 50
SpiHost1Sck = 53,
/// Peripheral Output 51
SpiHost1Csb = 54,
/// Peripheral Output 52
FlashCtrlTdo = 55,
/// Peripheral Output 53
SensorCtrlAstDebugOut0 = 56,
/// Peripheral Output 54
SensorCtrlAstDebugOut1 = 57,
/// Peripheral Output 55
SensorCtrlAstDebugOut2 = 58,
/// Peripheral Output 56
SensorCtrlAstDebugOut3 = 59,
/// Peripheral Output 57
SensorCtrlAstDebugOut4 = 60,
/// Peripheral Output 58
SensorCtrlAstDebugOut5 = 61,
/// Peripheral Output 59
SensorCtrlAstDebugOut6 = 62,
/// Peripheral Output 60
SensorCtrlAstDebugOut7 = 63,
/// Peripheral Output 61
SensorCtrlAstDebugOut8 = 64,
/// Peripheral Output 62
PwmAonPwm0 = 65,
/// Peripheral Output 63
PwmAonPwm1 = 66,
/// Peripheral Output 64
PwmAonPwm2 = 67,
/// Peripheral Output 65
PwmAonPwm3 = 68,
/// Peripheral Output 66
PwmAonPwm4 = 69,
/// Peripheral Output 67
PwmAonPwm5 = 70,
/// Peripheral Output 68
OtpCtrlTest0 = 71,
/// Peripheral Output 69
SysrstCtrlAonBatDisable = 72,
/// Peripheral Output 70
SysrstCtrlAonKey0Out = 73,
/// Peripheral Output 71
SysrstCtrlAonKey1Out = 74,
/// Peripheral Output 72
SysrstCtrlAonKey2Out = 75,
/// Peripheral Output 73
SysrstCtrlAonPwrbOut = 76,
/// Peripheral Output 74
SysrstCtrlAonZ3Wakeup = 77,
/// \internal Number of valid outsel value
End = 78,
}
/// Dedicated Pad Selects
pub enum TopEarlgreyDirectPads {
UsbdevUsbDp = 0,
UsbdevUsbDn = 1,
SpiHost0Sd0 = 2,
SpiHost0Sd1 = 3,
SpiHost0Sd2 = 4,
SpiHost0Sd3 = 5,
SpiDeviceSd0 = 6,
SpiDeviceSd1 = 7,
SpiDeviceSd2 = 8,
SpiDeviceSd3 = 9,
SysrstCtrlAonEcRstL = 10,
SysrstCtrlAonFlashWpL = 11,
SpiDeviceSck = 12,
SpiDeviceCsb = 13,
SpiHost0Sck = 14,
SpiHost0Csb = 15,
/// \internal Number of valid direct pad
End = 16,
}
/// Muxed Pad Selects
pub enum TopEarlgreyMuxedPads {
Ioa0 = 0,
Ioa1 = 1,
Ioa2 = 2,
Ioa3 = 3,
Ioa4 = 4,
Ioa5 = 5,
Ioa6 = 6,
Ioa7 = 7,
Ioa8 = 8,
Iob0 = 9,
Iob1 = 10,
Iob2 = 11,
Iob3 = 12,
Iob4 = 13,
Iob5 = 14,
Iob6 = 15,
Iob7 = 16,
Iob8 = 17,
Iob9 = 18,
Iob10 = 19,
Iob11 = 20,
Iob12 = 21,
Ioc0 = 22,
Ioc1 = 23,
Ioc2 = 24,
Ioc3 = 25,
Ioc4 = 26,
Ioc5 = 27,
Ioc6 = 28,
Ioc7 = 29,
Ioc8 = 30,
Ioc9 = 31,
Ioc10 = 32,
Ioc11 = 33,
Ioc12 = 34,
Ior0 = 35,
Ior1 = 36,
Ior2 = 37,
Ior3 = 38,
Ior4 = 39,
Ior5 = 40,
Ior6 = 41,
Ior7 = 42,
Ior10 = 43,
Ior11 = 44,
Ior12 = 45,
Ior13 = 46,
/// \internal Number of valid muxed pad
End = 47,
}
/// Power Manager Wakeup Signals
pub enum TopEarlgreyPowerManagerWakeUps {
SysrstCtrlAonWkupReq = 0,
AdcCtrlAonWkupReq = 1,
PinmuxAonPinWkupReq = 2,
PinmuxAonUsbWkupReq = 3,
AonTimerAonWkupReq = 4,
SensorCtrlWkupReq = 5,
/// \internal Number of valid pwrmgr wakeup signal
End = 6,
}
/// Reset Manager Software Controlled Resets
pub enum TopEarlgreyResetManagerSwResets {
SpiDevice = 0,
SpiHost0 = 1,
SpiHost1 = 2,
Usb = 3,
UsbAon = 4,
I2c0 = 5,
I2c1 = 6,
I2c2 = 7,
/// \internal Number of valid rstmgr software reset request
End = 8,
}
/// Power Manager Reset Request Signals
pub enum TopEarlgreyPowerManagerResetRequests {
SysrstCtrlAonRstReq = 0,
AonTimerAonAonTimerRstReq = 1,
/// \internal Number of valid pwrmgr reset_request signal
End = 2,
}
/// Clock Manager Software-Controlled ("Gated") Clocks.
///
/// The Software has full control over these clocks.
pub enum TopEarlgreyGateableClocks {
/// Clock clk_io_div4_peri in group peri
IoDiv4Peri = 0,
/// Clock clk_io_div2_peri in group peri
IoDiv2Peri = 1,
/// Clock clk_io_peri in group peri
IoPeri = 2,
/// Clock clk_usb_peri in group peri
UsbPeri = 3,
/// \internal Number of Valid Gateable Clock
End = 4,
}
/// Clock Manager Software-Hinted Clocks.
///
/// The Software has partial control over these clocks. It can ask them to stop,
/// but the clock manager is in control of whether the clock actually is stopped.
pub enum TopEarlgreyHintableClocks {
/// Clock clk_main_aes in group trans
MainAes = 0,
/// Clock clk_main_hmac in group trans
MainHmac = 1,
/// Clock clk_main_kmac in group trans
MainKmac = 2,
/// Clock clk_main_otbn in group trans
MainOtbn = 3,
/// \internal Number of Valid Hintable Clock
End = 4,
}
/// MMIO Region
///
/// MMIO region excludes any memory that is separate from the module
/// configuration space, i.e. ROM, main SRAM, and flash are excluded but
/// retention SRAM, spi_device memory, or usbdev memory are included.
pub const TOP_EARLGREY_MMIO_BASE_ADDR: usize = 0x40000000;
pub const TOP_EARLGREY_MMIO_SIZE_BYTES: usize = 0x10000000;