|  | /* | 
|  | * Copyright (c) 2021,2025 Henrik Brix Andersen <henrik@brixandersen.dk> | 
|  | * | 
|  | * SPDX-License-Identifier: Apache-2.0 | 
|  | */ | 
|  |  | 
|  | #ifndef _NEORV32_SOC_H | 
|  | #define _NEORV32_SOC_H | 
|  |  | 
|  | /* System information (SYSINFO) register offsets */ | 
|  | #define NEORV32_SYSINFO_CLK         0x00U | 
|  | #define NEORV32_SYSINFO_MISC        0x04U | 
|  | #define NEORV32_SYSINFO_SOC         0x08U | 
|  | #define NEORV32_SYSINFO_CACHE       0x0cU | 
|  |  | 
|  | /* System information (SYSINFO) MISC register bits */ | 
|  | #define NEORV32_SYSINFO_MISC_IMEM GENMASK(7, 0) | 
|  | #define NEORV32_SYSINFO_MISC_DMEM GENMASK(15, 8) | 
|  | #define NEORV32_SYSINFO_MISC_HART GENMASK(23, 16) | 
|  | #define NEORV32_SYSINFO_MISC_BOOT GENMASK(31, 24) | 
|  |  | 
|  | /* System information (SYSINFO) SOC register bits */ | 
|  | #define NEORV32_SYSINFO_SOC_BOOTLOADER    BIT(0) | 
|  | #define NEORV32_SYSINFO_SOC_XBUS          BIT(1) | 
|  | #define NEORV32_SYSINFO_SOC_IMEM          BIT(2) | 
|  | #define NEORV32_SYSINFO_SOC_DMEM          BIT(3) | 
|  | #define NEORV32_SYSINFO_SOC_OCD           BIT(4) | 
|  | #define NEORV32_SYSINFO_SOC_ICACHE        BIT(5) | 
|  | #define NEORV32_SYSINFO_SOC_DCACHE        BIT(6) | 
|  | #define NEORV32_SYSINFO_SOC_OCD_AUTH      BIT(11) | 
|  | #define NEORV32_SYSINFO_SOC_IMEM_ROM      BIT(12) | 
|  | #define NEORV32_SYSINFO_SOC_IO_TWD        BIT(13) | 
|  | #define NEORV32_SYSINFO_SOC_IO_DMA        BIT(14) | 
|  | #define NEORV32_SYSINFO_SOC_IO_GPIO       BIT(15) | 
|  | #define NEORV32_SYSINFO_SOC_IO_CLINT      BIT(16) | 
|  | #define NEORV32_SYSINFO_SOC_IO_UART0      BIT(17) | 
|  | #define NEORV32_SYSINFO_SOC_IO_SPI        BIT(18) | 
|  | #define NEORV32_SYSINFO_SOC_IO_TWI        BIT(19) | 
|  | #define NEORV32_SYSINFO_SOC_IO_PWM        BIT(20) | 
|  | #define NEORV32_SYSINFO_SOC_IO_WDT        BIT(21) | 
|  | #define NEORV32_SYSINFO_SOC_IO_CFS        BIT(22) | 
|  | #define NEORV32_SYSINFO_SOC_IO_TRNG       BIT(23) | 
|  | #define NEORV32_SYSINFO_SOC_IO_SDI        BIT(24) | 
|  | #define NEORV32_SYSINFO_SOC_IO_UART1      BIT(25) | 
|  | #define NEORV32_SYSINFO_SOC_IO_NEOLED     BIT(26) | 
|  | #define NEORV32_SYSINFO_SOC_IO_GPTMR      BIT(28) | 
|  | #define NEORV32_SYSINFO_SOC_IO_SLINK      BIT(29) | 
|  | #define NEORV32_SYSINFO_SOC_IO_ONEWIRE    BIT(30) | 
|  |  | 
|  | /* System information (SYSINFO) CACHE register bits */ | 
|  | #define NEORV32_SYSINFO_CACHE_INST_BLOCK_SIZE GENMASK(3, 0) | 
|  | #define NEORV32_SYSINFO_CACHE_INST_NUM_BLOCKS GENMASK(7, 4) | 
|  | #define NEORV32_SYSINFO_CACHE_DATA_BLOCK_SIZE GENMASK(11, 8) | 
|  | #define NEORV32_SYSINFO_CACHE_DATA_NUM_BLOCKS GENMASK(15, 12) | 
|  |  | 
|  | #endif /* _NEORV32_SOC_H */ |