// THIS HEADER FILE IS AUTOMATICALLY GENERATED -- DO NOT EDIT/** * Copyright (c) 2024 Raspberry Pi Ltd. * * SPDX-License-Identifier: BSD-3-Clause *//* ... */// =============================================================================// Register block : SIO// Version : 1// Bus type : apb// Description : Single-cycle IO block// Provides core-local and inter-core hardware for the two// processors, with single-cycle access.// =============================================================================#ifndef_HARDWARE_REGS_SIO_H#define_HARDWARE_REGS_SIO_H// =============================================================================// Register : SIO_CPUID// Description : Processor core identifier// Value is 0 when read from processor core 0, and 1 when read// from processor core 1.#defineSIO_CPUID_OFFSET_u(0x00000000)#defineSIO_CPUID_BITS_u(0xffffffff)#defineSIO_CPUID_RESET"-"#defineSIO_CPUID_MSB_u(31)#defineSIO_CPUID_LSB_u(0)#defineSIO_CPUID_ACCESS"RO"// =============================================================================// Register : SIO_GPIO_IN// Description : Input value for GPIO0...31.//// In the Non-secure SIO, Secure-only GPIOs (as per ACCESSCTRL)// appear as zero.#defineSIO_GPIO_IN_OFFSET_u(0x00000004)#defineSIO_GPIO_IN_BITS_u(0xffffffff)#defineSIO_GPIO_IN_RESET_u(0x00000000)#defineSIO_GPIO_IN_MSB_u(31)#defineSIO_GPIO_IN_LSB_u(0)#defineSIO_GPIO_IN_ACCESS"RO"// =============================================================================// Register : SIO_GPIO_HI_IN// Description : Input value on GPIO32...47, QSPI IOs and USB pins//// In the Non-secure SIO, Secure-only GPIOs (as per ACCESSCTRL)// appear as zero.#defineSIO_GPIO_HI_IN_OFFSET_u(0x00000008)#defineSIO_GPIO_HI_IN_BITS_u(0xff00ffff)#defineSIO_GPIO_HI_IN_RESET_u(0x00000000)// -----------------------------------------------------------------------------// Field : SIO_GPIO_HI_IN_QSPI_SD// Description : Input value on QSPI SD0 (MOSI), SD1 (MISO), SD2 and SD3 pins#defineSIO_GPIO_HI_IN_QSPI_SD_RESET_u(0x0)#defineSIO_GPIO_HI_IN_QSPI_SD_BITS_u(0xf0000000)#defineSIO_GPIO_HI_IN_QSPI_SD_MSB_u(31)#defineSIO_GPIO_HI_IN_QSPI_SD_LSB_u(28)#defineSIO_GPIO_HI_IN_QSPI_SD_ACCESS"RO"// -----------------------------------------------------------------------------// Field : SIO_GPIO_HI_IN_QSPI_CSN// Description : Input value on QSPI CSn pin#defineSIO_GPIO_HI_IN_QSPI_CSN_RESET_u(0x0)#defineSIO_GPIO_HI_IN_QSPI_CSN_BITS_u(0x08000000)#defineSIO_GPIO_HI_IN_QSPI_CSN_MSB_u(27)#defineSIO_GPIO_HI_IN_QSPI_CSN_LSB_u(27)#defineSIO_GPIO_HI_IN_QSPI_CSN_ACCESS"RO"// -----------------------------------------------------------------------------// Field : SIO_GPIO_HI_IN_QSPI_SCK// Description : Input value on QSPI SCK pin#defineSIO_GPIO_HI_IN_QSPI_SCK_RESET_u(0x0)#defineSIO_GPIO_HI_IN_QSPI_SCK_BITS_u(0x04000000)#defineSIO_GPIO_HI_IN_QSPI_SCK_MSB_u(26)#defineSIO_GPIO_HI_IN_QSPI_SCK_LSB_u(26)#defineSIO_GPIO_HI_IN_QSPI_SCK_ACCESS"RO"// -----------------------------------------------------------------------------// Field : SIO_GPIO_HI_IN_USB_DM// Description : Input value on USB D- pin#defineSIO_GPIO_HI_IN_USB_DM_RESET_u(0x0)#defineSIO_GPIO_HI_IN_USB_DM_BITS_u(0x02000000)#defineSIO_GPIO_HI_IN_USB_DM_MSB_u(25)#defineSIO_GPIO_HI_IN_USB_DM_LSB_u(25)#defineSIO_GPIO_HI_IN_USB_DM_ACCESS"RO"// -----------------------------------------------------------------------------// Field : SIO_GPIO_HI_IN_USB_DP// Description : Input value on USB D+ pin#defineSIO_GPIO_HI_IN_USB_DP_RESET_u(0x0)#defineSIO_GPIO_HI_IN_USB_DP_BITS_u(0x01000000)#defineSIO_GPIO_HI_IN_USB_DP_MSB_u(24)#defineSIO_GPIO_HI_IN_USB_DP_LSB_u(24)#defineSIO_GPIO_HI_IN_USB_DP_ACCESS"RO"// -----------------------------------------------------------------------------// Field : SIO_GPIO_HI_IN_GPIO// Description : Input value on GPIO32...47#defineSIO_GPIO_HI_IN_GPIO_RESET_u(0x0000)#defineSIO_GPIO_HI_IN_GPIO_BITS_u(0x0000ffff)#defineSIO_GPIO_HI_IN_GPIO_MSB_u(15)#defineSIO_GPIO_HI_IN_GPIO_LSB_u(0)#defineSIO_GPIO_HI_IN_GPIO_ACCESS"RO"// =============================================================================// Register : SIO_GPIO_OUT// Description : GPIO0...31 output value// Set output level (1/0 -> high/low) for GPIO0...31. Reading back// gives the last value written, NOT the input value from the// pins.//// If core 0 and core 1 both write to GPIO_OUT simultaneously (or// to a SET/CLR/XOR alias), the result is as though the write from// core 0 took place first, and the write from core 1 was then// applied to that intermediate result.//// In the Non-secure SIO, Secure-only GPIOs (as per ACCESSCTRL)// ignore writes, and their output status reads back as zero. This// is also true for SET/CLR/XOR aliases of this register.#defineSIO_GPIO_OUT_OFFSET_u(0x00000010)#defineSIO_GPIO_OUT_BITS_u(0xffffffff)#defineSIO_GPIO_OUT_RESET_u(0x00000000)#defineSIO_GPIO_OUT_MSB_u(31)#defineSIO_GPIO_OUT_LSB_u(0)#defineSIO_GPIO_OUT_ACCESS"RW"// =============================================================================// Register : SIO_GPIO_HI_OUT// Description : Output value for GPIO32...47, QSPI IOs and USB pins.//// Write to set output level (1/0 -> high/low). Reading back gives// the last value written, NOT the input value from the pins. If// core 0 and core 1 both write to GPIO_HI_OUT simultaneously (or// to a SET/CLR/XOR alias), the result is as though the write from// core 0 took place first, and the write from core 1 was then// applied to that intermediate result.//// In the Non-secure SIO, Secure-only GPIOs (as per ACCESSCTRL)// ignore writes, and their output status reads back as zero. This// is also true for SET/CLR/XOR aliases of this register.#defineSIO_GPIO_HI_OUT_OFFSET_u(0x00000014)#defineSIO_GPIO_HI_OUT_BITS_u(0xff00ffff)#defineSIO_GPIO_HI_OUT_RESET_u(0x00000000)// -----------------------------------------------------------------------------// Field : SIO_GPIO_HI_OUT_QSPI_SD// Description : Output value for QSPI SD0 (MOSI), SD1 (MISO), SD2 and SD3 pins#defineSIO_GPIO_HI_OUT_QSPI_SD_RESET_u(0x0)#defineSIO_GPIO_HI_OUT_QSPI_SD_BITS_u(0xf0000000)#defineSIO_GPIO_HI_OUT_QSPI_SD_MSB_u(31)#defineSIO_GPIO_HI_OUT_QSPI_SD_LSB_u(28)#defineSIO_GPIO_HI_OUT_QSPI_SD_ACCESS"RW"// -----------------------------------------------------------------------------// Field : SIO_GPIO_HI_OUT_QSPI_CSN// Description : Output value for QSPI CSn pin#defineSIO_GPIO_HI_OUT_QSPI_CSN_RESET_u(0x0)#defineSIO_GPIO_HI_OUT_QSPI_CSN_BITS_u(0x08000000)#defineSIO_GPIO_HI_OUT_QSPI_CSN_MSB_u(27)#defineSIO_GPIO_HI_OUT_QSPI_CSN_LSB_u(27)#defineSIO_GPIO_HI_OUT_QSPI_CSN_ACCESS"RW"// -----------------------------------------------------------------------------// Field : SIO_GPIO_HI_OUT_QSPI_SCK// Description : Output value for QSPI SCK pin#defineSIO_GPIO_HI_OUT_QSPI_SCK_RESET_u(0x0)#defineSIO_GPIO_HI_OUT_QSPI_SCK_BITS_u(0x04000000)#defineSIO_GPIO_HI_OUT_QSPI_SCK_MSB_u(26)#defineSIO_GPIO_HI_OUT_QSPI_SCK_LSB_u(26)#defineSIO_GPIO_HI_OUT_QSPI_SCK_ACCESS"RW"// -----------------------------------------------------------------------------// Field : SIO_GPIO_HI_OUT_USB_DM// Description : Output value for USB D- pin#defineSIO_GPIO_HI_OUT_USB_DM_RESET_u(0x0)#defineSIO_GPIO_HI_OUT_USB_DM_BITS_u(0x02000000)#defineSIO_GPIO_HI_OUT_USB_DM_MSB_u(25)#defineSIO_GPIO_HI_OUT_USB_DM_LSB_u(25)#defineSIO_GPIO_HI_OUT_USB_DM_ACCESS"RW"// -----------------------------------------------------------------------------// Field : SIO_GPIO_HI_OUT_USB_DP// Description : Output value for USB D+ pin#defineSIO_GPIO_HI_OUT_USB_DP_RESET_u(0x0)#defineSIO_GPIO_HI_OUT_USB_DP_BITS_u(0x01000000)#defineSIO_GPIO_HI_OUT_USB_DP_MSB_u(24)#defineSIO_GPIO_HI_OUT_USB_DP_LSB_u(24)#defineSIO_GPIO_HI_OUT_USB_DP_ACCESS"RW"// -----------------------------------------------------------------------------// Field : SIO_GPIO_HI_OUT_GPIO// Description : Output value for GPIO32...47#defineSIO_GPIO_HI_OUT_GPIO_RESET_u(0x0000)#defineSIO_GPIO_HI_OUT_GPIO_BITS_u(0x0000ffff)#defineSIO_GPIO_HI_OUT_GPIO_MSB_u(15)#defineSIO_GPIO_HI_OUT_GPIO_LSB_u(0)#defineSIO_GPIO_HI_OUT_GPIO_ACCESS"RW"// =============================================================================// Register : SIO_GPIO_OUT_SET// Description : GPIO0...31 output value set// Perform an atomic bit-set on GPIO_OUT, i.e. `GPIO_OUT |= wdata`#defineSIO_GPIO_OUT_SET_OFFSET_u(0x00000018)#defineSIO_GPIO_OUT_SET_BITS_u(0xffffffff)#defineSIO_GPIO_OUT_SET_RESET_u(0x00000000)#defineSIO_GPIO_OUT_SET_MSB_u(31)#defineSIO_GPIO_OUT_SET_LSB_u(0)#defineSIO_GPIO_OUT_SET_ACCESS"WO"// =============================================================================// Register : SIO_GPIO_HI_OUT_SET// Description : Output value set for GPIO32..47, QSPI IOs and USB pins.// Perform an atomic bit-set on GPIO_HI_OUT, i.e. `GPIO_HI_OUT |=// wdata`#defineSIO_GPIO_HI_OUT_SET_OFFSET_u(0x0000001c)#defineSIO_GPIO_HI_OUT_SET_BITS_u(0xff00ffff)#defineSIO_GPIO_HI_OUT_SET_RESET_u(0x00000000)// -----------------------------------------------------------------------------// Field : SIO_GPIO_HI_OUT_SET_QSPI_SD#defineSIO_GPIO_HI_OUT_SET_QSPI_SD_RESET_u(0x0)#defineSIO_GPIO_HI_OUT_SET_QSPI_SD_BITS_u(0xf0000000)#defineSIO_GPIO_HI_OUT_SET_QSPI_SD_MSB_u(31)#defineSIO_GPIO_HI_OUT_SET_QSPI_SD_LSB_u(28)#defineSIO_GPIO_HI_OUT_SET_QSPI_SD_ACCESS"WO"// -----------------------------------------------------------------------------// Field : SIO_GPIO_HI_OUT_SET_QSPI_CSN#defineSIO_GPIO_HI_OUT_SET_QSPI_CSN_RESET_u(0x0)#defineSIO_GPIO_HI_OUT_SET_QSPI_CSN_BITS_u(0x08000000)#defineSIO_GPIO_HI_OUT_SET_QSPI_CSN_MSB_u(27)#defineSIO_GPIO_HI_OUT_SET_QSPI_CSN_LSB_u(27)#defineSIO_GPIO_HI_OUT_SET_QSPI_CSN_ACCESS"WO"// -----------------------------------------------------------------------------// Field : SIO_GPIO_HI_OUT_SET_QSPI_SCK#defineSIO_GPIO_HI_OUT_SET_QSPI_SCK_RESET_u(0x0)#defineSIO_GPIO_HI_OUT_SET_QSPI_SCK_BITS_u(0x04000000)#defineSIO_GPIO_HI_OUT_SET_QSPI_SCK_MSB_u(26)#defineSIO_GPIO_HI_OUT_SET_QSPI_SCK_LSB_u(26)#defineSIO_GPIO_HI_OUT_SET_QSPI_SCK_ACCESS"WO"// -----------------------------------------------------------------------------// Field : SIO_GPIO_HI_OUT_SET_USB_DM#defineSIO_GPIO_HI_OUT_SET_USB_DM_RESET_u(0x0)#defineSIO_GPIO_HI_OUT_SET_USB_DM_BITS_u(0x02000000)#defineSIO_GPIO_HI_OUT_SET_USB_DM_MSB_u(25)#defineSIO_GPIO_HI_OUT_SET_USB_DM_LSB_u(25)#defineSIO_GPIO_HI_OUT_SET_USB_DM_ACCESS"WO"// -----------------------------------------------------------------------------// Field : SIO_GPIO_HI_OUT_SET_USB_DP#defineSIO_GPIO_HI_OUT_SET_USB_DP_RESET_u(0x0)#defineSIO_GPIO_HI_OUT_SET_USB_DP_BITS_u(0x01000000)#defineSIO_GPIO_HI_OUT_SET_USB_DP_MSB_u(24)#defineSIO_GPIO_HI_OUT_SET_USB_DP_LSB_u(24)#defineSIO_GPIO_HI_OUT_SET_USB_DP_ACCESS"WO"// -----------------------------------------------------------------------------// Field : SIO_GPIO_HI_OUT_SET_GPIO#defineSIO_GPIO_HI_OUT_SET_GPIO_RESET_u(0x0000)#defineSIO_GPIO_HI_OUT_SET_GPIO_BITS_u(0x0000ffff)#defineSIO_GPIO_HI_OUT_SET_GPIO_MSB_u(15)#defineSIO_GPIO_HI_OUT_SET_GPIO_LSB_u(0)#defineSIO_GPIO_HI_OUT_SET_GPIO_ACCESS"WO"// =============================================================================// Register : SIO_GPIO_OUT_CLR// Description : GPIO0...31 output value clear// Perform an atomic bit-clear on GPIO_OUT, i.e. `GPIO_OUT &=// ~wdata`#defineSIO_GPIO_OUT_CLR_OFFSET_u(0x00000020)#defineSIO_GPIO_OUT_CLR_BITS_u(0xffffffff)#defineSIO_GPIO_OUT_CLR_RESET_u(0x00000000)#defineSIO_GPIO_OUT_CLR_MSB_u(31)#defineSIO_GPIO_OUT_CLR_LSB_u(0)#defineSIO_GPIO_OUT_CLR_ACCESS"WO"// =============================================================================// Register : SIO_GPIO_HI_OUT_CLR// Description : Output value clear for GPIO32..47, QSPI IOs and USB pins.// Perform an atomic bit-clear on GPIO_HI_OUT, i.e. `GPIO_HI_OUT// &= ~wdata`#defineSIO_GPIO_HI_OUT_CLR_OFFSET_u(0x00000024)#defineSIO_GPIO_HI_OUT_CLR_BITS_u(0xff00ffff)#defineSIO_GPIO_HI_OUT_CLR_RESET_u(0x00000000)// -----------------------------------------------------------------------------// Field : SIO_GPIO_HI_OUT_CLR_QSPI_SD#defineSIO_GPIO_HI_OUT_CLR_QSPI_SD_RESET_u(0x0)#defineSIO_GPIO_HI_OUT_CLR_QSPI_SD_BITS_u(0xf0000000)#defineSIO_GPIO_HI_OUT_CLR_QSPI_SD_MSB_u(31)#defineSIO_GPIO_HI_OUT_CLR_QSPI_SD_LSB_u(28)#defineSIO_GPIO_HI_OUT_CLR_QSPI_SD_ACCESS"WO"// -----------------------------------------------------------------------------// Field : SIO_GPIO_HI_OUT_CLR_QSPI_CSN#defineSIO_GPIO_HI_OUT_CLR_QSPI_CSN_RESET_u(0x0)#defineSIO_GPIO_HI_OUT_CLR_QSPI_CSN_BITS_u(0x08000000)#defineSIO_GPIO_HI_OUT_CLR_QSPI_CSN_MSB_u(27)#defineSIO_GPIO_HI_OUT_CLR_QSPI_CSN_LSB_u(27)#defineSIO_GPIO_HI_OUT_CLR_QSPI_CSN_ACCESS"WO"// -----------------------------------------------------------------------------// Field : SIO_GPIO_HI_OUT_CLR_QSPI_SCK#defineSIO_GPIO_HI_OUT_CLR_QSPI_SCK_RESET_u(0x0)#defineSIO_GPIO_HI_OUT_CLR_QSPI_SCK_BITS_u(0x04000000)#defineSIO_GPIO_HI_OUT_CLR_QSPI_SCK_MSB_u(26)#defineSIO_GPIO_HI_OUT_CLR_QSPI_SCK_LSB_u(26)#defineSIO_GPIO_HI_OUT_CLR_QSPI_SCK_ACCESS"WO"// -----------------------------------------------------------------------------// Field : SIO_GPIO_HI_OUT_CLR_USB_DM#defineSIO_GPIO_HI_OUT_CLR_USB_DM_RESET_u(0x0)#defineSIO_GPIO_HI_OUT_CLR_USB_DM_BITS_u(0x02000000)#defineSIO_GPIO_HI_OUT_CLR_USB_DM_MSB_u(25)#defineSIO_GPIO_HI_OUT_CLR_USB_DM_LSB_u(25)#defineSIO_GPIO_HI_OUT_CLR_USB_DM_ACCESS"WO"// -----------------------------------------------------------------------------// Field : SIO_GPIO_HI_OUT_CLR_USB_DP#defineSIO_GPIO_HI_OUT_CLR_USB_DP_RESET_u(0x0)#defineSIO_GPIO_HI_OUT_CLR_USB_DP_BITS_u(0x01000000)#defineSIO_GPIO_HI_OUT_CLR_USB_DP_MSB_u(24)#defineSIO_GPIO_HI_OUT_CLR_USB_DP_LSB_u(24)#defineSIO_GPIO_HI_OUT_CLR_USB_DP_ACCESS"WO"// -----------------------------------------------------------------------------// Field : SIO_GPIO_HI_OUT_CLR_GPIO#defineSIO_GPIO_HI_OUT_CLR_GPIO_RESET_u(0x0000)#defineSIO_GPIO_HI_OUT_CLR_GPIO_BITS_u(0x0000ffff)#defineSIO_GPIO_HI_OUT_CLR_GPIO_MSB_u(15)#defineSIO_GPIO_HI_OUT_CLR_GPIO_LSB_u(0)#defineSIO_GPIO_HI_OUT_CLR_GPIO_ACCESS"WO"// =============================================================================// Register : SIO_GPIO_OUT_XOR// Description : GPIO0...31 output value XOR// Perform an atomic bitwise XOR on GPIO_OUT, i.e. `GPIO_OUT ^=// wdata`#defineSIO_GPIO_OUT_XOR_OFFSET_u(0x00000028)#defineSIO_GPIO_OUT_XOR_BITS_u(0xffffffff)#defineSIO_GPIO_OUT_XOR_RESET_u(0x00000000)#defineSIO_GPIO_OUT_XOR_MSB_u(31)#defineSIO_GPIO_OUT_XOR_LSB_u(0)#defineSIO_GPIO_OUT_XOR_ACCESS"WO"// =============================================================================// Register : SIO_GPIO_HI_OUT_XOR// Description : Output value XOR for GPIO32..47, QSPI IOs and USB pins.// Perform an atomic bitwise XOR on GPIO_HI_OUT, i.e. `GPIO_HI_OUT// ^= wdata`#defineSIO_GPIO_HI_OUT_XOR_OFFSET_u(0x0000002c)#defineSIO_GPIO_HI_OUT_XOR_BITS_u(0xff00ffff)#defineSIO_GPIO_HI_OUT_XOR_RESET_u(0x00000000)// -----------------------------------------------------------------------------// Field : SIO_GPIO_HI_OUT_XOR_QSPI_SD#defineSIO_GPIO_HI_OUT_XOR_QSPI_SD_RESET_u(0x0)#defineSIO_GPIO_HI_OUT_XOR_QSPI_SD_BITS_u(0xf0000000)#defineSIO_GPIO_HI_OUT_XOR_QSPI_SD_MSB_u(31)#defineSIO_GPIO_HI_OUT_XOR_QSPI_SD_LSB_u(28)#defineSIO_GPIO_HI_OUT_XOR_QSPI_SD_ACCESS"WO"// -----------------------------------------------------------------------------// Field : SIO_GPIO_HI_OUT_XOR_QSPI_CSN#defineSIO_GPIO_HI_OUT_XOR_QSPI_CSN_RESET_u(0x0)#defineSIO_GPIO_HI_OUT_XOR_QSPI_CSN_BITS_u(0x08000000)#defineSIO_GPIO_HI_OUT_XOR_QSPI_CSN_MSB_u(27)#defineSIO_GPIO_HI_OUT_XOR_QSPI_CSN_LSB_u(27)#defineSIO_GPIO_HI_OUT_XOR_QSPI_CSN_ACCESS"WO"// -----------------------------------------------------------------------------// Field : SIO_GPIO_HI_OUT_XOR_QSPI_SCK#defineSIO_GPIO_HI_OUT_XOR_QSPI_SCK_RESET_u(0x0)#defineSIO_GPIO_HI_OUT_XOR_QSPI_SCK_BITS_u(0x04000000)#defineSIO_GPIO_HI_OUT_XOR_QSPI_SCK_MSB_u(26)#defineSIO_GPIO_HI_OUT_XOR_QSPI_SCK_LSB_u(26)#defineSIO_GPIO_HI_OUT_XOR_QSPI_SCK_ACCESS"WO"// -----------------------------------------------------------------------------// Field : SIO_GPIO_HI_OUT_XOR_USB_DM#defineSIO_GPIO_HI_OUT_XOR_USB_DM_RESET_u(0x0)#defineSIO_GPIO_HI_OUT_XOR_USB_DM_BITS_u(0x02000000)#defineSIO_GPIO_HI_OUT_XOR_USB_DM_MSB_u(25)#defineSIO_GPIO_HI_OUT_XOR_USB_DM_LSB_u(25)#defineSIO_GPIO_HI_OUT_XOR_USB_DM_ACCESS"WO"// -----------------------------------------------------------------------------// Field : SIO_GPIO_HI_OUT_XOR_USB_DP#defineSIO_GPIO_HI_OUT_XOR_USB_DP_RESET_u(0x0)#defineSIO_GPIO_HI_OUT_XOR_USB_DP_BITS_u(0x01000000)#defineSIO_GPIO_HI_OUT_XOR_USB_DP_MSB_u(24)#defineSIO_GPIO_HI_OUT_XOR_USB_DP_LSB_u(24)#defineSIO_GPIO_HI_OUT_XOR_USB_DP_ACCESS"WO"// -----------------------------------------------------------------------------// Field : SIO_GPIO_HI_OUT_XOR_GPIO#defineSIO_GPIO_HI_OUT_XOR_GPIO_RESET_u(0x0000)#defineSIO_GPIO_HI_OUT_XOR_GPIO_BITS_u(0x0000ffff)#defineSIO_GPIO_HI_OUT_XOR_GPIO_MSB_u(15)#defineSIO_GPIO_HI_OUT_XOR_GPIO_LSB_u(0)#defineSIO_GPIO_HI_OUT_XOR_GPIO_ACCESS"WO"// =============================================================================// Register : SIO_GPIO_OE// Description : GPIO0...31 output enable// Set output enable (1/0 -> output/input) for GPIO0...31. Reading// back gives the last value written.//// If core 0 and core 1 both write to GPIO_OE simultaneously (or// to a SET/CLR/XOR alias), the result is as though the write from// core 0 took place first, and the write from core 1 was then// applied to that intermediate result.//// In the Non-secure SIO, Secure-only GPIOs (as per ACCESSCTRL)// ignore writes, and their output status reads back as zero. This// is also true for SET/CLR/XOR aliases of this register.#defineSIO_GPIO_OE_OFFSET_u(0x00000030)#defineSIO_GPIO_OE_BITS_u(0xffffffff)#defineSIO_GPIO_OE_RESET_u(0x00000000)#defineSIO_GPIO_OE_MSB_u(31)#defineSIO_GPIO_OE_LSB_u(0)#defineSIO_GPIO_OE_ACCESS"RW"// =============================================================================// Register : SIO_GPIO_HI_OE// Description : Output enable value for GPIO32...47, QSPI IOs and USB pins.//// Write output enable (1/0 -> output/input). Reading back gives// the last value written. If core 0 and core 1 both write to// GPIO_HI_OE simultaneously (or to a SET/CLR/XOR alias), the// result is as though the write from core 0 took place first, and// the write from core 1 was then applied to that intermediate// result.//// In the Non-secure SIO, Secure-only GPIOs (as per ACCESSCTRL)// ignore writes, and their output status reads back as zero. This// is also true for SET/CLR/XOR aliases of this register.#defineSIO_GPIO_HI_OE_OFFSET_u(0x00000034)#defineSIO_GPIO_HI_OE_BITS_u(0xff00ffff)#defineSIO_GPIO_HI_OE_RESET_u(0x00000000)// -----------------------------------------------------------------------------// Field : SIO_GPIO_HI_OE_QSPI_SD// Description : Output enable value for QSPI SD0 (MOSI), SD1 (MISO), SD2 and// SD3 pins#defineSIO_GPIO_HI_OE_QSPI_SD_RESET_u(0x0)#defineSIO_GPIO_HI_OE_QSPI_SD_BITS_u(0xf0000000)#defineSIO_GPIO_HI_OE_QSPI_SD_MSB_u(31)#defineSIO_GPIO_HI_OE_QSPI_SD_LSB_u(28)#defineSIO_GPIO_HI_OE_QSPI_SD_ACCESS"RW"// -----------------------------------------------------------------------------// Field : SIO_GPIO_HI_OE_QSPI_CSN// Description : Output enable value for QSPI CSn pin#defineSIO_GPIO_HI_OE_QSPI_CSN_RESET_u(0x0)#defineSIO_GPIO_HI_OE_QSPI_CSN_BITS_u(0x08000000)#defineSIO_GPIO_HI_OE_QSPI_CSN_MSB_u(27)#defineSIO_GPIO_HI_OE_QSPI_CSN_LSB_u(27)#defineSIO_GPIO_HI_OE_QSPI_CSN_ACCESS"RW"// -----------------------------------------------------------------------------// Field : SIO_GPIO_HI_OE_QSPI_SCK// Description : Output enable value for QSPI SCK pin#defineSIO_GPIO_HI_OE_QSPI_SCK_RESET_u(0x0)#defineSIO_GPIO_HI_OE_QSPI_SCK_BITS_u(0x04000000)#defineSIO_GPIO_HI_OE_QSPI_SCK_MSB_u(26)#defineSIO_GPIO_HI_OE_QSPI_SCK_LSB_u(26)#defineSIO_GPIO_HI_OE_QSPI_SCK_ACCESS"RW"// -----------------------------------------------------------------------------// Field : SIO_GPIO_HI_OE_USB_DM// Description : Output enable value for USB D- pin#defineSIO_GPIO_HI_OE_USB_DM_RESET_u(0x0)#defineSIO_GPIO_HI_OE_USB_DM_BITS_u(0x02000000)#defineSIO_GPIO_HI_OE_USB_DM_MSB_u(25)#defineSIO_GPIO_HI_OE_USB_DM_LSB_u(25)#defineSIO_GPIO_HI_OE_USB_DM_ACCESS"RW"// -----------------------------------------------------------------------------// Field : SIO_GPIO_HI_OE_USB_DP// Description : Output enable value for USB D+ pin#defineSIO_GPIO_HI_OE_USB_DP_RESET_u(0x0)#defineSIO_GPIO_HI_OE_USB_DP_BITS_u(0x01000000)#defineSIO_GPIO_HI_OE_USB_DP_MSB_u(24)#defineSIO_GPIO_HI_OE_USB_DP_LSB_u(24)#defineSIO_GPIO_HI_OE_USB_DP_ACCESS"RW"// -----------------------------------------------------------------------------// Field : SIO_GPIO_HI_OE_GPIO// Description : Output enable value for GPIO32...47#defineSIO_GPIO_HI_OE_GPIO_RESET_u(0x0000)#defineSIO_GPIO_HI_OE_GPIO_BITS_u(0x0000ffff)#defineSIO_GPIO_HI_OE_GPIO_MSB_u(15)#defineSIO_GPIO_HI_OE_GPIO_LSB_u(0)#defineSIO_GPIO_HI_OE_GPIO_ACCESS"RW"// =============================================================================// Register : SIO_GPIO_OE_SET// Description : GPIO0...31 output enable set// Perform an atomic bit-set on GPIO_OE, i.e. `GPIO_OE |= wdata`#defineSIO_GPIO_OE_SET_OFFSET_u(0x00000038)#defineSIO_GPIO_OE_SET_BITS_u(0xffffffff)#defineSIO_GPIO_OE_SET_RESET_u(0x00000000)#defineSIO_GPIO_OE_SET_MSB_u(31)#defineSIO_GPIO_OE_SET_LSB_u(0)#defineSIO_GPIO_OE_SET_ACCESS"WO"// =============================================================================// Register : SIO_GPIO_HI_OE_SET// Description : Output enable set for GPIO32...47, QSPI IOs and USB pins.// Perform an atomic bit-set on GPIO_HI_OE, i.e. `GPIO_HI_OE |=// wdata`#defineSIO_GPIO_HI_OE_SET_OFFSET_u(0x0000003c)#defineSIO_GPIO_HI_OE_SET_BITS_u(0xff00ffff)#defineSIO_GPIO_HI_OE_SET_RESET_u(0x00000000)// -----------------------------------------------------------------------------// Field : SIO_GPIO_HI_OE_SET_QSPI_SD#defineSIO_GPIO_HI_OE_SET_QSPI_SD_RESET_u(0x0)#defineSIO_GPIO_HI_OE_SET_QSPI_SD_BITS_u(0xf0000000)#defineSIO_GPIO_HI_OE_SET_QSPI_SD_MSB_u(31)#defineSIO_GPIO_HI_OE_SET_QSPI_SD_LSB_u(28)#defineSIO_GPIO_HI_OE_SET_QSPI_SD_ACCESS"WO"// -----------------------------------------------------------------------------// Field : SIO_GPIO_HI_OE_SET_QSPI_CSN#defineSIO_GPIO_HI_OE_SET_QSPI_CSN_RESET_u(0x0)#defineSIO_GPIO_HI_OE_SET_QSPI_CSN_BITS_u(0x08000000)#defineSIO_GPIO_HI_OE_SET_QSPI_CSN_MSB_u(27)#defineSIO_GPIO_HI_OE_SET_QSPI_CSN_LSB_u(27)#defineSIO_GPIO_HI_OE_SET_QSPI_CSN_ACCESS"WO"// -----------------------------------------------------------------------------// Field : SIO_GPIO_HI_OE_SET_QSPI_SCK#defineSIO_GPIO_HI_OE_SET_QSPI_SCK_RESET_u(0x0)#defineSIO_GPIO_HI_OE_SET_QSPI_SCK_BITS_u(0x04000000)#defineSIO_GPIO_HI_OE_SET_QSPI_SCK_MSB_u(26)#defineSIO_GPIO_HI_OE_SET_QSPI_SCK_LSB_u(26)#defineSIO_GPIO_HI_OE_SET_QSPI_SCK_ACCESS"WO"// -----------------------------------------------------------------------------// Field : SIO_GPIO_HI_OE_SET_USB_DM#defineSIO_GPIO_HI_OE_SET_USB_DM_RESET_u(0x0)#defineSIO_GPIO_HI_OE_SET_USB_DM_BITS_u(0x02000000)#defineSIO_GPIO_HI_OE_SET_USB_DM_MSB_u(25)#defineSIO_GPIO_HI_OE_SET_USB_DM_LSB_u(25)#defineSIO_GPIO_HI_OE_SET_USB_DM_ACCESS"WO"// -----------------------------------------------------------------------------// Field : SIO_GPIO_HI_OE_SET_USB_DP#defineSIO_GPIO_HI_OE_SET_USB_DP_RESET_u(0x0)#defineSIO_GPIO_HI_OE_SET_USB_DP_BITS_u(0x01000000)#defineSIO_GPIO_HI_OE_SET_USB_DP_MSB_u(24)#defineSIO_GPIO_HI_OE_SET_USB_DP_LSB_u(24)#defineSIO_GPIO_HI_OE_SET_USB_DP_ACCESS"WO"// -----------------------------------------------------------------------------// Field : SIO_GPIO_HI_OE_SET_GPIO#defineSIO_GPIO_HI_OE_SET_GPIO_RESET_u(0x0000)#defineSIO_GPIO_HI_OE_SET_GPIO_BITS_u(0x0000ffff)#defineSIO_GPIO_HI_OE_SET_GPIO_MSB_u(15)#defineSIO_GPIO_HI_OE_SET_GPIO_LSB_u(0)#defineSIO_GPIO_HI_OE_SET_GPIO_ACCESS"WO"// =============================================================================// Register : SIO_GPIO_OE_CLR// Description : GPIO0...31 output enable clear// Perform an atomic bit-clear on GPIO_OE, i.e. `GPIO_OE &=// ~wdata`#defineSIO_GPIO_OE_CLR_OFFSET_u(0x00000040)#defineSIO_GPIO_OE_CLR_BITS_u(0xffffffff)#defineSIO_GPIO_OE_CLR_RESET_u(0x00000000)#defineSIO_GPIO_OE_CLR_MSB_u(31)#defineSIO_GPIO_OE_CLR_LSB_u(0)#defineSIO_GPIO_OE_CLR_ACCESS"WO"// =============================================================================// Register : SIO_GPIO_HI_OE_CLR// Description : Output enable clear for GPIO32...47, QSPI IOs and USB pins.// Perform an atomic bit-clear on GPIO_HI_OE, i.e. `GPIO_HI_OE &=// ~wdata`#defineSIO_GPIO_HI_OE_CLR_OFFSET_u(0x00000044)#defineSIO_GPIO_HI_OE_CLR_BITS_u(0xff00ffff)#defineSIO_GPIO_HI_OE_CLR_RESET_u(0x00000000)// -----------------------------------------------------------------------------// Field : SIO_GPIO_HI_OE_CLR_QSPI_SD#defineSIO_GPIO_HI_OE_CLR_QSPI_SD_RESET_u(0x0)#defineSIO_GPIO_HI_OE_CLR_QSPI_SD_BITS_u(0xf0000000)#defineSIO_GPIO_HI_OE_CLR_QSPI_SD_MSB_u(31)#defineSIO_GPIO_HI_OE_CLR_QSPI_SD_LSB_u(28)#defineSIO_GPIO_HI_OE_CLR_QSPI_SD_ACCESS"WO"// -----------------------------------------------------------------------------// Field : SIO_GPIO_HI_OE_CLR_QSPI_CSN#defineSIO_GPIO_HI_OE_CLR_QSPI_CSN_RESET_u(0x0)#defineSIO_GPIO_HI_OE_CLR_QSPI_CSN_BITS_u(0x08000000)#defineSIO_GPIO_HI_OE_CLR_QSPI_CSN_MSB_u(27)#defineSIO_GPIO_HI_OE_CLR_QSPI_CSN_LSB_u(27)#defineSIO_GPIO_HI_OE_CLR_QSPI_CSN_ACCESS"WO"// -----------------------------------------------------------------------------// Field : SIO_GPIO_HI_OE_CLR_QSPI_SCK#defineSIO_GPIO_HI_OE_CLR_QSPI_SCK_RESET_u(0x0)#defineSIO_GPIO_HI_OE_CLR_QSPI_SCK_BITS_u(0x04000000)#defineSIO_GPIO_HI_OE_CLR_QSPI_SCK_MSB_u(26)#defineSIO_GPIO_HI_OE_CLR_QSPI_SCK_LSB_u(26)#defineSIO_GPIO_HI_OE_CLR_QSPI_SCK_ACCESS"WO"// -----------------------------------------------------------------------------// Field : SIO_GPIO_HI_OE_CLR_USB_DM#defineSIO_GPIO_HI_OE_CLR_USB_DM_RESET_u(0x0)#defineSIO_GPIO_HI_OE_CLR_USB_DM_BITS_u(0x02000000)#defineSIO_GPIO_HI_OE_CLR_USB_DM_MSB_u(25)#defineSIO_GPIO_HI_OE_CLR_USB_DM_LSB_u(25)#defineSIO_GPIO_HI_OE_CLR_USB_DM_ACCESS"WO"// -----------------------------------------------------------------------------// Field : SIO_GPIO_HI_OE_CLR_USB_DP#defineSIO_GPIO_HI_OE_CLR_USB_DP_RESET_u(0x0)#defineSIO_GPIO_HI_OE_CLR_USB_DP_BITS_u(0x01000000)#defineSIO_GPIO_HI_OE_CLR_USB_DP_MSB_u(24)#defineSIO_GPIO_HI_OE_CLR_USB_DP_LSB_u(24)#defineSIO_GPIO_HI_OE_CLR_USB_DP_ACCESS"WO"// -----------------------------------------------------------------------------// Field : SIO_GPIO_HI_OE_CLR_GPIO#defineSIO_GPIO_HI_OE_CLR_GPIO_RESET_u(0x0000)#defineSIO_GPIO_HI_OE_CLR_GPIO_BITS_u(0x0000ffff)#defineSIO_GPIO_HI_OE_CLR_GPIO_MSB_u(15)#defineSIO_GPIO_HI_OE_CLR_GPIO_LSB_u(0)#defineSIO_GPIO_HI_OE_CLR_GPIO_ACCESS"WO"// =============================================================================// Register : SIO_GPIO_OE_XOR// Description : GPIO0...31 output enable XOR// Perform an atomic bitwise XOR on GPIO_OE, i.e. `GPIO_OE ^=// wdata`#defineSIO_GPIO_OE_XOR_OFFSET_u(0x00000048)#defineSIO_GPIO_OE_XOR_BITS_u(0xffffffff)#defineSIO_GPIO_OE_XOR_RESET_u(0x00000000)#defineSIO_GPIO_OE_XOR_MSB_u(31)#defineSIO_GPIO_OE_XOR_LSB_u(0)#defineSIO_GPIO_OE_XOR_ACCESS"WO"// =============================================================================// Register : SIO_GPIO_HI_OE_XOR// Description : Output enable XOR for GPIO32...47, QSPI IOs and USB pins.// Perform an atomic bitwise XOR on GPIO_HI_OE, i.e. `GPIO_HI_OE// ^= wdata`#defineSIO_GPIO_HI_OE_XOR_OFFSET_u(0x0000004c)#defineSIO_GPIO_HI_OE_XOR_BITS_u(0xff00ffff)#defineSIO_GPIO_HI_OE_XOR_RESET_u(0x00000000)// -----------------------------------------------------------------------------// Field : SIO_GPIO_HI_OE_XOR_QSPI_SD#defineSIO_GPIO_HI_OE_XOR_QSPI_SD_RESET_u(0x0)#defineSIO_GPIO_HI_OE_XOR_QSPI_SD_BITS_u(0xf0000000)#defineSIO_GPIO_HI_OE_XOR_QSPI_SD_MSB_u(31)#defineSIO_GPIO_HI_OE_XOR_QSPI_SD_LSB_u(28)#defineSIO_GPIO_HI_OE_XOR_QSPI_SD_ACCESS"WO"// -----------------------------------------------------------------------------// Field : SIO_GPIO_HI_OE_XOR_QSPI_CSN#defineSIO_GPIO_HI_OE_XOR_QSPI_CSN_RESET_u(0x0)#defineSIO_GPIO_HI_OE_XOR_QSPI_CSN_BITS_u(0x08000000)#defineSIO_GPIO_HI_OE_XOR_QSPI_CSN_MSB_u(27)#defineSIO_GPIO_HI_OE_XOR_QSPI_CSN_LSB_u(27)#defineSIO_GPIO_HI_OE_XOR_QSPI_CSN_ACCESS"WO"// -----------------------------------------------------------------------------// Field : SIO_GPIO_HI_OE_XOR_QSPI_SCK#defineSIO_GPIO_HI_OE_XOR_QSPI_SCK_RESET_u(0x0)#defineSIO_GPIO_HI_OE_XOR_QSPI_SCK_BITS_u(0x04000000)#defineSIO_GPIO_HI_OE_XOR_QSPI_SCK_MSB_u(26)#defineSIO_GPIO_HI_OE_XOR_QSPI_SCK_LSB_u(26)#defineSIO_GPIO_HI_OE_XOR_QSPI_SCK_ACCESS"WO"// -----------------------------------------------------------------------------// Field : SIO_GPIO_HI_OE_XOR_USB_DM#defineSIO_GPIO_HI_OE_XOR_USB_DM_RESET_u(0x0)#defineSIO_GPIO_HI_OE_XOR_USB_DM_BITS_u(0x02000000)#defineSIO_GPIO_HI_OE_XOR_USB_DM_MSB_u(25)#defineSIO_GPIO_HI_OE_XOR_USB_DM_LSB_u(25)#defineSIO_GPIO_HI_OE_XOR_USB_DM_ACCESS"WO"// -----------------------------------------------------------------------------// Field : SIO_GPIO_HI_OE_XOR_USB_DP#defineSIO_GPIO_HI_OE_XOR_USB_DP_RESET_u(0x0)#defineSIO_GPIO_HI_OE_XOR_USB_DP_BITS_u(0x01000000)#defineSIO_GPIO_HI_OE_XOR_USB_DP_MSB_u(24)#defineSIO_GPIO_HI_OE_XOR_USB_DP_LSB_u(24)#defineSIO_GPIO_HI_OE_XOR_USB_DP_ACCESS"WO"// -----------------------------------------------------------------------------// Field : SIO_GPIO_HI_OE_XOR_GPIO#defineSIO_GPIO_HI_OE_XOR_GPIO_RESET_u(0x0000)#defineSIO_GPIO_HI_OE_XOR_GPIO_BITS_u(0x0000ffff)#defineSIO_GPIO_HI_OE_XOR_GPIO_MSB_u(15)#defineSIO_GPIO_HI_OE_XOR_GPIO_LSB_u(0)#defineSIO_GPIO_HI_OE_XOR_GPIO_ACCESS"WO"// =============================================================================// Register : SIO_FIFO_ST// Description : Status register for inter-core FIFOs (mailboxes).// There is one FIFO in the core 0 -> core 1 direction, and one// core 1 -> core 0. Both are 32 bits wide and 8 words deep.// Core 0 can see the read side of the 1->0 FIFO (RX), and the// write side of 0->1 FIFO (TX).// Core 1 can see the read side of the 0->1 FIFO (RX), and the// write side of 1->0 FIFO (TX).// The SIO IRQ for each core is the logical OR of the VLD, WOF and// ROE fields of its FIFO_ST register.#defineSIO_FIFO_ST_OFFSET_u(0x00000050)#defineSIO_FIFO_ST_BITS_u(0x0000000f)#defineSIO_FIFO_ST_RESET_u(0x00000002)// -----------------------------------------------------------------------------// Field : SIO_FIFO_ST_ROE// Description : Sticky flag indicating the RX FIFO was read when empty. This// read was ignored by the FIFO.#defineSIO_FIFO_ST_ROE_RESET_u(0x0)#defineSIO_FIFO_ST_ROE_BITS_u(0x00000008)#defineSIO_FIFO_ST_ROE_MSB_u(3)#defineSIO_FIFO_ST_ROE_LSB_u(3)#defineSIO_FIFO_ST_ROE_ACCESS"WC"// -----------------------------------------------------------------------------// Field : SIO_FIFO_ST_WOF// Description : Sticky flag indicating the TX FIFO was written when full. This// write was ignored by the FIFO.#defineSIO_FIFO_ST_WOF_RESET_u(0x0)#defineSIO_FIFO_ST_WOF_BITS_u(0x00000004)#defineSIO_FIFO_ST_WOF_MSB_u(2)#defineSIO_FIFO_ST_WOF_LSB_u(2)#defineSIO_FIFO_ST_WOF_ACCESS"WC"// -----------------------------------------------------------------------------// Field : SIO_FIFO_ST_RDY// Description : Value is 1 if this core's TX FIFO is not full (i.e. if FIFO_WR// is ready for more data)#defineSIO_FIFO_ST_RDY_RESET_u(0x1)#defineSIO_FIFO_ST_RDY_BITS_u(0x00000002)#defineSIO_FIFO_ST_RDY_MSB_u(1)#defineSIO_FIFO_ST_RDY_LSB_u(1)#defineSIO_FIFO_ST_RDY_ACCESS"RO"// -----------------------------------------------------------------------------// Field : SIO_FIFO_ST_VLD// Description : Value is 1 if this core's RX FIFO is not empty (i.e. if FIFO_RD// is valid)#defineSIO_FIFO_ST_VLD_RESET_u(0x0)#defineSIO_FIFO_ST_VLD_BITS_u(0x00000001)#defineSIO_FIFO_ST_VLD_MSB_u(0)#defineSIO_FIFO_ST_VLD_LSB_u(0)#defineSIO_FIFO_ST_VLD_ACCESS"RO"// =============================================================================// Register : SIO_FIFO_WR// Description : Write access to this core's TX FIFO#defineSIO_FIFO_WR_OFFSET_u(0x00000054)#defineSIO_FIFO_WR_BITS_u(0xffffffff)#defineSIO_FIFO_WR_RESET_u(0x00000000)#defineSIO_FIFO_WR_MSB_u(31)#defineSIO_FIFO_WR_LSB_u(0)#defineSIO_FIFO_WR_ACCESS"WF"// =============================================================================// Register : SIO_FIFO_RD// Description : Read access to this core's RX FIFO#defineSIO_FIFO_RD_OFFSET_u(0x00000058)#defineSIO_FIFO_RD_BITS_u(0xffffffff)#defineSIO_FIFO_RD_RESET"-"#defineSIO_FIFO_RD_MSB_u(31)#defineSIO_FIFO_RD_LSB_u(0)#defineSIO_FIFO_RD_ACCESS"RF"// =============================================================================// Register : SIO_SPINLOCK_ST// Description : Spinlock state// A bitmap containing the state of all 32 spinlocks (1=locked).// Mainly intended for debugging.#defineSIO_SPINLOCK_ST_OFFSET_u(0x0000005c)#defineSIO_SPINLOCK_ST_BITS_u(0xffffffff)#defineSIO_SPINLOCK_ST_RESET_u(0x00000000)#defineSIO_SPINLOCK_ST_MSB_u(31)#defineSIO_SPINLOCK_ST_LSB_u(0)#defineSIO_SPINLOCK_ST_ACCESS"RO"// =============================================================================// Register : SIO_INTERP0_ACCUM0// Description : Read/write access to accumulator 0#defineSIO_INTERP0_ACCUM0_OFFSET_u(0x00000080)#defineSIO_INTERP0_ACCUM0_BITS_u(0xffffffff)#defineSIO_INTERP0_ACCUM0_RESET_u(0x00000000)#defineSIO_INTERP0_ACCUM0_MSB_u(31)#defineSIO_INTERP0_ACCUM0_LSB_u(0)#defineSIO_INTERP0_ACCUM0_ACCESS"RW"// =============================================================================// Register : SIO_INTERP0_ACCUM1// Description : Read/write access to accumulator 1#defineSIO_INTERP0_ACCUM1_OFFSET_u(0x00000084)#defineSIO_INTERP0_ACCUM1_BITS_u(0xffffffff)#defineSIO_INTERP0_ACCUM1_RESET_u(0x00000000)#defineSIO_INTERP0_ACCUM1_MSB_u(31)#defineSIO_INTERP0_ACCUM1_LSB_u(0)#defineSIO_INTERP0_ACCUM1_ACCESS"RW"// =============================================================================// Register : SIO_INTERP0_BASE0// Description : Read/write access to BASE0 register.#defineSIO_INTERP0_BASE0_OFFSET_u(0x00000088)#defineSIO_INTERP0_BASE0_BITS_u(0xffffffff)#defineSIO_INTERP0_BASE0_RESET_u(0x00000000)#defineSIO_INTERP0_BASE0_MSB_u(31)#defineSIO_INTERP0_BASE0_LSB_u(0)#defineSIO_INTERP0_BASE0_ACCESS"RW"// =============================================================================// Register : SIO_INTERP0_BASE1// Description : Read/write access to BASE1 register.#defineSIO_INTERP0_BASE1_OFFSET_u(0x0000008c)#defineSIO_INTERP0_BASE1_BITS_u(0xffffffff)#defineSIO_INTERP0_BASE1_RESET_u(0x00000000)#defineSIO_INTERP0_BASE1_MSB_u(31)#defineSIO_INTERP0_BASE1_LSB_u(0)#defineSIO_INTERP0_BASE1_ACCESS"RW"// =============================================================================// Register : SIO_INTERP0_BASE2// Description : Read/write access to BASE2 register.#defineSIO_INTERP0_BASE2_OFFSET_u(0x00000090)#defineSIO_INTERP0_BASE2_BITS_u(0xffffffff)#defineSIO_INTERP0_BASE2_RESET_u(0x00000000)#defineSIO_INTERP0_BASE2_MSB_u(31)#defineSIO_INTERP0_BASE2_LSB_u(0)#defineSIO_INTERP0_BASE2_ACCESS"RW"// =============================================================================// Register : SIO_INTERP0_POP_LANE0// Description : Read LANE0 result, and simultaneously write lane results to// both accumulators (POP).#defineSIO_INTERP0_POP_LANE0_OFFSET_u(0x00000094)#defineSIO_INTERP0_POP_LANE0_BITS_u(0xffffffff)#defineSIO_INTERP0_POP_LANE0_RESET_u(0x00000000)#defineSIO_INTERP0_POP_LANE0_MSB_u(31)#defineSIO_INTERP0_POP_LANE0_LSB_u(0)#defineSIO_INTERP0_POP_LANE0_ACCESS"RO"// =============================================================================// Register : SIO_INTERP0_POP_LANE1// Description : Read LANE1 result, and simultaneously write lane results to// both accumulators (POP).#defineSIO_INTERP0_POP_LANE1_OFFSET_u(0x00000098)#defineSIO_INTERP0_POP_LANE1_BITS_u(0xffffffff)#defineSIO_INTERP0_POP_LANE1_RESET_u(0x00000000)#defineSIO_INTERP0_POP_LANE1_MSB_u(31)#defineSIO_INTERP0_POP_LANE1_LSB_u(0)#defineSIO_INTERP0_POP_LANE1_ACCESS"RO"// =============================================================================// Register : SIO_INTERP0_POP_FULL// Description : Read FULL result, and simultaneously write lane results to both// accumulators (POP).#defineSIO_INTERP0_POP_FULL_OFFSET_u(0x0000009c)#defineSIO_INTERP0_POP_FULL_BITS_u(0xffffffff)#defineSIO_INTERP0_POP_FULL_RESET_u(0x00000000)#defineSIO_INTERP0_POP_FULL_MSB_u(31)#defineSIO_INTERP0_POP_FULL_LSB_u(0)#defineSIO_INTERP0_POP_FULL_ACCESS"RO"// =============================================================================// Register : SIO_INTERP0_PEEK_LANE0// Description : Read LANE0 result, without altering any internal state (PEEK).#defineSIO_INTERP0_PEEK_LANE0_OFFSET_u(0x000000a0)#defineSIO_INTERP0_PEEK_LANE0_BITS_u(0xffffffff)#defineSIO_INTERP0_PEEK_LANE0_RESET_u(0x00000000)#defineSIO_INTERP0_PEEK_LANE0_MSB_u(31)#defineSIO_INTERP0_PEEK_LANE0_LSB_u(0)#defineSIO_INTERP0_PEEK_LANE0_ACCESS"RO"// =============================================================================// Register : SIO_INTERP0_PEEK_LANE1// Description : Read LANE1 result, without altering any internal state (PEEK).#defineSIO_INTERP0_PEEK_LANE1_OFFSET_u(0x000000a4)#defineSIO_INTERP0_PEEK_LANE1_BITS_u(0xffffffff)#defineSIO_INTERP0_PEEK_LANE1_RESET_u(0x00000000)#defineSIO_INTERP0_PEEK_LANE1_MSB_u(31)#defineSIO_INTERP0_PEEK_LANE1_LSB_u(0)#defineSIO_INTERP0_PEEK_LANE1_ACCESS"RO"// =============================================================================// Register : SIO_INTERP0_PEEK_FULL// Description : Read FULL result, without altering any internal state (PEEK).#defineSIO_INTERP0_PEEK_FULL_OFFSET_u(0x000000a8)#defineSIO_INTERP0_PEEK_FULL_BITS_u(0xffffffff)#defineSIO_INTERP0_PEEK_FULL_RESET_u(0x00000000)#defineSIO_INTERP0_PEEK_FULL_MSB_u(31)#defineSIO_INTERP0_PEEK_FULL_LSB_u(0)#defineSIO_INTERP0_PEEK_FULL_ACCESS"RO"// =============================================================================// Register : SIO_INTERP0_CTRL_LANE0// Description : Control register for lane 0#defineSIO_INTERP0_CTRL_LANE0_OFFSET_u(0x000000ac)#defineSIO_INTERP0_CTRL_LANE0_BITS_u(0x03bfffff)#defineSIO_INTERP0_CTRL_LANE0_RESET_u(0x00000000)// -----------------------------------------------------------------------------// Field : SIO_INTERP0_CTRL_LANE0_OVERF// Description : Set if either OVERF0 or OVERF1 is set.#defineSIO_INTERP0_CTRL_LANE0_OVERF_RESET_u(0x0)#defineSIO_INTERP0_CTRL_LANE0_OVERF_BITS_u(0x02000000)#defineSIO_INTERP0_CTRL_LANE0_OVERF_MSB_u(25)#defineSIO_INTERP0_CTRL_LANE0_OVERF_LSB_u(25)#defineSIO_INTERP0_CTRL_LANE0_OVERF_ACCESS"RO"// -----------------------------------------------------------------------------// Field : SIO_INTERP0_CTRL_LANE0_OVERF1// Description : Indicates if any masked-off MSBs in ACCUM1 are set.#defineSIO_INTERP0_CTRL_LANE0_OVERF1_RESET_u(0x0)#defineSIO_INTERP0_CTRL_LANE0_OVERF1_BITS_u(0x01000000)#defineSIO_INTERP0_CTRL_LANE0_OVERF1_MSB_u(24)#defineSIO_INTERP0_CTRL_LANE0_OVERF1_LSB_u(24)#defineSIO_INTERP0_CTRL_LANE0_OVERF1_ACCESS"RO"// -----------------------------------------------------------------------------// Field : SIO_INTERP0_CTRL_LANE0_OVERF0// Description : Indicates if any masked-off MSBs in ACCUM0 are set.#defineSIO_INTERP0_CTRL_LANE0_OVERF0_RESET_u(0x0)#defineSIO_INTERP0_CTRL_LANE0_OVERF0_BITS_u(0x00800000)#defineSIO_INTERP0_CTRL_LANE0_OVERF0_MSB_u(23)#defineSIO_INTERP0_CTRL_LANE0_OVERF0_LSB_u(23)#defineSIO_INTERP0_CTRL_LANE0_OVERF0_ACCESS"RO"// -----------------------------------------------------------------------------// Field : SIO_INTERP0_CTRL_LANE0_BLEND// Description : Only present on INTERP0 on each core. If BLEND mode is enabled:// - LANE1 result is a linear interpolation between BASE0 and// BASE1, controlled// by the 8 LSBs of lane 1 shift and mask value (a fractional// number between// 0 and 255/256ths)// - LANE0 result does not have BASE0 added (yields only the 8// LSBs of lane 1 shift+mask value)// - FULL result does not have lane 1 shift+mask value added// (BASE2 + lane 0 shift+mask)// LANE1 SIGNED flag controls whether the interpolation is signed// or unsigned.#defineSIO_INTERP0_CTRL_LANE0_BLEND_RESET_u(0x0)#defineSIO_INTERP0_CTRL_LANE0_BLEND_BITS_u(0x00200000)#defineSIO_INTERP0_CTRL_LANE0_BLEND_MSB_u(21)#defineSIO_INTERP0_CTRL_LANE0_BLEND_LSB_u(21)#defineSIO_INTERP0_CTRL_LANE0_BLEND_ACCESS"RW"// -----------------------------------------------------------------------------// Field : SIO_INTERP0_CTRL_LANE0_FORCE_MSB// Description : ORed into bits 29:28 of the lane result presented to the// processor on the bus.// No effect on the internal 32-bit datapath. Handy for using a// lane to generate sequence// of pointers into flash or SRAM.#defineSIO_INTERP0_CTRL_LANE0_FORCE_MSB_RESET_u(0x0)#defineSIO_INTERP0_CTRL_LANE0_FORCE_MSB_BITS_u(0x00180000)#defineSIO_INTERP0_CTRL_LANE0_FORCE_MSB_MSB_u(20)#defineSIO_INTERP0_CTRL_LANE0_FORCE_MSB_LSB_u(19)#defineSIO_INTERP0_CTRL_LANE0_FORCE_MSB_ACCESS"RW"// -----------------------------------------------------------------------------// Field : SIO_INTERP0_CTRL_LANE0_ADD_RAW// Description : If 1, mask + shift is bypassed for LANE0 result. This does not// affect FULL result.#defineSIO_INTERP0_CTRL_LANE0_ADD_RAW_RESET_u(0x0)#defineSIO_INTERP0_CTRL_LANE0_ADD_RAW_BITS_u(0x00040000)#defineSIO_INTERP0_CTRL_LANE0_ADD_RAW_MSB_u(18)#defineSIO_INTERP0_CTRL_LANE0_ADD_RAW_LSB_u(18)#defineSIO_INTERP0_CTRL_LANE0_ADD_RAW_ACCESS"RW"// -----------------------------------------------------------------------------// Field : SIO_INTERP0_CTRL_LANE0_CROSS_RESULT// Description : If 1, feed the opposite lane's result into this lane's// accumulator on POP.#defineSIO_INTERP0_CTRL_LANE0_CROSS_RESULT_RESET_u(0x0)#defineSIO_INTERP0_CTRL_LANE0_CROSS_RESULT_BITS_u(0x00020000)#defineSIO_INTERP0_CTRL_LANE0_CROSS_RESULT_MSB_u(17)#defineSIO_INTERP0_CTRL_LANE0_CROSS_RESULT_LSB_u(17)#defineSIO_INTERP0_CTRL_LANE0_CROSS_RESULT_ACCESS"RW"// -----------------------------------------------------------------------------// Field : SIO_INTERP0_CTRL_LANE0_CROSS_INPUT// Description : If 1, feed the opposite lane's accumulator into this lane's// shift + mask hardware.// Takes effect even if ADD_RAW is set (the CROSS_INPUT mux is// before the shift+mask bypass)#defineSIO_INTERP0_CTRL_LANE0_CROSS_INPUT_RESET_u(0x0)#defineSIO_INTERP0_CTRL_LANE0_CROSS_INPUT_BITS_u(0x00010000)#defineSIO_INTERP0_CTRL_LANE0_CROSS_INPUT_MSB_u(16)#defineSIO_INTERP0_CTRL_LANE0_CROSS_INPUT_LSB_u(16)#defineSIO_INTERP0_CTRL_LANE0_CROSS_INPUT_ACCESS"RW"// -----------------------------------------------------------------------------// Field : SIO_INTERP0_CTRL_LANE0_SIGNED// Description : If SIGNED is set, the shifted and masked accumulator value is// sign-extended to 32 bits// before adding to BASE0, and LANE0 PEEK/POP appear extended to// 32 bits when read by processor.#defineSIO_INTERP0_CTRL_LANE0_SIGNED_RESET_u(0x0)#defineSIO_INTERP0_CTRL_LANE0_SIGNED_BITS_u(0x00008000)#defineSIO_INTERP0_CTRL_LANE0_SIGNED_MSB_u(15)#defineSIO_INTERP0_CTRL_LANE0_SIGNED_LSB_u(15)#defineSIO_INTERP0_CTRL_LANE0_SIGNED_ACCESS"RW"// -----------------------------------------------------------------------------// Field : SIO_INTERP0_CTRL_LANE0_MASK_MSB// Description : The most-significant bit allowed to pass by the mask// (inclusive)// Setting MSB < LSB may cause chip to turn inside-out#defineSIO_INTERP0_CTRL_LANE0_MASK_MSB_RESET_u(0x00)#defineSIO_INTERP0_CTRL_LANE0_MASK_MSB_BITS_u(0x00007c00)#defineSIO_INTERP0_CTRL_LANE0_MASK_MSB_MSB_u(14)#defineSIO_INTERP0_CTRL_LANE0_MASK_MSB_LSB_u(10)#defineSIO_INTERP0_CTRL_LANE0_MASK_MSB_ACCESS"RW"// -----------------------------------------------------------------------------// Field : SIO_INTERP0_CTRL_LANE0_MASK_LSB// Description : The least-significant bit allowed to pass by the mask// (inclusive)#defineSIO_INTERP0_CTRL_LANE0_MASK_LSB_RESET_u(0x00)#defineSIO_INTERP0_CTRL_LANE0_MASK_LSB_BITS_u(0x000003e0)#defineSIO_INTERP0_CTRL_LANE0_MASK_LSB_MSB_u(9)#defineSIO_INTERP0_CTRL_LANE0_MASK_LSB_LSB_u(5)#defineSIO_INTERP0_CTRL_LANE0_MASK_LSB_ACCESS"RW"// -----------------------------------------------------------------------------// Field : SIO_INTERP0_CTRL_LANE0_SHIFT// Description : Right-rotate applied to accumulator before masking. By// appropriately configuring the masks, left and right shifts can// be synthesised.#defineSIO_INTERP0_CTRL_LANE0_SHIFT_RESET_u(0x00)#defineSIO_INTERP0_CTRL_LANE0_SHIFT_BITS_u(0x0000001f)#defineSIO_INTERP0_CTRL_LANE0_SHIFT_MSB_u(4)#defineSIO_INTERP0_CTRL_LANE0_SHIFT_LSB_u(0)#defineSIO_INTERP0_CTRL_LANE0_SHIFT_ACCESS"RW"// =============================================================================// Register : SIO_INTERP0_CTRL_LANE1// Description : Control register for lane 1#defineSIO_INTERP0_CTRL_LANE1_OFFSET_u(0x000000b0)#defineSIO_INTERP0_CTRL_LANE1_BITS_u(0x001fffff)#defineSIO_INTERP0_CTRL_LANE1_RESET_u(0x00000000)// -----------------------------------------------------------------------------// Field : SIO_INTERP0_CTRL_LANE1_FORCE_MSB// Description : ORed into bits 29:28 of the lane result presented to the// processor on the bus.// No effect on the internal 32-bit datapath. Handy for using a// lane to generate sequence// of pointers into flash or SRAM.#defineSIO_INTERP0_CTRL_LANE1_FORCE_MSB_RESET_u(0x0)#defineSIO_INTERP0_CTRL_LANE1_FORCE_MSB_BITS_u(0x00180000)#defineSIO_INTERP0_CTRL_LANE1_FORCE_MSB_MSB_u(20)#defineSIO_INTERP0_CTRL_LANE1_FORCE_MSB_LSB_u(19)#defineSIO_INTERP0_CTRL_LANE1_FORCE_MSB_ACCESS"RW"// -----------------------------------------------------------------------------// Field : SIO_INTERP0_CTRL_LANE1_ADD_RAW// Description : If 1, mask + shift is bypassed for LANE1 result. This does not// affect FULL result.#defineSIO_INTERP0_CTRL_LANE1_ADD_RAW_RESET_u(0x0)#defineSIO_INTERP0_CTRL_LANE1_ADD_RAW_BITS_u(0x00040000)#defineSIO_INTERP0_CTRL_LANE1_ADD_RAW_MSB_u(18)#defineSIO_INTERP0_CTRL_LANE1_ADD_RAW_LSB_u(18)#defineSIO_INTERP0_CTRL_LANE1_ADD_RAW_ACCESS"RW"// -----------------------------------------------------------------------------// Field : SIO_INTERP0_CTRL_LANE1_CROSS_RESULT// Description : If 1, feed the opposite lane's result into this lane's// accumulator on POP.#defineSIO_INTERP0_CTRL_LANE1_CROSS_RESULT_RESET_u(0x0)#defineSIO_INTERP0_CTRL_LANE1_CROSS_RESULT_BITS_u(0x00020000)#defineSIO_INTERP0_CTRL_LANE1_CROSS_RESULT_MSB_u(17)#defineSIO_INTERP0_CTRL_LANE1_CROSS_RESULT_LSB_u(17)#defineSIO_INTERP0_CTRL_LANE1_CROSS_RESULT_ACCESS"RW"// -----------------------------------------------------------------------------// Field : SIO_INTERP0_CTRL_LANE1_CROSS_INPUT// Description : If 1, feed the opposite lane's accumulator into this lane's// shift + mask hardware.// Takes effect even if ADD_RAW is set (the CROSS_INPUT mux is// before the shift+mask bypass)#defineSIO_INTERP0_CTRL_LANE1_CROSS_INPUT_RESET_u(0x0)#defineSIO_INTERP0_CTRL_LANE1_CROSS_INPUT_BITS_u(0x00010000)#defineSIO_INTERP0_CTRL_LANE1_CROSS_INPUT_MSB_u(16)#defineSIO_INTERP0_CTRL_LANE1_CROSS_INPUT_LSB_u(16)#defineSIO_INTERP0_CTRL_LANE1_CROSS_INPUT_ACCESS"RW"// -----------------------------------------------------------------------------// Field : SIO_INTERP0_CTRL_LANE1_SIGNED// Description : If SIGNED is set, the shifted and masked accumulator value is// sign-extended to 32 bits// before adding to BASE1, and LANE1 PEEK/POP appear extended to// 32 bits when read by processor.#defineSIO_INTERP0_CTRL_LANE1_SIGNED_RESET_u(0x0)#defineSIO_INTERP0_CTRL_LANE1_SIGNED_BITS_u(0x00008000)#defineSIO_INTERP0_CTRL_LANE1_SIGNED_MSB_u(15)#defineSIO_INTERP0_CTRL_LANE1_SIGNED_LSB_u(15)#defineSIO_INTERP0_CTRL_LANE1_SIGNED_ACCESS"RW"// -----------------------------------------------------------------------------// Field : SIO_INTERP0_CTRL_LANE1_MASK_MSB// Description : The most-significant bit allowed to pass by the mask// (inclusive)// Setting MSB < LSB may cause chip to turn inside-out#defineSIO_INTERP0_CTRL_LANE1_MASK_MSB_RESET_u(0x00)#defineSIO_INTERP0_CTRL_LANE1_MASK_MSB_BITS_u(0x00007c00)#defineSIO_INTERP0_CTRL_LANE1_MASK_MSB_MSB_u(14)#defineSIO_INTERP0_CTRL_LANE1_MASK_MSB_LSB_u(10)#defineSIO_INTERP0_CTRL_LANE1_MASK_MSB_ACCESS"RW"// -----------------------------------------------------------------------------// Field : SIO_INTERP0_CTRL_LANE1_MASK_LSB// Description : The least-significant bit allowed to pass by the mask// (inclusive)#defineSIO_INTERP0_CTRL_LANE1_MASK_LSB_RESET_u(0x00)#defineSIO_INTERP0_CTRL_LANE1_MASK_LSB_BITS_u(0x000003e0)#defineSIO_INTERP0_CTRL_LANE1_MASK_LSB_MSB_u(9)#defineSIO_INTERP0_CTRL_LANE1_MASK_LSB_LSB_u(5)#defineSIO_INTERP0_CTRL_LANE1_MASK_LSB_ACCESS"RW"// -----------------------------------------------------------------------------// Field : SIO_INTERP0_CTRL_LANE1_SHIFT// Description : Right-rotate applied to accumulator before masking. By// appropriately configuring the masks, left and right shifts can// be synthesised.#defineSIO_INTERP0_CTRL_LANE1_SHIFT_RESET_u(0x00)#defineSIO_INTERP0_CTRL_LANE1_SHIFT_BITS_u(0x0000001f)#defineSIO_INTERP0_CTRL_LANE1_SHIFT_MSB_u(4)#defineSIO_INTERP0_CTRL_LANE1_SHIFT_LSB_u(0)#defineSIO_INTERP0_CTRL_LANE1_SHIFT_ACCESS"RW"// =============================================================================// Register : SIO_INTERP0_ACCUM0_ADD// Description : Values written here are atomically added to ACCUM0// Reading yields lane 0's raw shift and mask value (BASE0 not// added).#defineSIO_INTERP0_ACCUM0_ADD_OFFSET_u(0x000000b4)#defineSIO_INTERP0_ACCUM0_ADD_BITS_u(0x00ffffff)#defineSIO_INTERP0_ACCUM0_ADD_RESET_u(0x00000000)#defineSIO_INTERP0_ACCUM0_ADD_MSB_u(23)#defineSIO_INTERP0_ACCUM0_ADD_LSB_u(0)#defineSIO_INTERP0_ACCUM0_ADD_ACCESS"RW"// =============================================================================// Register : SIO_INTERP0_ACCUM1_ADD// Description : Values written here are atomically added to ACCUM1// Reading yields lane 1's raw shift and mask value (BASE1 not// added).#defineSIO_INTERP0_ACCUM1_ADD_OFFSET_u(0x000000b8)#defineSIO_INTERP0_ACCUM1_ADD_BITS_u(0x00ffffff)#defineSIO_INTERP0_ACCUM1_ADD_RESET_u(0x00000000)#defineSIO_INTERP0_ACCUM1_ADD_MSB_u(23)#defineSIO_INTERP0_ACCUM1_ADD_LSB_u(0)#defineSIO_INTERP0_ACCUM1_ADD_ACCESS"RW"// =============================================================================// Register : SIO_INTERP0_BASE_1AND0// Description : On write, the lower 16 bits go to BASE0, upper bits to BASE1// simultaneously.// Each half is sign-extended to 32 bits if that lane's SIGNED// flag is set.#defineSIO_INTERP0_BASE_1AND0_OFFSET_u(0x000000bc)#defineSIO_INTERP0_BASE_1AND0_BITS_u(0xffffffff)#defineSIO_INTERP0_BASE_1AND0_RESET_u(0x00000000)#defineSIO_INTERP0_BASE_1AND0_MSB_u(31)#defineSIO_INTERP0_BASE_1AND0_LSB_u(0)#defineSIO_INTERP0_BASE_1AND0_ACCESS"WO"// =============================================================================// Register : SIO_INTERP1_ACCUM0// Description : Read/write access to accumulator 0#defineSIO_INTERP1_ACCUM0_OFFSET_u(0x000000c0)#defineSIO_INTERP1_ACCUM0_BITS_u(0xffffffff)#defineSIO_INTERP1_ACCUM0_RESET_u(0x00000000)#defineSIO_INTERP1_ACCUM0_MSB_u(31)#defineSIO_INTERP1_ACCUM0_LSB_u(0)#defineSIO_INTERP1_ACCUM0_ACCESS"RW"// =============================================================================// Register : SIO_INTERP1_ACCUM1// Description : Read/write access to accumulator 1#defineSIO_INTERP1_ACCUM1_OFFSET_u(0x000000c4)#defineSIO_INTERP1_ACCUM1_BITS_u(0xffffffff)#defineSIO_INTERP1_ACCUM1_RESET_u(0x00000000)#defineSIO_INTERP1_ACCUM1_MSB_u(31)#defineSIO_INTERP1_ACCUM1_LSB_u(0)#defineSIO_INTERP1_ACCUM1_ACCESS"RW"// =============================================================================// Register : SIO_INTERP1_BASE0// Description : Read/write access to BASE0 register.#defineSIO_INTERP1_BASE0_OFFSET_u(0x000000c8)#defineSIO_INTERP1_BASE0_BITS_u(0xffffffff)#defineSIO_INTERP1_BASE0_RESET_u(0x00000000)#defineSIO_INTERP1_BASE0_MSB_u(31)#defineSIO_INTERP1_BASE0_LSB_u(0)#defineSIO_INTERP1_BASE0_ACCESS"RW"// =============================================================================// Register : SIO_INTERP1_BASE1// Description : Read/write access to BASE1 register.#defineSIO_INTERP1_BASE1_OFFSET_u(0x000000cc)#defineSIO_INTERP1_BASE1_BITS_u(0xffffffff)#defineSIO_INTERP1_BASE1_RESET_u(0x00000000)#defineSIO_INTERP1_BASE1_MSB_u(31)#defineSIO_INTERP1_BASE1_LSB_u(0)#defineSIO_INTERP1_BASE1_ACCESS"RW"// =============================================================================// Register : SIO_INTERP1_BASE2// Description : Read/write access to BASE2 register.#defineSIO_INTERP1_BASE2_OFFSET_u(0x000000d0)#defineSIO_INTERP1_BASE2_BITS_u(0xffffffff)#defineSIO_INTERP1_BASE2_RESET_u(0x00000000)#defineSIO_INTERP1_BASE2_MSB_u(31)#defineSIO_INTERP1_BASE2_LSB_u(0)#defineSIO_INTERP1_BASE2_ACCESS"RW"// =============================================================================// Register : SIO_INTERP1_POP_LANE0// Description : Read LANE0 result, and simultaneously write lane results to// both accumulators (POP).#defineSIO_INTERP1_POP_LANE0_OFFSET_u(0x000000d4)#defineSIO_INTERP1_POP_LANE0_BITS_u(0xffffffff)#defineSIO_INTERP1_POP_LANE0_RESET_u(0x00000000)#defineSIO_INTERP1_POP_LANE0_MSB_u(31)#defineSIO_INTERP1_POP_LANE0_LSB_u(0)#defineSIO_INTERP1_POP_LANE0_ACCESS"RO"// =============================================================================// Register : SIO_INTERP1_POP_LANE1// Description : Read LANE1 result, and simultaneously write lane results to// both accumulators (POP).#defineSIO_INTERP1_POP_LANE1_OFFSET_u(0x000000d8)#defineSIO_INTERP1_POP_LANE1_BITS_u(0xffffffff)#defineSIO_INTERP1_POP_LANE1_RESET_u(0x00000000)#defineSIO_INTERP1_POP_LANE1_MSB_u(31)#defineSIO_INTERP1_POP_LANE1_LSB_u(0)#defineSIO_INTERP1_POP_LANE1_ACCESS"RO"// =============================================================================// Register : SIO_INTERP1_POP_FULL// Description : Read FULL result, and simultaneously write lane results to both// accumulators (POP).#defineSIO_INTERP1_POP_FULL_OFFSET_u(0x000000dc)#defineSIO_INTERP1_POP_FULL_BITS_u(0xffffffff)#defineSIO_INTERP1_POP_FULL_RESET_u(0x00000000)#defineSIO_INTERP1_POP_FULL_MSB_u(31)#defineSIO_INTERP1_POP_FULL_LSB_u(0)#defineSIO_INTERP1_POP_FULL_ACCESS"RO"// =============================================================================// Register : SIO_INTERP1_PEEK_LANE0// Description : Read LANE0 result, without altering any internal state (PEEK).#defineSIO_INTERP1_PEEK_LANE0_OFFSET_u(0x000000e0)#defineSIO_INTERP1_PEEK_LANE0_BITS_u(0xffffffff)#defineSIO_INTERP1_PEEK_LANE0_RESET_u(0x00000000)#defineSIO_INTERP1_PEEK_LANE0_MSB_u(31)#defineSIO_INTERP1_PEEK_LANE0_LSB_u(0)#defineSIO_INTERP1_PEEK_LANE0_ACCESS"RO"// =============================================================================// Register : SIO_INTERP1_PEEK_LANE1// Description : Read LANE1 result, without altering any internal state (PEEK).#defineSIO_INTERP1_PEEK_LANE1_OFFSET_u(0x000000e4)#defineSIO_INTERP1_PEEK_LANE1_BITS_u(0xffffffff)#defineSIO_INTERP1_PEEK_LANE1_RESET_u(0x00000000)#defineSIO_INTERP1_PEEK_LANE1_MSB_u(31)#defineSIO_INTERP1_PEEK_LANE1_LSB_u(0)#defineSIO_INTERP1_PEEK_LANE1_ACCESS"RO"// =============================================================================// Register : SIO_INTERP1_PEEK_FULL// Description : Read FULL result, without altering any internal state (PEEK).#defineSIO_INTERP1_PEEK_FULL_OFFSET_u(0x000000e8)#defineSIO_INTERP1_PEEK_FULL_BITS_u(0xffffffff)#defineSIO_INTERP1_PEEK_FULL_RESET_u(0x00000000)#defineSIO_INTERP1_PEEK_FULL_MSB_u(31)#defineSIO_INTERP1_PEEK_FULL_LSB_u(0)#defineSIO_INTERP1_PEEK_FULL_ACCESS"RO"// =============================================================================// Register : SIO_INTERP1_CTRL_LANE0// Description : Control register for lane 0#defineSIO_INTERP1_CTRL_LANE0_OFFSET_u(0x000000ec)#defineSIO_INTERP1_CTRL_LANE0_BITS_u(0x03dfffff)#defineSIO_INTERP1_CTRL_LANE0_RESET_u(0x00000000)// -----------------------------------------------------------------------------// Field : SIO_INTERP1_CTRL_LANE0_OVERF// Description : Set if either OVERF0 or OVERF1 is set.#defineSIO_INTERP1_CTRL_LANE0_OVERF_RESET_u(0x0)#defineSIO_INTERP1_CTRL_LANE0_OVERF_BITS_u(0x02000000)#defineSIO_INTERP1_CTRL_LANE0_OVERF_MSB_u(25)#defineSIO_INTERP1_CTRL_LANE0_OVERF_LSB_u(25)#defineSIO_INTERP1_CTRL_LANE0_OVERF_ACCESS"RO"// -----------------------------------------------------------------------------// Field : SIO_INTERP1_CTRL_LANE0_OVERF1// Description : Indicates if any masked-off MSBs in ACCUM1 are set.#defineSIO_INTERP1_CTRL_LANE0_OVERF1_RESET_u(0x0)#defineSIO_INTERP1_CTRL_LANE0_OVERF1_BITS_u(0x01000000)#defineSIO_INTERP1_CTRL_LANE0_OVERF1_MSB_u(24)#defineSIO_INTERP1_CTRL_LANE0_OVERF1_LSB_u(24)#defineSIO_INTERP1_CTRL_LANE0_OVERF1_ACCESS"RO"// -----------------------------------------------------------------------------// Field : SIO_INTERP1_CTRL_LANE0_OVERF0// Description : Indicates if any masked-off MSBs in ACCUM0 are set.#defineSIO_INTERP1_CTRL_LANE0_OVERF0_RESET_u(0x0)#defineSIO_INTERP1_CTRL_LANE0_OVERF0_BITS_u(0x00800000)#defineSIO_INTERP1_CTRL_LANE0_OVERF0_MSB_u(23)#defineSIO_INTERP1_CTRL_LANE0_OVERF0_LSB_u(23)#defineSIO_INTERP1_CTRL_LANE0_OVERF0_ACCESS"RO"// -----------------------------------------------------------------------------// Field : SIO_INTERP1_CTRL_LANE0_CLAMP// Description : Only present on INTERP1 on each core. If CLAMP mode is enabled:// - LANE0 result is shifted and masked ACCUM0, clamped by a lower// bound of// BASE0 and an upper bound of BASE1.// - Signedness of these comparisons is determined by// LANE0_CTRL_SIGNED#defineSIO_INTERP1_CTRL_LANE0_CLAMP_RESET_u(0x0)#defineSIO_INTERP1_CTRL_LANE0_CLAMP_BITS_u(0x00400000)#defineSIO_INTERP1_CTRL_LANE0_CLAMP_MSB_u(22)#defineSIO_INTERP1_CTRL_LANE0_CLAMP_LSB_u(22)#defineSIO_INTERP1_CTRL_LANE0_CLAMP_ACCESS"RW"// -----------------------------------------------------------------------------// Field : SIO_INTERP1_CTRL_LANE0_FORCE_MSB// Description : ORed into bits 29:28 of the lane result presented to the// processor on the bus.// No effect on the internal 32-bit datapath. Handy for using a// lane to generate sequence// of pointers into flash or SRAM.#defineSIO_INTERP1_CTRL_LANE0_FORCE_MSB_RESET_u(0x0)#defineSIO_INTERP1_CTRL_LANE0_FORCE_MSB_BITS_u(0x00180000)#defineSIO_INTERP1_CTRL_LANE0_FORCE_MSB_MSB_u(20)#defineSIO_INTERP1_CTRL_LANE0_FORCE_MSB_LSB_u(19)#defineSIO_INTERP1_CTRL_LANE0_FORCE_MSB_ACCESS"RW"// -----------------------------------------------------------------------------// Field : SIO_INTERP1_CTRL_LANE0_ADD_RAW// Description : If 1, mask + shift is bypassed for LANE0 result. This does not// affect FULL result.#defineSIO_INTERP1_CTRL_LANE0_ADD_RAW_RESET_u(0x0)#defineSIO_INTERP1_CTRL_LANE0_ADD_RAW_BITS_u(0x00040000)#defineSIO_INTERP1_CTRL_LANE0_ADD_RAW_MSB_u(18)#defineSIO_INTERP1_CTRL_LANE0_ADD_RAW_LSB_u(18)#defineSIO_INTERP1_CTRL_LANE0_ADD_RAW_ACCESS"RW"// -----------------------------------------------------------------------------// Field : SIO_INTERP1_CTRL_LANE0_CROSS_RESULT// Description : If 1, feed the opposite lane's result into this lane's// accumulator on POP.#defineSIO_INTERP1_CTRL_LANE0_CROSS_RESULT_RESET_u(0x0)#defineSIO_INTERP1_CTRL_LANE0_CROSS_RESULT_BITS_u(0x00020000)#defineSIO_INTERP1_CTRL_LANE0_CROSS_RESULT_MSB_u(17)#defineSIO_INTERP1_CTRL_LANE0_CROSS_RESULT_LSB_u(17)#defineSIO_INTERP1_CTRL_LANE0_CROSS_RESULT_ACCESS"RW"// -----------------------------------------------------------------------------// Field : SIO_INTERP1_CTRL_LANE0_CROSS_INPUT// Description : If 1, feed the opposite lane's accumulator into this lane's// shift + mask hardware.// Takes effect even if ADD_RAW is set (the CROSS_INPUT mux is// before the shift+mask bypass)#defineSIO_INTERP1_CTRL_LANE0_CROSS_INPUT_RESET_u(0x0)#defineSIO_INTERP1_CTRL_LANE0_CROSS_INPUT_BITS_u(0x00010000)#defineSIO_INTERP1_CTRL_LANE0_CROSS_INPUT_MSB_u(16)#defineSIO_INTERP1_CTRL_LANE0_CROSS_INPUT_LSB_u(16)#defineSIO_INTERP1_CTRL_LANE0_CROSS_INPUT_ACCESS"RW"// -----------------------------------------------------------------------------// Field : SIO_INTERP1_CTRL_LANE0_SIGNED// Description : If SIGNED is set, the shifted and masked accumulator value is// sign-extended to 32 bits// before adding to BASE0, and LANE0 PEEK/POP appear extended to// 32 bits when read by processor.#defineSIO_INTERP1_CTRL_LANE0_SIGNED_RESET_u(0x0)#defineSIO_INTERP1_CTRL_LANE0_SIGNED_BITS_u(0x00008000)#defineSIO_INTERP1_CTRL_LANE0_SIGNED_MSB_u(15)#defineSIO_INTERP1_CTRL_LANE0_SIGNED_LSB_u(15)#defineSIO_INTERP1_CTRL_LANE0_SIGNED_ACCESS"RW"// -----------------------------------------------------------------------------// Field : SIO_INTERP1_CTRL_LANE0_MASK_MSB// Description : The most-significant bit allowed to pass by the mask// (inclusive)// Setting MSB < LSB may cause chip to turn inside-out#defineSIO_INTERP1_CTRL_LANE0_MASK_MSB_RESET_u(0x00)#defineSIO_INTERP1_CTRL_LANE0_MASK_MSB_BITS_u(0x00007c00)#defineSIO_INTERP1_CTRL_LANE0_MASK_MSB_MSB_u(14)#defineSIO_INTERP1_CTRL_LANE0_MASK_MSB_LSB_u(10)#defineSIO_INTERP1_CTRL_LANE0_MASK_MSB_ACCESS"RW"// -----------------------------------------------------------------------------// Field : SIO_INTERP1_CTRL_LANE0_MASK_LSB// Description : The least-significant bit allowed to pass by the mask// (inclusive)#defineSIO_INTERP1_CTRL_LANE0_MASK_LSB_RESET_u(0x00)#defineSIO_INTERP1_CTRL_LANE0_MASK_LSB_BITS_u(0x000003e0)#defineSIO_INTERP1_CTRL_LANE0_MASK_LSB_MSB_u(9)#defineSIO_INTERP1_CTRL_LANE0_MASK_LSB_LSB_u(5)#defineSIO_INTERP1_CTRL_LANE0_MASK_LSB_ACCESS"RW"// -----------------------------------------------------------------------------// Field : SIO_INTERP1_CTRL_LANE0_SHIFT// Description : Right-rotate applied to accumulator before masking. By// appropriately configuring the masks, left and right shifts can// be synthesised.#defineSIO_INTERP1_CTRL_LANE0_SHIFT_RESET_u(0x00)#defineSIO_INTERP1_CTRL_LANE0_SHIFT_BITS_u(0x0000001f)#defineSIO_INTERP1_CTRL_LANE0_SHIFT_MSB_u(4)#defineSIO_INTERP1_CTRL_LANE0_SHIFT_LSB_u(0)#defineSIO_INTERP1_CTRL_LANE0_SHIFT_ACCESS"RW"// =============================================================================// Register : SIO_INTERP1_CTRL_LANE1// Description : Control register for lane 1#defineSIO_INTERP1_CTRL_LANE1_OFFSET_u(0x000000f0)#defineSIO_INTERP1_CTRL_LANE1_BITS_u(0x001fffff)#defineSIO_INTERP1_CTRL_LANE1_RESET_u(0x00000000)// -----------------------------------------------------------------------------// Field : SIO_INTERP1_CTRL_LANE1_FORCE_MSB// Description : ORed into bits 29:28 of the lane result presented to the// processor on the bus.// No effect on the internal 32-bit datapath. Handy for using a// lane to generate sequence// of pointers into flash or SRAM.#defineSIO_INTERP1_CTRL_LANE1_FORCE_MSB_RESET_u(0x0)#defineSIO_INTERP1_CTRL_LANE1_FORCE_MSB_BITS_u(0x00180000)#defineSIO_INTERP1_CTRL_LANE1_FORCE_MSB_MSB_u(20)#defineSIO_INTERP1_CTRL_LANE1_FORCE_MSB_LSB_u(19)#defineSIO_INTERP1_CTRL_LANE1_FORCE_MSB_ACCESS"RW"// -----------------------------------------------------------------------------// Field : SIO_INTERP1_CTRL_LANE1_ADD_RAW// Description : If 1, mask + shift is bypassed for LANE1 result. This does not// affect FULL result.#defineSIO_INTERP1_CTRL_LANE1_ADD_RAW_RESET_u(0x0)#defineSIO_INTERP1_CTRL_LANE1_ADD_RAW_BITS_u(0x00040000)#defineSIO_INTERP1_CTRL_LANE1_ADD_RAW_MSB_u(18)#defineSIO_INTERP1_CTRL_LANE1_ADD_RAW_LSB_u(18)#defineSIO_INTERP1_CTRL_LANE1_ADD_RAW_ACCESS"RW"// -----------------------------------------------------------------------------// Field : SIO_INTERP1_CTRL_LANE1_CROSS_RESULT// Description : If 1, feed the opposite lane's result into this lane's// accumulator on POP.#defineSIO_INTERP1_CTRL_LANE1_CROSS_RESULT_RESET_u(0x0)#defineSIO_INTERP1_CTRL_LANE1_CROSS_RESULT_BITS_u(0x00020000)#defineSIO_INTERP1_CTRL_LANE1_CROSS_RESULT_MSB_u(17)#defineSIO_INTERP1_CTRL_LANE1_CROSS_RESULT_LSB_u(17)#defineSIO_INTERP1_CTRL_LANE1_CROSS_RESULT_ACCESS"RW"// -----------------------------------------------------------------------------// Field : SIO_INTERP1_CTRL_LANE1_CROSS_INPUT// Description : If 1, feed the opposite lane's accumulator into this lane's// shift + mask hardware.// Takes effect even if ADD_RAW is set (the CROSS_INPUT mux is// before the shift+mask bypass)#defineSIO_INTERP1_CTRL_LANE1_CROSS_INPUT_RESET_u(0x0)#defineSIO_INTERP1_CTRL_LANE1_CROSS_INPUT_BITS_u(0x00010000)#defineSIO_INTERP1_CTRL_LANE1_CROSS_INPUT_MSB_u(16)#defineSIO_INTERP1_CTRL_LANE1_CROSS_INPUT_LSB_u(16)#defineSIO_INTERP1_CTRL_LANE1_CROSS_INPUT_ACCESS"RW"// -----------------------------------------------------------------------------// Field : SIO_INTERP1_CTRL_LANE1_SIGNED// Description : If SIGNED is set, the shifted and masked accumulator value is// sign-extended to 32 bits// before adding to BASE1, and LANE1 PEEK/POP appear extended to// 32 bits when read by processor.#defineSIO_INTERP1_CTRL_LANE1_SIGNED_RESET_u(0x0)#defineSIO_INTERP1_CTRL_LANE1_SIGNED_BITS_u(0x00008000)#defineSIO_INTERP1_CTRL_LANE1_SIGNED_MSB_u(15)#defineSIO_INTERP1_CTRL_LANE1_SIGNED_LSB_u(15)#defineSIO_INTERP1_CTRL_LANE1_SIGNED_ACCESS"RW"// -----------------------------------------------------------------------------// Field : SIO_INTERP1_CTRL_LANE1_MASK_MSB// Description : The most-significant bit allowed to pass by the mask// (inclusive)// Setting MSB < LSB may cause chip to turn inside-out#defineSIO_INTERP1_CTRL_LANE1_MASK_MSB_RESET_u(0x00)#defineSIO_INTERP1_CTRL_LANE1_MASK_MSB_BITS_u(0x00007c00)#defineSIO_INTERP1_CTRL_LANE1_MASK_MSB_MSB_u(14)#defineSIO_INTERP1_CTRL_LANE1_MASK_MSB_LSB_u(10)#defineSIO_INTERP1_CTRL_LANE1_MASK_MSB_ACCESS"RW"// -----------------------------------------------------------------------------// Field : SIO_INTERP1_CTRL_LANE1_MASK_LSB// Description : The least-significant bit allowed to pass by the mask// (inclusive)#defineSIO_INTERP1_CTRL_LANE1_MASK_LSB_RESET_u(0x00)#defineSIO_INTERP1_CTRL_LANE1_MASK_LSB_BITS_u(0x000003e0)#defineSIO_INTERP1_CTRL_LANE1_MASK_LSB_MSB_u(9)#defineSIO_INTERP1_CTRL_LANE1_MASK_LSB_LSB_u(5)#defineSIO_INTERP1_CTRL_LANE1_MASK_LSB_ACCESS"RW"// -----------------------------------------------------------------------------// Field : SIO_INTERP1_CTRL_LANE1_SHIFT// Description : Right-rotate applied to accumulator before masking. By// appropriately configuring the masks, left and right shifts can// be synthesised.#defineSIO_INTERP1_CTRL_LANE1_SHIFT_RESET_u(0x00)#defineSIO_INTERP1_CTRL_LANE1_SHIFT_BITS_u(0x0000001f)#defineSIO_INTERP1_CTRL_LANE1_SHIFT_MSB_u(4)#defineSIO_INTERP1_CTRL_LANE1_SHIFT_LSB_u(0)#defineSIO_INTERP1_CTRL_LANE1_SHIFT_ACCESS"RW"// =============================================================================// Register : SIO_INTERP1_ACCUM0_ADD// Description : Values written here are atomically added to ACCUM0// Reading yields lane 0's raw shift and mask value (BASE0 not// added).#defineSIO_INTERP1_ACCUM0_ADD_OFFSET_u(0x000000f4)#defineSIO_INTERP1_ACCUM0_ADD_BITS_u(0x00ffffff)#defineSIO_INTERP1_ACCUM0_ADD_RESET_u(0x00000000)#defineSIO_INTERP1_ACCUM0_ADD_MSB_u(23)#defineSIO_INTERP1_ACCUM0_ADD_LSB_u(0)#defineSIO_INTERP1_ACCUM0_ADD_ACCESS"RW"// =============================================================================// Register : SIO_INTERP1_ACCUM1_ADD// Description : Values written here are atomically added to ACCUM1// Reading yields lane 1's raw shift and mask value (BASE1 not// added).#defineSIO_INTERP1_ACCUM1_ADD_OFFSET_u(0x000000f8)#defineSIO_INTERP1_ACCUM1_ADD_BITS_u(0x00ffffff)#defineSIO_INTERP1_ACCUM1_ADD_RESET_u(0x00000000)#defineSIO_INTERP1_ACCUM1_ADD_MSB_u(23)#defineSIO_INTERP1_ACCUM1_ADD_LSB_u(0)#defineSIO_INTERP1_ACCUM1_ADD_ACCESS"RW"// =============================================================================// Register : SIO_INTERP1_BASE_1AND0// Description : On write, the lower 16 bits go to BASE0, upper bits to BASE1// simultaneously.// Each half is sign-extended to 32 bits if that lane's SIGNED// flag is set.#defineSIO_INTERP1_BASE_1AND0_OFFSET_u(0x000000fc)#defineSIO_INTERP1_BASE_1AND0_BITS_u(0xffffffff)#defineSIO_INTERP1_BASE_1AND0_RESET_u(0x00000000)#defineSIO_INTERP1_BASE_1AND0_MSB_u(31)#defineSIO_INTERP1_BASE_1AND0_LSB_u(0)#defineSIO_INTERP1_BASE_1AND0_ACCESS"WO"// =============================================================================// Register : SIO_SPINLOCK0// Description : Reading from a spinlock address will:// - Return 0 if lock is already locked// - Otherwise return nonzero, and simultaneously claim the lock//// Writing (any value) releases the lock.// If core 0 and core 1 attempt to claim the same lock// simultaneously, core 0 wins.// The value returned on success is 0x1 << lock number.#defineSIO_SPINLOCK0_OFFSET_u(0x00000100)#defineSIO_SPINLOCK0_BITS_u(0xffffffff)#defineSIO_SPINLOCK0_RESET_u(0x00000000)#defineSIO_SPINLOCK0_MSB_u(31)#defineSIO_SPINLOCK0_LSB_u(0)#defineSIO_SPINLOCK0_ACCESS"RW"// =============================================================================// Register : SIO_SPINLOCK1// Description : Reading from a spinlock address will:// - Return 0 if lock is already locked// - Otherwise return nonzero, and simultaneously claim the lock//// Writing (any value) releases the lock.// If core 0 and core 1 attempt to claim the same lock// simultaneously, core 0 wins.// The value returned on success is 0x1 << lock number.#defineSIO_SPINLOCK1_OFFSET_u(0x00000104)#defineSIO_SPINLOCK1_BITS_u(0xffffffff)#defineSIO_SPINLOCK1_RESET_u(0x00000000)#defineSIO_SPINLOCK1_MSB_u(31)#defineSIO_SPINLOCK1_LSB_u(0)#defineSIO_SPINLOCK1_ACCESS"RW"// =============================================================================// Register : SIO_SPINLOCK2// Description : Reading from a spinlock address will:// - Return 0 if lock is already locked// - Otherwise return nonzero, and simultaneously claim the lock//// Writing (any value) releases the lock.// If core 0 and core 1 attempt to claim the same lock// simultaneously, core 0 wins.// The value returned on success is 0x1 << lock number.#defineSIO_SPINLOCK2_OFFSET_u(0x00000108)#defineSIO_SPINLOCK2_BITS_u(0xffffffff)#defineSIO_SPINLOCK2_RESET_u(0x00000000)#defineSIO_SPINLOCK2_MSB_u(31)#defineSIO_SPINLOCK2_LSB_u(0)#defineSIO_SPINLOCK2_ACCESS"RW"// =============================================================================// Register : SIO_SPINLOCK3// Description : Reading from a spinlock address will:// - Return 0 if lock is already locked// - Otherwise return nonzero, and simultaneously claim the lock//// Writing (any value) releases the lock.// If core 0 and core 1 attempt to claim the same lock// simultaneously, core 0 wins.// The value returned on success is 0x1 << lock number.#defineSIO_SPINLOCK3_OFFSET_u(0x0000010c)#defineSIO_SPINLOCK3_BITS_u(0xffffffff)#defineSIO_SPINLOCK3_RESET_u(0x00000000)#defineSIO_SPINLOCK3_MSB_u(31)#defineSIO_SPINLOCK3_LSB_u(0)#defineSIO_SPINLOCK3_ACCESS"RW"// =============================================================================// Register : SIO_SPINLOCK4// Description : Reading from a spinlock address will:// - Return 0 if lock is already locked// - Otherwise return nonzero, and simultaneously claim the lock//// Writing (any value) releases the lock.// If core 0 and core 1 attempt to claim the same lock// simultaneously, core 0 wins.// The value returned on success is 0x1 << lock number.#defineSIO_SPINLOCK4_OFFSET_u(0x00000110)#defineSIO_SPINLOCK4_BITS_u(0xffffffff)#defineSIO_SPINLOCK4_RESET_u(0x00000000)#defineSIO_SPINLOCK4_MSB_u(31)#defineSIO_SPINLOCK4_LSB_u(0)#defineSIO_SPINLOCK4_ACCESS"RW"// =============================================================================// Register : SIO_SPINLOCK5// Description : Reading from a spinlock address will:// - Return 0 if lock is already locked// - Otherwise return nonzero, and simultaneously claim the lock//// Writing (any value) releases the lock.// If core 0 and core 1 attempt to claim the same lock// simultaneously, core 0 wins.// The value returned on success is 0x1 << lock number.#defineSIO_SPINLOCK5_OFFSET_u(0x00000114)#defineSIO_SPINLOCK5_BITS_u(0xffffffff)#defineSIO_SPINLOCK5_RESET_u(0x00000000)#defineSIO_SPINLOCK5_MSB_u(31)#defineSIO_SPINLOCK5_LSB_u(0)#defineSIO_SPINLOCK5_ACCESS"RW"// =============================================================================// Register : SIO_SPINLOCK6// Description : Reading from a spinlock address will:// - Return 0 if lock is already locked// - Otherwise return nonzero, and simultaneously claim the lock//// Writing (any value) releases the lock.// If core 0 and core 1 attempt to claim the same lock// simultaneously, core 0 wins.// The value returned on success is 0x1 << lock number.#defineSIO_SPINLOCK6_OFFSET_u(0x00000118)#defineSIO_SPINLOCK6_BITS_u(0xffffffff)#defineSIO_SPINLOCK6_RESET_u(0x00000000)#defineSIO_SPINLOCK6_MSB_u(31)#defineSIO_SPINLOCK6_LSB_u(0)#defineSIO_SPINLOCK6_ACCESS"RW"// =============================================================================// Register : SIO_SPINLOCK7// Description : Reading from a spinlock address will:// - Return 0 if lock is already locked// - Otherwise return nonzero, and simultaneously claim the lock//// Writing (any value) releases the lock.// If core 0 and core 1 attempt to claim the same lock// simultaneously, core 0 wins.// The value returned on success is 0x1 << lock number.#defineSIO_SPINLOCK7_OFFSET_u(0x0000011c)#defineSIO_SPINLOCK7_BITS_u(0xffffffff)#defineSIO_SPINLOCK7_RESET_u(0x00000000)#defineSIO_SPINLOCK7_MSB_u(31)#defineSIO_SPINLOCK7_LSB_u(0)#defineSIO_SPINLOCK7_ACCESS"RW"// =============================================================================// Register : SIO_SPINLOCK8// Description : Reading from a spinlock address will:// - Return 0 if lock is already locked// - Otherwise return nonzero, and simultaneously claim the lock//// Writing (any value) releases the lock.// If core 0 and core 1 attempt to claim the same lock// simultaneously, core 0 wins.// The value returned on success is 0x1 << lock number.#defineSIO_SPINLOCK8_OFFSET_u(0x00000120)#defineSIO_SPINLOCK8_BITS_u(0xffffffff)#defineSIO_SPINLOCK8_RESET_u(0x00000000)#defineSIO_SPINLOCK8_MSB_u(31)#defineSIO_SPINLOCK8_LSB_u(0)#defineSIO_SPINLOCK8_ACCESS"RW"// =============================================================================// Register : SIO_SPINLOCK9// Description : Reading from a spinlock address will:// - Return 0 if lock is already locked// - Otherwise return nonzero, and simultaneously claim the lock//// Writing (any value) releases the lock.// If core 0 and core 1 attempt to claim the same lock// simultaneously, core 0 wins.// The value returned on success is 0x1 << lock number.#defineSIO_SPINLOCK9_OFFSET_u(0x00000124)#defineSIO_SPINLOCK9_BITS_u(0xffffffff)#defineSIO_SPINLOCK9_RESET_u(0x00000000)#defineSIO_SPINLOCK9_MSB_u(31)#defineSIO_SPINLOCK9_LSB_u(0)#defineSIO_SPINLOCK9_ACCESS"RW"// =============================================================================// Register : SIO_SPINLOCK10// Description : Reading from a spinlock address will:// - Return 0 if lock is already locked// - Otherwise return nonzero, and simultaneously claim the lock//// Writing (any value) releases the lock.// If core 0 and core 1 attempt to claim the same lock// simultaneously, core 0 wins.// The value returned on success is 0x1 << lock number.#defineSIO_SPINLOCK10_OFFSET_u(0x00000128)#defineSIO_SPINLOCK10_BITS_u(0xffffffff)#defineSIO_SPINLOCK10_RESET_u(0x00000000)#defineSIO_SPINLOCK10_MSB_u(31)#defineSIO_SPINLOCK10_LSB_u(0)#defineSIO_SPINLOCK10_ACCESS"RW"// =============================================================================// Register : SIO_SPINLOCK11// Description : Reading from a spinlock address will:// - Return 0 if lock is already locked// - Otherwise return nonzero, and simultaneously claim the lock//// Writing (any value) releases the lock.// If core 0 and core 1 attempt to claim the same lock// simultaneously, core 0 wins.// The value returned on success is 0x1 << lock number.#defineSIO_SPINLOCK11_OFFSET_u(0x0000012c)#defineSIO_SPINLOCK11_BITS_u(0xffffffff)#defineSIO_SPINLOCK11_RESET_u(0x00000000)#defineSIO_SPINLOCK11_MSB_u(31)#defineSIO_SPINLOCK11_LSB_u(0)#defineSIO_SPINLOCK11_ACCESS"RW"// =============================================================================// Register : SIO_SPINLOCK12// Description : Reading from a spinlock address will:// - Return 0 if lock is already locked// - Otherwise return nonzero, and simultaneously claim the lock//// Writing (any value) releases the lock.// If core 0 and core 1 attempt to claim the same lock// simultaneously, core 0 wins.// The value returned on success is 0x1 << lock number.#defineSIO_SPINLOCK12_OFFSET_u(0x00000130)#defineSIO_SPINLOCK12_BITS_u(0xffffffff)#defineSIO_SPINLOCK12_RESET_u(0x00000000)#defineSIO_SPINLOCK12_MSB_u(31)#defineSIO_SPINLOCK12_LSB_u(0)#defineSIO_SPINLOCK12_ACCESS"RW"// =============================================================================// Register : SIO_SPINLOCK13// Description : Reading from a spinlock address will:// - Return 0 if lock is already locked// - Otherwise return nonzero, and simultaneously claim the lock//// Writing (any value) releases the lock.// If core 0 and core 1 attempt to claim the same lock// simultaneously, core 0 wins.// The value returned on success is 0x1 << lock number.#defineSIO_SPINLOCK13_OFFSET_u(0x00000134)#defineSIO_SPINLOCK13_BITS_u(0xffffffff)#defineSIO_SPINLOCK13_RESET_u(0x00000000)#defineSIO_SPINLOCK13_MSB_u(31)#defineSIO_SPINLOCK13_LSB_u(0)#defineSIO_SPINLOCK13_ACCESS"RW"// =============================================================================// Register : SIO_SPINLOCK14// Description : Reading from a spinlock address will:// - Return 0 if lock is already locked// - Otherwise return nonzero, and simultaneously claim the lock//// Writing (any value) releases the lock.// If core 0 and core 1 attempt to claim the same lock// simultaneously, core 0 wins.// The value returned on success is 0x1 << lock number.#defineSIO_SPINLOCK14_OFFSET_u(0x00000138)#defineSIO_SPINLOCK14_BITS_u(0xffffffff)#defineSIO_SPINLOCK14_RESET_u(0x00000000)#defineSIO_SPINLOCK14_MSB_u(31)#defineSIO_SPINLOCK14_LSB_u(0)#defineSIO_SPINLOCK14_ACCESS"RW"// =============================================================================// Register : SIO_SPINLOCK15// Description : Reading from a spinlock address will:// - Return 0 if lock is already locked// - Otherwise return nonzero, and simultaneously claim the lock//// Writing (any value) releases the lock.// If core 0 and core 1 attempt to claim the same lock// simultaneously, core 0 wins.// The value returned on success is 0x1 << lock number.#defineSIO_SPINLOCK15_OFFSET_u(0x0000013c)#defineSIO_SPINLOCK15_BITS_u(0xffffffff)#defineSIO_SPINLOCK15_RESET_u(0x00000000)#defineSIO_SPINLOCK15_MSB_u(31)#defineSIO_SPINLOCK15_LSB_u(0)#defineSIO_SPINLOCK15_ACCESS"RW"// =============================================================================// Register : SIO_SPINLOCK16// Description : Reading from a spinlock address will:// - Return 0 if lock is already locked// - Otherwise return nonzero, and simultaneously claim the lock//// Writing (any value) releases the lock.// If core 0 and core 1 attempt to claim the same lock// simultaneously, core 0 wins.// The value returned on success is 0x1 << lock number.#defineSIO_SPINLOCK16_OFFSET_u(0x00000140)#defineSIO_SPINLOCK16_BITS_u(0xffffffff)#defineSIO_SPINLOCK16_RESET_u(0x00000000)#defineSIO_SPINLOCK16_MSB_u(31)#defineSIO_SPINLOCK16_LSB_u(0)#defineSIO_SPINLOCK16_ACCESS"RW"// =============================================================================// Register : SIO_SPINLOCK17// Description : Reading from a spinlock address will:// - Return 0 if lock is already locked// - Otherwise return nonzero, and simultaneously claim the lock//// Writing (any value) releases the lock.// If core 0 and core 1 attempt to claim the same lock// simultaneously, core 0 wins.// The value returned on success is 0x1 << lock number.#defineSIO_SPINLOCK17_OFFSET_u(0x00000144)#defineSIO_SPINLOCK17_BITS_u(0xffffffff)#defineSIO_SPINLOCK17_RESET_u(0x00000000)#defineSIO_SPINLOCK17_MSB_u(31)#defineSIO_SPINLOCK17_LSB_u(0)#defineSIO_SPINLOCK17_ACCESS"RW"// =============================================================================// Register : SIO_SPINLOCK18// Description : Reading from a spinlock address will:// - Return 0 if lock is already locked// - Otherwise return nonzero, and simultaneously claim the lock//// Writing (any value) releases the lock.// If core 0 and core 1 attempt to claim the same lock// simultaneously, core 0 wins.// The value returned on success is 0x1 << lock number.#defineSIO_SPINLOCK18_OFFSET_u(0x00000148)#defineSIO_SPINLOCK18_BITS_u(0xffffffff)#defineSIO_SPINLOCK18_RESET_u(0x00000000)#defineSIO_SPINLOCK18_MSB_u(31)#defineSIO_SPINLOCK18_LSB_u(0)#defineSIO_SPINLOCK18_ACCESS"RW"// =============================================================================// Register : SIO_SPINLOCK19// Description : Reading from a spinlock address will:// - Return 0 if lock is already locked// - Otherwise return nonzero, and simultaneously claim the lock//// Writing (any value) releases the lock.// If core 0 and core 1 attempt to claim the same lock// simultaneously, core 0 wins.// The value returned on success is 0x1 << lock number.#defineSIO_SPINLOCK19_OFFSET_u(0x0000014c)#defineSIO_SPINLOCK19_BITS_u(0xffffffff)#defineSIO_SPINLOCK19_RESET_u(0x00000000)#defineSIO_SPINLOCK19_MSB_u(31)#defineSIO_SPINLOCK19_LSB_u(0)#defineSIO_SPINLOCK19_ACCESS"RW"// =============================================================================// Register : SIO_SPINLOCK20// Description : Reading from a spinlock address will:// - Return 0 if lock is already locked// - Otherwise return nonzero, and simultaneously claim the lock//// Writing (any value) releases the lock.// If core 0 and core 1 attempt to claim the same lock// simultaneously, core 0 wins.// The value returned on success is 0x1 << lock number.#defineSIO_SPINLOCK20_OFFSET_u(0x00000150)#defineSIO_SPINLOCK20_BITS_u(0xffffffff)#defineSIO_SPINLOCK20_RESET_u(0x00000000)#defineSIO_SPINLOCK20_MSB_u(31)#defineSIO_SPINLOCK20_LSB_u(0)#defineSIO_SPINLOCK20_ACCESS"RW"// =============================================================================// Register : SIO_SPINLOCK21// Description : Reading from a spinlock address will:// - Return 0 if lock is already locked// - Otherwise return nonzero, and simultaneously claim the lock//// Writing (any value) releases the lock.// If core 0 and core 1 attempt to claim the same lock// simultaneously, core 0 wins.// The value returned on success is 0x1 << lock number.#defineSIO_SPINLOCK21_OFFSET_u(0x00000154)#defineSIO_SPINLOCK21_BITS_u(0xffffffff)#defineSIO_SPINLOCK21_RESET_u(0x00000000)#defineSIO_SPINLOCK21_MSB_u(31)#defineSIO_SPINLOCK21_LSB_u(0)#defineSIO_SPINLOCK21_ACCESS"RW"// =============================================================================// Register : SIO_SPINLOCK22// Description : Reading from a spinlock address will:// - Return 0 if lock is already locked// - Otherwise return nonzero, and simultaneously claim the lock//// Writing (any value) releases the lock.// If core 0 and core 1 attempt to claim the same lock// simultaneously, core 0 wins.// The value returned on success is 0x1 << lock number.#defineSIO_SPINLOCK22_OFFSET_u(0x00000158)#defineSIO_SPINLOCK22_BITS_u(0xffffffff)#defineSIO_SPINLOCK22_RESET_u(0x00000000)#defineSIO_SPINLOCK22_MSB_u(31)#defineSIO_SPINLOCK22_LSB_u(0)#defineSIO_SPINLOCK22_ACCESS"RW"// =============================================================================// Register : SIO_SPINLOCK23// Description : Reading from a spinlock address will:// - Return 0 if lock is already locked// - Otherwise return nonzero, and simultaneously claim the lock//// Writing (any value) releases the lock.// If core 0 and core 1 attempt to claim the same lock// simultaneously, core 0 wins.// The value returned on success is 0x1 << lock number.#defineSIO_SPINLOCK23_OFFSET_u(0x0000015c)#defineSIO_SPINLOCK23_BITS_u(0xffffffff)#defineSIO_SPINLOCK23_RESET_u(0x00000000)#defineSIO_SPINLOCK23_MSB_u(31)#defineSIO_SPINLOCK23_LSB_u(0)#defineSIO_SPINLOCK23_ACCESS"RW"// =============================================================================// Register : SIO_SPINLOCK24// Description : Reading from a spinlock address will:// - Return 0 if lock is already locked// - Otherwise return nonzero, and simultaneously claim the lock//// Writing (any value) releases the lock.// If core 0 and core 1 attempt to claim the same lock// simultaneously, core 0 wins.// The value returned on success is 0x1 << lock number.#defineSIO_SPINLOCK24_OFFSET_u(0x00000160)#defineSIO_SPINLOCK24_BITS_u(0xffffffff)#defineSIO_SPINLOCK24_RESET_u(0x00000000)#defineSIO_SPINLOCK24_MSB_u(31)#defineSIO_SPINLOCK24_LSB_u(0)#defineSIO_SPINLOCK24_ACCESS"RW"// =============================================================================// Register : SIO_SPINLOCK25// Description : Reading from a spinlock address will:// - Return 0 if lock is already locked// - Otherwise return nonzero, and simultaneously claim the lock//// Writing (any value) releases the lock.// If core 0 and core 1 attempt to claim the same lock// simultaneously, core 0 wins.// The value returned on success is 0x1 << lock number.#defineSIO_SPINLOCK25_OFFSET_u(0x00000164)#defineSIO_SPINLOCK25_BITS_u(0xffffffff)#defineSIO_SPINLOCK25_RESET_u(0x00000000)#defineSIO_SPINLOCK25_MSB_u(31)#defineSIO_SPINLOCK25_LSB_u(0)#defineSIO_SPINLOCK25_ACCESS"RW"// =============================================================================// Register : SIO_SPINLOCK26// Description : Reading from a spinlock address will:// - Return 0 if lock is already locked// - Otherwise return nonzero, and simultaneously claim the lock//// Writing (any value) releases the lock.// If core 0 and core 1 attempt to claim the same lock// simultaneously, core 0 wins.// The value returned on success is 0x1 << lock number.#defineSIO_SPINLOCK26_OFFSET_u(0x00000168)#defineSIO_SPINLOCK26_BITS_u(0xffffffff)#defineSIO_SPINLOCK26_RESET_u(0x00000000)#defineSIO_SPINLOCK26_MSB_u(31)#defineSIO_SPINLOCK26_LSB_u(0)#defineSIO_SPINLOCK26_ACCESS"RW"// =============================================================================// Register : SIO_SPINLOCK27// Description : Reading from a spinlock address will:// - Return 0 if lock is already locked// - Otherwise return nonzero, and simultaneously claim the lock//// Writing (any value) releases the lock.// If core 0 and core 1 attempt to claim the same lock// simultaneously, core 0 wins.// The value returned on success is 0x1 << lock number.#defineSIO_SPINLOCK27_OFFSET_u(0x0000016c)#defineSIO_SPINLOCK27_BITS_u(0xffffffff)#defineSIO_SPINLOCK27_RESET_u(0x00000000)#defineSIO_SPINLOCK27_MSB_u(31)#defineSIO_SPINLOCK27_LSB_u(0)#defineSIO_SPINLOCK27_ACCESS"RW"// =============================================================================// Register : SIO_SPINLOCK28// Description : Reading from a spinlock address will:// - Return 0 if lock is already locked// - Otherwise return nonzero, and simultaneously claim the lock//// Writing (any value) releases the lock.// If core 0 and core 1 attempt to claim the same lock// simultaneously, core 0 wins.// The value returned on success is 0x1 << lock number.#defineSIO_SPINLOCK28_OFFSET_u(0x00000170)#defineSIO_SPINLOCK28_BITS_u(0xffffffff)#defineSIO_SPINLOCK28_RESET_u(0x00000000)#defineSIO_SPINLOCK28_MSB_u(31)#defineSIO_SPINLOCK28_LSB_u(0)#defineSIO_SPINLOCK28_ACCESS"RW"// =============================================================================// Register : SIO_SPINLOCK29// Description : Reading from a spinlock address will:// - Return 0 if lock is already locked// - Otherwise return nonzero, and simultaneously claim the lock//// Writing (any value) releases the lock.// If core 0 and core 1 attempt to claim the same lock// simultaneously, core 0 wins.// The value returned on success is 0x1 << lock number.#defineSIO_SPINLOCK29_OFFSET_u(0x00000174)#defineSIO_SPINLOCK29_BITS_u(0xffffffff)#defineSIO_SPINLOCK29_RESET_u(0x00000000)#defineSIO_SPINLOCK29_MSB_u(31)#defineSIO_SPINLOCK29_LSB_u(0)#defineSIO_SPINLOCK29_ACCESS"RW"// =============================================================================// Register : SIO_SPINLOCK30// Description : Reading from a spinlock address will:// - Return 0 if lock is already locked// - Otherwise return nonzero, and simultaneously claim the lock//// Writing (any value) releases the lock.// If core 0 and core 1 attempt to claim the same lock// simultaneously, core 0 wins.// The value returned on success is 0x1 << lock number.#defineSIO_SPINLOCK30_OFFSET_u(0x00000178)#defineSIO_SPINLOCK30_BITS_u(0xffffffff)#defineSIO_SPINLOCK30_RESET_u(0x00000000)#defineSIO_SPINLOCK30_MSB_u(31)#defineSIO_SPINLOCK30_LSB_u(0)#defineSIO_SPINLOCK30_ACCESS"RW"// =============================================================================// Register : SIO_SPINLOCK31// Description : Reading from a spinlock address will:// - Return 0 if lock is already locked// - Otherwise return nonzero, and simultaneously claim the lock//// Writing (any value) releases the lock.// If core 0 and core 1 attempt to claim the same lock// simultaneously, core 0 wins.// The value returned on success is 0x1 << lock number.#defineSIO_SPINLOCK31_OFFSET_u(0x0000017c)#defineSIO_SPINLOCK31_BITS_u(0xffffffff)#defineSIO_SPINLOCK31_RESET_u(0x00000000)#defineSIO_SPINLOCK31_MSB_u(31)#defineSIO_SPINLOCK31_LSB_u(0)#defineSIO_SPINLOCK31_ACCESS"RW"// =============================================================================// Register : SIO_DOORBELL_OUT_SET// Description : Trigger a doorbell interrupt on the opposite core.//// Write 1 to a bit to set the corresponding bit in DOORBELL_IN on// the opposite core. This raises the opposite core's doorbell// interrupt.//// Read to get the status of the doorbells currently asserted on// the opposite core. This is equivalent to that core reading its// own DOORBELL_IN status.#defineSIO_DOORBELL_OUT_SET_OFFSET_u(0x00000180)#defineSIO_DOORBELL_OUT_SET_BITS_u(0x000000ff)#defineSIO_DOORBELL_OUT_SET_RESET_u(0x00000000)#defineSIO_DOORBELL_OUT_SET_MSB_u(7)#defineSIO_DOORBELL_OUT_SET_LSB_u(0)#defineSIO_DOORBELL_OUT_SET_ACCESS"RW"// =============================================================================// Register : SIO_DOORBELL_OUT_CLR// Description : Clear doorbells which have been posted to the opposite core.// This register is intended for debugging and initialisation// purposes.//// Writing 1 to a bit in DOORBELL_OUT_CLR clears the corresponding// bit in DOORBELL_IN on the opposite core. Clearing all bits will// cause that core's doorbell interrupt to deassert. Since the// usual order of events is for software to send events using// DOORBELL_OUT_SET, and acknowledge incoming events by writing to// DOORBELL_IN_CLR, this register should be used with caution to// avoid race conditions.//// Reading returns the status of the doorbells currently asserted// on the other core, i.e. is equivalent to that core reading its// own DOORBELL_IN status.#defineSIO_DOORBELL_OUT_CLR_OFFSET_u(0x00000184)#defineSIO_DOORBELL_OUT_CLR_BITS_u(0x000000ff)#defineSIO_DOORBELL_OUT_CLR_RESET_u(0x00000000)#defineSIO_DOORBELL_OUT_CLR_MSB_u(7)#defineSIO_DOORBELL_OUT_CLR_LSB_u(0)#defineSIO_DOORBELL_OUT_CLR_ACCESS"WC"// =============================================================================// Register : SIO_DOORBELL_IN_SET// Description : Write 1s to trigger doorbell interrupts on this core. Read to// get status of doorbells currently asserted on this core.#defineSIO_DOORBELL_IN_SET_OFFSET_u(0x00000188)#defineSIO_DOORBELL_IN_SET_BITS_u(0x000000ff)#defineSIO_DOORBELL_IN_SET_RESET_u(0x00000000)#defineSIO_DOORBELL_IN_SET_MSB_u(7)#defineSIO_DOORBELL_IN_SET_LSB_u(0)#defineSIO_DOORBELL_IN_SET_ACCESS"RW"// =============================================================================// Register : SIO_DOORBELL_IN_CLR// Description : Check and acknowledge doorbells posted to this core. This// core's doorbell interrupt is asserted when any bit in this// register is 1.//// Write 1 to each bit to clear that bit. The doorbell interrupt// deasserts once all bits are cleared. Read to get status of// doorbells currently asserted on this core.#defineSIO_DOORBELL_IN_CLR_OFFSET_u(0x0000018c)#defineSIO_DOORBELL_IN_CLR_BITS_u(0x000000ff)#defineSIO_DOORBELL_IN_CLR_RESET_u(0x00000000)#defineSIO_DOORBELL_IN_CLR_MSB_u(7)#defineSIO_DOORBELL_IN_CLR_LSB_u(0)#defineSIO_DOORBELL_IN_CLR_ACCESS"WC"// =============================================================================// Register : SIO_PERI_NONSEC// Description : Detach certain core-local peripherals from Secure SIO, and// attach them to Non-secure SIO, so that Non-secure software can// use them. Attempting to access one of these peripherals from// the Secure SIO when it is attached to the Non-secure SIO, or// vice versa, will generate a bus error.//// This register is per-core, and is only present on the Secure// SIO.//// Most SIO hardware is duplicated across the Secure and Non-// secure SIO, so is not listed in this register.#defineSIO_PERI_NONSEC_OFFSET_u(0x00000190)#defineSIO_PERI_NONSEC_BITS_u(0x00000023)#defineSIO_PERI_NONSEC_RESET_u(0x00000000)// -----------------------------------------------------------------------------// Field : SIO_PERI_NONSEC_TMDS// Description : IF 1, detach TMDS encoder (of this core) from the Secure SIO,// and attach to the Non-secure SIO.#defineSIO_PERI_NONSEC_TMDS_RESET_u(0x0)#defineSIO_PERI_NONSEC_TMDS_BITS_u(0x00000020)#defineSIO_PERI_NONSEC_TMDS_MSB_u(5)#defineSIO_PERI_NONSEC_TMDS_LSB_u(5)#defineSIO_PERI_NONSEC_TMDS_ACCESS"RW"// -----------------------------------------------------------------------------// Field : SIO_PERI_NONSEC_INTERP1// Description : If 1, detach interpolator 1 (of this core) from the Secure SIO,// and attach to the Non-secure SIO.#defineSIO_PERI_NONSEC_INTERP1_RESET_u(0x0)#defineSIO_PERI_NONSEC_INTERP1_BITS_u(0x00000002)#defineSIO_PERI_NONSEC_INTERP1_MSB_u(1)#defineSIO_PERI_NONSEC_INTERP1_LSB_u(1)#defineSIO_PERI_NONSEC_INTERP1_ACCESS"RW"// -----------------------------------------------------------------------------// Field : SIO_PERI_NONSEC_INTERP0// Description : If 1, detach interpolator 0 (of this core) from the Secure SIO,// and attach to the Non-secure SIO.#defineSIO_PERI_NONSEC_INTERP0_RESET_u(0x0)#defineSIO_PERI_NONSEC_INTERP0_BITS_u(0x00000001)#defineSIO_PERI_NONSEC_INTERP0_MSB_u(0)#defineSIO_PERI_NONSEC_INTERP0_LSB_u(0)#defineSIO_PERI_NONSEC_INTERP0_ACCESS"RW"// =============================================================================// Register : SIO_RISCV_SOFTIRQ// Description : Control the assertion of the standard software interrupt// (MIP.MSIP) on the RISC-V cores.//// Unlike the RISC-V timer, this interrupt is not routed to a// normal system-level interrupt line, so can not be used by the// Arm cores.//// It is safe for both cores to write to this register on the same// cycle. The set/clear effect is accumulated across both cores,// and then applied. If a flag is both set and cleared on the same// cycle, only the set takes effect.#defineSIO_RISCV_SOFTIRQ_OFFSET_u(0x000001a0)#defineSIO_RISCV_SOFTIRQ_BITS_u(0x00000303)#defineSIO_RISCV_SOFTIRQ_RESET_u(0x00000000)// -----------------------------------------------------------------------------// Field : SIO_RISCV_SOFTIRQ_CORE1_CLR// Description : Write 1 to atomically clear the core 1 software interrupt flag.// Read to get the status of this flag.#defineSIO_RISCV_SOFTIRQ_CORE1_CLR_RESET_u(0x0)#defineSIO_RISCV_SOFTIRQ_CORE1_CLR_BITS_u(0x00000200)#defineSIO_RISCV_SOFTIRQ_CORE1_CLR_MSB_u(9)#defineSIO_RISCV_SOFTIRQ_CORE1_CLR_LSB_u(9)#defineSIO_RISCV_SOFTIRQ_CORE1_CLR_ACCESS"RW"// -----------------------------------------------------------------------------// Field : SIO_RISCV_SOFTIRQ_CORE0_CLR// Description : Write 1 to atomically clear the core 0 software interrupt flag.// Read to get the status of this flag.#defineSIO_RISCV_SOFTIRQ_CORE0_CLR_RESET_u(0x0)#defineSIO_RISCV_SOFTIRQ_CORE0_CLR_BITS_u(0x00000100)#defineSIO_RISCV_SOFTIRQ_CORE0_CLR_MSB_u(8)#defineSIO_RISCV_SOFTIRQ_CORE0_CLR_LSB_u(8)#defineSIO_RISCV_SOFTIRQ_CORE0_CLR_ACCESS"RW"// -----------------------------------------------------------------------------// Field : SIO_RISCV_SOFTIRQ_CORE1_SET// Description : Write 1 to atomically set the core 1 software interrupt flag.// Read to get the status of this flag.#defineSIO_RISCV_SOFTIRQ_CORE1_SET_RESET_u(0x0)#defineSIO_RISCV_SOFTIRQ_CORE1_SET_BITS_u(0x00000002)#defineSIO_RISCV_SOFTIRQ_CORE1_SET_MSB_u(1)#defineSIO_RISCV_SOFTIRQ_CORE1_SET_LSB_u(1)#defineSIO_RISCV_SOFTIRQ_CORE1_SET_ACCESS"RW"// -----------------------------------------------------------------------------// Field : SIO_RISCV_SOFTIRQ_CORE0_SET// Description : Write 1 to atomically set the core 0 software interrupt flag.// Read to get the status of this flag.#defineSIO_RISCV_SOFTIRQ_CORE0_SET_RESET_u(0x0)#defineSIO_RISCV_SOFTIRQ_CORE0_SET_BITS_u(0x00000001)#defineSIO_RISCV_SOFTIRQ_CORE0_SET_MSB_u(0)#defineSIO_RISCV_SOFTIRQ_CORE0_SET_LSB_u(0)#defineSIO_RISCV_SOFTIRQ_CORE0_SET_ACCESS"RW"// =============================================================================// Register : SIO_MTIME_CTRL// Description : Control register for the RISC-V 64-bit Machine-mode timer. This// timer is only present in the Secure SIO, so is only accessible// to an Arm core in Secure mode or a RISC-V core in Machine mode.//// Note whilst this timer follows the RISC-V privileged// specification, it is equally usable by the Arm cores. The// interrupts are routed to normal system-level interrupt lines as// well as to the MIP.MTIP inputs on the RISC-V cores.#defineSIO_MTIME_CTRL_OFFSET_u(0x000001a4)#defineSIO_MTIME_CTRL_BITS_u(0x0000000f)#defineSIO_MTIME_CTRL_RESET_u(0x0000000d)// -----------------------------------------------------------------------------// Field : SIO_MTIME_CTRL_DBGPAUSE_CORE1// Description : If 1, the timer pauses when core 1 is in the debug halt state.#defineSIO_MTIME_CTRL_DBGPAUSE_CORE1_RESET_u(0x1)#defineSIO_MTIME_CTRL_DBGPAUSE_CORE1_BITS_u(0x00000008)#defineSIO_MTIME_CTRL_DBGPAUSE_CORE1_MSB_u(3)#defineSIO_MTIME_CTRL_DBGPAUSE_CORE1_LSB_u(3)#defineSIO_MTIME_CTRL_DBGPAUSE_CORE1_ACCESS"RW"// -----------------------------------------------------------------------------// Field : SIO_MTIME_CTRL_DBGPAUSE_CORE0// Description : If 1, the timer pauses when core 0 is in the debug halt state.#defineSIO_MTIME_CTRL_DBGPAUSE_CORE0_RESET_u(0x1)#defineSIO_MTIME_CTRL_DBGPAUSE_CORE0_BITS_u(0x00000004)#defineSIO_MTIME_CTRL_DBGPAUSE_CORE0_MSB_u(2)#defineSIO_MTIME_CTRL_DBGPAUSE_CORE0_LSB_u(2)#defineSIO_MTIME_CTRL_DBGPAUSE_CORE0_ACCESS"RW"// -----------------------------------------------------------------------------// Field : SIO_MTIME_CTRL_FULLSPEED// Description : If 1, increment the timer every cycle (i.e. run directly from// the system clock), rather than incrementing on the system-level// timer tick input.#defineSIO_MTIME_CTRL_FULLSPEED_RESET_u(0x0)#defineSIO_MTIME_CTRL_FULLSPEED_BITS_u(0x00000002)#defineSIO_MTIME_CTRL_FULLSPEED_MSB_u(1)#defineSIO_MTIME_CTRL_FULLSPEED_LSB_u(1)#defineSIO_MTIME_CTRL_FULLSPEED_ACCESS"RW"// -----------------------------------------------------------------------------// Field : SIO_MTIME_CTRL_EN// Description : Timer enable bit. When 0, the timer will not increment// automatically.#defineSIO_MTIME_CTRL_EN_RESET_u(0x1)#defineSIO_MTIME_CTRL_EN_BITS_u(0x00000001)#defineSIO_MTIME_CTRL_EN_MSB_u(0)#defineSIO_MTIME_CTRL_EN_LSB_u(0)#defineSIO_MTIME_CTRL_EN_ACCESS"RW"// =============================================================================// Register : SIO_MTIME// Description : Read/write access to the high half of RISC-V Machine-mode// timer. This register is shared between both cores. If both// cores write on the same cycle, core 1 takes precedence.#defineSIO_MTIME_OFFSET_u(0x000001b0)#defineSIO_MTIME_BITS_u(0xffffffff)#defineSIO_MTIME_RESET_u(0x00000000)#defineSIO_MTIME_MSB_u(31)#defineSIO_MTIME_LSB_u(0)#defineSIO_MTIME_ACCESS"RW"// =============================================================================// Register : SIO_MTIMEH// Description : Read/write access to the high half of RISC-V Machine-mode// timer. This register is shared between both cores. If both// cores write on the same cycle, core 1 takes precedence.#defineSIO_MTIMEH_OFFSET_u(0x000001b4)#defineSIO_MTIMEH_BITS_u(0xffffffff)#defineSIO_MTIMEH_RESET_u(0x00000000)#defineSIO_MTIMEH_MSB_u(31)#defineSIO_MTIMEH_LSB_u(0)#defineSIO_MTIMEH_ACCESS"RW"// =============================================================================// Register : SIO_MTIMECMP// Description : Low half of RISC-V Machine-mode timer comparator. This register// is core-local, i.e., each core gets a copy of this register,// with the comparison result routed to its own interrupt line.//// The timer interrupt is asserted whenever MTIME is greater than// or equal to MTIMECMP. This comparison is unsigned, and// performed on the full 64-bit values.#defineSIO_MTIMECMP_OFFSET_u(0x000001b8)#defineSIO_MTIMECMP_BITS_u(0xffffffff)#defineSIO_MTIMECMP_RESET_u(0xffffffff)#defineSIO_MTIMECMP_MSB_u(31)#defineSIO_MTIMECMP_LSB_u(0)#defineSIO_MTIMECMP_ACCESS"RW"// =============================================================================// Register : SIO_MTIMECMPH// Description : High half of RISC-V Machine-mode timer comparator. This// register is core-local.//// The timer interrupt is asserted whenever MTIME is greater than// or equal to MTIMECMP. This comparison is unsigned, and// performed on the full 64-bit values.#defineSIO_MTIMECMPH_OFFSET_u(0x000001bc)#defineSIO_MTIMECMPH_BITS_u(0xffffffff)#defineSIO_MTIMECMPH_RESET_u(0xffffffff)#defineSIO_MTIMECMPH_MSB_u(31)#defineSIO_MTIMECMPH_LSB_u(0)#defineSIO_MTIMECMPH_ACCESS"RW"// =============================================================================// Register : SIO_TMDS_CTRL// Description : Control register for TMDS encoder.#defineSIO_TMDS_CTRL_OFFSET_u(0x000001c0)#defineSIO_TMDS_CTRL_BITS_u(0x1f9fffff)#defineSIO_TMDS_CTRL_RESET_u(0x00000000)// -----------------------------------------------------------------------------// Field : SIO_TMDS_CTRL_CLEAR_BALANCE// Description : Clear the running DC balance state of the TMDS encoders. This// bit should be written once at the beginning of each scanline.#defineSIO_TMDS_CTRL_CLEAR_BALANCE_RESET_u(0x0)#defineSIO_TMDS_CTRL_CLEAR_BALANCE_BITS_u(0x10000000)#defineSIO_TMDS_CTRL_CLEAR_BALANCE_MSB_u(28)#defineSIO_TMDS_CTRL_CLEAR_BALANCE_LSB_u(28)#defineSIO_TMDS_CTRL_CLEAR_BALANCE_ACCESS"SC"// -----------------------------------------------------------------------------// Field : SIO_TMDS_CTRL_PIX2_NOSHIFT// Description : When encoding two pixels's worth of symbols in one cycle (a// read of a PEEK/POP_DOUBLE register), the second encoder sees a// shifted version of the colour data register.//// This control disables that shift, so that both encoder layers// see the same pixel data. This is used for pixel doubling.#defineSIO_TMDS_CTRL_PIX2_NOSHIFT_RESET_u(0x0)#defineSIO_TMDS_CTRL_PIX2_NOSHIFT_BITS_u(0x08000000)#defineSIO_TMDS_CTRL_PIX2_NOSHIFT_MSB_u(27)#defineSIO_TMDS_CTRL_PIX2_NOSHIFT_LSB_u(27)#defineSIO_TMDS_CTRL_PIX2_NOSHIFT_ACCESS"RW"// -----------------------------------------------------------------------------// Field : SIO_TMDS_CTRL_PIX_SHIFT// Description : Shift applied to the colour data register with each read of a// POP alias register.//// Reading from the POP_SINGLE register, or reading from the// POP_DOUBLE register with PIX2_NOSHIFT set (for pixel doubling),// shifts by the indicated amount.//// Reading from a POP_DOUBLE register when PIX2_NOSHIFT is clear// will shift by double the indicated amount. (Shift by 32 means// no shift.)// 0x0 -> Do not shift the colour data register.// 0x1 -> Shift the colour data register by 1 bit// 0x2 -> Shift the colour data register by 2 bits// 0x3 -> Shift the colour data register by 4 bits// 0x4 -> Shift the colour data register by 8 bits// 0x5 -> Shift the colour data register by 16 bits#defineSIO_TMDS_CTRL_PIX_SHIFT_RESET_u(0x0)#defineSIO_TMDS_CTRL_PIX_SHIFT_BITS_u(0x07000000)#defineSIO_TMDS_CTRL_PIX_SHIFT_MSB_u(26)#defineSIO_TMDS_CTRL_PIX_SHIFT_LSB_u(24)#defineSIO_TMDS_CTRL_PIX_SHIFT_ACCESS"RW"#defineSIO_TMDS_CTRL_PIX_SHIFT_VALUE_0_u(0x0)#defineSIO_TMDS_CTRL_PIX_SHIFT_VALUE_1_u(0x1)#defineSIO_TMDS_CTRL_PIX_SHIFT_VALUE_2_u(0x2)#defineSIO_TMDS_CTRL_PIX_SHIFT_VALUE_4_u(0x3)#defineSIO_TMDS_CTRL_PIX_SHIFT_VALUE_8_u(0x4)#defineSIO_TMDS_CTRL_PIX_SHIFT_VALUE_16_u(0x5)// -----------------------------------------------------------------------------// Field : SIO_TMDS_CTRL_INTERLEAVE// Description : Enable lane interleaving for reads of PEEK_SINGLE/POP_SINGLE.//// When interleaving is disabled, each of the 3 symbols appears as// a contiguous 10-bit field, with lane 0 being the least-// significant and starting at bit 0 of the register.//// When interleaving is enabled, the symbols are packed into 5// chunks of 3 lanes times 2 bits (30 bits total). Each chunk// contains two bits of a TMDS symbol per lane, with lane 0 being// the least significant.#defineSIO_TMDS_CTRL_INTERLEAVE_RESET_u(0x0)#defineSIO_TMDS_CTRL_INTERLEAVE_BITS_u(0x00800000)#defineSIO_TMDS_CTRL_INTERLEAVE_MSB_u(23)#defineSIO_TMDS_CTRL_INTERLEAVE_LSB_u(23)#defineSIO_TMDS_CTRL_INTERLEAVE_ACCESS"RW"// -----------------------------------------------------------------------------// Field : SIO_TMDS_CTRL_L2_NBITS// Description : Number of valid colour MSBs for lane 2 (1-8 bits, encoded as 0// through 7). Remaining LSBs are masked to 0 after the rotate.#defineSIO_TMDS_CTRL_L2_NBITS_RESET_u(0x0)#defineSIO_TMDS_CTRL_L2_NBITS_BITS_u(0x001c0000)#defineSIO_TMDS_CTRL_L2_NBITS_MSB_u(20)#defineSIO_TMDS_CTRL_L2_NBITS_LSB_u(18)#defineSIO_TMDS_CTRL_L2_NBITS_ACCESS"RW"// -----------------------------------------------------------------------------// Field : SIO_TMDS_CTRL_L1_NBITS// Description : Number of valid colour MSBs for lane 1 (1-8 bits, encoded as 0// through 7). Remaining LSBs are masked to 0 after the rotate.#defineSIO_TMDS_CTRL_L1_NBITS_RESET_u(0x0)#defineSIO_TMDS_CTRL_L1_NBITS_BITS_u(0x00038000)#defineSIO_TMDS_CTRL_L1_NBITS_MSB_u(17)#defineSIO_TMDS_CTRL_L1_NBITS_LSB_u(15)#defineSIO_TMDS_CTRL_L1_NBITS_ACCESS"RW"// -----------------------------------------------------------------------------// Field : SIO_TMDS_CTRL_L0_NBITS// Description : Number of valid colour MSBs for lane 0 (1-8 bits, encoded as 0// through 7). Remaining LSBs are masked to 0 after the rotate.#defineSIO_TMDS_CTRL_L0_NBITS_RESET_u(0x0)#defineSIO_TMDS_CTRL_L0_NBITS_BITS_u(0x00007000)#defineSIO_TMDS_CTRL_L0_NBITS_MSB_u(14)#defineSIO_TMDS_CTRL_L0_NBITS_LSB_u(12)#defineSIO_TMDS_CTRL_L0_NBITS_ACCESS"RW"// -----------------------------------------------------------------------------// Field : SIO_TMDS_CTRL_L2_ROT// Description : Right-rotate the 16 LSBs of the colour accumulator by 0-15// bits, in order to get the MSB of the lane 2 (red) colour data// aligned with the MSB of the 8-bit encoder input.//// For example, for RGB565 (red most significant), red is bits// 15:11, so should be right-rotated by 8 bits to align with bits// 7:3 of the encoder input.#defineSIO_TMDS_CTRL_L2_ROT_RESET_u(0x0)#defineSIO_TMDS_CTRL_L2_ROT_BITS_u(0x00000f00)#defineSIO_TMDS_CTRL_L2_ROT_MSB_u(11)#defineSIO_TMDS_CTRL_L2_ROT_LSB_u(8)#defineSIO_TMDS_CTRL_L2_ROT_ACCESS"RW"// -----------------------------------------------------------------------------// Field : SIO_TMDS_CTRL_L1_ROT// Description : Right-rotate the 16 LSBs of the colour accumulator by 0-15// bits, in order to get the MSB of the lane 1 (green) colour data// aligned with the MSB of the 8-bit encoder input.//// For example, for RGB565, green is bits 10:5, so should be// right-rotated by 3 bits to align with bits 7:2 of the encoder// input.#defineSIO_TMDS_CTRL_L1_ROT_RESET_u(0x0)#defineSIO_TMDS_CTRL_L1_ROT_BITS_u(0x000000f0)#defineSIO_TMDS_CTRL_L1_ROT_MSB_u(7)#defineSIO_TMDS_CTRL_L1_ROT_LSB_u(4)#defineSIO_TMDS_CTRL_L1_ROT_ACCESS"RW"// -----------------------------------------------------------------------------// Field : SIO_TMDS_CTRL_L0_ROT// Description : Right-rotate the 16 LSBs of the colour accumulator by 0-15// bits, in order to get the MSB of the lane 0 (blue) colour data// aligned with the MSB of the 8-bit encoder input.//// For example, for RGB565 (red most significant), blue is bits// 4:0, so should be right-rotated by 13 to align with bits 7:3 of// the encoder input.#defineSIO_TMDS_CTRL_L0_ROT_RESET_u(0x0)#defineSIO_TMDS_CTRL_L0_ROT_BITS_u(0x0000000f)#defineSIO_TMDS_CTRL_L0_ROT_MSB_u(3)#defineSIO_TMDS_CTRL_L0_ROT_LSB_u(0)#defineSIO_TMDS_CTRL_L0_ROT_ACCESS"RW"// =============================================================================// Register : SIO_TMDS_WDATA// Description : Write-only access to the TMDS colour data register.#defineSIO_TMDS_WDATA_OFFSET_u(0x000001c4)#defineSIO_TMDS_WDATA_BITS_u(0xffffffff)#defineSIO_TMDS_WDATA_RESET_u(0x00000000)#defineSIO_TMDS_WDATA_MSB_u(31)#defineSIO_TMDS_WDATA_LSB_u(0)#defineSIO_TMDS_WDATA_ACCESS"WO"// =============================================================================// Register : SIO_TMDS_PEEK_SINGLE// Description : Get the encoding of one pixel's worth of colour data, packed// into a 32-bit value (3x10-bit symbols).//// The PEEK alias does not shift the colour register when read,// but still advances the running DC balance state of each// encoder. This is useful for pixel doubling.#defineSIO_TMDS_PEEK_SINGLE_OFFSET_u(0x000001c8)#defineSIO_TMDS_PEEK_SINGLE_BITS_u(0xffffffff)#defineSIO_TMDS_PEEK_SINGLE_RESET_u(0x00000000)#defineSIO_TMDS_PEEK_SINGLE_MSB_u(31)#defineSIO_TMDS_PEEK_SINGLE_LSB_u(0)#defineSIO_TMDS_PEEK_SINGLE_ACCESS"RF"// =============================================================================// Register : SIO_TMDS_POP_SINGLE// Description : Get the encoding of one pixel's worth of colour data, packed// into a 32-bit value. The packing is 5 chunks of 3 lanes times 2// bits (30 bits total). Each chunk contains two bits of a TMDS// symbol per lane. This format is intended for shifting out with// the HSTX peripheral on RP2350.//// The POP alias shifts the colour register when read, as well as// advancing the running DC balance state of each encoder.#defineSIO_TMDS_POP_SINGLE_OFFSET_u(0x000001cc)#defineSIO_TMDS_POP_SINGLE_BITS_u(0xffffffff)#defineSIO_TMDS_POP_SINGLE_RESET_u(0x00000000)#defineSIO_TMDS_POP_SINGLE_MSB_u(31)#defineSIO_TMDS_POP_SINGLE_LSB_u(0)#defineSIO_TMDS_POP_SINGLE_ACCESS"RF"// =============================================================================// Register : SIO_TMDS_PEEK_DOUBLE_L0// Description : Get lane 0 of the encoding of two pixels' worth of colour data.// Two 10-bit TMDS symbols are packed at the bottom of a 32-bit// word.//// The PEEK alias does not shift the colour register when read,// but still advances the lane 0 DC balance state. This is useful// if all 3 lanes' worth of encode are to be read at once, rather// than processing the entire scanline for one lane before moving// to the next lane.#defineSIO_TMDS_PEEK_DOUBLE_L0_OFFSET_u(0x000001d0)#defineSIO_TMDS_PEEK_DOUBLE_L0_BITS_u(0xffffffff)#defineSIO_TMDS_PEEK_DOUBLE_L0_RESET_u(0x00000000)#defineSIO_TMDS_PEEK_DOUBLE_L0_MSB_u(31)#defineSIO_TMDS_PEEK_DOUBLE_L0_LSB_u(0)#defineSIO_TMDS_PEEK_DOUBLE_L0_ACCESS"RF"// =============================================================================// Register : SIO_TMDS_POP_DOUBLE_L0// Description : Get lane 0 of the encoding of two pixels' worth of colour data.// Two 10-bit TMDS symbols are packed at the bottom of a 32-bit// word.//// The POP alias shifts the colour register when read, according// to the values of PIX_SHIFT and PIX2_NOSHIFT.#defineSIO_TMDS_POP_DOUBLE_L0_OFFSET_u(0x000001d4)#defineSIO_TMDS_POP_DOUBLE_L0_BITS_u(0xffffffff)#defineSIO_TMDS_POP_DOUBLE_L0_RESET_u(0x00000000)#defineSIO_TMDS_POP_DOUBLE_L0_MSB_u(31)#defineSIO_TMDS_POP_DOUBLE_L0_LSB_u(0)#defineSIO_TMDS_POP_DOUBLE_L0_ACCESS"RF"// =============================================================================// Register : SIO_TMDS_PEEK_DOUBLE_L1// Description : Get lane 1 of the encoding of two pixels' worth of colour data.// Two 10-bit TMDS symbols are packed at the bottom of a 32-bit// word.//// The PEEK alias does not shift the colour register when read,// but still advances the lane 1 DC balance state. This is useful// if all 3 lanes' worth of encode are to be read at once, rather// than processing the entire scanline for one lane before moving// to the next lane.#defineSIO_TMDS_PEEK_DOUBLE_L1_OFFSET_u(0x000001d8)#defineSIO_TMDS_PEEK_DOUBLE_L1_BITS_u(0xffffffff)#defineSIO_TMDS_PEEK_DOUBLE_L1_RESET_u(0x00000000)#defineSIO_TMDS_PEEK_DOUBLE_L1_MSB_u(31)#defineSIO_TMDS_PEEK_DOUBLE_L1_LSB_u(0)#defineSIO_TMDS_PEEK_DOUBLE_L1_ACCESS"RF"// =============================================================================// Register : SIO_TMDS_POP_DOUBLE_L1// Description : Get lane 1 of the encoding of two pixels' worth of colour data.// Two 10-bit TMDS symbols are packed at the bottom of a 32-bit// word.//// The POP alias shifts the colour register when read, according// to the values of PIX_SHIFT and PIX2_NOSHIFT.#defineSIO_TMDS_POP_DOUBLE_L1_OFFSET_u(0x000001dc)#defineSIO_TMDS_POP_DOUBLE_L1_BITS_u(0xffffffff)#defineSIO_TMDS_POP_DOUBLE_L1_RESET_u(0x00000000)#defineSIO_TMDS_POP_DOUBLE_L1_MSB_u(31)#defineSIO_TMDS_POP_DOUBLE_L1_LSB_u(0)#defineSIO_TMDS_POP_DOUBLE_L1_ACCESS"RF"// =============================================================================// Register : SIO_TMDS_PEEK_DOUBLE_L2// Description : Get lane 2 of the encoding of two pixels' worth of colour data.// Two 10-bit TMDS symbols are packed at the bottom of a 32-bit// word.//// The PEEK alias does not shift the colour register when read,// but still advances the lane 2 DC balance state. This is useful// if all 3 lanes' worth of encode are to be read at once, rather// than processing the entire scanline for one lane before moving// to the next lane.#defineSIO_TMDS_PEEK_DOUBLE_L2_OFFSET_u(0x000001e0)#defineSIO_TMDS_PEEK_DOUBLE_L2_BITS_u(0xffffffff)#defineSIO_TMDS_PEEK_DOUBLE_L2_RESET_u(0x00000000)#defineSIO_TMDS_PEEK_DOUBLE_L2_MSB_u(31)#defineSIO_TMDS_PEEK_DOUBLE_L2_LSB_u(0)#defineSIO_TMDS_PEEK_DOUBLE_L2_ACCESS"RF"// =============================================================================// Register : SIO_TMDS_POP_DOUBLE_L2// Description : Get lane 2 of the encoding of two pixels' worth of colour data.// Two 10-bit TMDS symbols are packed at the bottom of a 32-bit// word.//// The POP alias shifts the colour register when read, according// to the values of PIX_SHIFT and PIX2_NOSHIFT.#defineSIO_TMDS_POP_DOUBLE_L2_OFFSET_u(0x000001e4)#defineSIO_TMDS_POP_DOUBLE_L2_BITS_u(0xffffffff)#defineSIO_TMDS_POP_DOUBLE_L2_RESET_u(0x00000000)#defineSIO_TMDS_POP_DOUBLE_L2_MSB_u(31)#defineSIO_TMDS_POP_DOUBLE_L2_LSB_u(0)#defineSIO_TMDS_POP_DOUBLE_L2_ACCESS"RF"1196 defines// =============================================================================/* ... */#endif// _HARDWARE_REGS_SIO_H
Details
Show: from
Types: Columns:
All items filtered out
All items filtered out
This file uses the notable symbols shown below. Click anywhere in the file to view more details.