diff --git a/.github/workflows/bsp_buildings.yml b/.github/workflows/bsp_buildings.yml index 5a2a90d68d..ed9f900535 100644 --- a/.github/workflows/bsp_buildings.yml +++ b/.github/workflows/bsp_buildings.yml @@ -234,6 +234,7 @@ jobs: - "renesas/ra8d1-ek" - "renesas/ra8d1-vision-board" - "renesas/rzt2m_rsk" + - "renesas/rzn2l_rsk" - "frdm-k64f" - "xplorer4330/M4" - RTT_BSP: "gd32_n32_apm32" diff --git a/bsp/renesas/README.md b/bsp/renesas/README.md index e7e95d7880..ef89868352 100644 --- a/bsp/renesas/README.md +++ b/bsp/renesas/README.md @@ -19,7 +19,9 @@ RA 系列 BSP 目前支持情况如下表所示: | [ra8m1-ek](ra8m1-ek) | Renesas 官方 EK-RA8M1 开发板 | | [ra8d1-ek](ra8d1-ek) | Renesas 官方 EK-RA8D1 开发板 | | [ra8d1-vision-board](ra8d1-vision-board) | Renesas 联合 RT-Thread RA8D1-Vision-Board 开发板 | +| **RZ 系列** | | | [rzt2m_rsk](rzt2m_rsk) | Renesas 官方 RSK-RZT2M 开发板 | +| [rzn2l_rsk](rzn2l_rsk) | Renesas 官方 RSK-RZN2L 开发板 | 可以通过阅读相应 BSP 下的 README 来快速上手,如果想要使用 BSP 更多功能可参考 docs 文件夹下提供的说明文档,如下表所示: diff --git a/bsp/renesas/rzn2l_rsk/.api_xml b/bsp/renesas/rzn2l_rsk/.api_xml new file mode 100644 index 0000000000..fc9bf0b30e --- /dev/null +++ b/bsp/renesas/rzn2l_rsk/.api_xml @@ -0,0 +1,2 @@ + + diff --git a/bsp/renesas/rzn2l_rsk/.config b/bsp/renesas/rzn2l_rsk/.config new file mode 100644 index 0000000000..6f402d9bc8 --- /dev/null +++ b/bsp/renesas/rzn2l_rsk/.config @@ -0,0 +1,1194 @@ + +# +# RT-Thread Kernel +# +CONFIG_RT_NAME_MAX=16 +# CONFIG_RT_USING_ARCH_DATA_TYPE is not set +# CONFIG_RT_USING_NANO is not set +# CONFIG_RT_USING_AMP is not set +# CONFIG_RT_USING_SMP is not set +CONFIG_RT_CPUS_NR=1 +CONFIG_RT_ALIGN_SIZE=8 +# CONFIG_RT_THREAD_PRIORITY_8 is not set +CONFIG_RT_THREAD_PRIORITY_32=y +# CONFIG_RT_THREAD_PRIORITY_256 is not set +CONFIG_RT_THREAD_PRIORITY_MAX=32 +CONFIG_RT_TICK_PER_SECOND=1000 +CONFIG_RT_USING_HOOK=y +CONFIG_RT_HOOK_USING_FUNC_PTR=y +# CONFIG_RT_USING_HOOKLIST is not set +CONFIG_RT_USING_IDLE_HOOK=y +CONFIG_RT_IDLE_HOOK_LIST_SIZE=4 +CONFIG_IDLE_THREAD_STACK_SIZE=1024 +# CONFIG_RT_USING_TIMER_SOFT is not set +# CONFIG_RT_USING_CPU_USAGE_TRACER is not set + +# +# kservice optimization +# +# CONFIG_RT_USING_TINY_FFS is not set +# end of kservice optimization + +# +# klibc optimization +# +# CONFIG_RT_KLIBC_USING_STDLIB is not set +# CONFIG_RT_KLIBC_USING_TINY_SIZE is not set +# CONFIG_RT_KLIBC_USING_PRINTF_LONGLONG is not set +# end of klibc optimization + +CONFIG_RT_USING_DEBUG=y +CONFIG_RT_DEBUGING_ASSERT=y +CONFIG_RT_DEBUGING_COLOR=y +CONFIG_RT_DEBUGING_CONTEXT=y +# CONFIG_RT_DEBUGING_AUTO_INIT is not set +CONFIG_RT_USING_OVERFLOW_CHECK=y + +# +# Inter-Thread communication +# +CONFIG_RT_USING_SEMAPHORE=y +CONFIG_RT_USING_MUTEX=y +CONFIG_RT_USING_EVENT=y +CONFIG_RT_USING_MAILBOX=y +CONFIG_RT_USING_MESSAGEQUEUE=y +# CONFIG_RT_USING_MESSAGEQUEUE_PRIORITY is not set +# CONFIG_RT_USING_SIGNALS is not set +# end of Inter-Thread communication + +# +# Memory Management +# +CONFIG_RT_USING_MEMPOOL=y +CONFIG_RT_USING_SMALL_MEM=y +# CONFIG_RT_USING_SLAB is not set +# CONFIG_RT_USING_MEMHEAP is not set +CONFIG_RT_USING_SMALL_MEM_AS_HEAP=y +# CONFIG_RT_USING_MEMHEAP_AS_HEAP is not set +# CONFIG_RT_USING_SLAB_AS_HEAP is not set +# CONFIG_RT_USING_USERHEAP is not set +# CONFIG_RT_USING_NOHEAP is not set +# CONFIG_RT_USING_MEMTRACE is not set +# CONFIG_RT_USING_HEAP_ISR is not set +CONFIG_RT_USING_HEAP=y +# end of Memory Management + +CONFIG_RT_USING_DEVICE=y +# CONFIG_RT_USING_DEVICE_OPS is not set +# CONFIG_RT_USING_INTERRUPT_INFO is not set +# CONFIG_RT_USING_THREADSAFE_PRINTF is not set +# CONFIG_RT_USING_SCHED_THREAD_CTX is not set +CONFIG_RT_USING_CONSOLE=y +CONFIG_RT_CONSOLEBUF_SIZE=512 +CONFIG_RT_CONSOLE_DEVICE_NAME="uart0" +CONFIG_RT_VER_NUM=0x50200 +# CONFIG_RT_USING_STDC_ATOMIC is not set +CONFIG_RT_BACKTRACE_LEVEL_MAX_NR=32 +# end of RT-Thread Kernel + +CONFIG_RT_USING_HW_ATOMIC=y +CONFIG_ARCH_ARM=y +CONFIG_ARCH_ARM_CORTEX_R=y +CONFIG_ARCH_ARM_CORTEX_R52=y + +# +# RT-Thread Components +# +CONFIG_RT_USING_COMPONENTS_INIT=y +CONFIG_RT_USING_USER_MAIN=y +CONFIG_RT_MAIN_THREAD_STACK_SIZE=2048 +CONFIG_RT_MAIN_THREAD_PRIORITY=10 +# CONFIG_RT_USING_LEGACY is not set +CONFIG_RT_USING_MSH=y +CONFIG_RT_USING_FINSH=y +CONFIG_FINSH_USING_MSH=y +CONFIG_FINSH_THREAD_NAME="tshell" +CONFIG_FINSH_THREAD_PRIORITY=20 +CONFIG_FINSH_THREAD_STACK_SIZE=4096 +CONFIG_FINSH_USING_HISTORY=y +CONFIG_FINSH_HISTORY_LINES=5 +CONFIG_FINSH_USING_SYMTAB=y +CONFIG_FINSH_CMD_SIZE=80 +CONFIG_MSH_USING_BUILT_IN_COMMANDS=y +CONFIG_FINSH_USING_DESCRIPTION=y +# CONFIG_FINSH_ECHO_DISABLE_DEFAULT is not set +# CONFIG_FINSH_USING_AUTH is not set +CONFIG_FINSH_ARG_MAX=10 +CONFIG_FINSH_USING_OPTION_COMPLETION=y + +# +# DFS: device virtual file system +# +# CONFIG_RT_USING_DFS is not set +# end of DFS: device virtual file system + +# CONFIG_RT_USING_FAL is not set + +# +# Device Drivers +# +# CONFIG_RT_USING_DM is not set +# CONFIG_RT_USING_DEV_BUS is not set +CONFIG_RT_USING_DEVICE_IPC=y +CONFIG_RT_UNAMED_PIPE_NUMBER=64 +CONFIG_RT_USING_SYSTEM_WORKQUEUE=y +CONFIG_RT_SYSTEM_WORKQUEUE_STACKSIZE=2048 +CONFIG_RT_SYSTEM_WORKQUEUE_PRIORITY=23 +CONFIG_RT_USING_SERIAL=y +# CONFIG_RT_USING_SERIAL_V1 is not set +CONFIG_RT_USING_SERIAL_V2=y +CONFIG_RT_SERIAL_USING_DMA=y +# CONFIG_RT_USING_CAN is not set +# CONFIG_RT_USING_CPUTIME is not set +# CONFIG_RT_USING_I2C is not set +# CONFIG_RT_USING_PHY is not set +# CONFIG_RT_USING_ADC is not set +# CONFIG_RT_USING_DAC is not set +# CONFIG_RT_USING_NULL is not set +# CONFIG_RT_USING_ZERO is not set +# CONFIG_RT_USING_RANDOM is not set +# CONFIG_RT_USING_PWM is not set +# CONFIG_RT_USING_PULSE_ENCODER is not set +# CONFIG_RT_USING_INPUT_CAPTURE is not set +# CONFIG_RT_USING_MTD_NOR is not set +# CONFIG_RT_USING_MTD_NAND is not set +# CONFIG_RT_USING_PM is not set +# CONFIG_RT_USING_RTC is not set +# CONFIG_RT_USING_SDIO is not set +# CONFIG_RT_USING_SPI is not set +# CONFIG_RT_USING_WDT is not set +# CONFIG_RT_USING_AUDIO is not set +# CONFIG_RT_USING_SENSOR is not set +# CONFIG_RT_USING_TOUCH is not set +# CONFIG_RT_USING_LCD is not set +# CONFIG_RT_USING_HWCRYPTO is not set +# CONFIG_RT_USING_WIFI is not set +# CONFIG_RT_USING_VIRTIO is not set +CONFIG_RT_USING_PIN=y +# CONFIG_RT_USING_KTIME is not set +# CONFIG_RT_USING_HWTIMER is not set +# CONFIG_RT_USING_CHERRYUSB is not set +# end of Device Drivers + +# +# C/C++ and POSIX layer +# + +# +# ISO-ANSI C layer +# + +# +# Timezone and Daylight Saving Time +# +# CONFIG_RT_LIBC_USING_FULL_TZ_DST is not set +CONFIG_RT_LIBC_USING_LIGHT_TZ_DST=y +CONFIG_RT_LIBC_TZ_DEFAULT_HOUR=8 +CONFIG_RT_LIBC_TZ_DEFAULT_MIN=0 +CONFIG_RT_LIBC_TZ_DEFAULT_SEC=0 +# end of Timezone and Daylight Saving Time +# end of ISO-ANSI C layer + +# +# POSIX (Portable Operating System Interface) layer +# +# CONFIG_RT_USING_POSIX_FS is not set +# CONFIG_RT_USING_POSIX_DELAY is not set +# CONFIG_RT_USING_POSIX_CLOCK is not set +# CONFIG_RT_USING_POSIX_TIMER is not set +# CONFIG_RT_USING_PTHREADS is not set +# CONFIG_RT_USING_MODULE is not set + +# +# Interprocess Communication (IPC) +# +# CONFIG_RT_USING_POSIX_PIPE is not set +# CONFIG_RT_USING_POSIX_MESSAGE_QUEUE is not set +# CONFIG_RT_USING_POSIX_MESSAGE_SEMAPHORE is not set + +# +# Socket is in the 'Network' category +# +# end of Interprocess Communication (IPC) +# end of POSIX (Portable Operating System Interface) layer + +# CONFIG_RT_USING_CPLUSPLUS is not set +# end of C/C++ and POSIX layer + +# +# Network +# +# CONFIG_RT_USING_SAL is not set +# CONFIG_RT_USING_NETDEV is not set +# CONFIG_RT_USING_LWIP is not set +# CONFIG_RT_USING_AT is not set +# end of Network + +# +# Memory protection +# +# CONFIG_RT_USING_MEM_PROTECTION is not set +# CONFIG_RT_USING_HW_STACK_GUARD is not set +# end of Memory protection + +# +# Utilities +# +# CONFIG_RT_USING_RYM is not set +# CONFIG_RT_USING_ULOG is not set +# CONFIG_RT_USING_UTEST is not set +# CONFIG_RT_USING_VAR_EXPORT is not set +# CONFIG_RT_USING_RESOURCE_ID is not set +# CONFIG_RT_USING_ADT is not set +# CONFIG_RT_USING_RT_LINK is not set +# end of Utilities + +# CONFIG_RT_USING_VBUS is not set + +# +# Using USB legacy version +# +# CONFIG_RT_USING_USB_HOST is not set +# CONFIG_RT_USING_USB_DEVICE is not set +# end of Using USB legacy version + +# CONFIG_RT_USING_FDT is not set +# end of RT-Thread Components + +# +# RT-Thread Utestcases +# +# CONFIG_RT_USING_UTESTCASES is not set +# end of RT-Thread Utestcases + +# +# RT-Thread online packages +# + +# +# IoT - internet of things +# +# CONFIG_PKG_USING_LORAWAN_DRIVER is not set +# CONFIG_PKG_USING_PAHOMQTT is not set +# CONFIG_PKG_USING_UMQTT is not set +# CONFIG_PKG_USING_WEBCLIENT is not set +# CONFIG_PKG_USING_WEBNET is not set +# CONFIG_PKG_USING_MONGOOSE is not set +# CONFIG_PKG_USING_MYMQTT is not set +# CONFIG_PKG_USING_KAWAII_MQTT is not set +# CONFIG_PKG_USING_BC28_MQTT is not set +# CONFIG_PKG_USING_WEBTERMINAL is not set +# CONFIG_PKG_USING_FREEMODBUS is not set +# CONFIG_PKG_USING_NANOPB is not set +# CONFIG_PKG_USING_WIFI_HOST_DRIVER is not set + +# +# Wi-Fi +# + +# +# Marvell WiFi +# +# CONFIG_PKG_USING_WLANMARVELL is not set +# end of Marvell WiFi + +# +# Wiced WiFi +# +# CONFIG_PKG_USING_WLAN_WICED is not set +# end of Wiced WiFi + +# CONFIG_PKG_USING_RW007 is not set + +# +# CYW43012 WiFi +# +# CONFIG_PKG_USING_WLAN_CYW43012 is not set +# end of CYW43012 WiFi + +# +# BL808 WiFi +# +# CONFIG_PKG_USING_WLAN_BL808 is not set +# end of BL808 WiFi + +# +# CYW43439 WiFi +# +# CONFIG_PKG_USING_WLAN_CYW43439 is not set +# end of CYW43439 WiFi +# end of Wi-Fi + +# CONFIG_PKG_USING_COAP is not set +# CONFIG_PKG_USING_NOPOLL is not set +# CONFIG_PKG_USING_NETUTILS is not set +# CONFIG_PKG_USING_CMUX is not set +# CONFIG_PKG_USING_PPP_DEVICE is not set +# CONFIG_PKG_USING_AT_DEVICE is not set +# CONFIG_PKG_USING_ATSRV_SOCKET is not set +# CONFIG_PKG_USING_WIZNET is not set +# CONFIG_PKG_USING_ZB_COORDINATOR is not set + +# +# IoT Cloud +# +# CONFIG_PKG_USING_ONENET is not set +# CONFIG_PKG_USING_GAGENT_CLOUD is not set +# CONFIG_PKG_USING_ALI_IOTKIT is not set +# CONFIG_PKG_USING_AZURE is not set +# CONFIG_PKG_USING_TENCENT_IOT_EXPLORER is not set +# CONFIG_PKG_USING_JIOT-C-SDK is not set +# CONFIG_PKG_USING_UCLOUD_IOT_SDK is not set +# CONFIG_PKG_USING_JOYLINK is not set +# CONFIG_PKG_USING_IOTSHARP_SDK is not set +# end of IoT Cloud + +# CONFIG_PKG_USING_NIMBLE is not set +# CONFIG_PKG_USING_LLSYNC_SDK_ADAPTER is not set +# CONFIG_PKG_USING_OTA_DOWNLOADER is not set +# CONFIG_PKG_USING_IPMSG is not set +# CONFIG_PKG_USING_LSSDP is not set +# CONFIG_PKG_USING_AIRKISS_OPEN is not set +# CONFIG_PKG_USING_LIBRWS is not set +# CONFIG_PKG_USING_TCPSERVER is not set +# CONFIG_PKG_USING_PROTOBUF_C is not set +# CONFIG_PKG_USING_DLT645 is not set +# CONFIG_PKG_USING_QXWZ is not set +# CONFIG_PKG_USING_SMTP_CLIENT is not set +# CONFIG_PKG_USING_ABUP_FOTA is not set +# CONFIG_PKG_USING_LIBCURL2RTT is not set +# CONFIG_PKG_USING_CAPNP is not set +# CONFIG_PKG_USING_AGILE_TELNET is not set +# CONFIG_PKG_USING_NMEALIB is not set +# CONFIG_PKG_USING_PDULIB is not set +# CONFIG_PKG_USING_BTSTACK is not set +# CONFIG_PKG_USING_BT_CYW43012 is not set +# CONFIG_PKG_USING_CYW43XX is not set +# CONFIG_PKG_USING_LORAWAN_ED_STACK is not set +# CONFIG_PKG_USING_WAYZ_IOTKIT is not set +# CONFIG_PKG_USING_MAVLINK is not set +# CONFIG_PKG_USING_BSAL is not set +# CONFIG_PKG_USING_AGILE_MODBUS is not set +# CONFIG_PKG_USING_AGILE_FTP is not set +# CONFIG_PKG_USING_EMBEDDEDPROTO is not set +# CONFIG_PKG_USING_RT_LINK_HW is not set +# CONFIG_PKG_USING_RYANMQTT is not set +# CONFIG_PKG_USING_RYANW5500 is not set +# CONFIG_PKG_USING_LORA_PKT_FWD is not set +# CONFIG_PKG_USING_LORA_GW_DRIVER_LIB is not set +# CONFIG_PKG_USING_LORA_PKT_SNIFFER is not set +# CONFIG_PKG_USING_HM is not set +# CONFIG_PKG_USING_SMALL_MODBUS is not set +# CONFIG_PKG_USING_NET_SERVER is not set +# CONFIG_PKG_USING_ZFTP is not set +# CONFIG_PKG_USING_WOL is not set +# CONFIG_PKG_USING_ZEPHYR_POLLING is not set +# CONFIG_PKG_USING_MATTER_ADAPTATION_LAYER is not set +# CONFIG_PKG_USING_LHC_MODBUS is not set +# CONFIG_PKG_USING_QMODBUS is not set +# end of IoT - internet of things + +# +# security packages +# +# CONFIG_PKG_USING_MBEDTLS is not set +# CONFIG_PKG_USING_LIBSODIUM is not set +# CONFIG_PKG_USING_LIBHYDROGEN is not set +# CONFIG_PKG_USING_TINYCRYPT is not set +# CONFIG_PKG_USING_TFM is not set +# CONFIG_PKG_USING_YD_CRYPTO is not set +# end of security packages + +# +# language packages +# + +# +# JSON: JavaScript Object Notation, a lightweight data-interchange format +# +# CONFIG_PKG_USING_CJSON is not set +# CONFIG_PKG_USING_LJSON is not set +# CONFIG_PKG_USING_RT_CJSON_TOOLS is not set +# CONFIG_PKG_USING_RAPIDJSON is not set +# CONFIG_PKG_USING_JSMN is not set +# CONFIG_PKG_USING_AGILE_JSMN is not set +# CONFIG_PKG_USING_PARSON is not set +# end of JSON: JavaScript Object Notation, a lightweight data-interchange format + +# +# XML: Extensible Markup Language +# +# CONFIG_PKG_USING_SIMPLE_XML is not set +# CONFIG_PKG_USING_EZXML is not set +# end of XML: Extensible Markup Language + +# CONFIG_PKG_USING_LUATOS_SOC is not set +# CONFIG_PKG_USING_LUA is not set +# CONFIG_PKG_USING_JERRYSCRIPT is not set +# CONFIG_PKG_USING_MICROPYTHON is not set +# CONFIG_PKG_USING_PIKASCRIPT is not set +# CONFIG_PKG_USING_RTT_RUST is not set +# end of language packages + +# +# multimedia packages +# + +# +# LVGL: powerful and easy-to-use embedded GUI library +# +# CONFIG_PKG_USING_LVGL is not set +# CONFIG_PKG_USING_LV_MUSIC_DEMO is not set +# CONFIG_PKG_USING_GUI_GUIDER_DEMO is not set +# end of LVGL: powerful and easy-to-use embedded GUI library + +# +# u8g2: a monochrome graphic library +# +# CONFIG_PKG_USING_U8G2_OFFICIAL is not set +# CONFIG_PKG_USING_U8G2 is not set +# end of u8g2: a monochrome graphic library + +# CONFIG_PKG_USING_OPENMV is not set +# CONFIG_PKG_USING_MUPDF is not set +# CONFIG_PKG_USING_STEMWIN is not set +# CONFIG_PKG_USING_WAVPLAYER is not set +# CONFIG_PKG_USING_TJPGD is not set +# CONFIG_PKG_USING_PDFGEN is not set +# CONFIG_PKG_USING_HELIX is not set +# CONFIG_PKG_USING_AZUREGUIX is not set +# CONFIG_PKG_USING_TOUCHGFX2RTT is not set +# CONFIG_PKG_USING_NUEMWIN is not set +# CONFIG_PKG_USING_MP3PLAYER is not set +# CONFIG_PKG_USING_TINYJPEG is not set +# CONFIG_PKG_USING_UGUI is not set +# CONFIG_PKG_USING_MCURSES is not set +# CONFIG_PKG_USING_TERMBOX is not set +# CONFIG_PKG_USING_VT100 is not set +# CONFIG_PKG_USING_QRCODE is not set +# CONFIG_PKG_USING_GUIENGINE is not set +# CONFIG_PKG_USING_3GPP_AMRNB is not set +# end of multimedia packages + +# +# tools packages +# +# CONFIG_PKG_USING_CMBACKTRACE is not set +# CONFIG_PKG_USING_EASYFLASH is not set +# CONFIG_PKG_USING_EASYLOGGER is not set +# CONFIG_PKG_USING_SYSTEMVIEW is not set +# CONFIG_PKG_USING_SEGGER_RTT is not set +# CONFIG_PKG_USING_RTT_AUTO_EXE_CMD is not set +# CONFIG_PKG_USING_RDB is not set +# CONFIG_PKG_USING_ULOG_EASYFLASH is not set +# CONFIG_PKG_USING_LOGMGR is not set +# CONFIG_PKG_USING_ADBD is not set +# CONFIG_PKG_USING_COREMARK is not set +# CONFIG_PKG_USING_DHRYSTONE is not set +# CONFIG_PKG_USING_MEMORYPERF is not set +# CONFIG_PKG_USING_NR_MICRO_SHELL is not set +# CONFIG_PKG_USING_CHINESE_FONT_LIBRARY is not set +# CONFIG_PKG_USING_LUNAR_CALENDAR is not set +# CONFIG_PKG_USING_BS8116A is not set +# CONFIG_PKG_USING_GPS_RMC is not set +# CONFIG_PKG_USING_URLENCODE is not set +# CONFIG_PKG_USING_UMCN is not set +# CONFIG_PKG_USING_LWRB2RTT is not set +# CONFIG_PKG_USING_CPU_USAGE is not set +# CONFIG_PKG_USING_GBK2UTF8 is not set +# CONFIG_PKG_USING_VCONSOLE is not set +# CONFIG_PKG_USING_KDB is not set +# CONFIG_PKG_USING_WAMR is not set +# CONFIG_PKG_USING_MICRO_XRCE_DDS_CLIENT is not set +# CONFIG_PKG_USING_LWLOG is not set +# CONFIG_PKG_USING_ANV_TRACE is not set +# CONFIG_PKG_USING_ANV_MEMLEAK is not set +# CONFIG_PKG_USING_ANV_TESTSUIT is not set +# CONFIG_PKG_USING_ANV_BENCH is not set +# CONFIG_PKG_USING_DEVMEM is not set +# CONFIG_PKG_USING_REGEX is not set +# CONFIG_PKG_USING_MEM_SANDBOX is not set +# CONFIG_PKG_USING_SOLAR_TERMS is not set +# CONFIG_PKG_USING_GAN_ZHI is not set +# CONFIG_PKG_USING_FDT is not set +# CONFIG_PKG_USING_CBOX is not set +# CONFIG_PKG_USING_SNOWFLAKE is not set +# CONFIG_PKG_USING_HASH_MATCH is not set +# CONFIG_PKG_USING_ARMV7M_DWT_TOOL is not set +# CONFIG_PKG_USING_VOFA_PLUS is not set +# CONFIG_PKG_USING_ZDEBUG is not set +# end of tools packages + +# +# system packages +# + +# +# enhanced kernel services +# +# CONFIG_PKG_USING_RT_MEMCPY_CM is not set +# CONFIG_PKG_USING_RT_KPRINTF_THREADSAFE is not set +# CONFIG_PKG_USING_RT_VSNPRINTF_FULL is not set +# end of enhanced kernel services + +# CONFIG_PKG_USING_AUNITY is not set + +# +# acceleration: Assembly language or algorithmic acceleration packages +# +# CONFIG_PKG_USING_QFPLIB_M0_FULL is not set +# CONFIG_PKG_USING_QFPLIB_M0_TINY is not set +# CONFIG_PKG_USING_QFPLIB_M3 is not set +# end of acceleration: Assembly language or algorithmic acceleration packages + +# +# CMSIS: ARM Cortex-M Microcontroller Software Interface Standard +# +# CONFIG_PKG_USING_CMSIS_5 is not set +# CONFIG_PKG_USING_CMSIS_CORE is not set +# CONFIG_PKG_USING_CMSIS_DSP is not set +# CONFIG_PKG_USING_CMSIS_NN is not set +# CONFIG_PKG_USING_CMSIS_RTOS1 is not set +# CONFIG_PKG_USING_CMSIS_RTOS2 is not set +# end of CMSIS: ARM Cortex-M Microcontroller Software Interface Standard + +# +# Micrium: Micrium software products porting for RT-Thread +# +# CONFIG_PKG_USING_UCOSIII_WRAPPER is not set +# CONFIG_PKG_USING_UCOSII_WRAPPER is not set +# CONFIG_PKG_USING_UC_CRC is not set +# CONFIG_PKG_USING_UC_CLK is not set +# CONFIG_PKG_USING_UC_COMMON is not set +# CONFIG_PKG_USING_UC_MODBUS is not set +# end of Micrium: Micrium software products porting for RT-Thread + +# CONFIG_PKG_USING_FREERTOS_WRAPPER is not set +# CONFIG_PKG_USING_LITEOS_SDK is not set +# CONFIG_PKG_USING_TZ_DATABASE is not set +# CONFIG_PKG_USING_CAIRO is not set +# CONFIG_PKG_USING_PIXMAN is not set +# CONFIG_PKG_USING_PARTITION is not set +# CONFIG_PKG_USING_PERF_COUNTER is not set +# CONFIG_PKG_USING_FILEX is not set +# CONFIG_PKG_USING_LEVELX is not set +# CONFIG_PKG_USING_FLASHDB is not set +# CONFIG_PKG_USING_SQLITE is not set +# CONFIG_PKG_USING_RTI is not set +# CONFIG_PKG_USING_DFS_YAFFS is not set +# CONFIG_PKG_USING_LITTLEFS is not set +# CONFIG_PKG_USING_DFS_JFFS2 is not set +# CONFIG_PKG_USING_DFS_UFFS is not set +# CONFIG_PKG_USING_LWEXT4 is not set +# CONFIG_PKG_USING_THREAD_POOL is not set +# CONFIG_PKG_USING_ROBOTS is not set +# CONFIG_PKG_USING_EV is not set +# CONFIG_PKG_USING_SYSWATCH is not set +# CONFIG_PKG_USING_SYS_LOAD_MONITOR is not set +# CONFIG_PKG_USING_PLCCORE is not set +# CONFIG_PKG_USING_RAMDISK is not set +# CONFIG_PKG_USING_MININI is not set +# CONFIG_PKG_USING_QBOOT is not set +# CONFIG_PKG_USING_PPOOL is not set +# CONFIG_PKG_USING_OPENAMP is not set +# CONFIG_PKG_USING_RPMSG_LITE is not set +# CONFIG_PKG_USING_LPM is not set +# CONFIG_PKG_USING_TLSF is not set +# CONFIG_PKG_USING_EVENT_RECORDER is not set +# CONFIG_PKG_USING_ARM_2D is not set +# CONFIG_PKG_USING_MCUBOOT is not set +# CONFIG_PKG_USING_TINYUSB is not set +# CONFIG_PKG_USING_CHERRYUSB is not set +# CONFIG_PKG_USING_KMULTI_RTIMER is not set +# CONFIG_PKG_USING_TFDB is not set +# CONFIG_PKG_USING_QPC is not set +# CONFIG_PKG_USING_AGILE_UPGRADE is not set +# CONFIG_PKG_USING_FLASH_BLOB is not set +# CONFIG_PKG_USING_MLIBC is not set +# CONFIG_PKG_USING_TASK_MSG_BUS is not set +# CONFIG_PKG_USING_SFDB is not set +# CONFIG_PKG_USING_RTP is not set +# CONFIG_PKG_USING_REB is not set +# CONFIG_PKG_USING_R_RHEALSTONE is not set +# end of system packages + +# +# peripheral libraries and drivers +# + +# +# HAL & SDK Drivers +# + +# +# STM32 HAL & SDK Drivers +# +# CONFIG_PKG_USING_STM32L4_HAL_DRIVER is not set +# CONFIG_PKG_USING_STM32L4_CMSIS_DRIVER is not set +# CONFIG_PKG_USING_STM32WB55_SDK is not set +# CONFIG_PKG_USING_STM32_SDIO is not set +# end of STM32 HAL & SDK Drivers + +# +# Infineon HAL Packages +# +# CONFIG_PKG_USING_INFINEON_CAT1CM0P is not set +# CONFIG_PKG_USING_INFINEON_CMSIS is not set +# CONFIG_PKG_USING_INFINEON_CORE_LIB is not set +# CONFIG_PKG_USING_INFINEON_MTB_HAL_CAT1 is not set +# CONFIG_PKG_USING_INFINEON_MTB_PDL_CAT1 is not set +# CONFIG_PKG_USING_INFINEON_RETARGET_IO is not set +# CONFIG_PKG_USING_INFINEON_CAPSENSE is not set +# CONFIG_PKG_USING_INFINEON_CSDIDAC is not set +# CONFIG_PKG_USING_INFINEON_SERIAL_FLASH is not set +# CONFIG_PKG_USING_INFINEON_USBDEV is not set +# end of Infineon HAL Packages + +# CONFIG_PKG_USING_BLUETRUM_SDK is not set +# CONFIG_PKG_USING_EMBARC_BSP is not set +# CONFIG_PKG_USING_ESP_IDF is not set + +# +# Kendryte SDK +# +# CONFIG_PKG_USING_K210_SDK is not set +# CONFIG_PKG_USING_KENDRYTE_SDK is not set +# end of Kendryte SDK + +# CONFIG_PKG_USING_NRF5X_SDK is not set +# CONFIG_PKG_USING_NRFX is not set +# CONFIG_PKG_USING_RASPBERRYPI_PICO_SDK is not set +# end of HAL & SDK Drivers + +# +# sensors drivers +# +# CONFIG_PKG_USING_LSM6DSM is not set +# CONFIG_PKG_USING_LSM6DSL is not set +# CONFIG_PKG_USING_LPS22HB is not set +# CONFIG_PKG_USING_HTS221 is not set +# CONFIG_PKG_USING_LSM303AGR is not set +# CONFIG_PKG_USING_BME280 is not set +# CONFIG_PKG_USING_BME680 is not set +# CONFIG_PKG_USING_BMA400 is not set +# CONFIG_PKG_USING_BMI160_BMX160 is not set +# CONFIG_PKG_USING_SPL0601 is not set +# CONFIG_PKG_USING_MS5805 is not set +# CONFIG_PKG_USING_DA270 is not set +# CONFIG_PKG_USING_DF220 is not set +# CONFIG_PKG_USING_HSHCAL001 is not set +# CONFIG_PKG_USING_BH1750 is not set +# CONFIG_PKG_USING_MPU6XXX is not set +# CONFIG_PKG_USING_AHT10 is not set +# CONFIG_PKG_USING_AP3216C is not set +# CONFIG_PKG_USING_TSL4531 is not set +# CONFIG_PKG_USING_DS18B20 is not set +# CONFIG_PKG_USING_DHT11 is not set +# CONFIG_PKG_USING_DHTXX is not set +# CONFIG_PKG_USING_GY271 is not set +# CONFIG_PKG_USING_GP2Y10 is not set +# CONFIG_PKG_USING_SGP30 is not set +# CONFIG_PKG_USING_HDC1000 is not set +# CONFIG_PKG_USING_BMP180 is not set +# CONFIG_PKG_USING_BMP280 is not set +# CONFIG_PKG_USING_SHTC1 is not set +# CONFIG_PKG_USING_BMI088 is not set +# CONFIG_PKG_USING_HMC5883 is not set +# CONFIG_PKG_USING_MAX6675 is not set +# CONFIG_PKG_USING_TMP1075 is not set +# CONFIG_PKG_USING_SR04 is not set +# CONFIG_PKG_USING_CCS811 is not set +# CONFIG_PKG_USING_PMSXX is not set +# CONFIG_PKG_USING_RT3020 is not set +# CONFIG_PKG_USING_MLX90632 is not set +# CONFIG_PKG_USING_MLX90393 is not set +# CONFIG_PKG_USING_MLX90392 is not set +# CONFIG_PKG_USING_MLX90397 is not set +# CONFIG_PKG_USING_MS5611 is not set +# CONFIG_PKG_USING_MAX31865 is not set +# CONFIG_PKG_USING_VL53L0X is not set +# CONFIG_PKG_USING_INA260 is not set +# CONFIG_PKG_USING_MAX30102 is not set +# CONFIG_PKG_USING_INA226 is not set +# CONFIG_PKG_USING_LIS2DH12 is not set +# CONFIG_PKG_USING_HS300X is not set +# CONFIG_PKG_USING_ZMOD4410 is not set +# CONFIG_PKG_USING_ISL29035 is not set +# CONFIG_PKG_USING_MMC3680KJ is not set +# CONFIG_PKG_USING_QMP6989 is not set +# CONFIG_PKG_USING_BALANCE is not set +# CONFIG_PKG_USING_SHT2X is not set +# CONFIG_PKG_USING_SHT3X is not set +# CONFIG_PKG_USING_SHT4X is not set +# CONFIG_PKG_USING_AD7746 is not set +# CONFIG_PKG_USING_ADT74XX is not set +# CONFIG_PKG_USING_MAX17048 is not set +# CONFIG_PKG_USING_AS7341 is not set +# CONFIG_PKG_USING_CW2015 is not set +# CONFIG_PKG_USING_ICM20608 is not set +# CONFIG_PKG_USING_PAJ7620 is not set +# CONFIG_PKG_USING_STHS34PF80 is not set +# end of sensors drivers + +# +# touch drivers +# +# CONFIG_PKG_USING_GT9147 is not set +# CONFIG_PKG_USING_GT1151 is not set +# CONFIG_PKG_USING_GT917S is not set +# CONFIG_PKG_USING_GT911 is not set +# CONFIG_PKG_USING_FT6206 is not set +# CONFIG_PKG_USING_FT5426 is not set +# CONFIG_PKG_USING_FT6236 is not set +# CONFIG_PKG_USING_XPT2046_TOUCH is not set +# CONFIG_PKG_USING_CST816X is not set +# CONFIG_PKG_USING_CST812T is not set +# end of touch drivers + +# CONFIG_PKG_USING_REALTEK_AMEBA is not set +# CONFIG_PKG_USING_BUTTON is not set +# CONFIG_PKG_USING_PCF8574 is not set +# CONFIG_PKG_USING_SX12XX is not set +# CONFIG_PKG_USING_SIGNAL_LED is not set +# CONFIG_PKG_USING_LEDBLINK is not set +# CONFIG_PKG_USING_LITTLED is not set +# CONFIG_PKG_USING_LKDGUI is not set +# CONFIG_PKG_USING_INFRARED is not set +# CONFIG_PKG_USING_MULTI_INFRARED is not set +# CONFIG_PKG_USING_AGILE_BUTTON is not set +# CONFIG_PKG_USING_AGILE_LED is not set +# CONFIG_PKG_USING_AT24CXX is not set +# CONFIG_PKG_USING_MOTIONDRIVER2RTT is not set +# CONFIG_PKG_USING_PCA9685 is not set +# CONFIG_PKG_USING_ILI9341 is not set +# CONFIG_PKG_USING_I2C_TOOLS is not set +# CONFIG_PKG_USING_NRF24L01 is not set +# CONFIG_PKG_USING_RPLIDAR is not set +# CONFIG_PKG_USING_AS608 is not set +# CONFIG_PKG_USING_RC522 is not set +# CONFIG_PKG_USING_WS2812B is not set +# CONFIG_PKG_USING_EXTERN_RTC_DRIVERS is not set +# CONFIG_PKG_USING_MULTI_RTIMER is not set +# CONFIG_PKG_USING_MAX7219 is not set +# CONFIG_PKG_USING_BEEP is not set +# CONFIG_PKG_USING_EASYBLINK is not set +# CONFIG_PKG_USING_PMS_SERIES is not set +# CONFIG_PKG_USING_CAN_YMODEM is not set +# CONFIG_PKG_USING_LORA_RADIO_DRIVER is not set +# CONFIG_PKG_USING_QLED is not set +# CONFIG_PKG_USING_AGILE_CONSOLE is not set +# CONFIG_PKG_USING_LD3320 is not set +# CONFIG_PKG_USING_WK2124 is not set +# CONFIG_PKG_USING_LY68L6400 is not set +# CONFIG_PKG_USING_DM9051 is not set +# CONFIG_PKG_USING_SSD1306 is not set +# CONFIG_PKG_USING_QKEY is not set +# CONFIG_PKG_USING_RS485 is not set +# CONFIG_PKG_USING_RS232 is not set +# CONFIG_PKG_USING_NES is not set +# CONFIG_PKG_USING_VIRTUAL_SENSOR is not set +# CONFIG_PKG_USING_VDEVICE is not set +# CONFIG_PKG_USING_SGM706 is not set +# CONFIG_PKG_USING_RDA58XX is not set +# CONFIG_PKG_USING_LIBNFC is not set +# CONFIG_PKG_USING_MFOC is not set +# CONFIG_PKG_USING_TMC51XX is not set +# CONFIG_PKG_USING_TCA9534 is not set +# CONFIG_PKG_USING_KOBUKI is not set +# CONFIG_PKG_USING_ROSSERIAL is not set +# CONFIG_PKG_USING_MICRO_ROS is not set +# CONFIG_PKG_USING_MCP23008 is not set +# CONFIG_PKG_USING_MISAKA_AT24CXX is not set +# CONFIG_PKG_USING_MISAKA_RGB_BLING is not set +# CONFIG_PKG_USING_LORA_MODEM_DRIVER is not set +# CONFIG_PKG_USING_SOFT_SERIAL is not set +# CONFIG_PKG_USING_MB85RS16 is not set +# CONFIG_PKG_USING_RFM300 is not set +# CONFIG_PKG_USING_IO_INPUT_FILTER is not set +# CONFIG_PKG_USING_LRF_NV7LIDAR is not set +# CONFIG_PKG_USING_AIP650 is not set +# CONFIG_PKG_USING_FINGERPRINT is not set +# CONFIG_PKG_USING_BT_ECB02C is not set +# CONFIG_PKG_USING_UAT is not set +# CONFIG_PKG_USING_ST7789 is not set +# CONFIG_PKG_USING_VS1003 is not set +# CONFIG_PKG_USING_X9555 is not set +# CONFIG_PKG_USING_SYSTEM_RUN_LED is not set +# CONFIG_PKG_USING_BT_MX01 is not set +# CONFIG_PKG_USING_RGPOWER is not set +# CONFIG_PKG_USING_SPI_TOOLS is not set +# end of peripheral libraries and drivers + +# +# AI packages +# +# CONFIG_PKG_USING_LIBANN is not set +# CONFIG_PKG_USING_NNOM is not set +# CONFIG_PKG_USING_ONNX_BACKEND is not set +# CONFIG_PKG_USING_ONNX_PARSER is not set +# CONFIG_PKG_USING_TENSORFLOWLITEMICRO is not set +# CONFIG_PKG_USING_ELAPACK is not set +# CONFIG_PKG_USING_ULAPACK is not set +# CONFIG_PKG_USING_QUEST is not set +# CONFIG_PKG_USING_NAXOS is not set +# CONFIG_PKG_USING_R_TINYMAIX is not set +# end of AI packages + +# +# Signal Processing and Control Algorithm Packages +# +# CONFIG_PKG_USING_APID is not set +# CONFIG_PKG_USING_FIRE_PID_CURVE is not set +# CONFIG_PKG_USING_QPID is not set +# CONFIG_PKG_USING_UKAL is not set +# CONFIG_PKG_USING_DIGITALCTRL is not set +# CONFIG_PKG_USING_KISSFFT is not set +# end of Signal Processing and Control Algorithm Packages + +# +# miscellaneous packages +# + +# +# project laboratory +# +# end of project laboratory + +# +# samples: kernel and components samples +# +# CONFIG_PKG_USING_KERNEL_SAMPLES is not set +# CONFIG_PKG_USING_FILESYSTEM_SAMPLES is not set +# CONFIG_PKG_USING_NETWORK_SAMPLES is not set +# CONFIG_PKG_USING_PERIPHERAL_SAMPLES is not set +# end of samples: kernel and components samples + +# +# entertainment: terminal games and other interesting software packages +# +# CONFIG_PKG_USING_CMATRIX is not set +# CONFIG_PKG_USING_SL is not set +# CONFIG_PKG_USING_CAL is not set +# CONFIG_PKG_USING_ACLOCK is not set +# CONFIG_PKG_USING_THREES is not set +# CONFIG_PKG_USING_2048 is not set +# CONFIG_PKG_USING_SNAKE is not set +# CONFIG_PKG_USING_TETRIS is not set +# CONFIG_PKG_USING_DONUT is not set +# CONFIG_PKG_USING_COWSAY is not set +# CONFIG_PKG_USING_MORSE is not set +# end of entertainment: terminal games and other interesting software packages + +# CONFIG_PKG_USING_LIBCSV is not set +# CONFIG_PKG_USING_OPTPARSE is not set +# CONFIG_PKG_USING_FASTLZ is not set +# CONFIG_PKG_USING_MINILZO is not set +# CONFIG_PKG_USING_QUICKLZ is not set +# CONFIG_PKG_USING_LZMA is not set +# CONFIG_PKG_USING_RALARAM is not set +# CONFIG_PKG_USING_MULTIBUTTON is not set +# CONFIG_PKG_USING_FLEXIBLE_BUTTON is not set +# CONFIG_PKG_USING_CANFESTIVAL is not set +# CONFIG_PKG_USING_ZLIB is not set +# CONFIG_PKG_USING_MINIZIP is not set +# CONFIG_PKG_USING_HEATSHRINK is not set +# CONFIG_PKG_USING_DSTR is not set +# CONFIG_PKG_USING_TINYFRAME is not set +# CONFIG_PKG_USING_KENDRYTE_DEMO is not set +# CONFIG_PKG_USING_UPACKER is not set +# CONFIG_PKG_USING_UPARAM is not set +# CONFIG_PKG_USING_HELLO is not set +# CONFIG_PKG_USING_VI is not set +# CONFIG_PKG_USING_KI is not set +# CONFIG_PKG_USING_ARMv7M_DWT is not set +# CONFIG_PKG_USING_CRCLIB is not set +# CONFIG_PKG_USING_LWGPS is not set +# CONFIG_PKG_USING_STATE_MACHINE is not set +# CONFIG_PKG_USING_DESIGN_PATTERN is not set +# CONFIG_PKG_USING_CONTROLLER is not set +# CONFIG_PKG_USING_PHASE_LOCKED_LOOP is not set +# CONFIG_PKG_USING_MFBD is not set +# CONFIG_PKG_USING_SLCAN2RTT is not set +# CONFIG_PKG_USING_SOEM is not set +# CONFIG_PKG_USING_QPARAM is not set +# CONFIG_PKG_USING_CorevMCU_CLI is not set +# end of miscellaneous packages + +# +# Arduino libraries +# +# CONFIG_PKG_USING_RTDUINO is not set + +# +# Projects and Demos +# +# CONFIG_PKG_USING_ARDUINO_MSGQ_C_CPP_DEMO is not set +# CONFIG_PKG_USING_ARDUINO_SKETCH_LOADER_DEMO is not set +# CONFIG_PKG_USING_ARDUINO_ULTRASOUND_RADAR is not set +# CONFIG_PKG_USING_ARDUINO_NINEINONE_SENSOR_SHIELD is not set +# CONFIG_PKG_USING_ARDUINO_SENSOR_KIT is not set +# CONFIG_PKG_USING_ARDUINO_MATLAB_SUPPORT is not set +# CONFIG_PKG_USING_ARDUINO_RTDUINO_SENSORFUSION_SHIELD is not set +# end of Projects and Demos + +# +# Sensors +# +# CONFIG_PKG_USING_ARDUINO_SENSOR_DEVICE_DRIVERS is not set +# CONFIG_PKG_USING_ARDUINO_ADAFRUIT_SENSOR is not set +# CONFIG_PKG_USING_ARDUINO_ADAFRUIT_SENSORLAB is not set +# CONFIG_PKG_USING_ARDUINO_ADAFRUIT_ADXL375 is not set +# CONFIG_PKG_USING_ARDUINO_ADAFRUIT_VL53L0X is not set +# CONFIG_PKG_USING_ARDUINO_ADAFRUIT_VL53L1X is not set +# CONFIG_PKG_USING_ARDUINO_ADAFRUIT_VL6180X is not set +# CONFIG_PKG_USING_ARDUINO_ADAFRUIT_MAX31855 is not set +# CONFIG_PKG_USING_ARDUINO_ADAFRUIT_MAX31865 is not set +# CONFIG_PKG_USING_ARDUINO_ADAFRUIT_MAX31856 is not set +# CONFIG_PKG_USING_ARDUINO_ADAFRUIT_MAX6675 is not set +# CONFIG_PKG_USING_ARDUINO_ADAFRUIT_MLX90614 is not set +# CONFIG_PKG_USING_ARDUINO_ADAFRUIT_LSM9DS1 is not set +# CONFIG_PKG_USING_ARDUINO_ADAFRUIT_AHTX0 is not set +# CONFIG_PKG_USING_ARDUINO_ADAFRUIT_LSM9DS0 is not set +# CONFIG_PKG_USING_ARDUINO_ADAFRUIT_BMP280 is not set +# CONFIG_PKG_USING_ARDUINO_ADAFRUIT_ADT7410 is not set +# CONFIG_PKG_USING_ARDUINO_ADAFRUIT_BMP085 is not set +# CONFIG_PKG_USING_ARDUINO_ADAFRUIT_BME680 is not set +# CONFIG_PKG_USING_ARDUINO_ADAFRUIT_MCP9808 is not set +# CONFIG_PKG_USING_ARDUINO_ADAFRUIT_MCP4728 is not set +# CONFIG_PKG_USING_ARDUINO_ADAFRUIT_INA219 is not set +# CONFIG_PKG_USING_ARDUINO_ADAFRUIT_LTR390 is not set +# CONFIG_PKG_USING_ARDUINO_ADAFRUIT_ADXL345 is not set +# CONFIG_PKG_USING_ARDUINO_ADAFRUIT_DHT is not set +# CONFIG_PKG_USING_ARDUINO_ADAFRUIT_MCP9600 is not set +# CONFIG_PKG_USING_ARDUINO_ADAFRUIT_LSM6DS is not set +# CONFIG_PKG_USING_ARDUINO_ADAFRUIT_BNO055 is not set +# CONFIG_PKG_USING_ARDUINO_ADAFRUIT_MAX1704X is not set +# CONFIG_PKG_USING_ARDUINO_ADAFRUIT_MMC56X3 is not set +# CONFIG_PKG_USING_ARDUINO_ADAFRUIT_MLX90393 is not set +# CONFIG_PKG_USING_ARDUINO_ADAFRUIT_MLX90395 is not set +# CONFIG_PKG_USING_ARDUINO_ADAFRUIT_ICM20X is not set +# CONFIG_PKG_USING_ARDUINO_ADAFRUIT_DPS310 is not set +# CONFIG_PKG_USING_ARDUINO_ADAFRUIT_HTS221 is not set +# CONFIG_PKG_USING_ARDUINO_ADAFRUIT_SHT4X is not set +# CONFIG_PKG_USING_ARDUINO_ADAFRUIT_SHT31 is not set +# CONFIG_PKG_USING_ARDUINO_ADAFRUIT_ADXL343 is not set +# CONFIG_PKG_USING_ARDUINO_ADAFRUIT_BME280 is not set +# CONFIG_PKG_USING_ARDUINO_ADAFRUIT_AS726X is not set +# CONFIG_PKG_USING_ARDUINO_ADAFRUIT_AMG88XX is not set +# CONFIG_PKG_USING_ARDUINO_ADAFRUIT_AM2320 is not set +# CONFIG_PKG_USING_ARDUINO_ADAFRUIT_AM2315 is not set +# CONFIG_PKG_USING_ARDUINO_ADAFRUIT_LTR329_LTR303 is not set +# CONFIG_PKG_USING_ARDUINO_ADAFRUIT_BMP085_UNIFIED is not set +# CONFIG_PKG_USING_ARDUINO_ADAFRUIT_BMP183 is not set +# CONFIG_PKG_USING_ARDUINO_ADAFRUIT_BMP183_UNIFIED is not set +# CONFIG_PKG_USING_ARDUINO_ADAFRUIT_BMP3XX is not set +# CONFIG_PKG_USING_ARDUINO_ADAFRUIT_MS8607 is not set +# CONFIG_PKG_USING_ARDUINO_ADAFRUIT_LIS3MDL is not set +# CONFIG_PKG_USING_ARDUINO_ADAFRUIT_MLX90640 is not set +# CONFIG_PKG_USING_ARDUINO_ADAFRUIT_MMA8451 is not set +# CONFIG_PKG_USING_ARDUINO_ADAFRUIT_MSA301 is not set +# CONFIG_PKG_USING_ARDUINO_ADAFRUIT_MPL115A2 is not set +# CONFIG_PKG_USING_ARDUINO_ADAFRUIT_BNO08X is not set +# CONFIG_PKG_USING_ARDUINO_ADAFRUIT_BNO08X_RVC is not set +# CONFIG_PKG_USING_ARDUINO_ADAFRUIT_LIS2MDL is not set +# CONFIG_PKG_USING_ARDUINO_ADAFRUIT_LSM303DLH_MAG is not set +# CONFIG_PKG_USING_ARDUINO_ADAFRUIT_LC709203F is not set +# CONFIG_PKG_USING_ARDUINO_ADAFRUIT_CAP1188 is not set +# CONFIG_PKG_USING_ARDUINO_ADAFRUIT_CCS811 is not set +# CONFIG_PKG_USING_ARDUINO_ADAFRUIT_NAU7802 is not set +# CONFIG_PKG_USING_ARDUINO_ADAFRUIT_LIS331 is not set +# CONFIG_PKG_USING_ARDUINO_ADAFRUIT_LPS2X is not set +# CONFIG_PKG_USING_ARDUINO_ADAFRUIT_LPS35HW is not set +# CONFIG_PKG_USING_ARDUINO_ADAFRUIT_LSM303_ACCEL is not set +# CONFIG_PKG_USING_ARDUINO_ADAFRUIT_LIS3DH is not set +# CONFIG_PKG_USING_ARDUINO_ADAFRUIT_PCF8591 is not set +# CONFIG_PKG_USING_ARDUINO_ADAFRUIT_MPL3115A2 is not set +# CONFIG_PKG_USING_ARDUINO_ADAFRUIT_MPR121 is not set +# CONFIG_PKG_USING_ARDUINO_ADAFRUIT_MPRLS is not set +# CONFIG_PKG_USING_ARDUINO_ADAFRUIT_MPU6050 is not set +# CONFIG_PKG_USING_ARDUINO_ADAFRUIT_PCT2075 is not set +# CONFIG_PKG_USING_ARDUINO_ADAFRUIT_PM25AQI is not set +# CONFIG_PKG_USING_ARDUINO_ADAFRUIT_EMC2101 is not set +# CONFIG_PKG_USING_ARDUINO_ADAFRUIT_FXAS21002C is not set +# CONFIG_PKG_USING_ARDUINO_ADAFRUIT_SCD30 is not set +# CONFIG_PKG_USING_ARDUINO_ADAFRUIT_FXOS8700 is not set +# CONFIG_PKG_USING_ARDUINO_ADAFRUIT_HMC5883_UNIFIED is not set +# CONFIG_PKG_USING_ARDUINO_ADAFRUIT_SGP30 is not set +# CONFIG_PKG_USING_ARDUINO_ADAFRUIT_TMP006 is not set +# CONFIG_PKG_USING_ARDUINO_ADAFRUIT_TLA202X is not set +# CONFIG_PKG_USING_ARDUINO_ADAFRUIT_TCS34725 is not set +# CONFIG_PKG_USING_ARDUINO_ADAFRUIT_SI7021 is not set +# CONFIG_PKG_USING_ARDUINO_ADAFRUIT_SI1145 is not set +# CONFIG_PKG_USING_ARDUINO_ADAFRUIT_SGP40 is not set +# CONFIG_PKG_USING_ARDUINO_ADAFRUIT_SHTC3 is not set +# CONFIG_PKG_USING_ARDUINO_ADAFRUIT_HDC1000 is not set +# CONFIG_PKG_USING_ARDUINO_ADAFRUIT_HTU21DF is not set +# CONFIG_PKG_USING_ARDUINO_ADAFRUIT_AS7341 is not set +# CONFIG_PKG_USING_ARDUINO_ADAFRUIT_HTU31D is not set +# CONFIG_PKG_USING_ARDUINO_ADAFRUIT_INA260 is not set +# CONFIG_PKG_USING_ARDUINO_ADAFRUIT_TMP007_LIBRARY is not set +# CONFIG_PKG_USING_ARDUINO_ADAFRUIT_L3GD20 is not set +# CONFIG_PKG_USING_ARDUINO_ADAFRUIT_TMP117 is not set +# CONFIG_PKG_USING_ARDUINO_ADAFRUIT_TSC2007 is not set +# CONFIG_PKG_USING_ARDUINO_ADAFRUIT_TSL2561 is not set +# CONFIG_PKG_USING_ARDUINO_ADAFRUIT_TSL2591_LIBRARY is not set +# CONFIG_PKG_USING_ARDUINO_ADAFRUIT_VCNL4040 is not set +# CONFIG_PKG_USING_ARDUINO_ADAFRUIT_VEML6070 is not set +# CONFIG_PKG_USING_ARDUINO_ADAFRUIT_VEML6075 is not set +# CONFIG_PKG_USING_ARDUINO_ADAFRUIT_VEML7700 is not set +# CONFIG_PKG_USING_ARDUINO_SEEED_LIS3DHTR is not set +# CONFIG_PKG_USING_ARDUINO_SEEED_DHT is not set +# CONFIG_PKG_USING_ARDUINO_SEEED_ADXL335 is not set +# CONFIG_PKG_USING_ARDUINO_SEEED_ADXL345 is not set +# CONFIG_PKG_USING_ARDUINO_SEEED_BME280 is not set +# CONFIG_PKG_USING_ARDUINO_SEEED_BMP280 is not set +# CONFIG_PKG_USING_ARDUINO_SEEED_H3LIS331DL is not set +# CONFIG_PKG_USING_ARDUINO_SEEED_MMA7660 is not set +# CONFIG_PKG_USING_ARDUINO_SEEED_TSL2561 is not set +# CONFIG_PKG_USING_ARDUINO_SEEED_PAJ7620 is not set +# CONFIG_PKG_USING_ARDUINO_SEEED_VL53L0X is not set +# CONFIG_PKG_USING_ARDUINO_SEEED_ITG3200 is not set +# CONFIG_PKG_USING_ARDUINO_SEEED_SHT31 is not set +# CONFIG_PKG_USING_ARDUINO_SEEED_HP20X is not set +# CONFIG_PKG_USING_ARDUINO_SEEED_DRV2605L is not set +# CONFIG_PKG_USING_ARDUINO_SEEED_BBM150 is not set +# CONFIG_PKG_USING_ARDUINO_SEEED_HMC5883L is not set +# CONFIG_PKG_USING_ARDUINO_SEEED_LSM303DLH is not set +# CONFIG_PKG_USING_ARDUINO_SEEED_TCS3414CS is not set +# CONFIG_PKG_USING_ARDUINO_SEEED_MP503 is not set +# CONFIG_PKG_USING_ARDUINO_SEEED_BMP085 is not set +# CONFIG_PKG_USING_ARDUINO_SEEED_HIGHTEMP is not set +# CONFIG_PKG_USING_ARDUINO_SEEED_VEML6070 is not set +# CONFIG_PKG_USING_ARDUINO_SEEED_SI1145 is not set +# CONFIG_PKG_USING_ARDUINO_SEEED_SHT35 is not set +# CONFIG_PKG_USING_ARDUINO_SEEED_AT42QT1070 is not set +# CONFIG_PKG_USING_ARDUINO_SEEED_LSM6DS3 is not set +# CONFIG_PKG_USING_ARDUINO_SEEED_HDC1000 is not set +# CONFIG_PKG_USING_ARDUINO_SEEED_HM3301 is not set +# CONFIG_PKG_USING_ARDUINO_SEEED_MCP9600 is not set +# CONFIG_PKG_USING_ARDUINO_SEEED_LTC2941 is not set +# CONFIG_PKG_USING_ARDUINO_SEEED_LDC1612 is not set +# CONFIG_PKG_USING_ARDUINO_CAPACITIVESENSOR is not set +# CONFIG_PKG_USING_ARDUINO_JARZEBSKI_MPU6050 is not set +# end of Sensors + +# +# Display +# +# CONFIG_PKG_USING_ARDUINO_ADAFRUIT_GFX_LIBRARY is not set +# CONFIG_PKG_USING_ARDUINO_U8G2 is not set +# CONFIG_PKG_USING_ARDUINO_TFT_ESPI is not set +# CONFIG_PKG_USING_ARDUINO_ADAFRUIT_ST7735 is not set +# CONFIG_PKG_USING_ARDUINO_ADAFRUIT_SSD1306 is not set +# CONFIG_PKG_USING_ARDUINO_ADAFRUIT_ILI9341 is not set +# CONFIG_PKG_USING_SEEED_TM1637 is not set +# end of Display + +# +# Timing +# +# CONFIG_PKG_USING_ARDUINO_RTCLIB is not set +# CONFIG_PKG_USING_ARDUINO_MSTIMER2 is not set +# CONFIG_PKG_USING_ARDUINO_TICKER is not set +# CONFIG_PKG_USING_ARDUINO_TASKSCHEDULER is not set +# end of Timing + +# +# Data Processing +# +# CONFIG_PKG_USING_ARDUINO_KALMANFILTER is not set +# CONFIG_PKG_USING_ARDUINO_ARDUINOJSON is not set +# CONFIG_PKG_USING_ARDUINO_TENSORFLOW_LITE_MICRO is not set +# CONFIG_PKG_USING_ARDUINO_RUNNINGMEDIAN is not set +# end of Data Processing + +# +# Data Storage +# + +# +# Communication +# +# CONFIG_PKG_USING_ARDUINO_ADAFRUIT_PN532 is not set +# CONFIG_PKG_USING_ARDUINO_ADAFRUIT_SI4713 is not set +# end of Communication + +# +# Device Control +# +# CONFIG_PKG_USING_ARDUINO_ADAFRUIT_PCF8574 is not set +# CONFIG_PKG_USING_ARDUINO_ADAFRUIT_PCA9685 is not set +# CONFIG_PKG_USING_ARDUINO_ADAFRUIT_TPA2016 is not set +# CONFIG_PKG_USING_ARDUINO_ADAFRUIT_DRV2605 is not set +# CONFIG_PKG_USING_ARDUINO_ADAFRUIT_DS1841 is not set +# CONFIG_PKG_USING_ARDUINO_ADAFRUIT_DS3502 is not set +# CONFIG_PKG_USING_ARDUINO_SEEED_PCF85063TP is not set +# end of Device Control + +# +# Other +# +# CONFIG_PKG_USING_ARDUINO_ADAFRUIT_MFRC630 is not set +# CONFIG_PKG_USING_ARDUINO_ADAFRUIT_SI5351 is not set +# end of Other + +# +# Signal IO +# +# CONFIG_PKG_USING_ARDUINO_ADAFRUIT_BUSIO is not set +# CONFIG_PKG_USING_ARDUINO_ADAFRUIT_TCA8418 is not set +# CONFIG_PKG_USING_ARDUINO_ADAFRUIT_MCP23017 is not set +# CONFIG_PKG_USING_ARDUINO_ADAFRUIT_ADS1X15 is not set +# CONFIG_PKG_USING_ARDUINO_ADAFRUIT_AW9523 is not set +# CONFIG_PKG_USING_ARDUINO_ADAFRUIT_MCP3008 is not set +# CONFIG_PKG_USING_ARDUINO_ADAFRUIT_MCP4725 is not set +# CONFIG_PKG_USING_ARDUINO_ADAFRUIT_BD3491FS is not set +# end of Signal IO + +# +# Uncategorized +# +# end of Arduino libraries +# end of RT-Thread online packages + +CONFIG_SOC_FAMILY_RENESAS=y +CONFIG_SOC_SERIES_R9A07G0=y + +# +# Hardware Drivers Config +# +CONFIG_SOC_R9A07G084=y + +# +# Onboard Peripheral Drivers +# +# CONFIG_BSP_USING_ETHERCAT_EOE is not set +# end of Onboard Peripheral Drivers + +# +# On-chip Peripheral Drivers +# +CONFIG_BSP_USING_GPIO=y +# CONFIG_BSP_USING_ONCHIP_FLASH is not set +# CONFIG_BSP_USING_WDT is not set +# CONFIG_BSP_USING_ONCHIP_RTC is not set +CONFIG_BSP_USING_UART=y +CONFIG_BSP_USING_UART0=y +# CONFIG_BSP_UART0_RX_USING_DMA is not set +# CONFIG_BSP_UART0_TX_USING_DMA is not set +CONFIG_BSP_UART0_RX_BUFSIZE=256 +CONFIG_BSP_UART0_TX_BUFSIZE=0 +# CONFIG_BSP_USING_ADC is not set +# CONFIG_BSP_USING_CANFD is not set +# CONFIG_BSP_USING_I2C is not set +# CONFIG_BSP_USING_SPI is not set +# CONFIG_BSP_USING_TIM is not set +# CONFIG_BSP_USING_ETH is not set +# end of On-chip Peripheral Drivers + +# +# Board extended module Drivers +# +# CONFIG_BSP_USING_RW007 is not set +# end of Board extended module Drivers +# end of Hardware Drivers Config diff --git a/bsp/renesas/rzn2l_rsk/.secure_azone b/bsp/renesas/rzn2l_rsk/.secure_azone new file mode 100644 index 0000000000..585ba89ca3 --- /dev/null +++ b/bsp/renesas/rzn2l_rsk/.secure_azone @@ -0,0 +1,4 @@ + + + + diff --git a/bsp/renesas/rzn2l_rsk/.secure_xml b/bsp/renesas/rzn2l_rsk/.secure_xml new file mode 100644 index 0000000000..0ee0319050 --- /dev/null +++ b/bsp/renesas/rzn2l_rsk/.secure_xml @@ -0,0 +1,125 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/bsp/renesas/rzn2l_rsk/.settings/standalone.prefs b/bsp/renesas/rzn2l_rsk/.settings/standalone.prefs new file mode 100644 index 0000000000..5e6ead989e --- /dev/null +++ b/bsp/renesas/rzn2l_rsk/.settings/standalone.prefs @@ -0,0 +1,24 @@ +#Sat Sep 14 16:03:03 CST 2024 +com.renesas.cdt.ddsc.content/com.renesas.cdt.ddsc.content.defaultlinkerscript=script/fsp_xspi0_boot.icf +com.renesas.cdt.ddsc.packs.componentfiles/Renesas\#\#BSP\#\#Board\#\#rzn2l_rsk\#\#xspi0_x1_boot\#\#2.0.0/libraries= +com.renesas.cdt.ddsc.packs.componentfiles/Arm\#\#CMSIS\#\#CMSIS5\#\#Core\#\#\#\#5.7.0+renesas.1.fsp.2.0.0/all=1441545198,rzn/arm/CMSIS_5/LICENSE.txt|4247764709,rzn/arm/CMSIS_5/CMSIS/Core_R/Include/cmsis_gcc.h|1135074086,rzn/arm/CMSIS_5/CMSIS/Core_R/Include/core_cr52.h|510668081,rzn/arm/CMSIS_5/CMSIS/Core_R/Include/cmsis_iccarm.h|4245531541,rzn/arm/CMSIS_5/CMSIS/Core_R/Include/cmsis_compiler.h|1887099957,rzn/arm/CMSIS_5/CMSIS/Core_R/Include/cmsis_cp15.h|3334069041,rzn/arm/CMSIS_5/CMSIS/Core_R/Include/cmsis_version.h +com.renesas.cdt.ddsc.packs.componentfiles/Renesas\#\#BSP\#\#rzn2l\#\#device\#\#R9A07G084M04GBG\#\#2.0.0/all= +com.renesas.cdt.ddsc.packs.componentfiles/Renesas\#\#BSP\#\#Board\#\#rzn2l_rsk\#\#xspi0_x1_boot\#\#2.0.0/all=907937621,script/fsp_xspi0_boot.icf|3822962514,rzn/board/rzn2l_rsk/board_leds.c|358444977,rzn/board/rzn2l_rsk/board_init.c|2067006575,rzn/board/rzn2l_rsk/board.h|736691883,rzn/board/rzn2l_rsk/board_ethernet_phy.h|1631979823,rzn/board/rzn2l_rsk/board_leds.h|1430483072,rzn/board/rzn2l_rsk/board_init.h +com.renesas.cdt.ddsc.contentgen.options/options/suppresswarningspaths= +com.renesas.cdt.ddsc.packs.componentfiles/Renesas\#\#HAL\ Drivers\#\#all\#\#r_ioport\#\#\#\#2.0.0/libraries= +com.renesas.cdt.ddsc.threads.configurator/collapse/module.driver.uart_on_sci_uart.86814920=false +com.renesas.cdt.ddsc.settingseditor/com.renesas.cdt.ddsc.settingseditor.active_page=SWPConfigurator +com.renesas.cdt.ddsc.packs.componentfiles/Renesas\#\#Common\#\#all\#\#fsp_common\#\#\#\#2.0.0/all=908052335,rzn/fsp/src/bsp/cmsis/Device/RENESAS/Source/system.c|3563504244,rzn/fsp/src/bsp/cmsis/Device/RENESAS/Source/startup.c|870156648,rzn/fsp/src/bsp/cmsis/Device/RENESAS/Source/cr/system_core.c|368480523,rzn/fsp/src/bsp/cmsis/Device/RENESAS/Source/cr/startup_core.c|3243637314,rzn/fsp/src/bsp/cmsis/Device/RENESAS/Include/system.h|1280798555,rzn/fsp/src/bsp/cmsis/Device/RENESAS/Include/renesas.h|3352808441,rzn/fsp/src/bsp/cmsis/Device/RENESAS/Include/R9A07G084.h|1310386533,rzn/fsp/src/bsp/mcu/all/bsp_io.h|3643995939,rzn/fsp/src/bsp/mcu/all/bsp_cache.h|1033616941,rzn/fsp/src/bsp/mcu/all/bsp_register_protection.h|1572168446,rzn/fsp/src/bsp/mcu/all/bsp_io.c|3001342594,rzn/fsp/src/bsp/mcu/all/bsp_common.h|263477342,rzn/fsp/src/bsp/mcu/all/bsp_reset.h|2534029381,rzn/fsp/src/bsp/mcu/all/bsp_module_stop.h|4193244082,rzn/fsp/src/bsp/mcu/all/bsp_irq.h|2136575248,rzn/fsp/src/bsp/mcu/all/bsp_tfu.h|2170977041,rzn/fsp/src/bsp/mcu/all/bsp_delay.c|526389185,rzn/fsp/src/bsp/mcu/all/bsp_compiler_support.h|8162287,rzn/fsp/src/bsp/mcu/all/bsp_clocks.h|3045644015,rzn/fsp/src/bsp/mcu/all/bsp_common.c|1908923075,rzn/fsp/src/bsp/mcu/all/bsp_clocks.c|1289851302,rzn/fsp/src/bsp/mcu/all/bsp_irq.c|358242822,rzn/fsp/src/bsp/mcu/all/bsp_sbrk.c|2321472163,rzn/fsp/src/bsp/mcu/all/bsp_cache.c|225356254,rzn/fsp/src/bsp/mcu/all/bsp_exceptions.h|2518644892,rzn/fsp/src/bsp/mcu/all/bsp_register_protection.c|392613868,rzn/fsp/src/bsp/mcu/all/bsp_reset.c|2238656401,rzn/fsp/src/bsp/mcu/all/bsp_mcu_api.h|1611830052,rzn/fsp/src/bsp/mcu/all/bsp_delay.h|2060190483,rzn/fsp/src/bsp/mcu/all/cr/bsp_cache_core.h|1543064539,rzn/fsp/src/bsp/mcu/all/cr/bsp_delay_core.h|3717942516,rzn/fsp/src/bsp/mcu/all/cr/bsp_cache_core.c|3396795463,rzn/fsp/src/bsp/mcu/all/cr/bsp_irq_core.c|2195931215,rzn/fsp/src/bsp/mcu/all/cr/bsp_delay_core.c|1126344352,rzn/fsp/src/bsp/mcu/all/cr/bsp_irq_core.h|1926319940,rzn/fsp/inc/fsp_features.h|2508067197,rzn/fsp/inc/fsp_version.h|3571247719,rzn/fsp/inc/fsp_common_api.h|3347087544,rzn/fsp/inc/instances/r_ioport.h|1765016794,rzn/fsp/inc/api/bsp_api.h|250199021,rzn/fsp/inc/api/r_ioport_api.h +com.renesas.cdt.ddsc.packs.componentfiles/Renesas\#\#BSP\#\#rzn2l\#\#device\#\#R9A07G084M04GBG\#\#2.0.0/libraries= +com.renesas.cdt.ddsc.packs.componentfiles/Renesas\#\#BSP\#\#rzn2l\#\#fsp\#\#\#\#2.0.0/libraries= +com.renesas.cdt.ddsc.project.standalone.projectgenerationoptions/isCpp=false +com.renesas.cdt.ddsc.packs.componentfiles/Renesas\#\#BSP\#\#all\#\#Memory\#\#\#\#2.0.0/libraries= +com.renesas.cdt.ddsc.packs.componentfiles/Renesas\#\#BSP\#\#all\#\#Memory\#\#\#\#2.0.0/all= +com.renesas.cdt.ddsc.packs.componentfiles/Arm\#\#CMSIS\#\#CMSIS5\#\#Core\#\#\#\#5.7.0+renesas.1.fsp.2.0.0/libraries= +com.renesas.cdt.ddsc.packs.componentfiles/Renesas\#\#HAL\ Drivers\#\#all\#\#r_sci_uart\#\#\#\#2.0.0/all=2921827146,rzn/fsp/src/r_sci_uart/r_sci_uart.c|4093801030,rzn/fsp/inc/instances/r_sci_uart.h|1119704027,rzn/fsp/inc/api/r_uart_api.h|3586794436,rzn/fsp/inc/api/r_transfer_api.h +com.renesas.cdt.ddsc.packs.componentfiles/Renesas\#\#BSP\#\#rzn2l\#\#device\#\#\#\#2.0.0/all=3243637314,rzn/fsp/src/bsp/cmsis/Device/RENESAS/Include/system.h +com.renesas.cdt.ddsc.packs.componentfiles/Renesas\#\#BSP\#\#rzn2l\#\#device\#\#\#\#2.0.0/libraries= +com.renesas.cdt.ddsc.packs.componentfiles/Renesas\#\#BSP\#\#rzn2l\#\#fsp\#\#\#\#2.0.0/all=2989202485,rzn/fsp/src/bsp/mcu/rzn2l/bsp_loader_param.c|1967641730,rzn/fsp/src/bsp/mcu/rzn2l/bsp_feature.h|1508541487,rzn/fsp/src/bsp/mcu/rzn2l/bsp_elc.h|1088535767,rzn/fsp/src/bsp/mcu/rzn2l/bsp_irq_sense.c|1458388275,rzn/fsp/src/bsp/mcu/rzn2l/bsp_override.h|617637586,rzn/fsp/src/bsp/mcu/rzn2l/bsp_mcu_info.h +com.renesas.cdt.ddsc.packs.componentfiles/Renesas\#\#HAL\ Drivers\#\#all\#\#r_sci_uart\#\#\#\#2.0.0/libraries= +com.renesas.cdt.ddsc.packs.componentfiles/Renesas\#\#Common\#\#all\#\#fsp_common\#\#\#\#2.0.0/libraries= +com.renesas.cdt.ddsc.packs.componentfiles/Renesas\#\#HAL\ Drivers\#\#all\#\#r_ioport\#\#\#\#2.0.0/all=615913359,rzn/fsp/src/r_ioport/r_ioport.c|3347087544,rzn/fsp/inc/instances/r_ioport.h|250199021,rzn/fsp/inc/api/r_ioport_api.h diff --git a/bsp/renesas/rzn2l_rsk/Kconfig b/bsp/renesas/rzn2l_rsk/Kconfig new file mode 100644 index 0000000000..896f127335 --- /dev/null +++ b/bsp/renesas/rzn2l_rsk/Kconfig @@ -0,0 +1,17 @@ +mainmenu "RT-Thread Configuration" + +BSP_DIR := . + +RTT_DIR := ../../.. + +# you can change the RTT_ROOT default "rt-thread" +# example : default "F:/git_repositories/rt-thread" + +PKGS_DIR := packages + +ENV_DIR := / + +source "$(RTT_DIR)/Kconfig" +osource "$PKGS_DIR/Kconfig" +rsource "../libraries/Kconfig" +source "$(BSP_DIR)/board/Kconfig" diff --git a/bsp/renesas/rzn2l_rsk/README.md b/bsp/renesas/rzn2l_rsk/README.md new file mode 100644 index 0000000000..e12338d8ec --- /dev/null +++ b/bsp/renesas/rzn2l_rsk/README.md @@ -0,0 +1,168 @@ +# Renesas RSK-RZN2L Development Board BSP Documentation + +**English** | [**中文**](./README_zh.md) + +## Introduction + +This document provides the BSP (Board Support Package) for the Renesas RSK-RZN2L development board. By following the Quick Start Guide, developers can quickly get started with the BSP and run RT-Thread on the development board. + +The main contents include: + +- Development Board Introduction +- BSP Quick Start Guide + +## Development Board Introduction + +The RSK-RZN2L MCU evaluation board is based on Renesas RZ/N2L and is designed for developing embedded system applications with flexible software package configuration and IDE support. + +The front appearance of the development board is shown below: + +![image-20240914173709363](figures/image-20240914173709363.png) + +The commonly used **onboard resources** for this development board are as follows: + +- MPU: R9A07G084M04GBG, maximum operating frequency of 400MHz, Arm® Cortex®-R52 with on-chip FPU (Floating Point Unit) and NEON™, 1.5 MB on-chip SRAM, Ethernet MAC, EtherCAT, USB 2.0 High-Speed, CAN/CANFD, various communication interfaces such as xSPI and ΔΣ interfaces, and security functions. +- Debug Interface: Onboard J-Link interface +- Expansion Interface: Two PMOD connectors + +**More detailed information and tools** + +## Peripheral Support + +The current peripheral support in this BSP is as follows: + +| **On-chip Peripheral** | **Support Status** | **Remarks** | +| :----------------- | :----------------- | :------------- | +| UART | Supported | UART0 is the default log output port | +| GPIO | Supported | | +| HWIMER | Supported | | +| IIC | Supported | | +| WDT | Supported | | +| RTC | Supported | | +| ADC | Supported | | +| DAC | Supported | | +| SPI | Supported | | +| FLASH | Supported | | +| PWM | Supported | | +| CAN | Supported | | +| ETH | Supported | | +| More updates... | | | + +## Instructions + +The instructions are divided into the following two sections: + +- Quick Start + + This section is for beginners who are new to RT-Thread. By following simple steps, you can run the RT-Thread OS on this development board and observe the experimental results. + +- Advanced Usage + + This section is for developers who want to use more resources on the development board with RT-Thread. Using the ENV tool to configure the BSP, you can enable more onboard resources and achieve more advanced features. + +### Quick Start + +Currently, this BSP only provides an IAR project. Below is an example of how to get the system running using the [IAR Embedded Workbench for Arm](https://www.iar.com/products/architectures/arm/iar-embedded-workbench-for-arm/) development environment. + +**Hardware Connection** + +Connect the development board to the PC using a USB data cable, and use the J-Link interface to download and debug programs. + +**Compilation and Download** + +- Go to the BSP directory, open ENV, and use the command `scons --target=iar` to generate the IAR project. +- Compile: Double-click the `project.eww` file to open the IAR project and compile the program. +- Debug: Click `Project->Download and Debug` in the IAR toolbar to download and start debugging. + +**View Running Results** + +After successfully downloading the program, the system will run automatically and print system information. + +Connect the corresponding serial port of the development board to the PC. Open the corresponding serial port in a terminal tool (115200-8-1-N). After resetting the device, you can see the RT-Thread output. Enter the `help` command to view the supported commands in the system. + +```bash + \ | / +- RT - Thread Operating System + / | \ 5.1.0 build Mar 14 2024 18:26:01 + 2006 - 2024 Copyright by RT-Thread team + +Hello RT-Thread! +================================================== +This is a iar project which mode is xspi0 execution! +================================================== +msh >help +RT-Thread shell commands: +clear - clear the terminal screen +version - show RT-Thread version information +list - list objects +backtrace - print backtrace of a thread +help - RT-Thread shell help +ps - List threads in the system +free - Show the memory usage in the system +pin - pin [option] + +msh > +``` + +**Application Entry Function** + +The application layer's entry function is in `src\hal_entry.c` in the `void hal_entry(void)` function. User source files can be placed directly in the `src` directory. + +```c +#define LED_PIN BSP_IO_PORT_18_PIN_2 /* Onboard LED pins */ + +void hal_entry(void) +{ + rt_kprintf("\nHello RT-Thread!\n"); + rt_kprintf("==================================================\n"); + rt_kprintf("This is a iar project which mode is xspi0 execution!\n"); + rt_kprintf("==================================================\n"); + + while (1) + { + rt_pin_write(LED_PIN, PIN_HIGH); + rt_thread_mdelay(500); + rt_pin_write(LED_PIN, PIN_LOW); + rt_thread_mdelay(500); + } +} +``` + +### Advanced Usage + +**Resources and Documentation** + +- [Development Board Official Homepage](https://www.renesas.cn/zh/products/microcontrollers-microprocessors/rz-mpus/rzn2l-integrated-tsn-compliant-3-port-gigabit-ethernet-switch-enables-various-industrial-applications) +- [Development Board Data Sheet](https://www.renesas.cn/zh/document/dst/rzn2l-group-datasheet?r=1622651) +- [Development Board Hardware Manual](https://www.renesas.cn/zh/document/mah/rzn2l-group-users-manual-hardware?r=1622651) +- [RZ/N2L MCU Quick Start Guide](https://www.renesas.cn/zh/document/apn/rzt2-rzn2-device-setup-guide-flash-boot-application-note?r=1622651) +- [RZ/N2L Easy Download Guide](https://www.renesas.cn/zh/document/gde/rzn2l-easy-download-guide?r=1622651) +- [Renesas RZ/N2L Group](https://www.renesas.cn/zh/document/fly/renesas-rzn2l-group?r=1622651) + +**FSP Configuration** + +If you need to modify Renesas BSP peripheral configurations or add new peripheral ports, you will need to use the Renesas [FSP](https://www2.renesas.cn/jp/zh/software-tool/flexible-software-package-fsp#document) configuration tool. Please follow the steps below. If you encounter any issues during the configuration, feel free to ask on the [RT-Thread Community Forum](https://club.rt-thread.org/). + +1. [Download the Flexible Software Package (FSP) | Renesas](https://github.com/renesas/rzn-fsp/releases/download/v2.0.0/setup_rznfsp_v2_0_0_rzsc_v2024-01.1.exe), please use version FSP 2.0.0. +2. Refer to the document [How to Import Board Support Package](https://www2.renesas.cn/document/ppt/1527171?language=zh&r=1527191) to add the **"RSK-RZN2L Board Support Package"** to FSP. +3. Refer to the document: [RA Series Using FSP to Configure Peripheral Drivers](https://www.rt-thread.org/document/site/#/rt-thread-version/rt-thread-standard/tutorial/make-bsp/renesas-ra/RA系列使用FSP配置外设驱动?id=ra系列使用-fsp-配置外设驱动). + +**ENV Configuration** + +- How to use the ENV tool: [RT-Thread ENV Tool User Manual](https://www.rt-thread.org/document/site/#/development-tools/env/env) + +By default, this BSP only enables UART0. To use more advanced features like components, software packages, etc., you need to configure the BSP using the ENV tool. + +Steps: +1. Open the env tool in the BSP directory. +2. Enter the `menuconfig` command to configure the project. After configuration, save and exit. +3. Enter the `pkgs --update` command to update the software packages. +4. Enter the `scons --target=iar` command to regenerate the project. + +## Contact Information + +If you have any thoughts or suggestions during usage, feel free to contact us via the [RT-Thread Community Forum](https://club.rt-thread.org/). + +## Contribute Code + +If you are interested in the RSK-RZN2L and have some exciting projects to share with the community, we welcome your code contributions. You can refer to [How to Contribute Code to RT-Thread](https://www.rt-thread.org/document/site/#/rt-thread-version/rt-thread-standard/development-guide/github/github). \ No newline at end of file diff --git a/bsp/renesas/rzn2l_rsk/README_zh.md b/bsp/renesas/rzn2l_rsk/README_zh.md new file mode 100644 index 0000000000..6c7579e746 --- /dev/null +++ b/bsp/renesas/rzn2l_rsk/README_zh.md @@ -0,0 +1,168 @@ +# 瑞萨 RSK-RZN2L 开发板 BSP 说明 + +**中文** | [**English**](./README.md) + +## 简介 + +本文档为瑞萨 RSK-RZN2L 开发板提供的 BSP (板级支持包) 说明。通过阅读快速上手章节开发者可以快速地上手该 BSP,将 RT-Thread 运行在开发板上。 + +主要内容如下: + +- 开发板介绍 +- BSP 快速上手指南 + +## 开发板介绍 + +基于瑞萨 RZ/N2L 开发的 RSK-RZN2L MCU 评估板,通过灵活配置软件包和 IDE,对嵌入系统应用程序进行开发。 + +开发板正面外观如下图: + +![image-20240914173709363](figures/image-20240914173709363.png) + +该开发板常用 **板载资源** 如下: + +- MPU:R9A07G084M04GBG,最大工作频率 400MHz,Arm® Cortex®-R52 片上浮点单元(FPU)和 NEON™,1.5 MB 片上 SRAM,Ethernet MAC,EtherCAT,USB 2.0 高速,CAN/CANFD,xSPI 和 ΔΣ 接口等各种通信接口,以及安全功能。 +- 调试接口:板载 J-Link 接口 +- 扩展接口:两个 PMOD 连接器 + +**更多详细资料及工具** + +## 外设支持 + +本 BSP 目前对外设的支持情况如下: + +| **片上外设** | **支持情况** | **备注** | +| :----------------- | :----------------- | :------------- | +| UART | 支持 | UART0 为默认日志输出端口 | +| GPIO | 支持 | | +| HWIMER | 支持 | | +| IIC | 支持 | | +| WDT | 支持 | | +| RTC | 支持 | | +| ADC | 支持 | | +| DAC | 支持 | | +| SPI | 支持 | | +| FLASH | 支持 | | +| PWM | 支持 | | +| CAN | 支持 | | +| ETH | 支持 | | +| 持续更新中... | | | + + +## 使用说明 + +使用说明分为如下两个章节: + +- 快速上手 + + 本章节是为刚接触 RT-Thread 的新手准备的使用说明,遵循简单的步骤即可将 RT-Thread 操作系统运行在该开发板上,看到实验效果 。 +- 进阶使用 + + 本章节是为需要在 RT-Thread 操作系统上使用更多开发板资源的开发者准备的。通过使用 ENV 工具对 BSP 进行配置,可以开启更多板载资源,实现更多高级功能。 + +### 快速上手 + +本 BSP 目前仅提供 IAR 工程。下面以 [IAR Embedded Workbench for Arm](https://www.iar.com/products/architectures/arm/iar-embedded-workbench-for-arm/) 开发环境为例,介绍如何将系统运行起来。 + +**硬件连接** + +使用 USB 数据线连接开发板到 PC,使用 J-link 接口下载和 DEBUG 程序。 + +**编译下载** + +- 进入 bsp 目录下,打开 ENV 使用命令 `scons --target=iar` 生成 IAR工程。 +- 编译:双击 project.eww 文件,打开 IAR 工程,编译程序。 +- 调试:IAR 左上方导航栏点击 `Project->Download and Debug`下载并启动调试。 + +**查看运行结果** + +下载程序成功之后,系统会自动运行并打印系统信息。 + +连接开发板对应串口到 PC , 在终端工具里打开相应的串口(115200-8-1-N),复位设备后,可以看到 RT-Thread 的输出信息。输入 help 命令可查看系统中支持的命令。 + +```bash + \ | / +- RT - Thread Operating System + / | \ 5.1.0 build Mar 14 2024 18:26:01 + 2006 - 2024 Copyright by RT-Thread team + +Hello RT-Thread! +================================================== +This is a iar project which mode is xspi0 execution! +================================================== +msh >help +RT-Thread shell commands: +clear - clear the terminal screen +version - show RT-Thread version information +list - list objects +backtrace - print backtrace of a thread +help - RT-Thread shell help +ps - List threads in the system +free - Show the memory usage in the system +pin - pin [option] + +msh > +``` + +**应用入口函数** + +应用层的入口函数在 **src\hal_entry.c** 中 的 `void hal_entry(void)` 。用户编写的源文件可直接放在 src 目录下。 + +```c +#define LED_PIN BSP_IO_PORT_18_PIN_2 /* Onboard LED pins */ + +void hal_entry(void) +{ + rt_kprintf("\nHello RT-Thread!\n"); + rt_kprintf("==================================================\n"); + rt_kprintf("This is a iar project which mode is xspi0 execution!\n"); + rt_kprintf("==================================================\n"); + + while (1) + { + rt_pin_write(LED_PIN, PIN_HIGH); + rt_thread_mdelay(500); + rt_pin_write(LED_PIN, PIN_LOW); + rt_thread_mdelay(500); + } +} +``` + +### 进阶使用 + +**资料及文档** + +- [开发板官网主页](https://www.renesas.cn/zh/products/microcontrollers-microprocessors/rz-mpus/rzn2l-integrated-tsn-compliant-3-port-gigabit-ethernet-switch-enables-various-industrial-applications) +- [开发板数据手册](https://www.renesas.cn/zh/document/dst/rzn2l-group-datasheet?r=1622651) +- [开发板硬件手册](https://www.renesas.cn/zh/document/mah/rzn2l-group-users-manual-hardware?r=1622651) +- [RZ/N2L MCU 快速入门指南](https://www.renesas.cn/zh/document/apn/rzt2-rzn2-device-setup-guide-flash-boot-application-note?r=1622651) +- [RZ/N2L Easy Download Guide](https://www.renesas.cn/zh/document/gde/rzn2l-easy-download-guide?r=1622651) +- [Renesas RZ/N2L Group](https://www.renesas.cn/zh/document/fly/renesas-rzn2l-group?r=1622651) + +**FSP 配置** + +需要修改瑞萨的 BSP 外设配置或添加新的外设端口,需要用到瑞萨的 [FSP](https://www2.renesas.cn/jp/zh/software-tool/flexible-software-package-fsp#document) 配置工具。请务必按照如下步骤完成配置。配置中有任何问题可到[RT-Thread 社区论坛](https://club.rt-thread.org/)中提问。 + +1. [下载灵活配置软件包 (FSP) | Renesas](https://github.com/renesas/rzn-fsp/releases/download/v2.0.0/setup_rznfsp_v2_0_0_rzsc_v2024-01.1.exe),请使用 FSP 2.0.0 版本 +2. 如何将 **”RSK-RZN2L板级支持包“**添加到 FSP 中,请参考文档[如何导入板级支持包](https://www2.renesas.cn/document/ppt/1527171?language=zh&r=1527191) +3. 请参考文档:[RA系列使用FSP配置外设驱动](https://www.rt-thread.org/document/site/#/rt-thread-version/rt-thread-standard/tutorial/make-bsp/renesas-ra/RA系列使用FSP配置外设驱动?id=ra系列使用-fsp-配置外设驱动)。 + +**ENV 配置** + +- 如何使用 ENV 工具:[RT-Thread env 工具用户手册](https://www.rt-thread.org/document/site/#/development-tools/env/env) + +此 BSP 默认只开启了 UART0 的功能,如果需使用更多高级功能例如组件、软件包等,需要利用 ENV 工具进行配置。 + +步骤如下: +1. 在 bsp 下打开 env 工具。 +2. 输入`menuconfig`命令配置工程,配置好之后保存退出。 +3. 输入`pkgs --update`命令更新软件包。 +4. 输入`scons --target=iar` 命令重新生成工程。 + +## 联系人信息 + +在使用过程中若您有任何的想法和建议,建议您通过以下方式来联系到我们 [RT-Thread 社区论坛](https://club.rt-thread.org/) + +## 贡献代码 + +如果您对 RSK-RZN2L 感兴趣,并且有一些好玩的项目愿意与大家分享的话欢迎给我们贡献代码,您可以参考 [如何向 RT-Thread 代码贡献](https://www.rt-thread.org/document/site/#/rt-thread-version/rt-thread-standard/development-guide/github/github)。 diff --git a/bsp/renesas/rzn2l_rsk/SConscript b/bsp/renesas/rzn2l_rsk/SConscript new file mode 100644 index 0000000000..889ba12c85 --- /dev/null +++ b/bsp/renesas/rzn2l_rsk/SConscript @@ -0,0 +1,28 @@ +# for module compiling +import os +Import('RTT_ROOT') +Import('rtconfig') +from building import * +from gcc import * + +cwd = GetCurrentDir() +src = [] +CPPPATH = [cwd] +group = [] +list = os.listdir(cwd) + +if rtconfig.PLATFORM in ['iccarm']: + group = DefineGroup('', src, depend = [''], CPPPATH = CPPPATH) +elif rtconfig.PLATFORM in GetGCCLikePLATFORM(): + if GetOption('target') != 'mdk5': + CPPPATH = [cwd] + src = Glob('./src/*.c') + +group = DefineGroup('Applications', src, depend = [''], CPPPATH = CPPPATH) + +for d in list: + path = os.path.join(cwd, d) + if os.path.isfile(os.path.join(path, 'SConscript')): + group = group + SConscript(os.path.join(d, 'SConscript')) + +Return('group') diff --git a/bsp/renesas/rzn2l_rsk/SConstruct b/bsp/renesas/rzn2l_rsk/SConstruct new file mode 100644 index 0000000000..ec52972c99 --- /dev/null +++ b/bsp/renesas/rzn2l_rsk/SConstruct @@ -0,0 +1,54 @@ +import os +import sys +import rtconfig + +if os.getenv('RTT_ROOT'): + RTT_ROOT = os.getenv('RTT_ROOT') +else: + RTT_ROOT = os.path.normpath(os.getcwd() + '/../../..') + +sys.path = sys.path + [os.path.join(RTT_ROOT, 'tools')] +try: + from building import * +except: + print('Cannot found RT-Thread root directory, please check RTT_ROOT') + print(RTT_ROOT) + exit(-1) + +TARGET = 'rtthread.' + rtconfig.TARGET_EXT + +DefaultEnvironment(tools=[]) +env = Environment(tools = ['mingw'], + AS = rtconfig.AS, ASFLAGS = rtconfig.AFLAGS, + CC = rtconfig.CC, CFLAGS = rtconfig.CFLAGS, + AR = rtconfig.AR, ARFLAGS = '-rc', + LINK = rtconfig.LINK, LINKFLAGS = rtconfig.LFLAGS) +env.PrependENVPath('PATH', rtconfig.EXEC_PATH) + +if rtconfig.PLATFORM in ['iccarm']: + env.Replace(CCCOM = ['$CC $CFLAGS $CPPFLAGS $_CPPDEFFLAGS $_CPPINCFLAGS -o $TARGET $SOURCES']) + env.Replace(ARFLAGS = ['']) + env.Replace(LINKCOM = env["LINKCOM"] + ' --map project.map') + +Export('RTT_ROOT') +Export('rtconfig') + +SDK_ROOT = os.path.abspath('./') +if os.path.exists(SDK_ROOT + '/libraries'): + libraries_path_prefix = SDK_ROOT + '/libraries' +else: + libraries_path_prefix = os.path.dirname(SDK_ROOT) + '/libraries' + +SDK_LIB = libraries_path_prefix +Export('SDK_LIB') + +rtconfig.BSP_LIBRARY_TYPE = None + +# prepare building environment +objs = PrepareBuilding(env, RTT_ROOT, has_libcpu=False) + +# include drivers +objs.extend(SConscript(os.path.join(libraries_path_prefix, 'HAL_Drivers', 'SConscript'))) + +# make a building +DoBuilding(TARGET, objs) diff --git a/bsp/renesas/rzn2l_rsk/board/Kconfig b/bsp/renesas/rzn2l_rsk/board/Kconfig new file mode 100644 index 0000000000..994910cf14 --- /dev/null +++ b/bsp/renesas/rzn2l_rsk/board/Kconfig @@ -0,0 +1,201 @@ +menu "Hardware Drivers Config" + + config SOC_R9A07G084 + bool + select SOC_SERIES_R9A07G0 + select RT_USING_COMPONENTS_INIT + select RT_USING_USER_MAIN + default y + + menu "Onboard Peripheral Drivers" + + config BSP_USING_ETHERCAT_EOE + bool "Enable EtherCAT EOE example" + select BSP_USING_ETH + default n + if BSP_USING_ETHERCAT_EOE + config RT_LWIP_IPADDR + string "set static ip address for eoe slaver" + default "192.168.10.100" + config RT_LWIP_GWADDR + string "set static gateway address for eoe slaver" + default "192.168.10.1" + config RT_LWIP_MSKADDR + string "set static mask address for eoe slaver" + default "255.255.255.0" + endif + + endmenu + + menu "On-chip Peripheral Drivers" + + rsource "../../libraries/HAL_Drivers/Kconfig" + + menuconfig BSP_USING_UART + bool "Enable UART" + default y + select RT_USING_SERIAL + select RT_USING_SERIAL_V2 + if BSP_USING_UART + + menuconfig BSP_USING_UART0 + bool "Enable UART0" + default n + if BSP_USING_UART0 + config BSP_UART0_RX_USING_DMA + bool "Enable UART0 RX DMA" + depends on BSP_USING_UART0 && RT_SERIAL_USING_DMA + default n + + config BSP_UART0_TX_USING_DMA + bool "Enable UART0 TX DMA" + depends on BSP_USING_UART0 && RT_SERIAL_USING_DMA + default n + + config BSP_UART0_RX_BUFSIZE + int "Set UART0 RX buffer size" + range 64 65535 + depends on RT_USING_SERIAL_V2 + default 256 + + config BSP_UART0_TX_BUFSIZE + int "Set UART0 TX buffer size" + range 0 65535 + depends on RT_USING_SERIAL_V2 + default 0 + endif + endif + + menuconfig BSP_USING_ADC + bool "Enable ADC" + default n + select RT_USING_ADC + if BSP_USING_ADC + config BSP_USING_ADC1 + bool "Enable ADC1" + default n + endif + + menuconfig BSP_USING_CANFD + bool "Enable CANFD" + default n + select RT_USING_CAN + select RT_CAN_USING_CANFD + if BSP_USING_CANFD + config BSP_USING_CANFD0 + bool "Enable CANFD0" + default n + endif + + menuconfig BSP_USING_I2C + bool "Enable I2C BUS" + default n + select RT_USING_I2C + select RT_USING_I2C_BITOPS + select RT_USING_PIN + if BSP_USING_I2C + config BSP_USING_HW_I2C + bool "Enable Hardware I2C BUS" + default n + if BSP_USING_HW_I2C + config BSP_USING_HW_I2C0 + bool "Enable Hardware I2C0 BUS" + default n + endif + if BSP_USING_HW_I2C + config BSP_USING_HW_I2C1 + bool "Enable Hardware I2C1 BUS" + default n + endif + if !BSP_USING_HW_I2C + menuconfig BSP_USING_I2C1 + bool "Enable I2C1 BUS (software simulation)" + default y + if BSP_USING_I2C1 + config BSP_I2C1_SCL_PIN + hex "i2c1 scl pin number" + range 0x0000 0x0B0F + default 0x0B03 + config BSP_I2C1_SDA_PIN + hex "I2C1 sda pin number" + range 0x0000 0x0B0F + default 0x050E + endif + endif + endif + + menuconfig BSP_USING_SPI + bool "Enable SPI BUS" + default n + select RT_USING_SPI + if BSP_USING_SPI + config BSP_USING_SPI0 + bool "Enable SPI0 BUS" + default n + config BSP_USING_SPI1 + bool "Enable SPI1 BUS" + default n + config BSP_USING_SPI2 + bool "Enable SPI2 BUS" + default n + endif + + menuconfig BSP_USING_TIM + bool "Enable timer" + default n + select RT_USING_HWTIMER + if BSP_USING_TIM + config BSP_USING_TIM0 + bool "Enable TIM0" + default n + config BSP_USING_TIM1 + bool "Enable TIM1" + default n + endif + + config BSP_USING_ETH + bool "Enable Ethernet" + select RT_USING_SAL + select RT_USING_LWIP + select RT_USING_NETDEV + default n + + endmenu + + menu "Board extended module Drivers" + menuconfig BSP_USING_RW007 + bool "Enable RW007" + default n + select PKG_USING_RW007 + select BSP_USING_SPI + select BSP_USING_SPI2 + select RT_USING_MEMPOOL + select RW007_NOT_USE_EXAMPLE_DRIVERS + + if BSP_USING_RW007 + config RA_RW007_SPI_BUS_NAME + string "RW007 BUS NAME" + default "spi2" + + config RA_RW007_CS_PIN + hex "(HEX)CS pin index" + default 0x1207 + + config RA_RW007_BOOT0_PIN + hex "(HEX)BOOT0 pin index (same as spi clk pin)" + default 0x1204 + + config RA_RW007_BOOT1_PIN + hex "(HEX)BOOT1 pin index (same as spi cs pin)" + default 0x1207 + + config RA_RW007_INT_BUSY_PIN + hex "(HEX)INT/BUSY pin index" + default 0x1102 + + config RA_RW007_RST_PIN + hex "(HEX)RESET pin index" + default 0x1706 + endif + endmenu +endmenu diff --git a/bsp/renesas/rzn2l_rsk/board/SConscript b/bsp/renesas/rzn2l_rsk/board/SConscript new file mode 100644 index 0000000000..a27ea8e470 --- /dev/null +++ b/bsp/renesas/rzn2l_rsk/board/SConscript @@ -0,0 +1,16 @@ +import os +from building import * + +objs = [] +cwd = GetCurrentDir() +list = os.listdir(cwd) +CPPPATH = [cwd] +src = Glob('*.c') + +objs = DefineGroup('Drivers', src, depend = [''], CPPPATH = CPPPATH) + +for item in list: + if os.path.isfile(os.path.join(cwd, item, 'SConscript')): + objs = objs + SConscript(os.path.join(item, 'SConscript')) + +Return('objs') diff --git a/bsp/renesas/rzn2l_rsk/board/board.h b/bsp/renesas/rzn2l_rsk/board/board.h new file mode 100644 index 0000000000..cf53068064 --- /dev/null +++ b/bsp/renesas/rzn2l_rsk/board/board.h @@ -0,0 +1,64 @@ +/* + * Copyright (c) 2006-2021, RT-Thread Development Team + * + * SPDX-License-Identifier: Apache-2.0 + * + * Change Logs: + * Date Author Notes + * 2024-03-11 Wangyuqiang first version + */ + +#ifndef __BOARD_H__ +#define __BOARD_H__ + +#ifdef __cplusplus +extern "C" { +#endif + +#include +#include +#include + +#define RZ_SRAM_SIZE 512 /* The SRAM size of the chip needs to be modified */ +#define RZ_SRAM_END (0x10000000 + RZ_SRAM_SIZE * 1024 - 1) + +#ifdef __ARMCC_VERSION +extern int Image$$RAM_END$$ZI$$Base; +#define HEAP_BEGIN ((void *)&Image$$RAM_END$$ZI$$Base) +#elif __ICCARM__ +#pragma section="CSTACK" +#define HEAP_BEGIN (__segment_end("CSTACK")) +#else +#define HEAP_BEGIN (0x10000000) +#endif + +#define HEAP_END RZ_SRAM_END + +/*********************************************************************************************************************** + * Macro definitions + **********************************************************************************************************************/ +#define MAX_HANDLERS (512) +#define GIC_IRQ_START 0 +#define GIC_ACK_INTID_MASK (0x000003FFU) +/* number of interrupts on board */ +#define ARM_GIC_NR_IRQS (448) +/* only one GIC available */ +#define ARM_GIC_MAX_NR 1 +/* end defined */ + +#define GICV3_DISTRIBUTOR_BASE_ADDR (0x100000) + +/* the basic constants and interfaces needed by gic */ +rt_inline rt_uint32_t platform_get_gic_dist_base(void) +{ + rt_uint32_t gic_base; + + __get_cp(15, 1, gic_base, 15, 3, 0); + return gic_base + GICV3_DISTRIBUTOR_BASE_ADDR; +} + +#ifdef __cplusplus +} +#endif + +#endif diff --git a/bsp/renesas/rzn2l_rsk/board/ports/SConscript b/bsp/renesas/rzn2l_rsk/board/ports/SConscript new file mode 100644 index 0000000000..e8ac9ae59e --- /dev/null +++ b/bsp/renesas/rzn2l_rsk/board/ports/SConscript @@ -0,0 +1,16 @@ +import os +from building import * + +objs = [] +src = Glob('*.c') +cwd = GetCurrentDir() +CPPPATH = [cwd] + +objs = DefineGroup('Drivers', src, depend = [''], CPPPATH = CPPPATH) + +list = os.listdir(cwd) +for item in list: + if os.path.isfile(os.path.join(cwd, item, 'SConscript')): + objs = objs + SConscript(os.path.join(item, 'SConscript')) + +Return('objs') diff --git a/bsp/renesas/rzn2l_rsk/board/ports/gpio_cfg.h b/bsp/renesas/rzn2l_rsk/board/ports/gpio_cfg.h new file mode 100644 index 0000000000..d179d4ab6c --- /dev/null +++ b/bsp/renesas/rzn2l_rsk/board/ports/gpio_cfg.h @@ -0,0 +1,74 @@ +/* + * Copyright (c) 2006-2021, RT-Thread Development Team + * + * SPDX-License-Identifier: Apache-2.0 + * + * Change Logs: + * Date Author Notes + * 2024-03-11 Wangyuqiang first version + */ + +/* Number of IRQ channels on the device */ +#define RA_IRQ_MAX 16 + +/* PIN to IRQx table */ +#define PIN2IRQX_TABLE \ +{ \ + switch (pin) \ + { \ + case BSP_IO_PORT_00_PIN_1: \ + case BSP_IO_PORT_09_PIN_2: \ + case BSP_IO_PORT_18_PIN_3: \ + return 0; \ + case BSP_IO_PORT_00_PIN_3: \ + case BSP_IO_PORT_07_PIN_4: \ + case BSP_IO_PORT_18_PIN_4: \ + return 1; \ + case BSP_IO_PORT_01_PIN_2: \ + return 2; \ + case BSP_IO_PORT_01_PIN_4: \ + return 3; \ + case BSP_IO_PORT_02_PIN_0: \ + case BSP_IO_PORT_22_PIN_2: \ + return 4; \ + case BSP_IO_PORT_03_PIN_5: \ + case BSP_IO_PORT_13_PIN_2: \ + return 5; \ + case BSP_IO_PORT_14_PIN_2: \ + case BSP_IO_PORT_21_PIN_5: \ + return 6; \ + case BSP_IO_PORT_16_PIN_3: \ + return 7; \ + case BSP_IO_PORT_03_PIN_6: \ + case BSP_IO_PORT_16_PIN_6: \ + return 8; \ + case BSP_IO_PORT_03_PIN_7: \ + case BSP_IO_PORT_21_PIN_6: \ + return 9; \ + case BSP_IO_PORT_04_PIN_4: \ + case BSP_IO_PORT_18_PIN_1: \ + case BSP_IO_PORT_21_PIN_7: \ + return 10; \ + case BSP_IO_PORT_10_PIN_4: \ + case BSP_IO_PORT_18_PIN_6: \ + return 11; \ + case BSP_IO_PORT_05_PIN_0: \ + case BSP_IO_PORT_05_PIN_4: \ + case BSP_IO_PORT_05_PIN_6: \ + return 12; \ + case BSP_IO_PORT_00_PIN_4: \ + case BSP_IO_PORT_00_PIN_7: \ + case BSP_IO_PORT_05_PIN_1: \ + return 13; \ + case BSP_IO_PORT_02_PIN_2: \ + case BSP_IO_PORT_03_PIN_0: \ + case BSP_IO_PORT_05_PIN_2: \ + return 14; \ + case BSP_IO_PORT_02_PIN_3: \ + case BSP_IO_PORT_05_PIN_3: \ + case BSP_IO_PORT_22_PIN_0: \ + return 15; \ + default : \ + return -1; \ + } \ +} diff --git a/bsp/renesas/rzn2l_rsk/buildinfo.ipcf b/bsp/renesas/rzn2l_rsk/buildinfo.ipcf new file mode 100644 index 0000000000..f80fac71ee --- /dev/null +++ b/bsp/renesas/rzn2l_rsk/buildinfo.ipcf @@ -0,0 +1,153 @@ + + + + R9A07G084M04 + + + $PROJ_DIR$/rzn/arm/CMSIS_5/CMSIS/Core_R/Include + $PROJ_DIR$/rzn/fsp/inc + $PROJ_DIR$/rzn/fsp/inc/api + $PROJ_DIR$/rzn/fsp/inc/instances + $PROJ_DIR$/rzn/fsp/src/bsp/mcu/all/cr + $PROJ_DIR$/rzn_cfg/fsp_cfg + $PROJ_DIR$/rzn_cfg/fsp_cfg/bsp + $PROJ_DIR$/rzn_gen + $PROJ_DIR$/src + $PROJ_DIR$ + + + _RZN_ORDINAL=1 + _RZN_CORE=CR52_0 + _RENESAS_RZN_ + + + $PROJ_DIR$/rzn/arm/CMSIS_5/CMSIS/Core_R/Include + $PROJ_DIR$/rzn/fsp/inc + $PROJ_DIR$/rzn/fsp/inc/api + $PROJ_DIR$/rzn/fsp/inc/instances + $PROJ_DIR$/rzn/fsp/src/bsp/mcu/all/cr + $PROJ_DIR$/rzn_cfg/fsp_cfg + $PROJ_DIR$/rzn_cfg/fsp_cfg/bsp + $PROJ_DIR$/rzn_gen + $PROJ_DIR$/src + $PROJ_DIR$ + + + _RZN_ORDINAL=1 + _RZN_CORE=CR52_0 + _RENESAS_RZN_ + + + true + $PROJ_DIR$/script/fsp_xspi0_boot.icf + + + --config_search "$PROJ_DIR$" + + + system_init + + + + + RASC_EXE_PATH + D:\manufacture_apps\Renesas\fsp\rzn_v2.0.0\eclipse\rasc.exe + + + + + + rzn/arm/CMSIS_5/CMSIS/Core_R/Include/cmsis_compiler.h + rzn/arm/CMSIS_5/CMSIS/Core_R/Include/cmsis_cp15.h + rzn/arm/CMSIS_5/CMSIS/Core_R/Include/cmsis_gcc.h + rzn/arm/CMSIS_5/CMSIS/Core_R/Include/cmsis_iccarm.h + rzn/arm/CMSIS_5/CMSIS/Core_R/Include/cmsis_version.h + rzn/arm/CMSIS_5/CMSIS/Core_R/Include/core_cr52.h + rzn/arm/CMSIS_5/LICENSE.txt + rzn/board/rzn2l_rsk/board.h + rzn/board/rzn2l_rsk/board_ethernet_phy.h + rzn/board/rzn2l_rsk/board_init.c + rzn/board/rzn2l_rsk/board_init.h + rzn/board/rzn2l_rsk/board_leds.c + rzn/board/rzn2l_rsk/board_leds.h + rzn/fsp/inc/api/bsp_api.h + rzn/fsp/inc/api/r_ioport_api.h + rzn/fsp/inc/api/r_transfer_api.h + rzn/fsp/inc/api/r_uart_api.h + rzn/fsp/inc/fsp_common_api.h + rzn/fsp/inc/fsp_features.h + rzn/fsp/inc/fsp_version.h + rzn/fsp/inc/instances/r_ioport.h + rzn/fsp/inc/instances/r_sci_uart.h + rzn/fsp/src/bsp/cmsis/Device/RENESAS/Include/R9A07G084.h + rzn/fsp/src/bsp/cmsis/Device/RENESAS/Include/renesas.h + rzn/fsp/src/bsp/cmsis/Device/RENESAS/Include/system.h + rzn/fsp/src/bsp/cmsis/Device/RENESAS/Source/cr/startup_core.c + rzn/fsp/src/bsp/cmsis/Device/RENESAS/Source/cr/system_core.c + rzn/fsp/src/bsp/cmsis/Device/RENESAS/Source/startup.c + rzn/fsp/src/bsp/cmsis/Device/RENESAS/Source/system.c + rzn/fsp/src/bsp/mcu/all/bsp_cache.c + rzn/fsp/src/bsp/mcu/all/bsp_cache.h + rzn/fsp/src/bsp/mcu/all/bsp_clocks.c + rzn/fsp/src/bsp/mcu/all/bsp_clocks.h + rzn/fsp/src/bsp/mcu/all/bsp_common.c + rzn/fsp/src/bsp/mcu/all/bsp_common.h + rzn/fsp/src/bsp/mcu/all/bsp_compiler_support.h + rzn/fsp/src/bsp/mcu/all/bsp_delay.c + rzn/fsp/src/bsp/mcu/all/bsp_delay.h + rzn/fsp/src/bsp/mcu/all/bsp_exceptions.h + rzn/fsp/src/bsp/mcu/all/bsp_io.c + rzn/fsp/src/bsp/mcu/all/bsp_io.h + rzn/fsp/src/bsp/mcu/all/bsp_irq.c + rzn/fsp/src/bsp/mcu/all/bsp_irq.h + rzn/fsp/src/bsp/mcu/all/bsp_mcu_api.h + rzn/fsp/src/bsp/mcu/all/bsp_module_stop.h + rzn/fsp/src/bsp/mcu/all/bsp_register_protection.c + rzn/fsp/src/bsp/mcu/all/bsp_register_protection.h + rzn/fsp/src/bsp/mcu/all/bsp_reset.c + rzn/fsp/src/bsp/mcu/all/bsp_reset.h + rzn/fsp/src/bsp/mcu/all/bsp_sbrk.c + rzn/fsp/src/bsp/mcu/all/bsp_tfu.h + rzn/fsp/src/bsp/mcu/all/cr/bsp_cache_core.c + rzn/fsp/src/bsp/mcu/all/cr/bsp_cache_core.h + rzn/fsp/src/bsp/mcu/all/cr/bsp_delay_core.c + rzn/fsp/src/bsp/mcu/all/cr/bsp_delay_core.h + rzn/fsp/src/bsp/mcu/all/cr/bsp_irq_core.c + rzn/fsp/src/bsp/mcu/all/cr/bsp_irq_core.h + rzn/fsp/src/bsp/mcu/rzn2l/bsp_elc.h + rzn/fsp/src/bsp/mcu/rzn2l/bsp_feature.h + rzn/fsp/src/bsp/mcu/rzn2l/bsp_irq_sense.c + rzn/fsp/src/bsp/mcu/rzn2l/bsp_loader_param.c + rzn/fsp/src/bsp/mcu/rzn2l/bsp_mcu_info.h + rzn/fsp/src/bsp/mcu/rzn2l/bsp_override.h + rzn/fsp/src/r_ioport/r_ioport.c + rzn/fsp/src/r_sci_uart/r_sci_uart.c + + + rzn_cfg/fsp_cfg/bsp/board_cfg.h + rzn_cfg/fsp_cfg/bsp/bsp_cfg.h + rzn_cfg/fsp_cfg/bsp/bsp_mcu_device_cfg.h + rzn_cfg/fsp_cfg/bsp/bsp_mcu_device_memory_cfg.h + rzn_cfg/fsp_cfg/bsp/bsp_mcu_device_pn_cfg.h + rzn_cfg/fsp_cfg/bsp/bsp_mcu_family_cfg.h + rzn_cfg/fsp_cfg/bsp/bsp_memory_cfg.h + rzn_cfg/fsp_cfg/bsp/bsp_pin_cfg.h + rzn_cfg/fsp_cfg/r_ioport_cfg.h + rzn_cfg/fsp_cfg/r_sci_uart_cfg.h + + + rzn_gen/bsp_clock_cfg.h + rzn_gen/common_data.c + rzn_gen/common_data.h + rzn_gen/hal_data.c + rzn_gen/hal_data.h + rzn_gen/main.c + rzn_gen/pin_data.c + rzn_gen/vector_data.c + rzn_gen/vector_data.h + + + src/hal_entry.c + + + diff --git a/bsp/renesas/rzn2l_rsk/configuration.xml b/bsp/renesas/rzn2l_rsk/configuration.xml new file mode 100644 index 0000000000..e2a3575d5f --- /dev/null +++ b/bsp/renesas/rzn2l_rsk/configuration.xml @@ -0,0 +1,1111 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Board Support Package Common Files + Renesas.RZN.2.0.0.pack + + + Memory Config Checking + Renesas.RZN.2.0.0.pack + + + I/O Port + Renesas.RZN.2.0.0.pack + + + Arm CMSIS Version 5 - Core + Arm.CMSIS5.5.7.0+renesas.1.fsp.2.0.0.pack + + + RSK+RZN2L Board Support Files (xSPI0 x1 boot mode) + Renesas.RZN_board_rzn2l_rsk.2.0.0.pack + + + Board support package for R9A07G084M04GBG + Renesas.RZN_mcu_rzn2l.2.0.0.pack + + + Board support package for RZN2L + Renesas.RZN_mcu_rzn2l.2.0.0.pack + + + Board support package for RZN2L - FSP Data + Renesas.RZN_mcu_rzn2l.2.0.0.pack + + + SCI UART + Renesas.RZN.2.0.0.pack + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/bsp/renesas/rzn2l_rsk/figures/image-20240914173709363.png b/bsp/renesas/rzn2l_rsk/figures/image-20240914173709363.png new file mode 100644 index 0000000000..f36978de7b Binary files /dev/null and b/bsp/renesas/rzn2l_rsk/figures/image-20240914173709363.png differ diff --git a/bsp/renesas/rzn2l_rsk/memory_regions.icf b/bsp/renesas/rzn2l_rsk/memory_regions.icf new file mode 100644 index 0000000000..619084b72f --- /dev/null +++ b/bsp/renesas/rzn2l_rsk/memory_regions.icf @@ -0,0 +1,38 @@ + + /* generated memory regions file - do not edit */ + define symbol ATCM_START = 0x00000000; + define symbol ATCM_LENGTH = 0x20000; + define symbol BTCM_START = 0x00100000; + define symbol BTCM_LENGTH = 0x20000; + define symbol SYSTEM_RAM_START = 0x10000000; + define symbol SYSTEM_RAM_LENGTH = 0x180000; + define symbol SYSTEM_RAM_MIRROR_START = 0x30000000; + define symbol SYSTEM_RAM_MIRROR_LENGTH = 0x180000; + define symbol xSPI0_CS0_SPACE_MIRROR_START = 0x40000000; + define symbol xSPI0_CS0_SPACE_MIRROR_LENGTH = 0x4000000; + define symbol xSPI0_CS1_SPACE_MIRROR_START = 0x44000000; + define symbol xSPI0_CS1_SPACE_MIRROR_LENGTH = 0x4000000; + define symbol xSPI1_CS0_SPACE_MIRROR_START = 0x48000000; + define symbol xSPI1_CS0_SPACE_MIRROR_LENGTH = 0x4000000; + define symbol CS0_SPACE_MIRROR_START = 0x50000000; + define symbol CS0_SPACE_MIRROR_LENGTH = 0x4000000; + define symbol CS2_SPACE_MIRROR_START = 0x54000000; + define symbol CS2_SPACE_MIRROR_LENGTH = 0x4000000; + define symbol CS3_SPACE_MIRROR_START = 0x58000000; + define symbol CS3_SPACE_MIRROR_LENGTH = 0x4000000; + define symbol CS5_SPACE_MIRROR_START = 0x5C000000; + define symbol CS5_SPACE_MIRROR_LENGTH = 0x4000000; + define symbol xSPI0_CS0_SPACE_START = 0x60000000; + define symbol xSPI0_CS0_SPACE_LENGTH = 0x4000000; + define symbol xSPI0_CS1_SPACE_START = 0x64000000; + define symbol xSPI0_CS1_SPACE_LENGTH = 0x4000000; + define symbol xSPI1_CS0_SPACE_START = 0x68000000; + define symbol xSPI1_CS0_SPACE_LENGTH = 0x4000000; + define symbol CS0_SPACE_START = 0x70000000; + define symbol CS0_SPACE_LENGTH = 0x4000000; + define symbol CS2_SPACE_START = 0x74000000; + define symbol CS2_SPACE_LENGTH = 0x4000000; + define symbol CS3_SPACE_START = 0x78000000; + define symbol CS3_SPACE_LENGTH = 0x4000000; + define symbol CS5_SPACE_START = 0x7C000000; + define symbol CS5_SPACE_LENGTH = 0x4000000; diff --git a/bsp/renesas/rzn2l_rsk/project.ewd b/bsp/renesas/rzn2l_rsk/project.ewd new file mode 100644 index 0000000000..f60045d9c5 --- /dev/null +++ b/bsp/renesas/rzn2l_rsk/project.ewd @@ -0,0 +1,3276 @@ + + + 4 + + Debug + + ARM + + 1 + + C-SPY + 2 + + 33 + 1 + 1 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + ARMSIM_ID + 2 + + 1 + 1 + 1 + + + + + + + + CADI_ID + 2 + + 0 + 1 + 1 + + + + + + + + + CMSISDAP_ID + 2 + + 4 + 1 + 1 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + E2_ID + 2 + + 0 + 1 + 1 + + + + + + + + + + GDBSERVER_ID + 2 + + 0 + 1 + 1 + + + + + + + + + + + GPLINK_ID + 2 + + 0 + 1 + 1 + + + + + + + IJET_ID + 2 + + 9 + 1 + 1 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + JLINK_ID + 2 + + 16 + 1 + 1 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + LMIFTDI_ID + 2 + + 3 + 1 + 1 + + + + + + + + + + + + + NULINK_ID + 2 + + 0 + 1 + 1 + + + + + + + PEMICRO_ID + 2 + + 3 + 1 + 1 + + + + + + + + STLINK_ID + 2 + + 8 + 1 + 1 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + THIRDPARTY_ID + 2 + + 0 + 1 + 1 + + + + + + + + TIFET_ID + 2 + + 1 + 1 + 1 + + + + + + + + + + + + + + + + + + + XDS100_ID + 2 + + 9 + 1 + 1 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + $TOOLKIT_DIR$\plugins\rtos\Azure\AzureArmPlugin.ENU.ewplugin + 0 + + + $TOOLKIT_DIR$\plugins\rtos\CMX\CmxArmPlugin.ENU.ewplugin + 0 + + + $TOOLKIT_DIR$\plugins\rtos\CMX\CmxTinyArmPlugin.ENU.ewplugin + 0 + + + $TOOLKIT_DIR$\plugins\rtos\embOS\embOSPlugin.ewplugin + 0 + + + $TOOLKIT_DIR$\plugins\rtos\FreeRtos\FreeRtosArmPlugin.ENU.ewplugin + 0 + + + $TOOLKIT_DIR$\plugins\rtos\Mbed\MbedArmPlugin.ENU.ewplugin + 0 + + + $TOOLKIT_DIR$\plugins\rtos\Mbed\MbedArmPlugin2.ENU.ewplugin + 0 + + + $TOOLKIT_DIR$\plugins\rtos\OpenRTOS\OpenRTOSPlugin.ewplugin + 0 + + + $TOOLKIT_DIR$\plugins\rtos\SafeRTOS\SafeRTOSPlugin.ewplugin + 0 + + + $TOOLKIT_DIR$\plugins\rtos\SMX\smxAwareIarArm9a.ewplugin + 0 + + + $TOOLKIT_DIR$\plugins\rtos\ThreadX\ThreadXArmPlugin.ENU.ewplugin + 0 + + + $TOOLKIT_DIR$\plugins\rtos\uCOS-II\uCOS-II-286-KA-CSpy.ewplugin + 0 + + + $TOOLKIT_DIR$\plugins\rtos\uCOS-II\uCOS-II-KA-CSpy.ewplugin + 0 + + + $TOOLKIT_DIR$\plugins\rtos\uCOS-III\uCOS-III-KA-CSpy.ewplugin + 0 + + + $EW_DIR$\common\plugins\Orti\Orti.ENU.ewplugin + 0 + + + $EW_DIR$\common\plugins\TargetAccessServer\TargetAccessServer.ENU.ewplugin + 0 + + + $EW_DIR$\common\plugins\uCProbe\uCProbePlugin.ENU.ewplugin + 0 + + + + + Release + + ARM + + 0 + + C-SPY + 2 + + 33 + 1 + 0 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + ARMSIM_ID + 2 + + 1 + 1 + 0 + + + + + + + + CADI_ID + 2 + + 0 + 1 + 0 + + + + + + + + + CMSISDAP_ID + 2 + + 4 + 1 + 0 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + E2_ID + 2 + + 0 + 1 + 0 + + + + + + + + + + GDBSERVER_ID + 2 + + 0 + 1 + 0 + + + + + + + + + + + GPLINK_ID + 2 + + 0 + 1 + 0 + + + + + + + IJET_ID + 2 + + 9 + 1 + 0 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + JLINK_ID + 2 + + 16 + 1 + 0 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + LMIFTDI_ID + 2 + + 3 + 1 + 0 + + + + + + + + + + + + + NULINK_ID + 2 + + 0 + 1 + 0 + + + + + + + PEMICRO_ID + 2 + + 3 + 1 + 0 + + + + + + + + STLINK_ID + 2 + + 8 + 1 + 0 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + THIRDPARTY_ID + 2 + + 0 + 1 + 0 + + + + + + + + TIFET_ID + 2 + + 1 + 1 + 0 + + + + + + + + + + + + + + + + + + + XDS100_ID + 2 + + 9 + 1 + 0 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + $TOOLKIT_DIR$\plugins\rtos\Azure\AzureArmPlugin.ENU.ewplugin + 0 + + + $TOOLKIT_DIR$\plugins\rtos\CMX\CmxArmPlugin.ENU.ewplugin + 0 + + + $TOOLKIT_DIR$\plugins\rtos\CMX\CmxTinyArmPlugin.ENU.ewplugin + 0 + + + $TOOLKIT_DIR$\plugins\rtos\embOS\embOSPlugin.ewplugin + 0 + + + $TOOLKIT_DIR$\plugins\rtos\FreeRtos\FreeRtosArmPlugin.ENU.ewplugin + 0 + + + $TOOLKIT_DIR$\plugins\rtos\Mbed\MbedArmPlugin.ENU.ewplugin + 0 + + + $TOOLKIT_DIR$\plugins\rtos\Mbed\MbedArmPlugin2.ENU.ewplugin + 0 + + + $TOOLKIT_DIR$\plugins\rtos\OpenRTOS\OpenRTOSPlugin.ewplugin + 0 + + + $TOOLKIT_DIR$\plugins\rtos\SafeRTOS\SafeRTOSPlugin.ewplugin + 0 + + + $TOOLKIT_DIR$\plugins\rtos\SMX\smxAwareIarArm9a.ewplugin + 0 + + + $TOOLKIT_DIR$\plugins\rtos\ThreadX\ThreadXArmPlugin.ENU.ewplugin + 0 + + + $TOOLKIT_DIR$\plugins\rtos\uCOS-II\uCOS-II-286-KA-CSpy.ewplugin + 0 + + + $TOOLKIT_DIR$\plugins\rtos\uCOS-II\uCOS-II-KA-CSpy.ewplugin + 0 + + + $TOOLKIT_DIR$\plugins\rtos\uCOS-III\uCOS-III-KA-CSpy.ewplugin + 0 + + + $EW_DIR$\common\plugins\Orti\Orti.ENU.ewplugin + 0 + + + $EW_DIR$\common\plugins\TargetAccessServer\TargetAccessServer.ENU.ewplugin + 0 + + + $EW_DIR$\common\plugins\uCProbe\uCProbePlugin.ENU.ewplugin + 0 + + + + diff --git a/bsp/renesas/rzn2l_rsk/project.ewp b/bsp/renesas/rzn2l_rsk/project.ewp new file mode 100644 index 0000000000..571f8bdf8b --- /dev/null +++ b/bsp/renesas/rzn2l_rsk/project.ewp @@ -0,0 +1,2802 @@ + + + 4 + + Debug + + ARM + + 1 + + General + 3 + + 36 + 1 + 1 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + ICCARM + 2 + + 38 + 1 + 1 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + AARM + 2 + + 12 + 1 + 1 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + OBJCOPY + 0 + + 1 + 1 + 1 + + + + + + + + + CUSTOM + 3 + + + + 1 + inputOutputBased + + + + ILINK + 0 + + 27 + 1 + 1 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + IARCHIVE + 0 + + 0 + 1 + 1 + + + + + + + BUILDACTION + 2 + + + + + Release + + ARM + + 0 + + General + 3 + + 36 + 1 + 0 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + ICCARM + 2 + + 38 + 1 + 0 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + AARM + 2 + + 12 + 1 + 0 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + OBJCOPY + 0 + + 1 + 1 + 0 + + + + + + + + + CUSTOM + 3 + + + + 0 + inputOutputBased + + + + ILINK + 0 + + 27 + 1 + 0 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + IARCHIVE + 0 + + 0 + 1 + 0 + + + + + + + BUILDACTION + 2 + + + + cmd /c ""$RASC_EXE_PATH$" -nosplash --launcher.suppressErrors --generate --compiler IAR --devicefamily rzn "$PROJ_DIR$\configuration.xml" 2> "%TEMP%\rasc_stderr.out"" + $PROJ_DIR$ + preCompile + + + $BUILD_FILES_DIR$/.prebuild + + + + + cmd /c ""$RASC_EXE_PATH$" -nosplash --launcher.suppressErrors --gensmartbundle --compiler IAR --devicefamily rzn "$PROJ_DIR$\configuration.xml" "$TARGET_PATH$" 2> "%TEMP%\rasc_stderr.out"" && echo > "$BUILD_FILES_DIR$/.postbuild" + $PROJ_DIR$ + postLink + + + $BUILD_FILES_DIR$/.postbuild + + + + + + + + + Applications + + + Compiler + + $PROJ_DIR$\..\..\..\components\libc\compilers\common\cctype.c + + + $PROJ_DIR$\..\..\..\components\libc\compilers\common\cstdlib.c + + + $PROJ_DIR$\..\..\..\components\libc\compilers\common\cstring.c + + + $PROJ_DIR$\..\..\..\components\libc\compilers\common\ctime.c + + + $PROJ_DIR$\..\..\..\components\libc\compilers\common\cunistd.c + + + $PROJ_DIR$\..\..\..\components\libc\compilers\common\cwchar.c + + + $PROJ_DIR$\..\..\..\components\libc\compilers\dlib\environ.c + + + $PROJ_DIR$\..\..\..\components\libc\compilers\dlib\syscall_close.c + + + $PROJ_DIR$\..\..\..\components\libc\compilers\dlib\syscall_lseek.c + + + $PROJ_DIR$\..\..\..\components\libc\compilers\dlib\syscall_mem.c + + + $PROJ_DIR$\..\..\..\components\libc\compilers\dlib\syscall_open.c + + + $PROJ_DIR$\..\..\..\components\libc\compilers\dlib\syscall_read.c + + + $PROJ_DIR$\..\..\..\components\libc\compilers\dlib\syscall_remove.c + + + $PROJ_DIR$\..\..\..\components\libc\compilers\dlib\syscall_write.c + + + $PROJ_DIR$\..\..\..\components\libc\compilers\dlib\syscalls.c + + + + CPU + + $PROJ_DIR$\..\..\..\libcpu\arm\cortex-r52\backtrace.c + + + $PROJ_DIR$\..\..\..\libcpu\arm\cortex-r52\context_iar.S + + + $PROJ_DIR$\..\..\..\libcpu\arm\cortex-r52\cpuport.c + + + $PROJ_DIR$\..\..\..\libcpu\arm\cortex-r52\gicv3.c + + + $PROJ_DIR$\..\..\..\libcpu\arm\cortex-r52\interrupt.c + + + $PROJ_DIR$\..\..\..\libcpu\arm\cortex-r52\stack.c + + + $PROJ_DIR$\..\..\..\libcpu\arm\cortex-r52\start_iar.S + + + $PROJ_DIR$\..\..\..\libcpu\arm\cortex-r52\trap.c + + + $PROJ_DIR$\..\..\..\libcpu\arm\cortex-r52\vector_iar.S + + + + DeviceDrivers + + $PROJ_DIR$\..\..\..\components\drivers\ipc\completion_comm.c + + + $PROJ_DIR$\..\..\..\components\drivers\ipc\completion_up.c + + + $PROJ_DIR$\..\..\..\components\drivers\ipc\condvar.c + + + $PROJ_DIR$\..\..\..\components\drivers\ipc\dataqueue.c + + + $PROJ_DIR$\..\..\..\components\drivers\pin\dev_pin.c + + + $PROJ_DIR$\..\..\..\components\drivers\serial\dev_serial_v2.c + + + $PROJ_DIR$\..\..\..\components\drivers\core\device.c + + + $PROJ_DIR$\..\..\..\components\drivers\ipc\pipe.c + + + $PROJ_DIR$\..\..\..\components\drivers\ipc\ringblk_buf.c + + + $PROJ_DIR$\..\..\..\components\drivers\ipc\ringbuffer.c + + + $PROJ_DIR$\..\..\..\components\drivers\ipc\waitqueue.c + + + $PROJ_DIR$\..\..\..\components\drivers\ipc\workqueue.c + + + + Drivers + + $PROJ_DIR$\..\libraries\HAL_Drivers\drv_common.c + + + $PROJ_DIR$\..\libraries\HAL_Drivers\drv_gpio.c + + + $PROJ_DIR$\..\libraries\HAL_Drivers\drv_usart_v2.c + + + + Finsh + + $PROJ_DIR$\..\..\..\components\finsh\cmd.c + + + $PROJ_DIR$\..\..\..\components\finsh\msh.c + + + $PROJ_DIR$\..\..\..\components\finsh\msh_parse.c + + + $PROJ_DIR$\..\..\..\components\finsh\shell.c + + + + Flex Software + + Build Configuration + + $PROJ_DIR$\rzn_cfg\fsp_cfg\bsp\board_cfg.h + + + $PROJ_DIR$\rzn_cfg\fsp_cfg\bsp\bsp_cfg.h + + + $PROJ_DIR$\rzn_cfg\fsp_cfg\bsp\bsp_mcu_device_cfg.h + + + $PROJ_DIR$\rzn_cfg\fsp_cfg\bsp\bsp_mcu_device_memory_cfg.h + + + $PROJ_DIR$\rzn_cfg\fsp_cfg\bsp\bsp_mcu_device_pn_cfg.h + + + $PROJ_DIR$\rzn_cfg\fsp_cfg\bsp\bsp_mcu_family_cfg.h + + + $PROJ_DIR$\rzn_cfg\fsp_cfg\bsp\bsp_memory_cfg.h + + + $PROJ_DIR$\rzn_cfg\fsp_cfg\bsp\bsp_pin_cfg.h + + + $PROJ_DIR$\rzn_cfg\fsp_cfg\r_ioport_cfg.h + + + $PROJ_DIR$\rzn_cfg\fsp_cfg\r_sci_uart_cfg.h + + + + Components + + $PROJ_DIR$\rzn\board\rzn2l_rsk\board.h + + + $PROJ_DIR$\rzn\board\rzn2l_rsk\board_ethernet_phy.h + + + $PROJ_DIR$\rzn\board\rzn2l_rsk\board_init.c + + + $PROJ_DIR$\rzn\board\rzn2l_rsk\board_init.h + + + $PROJ_DIR$\rzn\board\rzn2l_rsk\board_leds.c + + + $PROJ_DIR$\rzn\board\rzn2l_rsk\board_leds.h + + + $PROJ_DIR$\rzn\fsp\inc\api\bsp_api.h + + + $PROJ_DIR$\rzn\fsp\src\bsp\mcu\all\bsp_cache.c + + + $PROJ_DIR$\rzn\fsp\src\bsp\mcu\all\bsp_cache.h + + + $PROJ_DIR$\rzn\fsp\src\bsp\mcu\all\cr\bsp_cache_core.c + + + $PROJ_DIR$\rzn\fsp\src\bsp\mcu\all\cr\bsp_cache_core.h + + + $PROJ_DIR$\rzn\fsp\src\bsp\mcu\all\bsp_clocks.c + + + $PROJ_DIR$\rzn\fsp\src\bsp\mcu\all\bsp_clocks.h + + + $PROJ_DIR$\rzn\fsp\src\bsp\mcu\all\bsp_common.c + + + $PROJ_DIR$\rzn\fsp\src\bsp\mcu\all\bsp_common.h + + + $PROJ_DIR$\rzn\fsp\src\bsp\mcu\all\bsp_compiler_support.h + + + $PROJ_DIR$\rzn\fsp\src\bsp\mcu\all\bsp_delay.c + + + $PROJ_DIR$\rzn\fsp\src\bsp\mcu\all\bsp_delay.h + + + $PROJ_DIR$\rzn\fsp\src\bsp\mcu\all\cr\bsp_delay_core.c + + + $PROJ_DIR$\rzn\fsp\src\bsp\mcu\all\cr\bsp_delay_core.h + + + $PROJ_DIR$\rzn\fsp\src\bsp\mcu\rzn2l\bsp_elc.h + + + $PROJ_DIR$\rzn\fsp\src\bsp\mcu\all\bsp_exceptions.h + + + $PROJ_DIR$\rzn\fsp\src\bsp\mcu\rzn2l\bsp_feature.h + + + $PROJ_DIR$\rzn\fsp\src\bsp\mcu\all\bsp_io.c + + + $PROJ_DIR$\rzn\fsp\src\bsp\mcu\all\bsp_io.h + + + $PROJ_DIR$\rzn\fsp\src\bsp\mcu\all\bsp_irq.c + + + $PROJ_DIR$\rzn\fsp\src\bsp\mcu\all\bsp_irq.h + + + $PROJ_DIR$\rzn\fsp\src\bsp\mcu\all\cr\bsp_irq_core.c + + + $PROJ_DIR$\rzn\fsp\src\bsp\mcu\all\cr\bsp_irq_core.h + + + $PROJ_DIR$\rzn\fsp\src\bsp\mcu\rzn2l\bsp_irq_sense.c + + + $PROJ_DIR$\rzn\fsp\src\bsp\mcu\rzn2l\bsp_loader_param.c + + + $PROJ_DIR$\rzn\fsp\src\bsp\mcu\all\bsp_mcu_api.h + + + $PROJ_DIR$\rzn\fsp\src\bsp\mcu\rzn2l\bsp_mcu_info.h + + + $PROJ_DIR$\rzn\fsp\src\bsp\mcu\all\bsp_module_stop.h + + + $PROJ_DIR$\rzn\fsp\src\bsp\mcu\rzn2l\bsp_override.h + + + $PROJ_DIR$\rzn\fsp\src\bsp\mcu\all\bsp_register_protection.c + + + $PROJ_DIR$\rzn\fsp\src\bsp\mcu\all\bsp_register_protection.h + + + $PROJ_DIR$\rzn\fsp\src\bsp\mcu\all\bsp_reset.c + + + $PROJ_DIR$\rzn\fsp\src\bsp\mcu\all\bsp_reset.h + + + $PROJ_DIR$\rzn\fsp\src\bsp\mcu\all\bsp_sbrk.c + + + $PROJ_DIR$\rzn\fsp\src\bsp\mcu\all\bsp_tfu.h + + + $PROJ_DIR$\rzn\arm\CMSIS_5\CMSIS\Core_R\Include\cmsis_compiler.h + + + $PROJ_DIR$\rzn\arm\CMSIS_5\CMSIS\Core_R\Include\cmsis_cp15.h + + + $PROJ_DIR$\rzn\arm\CMSIS_5\CMSIS\Core_R\Include\cmsis_gcc.h + + + $PROJ_DIR$\rzn\arm\CMSIS_5\CMSIS\Core_R\Include\cmsis_iccarm.h + + + $PROJ_DIR$\rzn\arm\CMSIS_5\CMSIS\Core_R\Include\cmsis_version.h + + + $PROJ_DIR$\rzn\arm\CMSIS_5\CMSIS\Core_R\Include\core_cr52.h + + + $PROJ_DIR$\rzn\fsp\inc\fsp_common_api.h + + + $PROJ_DIR$\rzn\fsp\inc\fsp_features.h + + + $PROJ_DIR$\rzn\fsp\inc\fsp_version.h + + + $PROJ_DIR$\rzn\arm\CMSIS_5\LICENSE.txt + + + $PROJ_DIR$\rzn\fsp\src\bsp\cmsis\Device\RENESAS\Include\R9A07G084.h + + + $PROJ_DIR$\rzn\fsp\src\r_ioport\r_ioport.c + + + $PROJ_DIR$\rzn\fsp\inc\instances\r_ioport.h + + + $PROJ_DIR$\rzn\fsp\inc\api\r_ioport_api.h + + + $PROJ_DIR$\rzn\fsp\src\r_sci_uart\r_sci_uart.c + + + $PROJ_DIR$\rzn\fsp\inc\instances\r_sci_uart.h + + + $PROJ_DIR$\rzn\fsp\inc\api\r_transfer_api.h + + + $PROJ_DIR$\rzn\fsp\inc\api\r_uart_api.h + + + $PROJ_DIR$\rzn\fsp\src\bsp\cmsis\Device\RENESAS\Include\renesas.h + + + $PROJ_DIR$\rzn\fsp\src\bsp\cmsis\Device\RENESAS\Source\startup.c + + + $PROJ_DIR$\rzn\fsp\src\bsp\cmsis\Device\RENESAS\Source\cr\startup_core.c + + + $PROJ_DIR$\rzn\fsp\src\bsp\cmsis\Device\RENESAS\Source\system.c + + + $PROJ_DIR$\rzn\fsp\src\bsp\cmsis\Device\RENESAS\Include\system.h + + + $PROJ_DIR$\rzn\fsp\src\bsp\cmsis\Device\RENESAS\Source\cr\system_core.c + + + + Generated Data + + $PROJ_DIR$\rzn_gen\bsp_clock_cfg.h + + + $PROJ_DIR$\rzn_gen\common_data.c + + + $PROJ_DIR$\rzn_gen\common_data.h + + + $PROJ_DIR$\rzn_gen\hal_data.c + + + $PROJ_DIR$\rzn_gen\hal_data.h + + + $PROJ_DIR$\rzn_gen\main.c + + + $PROJ_DIR$\rzn_gen\pin_data.c + + + $PROJ_DIR$\rzn_gen\vector_data.c + + + $PROJ_DIR$\rzn_gen\vector_data.h + + + + Program Entry + + $PROJ_DIR$\src\hal_entry.c + + + + + Kernel + + $PROJ_DIR$\..\..\..\src\clock.c + + + $PROJ_DIR$\..\..\..\src\components.c + + + $PROJ_DIR$\..\..\..\src\cpu_up.c + + + $PROJ_DIR$\..\..\..\src\idle.c + + + $PROJ_DIR$\..\..\..\src\ipc.c + + + $PROJ_DIR$\..\..\..\src\irq.c + + + $PROJ_DIR$\..\..\..\src\kservice.c + + + $PROJ_DIR$\..\..\..\src\klibc\kstdio.c + + + $PROJ_DIR$\..\..\..\src\klibc\kstring.c + + + $PROJ_DIR$\..\..\..\src\mem.c + + + $PROJ_DIR$\..\..\..\src\mempool.c + + + $PROJ_DIR$\..\..\..\src\object.c + + + $PROJ_DIR$\..\..\..\src\scheduler_comm.c + + + $PROJ_DIR$\..\..\..\src\scheduler_up.c + + + $PROJ_DIR$\..\..\..\src\thread.c + + + $PROJ_DIR$\..\..\..\src\timer.c + + + + libcpu + + $PROJ_DIR$\..\..\..\libcpu\arm\common\atomic_arm.c + + + $PROJ_DIR$\..\..\..\libcpu\arm\common\div0.c + + + $PROJ_DIR$\..\..\..\libcpu\arm\common\showmem.c + + + + POSIX + + + $PROJ_DIR$\buildinfo.ipcf + IAR.ControlFile + + diff --git a/bsp/renesas/rzn2l_rsk/project.ewt b/bsp/renesas/rzn2l_rsk/project.ewt new file mode 100644 index 0000000000..f5b8963f78 --- /dev/null +++ b/bsp/renesas/rzn2l_rsk/project.ewt @@ -0,0 +1,3406 @@ + + + 4 + + Debug + + ARM + + 1 + + C-STAT + 518 + + 518 + + 0 + + 1 + 600 + 1 + 3 + 0 + 1 + 100 + Debug/C-STAT + + + 2.6.0 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + RuntimeChecking + 0 + + 2 + 1 + 1 + + + + + + + + + + + + + + + + + + + + + + Release + + ARM + + 0 + + C-STAT + 518 + + 518 + + 0 + + 1 + 600 + 1 + 3 + 0 + 1 + 100 + Release/C-STAT + + + 2.6.0 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + RuntimeChecking + 0 + + 2 + 1 + 0 + + + + + + + + + + + + + + + + + + + + + + Applications + + + Compiler + + $PROJ_DIR$\..\..\..\components\libc\compilers\common\cctype.c + + + $PROJ_DIR$\..\..\..\components\libc\compilers\common\cstdlib.c + + + $PROJ_DIR$\..\..\..\components\libc\compilers\common\cstring.c + + + $PROJ_DIR$\..\..\..\components\libc\compilers\common\ctime.c + + + $PROJ_DIR$\..\..\..\components\libc\compilers\common\cunistd.c + + + $PROJ_DIR$\..\..\..\components\libc\compilers\common\cwchar.c + + + $PROJ_DIR$\..\..\..\components\libc\compilers\dlib\environ.c + + + $PROJ_DIR$\..\..\..\components\libc\compilers\dlib\syscall_close.c + + + $PROJ_DIR$\..\..\..\components\libc\compilers\dlib\syscall_lseek.c + + + $PROJ_DIR$\..\..\..\components\libc\compilers\dlib\syscall_mem.c + + + $PROJ_DIR$\..\..\..\components\libc\compilers\dlib\syscall_open.c + + + $PROJ_DIR$\..\..\..\components\libc\compilers\dlib\syscall_read.c + + + $PROJ_DIR$\..\..\..\components\libc\compilers\dlib\syscall_remove.c + + + $PROJ_DIR$\..\..\..\components\libc\compilers\dlib\syscall_write.c + + + $PROJ_DIR$\..\..\..\components\libc\compilers\dlib\syscalls.c + + + + CPU + + $PROJ_DIR$\..\..\..\libcpu\arm\cortex-r52\backtrace.c + + + $PROJ_DIR$\..\..\..\libcpu\arm\cortex-r52\context_iar.S + + + $PROJ_DIR$\..\..\..\libcpu\arm\cortex-r52\cpuport.c + + + $PROJ_DIR$\..\..\..\libcpu\arm\cortex-r52\gicv3.c + + + $PROJ_DIR$\..\..\..\libcpu\arm\cortex-r52\interrupt.c + + + $PROJ_DIR$\..\..\..\libcpu\arm\cortex-r52\stack.c + + + $PROJ_DIR$\..\..\..\libcpu\arm\cortex-r52\start_iar.S + + + $PROJ_DIR$\..\..\..\libcpu\arm\cortex-r52\trap.c + + + $PROJ_DIR$\..\..\..\libcpu\arm\cortex-r52\vector_iar.S + + + + DeviceDrivers + + $PROJ_DIR$\..\..\..\components\drivers\ipc\completion_comm.c + + + $PROJ_DIR$\..\..\..\components\drivers\ipc\completion_up.c + + + $PROJ_DIR$\..\..\..\components\drivers\ipc\condvar.c + + + $PROJ_DIR$\..\..\..\components\drivers\ipc\dataqueue.c + + + $PROJ_DIR$\..\..\..\components\drivers\pin\dev_pin.c + + + $PROJ_DIR$\..\..\..\components\drivers\serial\dev_serial_v2.c + + + $PROJ_DIR$\..\..\..\components\drivers\core\device.c + + + $PROJ_DIR$\..\..\..\components\drivers\ipc\pipe.c + + + $PROJ_DIR$\..\..\..\components\drivers\ipc\ringblk_buf.c + + + $PROJ_DIR$\..\..\..\components\drivers\ipc\ringbuffer.c + + + $PROJ_DIR$\..\..\..\components\drivers\ipc\waitqueue.c + + + $PROJ_DIR$\..\..\..\components\drivers\ipc\workqueue.c + + + + Drivers + + $PROJ_DIR$\..\libraries\HAL_Drivers\drv_common.c + + + $PROJ_DIR$\..\libraries\HAL_Drivers\drv_gpio.c + + + $PROJ_DIR$\..\libraries\HAL_Drivers\drv_usart_v2.c + + + + Finsh + + $PROJ_DIR$\..\..\..\components\finsh\cmd.c + + + $PROJ_DIR$\..\..\..\components\finsh\msh.c + + + $PROJ_DIR$\..\..\..\components\finsh\msh_parse.c + + + $PROJ_DIR$\..\..\..\components\finsh\shell.c + + + + Flex Software + + Build Configuration + + $PROJ_DIR$\rzn_cfg\fsp_cfg\bsp\board_cfg.h + + + $PROJ_DIR$\rzn_cfg\fsp_cfg\bsp\bsp_cfg.h + + + $PROJ_DIR$\rzn_cfg\fsp_cfg\bsp\bsp_mcu_device_cfg.h + + + $PROJ_DIR$\rzn_cfg\fsp_cfg\bsp\bsp_mcu_device_memory_cfg.h + + + $PROJ_DIR$\rzn_cfg\fsp_cfg\bsp\bsp_mcu_device_pn_cfg.h + + + $PROJ_DIR$\rzn_cfg\fsp_cfg\bsp\bsp_mcu_family_cfg.h + + + $PROJ_DIR$\rzn_cfg\fsp_cfg\bsp\bsp_memory_cfg.h + + + $PROJ_DIR$\rzn_cfg\fsp_cfg\bsp\bsp_pin_cfg.h + + + $PROJ_DIR$\rzn_cfg\fsp_cfg\r_ioport_cfg.h + + + $PROJ_DIR$\rzn_cfg\fsp_cfg\r_sci_uart_cfg.h + + + + Components + + $PROJ_DIR$\rzn\board\rzn2l_rsk\board.h + + + $PROJ_DIR$\rzn\board\rzn2l_rsk\board_ethernet_phy.h + + + $PROJ_DIR$\rzn\board\rzn2l_rsk\board_init.c + + + $PROJ_DIR$\rzn\board\rzn2l_rsk\board_init.h + + + $PROJ_DIR$\rzn\board\rzn2l_rsk\board_leds.c + + + $PROJ_DIR$\rzn\board\rzn2l_rsk\board_leds.h + + + $PROJ_DIR$\rzn\fsp\inc\api\bsp_api.h + + + $PROJ_DIR$\rzn\fsp\src\bsp\mcu\all\bsp_cache.c + + + $PROJ_DIR$\rzn\fsp\src\bsp\mcu\all\bsp_cache.h + + + $PROJ_DIR$\rzn\fsp\src\bsp\mcu\all\cr\bsp_cache_core.c + + + $PROJ_DIR$\rzn\fsp\src\bsp\mcu\all\cr\bsp_cache_core.h + + + $PROJ_DIR$\rzn\fsp\src\bsp\mcu\all\bsp_clocks.c + + + $PROJ_DIR$\rzn\fsp\src\bsp\mcu\all\bsp_clocks.h + + + $PROJ_DIR$\rzn\fsp\src\bsp\mcu\all\bsp_common.c + + + $PROJ_DIR$\rzn\fsp\src\bsp\mcu\all\bsp_common.h + + + $PROJ_DIR$\rzn\fsp\src\bsp\mcu\all\bsp_compiler_support.h + + + $PROJ_DIR$\rzn\fsp\src\bsp\mcu\all\bsp_delay.c + + + $PROJ_DIR$\rzn\fsp\src\bsp\mcu\all\bsp_delay.h + + + $PROJ_DIR$\rzn\fsp\src\bsp\mcu\all\cr\bsp_delay_core.c + + + $PROJ_DIR$\rzn\fsp\src\bsp\mcu\all\cr\bsp_delay_core.h + + + $PROJ_DIR$\rzn\fsp\src\bsp\mcu\rzn2l\bsp_elc.h + + + $PROJ_DIR$\rzn\fsp\src\bsp\mcu\all\bsp_exceptions.h + + + $PROJ_DIR$\rzn\fsp\src\bsp\mcu\rzn2l\bsp_feature.h + + + $PROJ_DIR$\rzn\fsp\src\bsp\mcu\all\bsp_io.c + + + $PROJ_DIR$\rzn\fsp\src\bsp\mcu\all\bsp_io.h + + + $PROJ_DIR$\rzn\fsp\src\bsp\mcu\all\bsp_irq.c + + + $PROJ_DIR$\rzn\fsp\src\bsp\mcu\all\bsp_irq.h + + + $PROJ_DIR$\rzn\fsp\src\bsp\mcu\all\cr\bsp_irq_core.c + + + $PROJ_DIR$\rzn\fsp\src\bsp\mcu\all\cr\bsp_irq_core.h + + + $PROJ_DIR$\rzn\fsp\src\bsp\mcu\rzn2l\bsp_irq_sense.c + + + $PROJ_DIR$\rzn\fsp\src\bsp\mcu\rzn2l\bsp_loader_param.c + + + $PROJ_DIR$\rzn\fsp\src\bsp\mcu\all\bsp_mcu_api.h + + + $PROJ_DIR$\rzn\fsp\src\bsp\mcu\rzn2l\bsp_mcu_info.h + + + $PROJ_DIR$\rzn\fsp\src\bsp\mcu\all\bsp_module_stop.h + + + $PROJ_DIR$\rzn\fsp\src\bsp\mcu\rzn2l\bsp_override.h + + + $PROJ_DIR$\rzn\fsp\src\bsp\mcu\all\bsp_register_protection.c + + + $PROJ_DIR$\rzn\fsp\src\bsp\mcu\all\bsp_register_protection.h + + + $PROJ_DIR$\rzn\fsp\src\bsp\mcu\all\bsp_reset.c + + + $PROJ_DIR$\rzn\fsp\src\bsp\mcu\all\bsp_reset.h + + + $PROJ_DIR$\rzn\fsp\src\bsp\mcu\all\bsp_sbrk.c + + + $PROJ_DIR$\rzn\fsp\src\bsp\mcu\all\bsp_tfu.h + + + $PROJ_DIR$\rzn\arm\CMSIS_5\CMSIS\Core_R\Include\cmsis_compiler.h + + + $PROJ_DIR$\rzn\arm\CMSIS_5\CMSIS\Core_R\Include\cmsis_cp15.h + + + $PROJ_DIR$\rzn\arm\CMSIS_5\CMSIS\Core_R\Include\cmsis_gcc.h + + + $PROJ_DIR$\rzn\arm\CMSIS_5\CMSIS\Core_R\Include\cmsis_iccarm.h + + + $PROJ_DIR$\rzn\arm\CMSIS_5\CMSIS\Core_R\Include\cmsis_version.h + + + $PROJ_DIR$\rzn\arm\CMSIS_5\CMSIS\Core_R\Include\core_cr52.h + + + $PROJ_DIR$\rzn\fsp\inc\fsp_common_api.h + + + $PROJ_DIR$\rzn\fsp\inc\fsp_features.h + + + $PROJ_DIR$\rzn\fsp\inc\fsp_version.h + + + $PROJ_DIR$\rzn\arm\CMSIS_5\LICENSE.txt + + + $PROJ_DIR$\rzn\fsp\src\bsp\cmsis\Device\RENESAS\Include\R9A07G084.h + + + $PROJ_DIR$\rzn\fsp\src\r_ioport\r_ioport.c + + + $PROJ_DIR$\rzn\fsp\inc\instances\r_ioport.h + + + $PROJ_DIR$\rzn\fsp\inc\api\r_ioport_api.h + + + $PROJ_DIR$\rzn\fsp\src\r_sci_uart\r_sci_uart.c + + + $PROJ_DIR$\rzn\fsp\inc\instances\r_sci_uart.h + + + $PROJ_DIR$\rzn\fsp\inc\api\r_transfer_api.h + + + $PROJ_DIR$\rzn\fsp\inc\api\r_uart_api.h + + + $PROJ_DIR$\rzn\fsp\src\bsp\cmsis\Device\RENESAS\Include\renesas.h + + + $PROJ_DIR$\rzn\fsp\src\bsp\cmsis\Device\RENESAS\Source\startup.c + + + $PROJ_DIR$\rzn\fsp\src\bsp\cmsis\Device\RENESAS\Source\cr\startup_core.c + + + $PROJ_DIR$\rzn\fsp\src\bsp\cmsis\Device\RENESAS\Source\system.c + + + $PROJ_DIR$\rzn\fsp\src\bsp\cmsis\Device\RENESAS\Include\system.h + + + $PROJ_DIR$\rzn\fsp\src\bsp\cmsis\Device\RENESAS\Source\cr\system_core.c + + + + Generated Data + + $PROJ_DIR$\rzn_gen\bsp_clock_cfg.h + + + $PROJ_DIR$\rzn_gen\common_data.c + + + $PROJ_DIR$\rzn_gen\common_data.h + + + $PROJ_DIR$\rzn_gen\hal_data.c + + + $PROJ_DIR$\rzn_gen\hal_data.h + + + $PROJ_DIR$\rzn_gen\main.c + + + $PROJ_DIR$\rzn_gen\pin_data.c + + + $PROJ_DIR$\rzn_gen\vector_data.c + + + $PROJ_DIR$\rzn_gen\vector_data.h + + + + Program Entry + + $PROJ_DIR$\src\hal_entry.c + + + + + Kernel + + $PROJ_DIR$\..\..\..\src\clock.c + + + $PROJ_DIR$\..\..\..\src\components.c + + + $PROJ_DIR$\..\..\..\src\cpu_up.c + + + $PROJ_DIR$\..\..\..\src\idle.c + + + $PROJ_DIR$\..\..\..\src\ipc.c + + + $PROJ_DIR$\..\..\..\src\irq.c + + + $PROJ_DIR$\..\..\..\src\kservice.c + + + $PROJ_DIR$\..\..\..\src\klibc\kstdio.c + + + $PROJ_DIR$\..\..\..\src\klibc\kstring.c + + + $PROJ_DIR$\..\..\..\src\mem.c + + + $PROJ_DIR$\..\..\..\src\mempool.c + + + $PROJ_DIR$\..\..\..\src\object.c + + + $PROJ_DIR$\..\..\..\src\scheduler_comm.c + + + $PROJ_DIR$\..\..\..\src\scheduler_up.c + + + $PROJ_DIR$\..\..\..\src\thread.c + + + $PROJ_DIR$\..\..\..\src\timer.c + + + + libcpu + + $PROJ_DIR$\..\..\..\libcpu\arm\common\atomic_arm.c + + + $PROJ_DIR$\..\..\..\libcpu\arm\common\div0.c + + + $PROJ_DIR$\..\..\..\libcpu\arm\common\showmem.c + + + + POSIX + + + $PROJ_DIR$\buildinfo.ipcf + + diff --git a/bsp/renesas/rzn2l_rsk/project.eww b/bsp/renesas/rzn2l_rsk/project.eww new file mode 100644 index 0000000000..c2cb02eb1e --- /dev/null +++ b/bsp/renesas/rzn2l_rsk/project.eww @@ -0,0 +1,10 @@ + + + + + $WS_DIR$\project.ewp + + + + + diff --git a/bsp/renesas/rzn2l_rsk/rtconfig.h b/bsp/renesas/rzn2l_rsk/rtconfig.h new file mode 100644 index 0000000000..d682c565ba --- /dev/null +++ b/bsp/renesas/rzn2l_rsk/rtconfig.h @@ -0,0 +1,344 @@ +#ifndef RT_CONFIG_H__ +#define RT_CONFIG_H__ + +/* RT-Thread Kernel */ + +#define RT_NAME_MAX 16 +#define RT_CPUS_NR 1 +#define RT_ALIGN_SIZE 8 +#define RT_THREAD_PRIORITY_32 +#define RT_THREAD_PRIORITY_MAX 32 +#define RT_TICK_PER_SECOND 1000 +#define RT_USING_HOOK +#define RT_HOOK_USING_FUNC_PTR +#define RT_USING_IDLE_HOOK +#define RT_IDLE_HOOK_LIST_SIZE 4 +#define IDLE_THREAD_STACK_SIZE 1024 + +/* kservice optimization */ + +/* end of kservice optimization */ + +/* klibc optimization */ + +/* end of klibc optimization */ +#define RT_USING_DEBUG +#define RT_DEBUGING_ASSERT +#define RT_DEBUGING_COLOR +#define RT_DEBUGING_CONTEXT +#define RT_USING_OVERFLOW_CHECK + +/* Inter-Thread communication */ + +#define RT_USING_SEMAPHORE +#define RT_USING_MUTEX +#define RT_USING_EVENT +#define RT_USING_MAILBOX +#define RT_USING_MESSAGEQUEUE +/* end of Inter-Thread communication */ + +/* Memory Management */ + +#define RT_USING_MEMPOOL +#define RT_USING_SMALL_MEM +#define RT_USING_SMALL_MEM_AS_HEAP +#define RT_USING_HEAP +/* end of Memory Management */ +#define RT_USING_DEVICE +#define RT_USING_CONSOLE +#define RT_CONSOLEBUF_SIZE 512 +#define RT_CONSOLE_DEVICE_NAME "uart0" +#define RT_VER_NUM 0x50200 +#define RT_BACKTRACE_LEVEL_MAX_NR 32 +/* end of RT-Thread Kernel */ +#define RT_USING_HW_ATOMIC +#define ARCH_ARM +#define ARCH_ARM_CORTEX_R +#define ARCH_ARM_CORTEX_R52 + +/* RT-Thread Components */ + +#define RT_USING_COMPONENTS_INIT +#define RT_USING_USER_MAIN +#define RT_MAIN_THREAD_STACK_SIZE 2048 +#define RT_MAIN_THREAD_PRIORITY 10 +#define RT_USING_MSH +#define RT_USING_FINSH +#define FINSH_USING_MSH +#define FINSH_THREAD_NAME "tshell" +#define FINSH_THREAD_PRIORITY 20 +#define FINSH_THREAD_STACK_SIZE 4096 +#define FINSH_USING_HISTORY +#define FINSH_HISTORY_LINES 5 +#define FINSH_USING_SYMTAB +#define FINSH_CMD_SIZE 80 +#define MSH_USING_BUILT_IN_COMMANDS +#define FINSH_USING_DESCRIPTION +#define FINSH_ARG_MAX 10 +#define FINSH_USING_OPTION_COMPLETION + +/* DFS: device virtual file system */ + +/* end of DFS: device virtual file system */ + +/* Device Drivers */ + +#define RT_USING_DEVICE_IPC +#define RT_UNAMED_PIPE_NUMBER 64 +#define RT_USING_SYSTEM_WORKQUEUE +#define RT_SYSTEM_WORKQUEUE_STACKSIZE 2048 +#define RT_SYSTEM_WORKQUEUE_PRIORITY 23 +#define RT_USING_SERIAL +#define RT_USING_SERIAL_V2 +#define RT_SERIAL_USING_DMA +#define RT_USING_PIN +/* end of Device Drivers */ + +/* C/C++ and POSIX layer */ + +/* ISO-ANSI C layer */ + +/* Timezone and Daylight Saving Time */ + +#define RT_LIBC_USING_LIGHT_TZ_DST +#define RT_LIBC_TZ_DEFAULT_HOUR 8 +#define RT_LIBC_TZ_DEFAULT_MIN 0 +#define RT_LIBC_TZ_DEFAULT_SEC 0 +/* end of Timezone and Daylight Saving Time */ +/* end of ISO-ANSI C layer */ + +/* POSIX (Portable Operating System Interface) layer */ + + +/* Interprocess Communication (IPC) */ + + +/* Socket is in the 'Network' category */ + +/* end of Interprocess Communication (IPC) */ +/* end of POSIX (Portable Operating System Interface) layer */ +/* end of C/C++ and POSIX layer */ + +/* Network */ + +/* end of Network */ + +/* Memory protection */ + +/* end of Memory protection */ + +/* Utilities */ + +/* end of Utilities */ + +/* Using USB legacy version */ + +/* end of Using USB legacy version */ +/* end of RT-Thread Components */ + +/* RT-Thread Utestcases */ + +/* end of RT-Thread Utestcases */ + +/* RT-Thread online packages */ + +/* IoT - internet of things */ + + +/* Wi-Fi */ + +/* Marvell WiFi */ + +/* end of Marvell WiFi */ + +/* Wiced WiFi */ + +/* end of Wiced WiFi */ + +/* CYW43012 WiFi */ + +/* end of CYW43012 WiFi */ + +/* BL808 WiFi */ + +/* end of BL808 WiFi */ + +/* CYW43439 WiFi */ + +/* end of CYW43439 WiFi */ +/* end of Wi-Fi */ + +/* IoT Cloud */ + +/* end of IoT Cloud */ +/* end of IoT - internet of things */ + +/* security packages */ + +/* end of security packages */ + +/* language packages */ + +/* JSON: JavaScript Object Notation, a lightweight data-interchange format */ + +/* end of JSON: JavaScript Object Notation, a lightweight data-interchange format */ + +/* XML: Extensible Markup Language */ + +/* end of XML: Extensible Markup Language */ +/* end of language packages */ + +/* multimedia packages */ + +/* LVGL: powerful and easy-to-use embedded GUI library */ + +/* end of LVGL: powerful and easy-to-use embedded GUI library */ + +/* u8g2: a monochrome graphic library */ + +/* end of u8g2: a monochrome graphic library */ +/* end of multimedia packages */ + +/* tools packages */ + +/* end of tools packages */ + +/* system packages */ + +/* enhanced kernel services */ + +/* end of enhanced kernel services */ + +/* acceleration: Assembly language or algorithmic acceleration packages */ + +/* end of acceleration: Assembly language or algorithmic acceleration packages */ + +/* CMSIS: ARM Cortex-M Microcontroller Software Interface Standard */ + +/* end of CMSIS: ARM Cortex-M Microcontroller Software Interface Standard */ + +/* Micrium: Micrium software products porting for RT-Thread */ + +/* end of Micrium: Micrium software products porting for RT-Thread */ +/* end of system packages */ + +/* peripheral libraries and drivers */ + +/* HAL & SDK Drivers */ + +/* STM32 HAL & SDK Drivers */ + +/* end of STM32 HAL & SDK Drivers */ + +/* Infineon HAL Packages */ + +/* end of Infineon HAL Packages */ + +/* Kendryte SDK */ + +/* end of Kendryte SDK */ +/* end of HAL & SDK Drivers */ + +/* sensors drivers */ + +/* end of sensors drivers */ + +/* touch drivers */ + +/* end of touch drivers */ +/* end of peripheral libraries and drivers */ + +/* AI packages */ + +/* end of AI packages */ + +/* Signal Processing and Control Algorithm Packages */ + +/* end of Signal Processing and Control Algorithm Packages */ + +/* miscellaneous packages */ + +/* project laboratory */ + +/* end of project laboratory */ + +/* samples: kernel and components samples */ + +/* end of samples: kernel and components samples */ + +/* entertainment: terminal games and other interesting software packages */ + +/* end of entertainment: terminal games and other interesting software packages */ +/* end of miscellaneous packages */ + +/* Arduino libraries */ + + +/* Projects and Demos */ + +/* end of Projects and Demos */ + +/* Sensors */ + +/* end of Sensors */ + +/* Display */ + +/* end of Display */ + +/* Timing */ + +/* end of Timing */ + +/* Data Processing */ + +/* end of Data Processing */ + +/* Data Storage */ + +/* Communication */ + +/* end of Communication */ + +/* Device Control */ + +/* end of Device Control */ + +/* Other */ + +/* end of Other */ + +/* Signal IO */ + +/* end of Signal IO */ + +/* Uncategorized */ + +/* end of Arduino libraries */ +/* end of RT-Thread online packages */ +#define SOC_FAMILY_RENESAS +#define SOC_SERIES_R9A07G0 + +/* Hardware Drivers Config */ + +#define SOC_R9A07G084 + +/* Onboard Peripheral Drivers */ + +/* end of Onboard Peripheral Drivers */ + +/* On-chip Peripheral Drivers */ + +#define BSP_USING_GPIO +#define BSP_USING_UART +#define BSP_USING_UART0 +#define BSP_UART0_RX_BUFSIZE 256 +#define BSP_UART0_TX_BUFSIZE 0 +/* end of On-chip Peripheral Drivers */ + +/* Board extended module Drivers */ + +/* end of Board extended module Drivers */ +/* end of Hardware Drivers Config */ + +#endif diff --git a/bsp/renesas/rzn2l_rsk/rtconfig.py b/bsp/renesas/rzn2l_rsk/rtconfig.py new file mode 100644 index 0000000000..57a98c2bcb --- /dev/null +++ b/bsp/renesas/rzn2l_rsk/rtconfig.py @@ -0,0 +1,123 @@ +import os +import sys + +# toolchains options +ARCH='arm' +CPU='cortex-r52' +CROSS_TOOL='gcc' + +if os.getenv('RTT_CC'): + CROSS_TOOL = os.getenv('RTT_CC') +if os.getenv('RTT_ROOT'): + RTT_ROOT = os.getenv('RTT_ROOT') + +# cross_tool provides the cross compiler +# EXEC_PATH is the compiler execute path, for example, CodeSourcery, Keil MDK, IAR +if CROSS_TOOL == 'gcc': + PLATFORM = 'gcc' + EXEC_PATH = r'C:\Users\XXYYZZ' +elif CROSS_TOOL == 'keil': + PLATFORM = 'armclang' + EXEC_PATH = r'C:/Keil_v5' +elif CROSS_TOOL == 'iar': + PLATFORM = 'iccarm' + EXEC_PATH = r'D:/IAR Systems/Embedded Workbench 9.2' + +if os.getenv('RTT_EXEC_PATH'): + EXEC_PATH = os.getenv('RTT_EXEC_PATH') + +BUILD = 'debug' +# BUILD = 'release' + +if PLATFORM == 'gcc': + # toolchains + PREFIX = 'arm-none-eabi-' + CC = PREFIX + 'gcc' + AS = PREFIX + 'gcc' + AR = PREFIX + 'ar' + CXX = PREFIX + 'g++' + LINK = PREFIX + 'gcc' + TARGET_EXT = 'elf' + SIZE = PREFIX + 'size' + OBJDUMP = PREFIX + 'objdump' + OBJCPY = PREFIX + 'objcopy' + NM = PREFIX + 'nm' + + DEVICE = ' -mcpu=cortex-r52 -marm -mfloat-abi=hard -mfpu=neon-fp-armv8 -munaligned-access -fdiagnostics-parseable-fixits -Og -fmessage-length=0 -fsigned-char -ffunction-sections -fdata-sections -funwind-tables' + CFLAGS = DEVICE + ' -Dgcc' + AFLAGS = ' -c' + DEVICE + ' -x assembler-with-cpp -Wa,-mimplicit-it=arm ' + LFLAGS = DEVICE + ' -Wl,--gc-sections,-Map=rtthread.map,-cref,-u,Reset_Handler -T script/fsp_xspi0_boot.ld -L script/' + + CPATH = '' + LPATH = '' + + if BUILD == 'debug': + CFLAGS += ' -O0 -gdwarf-2 -g -Wall' + AFLAGS += ' -gdwarf-2' + else: + CFLAGS += ' -Os' + CXXFLAGS = CFLAGS + + POST_ACTION = OBJCPY + ' -O ihex $TARGET rtthread.hex\n' + SIZE + ' $TARGET \n' + # POST_ACTION += OBJCPY + ' -O binary $TARGET rtthread.bin\n' + SIZE + ' $TARGET \n' + +elif PLATFORM == 'iccarm': + # toolchains + CC = 'iccarm' + CXX = 'iccarm' + AS = 'iasmarm' + AR = 'iarchive' + LINK = 'ilinkarm' + TARGET_EXT = 'out' + + DEVICE = '-Dewarm' + + CFLAGS = DEVICE + CFLAGS += ' --diag_suppress Pa050' + CFLAGS += ' --no_cse' + CFLAGS += ' --no_unroll' + CFLAGS += ' --no_inline' + CFLAGS += ' --no_code_motion' + CFLAGS += ' --no_tbaa' + CFLAGS += ' --no_clustering' + CFLAGS += ' --no_scheduling' + CFLAGS += ' --endian=little' + CFLAGS += ' --cpu=Cortex-R52' + CFLAGS += ' -e' + CFLAGS += ' --arm' + CFLAGS += ' --float-abi=hard' + CFLAGS += ' --fpu=neon-fp-armv8' + CFLAGS += ' --dlib_config "' + EXEC_PATH + '/arm/INC/c/DLib_Config_Normal.h"' + CFLAGS += ' --silent' + + AFLAGS = DEVICE + AFLAGS += ' -s+' + AFLAGS += ' -w+' + AFLAGS += ' -r' + AFLAGS += ' --cpu Cortex-R52' + AFLAGS += ' --arm' + AFLAGS += ' --float-abi hard' + AFLAGS += ' --fpu neon-fp-armv8' + # AFLAGS += ' --unaligned-access' + AFLAGS += ' -S' + + if BUILD == 'debug': + CFLAGS += ' --debug' + CFLAGS += ' -On' + else: + CFLAGS += ' -Oh' + + LFLAGS = ' --config "script/fsp_xspi0_boot.icf"' + LFLAGS += ' --entry Reset_Handler' + + CXXFLAGS = CFLAGS + + EXEC_PATH = EXEC_PATH + '/arm/bin/' + POST_ACTION = 'ielftool --bin $TARGET rtthread.bin' + +def dist_handle(BSP_ROOT, dist_dir): + import sys + cwd_path = os.getcwd() + sys.path.append(os.path.join(os.path.dirname(BSP_ROOT), 'tools')) + from sdk_dist import dist_do_building + dist_do_building(BSP_ROOT, dist_dir) diff --git a/bsp/renesas/rzn2l_rsk/rzn/SConscript b/bsp/renesas/rzn2l_rsk/rzn/SConscript new file mode 100644 index 0000000000..41038bee62 --- /dev/null +++ b/bsp/renesas/rzn2l_rsk/rzn/SConscript @@ -0,0 +1,28 @@ +Import('RTT_ROOT') +Import('rtconfig') +from building import * +from gcc import * + +cwd = GetCurrentDir() +src = [] +group = [] +CPPPATH = [] + +if rtconfig.PLATFORM in ['iccarm']: + Return('group') +elif rtconfig.PLATFORM in GetGCCLikePLATFORM(): + if GetOption('target') != 'mdk5': + src += Glob(cwd + '/fsp/src/bsp/mcu/all/*.c') + src += Glob(cwd + '/fsp/src/bsp/mcu/all/cr/*.c') + src += Glob(cwd + '/fsp/src/bsp/mcu/r*/*.c') + src += Glob(cwd + '/fsp/src/r_*/*.c') + src += Glob(cwd + '/fsp/src/bsp/cmsis/Device/RENESAS/Source/cr/*.c') + src += [cwd + '/fsp/src/bsp/cmsis/Device/RENESAS/Source/system.c'] + src += [cwd + '/fsp/src/bsp/cmsis/Device/RENESAS/Source/startup.c'] + CPPPATH = [ cwd + '/arm/CMSIS_5/CMSIS/Core_R/Include', + cwd + '/fsp/inc', + cwd + '/fsp/inc/api', + cwd + '/fsp/inc/instances',] + +group = DefineGroup('rzn', src, depend = [''], CPPPATH = CPPPATH) +Return('group') diff --git a/bsp/renesas/rzn2l_rsk/rzn/arm/CMSIS_5/CMSIS/Core_R/Include/cmsis_compiler.h b/bsp/renesas/rzn2l_rsk/rzn/arm/CMSIS_5/CMSIS/Core_R/Include/cmsis_compiler.h new file mode 100644 index 0000000000..e1e68604b2 --- /dev/null +++ b/bsp/renesas/rzn2l_rsk/rzn/arm/CMSIS_5/CMSIS/Core_R/Include/cmsis_compiler.h @@ -0,0 +1,290 @@ +/**************************************************************************//** + * @file cmsis_compiler.h + * @brief CMSIS compiler generic header file + * @date 31. August 2021 + ******************************************************************************/ +/* + * Copyright [2020-2021] Renesas Electronics Corporation and/or its affiliates. All Rights Reserved. + * + * This file is based on the "\CMSIS\Core\Include\cmsis_compliler.h" + * + * Changes: + * - No Changes. + */ +/* + * Copyright (c) 2009-2018 Arm Limited. All rights reserved. + * + * SPDX-License-Identifier: Apache-2.0 + * + * Licensed under the Apache License, Version 2.0 (the License); you may + * not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an AS IS BASIS, WITHOUT + * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +#ifndef __CMSIS_COMPILER_H +#define __CMSIS_COMPILER_H + +#include + +/* + * Arm Compiler 4/5 + */ +#if defined ( __CC_ARM ) + #include "cmsis_armcc.h" + + +/* + * Arm Compiler 6.6 LTM (armclang) + */ +#elif defined (__ARMCC_VERSION) && (__ARMCC_VERSION >= 6010050) && (__ARMCC_VERSION < 6100100) + #include "cmsis_armclang_ltm.h" + + /* + * Arm Compiler above 6.10.1 (armclang) + */ +#elif defined (__ARMCC_VERSION) && (__ARMCC_VERSION >= 6100100) + #include "cmsis_armclang.h" + + +/* + * GNU Compiler + */ +#elif defined ( __GNUC__ ) + #include "cmsis_gcc.h" + + +/* + * IAR Compiler + */ +#elif defined ( __ICCARM__ ) + #include + + +/* + * TI Arm Compiler + */ +#elif defined ( __TI_ARM__ ) + #include + + #ifndef __ASM + #define __ASM __asm + #endif + #ifndef __INLINE + #define __INLINE inline + #endif + #ifndef __STATIC_INLINE + #define __STATIC_INLINE static inline + #endif + #ifndef __STATIC_FORCEINLINE + #define __STATIC_FORCEINLINE __STATIC_INLINE + #endif + #ifndef __NO_RETURN + #define __NO_RETURN __attribute__((noreturn)) + #endif + #ifndef __USED + #define __USED __attribute__((used)) + #endif + #ifndef __WEAK + #define __WEAK __attribute__((weak)) + #endif + #ifndef __PACKED + #define __PACKED __attribute__((packed)) + #endif + #ifndef __PACKED_STRUCT + #define __PACKED_STRUCT struct __attribute__((packed)) + #endif + #ifndef __PACKED_UNION + #define __PACKED_UNION union __attribute__((packed)) + #endif + #ifndef __UNALIGNED_UINT32 /* deprecated */ + struct __attribute__((packed)) T_UINT32 { uint32_t v; }; + #define __UNALIGNED_UINT32(x) (((struct T_UINT32 *)(x))->v) + #endif + #ifndef __UNALIGNED_UINT16_WRITE + __PACKED_STRUCT T_UINT16_WRITE { uint16_t v; }; + #define __UNALIGNED_UINT16_WRITE(addr, val) (void)((((struct T_UINT16_WRITE *)(void*)(addr))->v) = (val)) + #endif + #ifndef __UNALIGNED_UINT16_READ + __PACKED_STRUCT T_UINT16_READ { uint16_t v; }; + #define __UNALIGNED_UINT16_READ(addr) (((const struct T_UINT16_READ *)(const void *)(addr))->v) + #endif + #ifndef __UNALIGNED_UINT32_WRITE + __PACKED_STRUCT T_UINT32_WRITE { uint32_t v; }; + #define __UNALIGNED_UINT32_WRITE(addr, val) (void)((((struct T_UINT32_WRITE *)(void *)(addr))->v) = (val)) + #endif + #ifndef __UNALIGNED_UINT32_READ + __PACKED_STRUCT T_UINT32_READ { uint32_t v; }; + #define __UNALIGNED_UINT32_READ(addr) (((const struct T_UINT32_READ *)(const void *)(addr))->v) + #endif + #ifndef __ALIGNED + #define __ALIGNED(x) __attribute__((aligned(x))) + #endif + #ifndef __RESTRICT + #define __RESTRICT __restrict + #endif + #ifndef __COMPILER_BARRIER + #warning No compiler specific solution for __COMPILER_BARRIER. __COMPILER_BARRIER is ignored. + #define __COMPILER_BARRIER() (void)0 + #endif + + +/* + * TASKING Compiler + */ +#elif defined ( __TASKING__ ) + /* + * The CMSIS functions have been implemented as intrinsics in the compiler. + * Please use "carm -?i" to get an up to date list of all intrinsics, + * Including the CMSIS ones. + */ + + #ifndef __ASM + #define __ASM __asm + #endif + #ifndef __INLINE + #define __INLINE inline + #endif + #ifndef __STATIC_INLINE + #define __STATIC_INLINE static inline + #endif + #ifndef __STATIC_FORCEINLINE + #define __STATIC_FORCEINLINE __STATIC_INLINE + #endif + #ifndef __NO_RETURN + #define __NO_RETURN __attribute__((noreturn)) + #endif + #ifndef __USED + #define __USED __attribute__((used)) + #endif + #ifndef __WEAK + #define __WEAK __attribute__((weak)) + #endif + #ifndef __PACKED + #define __PACKED __packed__ + #endif + #ifndef __PACKED_STRUCT + #define __PACKED_STRUCT struct __packed__ + #endif + #ifndef __PACKED_UNION + #define __PACKED_UNION union __packed__ + #endif + #ifndef __UNALIGNED_UINT32 /* deprecated */ + struct __packed__ T_UINT32 { uint32_t v; }; + #define __UNALIGNED_UINT32(x) (((struct T_UINT32 *)(x))->v) + #endif + #ifndef __UNALIGNED_UINT16_WRITE + __PACKED_STRUCT T_UINT16_WRITE { uint16_t v; }; + #define __UNALIGNED_UINT16_WRITE(addr, val) (void)((((struct T_UINT16_WRITE *)(void *)(addr))->v) = (val)) + #endif + #ifndef __UNALIGNED_UINT16_READ + __PACKED_STRUCT T_UINT16_READ { uint16_t v; }; + #define __UNALIGNED_UINT16_READ(addr) (((const struct T_UINT16_READ *)(const void *)(addr))->v) + #endif + #ifndef __UNALIGNED_UINT32_WRITE + __PACKED_STRUCT T_UINT32_WRITE { uint32_t v; }; + #define __UNALIGNED_UINT32_WRITE(addr, val) (void)((((struct T_UINT32_WRITE *)(void *)(addr))->v) = (val)) + #endif + #ifndef __UNALIGNED_UINT32_READ + __PACKED_STRUCT T_UINT32_READ { uint32_t v; }; + #define __UNALIGNED_UINT32_READ(addr) (((const struct T_UINT32_READ *)(const void *)(addr))->v) + #endif + #ifndef __ALIGNED + #define __ALIGNED(x) __align(x) + #endif + #ifndef __RESTRICT + #warning No compiler specific solution for __RESTRICT. __RESTRICT is ignored. + #define __RESTRICT + #endif + #ifndef __COMPILER_BARRIER + #warning No compiler specific solution for __COMPILER_BARRIER. __COMPILER_BARRIER is ignored. + #define __COMPILER_BARRIER() (void)0 + #endif + + +/* + * COSMIC Compiler + */ +#elif defined ( __CSMC__ ) + #include + + #ifndef __ASM + #define __ASM _asm + #endif + #ifndef __INLINE + #define __INLINE inline + #endif + #ifndef __STATIC_INLINE + #define __STATIC_INLINE static inline + #endif + #ifndef __STATIC_FORCEINLINE + #define __STATIC_FORCEINLINE __STATIC_INLINE + #endif + #ifndef __NO_RETURN + // NO RETURN is automatically detected hence no warning here + #define __NO_RETURN + #endif + #ifndef __USED + #warning No compiler specific solution for __USED. __USED is ignored. + #define __USED + #endif + #ifndef __WEAK + #define __WEAK __weak + #endif + #ifndef __PACKED + #define __PACKED @packed + #endif + #ifndef __PACKED_STRUCT + #define __PACKED_STRUCT @packed struct + #endif + #ifndef __PACKED_UNION + #define __PACKED_UNION @packed union + #endif + #ifndef __UNALIGNED_UINT32 /* deprecated */ + @packed struct T_UINT32 { uint32_t v; }; + #define __UNALIGNED_UINT32(x) (((struct T_UINT32 *)(x))->v) + #endif + #ifndef __UNALIGNED_UINT16_WRITE + __PACKED_STRUCT T_UINT16_WRITE { uint16_t v; }; + #define __UNALIGNED_UINT16_WRITE(addr, val) (void)((((struct T_UINT16_WRITE *)(void *)(addr))->v) = (val)) + #endif + #ifndef __UNALIGNED_UINT16_READ + __PACKED_STRUCT T_UINT16_READ { uint16_t v; }; + #define __UNALIGNED_UINT16_READ(addr) (((const struct T_UINT16_READ *)(const void *)(addr))->v) + #endif + #ifndef __UNALIGNED_UINT32_WRITE + __PACKED_STRUCT T_UINT32_WRITE { uint32_t v; }; + #define __UNALIGNED_UINT32_WRITE(addr, val) (void)((((struct T_UINT32_WRITE *)(void *)(addr))->v) = (val)) + #endif + #ifndef __UNALIGNED_UINT32_READ + __PACKED_STRUCT T_UINT32_READ { uint32_t v; }; + #define __UNALIGNED_UINT32_READ(addr) (((const struct T_UINT32_READ *)(const void *)(addr))->v) + #endif + #ifndef __ALIGNED + #warning No compiler specific solution for __ALIGNED. __ALIGNED is ignored. + #define __ALIGNED(x) + #endif + #ifndef __RESTRICT + #warning No compiler specific solution for __RESTRICT. __RESTRICT is ignored. + #define __RESTRICT + #endif + #ifndef __COMPILER_BARRIER + #warning No compiler specific solution for __COMPILER_BARRIER. __COMPILER_BARRIER is ignored. + #define __COMPILER_BARRIER() (void)0 + #endif + + +#else + #error Unknown compiler. +#endif + + +#endif /* __CMSIS_COMPILER_H */ + diff --git a/bsp/renesas/rzn2l_rsk/rzn/arm/CMSIS_5/CMSIS/Core_R/Include/cmsis_cp15.h b/bsp/renesas/rzn2l_rsk/rzn/arm/CMSIS_5/CMSIS/Core_R/Include/cmsis_cp15.h new file mode 100644 index 0000000000..174b5b8e56 --- /dev/null +++ b/bsp/renesas/rzn2l_rsk/rzn/arm/CMSIS_5/CMSIS/Core_R/Include/cmsis_cp15.h @@ -0,0 +1,783 @@ +/**************************************************************************//** + * @file cmsis_cp15.h + * @brief CMSIS compiler specific macros, functions, instructions + * @date 02. February 2024 + ******************************************************************************/ +/* + * Copyright [2020-2024] Renesas Electronics Corporation and/or its affiliates. All Rights Reserved. + * + * This file is based on the "CMSIS\Core_A\Include\cmsis_cp15.h" + * + * Changes: + * Renesas Electronics Corporation on 2021-08-31 + * - Changed to be related to Cortex-R52 by + * Renesas Electronics Corporation on 2024-02-02 + * - Functions are sorted according to the Arm technical reference. + * - Added some functions to convert BSP into C language. + */ +/* + * Copyright (c) 2009-2017 ARM Limited. All rights reserved. + * + * SPDX-License-Identifier: Apache-2.0 + * + * Licensed under the Apache License, Version 2.0 (the License); you may + * not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an AS IS BASIS, WITHOUT + * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +#if defined ( __ICCARM__ ) + #pragma system_include /* treat file as system include file for MISRA check */ +#elif defined (__clang__) + #pragma clang system_header /* treat file as system include file */ +#endif + +#ifndef __CMSIS_CP15_H +#define __CMSIS_CP15_H + +/** \brief Get CTR + \return Cache Type Register value + */ +__STATIC_FORCEINLINE uint32_t __get_CTR(void) +{ + uint32_t result; + __get_CP(15, 0, result, 0, 0, 1); + return result; +} + +/** \brief Get MPIDR + + This function returns the value of the Multiprocessor Affinity Register. + + \return Multiprocessor Affinity Register value + */ +__STATIC_FORCEINLINE uint32_t __get_MPIDR(void) +{ + uint32_t result; + __get_CP(15, 0, result, 0, 0, 5); + return result; +} + +/** \brief Get CCSIDR + \return CCSIDR Register value + */ +__STATIC_FORCEINLINE uint32_t __get_CCSIDR(void) +{ + uint32_t result; + __get_CP(15, 1, result, 0, 0, 0); + return result; +} + +/** \brief Get CLIDR + \return CLIDR Register value + */ +__STATIC_FORCEINLINE uint32_t __get_CLIDR(void) +{ + uint32_t result; + __get_CP(15, 1, result, 0, 0, 1); + return result; +} + +/** \brief Get CSSELR + \return CSSELR Register value + */ +__STATIC_FORCEINLINE uint32_t __get_CSSELR(void) +{ + uint32_t result; + __get_CP(15, 2, result, 0, 0, 0); + return result; +} + +/** \brief Set CSSELR + */ +__STATIC_FORCEINLINE void __set_CSSELR(uint32_t value) +{ + __set_CP(15, 2, value, 0, 0, 0); +} + +/** \brief Get SCTLR + + This function assigns the given value to the System Control Register. + + \return System Control Register value + */ +__STATIC_FORCEINLINE uint32_t __get_SCTLR(void) +{ + uint32_t result; + __get_CP(15, 0, result, 1, 0, 0); + return result; +} + +/** \brief Set SCTLR + \param [in] value System Control Register value to set + */ +__STATIC_FORCEINLINE void __set_SCTLR(uint32_t value) +{ + __set_CP(15, 0, value, 1, 0, 0); +} + + +/** \brief Get ACTLR + \return Auxiliary Control register value + */ +__STATIC_FORCEINLINE uint32_t __get_ACTLR(void) +{ + uint32_t result; + __get_CP(15, 0, result, 1, 0, 1); + return(result); +} + +/** \brief Set ACTLR + \param [in] value Auxiliary Control value to set + */ +__STATIC_FORCEINLINE void __set_ACTLR(uint32_t value) +{ + __set_CP(15, 0, value, 1, 0, 1); +} + +/** \brief Get CPACR + \return Coprocessor Access Control register value + */ +__STATIC_FORCEINLINE uint32_t __get_CPACR(void) +{ + uint32_t result; + __get_CP(15, 0, result, 1, 0, 2); + return result; +} + +/** \brief Set CPACR + \param [in] value Coprocessor Access Control value to set + */ +__STATIC_FORCEINLINE void __set_CPACR(uint32_t value) +{ + __set_CP(15, 0, value, 1, 0, 2); +} + +/** \brief Get TTBR0 + + This function returns the value of the Translation Table Base Register 0. + + \return Translation Table Base Register 0 value + */ +__STATIC_FORCEINLINE uint32_t __get_TTBR0(void) +{ + uint32_t result; + __get_CP(15, 0, result, 2, 0, 0); + return result; +} + +/** \brief Set TTBR0 + + This function assigns the given value to the Translation Table Base Register 0. + + \param [in] value Translation Table Base Register 0 value to set + */ +__STATIC_FORCEINLINE void __set_TTBR0(uint32_t value) +{ + __set_CP(15, 0, value, 2, 0, 0); +} + +/** \brief Get DACR + + This function returns the value of the Domain Access Control Register. + + \return Domain Access Control Register value + */ +__STATIC_FORCEINLINE uint32_t __get_DACR(void) +{ + uint32_t result; + __get_CP(15, 0, result, 3, 0, 0); + return result; +} + +/** \brief Set DACR + + This function assigns the given value to the Domain Access Control Register. + + \param [in] value Domain Access Control Register value to set + */ +__STATIC_FORCEINLINE void __set_DACR(uint32_t value) +{ + __set_CP(15, 0, value, 3, 0, 0); +} + +/** \brief Get ICC_PMR + */ +__STATIC_FORCEINLINE uint32_t __get_ICC_PMR(void) +{ + uint32_t result; + __get_CP(15, 0, result, 4, 6, 0); + return result; +} + +/** \brief Set ICC_PMR + */ +__STATIC_FORCEINLINE void __set_ICC_PMR(uint32_t value) +{ + __set_CP(15, 0, value, 4, 6, 0); +} + +/** \brief Get DFSR + \return Data Fault Status Register value + */ +__STATIC_FORCEINLINE uint32_t __get_DFSR(void) +{ + uint32_t result; + __get_CP(15, 0, result, 5, 0, 0); + return result; +} + +/** \brief Set DFSR + \param [in] value Data Fault Status value to set + */ +__STATIC_FORCEINLINE void __set_DFSR(uint32_t value) +{ + __set_CP(15, 0, value, 5, 0, 0); +} + +/** \brief Get IFSR + \return Instruction Fault Status Register value + */ +__STATIC_FORCEINLINE uint32_t __get_IFSR(void) +{ + uint32_t result; + __get_CP(15, 0, result, 5, 0, 1); + return result; +} + +/** \brief Set IFSR + \param [in] value Instruction Fault Status value to set + */ +__STATIC_FORCEINLINE void __set_IFSR(uint32_t value) +{ + __set_CP(15, 0, value, 5, 0, 1); +} + +/** \brief Set PRSELR + + This function assigns the given value to the Protection Region Selection Register. + + \param [in] value Protection Region Selection Register to set + */ +__STATIC_FORCEINLINE void __set_PRSELR(uint32_t value) +{ + __set_CP(15, 0, value, 6, 2, 1); +} + +/** \brief Get PRBAR + + This function returns the value of the Protection Region Base Address Register. + + \return Protection Region Base Address Register + */ +__STATIC_FORCEINLINE uint32_t __get_PRBAR(void) +{ + uint32_t result; + __get_CP(15, 0, result, 6, 3, 0); + return result; +} + +/** \brief Set PRBAR + + This function assigns the given value to the Protection Region Base Address Register. + + \param [in] value Protection Region Base Address Register to set + */ +__STATIC_FORCEINLINE void __set_PRBAR(uint32_t value) +{ + __set_CP(15, 0, value, 6, 3, 0); +} + +/** \brief Get PRLAR + + This function returns the value of the Protection Region Limit Address Register. + + \return Protection Region Limit Address Register + */ +__STATIC_FORCEINLINE uint32_t __get_PRLAR(void) +{ + uint32_t result; + __get_CP(15, 0, result, 6, 3, 1); + return result; +} + +/** \brief Set PRLAR + + This function assigns the given value to the Protection Region Limit Address Register. + + \param [in] value Protection Region Limit Address Register to set + */ +__STATIC_FORCEINLINE void __set_PRLAR(uint32_t value) +{ + __set_CP(15, 0, value, 6, 3, 1); +} + +/** \brief Set ICIALLU + + Instruction Cache Invalidate All + */ +__STATIC_FORCEINLINE void __set_ICIALLU(uint32_t value) +{ + __set_CP(15, 0, value, 7, 5, 0); +} + +/** \brief Set ICIVAU + */ +__STATIC_FORCEINLINE void __set_ICIVAU(uint32_t value) +{ + __set_CP(15, 0, value, 7, 5, 1); +} + +/** \brief Set BPIALL. + + Branch Predictor Invalidate All + */ +__STATIC_FORCEINLINE void __set_BPIALL(uint32_t value) +{ + __set_CP(15, 0, value, 7, 5, 6); +} + +/** \brief Set DCIMVAC + + Data cache invalidate + */ +__STATIC_FORCEINLINE void __set_DCIMVAC(uint32_t value) +{ + __set_CP(15, 0, value, 7, 6, 1); +} + +/** \brief Set DCIVAC + */ +__STATIC_FORCEINLINE void __set_DCIVAC(uint32_t value) +{ + __set_CP(15, 0, value, 7, 6, 1); +} + +/** \brief Set DCISW + */ +__STATIC_FORCEINLINE void __set_DCISW(uint32_t value) +{ + __set_CP(15, 0, value, 7, 6, 2); +} + +/** \brief Set DCCMVAC + + Data cache clean + */ +__STATIC_FORCEINLINE void __set_DCCMVAC(uint32_t value) +{ + __set_CP(15, 0, value, 7, 10, 1); +} + +/** \brief Set DCCVAC + */ +__STATIC_FORCEINLINE void __set_DCCVAC(uint32_t value) +{ + __set_CP(15, 0, value, 7, 10, 1); +} + +/** \brief Set DCCSW + */ +__STATIC_FORCEINLINE void __set_DCCSW(uint32_t value) +{ + __set_CP(15, 0, value, 7, 10, 2); +} + +/** \brief Set DCCIMVAC + + Data cache clean and invalidate + */ +__STATIC_FORCEINLINE void __set_DCCIMVAC(uint32_t value) +{ + __set_CP(15, 0, value, 7, 14, 1); +} + +/** \brief Set DCCIVAC + */ +__STATIC_FORCEINLINE void __set_DCCIVAC(uint32_t value) +{ + __set_CP(15, 0, value, 7, 14, 1); +} + +/** \brief Set DCCISW + */ +__STATIC_FORCEINLINE void __set_DCCISW(uint32_t value) +{ + __set_CP(15, 0, value, 7, 14, 2); +} + +/** \brief Set TLBIALL + + TLB Invalidate All + */ +__STATIC_FORCEINLINE void __set_TLBIALL(uint32_t value) +{ + __set_CP(15, 0, value, 8, 7, 0); +} + +/** \brief Set MAIR0 + + This function assigns the given value to the Memory Attribute Indirection Registers 0. + + \param [in] value Memory Attribute Indirection Registers 0 to set + */ +__STATIC_FORCEINLINE void __set_MAIR0(uint32_t value) +{ + __set_CP(15, 0, value, 10, 2, 0); +} + +/** \brief Set MAIR1 + + This function assigns the given value to the Memory Attribute Indirection Registers 1. + + \param [in] value Memory Attribute Indirection Registers 1 to set + */ +__STATIC_FORCEINLINE void __set_MAIR1(uint32_t value) +{ + __set_CP(15, 0, value, 10, 2, 1); +} + +/** \brief Get IMP_SLAVEPCTLR + + This function returns the value of the Slave Port Control Register. + + \return Slave Port Control Register + */ +__STATIC_FORCEINLINE uint32_t __get_IMP_SLAVEPCTLR(void) +{ + uint32_t result; + __get_CP(15, 0, result, 11, 0, 0); + return result; +} + +/** \brief Set IMP_SLAVEPCTLR + + This function assigns the given value to the Slave Port Control Register. + + \param [in] value Slave Port Control Register value to set + */ +__STATIC_FORCEINLINE void __set_IMP_SLAVEPCTLR(uint32_t value) +{ + __set_CP(15, 0, value, 11, 0, 0); +} + +/** \brief Get VBAR + + This function returns the value of the Vector Base Address Register. + + \return Vector Base Address Register + */ +__STATIC_FORCEINLINE uint32_t __get_VBAR(void) +{ + uint32_t result; + __get_CP(15, 0, result, 12, 0, 0); + return result; +} + +/** \brief Set VBAR + + This function assigns the given value to the Vector Base Address Register. + + \param [in] value Vector Base Address Register value to set + */ +__STATIC_FORCEINLINE void __set_VBAR(uint32_t value) +{ + __set_CP(15, 0, value, 12, 0, 0); +} + +/** \brief Get MVBAR + + This function returns the value of the Monitor Vector Base Address Register. + + \return Monitor Vector Base Address Register + */ +__STATIC_FORCEINLINE uint32_t __get_MVBAR(void) +{ + uint32_t result; + __get_CP(15, 0, result, 12, 0, 1); + return result; +} + +/** \brief Set MVBAR + + This function assigns the given value to the Monitor Vector Base Address Register. + + \param [in] value Monitor Vector Base Address Register value to set + */ +__STATIC_FORCEINLINE void __set_MVBAR(uint32_t value) +{ + __set_CP(15, 0, value, 12, 0, 1); +} + +/** \brief Get ISR + \return Interrupt Status Register value + */ +__STATIC_FORCEINLINE uint32_t __get_ISR(void) +{ + uint32_t result; + __get_CP(15, 0, result, 12, 1, 0); + return result; +} + +/** \brief Get ICC_RPR + */ +__STATIC_FORCEINLINE uint32_t __get_ICC_RPR(void) +{ + uint32_t result; + __get_CP(15, 0, result, 12, 11, 3); + return result; +} + +/** \brief Get ICC_IAR1 + */ +__STATIC_FORCEINLINE uint32_t __get_ICC_IAR1(void) +{ + uint32_t result; + __get_CP(15, 0, result, 12, 12, 0); + return result; +} + +/** \brief Set ICC_EOIR1 + */ +__STATIC_FORCEINLINE void __set_ICC_EOIR1(uint32_t value) +{ + __set_CP(15, 0, value, 12, 12, 0); +} + +/** \brief Get ICC_HPPIR1 + */ +__STATIC_FORCEINLINE uint32_t __get_ICC_HPPIR1(void) +{ + uint32_t result; + __get_CP(15, 0, result, 12, 12, 2); + return result; +} + +/** \brief Get ICC_BPR1 + */ +__STATIC_FORCEINLINE uint32_t __get_ICC_BPR1(void) +{ + uint32_t result; + __get_CP(15, 0, result, 12, 12, 3); + return result; +} + +/** \brief Set ICC_BPR1 + */ +__STATIC_FORCEINLINE void __set_ICC_BPR1(uint32_t value) +{ + __set_CP(15, 0, value, 12, 12, 3); +} + +/** \brief Get ICC_CTLR + */ +__STATIC_FORCEINLINE uint32_t __get_ICC_CTLR(void) +{ + uint32_t result; + __get_CP(15, 0, result, 12, 12, 4); + return result; +} + +/** \brief Set ICC_CTLR + */ +__STATIC_FORCEINLINE void __set_ICC_CTLR(uint32_t value) +{ + __set_CP(15, 0, value, 12, 12, 4); +} + +/** \brief Set ICC_IGRPEN1 + */ +__STATIC_FORCEINLINE void __set_ICC_IGRPEN1(uint32_t value) +{ + __set_CP(15, 0, value, 12, 12, 7); +} + +/** \brief Set CNTFRQ + + This function assigns the given value to PL1 Physical Timer Counter Frequency Register (CNTFRQ). + + \param [in] value CNTFRQ Register value to set +*/ +__STATIC_FORCEINLINE void __set_CNTFRQ(uint32_t value) +{ + __set_CP(15, 0, value, 14, 0, 0); +} + +/** \brief Get CNTFRQ + + This function returns the value of the PL1 Physical Timer Counter Frequency Register (CNTFRQ). + + \return CNTFRQ Register value + */ +__STATIC_FORCEINLINE uint32_t __get_CNTFRQ(void) +{ + uint32_t result; + __get_CP(15, 0, result, 14, 0, 0); + return result; +} + +/** \brief Set CNTKCTL + + This function assigns the given value to Counter-timer Kernel Control Register (CNTKCTL). + + \param [in] value CNTKCTL Register value to set +*/ +__STATIC_FORCEINLINE void __set_CNTKCTL(uint32_t value) +{ + __set_CP(15, 0, value, 14, 1, 0); +} + +/** \brief Get CNTKCTL + + This function returns the value of the Counter-timer kernel Control Register (CNTKCTL). + + \return CNTFRQ Register value + */ +__STATIC_FORCEINLINE uint32_t __get_CNTKCTL(void) +{ + uint32_t result; + __get_CP(15, 0, result, 14, 1, 0); + return result; +} + +/** \brief Set CNTP_TVAL + + This function assigns the given value to PL1 Physical Timer Value Register (CNTP_TVAL). + + \param [in] value CNTP_TVAL Register value to set +*/ +__STATIC_FORCEINLINE void __set_CNTP_TVAL(uint32_t value) +{ + __set_CP(15, 0, value, 14, 2, 0); +} + +/** \brief Get CNTP_TVAL + + This function returns the value of the PL1 Physical Timer Value Register (CNTP_TVAL). + + \return CNTP_TVAL Register value + */ +__STATIC_FORCEINLINE uint32_t __get_CNTP_TVAL(void) +{ + uint32_t result; + __get_CP(15, 0, result, 14, 2, 0); + return result; +} + +/** \brief Set CNTP_CTL + + This function assigns the given value to PL1 Physical Timer Control Register (CNTP_CTL). + + \param [in] value CNTP_CTL Register value to set +*/ +__STATIC_FORCEINLINE void __set_CNTP_CTL(uint32_t value) +{ + __set_CP(15, 0, value, 14, 2, 1); +} + +/** \brief Get CNTP_CTL register + \return CNTP_CTL Register value + */ +__STATIC_FORCEINLINE uint32_t __get_CNTP_CTL(void) +{ + uint32_t result; + __get_CP(15, 0, result, 14, 2, 1); + return result; +} + +/** \brief Set CNTV_CTL + + This function assigns the given value to PL1 Virtual Timer Control Register (CNTV_CTL). + + \param [in] value CNTV_CTL Register value to set +*/ +__STATIC_FORCEINLINE void __set_CNTV_CTL(uint32_t value) +{ + __set_CP(15, 0, value, 14, 3, 1); +} + +/** \brief Get CNTV_CTL register + \return CNTV_CTL Register value + */ +__STATIC_FORCEINLINE uint32_t __get_CNTV_CTL(void) +{ + uint32_t result; + __get_CP(15, 0, result, 14, 3, 1); + return result; +} + +/** \brief Get CBAR + \return Configuration Base Address register value + */ +__STATIC_FORCEINLINE uint32_t __get_CBAR(void) +{ + uint32_t result; + __get_CP(15, 4, result, 15, 0, 0); + return result; +} + +/** \brief Get CNTPCT + + This function returns the value of the 64 bits PL1 Physical Count Register (CNTPCT). + + \return CNTPCT Register value + */ +__STATIC_FORCEINLINE uint64_t __get_CNTPCT(void) +{ + uint64_t result; + __get_CP64(15, 0, result, 14); + return result; +} + +/** \brief Set ICC_SGI1R + */ +__STATIC_FORCEINLINE void __set_ICC_SGI1R(uint64_t value) +{ + __set_CP64(15, 0, value, 12); +} + +/** \brief Get CNTVCT + + This function returns the value of the 64 bits PL1 Virtual Count Register (CNTVCT). + + \return CNTVCT Register value + */ +__STATIC_FORCEINLINE uint64_t __get_CNTVCT(void) +{ + uint64_t result; + __get_CP64(15, 1, result, 14); + return result; +} + +/** \brief Set CNTP_CVAL + + This function assigns the given value to 64bits PL1 Physical Timer CompareValue Register (CNTP_CVAL). + + \param [in] value CNTP_CVAL Register value to set +*/ +__STATIC_FORCEINLINE void __set_CNTP_CVAL(uint64_t value) +{ + __set_CP64(15, 2, value, 14); +} + +/** \brief Get CNTP_CVAL + + This function returns the value of the 64 bits PL1 Physical Timer CompareValue Register (CNTP_CVAL). + + \return CNTP_CVAL Register value + */ +__STATIC_FORCEINLINE uint64_t __get_CNTP_CVAL(void) +{ + uint64_t result; + __get_CP64(15, 2, result, 14); + return result; +} + +#endif diff --git a/bsp/renesas/rzn2l_rsk/rzn/arm/CMSIS_5/CMSIS/Core_R/Include/cmsis_gcc.h b/bsp/renesas/rzn2l_rsk/rzn/arm/CMSIS_5/CMSIS/Core_R/Include/cmsis_gcc.h new file mode 100644 index 0000000000..1e6e8bddcb --- /dev/null +++ b/bsp/renesas/rzn2l_rsk/rzn/arm/CMSIS_5/CMSIS/Core_R/Include/cmsis_gcc.h @@ -0,0 +1,2233 @@ +/**************************************************************************//** + * @file cmsis_gcc.h + * @brief CMSIS compiler GCC header file + * @date 02. February 2024 + ******************************************************************************/ +/* + * Copyright [2020-2024] Renesas Electronics Corporation and/or its affiliates. All Rights Reserved. + * + * This file is based on the "\CMSIS\Core\Include\cmsis_gcc.h" + * + * Changes: + * Renesas Electronics Corporation on 2021-08-31 + * - Add CP15 descriptions by + * Renesas Electronics Corporation on 2024-02-02 + * - Added functions related to FPEXC registers. + */ +/* + * Copyright (c) 2009-2020 Arm Limited. All rights reserved. + * + * SPDX-License-Identifier: Apache-2.0 + * + * Licensed under the Apache License, Version 2.0 (the License); you may + * not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an AS IS BASIS, WITHOUT + * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +#ifndef __CMSIS_GCC_H +#define __CMSIS_GCC_H + +/* ignore some GCC warnings */ +#pragma GCC diagnostic push +#pragma GCC diagnostic ignored "-Wsign-conversion" +#pragma GCC diagnostic ignored "-Wconversion" +#pragma GCC diagnostic ignored "-Wunused-parameter" + +/* Fallback for __has_builtin */ +#ifndef __has_builtin + #define __has_builtin(x) (0) +#endif + +/* CMSIS compiler specific defines */ +#ifndef __ASM + #define __ASM __asm +#endif +#ifndef __INLINE + #define __INLINE inline +#endif +#ifndef __STATIC_INLINE + #define __STATIC_INLINE static inline +#endif +#ifndef __STATIC_FORCEINLINE + #define __STATIC_FORCEINLINE __attribute__((always_inline)) static inline +#endif +#ifndef __NO_RETURN + #define __NO_RETURN __attribute__((__noreturn__)) +#endif +#ifndef __USED + #define __USED __attribute__((used)) +#endif +#ifndef __WEAK + #define __WEAK __attribute__((weak)) +#endif +#ifndef __PACKED + #define __PACKED __attribute__((packed, aligned(1))) +#endif +#ifndef __PACKED_STRUCT + #define __PACKED_STRUCT struct __attribute__((packed, aligned(1))) +#endif +#ifndef __PACKED_UNION + #define __PACKED_UNION union __attribute__((packed, aligned(1))) +#endif +#ifndef __UNALIGNED_UINT32 /* deprecated */ + #pragma GCC diagnostic push + #pragma GCC diagnostic ignored "-Wpacked" + #pragma GCC diagnostic ignored "-Wattributes" + struct __attribute__((packed)) T_UINT32 { uint32_t v; }; + #pragma GCC diagnostic pop + #define __UNALIGNED_UINT32(x) (((struct T_UINT32 *)(x))->v) +#endif +#ifndef __UNALIGNED_UINT16_WRITE + #pragma GCC diagnostic push + #pragma GCC diagnostic ignored "-Wpacked" + #pragma GCC diagnostic ignored "-Wattributes" + __PACKED_STRUCT T_UINT16_WRITE { uint16_t v; }; + #pragma GCC diagnostic pop + #define __UNALIGNED_UINT16_WRITE(addr, val) (void)((((struct T_UINT16_WRITE *)(void *)(addr))->v) = (val)) +#endif +#ifndef __UNALIGNED_UINT16_READ + #pragma GCC diagnostic push + #pragma GCC diagnostic ignored "-Wpacked" + #pragma GCC diagnostic ignored "-Wattributes" + __PACKED_STRUCT T_UINT16_READ { uint16_t v; }; + #pragma GCC diagnostic pop + #define __UNALIGNED_UINT16_READ(addr) (((const struct T_UINT16_READ *)(const void *)(addr))->v) +#endif +#ifndef __UNALIGNED_UINT32_WRITE + #pragma GCC diagnostic push + #pragma GCC diagnostic ignored "-Wpacked" + #pragma GCC diagnostic ignored "-Wattributes" + __PACKED_STRUCT T_UINT32_WRITE { uint32_t v; }; + #pragma GCC diagnostic pop + #define __UNALIGNED_UINT32_WRITE(addr, val) (void)((((struct T_UINT32_WRITE *)(void *)(addr))->v) = (val)) +#endif +#ifndef __UNALIGNED_UINT32_READ + #pragma GCC diagnostic push + #pragma GCC diagnostic ignored "-Wpacked" + #pragma GCC diagnostic ignored "-Wattributes" + __PACKED_STRUCT T_UINT32_READ { uint32_t v; }; + #pragma GCC diagnostic pop + #define __UNALIGNED_UINT32_READ(addr) (((const struct T_UINT32_READ *)(const void *)(addr))->v) +#endif +#ifndef __ALIGNED + #define __ALIGNED(x) __attribute__((aligned(x))) +#endif +#ifndef __RESTRICT + #define __RESTRICT __restrict +#endif +#ifndef __COMPILER_BARRIER + #define __COMPILER_BARRIER() __ASM volatile("":::"memory") +#endif + +/* ######################### Startup and Lowlevel Init ######################## */ + +#ifndef __PROGRAM_START + +/** + \brief Initializes data and bss sections + \details This default implementations initialized all data and additional bss + sections relying on .copy.table and .zero.table specified properly + in the used linker script. + + */ +__STATIC_FORCEINLINE __NO_RETURN void __cmsis_start(void) +{ + extern void _start(void) __NO_RETURN; + + typedef struct { + uint32_t const* src; + uint32_t* dest; + uint32_t wlen; + } __copy_table_t; + + typedef struct { + uint32_t* dest; + uint32_t wlen; + } __zero_table_t; + + extern const __copy_table_t __copy_table_start__; + extern const __copy_table_t __copy_table_end__; + extern const __zero_table_t __zero_table_start__; + extern const __zero_table_t __zero_table_end__; + + for (__copy_table_t const* pTable = &__copy_table_start__; pTable < &__copy_table_end__; ++pTable) { + for(uint32_t i=0u; iwlen; ++i) { + pTable->dest[i] = pTable->src[i]; + } + } + + for (__zero_table_t const* pTable = &__zero_table_start__; pTable < &__zero_table_end__; ++pTable) { + for(uint32_t i=0u; iwlen; ++i) { + pTable->dest[i] = 0u; + } + } + + _start(); +} + +#define __PROGRAM_START __cmsis_start +#endif + +#ifndef __INITIAL_SP +#define __INITIAL_SP __StackTop +#endif + +#ifndef __STACK_LIMIT +#define __STACK_LIMIT __StackLimit +#endif + +#ifndef __VECTOR_TABLE +#define __VECTOR_TABLE __Vectors +#endif + +#ifndef __VECTOR_TABLE_ATTRIBUTE +#define __VECTOR_TABLE_ATTRIBUTE __attribute__((used, section(".vectors"))) +#endif + +/* ########################### Core Function Access ########################### */ +/** \ingroup CMSIS_Core_FunctionInterface + \defgroup CMSIS_Core_RegAccFunctions CMSIS Core Register Access Functions + @{ + */ + +/** + \brief Enable IRQ Interrupts + \details Enables IRQ interrupts by clearing the I-bit in the CPSR. + Can only be executed in Privileged modes. + */ +__STATIC_FORCEINLINE void __enable_irq(void) +{ + __ASM volatile ("cpsie i" : : : "memory"); +} + + +/** + \brief Disable IRQ Interrupts + \details Disables IRQ interrupts by setting the I-bit in the CPSR. + Can only be executed in Privileged modes. + */ +__STATIC_FORCEINLINE void __disable_irq(void) +{ + __ASM volatile ("cpsid i" : : : "memory"); +} + + +/** + \brief Get Control Register + \details Returns the content of the Control Register. + \return Control Register value + */ +__STATIC_FORCEINLINE uint32_t __get_CONTROL(void) +{ + uint32_t result; + + __ASM volatile ("MRS %0, control" : "=r" (result) ); + return(result); +} + + +#if (defined (__ARM_FEATURE_CMSE ) && (__ARM_FEATURE_CMSE == 3)) +/** + \brief Get Control Register (non-secure) + \details Returns the content of the non-secure Control Register when in secure mode. + \return non-secure Control Register value + */ +__STATIC_FORCEINLINE uint32_t __TZ_get_CONTROL_NS(void) +{ + uint32_t result; + + __ASM volatile ("MRS %0, control_ns" : "=r" (result) ); + return(result); +} +#endif + + +/** + \brief Set Control Register + \details Writes the given value to the Control Register. + \param [in] control Control Register value to set + */ +__STATIC_FORCEINLINE void __set_CONTROL(uint32_t control) +{ + __ASM volatile ("MSR control, %0" : : "r" (control) : "memory"); +} + + +#if (defined (__ARM_FEATURE_CMSE ) && (__ARM_FEATURE_CMSE == 3)) +/** + \brief Set Control Register (non-secure) + \details Writes the given value to the non-secure Control Register when in secure state. + \param [in] control Control Register value to set + */ +__STATIC_FORCEINLINE void __TZ_set_CONTROL_NS(uint32_t control) +{ + __ASM volatile ("MSR control_ns, %0" : : "r" (control) : "memory"); +} +#endif + + +/** + \brief Get IPSR Register + \details Returns the content of the IPSR Register. + \return IPSR Register value + */ +__STATIC_FORCEINLINE uint32_t __get_IPSR(void) +{ + uint32_t result; + + __ASM volatile ("MRS %0, ipsr" : "=r" (result) ); + return(result); +} + + +/** + \brief Get APSR Register + \details Returns the content of the APSR Register. + \return APSR Register value + */ +__STATIC_FORCEINLINE uint32_t __get_APSR(void) +{ + uint32_t result; + + __ASM volatile ("MRS %0, apsr" : "=r" (result) ); + return(result); +} + + +/** + \brief Get xPSR Register + \details Returns the content of the xPSR Register. + \return xPSR Register value + */ +__STATIC_FORCEINLINE uint32_t __get_xPSR(void) +{ + uint32_t result; + + __ASM volatile ("MRS %0, xpsr" : "=r" (result) ); + return(result); +} + + +/** + \brief Get Process Stack Pointer + \details Returns the current value of the Process Stack Pointer (PSP). + \return PSP Register value + */ +__STATIC_FORCEINLINE uint32_t __get_PSP(void) +{ + uint32_t result; + + __ASM volatile ("MRS %0, psp" : "=r" (result) ); + return(result); +} + + +#if (defined (__ARM_FEATURE_CMSE ) && (__ARM_FEATURE_CMSE == 3)) +/** + \brief Get Process Stack Pointer (non-secure) + \details Returns the current value of the non-secure Process Stack Pointer (PSP) when in secure state. + \return PSP Register value + */ +__STATIC_FORCEINLINE uint32_t __TZ_get_PSP_NS(void) +{ + uint32_t result; + + __ASM volatile ("MRS %0, psp_ns" : "=r" (result) ); + return(result); +} +#endif + + +/** + \brief Set Process Stack Pointer + \details Assigns the given value to the Process Stack Pointer (PSP). + \param [in] topOfProcStack Process Stack Pointer value to set + */ +__STATIC_FORCEINLINE void __set_PSP(uint32_t topOfProcStack) +{ + __ASM volatile ("MSR psp, %0" : : "r" (topOfProcStack) : ); +} + + +#if (defined (__ARM_FEATURE_CMSE ) && (__ARM_FEATURE_CMSE == 3)) +/** + \brief Set Process Stack Pointer (non-secure) + \details Assigns the given value to the non-secure Process Stack Pointer (PSP) when in secure state. + \param [in] topOfProcStack Process Stack Pointer value to set + */ +__STATIC_FORCEINLINE void __TZ_set_PSP_NS(uint32_t topOfProcStack) +{ + __ASM volatile ("MSR psp_ns, %0" : : "r" (topOfProcStack) : ); +} +#endif + + +/** + \brief Get Main Stack Pointer + \details Returns the current value of the Main Stack Pointer (MSP). + \return MSP Register value + */ +__STATIC_FORCEINLINE uint32_t __get_MSP(void) +{ + uint32_t result; + + __ASM volatile ("MRS %0, msp" : "=r" (result) ); + return(result); +} + + +#if (defined (__ARM_FEATURE_CMSE ) && (__ARM_FEATURE_CMSE == 3)) +/** + \brief Get Main Stack Pointer (non-secure) + \details Returns the current value of the non-secure Main Stack Pointer (MSP) when in secure state. + \return MSP Register value + */ +__STATIC_FORCEINLINE uint32_t __TZ_get_MSP_NS(void) +{ + uint32_t result; + + __ASM volatile ("MRS %0, msp_ns" : "=r" (result) ); + return(result); +} +#endif + + +/** + \brief Set Main Stack Pointer + \details Assigns the given value to the Main Stack Pointer (MSP). + \param [in] topOfMainStack Main Stack Pointer value to set + */ +__STATIC_FORCEINLINE void __set_MSP(uint32_t topOfMainStack) +{ + __ASM volatile ("MSR msp, %0" : : "r" (topOfMainStack) : ); +} + + +#if (defined (__ARM_FEATURE_CMSE ) && (__ARM_FEATURE_CMSE == 3)) +/** + \brief Set Main Stack Pointer (non-secure) + \details Assigns the given value to the non-secure Main Stack Pointer (MSP) when in secure state. + \param [in] topOfMainStack Main Stack Pointer value to set + */ +__STATIC_FORCEINLINE void __TZ_set_MSP_NS(uint32_t topOfMainStack) +{ + __ASM volatile ("MSR msp_ns, %0" : : "r" (topOfMainStack) : ); +} +#endif + + +#if (defined (__ARM_FEATURE_CMSE ) && (__ARM_FEATURE_CMSE == 3)) +/** + \brief Get Stack Pointer (non-secure) + \details Returns the current value of the non-secure Stack Pointer (SP) when in secure state. + \return SP Register value + */ +__STATIC_FORCEINLINE uint32_t __TZ_get_SP_NS(void) +{ + uint32_t result; + + __ASM volatile ("MRS %0, sp_ns" : "=r" (result) ); + return(result); +} + + +/** + \brief Set Stack Pointer (non-secure) + \details Assigns the given value to the non-secure Stack Pointer (SP) when in secure state. + \param [in] topOfStack Stack Pointer value to set + */ +__STATIC_FORCEINLINE void __TZ_set_SP_NS(uint32_t topOfStack) +{ + __ASM volatile ("MSR sp_ns, %0" : : "r" (topOfStack) : ); +} +#endif + + +/** + \brief Get Priority Mask + \details Returns the current state of the priority mask bit from the Priority Mask Register. + \return Priority Mask value + */ +__STATIC_FORCEINLINE uint32_t __get_PRIMASK(void) +{ + uint32_t result; + + __ASM volatile ("MRS %0, primask" : "=r" (result) ); + return(result); +} + + +#if (defined (__ARM_FEATURE_CMSE ) && (__ARM_FEATURE_CMSE == 3)) +/** + \brief Get Priority Mask (non-secure) + \details Returns the current state of the non-secure priority mask bit from the Priority Mask Register when in secure state. + \return Priority Mask value + */ +__STATIC_FORCEINLINE uint32_t __TZ_get_PRIMASK_NS(void) +{ + uint32_t result; + + __ASM volatile ("MRS %0, primask_ns" : "=r" (result) ); + return(result); +} +#endif + + +/** + \brief Set Priority Mask + \details Assigns the given value to the Priority Mask Register. + \param [in] priMask Priority Mask + */ +__STATIC_FORCEINLINE void __set_PRIMASK(uint32_t priMask) +{ + __ASM volatile ("MSR primask, %0" : : "r" (priMask) : "memory"); +} + + +#if (defined (__ARM_FEATURE_CMSE ) && (__ARM_FEATURE_CMSE == 3)) +/** + \brief Set Priority Mask (non-secure) + \details Assigns the given value to the non-secure Priority Mask Register when in secure state. + \param [in] priMask Priority Mask + */ +__STATIC_FORCEINLINE void __TZ_set_PRIMASK_NS(uint32_t priMask) +{ + __ASM volatile ("MSR primask_ns, %0" : : "r" (priMask) : "memory"); +} +#endif + + +#if ((defined (__ARM_ARCH_7M__ ) && (__ARM_ARCH_7M__ == 1)) || \ + (defined (__ARM_ARCH_7EM__ ) && (__ARM_ARCH_7EM__ == 1)) || \ + (defined (__ARM_ARCH_8M_MAIN__ ) && (__ARM_ARCH_8M_MAIN__ == 1)) ) +/** + \brief Enable FIQ + \details Enables FIQ interrupts by clearing the F-bit in the CPSR. + Can only be executed in Privileged modes. + */ +__STATIC_FORCEINLINE void __enable_fault_irq(void) +{ + __ASM volatile ("cpsie f" : : : "memory"); +} + + +/** + \brief Disable FIQ + \details Disables FIQ interrupts by setting the F-bit in the CPSR. + Can only be executed in Privileged modes. + */ +__STATIC_FORCEINLINE void __disable_fault_irq(void) +{ + __ASM volatile ("cpsid f" : : : "memory"); +} + + +/** + \brief Get Base Priority + \details Returns the current value of the Base Priority register. + \return Base Priority register value + */ +__STATIC_FORCEINLINE uint32_t __get_BASEPRI(void) +{ + uint32_t result; + + __ASM volatile ("MRS %0, basepri" : "=r" (result) ); + return(result); +} + + +#if (defined (__ARM_FEATURE_CMSE ) && (__ARM_FEATURE_CMSE == 3)) +/** + \brief Get Base Priority (non-secure) + \details Returns the current value of the non-secure Base Priority register when in secure state. + \return Base Priority register value + */ +__STATIC_FORCEINLINE uint32_t __TZ_get_BASEPRI_NS(void) +{ + uint32_t result; + + __ASM volatile ("MRS %0, basepri_ns" : "=r" (result) ); + return(result); +} +#endif + + +/** + \brief Set Base Priority + \details Assigns the given value to the Base Priority register. + \param [in] basePri Base Priority value to set + */ +__STATIC_FORCEINLINE void __set_BASEPRI(uint32_t basePri) +{ + __ASM volatile ("MSR basepri, %0" : : "r" (basePri) : "memory"); +} + + +#if (defined (__ARM_FEATURE_CMSE ) && (__ARM_FEATURE_CMSE == 3)) +/** + \brief Set Base Priority (non-secure) + \details Assigns the given value to the non-secure Base Priority register when in secure state. + \param [in] basePri Base Priority value to set + */ +__STATIC_FORCEINLINE void __TZ_set_BASEPRI_NS(uint32_t basePri) +{ + __ASM volatile ("MSR basepri_ns, %0" : : "r" (basePri) : "memory"); +} +#endif + + +/** + \brief Set Base Priority with condition + \details Assigns the given value to the Base Priority register only if BASEPRI masking is disabled, + or the new value increases the BASEPRI priority level. + \param [in] basePri Base Priority value to set + */ +__STATIC_FORCEINLINE void __set_BASEPRI_MAX(uint32_t basePri) +{ + __ASM volatile ("MSR basepri_max, %0" : : "r" (basePri) : "memory"); +} + + +/** + \brief Get Fault Mask + \details Returns the current value of the Fault Mask register. + \return Fault Mask register value + */ +__STATIC_FORCEINLINE uint32_t __get_FAULTMASK(void) +{ + uint32_t result; + + __ASM volatile ("MRS %0, faultmask" : "=r" (result) ); + return(result); +} + + +#if (defined (__ARM_FEATURE_CMSE ) && (__ARM_FEATURE_CMSE == 3)) +/** + \brief Get Fault Mask (non-secure) + \details Returns the current value of the non-secure Fault Mask register when in secure state. + \return Fault Mask register value + */ +__STATIC_FORCEINLINE uint32_t __TZ_get_FAULTMASK_NS(void) +{ + uint32_t result; + + __ASM volatile ("MRS %0, faultmask_ns" : "=r" (result) ); + return(result); +} +#endif + + +/** + \brief Set Fault Mask + \details Assigns the given value to the Fault Mask register. + \param [in] faultMask Fault Mask value to set + */ +__STATIC_FORCEINLINE void __set_FAULTMASK(uint32_t faultMask) +{ + __ASM volatile ("MSR faultmask, %0" : : "r" (faultMask) : "memory"); +} + + +#if (defined (__ARM_FEATURE_CMSE ) && (__ARM_FEATURE_CMSE == 3)) +/** + \brief Set Fault Mask (non-secure) + \details Assigns the given value to the non-secure Fault Mask register when in secure state. + \param [in] faultMask Fault Mask value to set + */ +__STATIC_FORCEINLINE void __TZ_set_FAULTMASK_NS(uint32_t faultMask) +{ + __ASM volatile ("MSR faultmask_ns, %0" : : "r" (faultMask) : "memory"); +} +#endif + +#endif /* ((defined (__ARM_ARCH_7M__ ) && (__ARM_ARCH_7M__ == 1)) || \ + (defined (__ARM_ARCH_7EM__ ) && (__ARM_ARCH_7EM__ == 1)) || \ + (defined (__ARM_ARCH_8M_MAIN__ ) && (__ARM_ARCH_8M_MAIN__ == 1)) ) */ + + +#if ((defined (__ARM_ARCH_8M_MAIN__ ) && (__ARM_ARCH_8M_MAIN__ == 1)) || \ + (defined (__ARM_ARCH_8M_BASE__ ) && (__ARM_ARCH_8M_BASE__ == 1)) ) + +/** + \brief Get Process Stack Pointer Limit + Devices without ARMv8-M Main Extensions (i.e. Cortex-M23) lack the non-secure + Stack Pointer Limit register hence zero is returned always in non-secure + mode. + + \details Returns the current value of the Process Stack Pointer Limit (PSPLIM). + \return PSPLIM Register value + */ +__STATIC_FORCEINLINE uint32_t __get_PSPLIM(void) +{ +#if (!(defined (__ARM_ARCH_8M_MAIN__ ) && (__ARM_ARCH_8M_MAIN__ == 1)) && \ + (!defined (__ARM_FEATURE_CMSE) || (__ARM_FEATURE_CMSE < 3))) + // without main extensions, the non-secure PSPLIM is RAZ/WI + return 0U; +#else + uint32_t result; + __ASM volatile ("MRS %0, psplim" : "=r" (result) ); + return result; +#endif +} + +#if (defined (__ARM_FEATURE_CMSE) && (__ARM_FEATURE_CMSE == 3)) +/** + \brief Get Process Stack Pointer Limit (non-secure) + Devices without ARMv8-M Main Extensions (i.e. Cortex-M23) lack the non-secure + Stack Pointer Limit register hence zero is returned always. + + \details Returns the current value of the non-secure Process Stack Pointer Limit (PSPLIM) when in secure state. + \return PSPLIM Register value + */ +__STATIC_FORCEINLINE uint32_t __TZ_get_PSPLIM_NS(void) +{ +#if (!(defined (__ARM_ARCH_8M_MAIN__ ) && (__ARM_ARCH_8M_MAIN__ == 1))) + // without main extensions, the non-secure PSPLIM is RAZ/WI + return 0U; +#else + uint32_t result; + __ASM volatile ("MRS %0, psplim_ns" : "=r" (result) ); + return result; +#endif +} +#endif + + +/** + \brief Set Process Stack Pointer Limit + Devices without ARMv8-M Main Extensions (i.e. Cortex-M23) lack the non-secure + Stack Pointer Limit register hence the write is silently ignored in non-secure + mode. + + \details Assigns the given value to the Process Stack Pointer Limit (PSPLIM). + \param [in] ProcStackPtrLimit Process Stack Pointer Limit value to set + */ +__STATIC_FORCEINLINE void __set_PSPLIM(uint32_t ProcStackPtrLimit) +{ +#if (!(defined (__ARM_ARCH_8M_MAIN__ ) && (__ARM_ARCH_8M_MAIN__ == 1)) && \ + (!defined (__ARM_FEATURE_CMSE) || (__ARM_FEATURE_CMSE < 3))) + // without main extensions, the non-secure PSPLIM is RAZ/WI + (void)ProcStackPtrLimit; +#else + __ASM volatile ("MSR psplim, %0" : : "r" (ProcStackPtrLimit)); +#endif +} + + +#if (defined (__ARM_FEATURE_CMSE ) && (__ARM_FEATURE_CMSE == 3)) +/** + \brief Set Process Stack Pointer (non-secure) + Devices without ARMv8-M Main Extensions (i.e. Cortex-M23) lack the non-secure + Stack Pointer Limit register hence the write is silently ignored. + + \details Assigns the given value to the non-secure Process Stack Pointer Limit (PSPLIM) when in secure state. + \param [in] ProcStackPtrLimit Process Stack Pointer Limit value to set + */ +__STATIC_FORCEINLINE void __TZ_set_PSPLIM_NS(uint32_t ProcStackPtrLimit) +{ +#if (!(defined (__ARM_ARCH_8M_MAIN__ ) && (__ARM_ARCH_8M_MAIN__ == 1))) + // without main extensions, the non-secure PSPLIM is RAZ/WI + (void)ProcStackPtrLimit; +#else + __ASM volatile ("MSR psplim_ns, %0\n" : : "r" (ProcStackPtrLimit)); +#endif +} +#endif + + +/** + \brief Get Main Stack Pointer Limit + Devices without ARMv8-M Main Extensions (i.e. Cortex-M23) lack the non-secure + Stack Pointer Limit register hence zero is returned always in non-secure + mode. + + \details Returns the current value of the Main Stack Pointer Limit (MSPLIM). + \return MSPLIM Register value + */ +__STATIC_FORCEINLINE uint32_t __get_MSPLIM(void) +{ +#if (!(defined (__ARM_ARCH_8M_MAIN__ ) && (__ARM_ARCH_8M_MAIN__ == 1)) && \ + (!defined (__ARM_FEATURE_CMSE) || (__ARM_FEATURE_CMSE < 3))) + // without main extensions, the non-secure MSPLIM is RAZ/WI + return 0U; +#else + uint32_t result; + __ASM volatile ("MRS %0, msplim" : "=r" (result) ); + return result; +#endif +} + + +#if (defined (__ARM_FEATURE_CMSE ) && (__ARM_FEATURE_CMSE == 3)) +/** + \brief Get Main Stack Pointer Limit (non-secure) + Devices without ARMv8-M Main Extensions (i.e. Cortex-M23) lack the non-secure + Stack Pointer Limit register hence zero is returned always. + + \details Returns the current value of the non-secure Main Stack Pointer Limit(MSPLIM) when in secure state. + \return MSPLIM Register value + */ +__STATIC_FORCEINLINE uint32_t __TZ_get_MSPLIM_NS(void) +{ +#if (!(defined (__ARM_ARCH_8M_MAIN__ ) && (__ARM_ARCH_8M_MAIN__ == 1))) + // without main extensions, the non-secure MSPLIM is RAZ/WI + return 0U; +#else + uint32_t result; + __ASM volatile ("MRS %0, msplim_ns" : "=r" (result) ); + return result; +#endif +} +#endif + + +/** + \brief Set Main Stack Pointer Limit + Devices without ARMv8-M Main Extensions (i.e. Cortex-M23) lack the non-secure + Stack Pointer Limit register hence the write is silently ignored in non-secure + mode. + + \details Assigns the given value to the Main Stack Pointer Limit (MSPLIM). + \param [in] MainStackPtrLimit Main Stack Pointer Limit value to set + */ +__STATIC_FORCEINLINE void __set_MSPLIM(uint32_t MainStackPtrLimit) +{ +#if (!(defined (__ARM_ARCH_8M_MAIN__ ) && (__ARM_ARCH_8M_MAIN__ == 1)) && \ + (!defined (__ARM_FEATURE_CMSE) || (__ARM_FEATURE_CMSE < 3))) + // without main extensions, the non-secure MSPLIM is RAZ/WI + (void)MainStackPtrLimit; +#else + __ASM volatile ("MSR msplim, %0" : : "r" (MainStackPtrLimit)); +#endif +} + + +#if (defined (__ARM_FEATURE_CMSE ) && (__ARM_FEATURE_CMSE == 3)) +/** + \brief Set Main Stack Pointer Limit (non-secure) + Devices without ARMv8-M Main Extensions (i.e. Cortex-M23) lack the non-secure + Stack Pointer Limit register hence the write is silently ignored. + + \details Assigns the given value to the non-secure Main Stack Pointer Limit (MSPLIM) when in secure state. + \param [in] MainStackPtrLimit Main Stack Pointer value to set + */ +__STATIC_FORCEINLINE void __TZ_set_MSPLIM_NS(uint32_t MainStackPtrLimit) +{ +#if (!(defined (__ARM_ARCH_8M_MAIN__ ) && (__ARM_ARCH_8M_MAIN__ == 1))) + // without main extensions, the non-secure MSPLIM is RAZ/WI + (void)MainStackPtrLimit; +#else + __ASM volatile ("MSR msplim_ns, %0" : : "r" (MainStackPtrLimit)); +#endif +} +#endif + +#endif /* ((defined (__ARM_ARCH_8M_MAIN__ ) && (__ARM_ARCH_8M_MAIN__ == 1)) || \ + (defined (__ARM_ARCH_8M_BASE__ ) && (__ARM_ARCH_8M_BASE__ == 1)) ) */ + + +/** + \brief Get FPSCR + \details Returns the current value of the Floating Point Status/Control register. + \return Floating Point Status/Control register value + */ +__STATIC_FORCEINLINE uint32_t __get_FPSCR(void) +{ +#if ((defined (__FPU_PRESENT) && (__FPU_PRESENT == 1U)) && \ + (defined (__FPU_USED ) && (__FPU_USED == 1U)) ) +#if __has_builtin(__builtin_arm_get_fpscr) +// Re-enable using built-in when GCC has been fixed +// || (__GNUC__ > 7) || (__GNUC__ == 7 && __GNUC_MINOR__ >= 2) + /* see https://gcc.gnu.org/ml/gcc-patches/2017-04/msg00443.html */ + return __builtin_arm_get_fpscr(); +#else + uint32_t result; + + __ASM volatile ("VMRS %0, fpscr" : "=r" (result) ); + return(result); +#endif +#else + return(0U); +#endif +} + + +/** + \brief Set FPSCR + \details Assigns the given value to the Floating Point Status/Control register. + \param [in] fpscr Floating Point Status/Control value to set + */ +__STATIC_FORCEINLINE void __set_FPSCR(uint32_t fpscr) +{ +#if ((defined (__FPU_PRESENT) && (__FPU_PRESENT == 1U)) && \ + (defined (__FPU_USED ) && (__FPU_USED == 1U)) ) +#if __has_builtin(__builtin_arm_set_fpscr) +// Re-enable using built-in when GCC has been fixed +// || (__GNUC__ > 7) || (__GNUC__ == 7 && __GNUC_MINOR__ >= 2) + /* see https://gcc.gnu.org/ml/gcc-patches/2017-04/msg00443.html */ + __builtin_arm_set_fpscr(fpscr); +#else + __ASM volatile ("VMSR fpscr, %0" : : "r" (fpscr) : "vfpcc", "memory"); +#endif +#else + (void)fpscr; +#endif +} + +/** + * \brief Get FPEXC + * \details Returns the current value of the Floating Point Exception Control register. + * \return Floating Point Exception Control register value + */ +__STATIC_FORCEINLINE uint32_t __get_FPEXC (void) +{ +#if ((defined(__FPU_PRESENT) && (__FPU_PRESENT == 1U)) && \ + (defined(__FPU_USED) && (__FPU_USED == 1U))) + + uint32_t result; + + __ASM volatile ("VMRS %0, fpexc" : "=r" (result)); + + return result; +#else + + return 0U; +#endif +} + +/** + * \brief Set FPEXC + * \details Assigns the given value to the Floating Point Exception Control register. + * \param [in] fpexc Floating Point Exception Control value to set + */ +__STATIC_FORCEINLINE void __set_FPEXC (uint32_t fpexc) +{ +#if ((defined(__FPU_PRESENT) && (__FPU_PRESENT == 1U)) && \ + (defined(__FPU_USED) && (__FPU_USED == 1U))) + + __ASM volatile ("VMSR fpexc, %0" : : "r" (fpexc) : "memory"); +#else + (void) fpexc; +#endif +} + +/*@} end of CMSIS_Core_RegAccFunctions */ + + +/* ########################## Core Instruction Access ######################### */ +/** \defgroup CMSIS_Core_InstructionInterface CMSIS Core Instruction Interface + Access to dedicated instructions + @{ +*/ + +/* Define macros for porting to both thumb1 and thumb2. + * For thumb1, use low register (r0-r7), specified by constraint "l" + * Otherwise, use general registers, specified by constraint "r" */ +#if defined (__thumb__) && !defined (__thumb2__) +#define __CMSIS_GCC_OUT_REG(r) "=l" (r) +#define __CMSIS_GCC_RW_REG(r) "+l" (r) +#define __CMSIS_GCC_USE_REG(r) "l" (r) +#else +#define __CMSIS_GCC_OUT_REG(r) "=r" (r) +#define __CMSIS_GCC_RW_REG(r) "+r" (r) +#define __CMSIS_GCC_USE_REG(r) "r" (r) +#endif + +/** + \brief No Operation + \details No Operation does nothing. This instruction can be used for code alignment purposes. + */ +#define __NOP() __ASM volatile ("nop") + +/** + \brief Wait For Interrupt + \details Wait For Interrupt is a hint instruction that suspends execution until one of a number of events occurs. + */ +#define __WFI() __ASM volatile ("wfi":::"memory") + + +/** + \brief Wait For Event + \details Wait For Event is a hint instruction that permits the processor to enter + a low-power state until one of a number of events occurs. + */ +#define __WFE() __ASM volatile ("wfe":::"memory") + + +/** + \brief Send Event + \details Send Event is a hint instruction. It causes an event to be signaled to the CPU. + */ +#define __SEV() __ASM volatile ("sev") + + +/** + \brief Instruction Synchronization Barrier + \details Instruction Synchronization Barrier flushes the pipeline in the processor, + so that all instructions following the ISB are fetched from cache or memory, + after the instruction has been completed. + */ +__STATIC_FORCEINLINE void __ISB(void) +{ + __ASM volatile ("isb 0xF":::"memory"); +} + + +/** + \brief Data Synchronization Barrier + \details Acts as a special kind of Data Memory Barrier. + It completes when all explicit memory accesses before this instruction complete. + */ +__STATIC_FORCEINLINE void __DSB(void) +{ + __ASM volatile ("dsb 0xF":::"memory"); +} + + +/** + \brief Data Memory Barrier + \details Ensures the apparent order of the explicit memory operations before + and after the instruction, without ensuring their completion. + */ +__STATIC_FORCEINLINE void __DMB(void) +{ + __ASM volatile ("dmb 0xF":::"memory"); +} + + +/** + \brief Reverse byte order (32 bit) + \details Reverses the byte order in unsigned integer value. For example, 0x12345678 becomes 0x78563412. + \param [in] value Value to reverse + \return Reversed value + */ +__STATIC_FORCEINLINE uint32_t __REV(uint32_t value) +{ +#if (__GNUC__ > 4) || (__GNUC__ == 4 && __GNUC_MINOR__ >= 5) + return __builtin_bswap32(value); +#else + uint32_t result; + + __ASM ("rev %0, %1" : __CMSIS_GCC_OUT_REG (result) : __CMSIS_GCC_USE_REG (value) ); + return result; +#endif +} + + +/** + \brief Reverse byte order (16 bit) + \details Reverses the byte order within each halfword of a word. For example, 0x12345678 becomes 0x34127856. + \param [in] value Value to reverse + \return Reversed value + */ +__STATIC_FORCEINLINE uint32_t __REV16(uint32_t value) +{ + uint32_t result; + + __ASM ("rev16 %0, %1" : __CMSIS_GCC_OUT_REG (result) : __CMSIS_GCC_USE_REG (value) ); + return result; +} + + +/** + \brief Reverse byte order (16 bit) + \details Reverses the byte order in a 16-bit value and returns the signed 16-bit result. For example, 0x0080 becomes 0x8000. + \param [in] value Value to reverse + \return Reversed value + */ +__STATIC_FORCEINLINE int16_t __REVSH(int16_t value) +{ +#if (__GNUC__ > 4) || (__GNUC__ == 4 && __GNUC_MINOR__ >= 8) + return (int16_t)__builtin_bswap16(value); +#else + int16_t result; + + __ASM ("revsh %0, %1" : __CMSIS_GCC_OUT_REG (result) : __CMSIS_GCC_USE_REG (value) ); + return result; +#endif +} + + +/** + \brief Rotate Right in unsigned value (32 bit) + \details Rotate Right (immediate) provides the value of the contents of a register rotated by a variable number of bits. + \param [in] op1 Value to rotate + \param [in] op2 Number of Bits to rotate + \return Rotated value + */ +__STATIC_FORCEINLINE uint32_t __ROR(uint32_t op1, uint32_t op2) +{ + op2 %= 32U; + if (op2 == 0U) + { + return op1; + } + return (op1 >> op2) | (op1 << (32U - op2)); +} + + +/** + \brief Breakpoint + \details Causes the processor to enter Debug state. + Debug tools can use this to investigate system state when the instruction at a particular address is reached. + \param [in] value is ignored by the processor. + If required, a debugger can use it to store additional information about the breakpoint. + */ +#define __BKPT(value) __ASM volatile ("bkpt "#value) + + +/** + \brief Reverse bit order of value + \details Reverses the bit order of the given value. + \param [in] value Value to reverse + \return Reversed value + */ +__STATIC_FORCEINLINE uint32_t __RBIT(uint32_t value) +{ + uint32_t result; + +#if ((defined (__ARM_ARCH_7M__ ) && (__ARM_ARCH_7M__ == 1)) || \ + (defined (__ARM_ARCH_7EM__ ) && (__ARM_ARCH_7EM__ == 1)) || \ + (defined (__ARM_ARCH_8M_MAIN__ ) && (__ARM_ARCH_8M_MAIN__ == 1)) ) + __ASM ("rbit %0, %1" : "=r" (result) : "r" (value) ); +#else + uint32_t s = (4U /*sizeof(v)*/ * 8U) - 1U; /* extra shift needed at end */ + + result = value; /* r will be reversed bits of v; first get LSB of v */ + for (value >>= 1U; value != 0U; value >>= 1U) + { + result <<= 1U; + result |= value & 1U; + s--; + } + result <<= s; /* shift when v's highest bits are zero */ +#endif + return result; +} + + +/** + \brief Count leading zeros + \details Counts the number of leading zeros of a data value. + \param [in] value Value to count the leading zeros + \return number of leading zeros in value + */ +__STATIC_FORCEINLINE uint8_t __CLZ(uint32_t value) +{ + /* Even though __builtin_clz produces a CLZ instruction on ARM, formally + __builtin_clz(0) is undefined behaviour, so handle this case specially. + This guarantees ARM-compatible results if happening to compile on a non-ARM + target, and ensures the compiler doesn't decide to activate any + optimisations using the logic "value was passed to __builtin_clz, so it + is non-zero". + ARM GCC 7.3 and possibly earlier will optimise this test away, leaving a + single CLZ instruction. + */ + if (value == 0U) + { + return 32U; + } + return __builtin_clz(value); +} + + +#if ((defined (__ARM_ARCH_7M__ ) && (__ARM_ARCH_7M__ == 1)) || \ + (defined (__ARM_ARCH_7EM__ ) && (__ARM_ARCH_7EM__ == 1)) || \ + (defined (__ARM_ARCH_8M_MAIN__ ) && (__ARM_ARCH_8M_MAIN__ == 1)) || \ + (defined (__ARM_ARCH_8M_BASE__ ) && (__ARM_ARCH_8M_BASE__ == 1)) ) +/** + \brief LDR Exclusive (8 bit) + \details Executes a exclusive LDR instruction for 8 bit value. + \param [in] ptr Pointer to data + \return value of type uint8_t at (*ptr) + */ +__STATIC_FORCEINLINE uint8_t __LDREXB(volatile uint8_t *addr) +{ + uint32_t result; + +#if (__GNUC__ > 4) || (__GNUC__ == 4 && __GNUC_MINOR__ >= 8) + __ASM volatile ("ldrexb %0, %1" : "=r" (result) : "Q" (*addr) ); +#else + /* Prior to GCC 4.8, "Q" will be expanded to [rx, #0] which is not + accepted by assembler. So has to use following less efficient pattern. + */ + __ASM volatile ("ldrexb %0, [%1]" : "=r" (result) : "r" (addr) : "memory" ); +#endif + return ((uint8_t) result); /* Add explicit type cast here */ +} + + +/** + \brief LDR Exclusive (16 bit) + \details Executes a exclusive LDR instruction for 16 bit values. + \param [in] ptr Pointer to data + \return value of type uint16_t at (*ptr) + */ +__STATIC_FORCEINLINE uint16_t __LDREXH(volatile uint16_t *addr) +{ + uint32_t result; + +#if (__GNUC__ > 4) || (__GNUC__ == 4 && __GNUC_MINOR__ >= 8) + __ASM volatile ("ldrexh %0, %1" : "=r" (result) : "Q" (*addr) ); +#else + /* Prior to GCC 4.8, "Q" will be expanded to [rx, #0] which is not + accepted by assembler. So has to use following less efficient pattern. + */ + __ASM volatile ("ldrexh %0, [%1]" : "=r" (result) : "r" (addr) : "memory" ); +#endif + return ((uint16_t) result); /* Add explicit type cast here */ +} + + +/** + \brief LDR Exclusive (32 bit) + \details Executes a exclusive LDR instruction for 32 bit values. + \param [in] ptr Pointer to data + \return value of type uint32_t at (*ptr) + */ +__STATIC_FORCEINLINE uint32_t __LDREXW(volatile uint32_t *addr) +{ + uint32_t result; + + __ASM volatile ("ldrex %0, %1" : "=r" (result) : "Q" (*addr) ); + return(result); +} + + +/** + \brief STR Exclusive (8 bit) + \details Executes a exclusive STR instruction for 8 bit values. + \param [in] value Value to store + \param [in] ptr Pointer to location + \return 0 Function succeeded + \return 1 Function failed + */ +__STATIC_FORCEINLINE uint32_t __STREXB(uint8_t value, volatile uint8_t *addr) +{ + uint32_t result; + + __ASM volatile ("strexb %0, %2, %1" : "=&r" (result), "=Q" (*addr) : "r" ((uint32_t)value) ); + return(result); +} + + +/** + \brief STR Exclusive (16 bit) + \details Executes a exclusive STR instruction for 16 bit values. + \param [in] value Value to store + \param [in] ptr Pointer to location + \return 0 Function succeeded + \return 1 Function failed + */ +__STATIC_FORCEINLINE uint32_t __STREXH(uint16_t value, volatile uint16_t *addr) +{ + uint32_t result; + + __ASM volatile ("strexh %0, %2, %1" : "=&r" (result), "=Q" (*addr) : "r" ((uint32_t)value) ); + return(result); +} + + +/** + \brief STR Exclusive (32 bit) + \details Executes a exclusive STR instruction for 32 bit values. + \param [in] value Value to store + \param [in] ptr Pointer to location + \return 0 Function succeeded + \return 1 Function failed + */ +__STATIC_FORCEINLINE uint32_t __STREXW(uint32_t value, volatile uint32_t *addr) +{ + uint32_t result; + + __ASM volatile ("strex %0, %2, %1" : "=&r" (result), "=Q" (*addr) : "r" (value) ); + return(result); +} + + +/** + \brief Remove the exclusive lock + \details Removes the exclusive lock which is created by LDREX. + */ +__STATIC_FORCEINLINE void __CLREX(void) +{ + __ASM volatile ("clrex" ::: "memory"); +} + +#endif /* ((defined (__ARM_ARCH_7M__ ) && (__ARM_ARCH_7M__ == 1)) || \ + (defined (__ARM_ARCH_7EM__ ) && (__ARM_ARCH_7EM__ == 1)) || \ + (defined (__ARM_ARCH_8M_MAIN__ ) && (__ARM_ARCH_8M_MAIN__ == 1)) || \ + (defined (__ARM_ARCH_8M_BASE__ ) && (__ARM_ARCH_8M_BASE__ == 1)) ) */ + + +#if ((defined (__ARM_ARCH_7M__ ) && (__ARM_ARCH_7M__ == 1)) || \ + (defined (__ARM_ARCH_7EM__ ) && (__ARM_ARCH_7EM__ == 1)) || \ + (defined (__ARM_ARCH_8M_MAIN__ ) && (__ARM_ARCH_8M_MAIN__ == 1)) ) +/** + \brief Signed Saturate + \details Saturates a signed value. + \param [in] ARG1 Value to be saturated + \param [in] ARG2 Bit position to saturate to (1..32) + \return Saturated value + */ +#define __SSAT(ARG1, ARG2) \ +__extension__ \ +({ \ + int32_t __RES, __ARG1 = (ARG1); \ + __ASM volatile ("ssat %0, %1, %2" : "=r" (__RES) : "I" (ARG2), "r" (__ARG1) : "cc" ); \ + __RES; \ + }) + + +/** + \brief Unsigned Saturate + \details Saturates an unsigned value. + \param [in] ARG1 Value to be saturated + \param [in] ARG2 Bit position to saturate to (0..31) + \return Saturated value + */ +#define __USAT(ARG1, ARG2) \ + __extension__ \ +({ \ + uint32_t __RES, __ARG1 = (ARG1); \ + __ASM volatile ("usat %0, %1, %2" : "=r" (__RES) : "I" (ARG2), "r" (__ARG1) : "cc" ); \ + __RES; \ + }) + + +/** + \brief Rotate Right with Extend (32 bit) + \details Moves each bit of a bitstring right by one bit. + The carry input is shifted in at the left end of the bitstring. + \param [in] value Value to rotate + \return Rotated value + */ +__STATIC_FORCEINLINE uint32_t __RRX(uint32_t value) +{ + uint32_t result; + + __ASM volatile ("rrx %0, %1" : __CMSIS_GCC_OUT_REG (result) : __CMSIS_GCC_USE_REG (value) ); + return(result); +} + + +/** + \brief LDRT Unprivileged (8 bit) + \details Executes a Unprivileged LDRT instruction for 8 bit value. + \param [in] ptr Pointer to data + \return value of type uint8_t at (*ptr) + */ +__STATIC_FORCEINLINE uint8_t __LDRBT(volatile uint8_t *ptr) +{ + uint32_t result; + +#if (__GNUC__ > 4) || (__GNUC__ == 4 && __GNUC_MINOR__ >= 8) + __ASM volatile ("ldrbt %0, %1" : "=r" (result) : "Q" (*ptr) ); +#else + /* Prior to GCC 4.8, "Q" will be expanded to [rx, #0] which is not + accepted by assembler. So has to use following less efficient pattern. + */ + __ASM volatile ("ldrbt %0, [%1]" : "=r" (result) : "r" (ptr) : "memory" ); +#endif + return ((uint8_t) result); /* Add explicit type cast here */ +} + + +/** + \brief LDRT Unprivileged (16 bit) + \details Executes a Unprivileged LDRT instruction for 16 bit values. + \param [in] ptr Pointer to data + \return value of type uint16_t at (*ptr) + */ +__STATIC_FORCEINLINE uint16_t __LDRHT(volatile uint16_t *ptr) +{ + uint32_t result; + +#if (__GNUC__ > 4) || (__GNUC__ == 4 && __GNUC_MINOR__ >= 8) + __ASM volatile ("ldrht %0, %1" : "=r" (result) : "Q" (*ptr) ); +#else + /* Prior to GCC 4.8, "Q" will be expanded to [rx, #0] which is not + accepted by assembler. So has to use following less efficient pattern. + */ + __ASM volatile ("ldrht %0, [%1]" : "=r" (result) : "r" (ptr) : "memory" ); +#endif + return ((uint16_t) result); /* Add explicit type cast here */ +} + + +/** + \brief LDRT Unprivileged (32 bit) + \details Executes a Unprivileged LDRT instruction for 32 bit values. + \param [in] ptr Pointer to data + \return value of type uint32_t at (*ptr) + */ +__STATIC_FORCEINLINE uint32_t __LDRT(volatile uint32_t *ptr) +{ + uint32_t result; + + __ASM volatile ("ldrt %0, %1" : "=r" (result) : "Q" (*ptr) ); + return(result); +} + + +/** + \brief STRT Unprivileged (8 bit) + \details Executes a Unprivileged STRT instruction for 8 bit values. + \param [in] value Value to store + \param [in] ptr Pointer to location + */ +__STATIC_FORCEINLINE void __STRBT(uint8_t value, volatile uint8_t *ptr) +{ + __ASM volatile ("strbt %1, %0" : "=Q" (*ptr) : "r" ((uint32_t)value) ); +} + + +/** + \brief STRT Unprivileged (16 bit) + \details Executes a Unprivileged STRT instruction for 16 bit values. + \param [in] value Value to store + \param [in] ptr Pointer to location + */ +__STATIC_FORCEINLINE void __STRHT(uint16_t value, volatile uint16_t *ptr) +{ + __ASM volatile ("strht %1, %0" : "=Q" (*ptr) : "r" ((uint32_t)value) ); +} + + +/** + \brief STRT Unprivileged (32 bit) + \details Executes a Unprivileged STRT instruction for 32 bit values. + \param [in] value Value to store + \param [in] ptr Pointer to location + */ +__STATIC_FORCEINLINE void __STRT(uint32_t value, volatile uint32_t *ptr) +{ + __ASM volatile ("strt %1, %0" : "=Q" (*ptr) : "r" (value) ); +} + +#else /* ((defined (__ARM_ARCH_7M__ ) && (__ARM_ARCH_7M__ == 1)) || \ + (defined (__ARM_ARCH_7EM__ ) && (__ARM_ARCH_7EM__ == 1)) || \ + (defined (__ARM_ARCH_8M_MAIN__ ) && (__ARM_ARCH_8M_MAIN__ == 1)) ) */ + +/** + \brief Signed Saturate + \details Saturates a signed value. + \param [in] value Value to be saturated + \param [in] sat Bit position to saturate to (1..32) + \return Saturated value + */ +__STATIC_FORCEINLINE int32_t __SSAT(int32_t val, uint32_t sat) +{ + if ((sat >= 1U) && (sat <= 32U)) + { + const int32_t max = (int32_t)((1U << (sat - 1U)) - 1U); + const int32_t min = -1 - max ; + if (val > max) + { + return max; + } + else if (val < min) + { + return min; + } + } + return val; +} + +/** + \brief Unsigned Saturate + \details Saturates an unsigned value. + \param [in] value Value to be saturated + \param [in] sat Bit position to saturate to (0..31) + \return Saturated value + */ +__STATIC_FORCEINLINE uint32_t __USAT(int32_t val, uint32_t sat) +{ + if (sat <= 31U) + { + const uint32_t max = ((1U << sat) - 1U); + if (val > (int32_t)max) + { + return max; + } + else if (val < 0) + { + return 0U; + } + } + return (uint32_t)val; +} + +#endif /* ((defined (__ARM_ARCH_7M__ ) && (__ARM_ARCH_7M__ == 1)) || \ + (defined (__ARM_ARCH_7EM__ ) && (__ARM_ARCH_7EM__ == 1)) || \ + (defined (__ARM_ARCH_8M_MAIN__ ) && (__ARM_ARCH_8M_MAIN__ == 1)) ) */ + + +#if ((defined (__ARM_ARCH_8M_MAIN__ ) && (__ARM_ARCH_8M_MAIN__ == 1)) || \ + (defined (__ARM_ARCH_8M_BASE__ ) && (__ARM_ARCH_8M_BASE__ == 1)) ) +/** + \brief Load-Acquire (8 bit) + \details Executes a LDAB instruction for 8 bit value. + \param [in] ptr Pointer to data + \return value of type uint8_t at (*ptr) + */ +__STATIC_FORCEINLINE uint8_t __LDAB(volatile uint8_t *ptr) +{ + uint32_t result; + + __ASM volatile ("ldab %0, %1" : "=r" (result) : "Q" (*ptr) : "memory" ); + return ((uint8_t) result); +} + + +/** + \brief Load-Acquire (16 bit) + \details Executes a LDAH instruction for 16 bit values. + \param [in] ptr Pointer to data + \return value of type uint16_t at (*ptr) + */ +__STATIC_FORCEINLINE uint16_t __LDAH(volatile uint16_t *ptr) +{ + uint32_t result; + + __ASM volatile ("ldah %0, %1" : "=r" (result) : "Q" (*ptr) : "memory" ); + return ((uint16_t) result); +} + + +/** + \brief Load-Acquire (32 bit) + \details Executes a LDA instruction for 32 bit values. + \param [in] ptr Pointer to data + \return value of type uint32_t at (*ptr) + */ +__STATIC_FORCEINLINE uint32_t __LDA(volatile uint32_t *ptr) +{ + uint32_t result; + + __ASM volatile ("lda %0, %1" : "=r" (result) : "Q" (*ptr) : "memory" ); + return(result); +} + + +/** + \brief Store-Release (8 bit) + \details Executes a STLB instruction for 8 bit values. + \param [in] value Value to store + \param [in] ptr Pointer to location + */ +__STATIC_FORCEINLINE void __STLB(uint8_t value, volatile uint8_t *ptr) +{ + __ASM volatile ("stlb %1, %0" : "=Q" (*ptr) : "r" ((uint32_t)value) : "memory" ); +} + + +/** + \brief Store-Release (16 bit) + \details Executes a STLH instruction for 16 bit values. + \param [in] value Value to store + \param [in] ptr Pointer to location + */ +__STATIC_FORCEINLINE void __STLH(uint16_t value, volatile uint16_t *ptr) +{ + __ASM volatile ("stlh %1, %0" : "=Q" (*ptr) : "r" ((uint32_t)value) : "memory" ); +} + + +/** + \brief Store-Release (32 bit) + \details Executes a STL instruction for 32 bit values. + \param [in] value Value to store + \param [in] ptr Pointer to location + */ +__STATIC_FORCEINLINE void __STL(uint32_t value, volatile uint32_t *ptr) +{ + __ASM volatile ("stl %1, %0" : "=Q" (*ptr) : "r" ((uint32_t)value) : "memory" ); +} + + +/** + \brief Load-Acquire Exclusive (8 bit) + \details Executes a LDAB exclusive instruction for 8 bit value. + \param [in] ptr Pointer to data + \return value of type uint8_t at (*ptr) + */ +__STATIC_FORCEINLINE uint8_t __LDAEXB(volatile uint8_t *ptr) +{ + uint32_t result; + + __ASM volatile ("ldaexb %0, %1" : "=r" (result) : "Q" (*ptr) : "memory" ); + return ((uint8_t) result); +} + + +/** + \brief Load-Acquire Exclusive (16 bit) + \details Executes a LDAH exclusive instruction for 16 bit values. + \param [in] ptr Pointer to data + \return value of type uint16_t at (*ptr) + */ +__STATIC_FORCEINLINE uint16_t __LDAEXH(volatile uint16_t *ptr) +{ + uint32_t result; + + __ASM volatile ("ldaexh %0, %1" : "=r" (result) : "Q" (*ptr) : "memory" ); + return ((uint16_t) result); +} + + +/** + \brief Load-Acquire Exclusive (32 bit) + \details Executes a LDA exclusive instruction for 32 bit values. + \param [in] ptr Pointer to data + \return value of type uint32_t at (*ptr) + */ +__STATIC_FORCEINLINE uint32_t __LDAEX(volatile uint32_t *ptr) +{ + uint32_t result; + + __ASM volatile ("ldaex %0, %1" : "=r" (result) : "Q" (*ptr) : "memory" ); + return(result); +} + + +/** + \brief Store-Release Exclusive (8 bit) + \details Executes a STLB exclusive instruction for 8 bit values. + \param [in] value Value to store + \param [in] ptr Pointer to location + \return 0 Function succeeded + \return 1 Function failed + */ +__STATIC_FORCEINLINE uint32_t __STLEXB(uint8_t value, volatile uint8_t *ptr) +{ + uint32_t result; + + __ASM volatile ("stlexb %0, %2, %1" : "=&r" (result), "=Q" (*ptr) : "r" ((uint32_t)value) : "memory" ); + return(result); +} + + +/** + \brief Store-Release Exclusive (16 bit) + \details Executes a STLH exclusive instruction for 16 bit values. + \param [in] value Value to store + \param [in] ptr Pointer to location + \return 0 Function succeeded + \return 1 Function failed + */ +__STATIC_FORCEINLINE uint32_t __STLEXH(uint16_t value, volatile uint16_t *ptr) +{ + uint32_t result; + + __ASM volatile ("stlexh %0, %2, %1" : "=&r" (result), "=Q" (*ptr) : "r" ((uint32_t)value) : "memory" ); + return(result); +} + + +/** + \brief Store-Release Exclusive (32 bit) + \details Executes a STL exclusive instruction for 32 bit values. + \param [in] value Value to store + \param [in] ptr Pointer to location + \return 0 Function succeeded + \return 1 Function failed + */ +__STATIC_FORCEINLINE uint32_t __STLEX(uint32_t value, volatile uint32_t *ptr) +{ + uint32_t result; + + __ASM volatile ("stlex %0, %2, %1" : "=&r" (result), "=Q" (*ptr) : "r" ((uint32_t)value) : "memory" ); + return(result); +} + +#endif /* ((defined (__ARM_ARCH_8M_MAIN__ ) && (__ARM_ARCH_8M_MAIN__ == 1)) || \ + (defined (__ARM_ARCH_8M_BASE__ ) && (__ARM_ARCH_8M_BASE__ == 1)) ) */ + +/*@}*/ /* end of group CMSIS_Core_InstructionInterface */ + + +/* ################### Compiler specific Intrinsics ########################### */ +/** \defgroup CMSIS_SIMD_intrinsics CMSIS SIMD Intrinsics + Access to dedicated SIMD instructions + @{ +*/ + +#if (defined (__ARM_FEATURE_DSP) && (__ARM_FEATURE_DSP == 1)) + +__STATIC_FORCEINLINE uint32_t __SADD8(uint32_t op1, uint32_t op2) +{ + uint32_t result; + + __ASM volatile ("sadd8 %0, %1, %2" : "=r" (result) : "r" (op1), "r" (op2) ); + return(result); +} + +__STATIC_FORCEINLINE uint32_t __QADD8(uint32_t op1, uint32_t op2) +{ + uint32_t result; + + __ASM ("qadd8 %0, %1, %2" : "=r" (result) : "r" (op1), "r" (op2) ); + return(result); +} + +__STATIC_FORCEINLINE uint32_t __SHADD8(uint32_t op1, uint32_t op2) +{ + uint32_t result; + + __ASM ("shadd8 %0, %1, %2" : "=r" (result) : "r" (op1), "r" (op2) ); + return(result); +} + +__STATIC_FORCEINLINE uint32_t __UADD8(uint32_t op1, uint32_t op2) +{ + uint32_t result; + + __ASM volatile ("uadd8 %0, %1, %2" : "=r" (result) : "r" (op1), "r" (op2) ); + return(result); +} + +__STATIC_FORCEINLINE uint32_t __UQADD8(uint32_t op1, uint32_t op2) +{ + uint32_t result; + + __ASM ("uqadd8 %0, %1, %2" : "=r" (result) : "r" (op1), "r" (op2) ); + return(result); +} + +__STATIC_FORCEINLINE uint32_t __UHADD8(uint32_t op1, uint32_t op2) +{ + uint32_t result; + + __ASM ("uhadd8 %0, %1, %2" : "=r" (result) : "r" (op1), "r" (op2) ); + return(result); +} + + +__STATIC_FORCEINLINE uint32_t __SSUB8(uint32_t op1, uint32_t op2) +{ + uint32_t result; + + __ASM volatile ("ssub8 %0, %1, %2" : "=r" (result) : "r" (op1), "r" (op2) ); + return(result); +} + +__STATIC_FORCEINLINE uint32_t __QSUB8(uint32_t op1, uint32_t op2) +{ + uint32_t result; + + __ASM ("qsub8 %0, %1, %2" : "=r" (result) : "r" (op1), "r" (op2) ); + return(result); +} + +__STATIC_FORCEINLINE uint32_t __SHSUB8(uint32_t op1, uint32_t op2) +{ + uint32_t result; + + __ASM ("shsub8 %0, %1, %2" : "=r" (result) : "r" (op1), "r" (op2) ); + return(result); +} + +__STATIC_FORCEINLINE uint32_t __USUB8(uint32_t op1, uint32_t op2) +{ + uint32_t result; + + __ASM volatile ("usub8 %0, %1, %2" : "=r" (result) : "r" (op1), "r" (op2) ); + return(result); +} + +__STATIC_FORCEINLINE uint32_t __UQSUB8(uint32_t op1, uint32_t op2) +{ + uint32_t result; + + __ASM ("uqsub8 %0, %1, %2" : "=r" (result) : "r" (op1), "r" (op2) ); + return(result); +} + +__STATIC_FORCEINLINE uint32_t __UHSUB8(uint32_t op1, uint32_t op2) +{ + uint32_t result; + + __ASM ("uhsub8 %0, %1, %2" : "=r" (result) : "r" (op1), "r" (op2) ); + return(result); +} + + +__STATIC_FORCEINLINE uint32_t __SADD16(uint32_t op1, uint32_t op2) +{ + uint32_t result; + + __ASM volatile ("sadd16 %0, %1, %2" : "=r" (result) : "r" (op1), "r" (op2) ); + return(result); +} + +__STATIC_FORCEINLINE uint32_t __QADD16(uint32_t op1, uint32_t op2) +{ + uint32_t result; + + __ASM ("qadd16 %0, %1, %2" : "=r" (result) : "r" (op1), "r" (op2) ); + return(result); +} + +__STATIC_FORCEINLINE uint32_t __SHADD16(uint32_t op1, uint32_t op2) +{ + uint32_t result; + + __ASM ("shadd16 %0, %1, %2" : "=r" (result) : "r" (op1), "r" (op2) ); + return(result); +} + +__STATIC_FORCEINLINE uint32_t __UADD16(uint32_t op1, uint32_t op2) +{ + uint32_t result; + + __ASM volatile ("uadd16 %0, %1, %2" : "=r" (result) : "r" (op1), "r" (op2) ); + return(result); +} + +__STATIC_FORCEINLINE uint32_t __UQADD16(uint32_t op1, uint32_t op2) +{ + uint32_t result; + + __ASM ("uqadd16 %0, %1, %2" : "=r" (result) : "r" (op1), "r" (op2) ); + return(result); +} + +__STATIC_FORCEINLINE uint32_t __UHADD16(uint32_t op1, uint32_t op2) +{ + uint32_t result; + + __ASM ("uhadd16 %0, %1, %2" : "=r" (result) : "r" (op1), "r" (op2) ); + return(result); +} + +__STATIC_FORCEINLINE uint32_t __SSUB16(uint32_t op1, uint32_t op2) +{ + uint32_t result; + + __ASM volatile ("ssub16 %0, %1, %2" : "=r" (result) : "r" (op1), "r" (op2) ); + return(result); +} + +__STATIC_FORCEINLINE uint32_t __QSUB16(uint32_t op1, uint32_t op2) +{ + uint32_t result; + + __ASM ("qsub16 %0, %1, %2" : "=r" (result) : "r" (op1), "r" (op2) ); + return(result); +} + +__STATIC_FORCEINLINE uint32_t __SHSUB16(uint32_t op1, uint32_t op2) +{ + uint32_t result; + + __ASM ("shsub16 %0, %1, %2" : "=r" (result) : "r" (op1), "r" (op2) ); + return(result); +} + +__STATIC_FORCEINLINE uint32_t __USUB16(uint32_t op1, uint32_t op2) +{ + uint32_t result; + + __ASM volatile ("usub16 %0, %1, %2" : "=r" (result) : "r" (op1), "r" (op2) ); + return(result); +} + +__STATIC_FORCEINLINE uint32_t __UQSUB16(uint32_t op1, uint32_t op2) +{ + uint32_t result; + + __ASM ("uqsub16 %0, %1, %2" : "=r" (result) : "r" (op1), "r" (op2) ); + return(result); +} + +__STATIC_FORCEINLINE uint32_t __UHSUB16(uint32_t op1, uint32_t op2) +{ + uint32_t result; + + __ASM ("uhsub16 %0, %1, %2" : "=r" (result) : "r" (op1), "r" (op2) ); + return(result); +} + +__STATIC_FORCEINLINE uint32_t __SASX(uint32_t op1, uint32_t op2) +{ + uint32_t result; + + __ASM volatile ("sasx %0, %1, %2" : "=r" (result) : "r" (op1), "r" (op2) ); + return(result); +} + +__STATIC_FORCEINLINE uint32_t __QASX(uint32_t op1, uint32_t op2) +{ + uint32_t result; + + __ASM ("qasx %0, %1, %2" : "=r" (result) : "r" (op1), "r" (op2) ); + return(result); +} + +__STATIC_FORCEINLINE uint32_t __SHASX(uint32_t op1, uint32_t op2) +{ + uint32_t result; + + __ASM ("shasx %0, %1, %2" : "=r" (result) : "r" (op1), "r" (op2) ); + return(result); +} + +__STATIC_FORCEINLINE uint32_t __UASX(uint32_t op1, uint32_t op2) +{ + uint32_t result; + + __ASM volatile ("uasx %0, %1, %2" : "=r" (result) : "r" (op1), "r" (op2) ); + return(result); +} + +__STATIC_FORCEINLINE uint32_t __UQASX(uint32_t op1, uint32_t op2) +{ + uint32_t result; + + __ASM ("uqasx %0, %1, %2" : "=r" (result) : "r" (op1), "r" (op2) ); + return(result); +} + +__STATIC_FORCEINLINE uint32_t __UHASX(uint32_t op1, uint32_t op2) +{ + uint32_t result; + + __ASM ("uhasx %0, %1, %2" : "=r" (result) : "r" (op1), "r" (op2) ); + return(result); +} + +__STATIC_FORCEINLINE uint32_t __SSAX(uint32_t op1, uint32_t op2) +{ + uint32_t result; + + __ASM volatile ("ssax %0, %1, %2" : "=r" (result) : "r" (op1), "r" (op2) ); + return(result); +} + +__STATIC_FORCEINLINE uint32_t __QSAX(uint32_t op1, uint32_t op2) +{ + uint32_t result; + + __ASM ("qsax %0, %1, %2" : "=r" (result) : "r" (op1), "r" (op2) ); + return(result); +} + +__STATIC_FORCEINLINE uint32_t __SHSAX(uint32_t op1, uint32_t op2) +{ + uint32_t result; + + __ASM ("shsax %0, %1, %2" : "=r" (result) : "r" (op1), "r" (op2) ); + return(result); +} + +__STATIC_FORCEINLINE uint32_t __USAX(uint32_t op1, uint32_t op2) +{ + uint32_t result; + + __ASM volatile ("usax %0, %1, %2" : "=r" (result) : "r" (op1), "r" (op2) ); + return(result); +} + +__STATIC_FORCEINLINE uint32_t __UQSAX(uint32_t op1, uint32_t op2) +{ + uint32_t result; + + __ASM ("uqsax %0, %1, %2" : "=r" (result) : "r" (op1), "r" (op2) ); + return(result); +} + +__STATIC_FORCEINLINE uint32_t __UHSAX(uint32_t op1, uint32_t op2) +{ + uint32_t result; + + __ASM ("uhsax %0, %1, %2" : "=r" (result) : "r" (op1), "r" (op2) ); + return(result); +} + +__STATIC_FORCEINLINE uint32_t __USAD8(uint32_t op1, uint32_t op2) +{ + uint32_t result; + + __ASM ("usad8 %0, %1, %2" : "=r" (result) : "r" (op1), "r" (op2) ); + return(result); +} + +__STATIC_FORCEINLINE uint32_t __USADA8(uint32_t op1, uint32_t op2, uint32_t op3) +{ + uint32_t result; + + __ASM ("usada8 %0, %1, %2, %3" : "=r" (result) : "r" (op1), "r" (op2), "r" (op3) ); + return(result); +} + +#define __SSAT16(ARG1, ARG2) \ +({ \ + int32_t __RES, __ARG1 = (ARG1); \ + __ASM volatile ("ssat16 %0, %1, %2" : "=r" (__RES) : "I" (ARG2), "r" (__ARG1) : "cc" ); \ + __RES; \ + }) + +#define __USAT16(ARG1, ARG2) \ +({ \ + uint32_t __RES, __ARG1 = (ARG1); \ + __ASM volatile ("usat16 %0, %1, %2" : "=r" (__RES) : "I" (ARG2), "r" (__ARG1) : "cc" ); \ + __RES; \ + }) + +__STATIC_FORCEINLINE uint32_t __UXTB16(uint32_t op1) +{ + uint32_t result; + + __ASM ("uxtb16 %0, %1" : "=r" (result) : "r" (op1)); + return(result); +} + +__STATIC_FORCEINLINE uint32_t __UXTAB16(uint32_t op1, uint32_t op2) +{ + uint32_t result; + + __ASM ("uxtab16 %0, %1, %2" : "=r" (result) : "r" (op1), "r" (op2) ); + return(result); +} + +__STATIC_FORCEINLINE uint32_t __SXTB16(uint32_t op1) +{ + uint32_t result; + + __ASM ("sxtb16 %0, %1" : "=r" (result) : "r" (op1)); + return(result); +} + +__STATIC_FORCEINLINE uint32_t __SXTB16_RORn(uint32_t op1, uint32_t rotate) +{ + uint32_t result; + + __ASM ("sxtb16 %0, %1, ROR %2" : "=r" (result) : "r" (op1), "i" (rotate) ); + + return result; +} + +__STATIC_FORCEINLINE uint32_t __SXTAB16(uint32_t op1, uint32_t op2) +{ + uint32_t result; + + __ASM ("sxtab16 %0, %1, %2" : "=r" (result) : "r" (op1), "r" (op2) ); + return(result); +} + +__STATIC_FORCEINLINE uint32_t __SMUAD (uint32_t op1, uint32_t op2) +{ + uint32_t result; + + __ASM volatile ("smuad %0, %1, %2" : "=r" (result) : "r" (op1), "r" (op2) ); + return(result); +} + +__STATIC_FORCEINLINE uint32_t __SMUADX (uint32_t op1, uint32_t op2) +{ + uint32_t result; + + __ASM volatile ("smuadx %0, %1, %2" : "=r" (result) : "r" (op1), "r" (op2) ); + return(result); +} + +__STATIC_FORCEINLINE uint32_t __SMLAD (uint32_t op1, uint32_t op2, uint32_t op3) +{ + uint32_t result; + + __ASM volatile ("smlad %0, %1, %2, %3" : "=r" (result) : "r" (op1), "r" (op2), "r" (op3) ); + return(result); +} + +__STATIC_FORCEINLINE uint32_t __SMLADX (uint32_t op1, uint32_t op2, uint32_t op3) +{ + uint32_t result; + + __ASM volatile ("smladx %0, %1, %2, %3" : "=r" (result) : "r" (op1), "r" (op2), "r" (op3) ); + return(result); +} + +__STATIC_FORCEINLINE uint64_t __SMLALD (uint32_t op1, uint32_t op2, uint64_t acc) +{ + union llreg_u{ + uint32_t w32[2]; + uint64_t w64; + } llr; + llr.w64 = acc; + +#ifndef __ARMEB__ /* Little endian */ + __ASM volatile ("smlald %0, %1, %2, %3" : "=r" (llr.w32[0]), "=r" (llr.w32[1]): "r" (op1), "r" (op2) , "0" (llr.w32[0]), "1" (llr.w32[1]) ); +#else /* Big endian */ + __ASM volatile ("smlald %0, %1, %2, %3" : "=r" (llr.w32[1]), "=r" (llr.w32[0]): "r" (op1), "r" (op2) , "0" (llr.w32[1]), "1" (llr.w32[0]) ); +#endif + + return(llr.w64); +} + +__STATIC_FORCEINLINE uint64_t __SMLALDX (uint32_t op1, uint32_t op2, uint64_t acc) +{ + union llreg_u{ + uint32_t w32[2]; + uint64_t w64; + } llr; + llr.w64 = acc; + +#ifndef __ARMEB__ /* Little endian */ + __ASM volatile ("smlaldx %0, %1, %2, %3" : "=r" (llr.w32[0]), "=r" (llr.w32[1]): "r" (op1), "r" (op2) , "0" (llr.w32[0]), "1" (llr.w32[1]) ); +#else /* Big endian */ + __ASM volatile ("smlaldx %0, %1, %2, %3" : "=r" (llr.w32[1]), "=r" (llr.w32[0]): "r" (op1), "r" (op2) , "0" (llr.w32[1]), "1" (llr.w32[0]) ); +#endif + + return(llr.w64); +} + +__STATIC_FORCEINLINE uint32_t __SMUSD (uint32_t op1, uint32_t op2) +{ + uint32_t result; + + __ASM volatile ("smusd %0, %1, %2" : "=r" (result) : "r" (op1), "r" (op2) ); + return(result); +} + +__STATIC_FORCEINLINE uint32_t __SMUSDX (uint32_t op1, uint32_t op2) +{ + uint32_t result; + + __ASM volatile ("smusdx %0, %1, %2" : "=r" (result) : "r" (op1), "r" (op2) ); + return(result); +} + +__STATIC_FORCEINLINE uint32_t __SMLSD (uint32_t op1, uint32_t op2, uint32_t op3) +{ + uint32_t result; + + __ASM volatile ("smlsd %0, %1, %2, %3" : "=r" (result) : "r" (op1), "r" (op2), "r" (op3) ); + return(result); +} + +__STATIC_FORCEINLINE uint32_t __SMLSDX (uint32_t op1, uint32_t op2, uint32_t op3) +{ + uint32_t result; + + __ASM volatile ("smlsdx %0, %1, %2, %3" : "=r" (result) : "r" (op1), "r" (op2), "r" (op3) ); + return(result); +} + +__STATIC_FORCEINLINE uint64_t __SMLSLD (uint32_t op1, uint32_t op2, uint64_t acc) +{ + union llreg_u{ + uint32_t w32[2]; + uint64_t w64; + } llr; + llr.w64 = acc; + +#ifndef __ARMEB__ /* Little endian */ + __ASM volatile ("smlsld %0, %1, %2, %3" : "=r" (llr.w32[0]), "=r" (llr.w32[1]): "r" (op1), "r" (op2) , "0" (llr.w32[0]), "1" (llr.w32[1]) ); +#else /* Big endian */ + __ASM volatile ("smlsld %0, %1, %2, %3" : "=r" (llr.w32[1]), "=r" (llr.w32[0]): "r" (op1), "r" (op2) , "0" (llr.w32[1]), "1" (llr.w32[0]) ); +#endif + + return(llr.w64); +} + +__STATIC_FORCEINLINE uint64_t __SMLSLDX (uint32_t op1, uint32_t op2, uint64_t acc) +{ + union llreg_u{ + uint32_t w32[2]; + uint64_t w64; + } llr; + llr.w64 = acc; + +#ifndef __ARMEB__ /* Little endian */ + __ASM volatile ("smlsldx %0, %1, %2, %3" : "=r" (llr.w32[0]), "=r" (llr.w32[1]): "r" (op1), "r" (op2) , "0" (llr.w32[0]), "1" (llr.w32[1]) ); +#else /* Big endian */ + __ASM volatile ("smlsldx %0, %1, %2, %3" : "=r" (llr.w32[1]), "=r" (llr.w32[0]): "r" (op1), "r" (op2) , "0" (llr.w32[1]), "1" (llr.w32[0]) ); +#endif + + return(llr.w64); +} + +__STATIC_FORCEINLINE uint32_t __SEL (uint32_t op1, uint32_t op2) +{ + uint32_t result; + + __ASM volatile ("sel %0, %1, %2" : "=r" (result) : "r" (op1), "r" (op2) ); + return(result); +} + +__STATIC_FORCEINLINE int32_t __QADD( int32_t op1, int32_t op2) +{ + int32_t result; + + __ASM volatile ("qadd %0, %1, %2" : "=r" (result) : "r" (op1), "r" (op2) ); + return(result); +} + +__STATIC_FORCEINLINE int32_t __QSUB( int32_t op1, int32_t op2) +{ + int32_t result; + + __ASM volatile ("qsub %0, %1, %2" : "=r" (result) : "r" (op1), "r" (op2) ); + return(result); +} + +#if 0 +#define __PKHBT(ARG1,ARG2,ARG3) \ +({ \ + uint32_t __RES, __ARG1 = (ARG1), __ARG2 = (ARG2); \ + __ASM ("pkhbt %0, %1, %2, lsl %3" : "=r" (__RES) : "r" (__ARG1), "r" (__ARG2), "I" (ARG3) ); \ + __RES; \ + }) + +#define __PKHTB(ARG1,ARG2,ARG3) \ +({ \ + uint32_t __RES, __ARG1 = (ARG1), __ARG2 = (ARG2); \ + if (ARG3 == 0) \ + __ASM ("pkhtb %0, %1, %2" : "=r" (__RES) : "r" (__ARG1), "r" (__ARG2) ); \ + else \ + __ASM ("pkhtb %0, %1, %2, asr %3" : "=r" (__RES) : "r" (__ARG1), "r" (__ARG2), "I" (ARG3) ); \ + __RES; \ + }) +#endif + +#define __PKHBT(ARG1,ARG2,ARG3) ( ((((uint32_t)(ARG1)) ) & 0x0000FFFFUL) | \ + ((((uint32_t)(ARG2)) << (ARG3)) & 0xFFFF0000UL) ) + +#define __PKHTB(ARG1,ARG2,ARG3) ( ((((uint32_t)(ARG1)) ) & 0xFFFF0000UL) | \ + ((((uint32_t)(ARG2)) >> (ARG3)) & 0x0000FFFFUL) ) + +__STATIC_FORCEINLINE int32_t __SMMLA (int32_t op1, int32_t op2, int32_t op3) +{ + int32_t result; + + __ASM ("smmla %0, %1, %2, %3" : "=r" (result): "r" (op1), "r" (op2), "r" (op3) ); + return(result); +} + +#endif /* (__ARM_FEATURE_DSP == 1) */ +/*@} end of group CMSIS_SIMD_intrinsics */ + +/* + * Include common core functions to access Coprocessor 15 registers + */ + +#define __get_CP(cp, op1, Rt, CRn, CRm, op2) __ASM volatile("MRC p" # cp ", " # op1 ", %0, c" # CRn ", c" # CRm ", " # op2 : "=r" (Rt) : : "memory" ) +#define __set_CP(cp, op1, Rt, CRn, CRm, op2) __ASM volatile("MCR p" # cp ", " # op1 ", %0, c" # CRn ", c" # CRm ", " # op2 : : "r" (Rt) : "memory" ) +#define __get_CP64(cp, op1, Rt, CRm) __ASM volatile("MRRC p" # cp ", " # op1 ", %Q0, %R0, c" # CRm : "=r" (Rt) : : "memory" ) +#define __set_CP64(cp, op1, Rt, CRm) __ASM volatile("MCRR p" # cp ", " # op1 ", %Q0, %R0, c" # CRm : : "r" (Rt) : "memory" ) + +#include "cmsis_cp15.h" + +#pragma GCC diagnostic pop + +#endif /* __CMSIS_GCC_H */ diff --git a/bsp/renesas/rzn2l_rsk/rzn/arm/CMSIS_5/CMSIS/Core_R/Include/cmsis_iccarm.h b/bsp/renesas/rzn2l_rsk/rzn/arm/CMSIS_5/CMSIS/Core_R/Include/cmsis_iccarm.h new file mode 100644 index 0000000000..a6882cfe80 --- /dev/null +++ b/bsp/renesas/rzn2l_rsk/rzn/arm/CMSIS_5/CMSIS/Core_R/Include/cmsis_iccarm.h @@ -0,0 +1,958 @@ +/**************************************************************************//** + * @file cmsis_iccarm.h + * @brief CMSIS compiler ICCARM (IAR Compiler for Arm) header file + * @date 02. February 2024 + ******************************************************************************/ +// ------------------------------------------------------------------------------ +// +// Copyright [2020-2024] Renesas Electronics Corporation and/or its affiliates. All Rights Reserved. +// +// This file is based on the "\CMSIS\Core\Include\cmsis_iccarm.h" +// +// Changes: +// Renesas Electronics Corporation on 2021-08-31 +// - Changed to be related to Cortex-R52 by +// Renesas Electronics Corporation on 2024-02-02 +// - Added functions related to FPEXC registers. +// - Moved the process of defining compiler macros for CPU architectures to renesas.h. +// +//------------------------------------------------------------------------------ + +//------------------------------------------------------------------------------ +// +// Copyright (c) 2017-2019 IAR Systems +// Copyright (c) 2017-2019 Arm Limited. All rights reserved. +// +// SPDX-License-Identifier: Apache-2.0 +// +// Licensed under the Apache License, Version 2.0 (the "License") +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. +// +//------------------------------------------------------------------------------ + +#ifndef __CMSIS_ICCARM_H__ +#define __CMSIS_ICCARM_H__ + +#ifndef __ICCARM__ + #error This file should only be compiled by ICCARM +#endif + +#pragma system_include + +#define __IAR_FT _Pragma("inline=forced") __intrinsic + +#if (__VER__ >= 8000000) + #define __ICCARM_V8 1 +#else + #define __ICCARM_V8 0 +#endif + +#ifndef __ALIGNED + #if __ICCARM_V8 + #define __ALIGNED(x) __attribute__((aligned(x))) + #elif (__VER__ >= 7080000) + /* Needs IAR language extensions */ + #define __ALIGNED(x) __attribute__((aligned(x))) + #else + #warning No compiler specific solution for __ALIGNED.__ALIGNED is ignored. + #define __ALIGNED(x) + #endif +#endif + +#if defined(__ARM_ARCH_6M__) && __ARM_ARCH_6M__==1 + #define __IAR_M0_FAMILY 1 +#elif defined(__ARM_ARCH_8M_BASE__) && __ARM_ARCH_8M_BASE__==1 + #define __IAR_M0_FAMILY 1 +#else + #define __IAR_M0_FAMILY 0 +#endif + + +#ifndef __ASM + #define __ASM __asm +#endif + +#ifndef __COMPILER_BARRIER + #define __COMPILER_BARRIER() __ASM volatile("":::"memory") +#endif + +#ifndef __INLINE + #define __INLINE inline +#endif + +#ifndef __NO_RETURN + #if __ICCARM_V8 + #define __NO_RETURN __attribute__((__noreturn__)) + #else + #define __NO_RETURN _Pragma("object_attribute=__noreturn") + #endif +#endif + +#ifndef __PACKED + #if __ICCARM_V8 + #define __PACKED __attribute__((packed, aligned(1))) + #else + /* Needs IAR language extensions */ + #define __PACKED __packed + #endif +#endif + +#ifndef __PACKED_STRUCT + #if __ICCARM_V8 + #define __PACKED_STRUCT struct __attribute__((packed, aligned(1))) + #else + /* Needs IAR language extensions */ + #define __PACKED_STRUCT __packed struct + #endif +#endif + +#ifndef __PACKED_UNION + #if __ICCARM_V8 + #define __PACKED_UNION union __attribute__((packed, aligned(1))) + #else + /* Needs IAR language extensions */ + #define __PACKED_UNION __packed union + #endif +#endif + +#ifndef __RESTRICT + #if __ICCARM_V8 + #define __RESTRICT __restrict + #else + /* Needs IAR language extensions */ + #define __RESTRICT restrict + #endif +#endif + +#ifndef __STATIC_INLINE + #define __STATIC_INLINE static inline +#endif + +#ifndef __FORCEINLINE + #define __FORCEINLINE _Pragma("inline=forced") +#endif + +#ifndef __STATIC_FORCEINLINE + #define __STATIC_FORCEINLINE __FORCEINLINE __STATIC_INLINE +#endif + +#ifndef __UNALIGNED_UINT16_READ +#pragma language=save +#pragma language=extended +__IAR_FT uint16_t __iar_uint16_read(void const *ptr) +{ + return *(__packed uint16_t*)(ptr); +} +#pragma language=restore +#define __UNALIGNED_UINT16_READ(PTR) __iar_uint16_read(PTR) +#endif + + +#ifndef __UNALIGNED_UINT16_WRITE +#pragma language=save +#pragma language=extended +__IAR_FT void __iar_uint16_write(void const *ptr, uint16_t val) +{ + *(__packed uint16_t*)(ptr) = val;; +} +#pragma language=restore +#define __UNALIGNED_UINT16_WRITE(PTR,VAL) __iar_uint16_write(PTR,VAL) +#endif + +#ifndef __UNALIGNED_UINT32_READ +#pragma language=save +#pragma language=extended +__IAR_FT uint32_t __iar_uint32_read(void const *ptr) +{ + return *(__packed uint32_t*)(ptr); +} +#pragma language=restore +#define __UNALIGNED_UINT32_READ(PTR) __iar_uint32_read(PTR) +#endif + +#ifndef __UNALIGNED_UINT32_WRITE +#pragma language=save +#pragma language=extended +__IAR_FT void __iar_uint32_write(void const *ptr, uint32_t val) +{ + *(__packed uint32_t*)(ptr) = val;; +} +#pragma language=restore +#define __UNALIGNED_UINT32_WRITE(PTR,VAL) __iar_uint32_write(PTR,VAL) +#endif + +#ifndef __UNALIGNED_UINT32 /* deprecated */ +#pragma language=save +#pragma language=extended +__packed struct __iar_u32 { uint32_t v; }; +#pragma language=restore +#define __UNALIGNED_UINT32(PTR) (((struct __iar_u32 *)(PTR))->v) +#endif + +#ifndef __USED + #if __ICCARM_V8 + #define __USED __attribute__((used)) + #else + #define __USED _Pragma("__root") + #endif +#endif + +#ifndef __WEAK + #if __ICCARM_V8 + #define __WEAK __attribute__((weak)) + #else + #define __WEAK _Pragma("__weak") + #endif +#endif + +#ifndef __PROGRAM_START +#define __PROGRAM_START __iar_program_start +#endif + +#ifndef __INITIAL_SP +#define __INITIAL_SP CSTACK$$Limit +#endif + +#ifndef __STACK_LIMIT +#define __STACK_LIMIT CSTACK$$Base +#endif + +#ifndef __VECTOR_TABLE +#define __VECTOR_TABLE __vector_table +#endif + +#ifndef __VECTOR_TABLE_ATTRIBUTE +#define __VECTOR_TABLE_ATTRIBUTE @".intvec" +#endif + +#ifndef __ICCARM_INTRINSICS_VERSION__ + #define __ICCARM_INTRINSICS_VERSION__ 0 +#endif + +#if __ICCARM_INTRINSICS_VERSION__ == 2 + + #if defined(__CLZ) + #undef __CLZ + #endif + #if defined(__REVSH) + #undef __REVSH + #endif + #if defined(__RBIT) + #undef __RBIT + #endif + #if defined(__SSAT) + #undef __SSAT + #endif + #if defined(__USAT) + #undef __USAT + #endif + + #include "iccarm_builtin.h" + + #define __disable_fault_irq __iar_builtin_disable_fiq + #define __disable_irq __iar_builtin_disable_interrupt + #define __enable_fault_irq __iar_builtin_enable_fiq + #define __enable_irq __iar_builtin_enable_interrupt + #define __arm_rsr __iar_builtin_rsr + #define __arm_wsr __iar_builtin_wsr + + + #define __get_APSR() (__arm_rsr("APSR")) + #define __get_BASEPRI() (__arm_rsr("BASEPRI")) + #define __get_CONTROL() (__arm_rsr("CONTROL")) + #define __get_FAULTMASK() (__arm_rsr("FAULTMASK")) + + #if ((defined (__FPU_PRESENT) && (__FPU_PRESENT == 1U)) && \ + (defined (__FPU_USED ) && (__FPU_USED == 1U)) ) + #define __get_FPSCR() (__arm_rsr("FPSCR")) + #define __set_FPSCR(VALUE) (__arm_wsr("FPSCR", (VALUE))) + + #define __get_FPEXC() (__arm_rsr("FPEXC")) + #define __set_FPEXC(VALUE) (__arm_wsr("FPEXC", (VALUE))) + #else + #define __get_FPSCR() (0) + #define __set_FPSCR(VALUE) ((void) VALUE) + + #define __get_FPEXC() (0) + #define __set_FPEXC(VALUE) ((void) VALUE) + #endif + + #define __get_IPSR() (__arm_rsr("IPSR")) + #define __get_MSP() (__arm_rsr("MSP")) + #if (!(defined (__ARM_ARCH_8M_MAIN__ ) && (__ARM_ARCH_8M_MAIN__ == 1)) && \ + (!defined (__ARM_FEATURE_CMSE) || (__ARM_FEATURE_CMSE < 3))) + // without main extensions, the non-secure MSPLIM is RAZ/WI + #define __get_MSPLIM() (0U) + #else + #define __get_MSPLIM() (__arm_rsr("MSPLIM")) + #endif + #define __get_PRIMASK() (__arm_rsr("PRIMASK")) + #define __get_PSP() (__arm_rsr("PSP")) + + #if (!(defined (__ARM_ARCH_8M_MAIN__ ) && (__ARM_ARCH_8M_MAIN__ == 1)) && \ + (!defined (__ARM_FEATURE_CMSE) || (__ARM_FEATURE_CMSE < 3))) + // without main extensions, the non-secure PSPLIM is RAZ/WI + #define __get_PSPLIM() (0U) + #else + #define __get_PSPLIM() (__arm_rsr("PSPLIM")) + #endif + + #define __get_xPSR() (__arm_rsr("xPSR")) + + #define __set_BASEPRI(VALUE) (__arm_wsr("BASEPRI", (VALUE))) + #define __set_BASEPRI_MAX(VALUE) (__arm_wsr("BASEPRI_MAX", (VALUE))) + #define __set_CONTROL(VALUE) (__arm_wsr("CONTROL", (VALUE))) + #define __set_FAULTMASK(VALUE) (__arm_wsr("FAULTMASK", (VALUE))) + #define __set_MSP(VALUE) (__arm_wsr("MSP", (VALUE))) + + #if (!(defined (__ARM_ARCH_8M_MAIN__ ) && (__ARM_ARCH_8M_MAIN__ == 1)) && \ + (!defined (__ARM_FEATURE_CMSE) || (__ARM_FEATURE_CMSE < 3))) + // without main extensions, the non-secure MSPLIM is RAZ/WI + #define __set_MSPLIM(VALUE) ((void)(VALUE)) + #else + #define __set_MSPLIM(VALUE) (__arm_wsr("MSPLIM", (VALUE))) + #endif + #define __set_PRIMASK(VALUE) (__arm_wsr("PRIMASK", (VALUE))) + #define __set_PSP(VALUE) (__arm_wsr("PSP", (VALUE))) + #if (!(defined (__ARM_ARCH_8M_MAIN__ ) && (__ARM_ARCH_8M_MAIN__ == 1)) && \ + (!defined (__ARM_FEATURE_CMSE) || (__ARM_FEATURE_CMSE < 3))) + // without main extensions, the non-secure PSPLIM is RAZ/WI + #define __set_PSPLIM(VALUE) ((void)(VALUE)) + #else + #define __set_PSPLIM(VALUE) (__arm_wsr("PSPLIM", (VALUE))) + #endif + + #define __TZ_get_CONTROL_NS() (__arm_rsr("CONTROL_NS")) + #define __TZ_set_CONTROL_NS(VALUE) (__arm_wsr("CONTROL_NS", (VALUE))) + #define __TZ_get_PSP_NS() (__arm_rsr("PSP_NS")) + #define __TZ_set_PSP_NS(VALUE) (__arm_wsr("PSP_NS", (VALUE))) + #define __TZ_get_MSP_NS() (__arm_rsr("MSP_NS")) + #define __TZ_set_MSP_NS(VALUE) (__arm_wsr("MSP_NS", (VALUE))) + #define __TZ_get_SP_NS() (__arm_rsr("SP_NS")) + #define __TZ_set_SP_NS(VALUE) (__arm_wsr("SP_NS", (VALUE))) + #define __TZ_get_PRIMASK_NS() (__arm_rsr("PRIMASK_NS")) + #define __TZ_set_PRIMASK_NS(VALUE) (__arm_wsr("PRIMASK_NS", (VALUE))) + #define __TZ_get_BASEPRI_NS() (__arm_rsr("BASEPRI_NS")) + #define __TZ_set_BASEPRI_NS(VALUE) (__arm_wsr("BASEPRI_NS", (VALUE))) + #define __TZ_get_FAULTMASK_NS() (__arm_rsr("FAULTMASK_NS")) + #define __TZ_set_FAULTMASK_NS(VALUE)(__arm_wsr("FAULTMASK_NS", (VALUE))) + + #if (!(defined (__ARM_ARCH_8M_MAIN__ ) && (__ARM_ARCH_8M_MAIN__ == 1)) && \ + (!defined (__ARM_FEATURE_CMSE) || (__ARM_FEATURE_CMSE < 3))) + // without main extensions, the non-secure PSPLIM is RAZ/WI + #define __TZ_get_PSPLIM_NS() (0U) + #define __TZ_set_PSPLIM_NS(VALUE) ((void)(VALUE)) + #else + #define __TZ_get_PSPLIM_NS() (__arm_rsr("PSPLIM_NS")) + #define __TZ_set_PSPLIM_NS(VALUE) (__arm_wsr("PSPLIM_NS", (VALUE))) + #endif + + #define __TZ_get_MSPLIM_NS() (__arm_rsr("MSPLIM_NS")) + #define __TZ_set_MSPLIM_NS(VALUE) (__arm_wsr("MSPLIM_NS", (VALUE))) + + #define __get_CP(cp, op1, RT, CRn, CRm, op2) \ + ((RT) = __arm_rsr("p" # cp ":" # op1 ":c" # CRn ":c" # CRm ":" # op2)) + + #define __set_CP(cp, op1, RT, CRn, CRm, op2) \ + (__arm_wsr("p" # cp ":" # op1 ":c" # CRn ":c" # CRm ":" # op2, (RT))) + + #define __get_CP64(cp, op1, Rt, CRm) \ + __ASM volatile("MRRC p" # cp ", " # op1 ", %Q0, %R0, c" # CRm : "=r" (Rt) : : "memory" ) + + #define __set_CP64(cp, op1, Rt, CRm) \ + __ASM volatile("MCRR p" # cp ", " # op1 ", %Q0, %R0, c" # CRm : : "r" (Rt) : "memory" ) + + #include "cmsis_cp15.h" + + #define __NOP __iar_builtin_no_operation + + #define __CLZ __iar_builtin_CLZ + #define __CLREX __iar_builtin_CLREX + + #define __DMB __iar_builtin_DMB + #define __DSB __iar_builtin_DSB + #define __ISB __iar_builtin_ISB + + #define __LDREXB __iar_builtin_LDREXB + #define __LDREXH __iar_builtin_LDREXH + #define __LDREXW __iar_builtin_LDREX + + #define __RBIT __iar_builtin_RBIT + #define __REV __iar_builtin_REV + #define __REV16 __iar_builtin_REV16 + + __IAR_FT int16_t __REVSH(int16_t val) + { + return (int16_t) __iar_builtin_REVSH(val); + } + + #define __ROR __iar_builtin_ROR + #define __RRX __iar_builtin_RRX + + #define __SEV __iar_builtin_SEV + + #if !__IAR_M0_FAMILY + #define __SSAT __iar_builtin_SSAT + #endif + + #define __STREXB __iar_builtin_STREXB + #define __STREXH __iar_builtin_STREXH + #define __STREXW __iar_builtin_STREX + + #if !__IAR_M0_FAMILY + #define __USAT __iar_builtin_USAT + #endif + + #define __WFE __iar_builtin_WFE + #define __WFI __iar_builtin_WFI + + #if __ARM_MEDIA__ + #define __SADD8 __iar_builtin_SADD8 + #define __QADD8 __iar_builtin_QADD8 + #define __SHADD8 __iar_builtin_SHADD8 + #define __UADD8 __iar_builtin_UADD8 + #define __UQADD8 __iar_builtin_UQADD8 + #define __UHADD8 __iar_builtin_UHADD8 + #define __SSUB8 __iar_builtin_SSUB8 + #define __QSUB8 __iar_builtin_QSUB8 + #define __SHSUB8 __iar_builtin_SHSUB8 + #define __USUB8 __iar_builtin_USUB8 + #define __UQSUB8 __iar_builtin_UQSUB8 + #define __UHSUB8 __iar_builtin_UHSUB8 + #define __SADD16 __iar_builtin_SADD16 + #define __QADD16 __iar_builtin_QADD16 + #define __SHADD16 __iar_builtin_SHADD16 + #define __UADD16 __iar_builtin_UADD16 + #define __UQADD16 __iar_builtin_UQADD16 + #define __UHADD16 __iar_builtin_UHADD16 + #define __SSUB16 __iar_builtin_SSUB16 + #define __QSUB16 __iar_builtin_QSUB16 + #define __SHSUB16 __iar_builtin_SHSUB16 + #define __USUB16 __iar_builtin_USUB16 + #define __UQSUB16 __iar_builtin_UQSUB16 + #define __UHSUB16 __iar_builtin_UHSUB16 + #define __SASX __iar_builtin_SASX + #define __QASX __iar_builtin_QASX + #define __SHASX __iar_builtin_SHASX + #define __UASX __iar_builtin_UASX + #define __UQASX __iar_builtin_UQASX + #define __UHASX __iar_builtin_UHASX + #define __SSAX __iar_builtin_SSAX + #define __QSAX __iar_builtin_QSAX + #define __SHSAX __iar_builtin_SHSAX + #define __USAX __iar_builtin_USAX + #define __UQSAX __iar_builtin_UQSAX + #define __UHSAX __iar_builtin_UHSAX + #define __USAD8 __iar_builtin_USAD8 + #define __USADA8 __iar_builtin_USADA8 + #define __SSAT16 __iar_builtin_SSAT16 + #define __USAT16 __iar_builtin_USAT16 + #define __UXTB16 __iar_builtin_UXTB16 + #define __UXTAB16 __iar_builtin_UXTAB16 + #define __SXTB16 __iar_builtin_SXTB16 + #define __SXTAB16 __iar_builtin_SXTAB16 + #define __SMUAD __iar_builtin_SMUAD + #define __SMUADX __iar_builtin_SMUADX + #define __SMMLA __iar_builtin_SMMLA + #define __SMLAD __iar_builtin_SMLAD + #define __SMLADX __iar_builtin_SMLADX + #define __SMLALD __iar_builtin_SMLALD + #define __SMLALDX __iar_builtin_SMLALDX + #define __SMUSD __iar_builtin_SMUSD + #define __SMUSDX __iar_builtin_SMUSDX + #define __SMLSD __iar_builtin_SMLSD + #define __SMLSDX __iar_builtin_SMLSDX + #define __SMLSLD __iar_builtin_SMLSLD + #define __SMLSLDX __iar_builtin_SMLSLDX + #define __SEL __iar_builtin_SEL + #define __QADD __iar_builtin_QADD + #define __QSUB __iar_builtin_QSUB + #define __PKHBT __iar_builtin_PKHBT + #define __PKHTB __iar_builtin_PKHTB + #endif + +#else /* __ICCARM_INTRINSICS_VERSION__ == 2 */ + + #if __IAR_M0_FAMILY + /* Avoid clash between intrinsics.h and arm_math.h when compiling for Cortex-M0. */ + #define __CLZ __cmsis_iar_clz_not_active + #define __SSAT __cmsis_iar_ssat_not_active + #define __USAT __cmsis_iar_usat_not_active + #define __RBIT __cmsis_iar_rbit_not_active + #define __get_APSR __cmsis_iar_get_APSR_not_active + #endif + + + #if (!((defined (__FPU_PRESENT) && (__FPU_PRESENT == 1U)) && \ + (defined (__FPU_USED ) && (__FPU_USED == 1U)) )) + #define __get_FPSCR __cmsis_iar_get_FPSR_not_active + #define __set_FPSCR __cmsis_iar_set_FPSR_not_active + #endif + + #ifdef __INTRINSICS_INCLUDED + #error intrinsics.h is already included previously! + #endif + + #include + + #if __IAR_M0_FAMILY + /* Avoid clash between intrinsics.h and arm_math.h when compiling for Cortex-M0. */ + #undef __CLZ + #undef __SSAT + #undef __USAT + #undef __RBIT + #undef __get_APSR + + __STATIC_INLINE uint8_t __CLZ(uint32_t data) + { + if (data == 0U) { return 32U; } + + uint32_t count = 0U; + uint32_t mask = 0x80000000U; + + while ((data & mask) == 0U) + { + count += 1U; + mask = mask >> 1U; + } + return count; + } + + __STATIC_INLINE uint32_t __RBIT(uint32_t v) + { + uint8_t sc = 31U; + uint32_t r = v; + for (v >>= 1U; v; v >>= 1U) + { + r <<= 1U; + r |= v & 1U; + sc--; + } + return (r << sc); + } + + __STATIC_INLINE uint32_t __get_APSR(void) + { + uint32_t res; + __asm("MRS %0,APSR" : "=r" (res)); + return res; + } + + #endif + + #if (!((defined (__FPU_PRESENT) && (__FPU_PRESENT == 1U)) && \ + (defined (__FPU_USED ) && (__FPU_USED == 1U)) )) + #undef __get_FPSCR + #undef __set_FPSCR + #define __get_FPSCR() (0) + #define __set_FPSCR(VALUE) ((void)VALUE) + + #define __get_FPEXC() (0) + #define __set_FPEXC(VALUE) ((void) VALUE) + #endif + + #pragma diag_suppress=Pe940 + #pragma diag_suppress=Pe177 + + #define __enable_irq __enable_interrupt + #define __disable_irq __disable_interrupt + #define __NOP __no_operation + + #define __get_xPSR __get_PSR + + #if (!defined(__ARM_ARCH_6M__) || __ARM_ARCH_6M__==0) + + __IAR_FT uint32_t __LDREXW(uint32_t volatile *ptr) + { + return __LDREX((unsigned long *)ptr); + } + + __IAR_FT uint32_t __STREXW(uint32_t value, uint32_t volatile *ptr) + { + return __STREX(value, (unsigned long *)ptr); + } + #endif + + + /* __CORTEX_M is defined in core_cm0.h, core_cm3.h and core_cm4.h. */ + #if (__CORTEX_M >= 0x03) + + __IAR_FT uint32_t __RRX(uint32_t value) + { + uint32_t result; + __ASM volatile("RRX %0, %1" : "=r"(result) : "r" (value)); + return(result); + } + + __IAR_FT void __set_BASEPRI_MAX(uint32_t value) + { + __asm volatile("MSR BASEPRI_MAX,%0"::"r" (value)); + } + + + #define __enable_fault_irq __enable_fiq + #define __disable_fault_irq __disable_fiq + + + #endif /* (__CORTEX_M >= 0x03) */ + + __IAR_FT uint32_t __ROR(uint32_t op1, uint32_t op2) + { + return (op1 >> op2) | (op1 << ((sizeof(op1)*8)-op2)); + } + + #if ((defined (__ARM_ARCH_8M_MAIN__ ) && (__ARM_ARCH_8M_MAIN__ == 1)) || \ + (defined (__ARM_ARCH_8M_BASE__ ) && (__ARM_ARCH_8M_BASE__ == 1)) ) + + __IAR_FT uint32_t __get_MSPLIM(void) + { + uint32_t res; + #if (!(defined (__ARM_ARCH_8M_MAIN__ ) && (__ARM_ARCH_8M_MAIN__ == 1)) && \ + (!defined (__ARM_FEATURE_CMSE ) || (__ARM_FEATURE_CMSE < 3))) + // without main extensions, the non-secure MSPLIM is RAZ/WI + res = 0U; + #else + __asm volatile("MRS %0,MSPLIM" : "=r" (res)); + #endif + return res; + } + + __IAR_FT void __set_MSPLIM(uint32_t value) + { + #if (!(defined (__ARM_ARCH_8M_MAIN__ ) && (__ARM_ARCH_8M_MAIN__ == 1)) && \ + (!defined (__ARM_FEATURE_CMSE ) || (__ARM_FEATURE_CMSE < 3))) + // without main extensions, the non-secure MSPLIM is RAZ/WI + (void)value; + #else + __asm volatile("MSR MSPLIM,%0" :: "r" (value)); + #endif + } + + __IAR_FT uint32_t __get_PSPLIM(void) + { + uint32_t res; + #if (!(defined (__ARM_ARCH_8M_MAIN__ ) && (__ARM_ARCH_8M_MAIN__ == 1)) && \ + (!defined (__ARM_FEATURE_CMSE ) || (__ARM_FEATURE_CMSE < 3))) + // without main extensions, the non-secure PSPLIM is RAZ/WI + res = 0U; + #else + __asm volatile("MRS %0,PSPLIM" : "=r" (res)); + #endif + return res; + } + + __IAR_FT void __set_PSPLIM(uint32_t value) + { + #if (!(defined (__ARM_ARCH_8M_MAIN__ ) && (__ARM_ARCH_8M_MAIN__ == 1)) && \ + (!defined (__ARM_FEATURE_CMSE ) || (__ARM_FEATURE_CMSE < 3))) + // without main extensions, the non-secure PSPLIM is RAZ/WI + (void)value; + #else + __asm volatile("MSR PSPLIM,%0" :: "r" (value)); + #endif + } + + __IAR_FT uint32_t __TZ_get_CONTROL_NS(void) + { + uint32_t res; + __asm volatile("MRS %0,CONTROL_NS" : "=r" (res)); + return res; + } + + __IAR_FT void __TZ_set_CONTROL_NS(uint32_t value) + { + __asm volatile("MSR CONTROL_NS,%0" :: "r" (value)); + } + + __IAR_FT uint32_t __TZ_get_PSP_NS(void) + { + uint32_t res; + __asm volatile("MRS %0,PSP_NS" : "=r" (res)); + return res; + } + + __IAR_FT void __TZ_set_PSP_NS(uint32_t value) + { + __asm volatile("MSR PSP_NS,%0" :: "r" (value)); + } + + __IAR_FT uint32_t __TZ_get_MSP_NS(void) + { + uint32_t res; + __asm volatile("MRS %0,MSP_NS" : "=r" (res)); + return res; + } + + __IAR_FT void __TZ_set_MSP_NS(uint32_t value) + { + __asm volatile("MSR MSP_NS,%0" :: "r" (value)); + } + + __IAR_FT uint32_t __TZ_get_SP_NS(void) + { + uint32_t res; + __asm volatile("MRS %0,SP_NS" : "=r" (res)); + return res; + } + __IAR_FT void __TZ_set_SP_NS(uint32_t value) + { + __asm volatile("MSR SP_NS,%0" :: "r" (value)); + } + + __IAR_FT uint32_t __TZ_get_PRIMASK_NS(void) + { + uint32_t res; + __asm volatile("MRS %0,PRIMASK_NS" : "=r" (res)); + return res; + } + + __IAR_FT void __TZ_set_PRIMASK_NS(uint32_t value) + { + __asm volatile("MSR PRIMASK_NS,%0" :: "r" (value)); + } + + __IAR_FT uint32_t __TZ_get_BASEPRI_NS(void) + { + uint32_t res; + __asm volatile("MRS %0,BASEPRI_NS" : "=r" (res)); + return res; + } + + __IAR_FT void __TZ_set_BASEPRI_NS(uint32_t value) + { + __asm volatile("MSR BASEPRI_NS,%0" :: "r" (value)); + } + + __IAR_FT uint32_t __TZ_get_FAULTMASK_NS(void) + { + uint32_t res; + __asm volatile("MRS %0,FAULTMASK_NS" : "=r" (res)); + return res; + } + + __IAR_FT void __TZ_set_FAULTMASK_NS(uint32_t value) + { + __asm volatile("MSR FAULTMASK_NS,%0" :: "r" (value)); + } + + __IAR_FT uint32_t __TZ_get_PSPLIM_NS(void) + { + uint32_t res; + #if (!(defined (__ARM_ARCH_8M_MAIN__ ) && (__ARM_ARCH_8M_MAIN__ == 1)) && \ + (!defined (__ARM_FEATURE_CMSE ) || (__ARM_FEATURE_CMSE < 3))) + // without main extensions, the non-secure PSPLIM is RAZ/WI + res = 0U; + #else + __asm volatile("MRS %0,PSPLIM_NS" : "=r" (res)); + #endif + return res; + } + + __IAR_FT void __TZ_set_PSPLIM_NS(uint32_t value) + { + #if (!(defined (__ARM_ARCH_8M_MAIN__ ) && (__ARM_ARCH_8M_MAIN__ == 1)) && \ + (!defined (__ARM_FEATURE_CMSE ) || (__ARM_FEATURE_CMSE < 3))) + // without main extensions, the non-secure PSPLIM is RAZ/WI + (void)value; + #else + __asm volatile("MSR PSPLIM_NS,%0" :: "r" (value)); + #endif + } + + __IAR_FT uint32_t __TZ_get_MSPLIM_NS(void) + { + uint32_t res; + __asm volatile("MRS %0,MSPLIM_NS" : "=r" (res)); + return res; + } + + __IAR_FT void __TZ_set_MSPLIM_NS(uint32_t value) + { + __asm volatile("MSR MSPLIM_NS,%0" :: "r" (value)); + } + + #endif /* __ARM_ARCH_8M_MAIN__ or __ARM_ARCH_8M_BASE__ */ + +#endif /* __ICCARM_INTRINSICS_VERSION__ == 2 */ + +#define __BKPT(value) __asm volatile ("BKPT %0" : : "i"(value)) + +#if __IAR_M0_FAMILY + __STATIC_INLINE int32_t __SSAT(int32_t val, uint32_t sat) + { + if ((sat >= 1U) && (sat <= 32U)) + { + const int32_t max = (int32_t)((1U << (sat - 1U)) - 1U); + const int32_t min = -1 - max ; + if (val > max) + { + return max; + } + else if (val < min) + { + return min; + } + } + return val; + } + + __STATIC_INLINE uint32_t __USAT(int32_t val, uint32_t sat) + { + if (sat <= 31U) + { + const uint32_t max = ((1U << sat) - 1U); + if (val > (int32_t)max) + { + return max; + } + else if (val < 0) + { + return 0U; + } + } + return (uint32_t)val; + } +#endif + +#if (__CORTEX_M >= 0x03) /* __CORTEX_M is defined in core_cm0.h, core_cm3.h and core_cm4.h. */ + + __IAR_FT uint8_t __LDRBT(volatile uint8_t *addr) + { + uint32_t res; + __ASM volatile ("LDRBT %0, [%1]" : "=r" (res) : "r" (addr) : "memory"); + return ((uint8_t)res); + } + + __IAR_FT uint16_t __LDRHT(volatile uint16_t *addr) + { + uint32_t res; + __ASM volatile ("LDRHT %0, [%1]" : "=r" (res) : "r" (addr) : "memory"); + return ((uint16_t)res); + } + + __IAR_FT uint32_t __LDRT(volatile uint32_t *addr) + { + uint32_t res; + __ASM volatile ("LDRT %0, [%1]" : "=r" (res) : "r" (addr) : "memory"); + return res; + } + + __IAR_FT void __STRBT(uint8_t value, volatile uint8_t *addr) + { + __ASM volatile ("STRBT %1, [%0]" : : "r" (addr), "r" ((uint32_t)value) : "memory"); + } + + __IAR_FT void __STRHT(uint16_t value, volatile uint16_t *addr) + { + __ASM volatile ("STRHT %1, [%0]" : : "r" (addr), "r" ((uint32_t)value) : "memory"); + } + + __IAR_FT void __STRT(uint32_t value, volatile uint32_t *addr) + { + __ASM volatile ("STRT %1, [%0]" : : "r" (addr), "r" (value) : "memory"); + } + +#endif /* (__CORTEX_M >= 0x03) */ + +#if ((defined (__ARM_ARCH_8M_MAIN__ ) && (__ARM_ARCH_8M_MAIN__ == 1)) || \ + (defined (__ARM_ARCH_8M_BASE__ ) && (__ARM_ARCH_8M_BASE__ == 1)) ) + + + __IAR_FT uint8_t __LDAB(volatile uint8_t *ptr) + { + uint32_t res; + __ASM volatile ("LDAB %0, [%1]" : "=r" (res) : "r" (ptr) : "memory"); + return ((uint8_t)res); + } + + __IAR_FT uint16_t __LDAH(volatile uint16_t *ptr) + { + uint32_t res; + __ASM volatile ("LDAH %0, [%1]" : "=r" (res) : "r" (ptr) : "memory"); + return ((uint16_t)res); + } + + __IAR_FT uint32_t __LDA(volatile uint32_t *ptr) + { + uint32_t res; + __ASM volatile ("LDA %0, [%1]" : "=r" (res) : "r" (ptr) : "memory"); + return res; + } + + __IAR_FT void __STLB(uint8_t value, volatile uint8_t *ptr) + { + __ASM volatile ("STLB %1, [%0]" :: "r" (ptr), "r" (value) : "memory"); + } + + __IAR_FT void __STLH(uint16_t value, volatile uint16_t *ptr) + { + __ASM volatile ("STLH %1, [%0]" :: "r" (ptr), "r" (value) : "memory"); + } + + __IAR_FT void __STL(uint32_t value, volatile uint32_t *ptr) + { + __ASM volatile ("STL %1, [%0]" :: "r" (ptr), "r" (value) : "memory"); + } + + __IAR_FT uint8_t __LDAEXB(volatile uint8_t *ptr) + { + uint32_t res; + __ASM volatile ("LDAEXB %0, [%1]" : "=r" (res) : "r" (ptr) : "memory"); + return ((uint8_t)res); + } + + __IAR_FT uint16_t __LDAEXH(volatile uint16_t *ptr) + { + uint32_t res; + __ASM volatile ("LDAEXH %0, [%1]" : "=r" (res) : "r" (ptr) : "memory"); + return ((uint16_t)res); + } + + __IAR_FT uint32_t __LDAEX(volatile uint32_t *ptr) + { + uint32_t res; + __ASM volatile ("LDAEX %0, [%1]" : "=r" (res) : "r" (ptr) : "memory"); + return res; + } + + __IAR_FT uint32_t __STLEXB(uint8_t value, volatile uint8_t *ptr) + { + uint32_t res; + __ASM volatile ("STLEXB %0, %2, [%1]" : "=r" (res) : "r" (ptr), "r" (value) : "memory"); + return res; + } + + __IAR_FT uint32_t __STLEXH(uint16_t value, volatile uint16_t *ptr) + { + uint32_t res; + __ASM volatile ("STLEXH %0, %2, [%1]" : "=r" (res) : "r" (ptr), "r" (value) : "memory"); + return res; + } + + __IAR_FT uint32_t __STLEX(uint32_t value, volatile uint32_t *ptr) + { + uint32_t res; + __ASM volatile ("STLEX %0, %2, [%1]" : "=r" (res) : "r" (ptr), "r" (value) : "memory"); + return res; + } + +#endif /* __ARM_ARCH_8M_MAIN__ or __ARM_ARCH_8M_BASE__ */ + +#undef __IAR_FT +#undef __IAR_M0_FAMILY +#undef __ICCARM_V8 + +#pragma diag_default=Pe940 +#pragma diag_default=Pe177 + +#define __SXTB16_RORn(ARG1, ARG2) __SXTB16(__ROR(ARG1, ARG2)) + +#endif /* __CMSIS_ICCARM_H__ */ diff --git a/bsp/renesas/rzn2l_rsk/rzn/arm/CMSIS_5/CMSIS/Core_R/Include/cmsis_version.h b/bsp/renesas/rzn2l_rsk/rzn/arm/CMSIS_5/CMSIS/Core_R/Include/cmsis_version.h new file mode 100644 index 0000000000..fa9f84c16f --- /dev/null +++ b/bsp/renesas/rzn2l_rsk/rzn/arm/CMSIS_5/CMSIS/Core_R/Include/cmsis_version.h @@ -0,0 +1,46 @@ +/**************************************************************************//** + * @file cmsis_version.h + * @brief CMSIS Core(M) Version definitions + * @date 31. August 2021 + ******************************************************************************/ +/* + * Copyright [2020-2021] Renesas Electronics Corporation and/or its affiliates. All Rights Reserved. + * + * This file is based on the "\CMSIS\Core\Include\cmsis_version.h" + * + * Changes: + * - No Changes. + */ +/* + * Copyright (c) 2009-2019 ARM Limited. All rights reserved. + * + * SPDX-License-Identifier: Apache-2.0 + * + * Licensed under the Apache License, Version 2.0 (the License); you may + * not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an AS IS BASIS, WITHOUT + * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +#if defined ( __ICCARM__ ) + #pragma system_include /* treat file as system include file for MISRA check */ +#elif defined (__clang__) + #pragma clang system_header /* treat file as system include file */ +#endif + +#ifndef __CMSIS_VERSION_H +#define __CMSIS_VERSION_H + +/* CMSIS Version definitions */ +#define __CM_CMSIS_VERSION_MAIN ( 5U) /*!< [31:16] CMSIS Core(M) main version */ +#define __CM_CMSIS_VERSION_SUB ( 4U) /*!< [15:0] CMSIS Core(M) sub version */ +#define __CM_CMSIS_VERSION ((__CM_CMSIS_VERSION_MAIN << 16U) | \ + __CM_CMSIS_VERSION_SUB ) /*!< CMSIS Core(M) version number */ +#endif diff --git a/bsp/renesas/rzn2l_rsk/rzn/arm/CMSIS_5/CMSIS/Core_R/Include/core_cr52.h b/bsp/renesas/rzn2l_rsk/rzn/arm/CMSIS_5/CMSIS/Core_R/Include/core_cr52.h new file mode 100644 index 0000000000..615ae49a34 --- /dev/null +++ b/bsp/renesas/rzn2l_rsk/rzn/arm/CMSIS_5/CMSIS/Core_R/Include/core_cr52.h @@ -0,0 +1,312 @@ +/**************************************************************************//** + * @file core_cr52.h + * @brief CMSIS Cortex-R52 Core Peripheral Access Layer Header File + * @date 31. August 2021 + ******************************************************************************/ +/* + * Copyright [2020-2021] Renesas Electronics Corporation and/or its affiliates. All Rights Reserved. + * + * This file is based on the "\CMSIS\Core\Include\core_armv8mml.h" + * + * Changes: + * Renesas Electronics Corporation on 2021-08-31 + * - Changed to be related to Cortex-R52 by + */ +/* + * Copyright (c) 2009-2020 Arm Limited. All rights reserved. + * + * SPDX-License-Identifier: Apache-2.0 + * + * Licensed under the Apache License, Version 2.0 (the License); you may + * not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an AS IS BASIS, WITHOUT + * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +#if defined ( __ICCARM__ ) + #pragma system_include /* treat file as system include file for MISRA check */ +#endif + +#ifndef __CORE_CR52_H_GENERIC +#define __CORE_CR52_H_GENERIC + +#include + +#ifdef __cplusplus + extern "C" { +#endif + +/** + \page CMSIS_MISRA_Exceptions MISRA-C:2004 Compliance Exceptions + CMSIS violates the following MISRA-C:2004 rules: + + \li Required Rule 8.5, object/function definition in header file.
+ Function definitions in header files are used to allow 'inlining'. + + \li Required Rule 18.4, declaration of union type or object of union type: '{...}'.
+ Unions are used for effective representation of core registers. + + \li Advisory Rule 19.7, Function-like macro defined.
+ Function-like macros are used to allow more efficient code. + */ + + +/******************************************************************************* + * CMSIS definitions + ******************************************************************************/ +/** + \ingroup Cortex_R52 + @{ + */ + +#if defined ( __GNUC__ ) + #if defined (__VFP_FP__) && !defined(__SOFTFP__) + #if defined (__FPU_PRESENT) && (__FPU_PRESENT == 1U) + #define __FPU_USED 1U + #define __FPU_D32 1U + #else + #error "Compiler generates FPU instructions for a device without an FPU (check __FPU_PRESENT)" + #define __FPU_USED 0U + #endif + #else + #define __FPU_USED 0U + #endif + +#elif defined ( __ICCARM__ ) + #if defined __ARMVFP__ + #if defined (__FPU_PRESENT) && (__FPU_PRESENT == 1U) + #define __FPU_USED 1U + #ifndef __ARMVFP_D16__ + #define __FPU_D32 1U + #endif + #else + #error "Compiler generates FPU instructions for a device without an FPU (check __FPU_PRESENT)" + #define __FPU_USED 0U + #endif + #else + #define __FPU_USED 0U + #endif +#endif + +#include "cmsis_version.h" + +/* CMSIS CR52 definitions */ +#define __CR52_CMSIS_VERSION_MAIN (__CM_CMSIS_VERSION_MAIN) /*!< \deprecated [31:16] CMSIS HAL main version */ +#define __CR52_CMSIS_VERSION_SUB ( __CM_CMSIS_VERSION_SUB) /*!< \deprecated [15:0] CMSIS HAL sub version */ +#define __CR52_CMSIS_VERSION ((__CR52_CMSIS_VERSION_MAIN << 16U) | \ + __CR52_CMSIS_VERSION_SUB ) /*!< \deprecated CMSIS HAL version number */ + +#define __CORTEX_R (52U) /*!< Cortex-R Core */ + +#include "cmsis_compiler.h" /* CMSIS compiler specific defines */ + + +#ifdef __cplusplus +} +#endif + +#endif /* __CORE_CR52_H_GENERIC */ + +#ifndef __CMSIS_GENERIC + +#ifndef __CORE_CR52_H_DEPENDANT +#define __CORE_CR52_H_DEPENDANT + +#ifdef __cplusplus + extern "C" { +#endif + + +/* IO definitions (access restrictions to peripheral registers) */ +/** + \defgroup CMSIS_glob_defs CMSIS Global Defines + + IO Type Qualifiers are used + \li to specify the access to peripheral variables. + \li for automatic generation of peripheral register debug information. +*/ +#ifdef __cplusplus + #define __I volatile /*!< Defines 'read only' permissions */ +#else + #define __I volatile const /*!< Defines 'read only' permissions */ +#endif +#define __O volatile /*!< Defines 'write only' permissions */ +#define __IO volatile /*!< Defines 'read / write' permissions */ + +/* following defines should be used for structure members */ +#define __IM volatile const /*! Defines 'read only' structure member permissions */ +#define __OM volatile /*! Defines 'write only' structure member permissions */ +#define __IOM volatile /*! Defines 'read / write' structure member permissions */ + +/*@} end of group Cortex_R52 */ + + + +/******************************************************************************* + * Register Abstraction + Core Register contain: + - Core Register + ******************************************************************************/ +/** + \defgroup CMSIS_core_register Defines and Type Definitions + \brief Type definitions and defines for Cortex-M processor based devices. +*/ + +/** + \ingroup CMSIS_core_register + \defgroup CMSIS_CORE Status and Control Registers + \brief Core Register type definitions. + @{ + */ + +/** + \ingroup CMSIS_core_register + \defgroup CMSIS_GIC Generic Interrupt Controller (GIC) + \brief Type definitions for the GIC Registers + @{ +*/ + + /** + \brief Structure type to access the Generic Interrupt Controller (GIC) for GICD. + */ +typedef struct +{ + __IOM uint32_t GICD_CTLR; /*!< Offset: 0x0000 (R/W) Distributor Control Register */ + __IM uint32_t GICD_TYPER; /*!< Offset: 0x0004 (R/ ) Interrupt Controller Type Register */ + __IM uint32_t GICD_IIDR; /*!< Offset: 0x0008 (R/ ) Distributor Implementer Identification Register */ + uint32_t RESERVED0[30U]; + __IOM uint32_t GICD_IGROUPR[30U]; /*!< Offset: 0x0084 (R/W) Interrupt Group Registers 1 - 30 */ + uint32_t RESERVED1[2U]; + __IOM uint32_t GICD_ISENABLER[30U]; /*!< Offset: 0x0104 (R/W) Interrupt Set-Enable Registers 1 - 30 */ + uint32_t RESERVED2[2U]; + __IOM uint32_t GICD_ICENABLER[30U]; /*!< Offset: 0x0184 (R/W) Interrupt Clear-Enable Registers 1 - 30 */ + uint32_t RESERVED3[2U]; + __IOM uint32_t GICD_ISPENDR[30U]; /*!< Offset: 0x0204 (R/W) Interrupt Set-Pending Registers 1 - 30 */ + uint32_t RESERVED4[2U]; + __IOM uint32_t GICD_ICPENDR[30U]; /*!< Offset: 0x0284 (R/W) Interrupt Clear-Pending Registers 1 - 30 */ + uint32_t RESERVED5[2U]; + __IOM uint32_t GICD_ISACTIVER[30U]; /*!< Offset: 0x0304 (R/W) Interrupt Set-Active Registers 1 - 30 */ + uint32_t RESERVED6[2U]; + __IOM uint32_t GICD_ICACTIVER[30U]; /*!< Offset: 0x0384 (R/W) Interrupt Clear-Active Registers 1 - 30 */ + uint32_t RESERVED7[9U]; + __IOM uint32_t GICD_IPRIORITYR[240U]; /*!< Offset: 0x0420 (R/W) Interrupt Priority Registers 8 - 247 */ + uint32_t RESERVED8[266U]; + __IOM uint32_t GICD_ICFGR[60U]; /*!< Offset: 0x0C08 (R/W) Interrupt Configuration Registers 2 - 61 */ +} GICD_Type; + + /** + \brief Structure type to access the Generic Interrupt Controller (GIC) for GICR for Control target. + */ +typedef struct +{ + __IM uint32_t GICR_CTLR; /*!< Offset: 0x0000 (R/ ) Redistributor Control Register */ + __IM uint32_t GICR_IIDR; /*!< Offset: 0x0004 (R/ ) Redistributor Implementer Identification Register */ + __IM uint32_t GICR_TYPER[2]; /*!< Offset: 0x0008 (R/ ) Redistributor Type Register */ + uint32_t RESERVED0; + __IOM uint32_t GICR_WAKER; /*!< Offset: 0x0014 (R/W) Redistributor Wake Register */ +} GICR_CONTROL_TARGET_Type; + + /** + \brief Structure type to access the Generic Interrupt Controller (GIC) for GICR for SGI and PPI. + */ +typedef struct +{ + uint32_t RESERVED0[32]; + __IOM uint32_t GICR_IGROUPR0; /*!< Offset: 0x0080 (R/W) Interrupt Group Register 0 */ + uint32_t RESERVED1[31]; + __IOM uint32_t GICR_ISENABLER0; /*!< Offset: 0x0100 (R/W) Interrupt Set-Enable Register 0 */ + uint32_t RESERVED2[31]; + __IOM uint32_t GICR_ICENABLER0; /*!< Offset: 0x0180 (R/W) Interrupt Clear-Enable Register 0 */ + uint32_t RESERVED3[31]; + __IOM uint32_t GICR_ISPENDR0; /*!< Offset: 0x0200 (R/W) Interrupt Set-Pending Register 0 */ + uint32_t RESERVED4[31]; + __IOM uint32_t GICR_ICPENDR0; /*!< Offset: 0x0280 (R/W) Interrupt Clear-Pending Register 0 */ + uint32_t RESERVED5[31]; + __IOM uint32_t GICR_ISACTIVER0; /*!< Offset: 0x0300 (R/W) Interrupt Set-Active Register 0 */ + uint32_t RESERVED6[31]; + __IOM uint32_t GICR_ICACTIVER0; /*!< Offset: 0x0380 (R/W) Interrupt Clear-Active Register 0 */ + uint32_t RESERVED7[31]; + __IOM uint32_t GICR_IPRIORITYR[8]; /*!< Offset: 0x0400 (R/W) Interrupt Priority Registers 0 - 7 */ + uint32_t RESERVED8[504]; + __IM uint32_t GICR_ICFGR0; /*!< Offset: 0x0C00 (R/ ) Interrupt Configuration Register 0 */ + __IOM uint32_t GICR_ICFGR1; /*!< Offset: 0x0C04 (R/W) Interrupt Configuration Register 1 */ +} GICR_SGI_PPI_Type; + +/*@} end of group CMSIS_GIC */ + + +/** + \ingroup CMSIS_core_register + \defgroup CMSIS_core_base Core Definitions + \brief Definitions for base addresses, unions, and structures. + @{ + */ + +/* Memory mapping of Core Hardware */ +#define GIC0_BASE (0x94000000UL) /*!< GIC0 Base Address */ +#define GIC1_BASE (0x9C000000UL) /*!< GIC1 Base Address */ +#define GICR_TARGET0_BASE (0x00100000UL) /*!< GICR Base Address (for Control target 0) */ +#define GICR_TARGET0_SGI_PPI_BASE (0x00110000UL) /*!< GICR Base Address (for SGI and PPI target 0) */ + +#define GICD0 ((GICD_Type *) GIC0_BASE ) /*!< GICD configuration struct */ +#define GICD1 ((GICD_Type *) GIC1_BASE ) /*!< GICD configuration struct */ +#define GICR0_TARGET0_IFREG ((GICR_CONTROL_TARGET_Type *) (GIC0_BASE + GICR_TARGET0_BASE) ) /*!< GICR configuration struct for Control target 0 */ +#define GICR1_TARGET0_IFREG ((GICR_CONTROL_TARGET_Type *) (GIC1_BASE + GICR_TARGET0_BASE) ) /*!< GICR configuration struct for Control target 0 */ +#define GICR0_TARGET0_INTREG ((GICR_SGI_PPI_Type *) (GIC0_BASE + GICR_TARGET0_SGI_PPI_BASE) ) /*!< GICR configuration struct for SGI and PPI target 0 */ +#define GICR1_TARGET0_INTREG ((GICR_SGI_PPI_Type *) (GIC1_BASE + GICR_TARGET0_SGI_PPI_BASE) ) /*!< GICR configuration struct for SGI and PPI target 0 */ + +/*@} */ + + +/* ########################### Core Function Access ########################### */ +/** \ingroup CMSIS_Core_FunctionInterface + \defgroup CMSIS_Core_RegAccFunctions CMSIS Core Register Access Functions + @{ + */ + + +#if defined ( __CC_ARM ) /*------------------RealView Compiler -----------------*/ +/* ARM armcc specific functions */ + +#if (__ARMCC_VERSION < 400677) + #error "Please use ARM Compiler Toolchain V4.0.677 or later!" +#endif + + +/** \brief Get CPSR Register + + This function returns the content of the CPSR Register. + + \return CPSR Register value + */ +__STATIC_INLINE uint32_t __get_CPSR(void) +{ + register uint32_t __regCPSR __ASM("cpsr"); + return(__regCPSR); +} + + +#elif (defined (__ICCARM__)) /*---------------- ICC Compiler ---------------------*/ + + +#include + + +#endif + + +#ifdef __cplusplus +} +#endif + + +#endif /* __CORE_CR52_H_DEPENDANT */ + +#endif /* __CMSIS_GENERIC */ diff --git a/bsp/renesas/rzn2l_rsk/rzn/arm/CMSIS_5/LICENSE.txt b/bsp/renesas/rzn2l_rsk/rzn/arm/CMSIS_5/LICENSE.txt new file mode 100644 index 0000000000..8dada3edaf --- /dev/null +++ b/bsp/renesas/rzn2l_rsk/rzn/arm/CMSIS_5/LICENSE.txt @@ -0,0 +1,201 @@ + Apache License + Version 2.0, January 2004 + http://www.apache.org/licenses/ + + TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION + + 1. Definitions. + + "License" shall mean the terms and conditions for use, reproduction, + and distribution as defined by Sections 1 through 9 of this document. + + "Licensor" shall mean the copyright owner or entity authorized by + the copyright owner that is granting the License. + + "Legal Entity" shall mean the union of the acting entity and all + other entities that control, are controlled by, or are under common + control with that entity. For the purposes of this definition, + "control" means (i) the power, direct or indirect, to cause the + direction or management of such entity, whether by contract or + otherwise, or (ii) ownership of fifty percent (50%) or more of the + outstanding shares, or (iii) beneficial ownership of such entity. + + "You" (or "Your") shall mean an individual or Legal Entity + exercising permissions granted by this License. + + "Source" form shall mean the preferred form for making modifications, + including but not limited to software source code, documentation + source, and configuration files. + + "Object" form shall mean any form resulting from mechanical + transformation or translation of a Source form, including but + not limited to compiled object code, generated documentation, + and conversions to other media types. + + "Work" shall mean the work of authorship, whether in Source or + Object form, made available under the License, as indicated by a + copyright notice that is included in or attached to the work + (an example is provided in the Appendix below). + + "Derivative Works" shall mean any work, whether in Source or Object + form, that is based on (or derived from) the Work and for which the + editorial revisions, annotations, elaborations, or other modifications + represent, as a whole, an original work of authorship. For the purposes + of this License, Derivative Works shall not include works that remain + separable from, or merely link (or bind by name) to the interfaces of, + the Work and Derivative Works thereof. + + "Contribution" shall mean any work of authorship, including + the original version of the Work and any modifications or additions + to that Work or Derivative Works thereof, that is intentionally + submitted to Licensor for inclusion in the Work by the copyright owner + or by an individual or Legal Entity authorized to submit on behalf of + the copyright owner. For the purposes of this definition, "submitted" + means any form of electronic, verbal, or written communication sent + to the Licensor or its representatives, including but not limited to + communication on electronic mailing lists, source code control systems, + and issue tracking systems that are managed by, or on behalf of, the + Licensor for the purpose of discussing and improving the Work, but + excluding communication that is conspicuously marked or otherwise + designated in writing by the copyright owner as "Not a Contribution." + + "Contributor" shall mean Licensor and any individual or Legal Entity + on behalf of whom a Contribution has been received by Licensor and + subsequently incorporated within the Work. + + 2. Grant of Copyright License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + copyright license to reproduce, prepare Derivative Works of, + publicly display, publicly perform, sublicense, and distribute the + Work and such Derivative Works in Source or Object form. + + 3. Grant of Patent License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + (except as stated in this section) patent license to make, have made, + use, offer to sell, sell, import, and otherwise transfer the Work, + where such license applies only to those patent claims licensable + by such Contributor that are necessarily infringed by their + Contribution(s) alone or by combination of their Contribution(s) + with the Work to which such Contribution(s) was submitted. If You + institute patent litigation against any entity (including a + cross-claim or counterclaim in a lawsuit) alleging that the Work + or a Contribution incorporated within the Work constitutes direct + or contributory patent infringement, then any patent licenses + granted to You under this License for that Work shall terminate + as of the date such litigation is filed. + + 4. Redistribution. You may reproduce and distribute copies of the + Work or Derivative Works thereof in any medium, with or without + modifications, and in Source or Object form, provided that You + meet the following conditions: + + (a) You must give any other recipients of the Work or + Derivative Works a copy of this License; and + + (b) You must cause any modified files to carry prominent notices + stating that You changed the files; and + + (c) You must retain, in the Source form of any Derivative Works + that You distribute, all copyright, patent, trademark, and + attribution notices from the Source form of the Work, + excluding those notices that do not pertain to any part of + the Derivative Works; and + + (d) If the Work includes a "NOTICE" text file as part of its + distribution, then any Derivative Works that You distribute must + include a readable copy of the attribution notices contained + within such NOTICE file, excluding those notices that do not + pertain to any part of the Derivative Works, in at least one + of the following places: within a NOTICE text file distributed + as part of the Derivative Works; within the Source form or + documentation, if provided along with the Derivative Works; or, + within a display generated by the Derivative Works, if and + wherever such third-party notices normally appear. The contents + of the NOTICE file are for informational purposes only and + do not modify the License. You may add Your own attribution + notices within Derivative Works that You distribute, alongside + or as an addendum to the NOTICE text from the Work, provided + that such additional attribution notices cannot be construed + as modifying the License. + + You may add Your own copyright statement to Your modifications and + may provide additional or different license terms and conditions + for use, reproduction, or distribution of Your modifications, or + for any such Derivative Works as a whole, provided Your use, + reproduction, and distribution of the Work otherwise complies with + the conditions stated in this License. + + 5. Submission of Contributions. Unless You explicitly state otherwise, + any Contribution intentionally submitted for inclusion in the Work + by You to the Licensor shall be under the terms and conditions of + this License, without any additional terms or conditions. + Notwithstanding the above, nothing herein shall supersede or modify + the terms of any separate license agreement you may have executed + with Licensor regarding such Contributions. + + 6. Trademarks. This License does not grant permission to use the trade + names, trademarks, service marks, or product names of the Licensor, + except as required for reasonable and customary use in describing the + origin of the Work and reproducing the content of the NOTICE file. + + 7. Disclaimer of Warranty. Unless required by applicable law or + agreed to in writing, Licensor provides the Work (and each + Contributor provides its Contributions) on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + implied, including, without limitation, any warranties or conditions + of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A + PARTICULAR PURPOSE. You are solely responsible for determining the + appropriateness of using or redistributing the Work and assume any + risks associated with Your exercise of permissions under this License. + + 8. Limitation of Liability. In no event and under no legal theory, + whether in tort (including negligence), contract, or otherwise, + unless required by applicable law (such as deliberate and grossly + negligent acts) or agreed to in writing, shall any Contributor be + liable to You for damages, including any direct, indirect, special, + incidental, or consequential damages of any character arising as a + result of this License or out of the use or inability to use the + Work (including but not limited to damages for loss of goodwill, + work stoppage, computer failure or malfunction, or any and all + other commercial damages or losses), even if such Contributor + has been advised of the possibility of such damages. + + 9. Accepting Warranty or Additional Liability. While redistributing + the Work or Derivative Works thereof, You may choose to offer, + and charge a fee for, acceptance of support, warranty, indemnity, + or other liability obligations and/or rights consistent with this + License. However, in accepting such obligations, You may act only + on Your own behalf and on Your sole responsibility, not on behalf + of any other Contributor, and only if You agree to indemnify, + defend, and hold each Contributor harmless for any liability + incurred by, or claims asserted against, such Contributor by reason + of your accepting any such warranty or additional liability. + + END OF TERMS AND CONDITIONS + + APPENDIX: How to apply the Apache License to your work. + + To apply the Apache License to your work, attach the following + boilerplate notice, with the fields enclosed by brackets "{}" + replaced with your own identifying information. (Don't include + the brackets!) The text should be enclosed in the appropriate + comment syntax for the file format. We also recommend that a + file or class name and description of purpose be included on the + same "printed page" as the copyright notice for easier + identification within third-party archives. + + Copyright {yyyy} {name of copyright owner} + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. diff --git a/bsp/renesas/rzn2l_rsk/rzn/board/rzn2l_rsk/board.h b/bsp/renesas/rzn2l_rsk/rzn/board/rzn2l_rsk/board.h new file mode 100644 index 0000000000..0cf82a0faf --- /dev/null +++ b/bsp/renesas/rzn2l_rsk/rzn/board/rzn2l_rsk/board.h @@ -0,0 +1,67 @@ +/*********************************************************************************************************************** + * Copyright [2020-2024] Renesas Electronics Corporation and/or its affiliates. All Rights Reserved. + * + * This software and documentation are supplied by Renesas Electronics Corporation and/or its affiliates and may only + * be used with products of Renesas Electronics Corp. and its affiliates ("Renesas"). No other uses are authorized. + * Renesas products are sold pursuant to Renesas terms and conditions of sale. Purchasers are solely responsible for + * the selection and use of Renesas products and Renesas assumes no liability. No license, express or implied, to any + * intellectual property right is granted by Renesas. This software is protected under all applicable laws, including + * copyright laws. Renesas reserves the right to change or discontinue this software and/or this documentation. + * THE SOFTWARE AND DOCUMENTATION IS DELIVERED TO YOU "AS IS," AND RENESAS MAKES NO REPRESENTATIONS OR WARRANTIES, AND + * TO THE FULLEST EXTENT PERMISSIBLE UNDER APPLICABLE LAW, DISCLAIMS ALL WARRANTIES, WHETHER EXPLICITLY OR IMPLICITLY, + * INCLUDING WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE, AND NONINFRINGEMENT, WITH RESPECT TO THE + * SOFTWARE OR DOCUMENTATION. RENESAS SHALL HAVE NO LIABILITY ARISING OUT OF ANY SECURITY VULNERABILITY OR BREACH. + * TO THE MAXIMUM EXTENT PERMITTED BY LAW, IN NO EVENT WILL RENESAS BE LIABLE TO YOU IN CONNECTION WITH THE SOFTWARE OR + * DOCUMENTATION (OR ANY PERSON OR ENTITY CLAIMING RIGHTS DERIVED FROM YOU) FOR ANY LOSS, DAMAGES, OR CLAIMS WHATSOEVER, + * INCLUDING, WITHOUT LIMITATION, ANY DIRECT, CONSEQUENTIAL, SPECIAL, INDIRECT, PUNITIVE, OR INCIDENTAL DAMAGES; ANY + * LOST PROFITS, OTHER ECONOMIC DAMAGE, PROPERTY DAMAGE, OR PERSONAL INJURY; AND EVEN IF RENESAS HAS BEEN ADVISED OF THE + * POSSIBILITY OF SUCH LOSS, DAMAGES, CLAIMS OR COSTS. + **********************************************************************************************************************/ + +/*********************************************************************************************************************** + * File Name : board.h + * Description : Includes and API function available for this board. + **********************************************************************************************************************/ + +/*******************************************************************************************************************//** + * @ingroup BOARDS + * @defgroup BOARD_RZN2L_RSK + * @brief BSP for the RZN2L_RSK Board + * + * The RZN2L_RSK is a development kit for the Renesas RZN2L microcontroller. + * + * @{ + **********************************************************************************************************************/ + +#ifndef BOARD_H +#define BOARD_H + +/*********************************************************************************************************************** + * Includes , "Project Includes" + **********************************************************************************************************************/ + +/* BSP Board Specific Includes. */ +#include "board_init.h" +#include "board_leds.h" +#include "board_ethernet_phy.h" + +/*********************************************************************************************************************** + * Macro definitions + **********************************************************************************************************************/ +#define BOARD_RZN2L_RSK + +/*********************************************************************************************************************** + * Typedef definitions + **********************************************************************************************************************/ + +/*********************************************************************************************************************** + * Exported global variables + **********************************************************************************************************************/ + +/*********************************************************************************************************************** + * Exported global functions (to be accessed by other files) + **********************************************************************************************************************/ + +/** @} (end defgroup BSP_CONFIG_RZN2L) */ + +#endif diff --git a/bsp/renesas/rzn2l_rsk/rzn/board/rzn2l_rsk/board_ethernet_phy.h b/bsp/renesas/rzn2l_rsk/rzn/board/rzn2l_rsk/board_ethernet_phy.h new file mode 100644 index 0000000000..fb4f299cc8 --- /dev/null +++ b/bsp/renesas/rzn2l_rsk/rzn/board/rzn2l_rsk/board_ethernet_phy.h @@ -0,0 +1,60 @@ +/*********************************************************************************************************************** + * Copyright [2020-2024] Renesas Electronics Corporation and/or its affiliates. All Rights Reserved. + * + * This software and documentation are supplied by Renesas Electronics Corporation and/or its affiliates and may only + * be used with products of Renesas Electronics Corp. and its affiliates ("Renesas"). No other uses are authorized. + * Renesas products are sold pursuant to Renesas terms and conditions of sale. Purchasers are solely responsible for + * the selection and use of Renesas products and Renesas assumes no liability. No license, express or implied, to any + * intellectual property right is granted by Renesas. This software is protected under all applicable laws, including + * copyright laws. Renesas reserves the right to change or discontinue this software and/or this documentation. + * THE SOFTWARE AND DOCUMENTATION IS DELIVERED TO YOU "AS IS," AND RENESAS MAKES NO REPRESENTATIONS OR WARRANTIES, AND + * TO THE FULLEST EXTENT PERMISSIBLE UNDER APPLICABLE LAW, DISCLAIMS ALL WARRANTIES, WHETHER EXPLICITLY OR IMPLICITLY, + * INCLUDING WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE, AND NONINFRINGEMENT, WITH RESPECT TO THE + * SOFTWARE OR DOCUMENTATION. RENESAS SHALL HAVE NO LIABILITY ARISING OUT OF ANY SECURITY VULNERABILITY OR BREACH. + * TO THE MAXIMUM EXTENT PERMITTED BY LAW, IN NO EVENT WILL RENESAS BE LIABLE TO YOU IN CONNECTION WITH THE SOFTWARE OR + * DOCUMENTATION (OR ANY PERSON OR ENTITY CLAIMING RIGHTS DERIVED FROM YOU) FOR ANY LOSS, DAMAGES, OR CLAIMS WHATSOEVER, + * INCLUDING, WITHOUT LIMITATION, ANY DIRECT, CONSEQUENTIAL, SPECIAL, INDIRECT, PUNITIVE, OR INCIDENTAL DAMAGES; ANY + * LOST PROFITS, OTHER ECONOMIC DAMAGE, PROPERTY DAMAGE, OR PERSONAL INJURY; AND EVEN IF RENESAS HAS BEEN ADVISED OF THE + * POSSIBILITY OF SUCH LOSS, DAMAGES, CLAIMS OR COSTS. + **********************************************************************************************************************/ + +/*******************************************************************************************************************//** + * @ingroup BOARD_RZN2_RSK + * @defgroup BOARD_RZN2_RSK_ETHERNET_PHY Board Ethernet Phy + * @brief Ethernet Phy information for this board. + * + * This is code specific to the RZN2_RSK board. + * + * @{ + **********************************************************************************************************************/ + +#ifndef BSP_ETHERNET_PHY_H +#define BSP_ETHERNET_PHY_H + +/** Common macro for FSP header files. There is also a corresponding FSP_FOOTER macro at the end of this file. */ +FSP_HEADER + +/*********************************************************************************************************************** + * Macro definitions + **********************************************************************************************************************/ +#define ETHER_PHY_CFG_TARGET_VSC8541_ENABLE (1) +#define ETHER_PHY_LSI_TYPE_KIT_COMPONENT ETHER_PHY_LSI_TYPE_VSC8541 + +/*********************************************************************************************************************** + * Typedef definitions + **********************************************************************************************************************/ + +/*********************************************************************************************************************** + * Exported global variables + **********************************************************************************************************************/ + +/*********************************************************************************************************************** + * Public Functions + **********************************************************************************************************************/ + +/** Common macro for FSP header files. There is also a corresponding FSP_HEADER macro at the top of this file. */ +FSP_FOOTER + +#endif + +/** @} (end defgroup BOARD_RZN2_RSK_ETHERNET_PHY) */ diff --git a/bsp/renesas/rzn2l_rsk/rzn/board/rzn2l_rsk/board_init.c b/bsp/renesas/rzn2l_rsk/rzn/board/rzn2l_rsk/board_init.c new file mode 100644 index 0000000000..f3a4c789b9 --- /dev/null +++ b/bsp/renesas/rzn2l_rsk/rzn/board/rzn2l_rsk/board_init.c @@ -0,0 +1,67 @@ +/*********************************************************************************************************************** + * Copyright [2020-2024] Renesas Electronics Corporation and/or its affiliates. All Rights Reserved. + * + * This software and documentation are supplied by Renesas Electronics Corporation and/or its affiliates and may only + * be used with products of Renesas Electronics Corp. and its affiliates ("Renesas"). No other uses are authorized. + * Renesas products are sold pursuant to Renesas terms and conditions of sale. Purchasers are solely responsible for + * the selection and use of Renesas products and Renesas assumes no liability. No license, express or implied, to any + * intellectual property right is granted by Renesas. This software is protected under all applicable laws, including + * copyright laws. Renesas reserves the right to change or discontinue this software and/or this documentation. + * THE SOFTWARE AND DOCUMENTATION IS DELIVERED TO YOU "AS IS," AND RENESAS MAKES NO REPRESENTATIONS OR WARRANTIES, AND + * TO THE FULLEST EXTENT PERMISSIBLE UNDER APPLICABLE LAW, DISCLAIMS ALL WARRANTIES, WHETHER EXPLICITLY OR IMPLICITLY, + * INCLUDING WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE, AND NONINFRINGEMENT, WITH RESPECT TO THE + * SOFTWARE OR DOCUMENTATION. RENESAS SHALL HAVE NO LIABILITY ARISING OUT OF ANY SECURITY VULNERABILITY OR BREACH. + * TO THE MAXIMUM EXTENT PERMITTED BY LAW, IN NO EVENT WILL RENESAS BE LIABLE TO YOU IN CONNECTION WITH THE SOFTWARE OR + * DOCUMENTATION (OR ANY PERSON OR ENTITY CLAIMING RIGHTS DERIVED FROM YOU) FOR ANY LOSS, DAMAGES, OR CLAIMS WHATSOEVER, + * INCLUDING, WITHOUT LIMITATION, ANY DIRECT, CONSEQUENTIAL, SPECIAL, INDIRECT, PUNITIVE, OR INCIDENTAL DAMAGES; ANY + * LOST PROFITS, OTHER ECONOMIC DAMAGE, PROPERTY DAMAGE, OR PERSONAL INJURY; AND EVEN IF RENESAS HAS BEEN ADVISED OF THE + * POSSIBILITY OF SUCH LOSS, DAMAGES, CLAIMS OR COSTS. + **********************************************************************************************************************/ + +/*********************************************************************************************************************** + * File Name : board_init.c + * Description : This module calls any initialization code specific to this BSP. + **********************************************************************************************************************/ + +/*******************************************************************************************************************//** + * @addtogroup BOARD_RZN2L_RSK_INIT + * + * @{ + **********************************************************************************************************************/ + +/*********************************************************************************************************************** + * Includes , "Project Includes" + **********************************************************************************************************************/ +#include "bsp_api.h" + +#if defined(BOARD_RZN2L_RSK) + +/*********************************************************************************************************************** + * Macro definitions + **********************************************************************************************************************/ + +/*********************************************************************************************************************** + * Typedef definitions + **********************************************************************************************************************/ + +/*********************************************************************************************************************** + * Exported global variables (to be accessed by other files) + **********************************************************************************************************************/ + +/*********************************************************************************************************************** + * Private global variables and functions + **********************************************************************************************************************/ + +/*******************************************************************************************************************//** + * @brief Performs any initialization specific to this BSP. + * + * @param[in] p_args Pointer to arguments of the user's choice. + **********************************************************************************************************************/ +void bsp_init (void * p_args) +{ + FSP_PARAMETER_NOT_USED(p_args); +} + +#endif + +/** @} (end addtogroup BOARD_RZN2L_RSK_INIT) */ diff --git a/bsp/renesas/rzn2l_rsk/rzn/board/rzn2l_rsk/board_init.h b/bsp/renesas/rzn2l_rsk/rzn/board/rzn2l_rsk/board_init.h new file mode 100644 index 0000000000..7c57fe415c --- /dev/null +++ b/bsp/renesas/rzn2l_rsk/rzn/board/rzn2l_rsk/board_init.h @@ -0,0 +1,64 @@ +/*********************************************************************************************************************** + * Copyright [2020-2024] Renesas Electronics Corporation and/or its affiliates. All Rights Reserved. + * + * This software and documentation are supplied by Renesas Electronics Corporation and/or its affiliates and may only + * be used with products of Renesas Electronics Corp. and its affiliates ("Renesas"). No other uses are authorized. + * Renesas products are sold pursuant to Renesas terms and conditions of sale. Purchasers are solely responsible for + * the selection and use of Renesas products and Renesas assumes no liability. No license, express or implied, to any + * intellectual property right is granted by Renesas. This software is protected under all applicable laws, including + * copyright laws. Renesas reserves the right to change or discontinue this software and/or this documentation. + * THE SOFTWARE AND DOCUMENTATION IS DELIVERED TO YOU "AS IS," AND RENESAS MAKES NO REPRESENTATIONS OR WARRANTIES, AND + * TO THE FULLEST EXTENT PERMISSIBLE UNDER APPLICABLE LAW, DISCLAIMS ALL WARRANTIES, WHETHER EXPLICITLY OR IMPLICITLY, + * INCLUDING WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE, AND NONINFRINGEMENT, WITH RESPECT TO THE + * SOFTWARE OR DOCUMENTATION. RENESAS SHALL HAVE NO LIABILITY ARISING OUT OF ANY SECURITY VULNERABILITY OR BREACH. + * TO THE MAXIMUM EXTENT PERMITTED BY LAW, IN NO EVENT WILL RENESAS BE LIABLE TO YOU IN CONNECTION WITH THE SOFTWARE OR + * DOCUMENTATION (OR ANY PERSON OR ENTITY CLAIMING RIGHTS DERIVED FROM YOU) FOR ANY LOSS, DAMAGES, OR CLAIMS WHATSOEVER, + * INCLUDING, WITHOUT LIMITATION, ANY DIRECT, CONSEQUENTIAL, SPECIAL, INDIRECT, PUNITIVE, OR INCIDENTAL DAMAGES; ANY + * LOST PROFITS, OTHER ECONOMIC DAMAGE, PROPERTY DAMAGE, OR PERSONAL INJURY; AND EVEN IF RENESAS HAS BEEN ADVISED OF THE + * POSSIBILITY OF SUCH LOSS, DAMAGES, CLAIMS OR COSTS. + **********************************************************************************************************************/ + +/*********************************************************************************************************************** + * File Name : board_init.h + * Description : This module calls any initialization code specific to this BSP. + **********************************************************************************************************************/ + +/*******************************************************************************************************************//** + * @ingroup BOARD_RZN2L_RSK + * @defgroup BOARD_RZN2L_RSK_INIT + * @brief Board specific code for the RZN2L_RSK Board + * + * This include file is specific to the RZN2L_RSK board. + * + * @{ + **********************************************************************************************************************/ + +#ifndef BOARD_INIT_H +#define BOARD_INIT_H + +/** Common macro for FSP header files. There is also a corresponding FSP_FOOTER macro at the end of this file. */ +FSP_HEADER + +/*********************************************************************************************************************** + * Macro definitions + **********************************************************************************************************************/ + +/*********************************************************************************************************************** + * Typedef definitions + **********************************************************************************************************************/ + +/*********************************************************************************************************************** + * Exported global variables + **********************************************************************************************************************/ + +/*********************************************************************************************************************** + * Exported global functions (to be accessed by other files) + **********************************************************************************************************************/ +void bsp_init(void * p_args); + +/** Common macro for FSP header files. There is also a corresponding FSP_HEADER macro at the top of this file. */ +FSP_FOOTER + +#endif + +/** @} (end defgroup BOARD_RZN2L_RSK_INIT) */ diff --git a/bsp/renesas/rzn2l_rsk/rzn/board/rzn2l_rsk/board_leds.c b/bsp/renesas/rzn2l_rsk/rzn/board/rzn2l_rsk/board_leds.c new file mode 100644 index 0000000000..32ac2a0da3 --- /dev/null +++ b/bsp/renesas/rzn2l_rsk/rzn/board/rzn2l_rsk/board_leds.c @@ -0,0 +1,77 @@ +/*********************************************************************************************************************** + * Copyright [2020-2024] Renesas Electronics Corporation and/or its affiliates. All Rights Reserved. + * + * This software and documentation are supplied by Renesas Electronics Corporation and/or its affiliates and may only + * be used with products of Renesas Electronics Corp. and its affiliates ("Renesas"). No other uses are authorized. + * Renesas products are sold pursuant to Renesas terms and conditions of sale. Purchasers are solely responsible for + * the selection and use of Renesas products and Renesas assumes no liability. No license, express or implied, to any + * intellectual property right is granted by Renesas. This software is protected under all applicable laws, including + * copyright laws. Renesas reserves the right to change or discontinue this software and/or this documentation. + * THE SOFTWARE AND DOCUMENTATION IS DELIVERED TO YOU "AS IS," AND RENESAS MAKES NO REPRESENTATIONS OR WARRANTIES, AND + * TO THE FULLEST EXTENT PERMISSIBLE UNDER APPLICABLE LAW, DISCLAIMS ALL WARRANTIES, WHETHER EXPLICITLY OR IMPLICITLY, + * INCLUDING WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE, AND NONINFRINGEMENT, WITH RESPECT TO THE + * SOFTWARE OR DOCUMENTATION. RENESAS SHALL HAVE NO LIABILITY ARISING OUT OF ANY SECURITY VULNERABILITY OR BREACH. + * TO THE MAXIMUM EXTENT PERMITTED BY LAW, IN NO EVENT WILL RENESAS BE LIABLE TO YOU IN CONNECTION WITH THE SOFTWARE OR + * DOCUMENTATION (OR ANY PERSON OR ENTITY CLAIMING RIGHTS DERIVED FROM YOU) FOR ANY LOSS, DAMAGES, OR CLAIMS WHATSOEVER, + * INCLUDING, WITHOUT LIMITATION, ANY DIRECT, CONSEQUENTIAL, SPECIAL, INDIRECT, PUNITIVE, OR INCIDENTAL DAMAGES; ANY + * LOST PROFITS, OTHER ECONOMIC DAMAGE, PROPERTY DAMAGE, OR PERSONAL INJURY; AND EVEN IF RENESAS HAS BEEN ADVISED OF THE + * POSSIBILITY OF SUCH LOSS, DAMAGES, CLAIMS OR COSTS. + **********************************************************************************************************************/ + +/*********************************************************************************************************************** + * File Name : board_leds.c + * Description : This module has information about the LEDs on this board. + **********************************************************************************************************************/ + +/*******************************************************************************************************************//** + * @addtogroup BOARD_RZN2L_RSK_LEDS + * + * @{ + **********************************************************************************************************************/ + +/*********************************************************************************************************************** + * Includes + **********************************************************************************************************************/ +#include "bsp_api.h" +#if defined(BOARD_RZN2L_RSK) + +/*********************************************************************************************************************** + * Macro definitions + **********************************************************************************************************************/ + +/*********************************************************************************************************************** + * Typedef definitions + **********************************************************************************************************************/ + +/*********************************************************************************************************************** + * Private global variables and functions + **********************************************************************************************************************/ + +/** Array of LED IOPORT pins. */ +static const uint32_t g_bsp_prv_leds[][2] = +{ + {(uint32_t) BSP_IO_PORT_18_PIN_2, (uint32_t) BSP_IO_REGION_SAFE}, ///< RLED0 + {(uint32_t) BSP_IO_PORT_22_PIN_3, (uint32_t) BSP_IO_REGION_SAFE}, ///< RLED1 + {(uint32_t) BSP_IO_PORT_04_PIN_1, (uint32_t) BSP_IO_REGION_SAFE}, ///< RLED2 + {(uint32_t) BSP_IO_PORT_17_PIN_3, (uint32_t) BSP_IO_REGION_SAFE} ///< RLED3 +}; + +/*********************************************************************************************************************** + * Exported global variables (to be accessed by other files) + **********************************************************************************************************************/ + +/** Structure with LED information for this board. */ + +const bsp_leds_t g_bsp_leds = +{ + .led_count = (uint16_t) (sizeof(g_bsp_prv_leds) / sizeof(g_bsp_prv_leds[0])), + .p_leds = g_bsp_prv_leds +}; + +/*********************************************************************************************************************** + * Exported global variables (to be accessed by other files) + **********************************************************************************************************************/ + +#endif + +/** @} (end addtogroup BOARD_RZN2L_RSK_LEDS) */ diff --git a/bsp/renesas/rzn2l_rsk/rzn/board/rzn2l_rsk/board_leds.h b/bsp/renesas/rzn2l_rsk/rzn/board/rzn2l_rsk/board_leds.h new file mode 100644 index 0000000000..fdae49f91d --- /dev/null +++ b/bsp/renesas/rzn2l_rsk/rzn/board/rzn2l_rsk/board_leds.h @@ -0,0 +1,81 @@ +/*********************************************************************************************************************** + * Copyright [2020-2024] Renesas Electronics Corporation and/or its affiliates. All Rights Reserved. + * + * This software and documentation are supplied by Renesas Electronics Corporation and/or its affiliates and may only + * be used with products of Renesas Electronics Corp. and its affiliates ("Renesas"). No other uses are authorized. + * Renesas products are sold pursuant to Renesas terms and conditions of sale. Purchasers are solely responsible for + * the selection and use of Renesas products and Renesas assumes no liability. No license, express or implied, to any + * intellectual property right is granted by Renesas. This software is protected under all applicable laws, including + * copyright laws. Renesas reserves the right to change or discontinue this software and/or this documentation. + * THE SOFTWARE AND DOCUMENTATION IS DELIVERED TO YOU "AS IS," AND RENESAS MAKES NO REPRESENTATIONS OR WARRANTIES, AND + * TO THE FULLEST EXTENT PERMISSIBLE UNDER APPLICABLE LAW, DISCLAIMS ALL WARRANTIES, WHETHER EXPLICITLY OR IMPLICITLY, + * INCLUDING WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE, AND NONINFRINGEMENT, WITH RESPECT TO THE + * SOFTWARE OR DOCUMENTATION. RENESAS SHALL HAVE NO LIABILITY ARISING OUT OF ANY SECURITY VULNERABILITY OR BREACH. + * TO THE MAXIMUM EXTENT PERMITTED BY LAW, IN NO EVENT WILL RENESAS BE LIABLE TO YOU IN CONNECTION WITH THE SOFTWARE OR + * DOCUMENTATION (OR ANY PERSON OR ENTITY CLAIMING RIGHTS DERIVED FROM YOU) FOR ANY LOSS, DAMAGES, OR CLAIMS WHATSOEVER, + * INCLUDING, WITHOUT LIMITATION, ANY DIRECT, CONSEQUENTIAL, SPECIAL, INDIRECT, PUNITIVE, OR INCIDENTAL DAMAGES; ANY + * LOST PROFITS, OTHER ECONOMIC DAMAGE, PROPERTY DAMAGE, OR PERSONAL INJURY; AND EVEN IF RENESAS HAS BEEN ADVISED OF THE + * POSSIBILITY OF SUCH LOSS, DAMAGES, CLAIMS OR COSTS. + **********************************************************************************************************************/ + +/*********************************************************************************************************************** + * File Name : board_leds.h + * Description : This module has information about the LEDs on this board. + **********************************************************************************************************************/ + +/*******************************************************************************************************************//** + * @ingroup BOARD_RZN2L_RSK + * @defgroup BOARD_RZN2L_RSK_LEDS Board LEDs + * @brief LED information for this board. + * + * This is code specific to the RZN2L_RSK board. It includes info on the number of LEDs and which pins are they + * are on. + * + * @{ + **********************************************************************************************************************/ + +#ifndef BOARD_LEDS_H +#define BOARD_LEDS_H + +/** Common macro for FSP header files. There is also a corresponding FSP_FOOTER macro at the end of this file. */ +FSP_HEADER + +/*********************************************************************************************************************** + * Macro definitions + **********************************************************************************************************************/ + +/*********************************************************************************************************************** + * Typedef definitions + **********************************************************************************************************************/ + +/** Information on how many LEDs and what pins they are on. */ +typedef struct st_bsp_leds +{ + uint16_t led_count; ///< The number of LEDs on this board + uint32_t const (*p_leds)[2]; ///< Pointer to an array of IOPORT pins for controlling LEDs +} bsp_leds_t; + +/** Available user-controllable LEDs on this board. These enums can be can be used to index into the array of LED pins + * found in the bsp_leds_t structure. */ +typedef enum e_bsp_led +{ + BSP_LED_RLED0 = 0, ///< Green + BSP_LED_RLED1 = 1, ///< Yellow + BSP_LED_RLED2 = 2, ///< Red + BSP_LED_RLED3 = 3, ///< Red +} bsp_led_t; + +/*********************************************************************************************************************** + * Exported global variables + **********************************************************************************************************************/ + +/*********************************************************************************************************************** + * Public Functions + **********************************************************************************************************************/ + +/** Common macro for FSP header files. There is also a corresponding FSP_HEADER macro at the top of this file. */ +FSP_FOOTER + +#endif + +/** @} (end defgroup BOARD_RZN2L_RSK_LEDS) */ diff --git a/bsp/renesas/rzn2l_rsk/rzn/fsp/inc/api/bsp_api.h b/bsp/renesas/rzn2l_rsk/rzn/fsp/inc/api/bsp_api.h new file mode 100644 index 0000000000..b2c951b125 --- /dev/null +++ b/bsp/renesas/rzn2l_rsk/rzn/fsp/inc/api/bsp_api.h @@ -0,0 +1,111 @@ +/*********************************************************************************************************************** + * Copyright [2020-2024] Renesas Electronics Corporation and/or its affiliates. All Rights Reserved. + * + * This software and documentation are supplied by Renesas Electronics Corporation and/or its affiliates and may only + * be used with products of Renesas Electronics Corp. and its affiliates ("Renesas"). No other uses are authorized. + * Renesas products are sold pursuant to Renesas terms and conditions of sale. Purchasers are solely responsible for + * the selection and use of Renesas products and Renesas assumes no liability. No license, express or implied, to any + * intellectual property right is granted by Renesas. This software is protected under all applicable laws, including + * copyright laws. Renesas reserves the right to change or discontinue this software and/or this documentation. + * THE SOFTWARE AND DOCUMENTATION IS DELIVERED TO YOU "AS IS," AND RENESAS MAKES NO REPRESENTATIONS OR WARRANTIES, AND + * TO THE FULLEST EXTENT PERMISSIBLE UNDER APPLICABLE LAW, DISCLAIMS ALL WARRANTIES, WHETHER EXPLICITLY OR IMPLICITLY, + * INCLUDING WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE, AND NONINFRINGEMENT, WITH RESPECT TO THE + * SOFTWARE OR DOCUMENTATION. RENESAS SHALL HAVE NO LIABILITY ARISING OUT OF ANY SECURITY VULNERABILITY OR BREACH. + * TO THE MAXIMUM EXTENT PERMITTED BY LAW, IN NO EVENT WILL RENESAS BE LIABLE TO YOU IN CONNECTION WITH THE SOFTWARE OR + * DOCUMENTATION (OR ANY PERSON OR ENTITY CLAIMING RIGHTS DERIVED FROM YOU) FOR ANY LOSS, DAMAGES, OR CLAIMS WHATSOEVER, + * INCLUDING, WITHOUT LIMITATION, ANY DIRECT, CONSEQUENTIAL, SPECIAL, INDIRECT, PUNITIVE, OR INCIDENTAL DAMAGES; ANY + * LOST PROFITS, OTHER ECONOMIC DAMAGE, PROPERTY DAMAGE, OR PERSONAL INJURY; AND EVEN IF RENESAS HAS BEEN ADVISED OF THE + * POSSIBILITY OF SUCH LOSS, DAMAGES, CLAIMS OR COSTS. + **********************************************************************************************************************/ + +#ifndef BSP_API_H +#define BSP_API_H + +/*********************************************************************************************************************** + * Includes , "Project Includes" + **********************************************************************************************************************/ + +/* FSP Common Includes. */ +#include "fsp_common_api.h" + +/* Gets MCU configuration information. */ +#include "bsp_cfg.h" + +#if defined(__GNUC__) && !defined(__ARMCC_VERSION) + +/* Store warning settings for 'conversion' and 'sign-conversion' to as specified on command line. */ + #pragma GCC diagnostic push + +/* CMSIS-CORE currently generates 2 warnings when compiling with GCC. One in core_cmInstr.h and one in core_cm4_simd.h. + * We are not modifying these files so we will ignore these warnings temporarily. */ + #pragma GCC diagnostic ignored "-Wconversion" + #pragma GCC diagnostic ignored "-Wsign-conversion" +#endif + +/* Vector information for this project. This is generated by the tooling. */ +#include "../../src/bsp/mcu/all/bsp_exceptions.h" +#include "vector_data.h" + +/* CMSIS-CORE Renesas Device Files. Must come after bsp_feature.h, which is included in bsp_cfg.h. */ +#include "../../src/bsp/cmsis/Device/RENESAS/Include/renesas.h" +#include "../../src/bsp/cmsis/Device/RENESAS/Include/system.h" + +#if defined(__GNUC__) && !defined(__ARMCC_VERSION) + +/* Restore warning settings for 'conversion' and 'sign-conversion' to as specified on command line. */ + #pragma GCC diagnostic pop +#endif + +#if defined(BSP_API_OVERRIDE) + #include BSP_API_OVERRIDE +#else + +/* BSP Common Includes. */ + #include "../../src/bsp/mcu/all/bsp_common.h" + +/* BSP MCU Specific Includes. */ + #include "../../src/bsp/mcu/all/bsp_register_protection.h" + #include "../../src/bsp/mcu/all/bsp_irq.h" + #include "../../src/bsp/mcu/all/bsp_io.h" + #include "../../src/bsp/mcu/all/bsp_group_irq.h" + #include "../../src/bsp/mcu/all/bsp_clocks.h" + #include "../../src/bsp/mcu/all/bsp_module_stop.h" + #include "../../src/bsp/mcu/all/bsp_security.h" + +/* Factory MCU information. */ + #include "../../inc/fsp_features.h" + +/* BSP Common Includes (Other than bsp_common.h) */ + #include "../../src/bsp/mcu/all/bsp_delay.h" + #include "../../src/bsp/mcu/all/bsp_mcu_api.h" + +#endif + +/** Common macro for FSP header files. There is also a corresponding FSP_FOOTER macro at the end of this file. */ +FSP_HEADER + +/*********************************************************************************************************************** + * Typedef definitions + **********************************************************************************************************************/ + +/*********************************************************************************************************************** + * Exported global variables + **********************************************************************************************************************/ + +/*********************************************************************************************************************** + * Exported global functions (to be accessed by other files) + **********************************************************************************************************************/ + +/*******************************************************************************************************************//** + * @addtogroup BSP_MCU + * @{ + **********************************************************************************************************************/ + +fsp_err_t R_FSP_VersionGet(fsp_pack_version_t * const p_version); + +/** @} (end addtogroup BSP_MCU) */ + +/** Common macro for FSP header files. There is also a corresponding FSP_HEADER macro at the top of this file. */ +FSP_FOOTER + +#endif diff --git a/bsp/renesas/rzn2l_rsk/rzn/fsp/inc/api/r_ioport_api.h b/bsp/renesas/rzn2l_rsk/rzn/fsp/inc/api/r_ioport_api.h new file mode 100644 index 0000000000..d6b3049b84 --- /dev/null +++ b/bsp/renesas/rzn2l_rsk/rzn/fsp/inc/api/r_ioport_api.h @@ -0,0 +1,206 @@ +/*********************************************************************************************************************** + * Copyright [2020-2024] Renesas Electronics Corporation and/or its affiliates. All Rights Reserved. + * + * This software and documentation are supplied by Renesas Electronics Corporation and/or its affiliates and may only + * be used with products of Renesas Electronics Corp. and its affiliates ("Renesas"). No other uses are authorized. + * Renesas products are sold pursuant to Renesas terms and conditions of sale. Purchasers are solely responsible for + * the selection and use of Renesas products and Renesas assumes no liability. No license, express or implied, to any + * intellectual property right is granted by Renesas. This software is protected under all applicable laws, including + * copyright laws. Renesas reserves the right to change or discontinue this software and/or this documentation. + * THE SOFTWARE AND DOCUMENTATION IS DELIVERED TO YOU "AS IS," AND RENESAS MAKES NO REPRESENTATIONS OR WARRANTIES, AND + * TO THE FULLEST EXTENT PERMISSIBLE UNDER APPLICABLE LAW, DISCLAIMS ALL WARRANTIES, WHETHER EXPLICITLY OR IMPLICITLY, + * INCLUDING WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE, AND NONINFRINGEMENT, WITH RESPECT TO THE + * SOFTWARE OR DOCUMENTATION. RENESAS SHALL HAVE NO LIABILITY ARISING OUT OF ANY SECURITY VULNERABILITY OR BREACH. + * TO THE MAXIMUM EXTENT PERMITTED BY LAW, IN NO EVENT WILL RENESAS BE LIABLE TO YOU IN CONNECTION WITH THE SOFTWARE OR + * DOCUMENTATION (OR ANY PERSON OR ENTITY CLAIMING RIGHTS DERIVED FROM YOU) FOR ANY LOSS, DAMAGES, OR CLAIMS WHATSOEVER, + * INCLUDING, WITHOUT LIMITATION, ANY DIRECT, CONSEQUENTIAL, SPECIAL, INDIRECT, PUNITIVE, OR INCIDENTAL DAMAGES; ANY + * LOST PROFITS, OTHER ECONOMIC DAMAGE, PROPERTY DAMAGE, OR PERSONAL INJURY; AND EVEN IF RENESAS HAS BEEN ADVISED OF THE + * POSSIBILITY OF SUCH LOSS, DAMAGES, CLAIMS OR COSTS. + **********************************************************************************************************************/ + +/*******************************************************************************************************************//** + * @ingroup RENESAS_SYSTEM_INTERFACES + * @defgroup IOPORT_API I/O Port Interface + * @brief Interface for accessing I/O ports and configuring I/O functionality. + * + * @section IOPORT_API_SUMMARY Summary + * The IOPort shared interface provides the ability to access the IOPorts of a device at both bit and port level. + * Port and pin direction can be changed. + * + * + * @{ + **********************************************************************************************************************/ + +#ifndef R_IOPORT_API_H +#define R_IOPORT_API_H + +/*********************************************************************************************************************** + * Includes + **********************************************************************************************************************/ + +/* Common error codes and definitions. */ +#include "bsp_api.h" + +/* Common macro for FSP header files. There is also a corresponding FSP_FOOTER macro at the end of this file. */ +FSP_HEADER + +/********************************************************************************************************************** + * Macro definitions + **********************************************************************************************************************/ + +/********************************************************************************************************************** + * Typedef definitions + **********************************************************************************************************************/ +#ifndef BSP_OVERRIDE_IOPORT_SIZE_T + +/** IO port type used with ports */ +typedef uint16_t ioport_size_t; ///< IO port size +#endif + +/** Pin identifier and pin configuration value */ +typedef struct st_ioport_pin_cfg +{ + uint32_t pin_cfg; ///< Pin configuration - Use ioport_cfg_options_t parameters to configure + bsp_io_port_pin_t pin; ///< Pin identifier +} ioport_pin_cfg_t; + +/** Multiple pin configuration data for loading into registers by R_IOPORT_Open() */ +typedef struct st_ioport_cfg +{ + uint16_t number_of_pins; ///< Number of pins for which there is configuration data + ioport_pin_cfg_t const * p_pin_cfg_data; ///< Pin configuration data + const void * p_extend; ///< Pointer to hardware extend configuration +} ioport_cfg_t; + +/** IOPORT control block. Allocate an instance specific control block to pass into the IOPORT API calls. + */ +typedef void ioport_ctrl_t; + +/** IOPort driver structure. IOPort functions implemented at the HAL layer will follow this API. */ +typedef struct st_ioport_api +{ + /** Initialize internal driver data and initial pin configurations. Called during startup. Do + * not call this API during runtime. Use @ref ioport_api_t::pinsCfg for runtime reconfiguration of + * multiple pins. + * + * @param[in] p_ctrl Pointer to control structure. Must be declared by user. Elements set here. + * @param[in] p_cfg Pointer to pin configuration data array. + */ + fsp_err_t (* open)(ioport_ctrl_t * const p_ctrl, const ioport_cfg_t * p_cfg); + + /** Close the API. + * + * @param[in] p_ctrl Pointer to control structure. + **/ + fsp_err_t (* close)(ioport_ctrl_t * const p_ctrl); + + /** Configure multiple pins. + * + * @param[in] p_ctrl Pointer to control structure. + * @param[in] p_cfg Pointer to pin configuration data array. + */ + fsp_err_t (* pinsCfg)(ioport_ctrl_t * const p_ctrl, const ioport_cfg_t * p_cfg); + + /** Configure settings for an individual pin. + * + * @param[in] p_ctrl Pointer to control structure. + * @param[in] pin Pin to be read. + * @param[in] cfg Configuration options for the pin. + */ + fsp_err_t (* pinCfg)(ioport_ctrl_t * const p_ctrl, bsp_io_port_pin_t pin, uint32_t cfg); + + /** Read the event input data of the specified pin and return the level. + * + * @param[in] p_ctrl Pointer to control structure. + * @param[in] pin Pin to be read. + * @param[in] p_pin_event Pointer to return the event data. + */ + fsp_err_t (* pinEventInputRead)(ioport_ctrl_t * const p_ctrl, bsp_io_port_pin_t pin, bsp_io_level_t * p_pin_event); + + /** Write pin event data. + * + * @param[in] p_ctrl Pointer to control structure. + * @param[in] pin Pin event data is to be written to. + * @param[in] pin_value Level to be written to pin output event. + */ + fsp_err_t (* pinEventOutputWrite)(ioport_ctrl_t * const p_ctrl, bsp_io_port_pin_t pin, bsp_io_level_t pin_value); + + /** Read level of a pin. + * + * @param[in] p_ctrl Pointer to control structure. + * @param[in] pin Pin to be read. + * @param[in] p_pin_value Pointer to return the pin level. + */ + fsp_err_t (* pinRead)(ioport_ctrl_t * const p_ctrl, bsp_io_port_pin_t pin, bsp_io_level_t * p_pin_value); + + /** Write specified level to a pin. + * + * @param[in] p_ctrl Pointer to control structure. + * @param[in] pin Pin to be written to. + * @param[in] level State to be written to the pin. + */ + fsp_err_t (* pinWrite)(ioport_ctrl_t * const p_ctrl, bsp_io_port_pin_t pin, bsp_io_level_t level); + + /** Set the direction of one or more pins on a port. + * + * @param[in] p_ctrl Pointer to control structure. + * @param[in] port Port being configured. + * @param[in] direction_values Value controlling direction of pins on port. + * @param[in] mask Mask controlling which pins on the port are to be configured. + */ + fsp_err_t (* portDirectionSet)(ioport_ctrl_t * const p_ctrl, bsp_io_port_t port, ioport_size_t direction_values, + ioport_size_t mask); + + /** Read captured event data for a port. + * + * @param[in] p_ctrl Pointer to control structure. + * @param[in] port Port to be read. + * @param[in] p_event_data Pointer to return the event data. + */ + fsp_err_t (* portEventInputRead)(ioport_ctrl_t * const p_ctrl, bsp_io_port_t port, ioport_size_t * p_event_data); + + /** Write event output data for a port. + * + * @param[in] p_ctrl Pointer to control structure. + * @param[in] port Port event data will be written to. + * @param[in] event_data Data to be written as event data to specified port. + * @param[in] mask_value Each bit set to 1 in the mask corresponds to that bit's value in event data. + * being written to port. + */ + fsp_err_t (* portEventOutputWrite)(ioport_ctrl_t * const p_ctrl, bsp_io_port_t port, ioport_size_t event_data, + ioport_size_t mask_value); + + /** Read states of pins on the specified port. + * + * @param[in] p_ctrl Pointer to control structure. + * @param[in] port Port to be read. + * @param[in] p_port_value Pointer to return the port value. + */ + fsp_err_t (* portRead)(ioport_ctrl_t * const p_ctrl, bsp_io_port_t port, ioport_size_t * p_port_value); + + /** Write to multiple pins on a port. + * + * @param[in] p_ctrl Pointer to control structure. + * @param[in] port Port to be written to. + * @param[in] value Value to be written to the port. + * @param[in] mask Mask controlling which pins on the port are written to. + */ + fsp_err_t (* portWrite)(ioport_ctrl_t * const p_ctrl, bsp_io_port_t port, ioport_size_t value, ioport_size_t mask); +} ioport_api_t; + +/** This structure encompasses everything that is needed to use an instance of this interface. */ +typedef struct st_ioport_instance +{ + ioport_ctrl_t * p_ctrl; ///< Pointer to the control structure for this instance + ioport_cfg_t const * p_cfg; ///< Pointer to the configuration structure for this instance + ioport_api_t const * p_api; ///< Pointer to the API structure for this instance +} ioport_instance_t; + +/* Common macro for FSP header files. There is also a corresponding FSP_HEADER macro at the top of this file. */ +FSP_FOOTER + +#endif + +/*******************************************************************************************************************//** + * @} (end defgroup IOPORT_API) + **********************************************************************************************************************/ diff --git a/bsp/renesas/rzn2l_rsk/rzn/fsp/inc/api/r_transfer_api.h b/bsp/renesas/rzn2l_rsk/rzn/fsp/inc/api/r_transfer_api.h new file mode 100644 index 0000000000..530c88dc9d --- /dev/null +++ b/bsp/renesas/rzn2l_rsk/rzn/fsp/inc/api/r_transfer_api.h @@ -0,0 +1,402 @@ +/*********************************************************************************************************************** + * Copyright [2020-2024] Renesas Electronics Corporation and/or its affiliates. All Rights Reserved. + * + * This software and documentation are supplied by Renesas Electronics Corporation and/or its affiliates and may only + * be used with products of Renesas Electronics Corp. and its affiliates ("Renesas"). No other uses are authorized. + * Renesas products are sold pursuant to Renesas terms and conditions of sale. Purchasers are solely responsible for + * the selection and use of Renesas products and Renesas assumes no liability. No license, express or implied, to any + * intellectual property right is granted by Renesas. This software is protected under all applicable laws, including + * copyright laws. Renesas reserves the right to change or discontinue this software and/or this documentation. + * THE SOFTWARE AND DOCUMENTATION IS DELIVERED TO YOU "AS IS," AND RENESAS MAKES NO REPRESENTATIONS OR WARRANTIES, AND + * TO THE FULLEST EXTENT PERMISSIBLE UNDER APPLICABLE LAW, DISCLAIMS ALL WARRANTIES, WHETHER EXPLICITLY OR IMPLICITLY, + * INCLUDING WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE, AND NONINFRINGEMENT, WITH RESPECT TO THE + * SOFTWARE OR DOCUMENTATION. RENESAS SHALL HAVE NO LIABILITY ARISING OUT OF ANY SECURITY VULNERABILITY OR BREACH. + * TO THE MAXIMUM EXTENT PERMITTED BY LAW, IN NO EVENT WILL RENESAS BE LIABLE TO YOU IN CONNECTION WITH THE SOFTWARE OR + * DOCUMENTATION (OR ANY PERSON OR ENTITY CLAIMING RIGHTS DERIVED FROM YOU) FOR ANY LOSS, DAMAGES, OR CLAIMS WHATSOEVER, + * INCLUDING, WITHOUT LIMITATION, ANY DIRECT, CONSEQUENTIAL, SPECIAL, INDIRECT, PUNITIVE, OR INCIDENTAL DAMAGES; ANY + * LOST PROFITS, OTHER ECONOMIC DAMAGE, PROPERTY DAMAGE, OR PERSONAL INJURY; AND EVEN IF RENESAS HAS BEEN ADVISED OF THE + * POSSIBILITY OF SUCH LOSS, DAMAGES, CLAIMS OR COSTS. + **********************************************************************************************************************/ + +/*******************************************************************************************************************//** + * @ingroup RENESAS_TRANSFER_INTERFACES + * @defgroup TRANSFER_API Transfer Interface + * + * @brief Interface for data transfer functions. + * + * @section TRANSFER_API_SUMMARY Summary + * The transfer interface supports background data transfer (no CPU intervention). + * + * + * @{ + **********************************************************************************************************************/ + +#ifndef R_TRANSFER_API_H +#define R_TRANSFER_API_H + +/*********************************************************************************************************************** + * Includes + **********************************************************************************************************************/ + +/* Common error codes and definitions. */ +#include "bsp_api.h" + +/* Common macro for FSP header files. There is also a corresponding FSP_FOOTER macro at the end of this file. */ +FSP_HEADER + +/********************************************************************************************************************** + * Macro definitions + **********************************************************************************************************************/ + +#define TRANSFER_SETTINGS_MODE_BITS (30U) +#define TRANSFER_SETTINGS_SIZE_BITS (28U) +#define TRANSFER_SETTINGS_SRC_ADDR_BITS (26U) +#define TRANSFER_SETTINGS_CHAIN_MODE_BITS (22U) +#define TRANSFER_SETTINGS_IRQ_BITS (21U) +#define TRANSFER_SETTINGS_REPEAT_AREA_BITS (20U) +#define TRANSFER_SETTINGS_DEST_ADDR_BITS (18U) + +/********************************************************************************************************************** + * Typedef definitions + **********************************************************************************************************************/ + +/** Transfer control block. Allocate an instance specific control block to pass into the transfer API calls. + */ +typedef void transfer_ctrl_t; + +#ifndef BSP_OVERRIDE_TRANSFER_MODE_T + +/** Transfer mode describes what will happen when a transfer request occurs. */ +typedef enum e_transfer_mode +{ + /** In normal mode, each transfer request causes a transfer of @ref transfer_size_t from the source pointer to + * the destination pointer. The transfer length is decremented and the source and address pointers are + * updated according to @ref transfer_addr_mode_t. After the transfer length reaches 0, transfer requests + * will not cause any further transfers. */ + TRANSFER_MODE_NORMAL = 0, + + /** Repeat mode is like normal mode, except that when the transfer length reaches 0, the pointer to the + * repeat area and the transfer length will be reset to their initial values. If DMAC is used, the + * transfer repeats only transfer_info_t::num_blocks times. After the transfer repeats + * transfer_info_t::num_blocks times, transfer requests will not cause any further transfers. If DTC is + * used, the transfer repeats continuously (no limit to the number of repeat transfers). */ + TRANSFER_MODE_REPEAT = 1, + + /** In block mode, each transfer request causes transfer_info_t::length transfers of @ref transfer_size_t. + * After each individual transfer, the source and destination pointers are updated according to + * @ref transfer_addr_mode_t. After the block transfer is complete, transfer_info_t::num_blocks is + * decremented. After the transfer_info_t::num_blocks reaches 0, transfer requests will not cause any + * further transfers. */ + TRANSFER_MODE_BLOCK = 2, + + /** In addition to block mode features, repeat-block mode supports a ring buffer of blocks and offsets + * within a block (to split blocks into arrays of their first data, second data, etc.) */ + TRANSFER_MODE_REPEAT_BLOCK = 3 +} transfer_mode_t; + +#endif + +#ifndef BSP_OVERRIDE_TRANSFER_SIZE_T + +/** Transfer size specifies the size of each individual transfer. + * Total transfer length = transfer_size_t * transfer_length_t + */ +typedef enum e_transfer_size +{ + TRANSFER_SIZE_1_BYTE = 0, ///< Each transfer transfers a 8-bit value + TRANSFER_SIZE_2_BYTE = 1, ///< Each transfer transfers a 16-bit value + TRANSFER_SIZE_4_BYTE = 2 ///< Each transfer transfers a 32-bit value +} transfer_size_t; + +#endif + +#ifndef BSP_OVERRIDE_TRANSFER_ADDR_MODE_T + +/** Address mode specifies whether to modify (increment or decrement) pointer after each transfer. */ +typedef enum e_transfer_addr_mode +{ + /** Address pointer remains fixed after each transfer. */ + TRANSFER_ADDR_MODE_FIXED = 0, + + /** Offset is added to the address pointer after each transfer. */ + TRANSFER_ADDR_MODE_OFFSET = 1, + + /** Address pointer is incremented by associated @ref transfer_size_t after each transfer. */ + TRANSFER_ADDR_MODE_INCREMENTED = 2, + + /** Address pointer is decremented by associated @ref transfer_size_t after each transfer. */ + TRANSFER_ADDR_MODE_DECREMENTED = 3 +} transfer_addr_mode_t; + +#endif + +#ifndef BSP_OVERRIDE_TRANSFER_REPEAT_AREA_T + +/** Repeat area options (source or destination). In @ref TRANSFER_MODE_REPEAT, the selected pointer returns to its + * original value after transfer_info_t::length transfers. In @ref TRANSFER_MODE_BLOCK and @ref TRANSFER_MODE_REPEAT_BLOCK, + * the selected pointer returns to its original value after each transfer. */ +typedef enum e_transfer_repeat_area +{ + /** Destination area repeated in @ref TRANSFER_MODE_REPEAT or @ref TRANSFER_MODE_BLOCK or @ref TRANSFER_MODE_REPEAT_BLOCK. */ + TRANSFER_REPEAT_AREA_DESTINATION = 0, + + /** Source area repeated in @ref TRANSFER_MODE_REPEAT or @ref TRANSFER_MODE_BLOCK or @ref TRANSFER_MODE_REPEAT_BLOCK. */ + TRANSFER_REPEAT_AREA_SOURCE = 1 +} transfer_repeat_area_t; + +#endif + +#ifndef BSP_OVERRIDE_TRANSFER_CHAIN_MODE_T + +/** Chain transfer mode options. + * @note Only applies for DTC. */ +typedef enum e_transfer_chain_mode +{ + /** Chain mode not used. */ + TRANSFER_CHAIN_MODE_DISABLED = 0, + + /** Switch to next transfer after a single transfer from this @ref transfer_info_t. */ + TRANSFER_CHAIN_MODE_EACH = 2, + + /** Complete the entire transfer defined in this @ref transfer_info_t before chaining to next transfer. */ + TRANSFER_CHAIN_MODE_END = 3 +} transfer_chain_mode_t; + +#endif + +#ifndef BSP_OVERRIDE_TRANSFER_IRQ_T + +/** Interrupt options. */ +typedef enum e_transfer_irq +{ + /** Interrupt occurs only after last transfer. If this transfer is chained to a subsequent transfer, + * the interrupt will occur only after subsequent chained transfer(s) are complete. + * @warning DTC triggers the interrupt of the activation source. Choosing TRANSFER_IRQ_END with DTC will + * prevent activation source interrupts until the transfer is complete. */ + TRANSFER_IRQ_END = 0, + + /** Interrupt occurs after each transfer. + * @note Not available in all HAL drivers. See HAL driver for details. */ + TRANSFER_IRQ_EACH = 1 +} transfer_irq_t; + +#endif + +#ifndef BSP_OVERRIDE_TRANSFER_CALLBACK_ARGS_T + +/** Callback function parameter data. */ +typedef struct st_transfer_callback_args_t +{ + void const * p_context; ///< Placeholder for user data. Set in @ref transfer_api_t::open function in ::transfer_cfg_t. +} transfer_callback_args_t; + +#endif + +/** Driver specific information. */ +typedef struct st_transfer_properties +{ + uint32_t block_count_max; ///< Maximum number of blocks + uint32_t block_count_remaining; ///< Number of blocks remaining + uint32_t transfer_length_max; ///< Maximum number of transfers + uint32_t transfer_length_remaining; ///< Number of transfers remaining +} transfer_properties_t; + +#ifndef BSP_OVERRIDE_TRANSFER_INFO_T + +/** This structure specifies the properties of the transfer. + * @warning When using DTC, this structure corresponds to the descriptor block registers required by the DTC. + * The following components may be modified by the driver: p_src, p_dest, num_blocks, and length. + * @warning When using DTC, do NOT reuse this structure to configure multiple transfers. Each transfer must + * have a unique transfer_info_t. + * @warning When using DTC, this structure must not be allocated in a temporary location. Any instance of this + * structure must remain in scope until the transfer it is used for is closed. + * @note When using DTC, consider placing instances of this structure in a protected section of memory. */ +typedef struct st_transfer_info +{ + union + { + struct + { + uint32_t : 16; + uint32_t : 2; + + /** Select what happens to destination pointer after each transfer. */ + transfer_addr_mode_t dest_addr_mode : 2; + + /** Select to repeat source or destination area, unused in @ref TRANSFER_MODE_NORMAL. */ + transfer_repeat_area_t repeat_area : 1; + + /** Select if interrupts should occur after each individual transfer or after the completion of all planned + * transfers. */ + transfer_irq_t irq : 1; + + /** Select when the chain transfer ends. */ + transfer_chain_mode_t chain_mode : 2; + + uint32_t : 2; + + /** Select what happens to source pointer after each transfer. */ + transfer_addr_mode_t src_addr_mode : 2; + + /** Select number of bytes to transfer at once. @see transfer_info_t::length. */ + transfer_size_t size : 2; + + /** Select mode from @ref transfer_mode_t. */ + transfer_mode_t mode : 2; + } transfer_settings_word_b; + + uint32_t transfer_settings_word; + }; + + void const * volatile p_src; ///< Source pointer + void * volatile p_dest; ///< Destination pointer + + /** Number of blocks to transfer when using @ref TRANSFER_MODE_BLOCK (both DTC an DMAC) or + * @ref TRANSFER_MODE_REPEAT (DMAC only) or + * @ref TRANSFER_MODE_REPEAT_BLOCK (DMAC only), unused in other modes. */ + volatile uint16_t num_blocks; + + /** Length of each transfer. Range limited for @ref TRANSFER_MODE_BLOCK, @ref TRANSFER_MODE_REPEAT, + * and @ref TRANSFER_MODE_REPEAT_BLOCK + * see HAL driver for details. */ + volatile uint16_t length; +} transfer_info_t; + +#endif + +/** Driver configuration set in @ref transfer_api_t::open. All elements except p_extend are required and must be + * initialized. */ +typedef struct st_transfer_cfg +{ + /** Pointer to transfer configuration options. If using chain transfer (DTC only), this can be a pointer to + * an array of chained transfers that will be completed in order. */ + transfer_info_t * p_info; + + void const * p_extend; ///< Extension parameter for hardware specific settings. +} transfer_cfg_t; + +/** Select whether to start single or repeated transfer with software start. */ +typedef enum e_transfer_start_mode +{ + TRANSFER_START_MODE_SINGLE = 0, ///< Software start triggers single transfer. + TRANSFER_START_MODE_REPEAT = 1 ///< Software start transfer continues until transfer is complete. +} transfer_start_mode_t; + +/** Transfer functions implemented at the HAL layer will follow this API. */ +typedef struct st_transfer_api +{ + /** Initial configuration. + * + * @param[in,out] p_ctrl Pointer to control block. Must be declared by user. Elements set here. + * @param[in] p_cfg Pointer to configuration structure. All elements of this structure + * must be set by user. + */ + fsp_err_t (* open)(transfer_ctrl_t * const p_ctrl, transfer_cfg_t const * const p_cfg); + + /** Reconfigure the transfer. + * Enable the transfer if p_info is valid. + * + * @param[in,out] p_ctrl Pointer to control block. Must be declared by user. Elements set here. + * @param[in] p_info Pointer to a new transfer info structure. + */ + fsp_err_t (* reconfigure)(transfer_ctrl_t * const p_ctrl, transfer_info_t * p_info); + + /** Reset source address pointer, destination address pointer, and/or length, keeping all other settings the same. + * Enable the transfer if p_src, p_dest, and length are valid. + * + * @param[in] p_ctrl Control block set in @ref transfer_api_t::open call for this transfer. + * @param[in] p_src Pointer to source. Set to NULL if source pointer should not change. + * @param[in] p_dest Pointer to destination. Set to NULL if destination pointer should not change. + * @param[in] num_transfers Transfer length in normal mode or number of blocks in block mode. In DMAC only, + * resets number of repeats (initially stored in transfer_info_t::num_blocks) in + * repeat mode. Not used in repeat mode for DTC. + */ + fsp_err_t (* reset)(transfer_ctrl_t * const p_ctrl, void const * p_src, void * p_dest, + uint16_t const num_transfers); + + /** Enable transfer. Transfers occur after the activation source event (or when + * @ref transfer_api_t::softwareStart is called if no peripheral event is chosen as activation source). + * + * @param[in] p_ctrl Control block set in @ref transfer_api_t::open call for this transfer. + */ + fsp_err_t (* enable)(transfer_ctrl_t * const p_ctrl); + + /** Disable transfer. Transfers do not occur after the activation source event (or when + * @ref transfer_api_t::softwareStart is called if no peripheral event is chosen as the DMAC activation source). + * @note If a transfer is in progress, it will be completed. Subsequent transfer requests do not cause a + * transfer. + * + * @param[in] p_ctrl Control block set in @ref transfer_api_t::open call for this transfer. + */ + fsp_err_t (* disable)(transfer_ctrl_t * const p_ctrl); + + /** Start transfer in software. + * @warning Only works if no peripheral event is chosen as the DMAC activation source. + * @note Not supported for DTC. + * + * @param[in] p_ctrl Control block set in @ref transfer_api_t::open call for this transfer. + * @param[in] mode Select mode from @ref transfer_start_mode_t. + */ + fsp_err_t (* softwareStart)(transfer_ctrl_t * const p_ctrl, transfer_start_mode_t mode); + + /** Stop transfer in software. The transfer will stop after completion of the current transfer. + * @note Not supported for DTC. + * @note Only applies for transfers started with TRANSFER_START_MODE_REPEAT. + * @warning Only works if no peripheral event is chosen as the DMAC activation source. + * + * @param[in] p_ctrl Control block set in @ref transfer_api_t::open call for this transfer. + */ + fsp_err_t (* softwareStop)(transfer_ctrl_t * const p_ctrl); + + /** Provides information about this transfer. + * + * @param[in] p_ctrl Control block set in @ref transfer_api_t::open call for this transfer. + * @param[out] p_properties Driver specific information. + */ + fsp_err_t (* infoGet)(transfer_ctrl_t * const p_ctrl, transfer_properties_t * const p_properties); + + /** Releases hardware lock. This allows a transfer to be reconfigured using @ref transfer_api_t::open. + * + * @param[in] p_ctrl Control block set in @ref transfer_api_t::open call for this transfer. + */ + fsp_err_t (* close)(transfer_ctrl_t * const p_ctrl); + + /** To update next transfer information without interruption during transfer. + * Allow further transfer continuation. + * + * @param[in] p_ctrl Control block set in @ref transfer_api_t::open call for this transfer. + * @param[in] p_src Pointer to source. Set to NULL if source pointer should not change. + * @param[in] p_dest Pointer to destination. Set to NULL if destination pointer should not change. + * @param[in] num_transfers Transfer length in normal mode or block mode. + */ + fsp_err_t (* reload)(transfer_ctrl_t * const p_ctrl, void const * p_src, void * p_dest, + uint32_t const num_transfers); + + /** Specify callback function and optional context pointer and working memory pointer. + * + * @param[in] p_ctrl Control block set in @ref transfer_api_t::open call for this transfer. + * @param[in] p_callback Callback function to register + * @param[in] p_context Pointer to send to callback function + * @param[in] p_callback_memory Pointer to volatile memory where callback structure can be allocated. + * Callback arguments allocated here are only valid during the callback. + */ + fsp_err_t (* callbackSet)(transfer_ctrl_t * const p_ctrl, void (* p_callback)(transfer_callback_args_t *), + void const * const p_context, transfer_callback_args_t * const p_callback_memory); +} transfer_api_t; + +/** This structure encompasses everything that is needed to use an instance of this interface. */ +typedef struct st_transfer_instance +{ + transfer_ctrl_t * p_ctrl; ///< Pointer to the control structure for this instance + transfer_cfg_t const * p_cfg; ///< Pointer to the configuration structure for this instance + transfer_api_t const * p_api; ///< Pointer to the API structure for this instance +} transfer_instance_t; + +/* Common macro for FSP header files. There is also a corresponding FSP_HEADER macro at the top of this file. */ +FSP_FOOTER + +#endif + +/*******************************************************************************************************************//** + * @} (end defgroup TRANSFER_API) + **********************************************************************************************************************/ diff --git a/bsp/renesas/rzn2l_rsk/rzn/fsp/inc/api/r_uart_api.h b/bsp/renesas/rzn2l_rsk/rzn/fsp/inc/api/r_uart_api.h new file mode 100644 index 0000000000..23585bd390 --- /dev/null +++ b/bsp/renesas/rzn2l_rsk/rzn/fsp/inc/api/r_uart_api.h @@ -0,0 +1,268 @@ +/*********************************************************************************************************************** + * Copyright [2020-2024] Renesas Electronics Corporation and/or its affiliates. All Rights Reserved. + * + * This software and documentation are supplied by Renesas Electronics Corporation and/or its affiliates and may only + * be used with products of Renesas Electronics Corp. and its affiliates ("Renesas"). No other uses are authorized. + * Renesas products are sold pursuant to Renesas terms and conditions of sale. Purchasers are solely responsible for + * the selection and use of Renesas products and Renesas assumes no liability. No license, express or implied, to any + * intellectual property right is granted by Renesas. This software is protected under all applicable laws, including + * copyright laws. Renesas reserves the right to change or discontinue this software and/or this documentation. + * THE SOFTWARE AND DOCUMENTATION IS DELIVERED TO YOU "AS IS," AND RENESAS MAKES NO REPRESENTATIONS OR WARRANTIES, AND + * TO THE FULLEST EXTENT PERMISSIBLE UNDER APPLICABLE LAW, DISCLAIMS ALL WARRANTIES, WHETHER EXPLICITLY OR IMPLICITLY, + * INCLUDING WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE, AND NONINFRINGEMENT, WITH RESPECT TO THE + * SOFTWARE OR DOCUMENTATION. RENESAS SHALL HAVE NO LIABILITY ARISING OUT OF ANY SECURITY VULNERABILITY OR BREACH. + * TO THE MAXIMUM EXTENT PERMITTED BY LAW, IN NO EVENT WILL RENESAS BE LIABLE TO YOU IN CONNECTION WITH THE SOFTWARE OR + * DOCUMENTATION (OR ANY PERSON OR ENTITY CLAIMING RIGHTS DERIVED FROM YOU) FOR ANY LOSS, DAMAGES, OR CLAIMS WHATSOEVER, + * INCLUDING, WITHOUT LIMITATION, ANY DIRECT, CONSEQUENTIAL, SPECIAL, INDIRECT, PUNITIVE, OR INCIDENTAL DAMAGES; ANY + * LOST PROFITS, OTHER ECONOMIC DAMAGE, PROPERTY DAMAGE, OR PERSONAL INJURY; AND EVEN IF RENESAS HAS BEEN ADVISED OF THE + * POSSIBILITY OF SUCH LOSS, DAMAGES, CLAIMS OR COSTS. + **********************************************************************************************************************/ + +/*******************************************************************************************************************//** + * @ingroup RENESAS_CONNECTIVITY_INTERFACES + * @defgroup UART_API UART Interface + * @brief Interface for UART communications. + * + * @section UART_INTERFACE_SUMMARY Summary + * The UART interface provides common APIs for UART HAL drivers. The UART interface supports the following features: + * - Full-duplex UART communication + * - Interrupt driven transmit/receive processing + * - Callback function with returned event code + * - Runtime baud-rate change + * - Hardware resource locking during a transaction + * - CTS/RTS hardware flow control support (with an associated IOPORT pin) + * + * + * @{ + **********************************************************************************************************************/ + +#ifndef R_UART_API_H +#define R_UART_API_H + +/*********************************************************************************************************************** + * Includes + **********************************************************************************************************************/ + +/* Includes board and MCU related header files. */ +#include "bsp_api.h" +#include "r_transfer_api.h" + +/* Common macro for FSP header files. There is also a corresponding FSP_FOOTER macro at the end of this file. */ +FSP_HEADER + +/********************************************************************************************************************** + * Macro definitions + **********************************************************************************************************************/ + +/********************************************************************************************************************** + * Typedef definitions + **********************************************************************************************************************/ + +/** UART Event codes */ +#ifndef BSP_OVERRIDE_UART_EVENT_T +typedef enum e_sf_event +{ + UART_EVENT_RX_COMPLETE = (1UL << 0), ///< Receive complete event + UART_EVENT_TX_COMPLETE = (1UL << 1), ///< Transmit complete event + UART_EVENT_RX_CHAR = (1UL << 2), ///< Character received + UART_EVENT_ERR_PARITY = (1UL << 3), ///< Parity error event + UART_EVENT_ERR_FRAMING = (1UL << 4), ///< Mode fault error event + UART_EVENT_ERR_OVERFLOW = (1UL << 5), ///< FIFO Overflow error event + UART_EVENT_BREAK_DETECT = (1UL << 6), ///< Break detect error event + UART_EVENT_TX_DATA_EMPTY = (1UL << 7), ///< Last byte is transmitting, ready for more data +} uart_event_t; +#endif +#ifndef BSP_OVERRIDE_UART_DATA_BITS_T + +/** UART Data bit length definition */ +typedef enum e_uart_data_bits +{ + UART_DATA_BITS_9 = 0U, ///< Data bits 9-bit + UART_DATA_BITS_8 = 2U, ///< Data bits 8-bit + UART_DATA_BITS_7 = 3U, ///< Data bits 7-bit +} uart_data_bits_t; +#endif +#ifndef BSP_OVERRIDE_UART_PARITY_T + +/** UART Parity definition */ +typedef enum e_uart_parity +{ + UART_PARITY_OFF = 0U, ///< No parity + UART_PARITY_ZERO = 1U, ///< Zero parity + UART_PARITY_EVEN = 2U, ///< Even parity + UART_PARITY_ODD = 3U, ///< Odd parity +} uart_parity_t; +#endif + +/** UART Stop bits definition */ +typedef enum e_uart_stop_bits +{ + UART_STOP_BITS_1 = 0U, ///< Stop bit 1-bit + UART_STOP_BITS_2 = 1U, ///< Stop bits 2-bit +} uart_stop_bits_t; + +/** UART transaction definition */ +typedef enum e_uart_dir +{ + UART_DIR_RX_TX = 3U, ///< Both RX and TX + UART_DIR_RX = 1U, ///< Only RX + UART_DIR_TX = 2U, ///< Only TX +} uart_dir_t; + +/** UART driver specific information */ +typedef struct st_uart_info +{ + /** Maximum bytes that can be written at this time. Only applies if uart_cfg_t::p_transfer_tx is not NULL. */ + uint32_t write_bytes_max; + + /** Maximum bytes that are available to read at one time. Only applies if uart_cfg_t::p_transfer_rx is not NULL. */ + uint32_t read_bytes_max; +} uart_info_t; + +/** UART Callback parameter definition */ +typedef struct st_uart_callback_arg +{ + uint32_t channel; ///< Device channel number + uart_event_t event; ///< Event code + + /** Contains the next character received for the events UART_EVENT_RX_CHAR, UART_EVENT_ERR_PARITY, + * UART_EVENT_ERR_FRAMING, or UART_EVENT_ERR_OVERFLOW. Otherwise unused. */ + uint32_t data; + void const * p_context; ///< Context provided to user during callback +} uart_callback_args_t; + +/** UART Configuration */ +typedef struct st_uart_cfg +{ + /* UART generic configuration */ + uint8_t channel; ///< Select a channel corresponding to the channel number of the hardware. + uart_data_bits_t data_bits; ///< Data bit length (8 or 7 or 9) + uart_parity_t parity; ///< Parity type (none or odd or even) + uart_stop_bits_t stop_bits; ///< Stop bit length (1 or 2) + uint8_t rxi_ipl; ///< Receive interrupt priority + IRQn_Type rxi_irq; ///< Receive interrupt IRQ number + uint8_t txi_ipl; ///< Transmit interrupt priority + IRQn_Type txi_irq; ///< Transmit interrupt IRQ number + uint8_t tei_ipl; ///< Transmit end interrupt priority + IRQn_Type tei_irq; ///< Transmit end interrupt IRQ number + uint8_t eri_ipl; ///< Error interrupt priority + IRQn_Type eri_irq; ///< Error interrupt IRQ number + + /** Optional transfer instance used to receive multiple bytes without interrupts. Set to NULL if unused. + * If NULL, the number of bytes allowed in the read API is limited to one byte at a time. */ + transfer_instance_t const * p_transfer_rx; + + /** Optional transfer instance used to send multiple bytes without interrupts. Set to NULL if unused. + * If NULL, the number of bytes allowed in the write APIs is limited to one byte at a time. */ + transfer_instance_t const * p_transfer_tx; + + /* Configuration for UART Event processing */ + void (* p_callback)(uart_callback_args_t * p_args); ///< Pointer to callback function + void const * p_context; ///< User defined context passed into callback function + + /* Pointer to UART peripheral specific configuration */ + void const * p_extend; ///< UART hardware dependent configuration +} uart_cfg_t; + +/** UART control block. Allocate an instance specific control block to pass into the UART API calls. + */ +typedef void uart_ctrl_t; + +/** Shared Interface definition for UART */ +typedef struct st_uart_api +{ + /** Open UART device. + * + * @param[in,out] p_ctrl Pointer to the UART control block. Must be declared by user. Value set here. + * @param[in] uart_cfg_t Pointer to UART configuration structure. All elements of this structure must be set by + * user. + */ + fsp_err_t (* open)(uart_ctrl_t * const p_ctrl, uart_cfg_t const * const p_cfg); + + /** Read from UART device. The read buffer is used until the read is complete. When a transfer is complete, the + * callback is called with event UART_EVENT_RX_COMPLETE. Bytes received outside an active transfer are received in + * the callback function with event UART_EVENT_RX_CHAR. + * The maximum transfer size is reported by infoGet(). + * + * @param[in] p_ctrl Pointer to the UART control block for the channel. + * @param[in] p_dest Destination address to read data from. + * @param[in] bytes Read data length. + */ + fsp_err_t (* read)(uart_ctrl_t * const p_ctrl, uint8_t * const p_dest, uint32_t const bytes); + + /** Write to UART device. The write buffer is used until write is complete. Do not overwrite write buffer + * contents until the write is finished. When the write is complete (all bytes are fully transmitted on the wire), + * the callback called with event UART_EVENT_TX_COMPLETE. + * The maximum transfer size is reported by infoGet(). + * + * @param[in] p_ctrl Pointer to the UART control block. + * @param[in] p_src Source address to write data to. + * @param[in] bytes Write data length. + */ + fsp_err_t (* write)(uart_ctrl_t * const p_ctrl, uint8_t const * const p_src, uint32_t const bytes); + + /** Change baud rate. + * @warning Calling this API aborts any in-progress transmission and disables reception until the new baud + * settings have been applied. + * + * + * @param[in] p_ctrl Pointer to the UART control block. + * @param[in] p_baudrate_info Pointer to module specific information for configuring baud rate. + */ + fsp_err_t (* baudSet)(uart_ctrl_t * const p_ctrl, void const * const p_baudrate_info); + + /** Get the driver specific information. + * + * @param[in] p_ctrl Pointer to the UART control block. + * @param[in] baudrate Baud rate in bps. + */ + fsp_err_t (* infoGet)(uart_ctrl_t * const p_ctrl, uart_info_t * const p_info); + + /** + * Abort ongoing transfer. + * + * @param[in] p_ctrl Pointer to the UART control block. + * @param[in] communication_to_abort Type of abort request. + */ + fsp_err_t (* communicationAbort)(uart_ctrl_t * const p_ctrl, uart_dir_t communication_to_abort); + + /** + * Specify callback function and optional context pointer and working memory pointer. + * + * @param[in] p_ctrl Pointer to the UART control block. + * @param[in] p_callback Callback function + * @param[in] p_context Pointer to send to callback function + * @param[in] p_working_memory Pointer to volatile memory where callback structure can be allocated. + * Callback arguments allocated here are only valid during the callback. + */ + fsp_err_t (* callbackSet)(uart_ctrl_t * const p_ctrl, void (* p_callback)(uart_callback_args_t *), + void const * const p_context, uart_callback_args_t * const p_callback_memory); + + /** Close UART device. + * + * @param[in] p_ctrl Pointer to the UART control block. + */ + fsp_err_t (* close)(uart_ctrl_t * const p_ctrl); + + /** Stop ongoing read and return the number of bytes remaining in the read. + * + * @param[in] p_ctrl Pointer to the UART control block. + * @param[in,out] remaining_bytes Pointer to location to store remaining bytes for read. + */ + fsp_err_t (* readStop)(uart_ctrl_t * const p_ctrl, uint32_t * remaining_bytes); +} uart_api_t; + +/** This structure encompasses everything that is needed to use an instance of this interface. */ +typedef struct st_uart_instance +{ + uart_ctrl_t * p_ctrl; ///< Pointer to the control structure for this instance + uart_cfg_t const * p_cfg; ///< Pointer to the configuration structure for this instance + uart_api_t const * p_api; ///< Pointer to the API structure for this instance +} uart_instance_t; + +/** @} (end defgroup UART_API) */ + +/* Common macro for FSP header files. There is also a corresponding FSP_HEADER macro at the top of this file. */ +FSP_FOOTER + +#endif diff --git a/bsp/renesas/rzn2l_rsk/rzn/fsp/inc/fsp_common_api.h b/bsp/renesas/rzn2l_rsk/rzn/fsp/inc/fsp_common_api.h new file mode 100644 index 0000000000..6bc678d533 --- /dev/null +++ b/bsp/renesas/rzn2l_rsk/rzn/fsp/inc/fsp_common_api.h @@ -0,0 +1,394 @@ +/*********************************************************************************************************************** + * Copyright [2020-2024] Renesas Electronics Corporation and/or its affiliates. All Rights Reserved. + * + * This software and documentation are supplied by Renesas Electronics Corporation and/or its affiliates and may only + * be used with products of Renesas Electronics Corp. and its affiliates ("Renesas"). No other uses are authorized. + * Renesas products are sold pursuant to Renesas terms and conditions of sale. Purchasers are solely responsible for + * the selection and use of Renesas products and Renesas assumes no liability. No license, express or implied, to any + * intellectual property right is granted by Renesas. This software is protected under all applicable laws, including + * copyright laws. Renesas reserves the right to change or discontinue this software and/or this documentation. + * THE SOFTWARE AND DOCUMENTATION IS DELIVERED TO YOU "AS IS," AND RENESAS MAKES NO REPRESENTATIONS OR WARRANTIES, AND + * TO THE FULLEST EXTENT PERMISSIBLE UNDER APPLICABLE LAW, DISCLAIMS ALL WARRANTIES, WHETHER EXPLICITLY OR IMPLICITLY, + * INCLUDING WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE, AND NONINFRINGEMENT, WITH RESPECT TO THE + * SOFTWARE OR DOCUMENTATION. RENESAS SHALL HAVE NO LIABILITY ARISING OUT OF ANY SECURITY VULNERABILITY OR BREACH. + * TO THE MAXIMUM EXTENT PERMITTED BY LAW, IN NO EVENT WILL RENESAS BE LIABLE TO YOU IN CONNECTION WITH THE SOFTWARE OR + * DOCUMENTATION (OR ANY PERSON OR ENTITY CLAIMING RIGHTS DERIVED FROM YOU) FOR ANY LOSS, DAMAGES, OR CLAIMS WHATSOEVER, + * INCLUDING, WITHOUT LIMITATION, ANY DIRECT, CONSEQUENTIAL, SPECIAL, INDIRECT, PUNITIVE, OR INCIDENTAL DAMAGES; ANY + * LOST PROFITS, OTHER ECONOMIC DAMAGE, PROPERTY DAMAGE, OR PERSONAL INJURY; AND EVEN IF RENESAS HAS BEEN ADVISED OF THE + * POSSIBILITY OF SUCH LOSS, DAMAGES, CLAIMS OR COSTS. + **********************************************************************************************************************/ + +#ifndef FSP_COMMON_API_H +#define FSP_COMMON_API_H + +/*********************************************************************************************************************** + * Includes + **********************************************************************************************************************/ +#include +#include + +/* Includes FSP version macros. */ +#include "fsp_version.h" + +/*******************************************************************************************************************//** + * @ingroup RENESAS_COMMON + * @defgroup RENESAS_ERROR_CODES Common Error Codes + * All FSP modules share these common error codes. + * @{ + **********************************************************************************************************************/ + +/********************************************************************************************************************** + * Macro definitions + **********************************************************************************************************************/ + +/** This macro is used to suppress compiler messages about a parameter not being used in a function. The nice thing + * about using this implementation is that it does not take any extra RAM or ROM. */ + +#define FSP_PARAMETER_NOT_USED(p) (void) ((p)) + +/** Determine if a C++ compiler is being used. + * If so, ensure that standard C is used to process the API information. */ +#if defined(__cplusplus) + #define FSP_CPP_HEADER extern "C" { + #define FSP_CPP_FOOTER } +#else + #define FSP_CPP_HEADER + #define FSP_CPP_FOOTER +#endif + +/** FSP Header and Footer definitions */ +#define FSP_HEADER FSP_CPP_HEADER +#define FSP_FOOTER FSP_CPP_FOOTER + +/* Common macro for FSP header files. There is also a corresponding FSP_FOOTER macro at the end of this file. */ +FSP_HEADER + +/** Macro to be used when argument to function is ignored since function call is NSC and the parameter is statically + * defined on the Secure side. */ +#define FSP_SECURE_ARGUMENT (NULL) + +/********************************************************************************************************************** + * Typedef definitions + **********************************************************************************************************************/ + +/** Common error codes */ +typedef enum e_fsp_err +{ + FSP_SUCCESS = 0, + + FSP_ERR_ASSERTION = 1, ///< A critical assertion has failed + FSP_ERR_INVALID_POINTER = 2, ///< Pointer points to invalid memory location + FSP_ERR_INVALID_ARGUMENT = 3, ///< Invalid input parameter + FSP_ERR_INVALID_CHANNEL = 4, ///< Selected channel does not exist + FSP_ERR_INVALID_MODE = 5, ///< Unsupported or incorrect mode + FSP_ERR_UNSUPPORTED = 6, ///< Selected mode not supported by this API + FSP_ERR_NOT_OPEN = 7, ///< Requested channel is not configured or API not open + FSP_ERR_IN_USE = 8, ///< Channel/peripheral is running/busy + FSP_ERR_OUT_OF_MEMORY = 9, ///< Allocate more memory in the driver's cfg.h + FSP_ERR_HW_LOCKED = 10, ///< Hardware is locked + FSP_ERR_IRQ_BSP_DISABLED = 11, ///< IRQ not enabled in BSP + FSP_ERR_OVERFLOW = 12, ///< Hardware overflow + FSP_ERR_UNDERFLOW = 13, ///< Hardware underflow + FSP_ERR_ALREADY_OPEN = 14, ///< Requested channel is already open in a different configuration + FSP_ERR_APPROXIMATION = 15, ///< Could not set value to exact result + FSP_ERR_CLAMPED = 16, ///< Value had to be limited for some reason + FSP_ERR_INVALID_RATE = 17, ///< Selected rate could not be met + FSP_ERR_ABORTED = 18, ///< An operation was aborted + FSP_ERR_NOT_ENABLED = 19, ///< Requested operation is not enabled + FSP_ERR_TIMEOUT = 20, ///< Timeout error + FSP_ERR_INVALID_BLOCKS = 21, ///< Invalid number of blocks supplied + FSP_ERR_INVALID_ADDRESS = 22, ///< Invalid address supplied + FSP_ERR_INVALID_SIZE = 23, ///< Invalid size/length supplied for operation + FSP_ERR_WRITE_FAILED = 24, ///< Write operation failed + FSP_ERR_ERASE_FAILED = 25, ///< Erase operation failed + FSP_ERR_INVALID_CALL = 26, ///< Invalid function call is made + FSP_ERR_INVALID_HW_CONDITION = 27, ///< Detected hardware is in invalid condition + FSP_ERR_INVALID_FACTORY_FLASH = 28, ///< Factory flash is not available on this MCU + FSP_ERR_INVALID_STATE = 30, ///< API or command not valid in the current state + FSP_ERR_NOT_ERASED = 31, ///< Erase verification failed + FSP_ERR_SECTOR_RELEASE_FAILED = 32, ///< Sector release failed + FSP_ERR_NOT_INITIALIZED = 33, ///< Required initialization not complete + FSP_ERR_NOT_FOUND = 34, ///< The requested item could not be found + FSP_ERR_NO_CALLBACK_MEMORY = 35, ///< Non-secure callback memory not provided for non-secure callback + FSP_ERR_BUFFER_EMPTY = 36, ///< No data available in buffer + FSP_ERR_INVALID_DATA = 37, ///< Accuracy of data is not guaranteed + + /* Start of RTOS only error codes */ + FSP_ERR_INTERNAL = 100, ///< Internal error + FSP_ERR_WAIT_ABORTED = 101, ///< Wait aborted + + /* Start of UART specific */ + FSP_ERR_FRAMING = 200, ///< Framing error occurs + FSP_ERR_BREAK_DETECT = 201, ///< Break signal detects + FSP_ERR_PARITY = 202, ///< Parity error occurs + FSP_ERR_RXBUF_OVERFLOW = 203, ///< Receive queue overflow + FSP_ERR_QUEUE_UNAVAILABLE = 204, ///< Can't open s/w queue + FSP_ERR_INSUFFICIENT_SPACE = 205, ///< Not enough space in transmission circular buffer + FSP_ERR_INSUFFICIENT_DATA = 206, ///< Not enough data in receive circular buffer + + /* Start of SPI specific */ + FSP_ERR_TRANSFER_ABORTED = 300, ///< The data transfer was aborted. + FSP_ERR_MODE_FAULT = 301, ///< Mode fault error. + FSP_ERR_READ_OVERFLOW = 302, ///< Read overflow. + FSP_ERR_SPI_PARITY = 303, ///< Parity error. + FSP_ERR_OVERRUN = 304, ///< Overrun error. + + /* Start of CGC Specific */ + FSP_ERR_CLOCK_INACTIVE = 400, ///< Inactive clock specified as system clock. + FSP_ERR_CLOCK_ACTIVE = 401, ///< Active clock source cannot be modified without stopping first. + FSP_ERR_NOT_STABILIZED = 403, ///< Clock has not stabilized after its been turned on/off + FSP_ERR_PLL_SRC_INACTIVE = 404, ///< PLL initialization attempted when PLL source is turned off + FSP_ERR_OSC_STOP_DET_ENABLED = 405, ///< Illegal attempt to stop LOCO when Oscillation stop is enabled + FSP_ERR_OSC_STOP_DETECTED = 406, ///< The Oscillation stop detection status flag is set + FSP_ERR_OSC_STOP_CLOCK_ACTIVE = 407, ///< Attempt to clear Oscillation Stop Detect Status with PLL/MAIN_OSC active + FSP_ERR_CLKOUT_EXCEEDED = 408, ///< Output on target output clock pin exceeds maximum supported limit + FSP_ERR_USB_MODULE_ENABLED = 409, ///< USB clock configure request with USB Module enabled + FSP_ERR_HARDWARE_TIMEOUT = 410, ///< A register read or write timed out + FSP_ERR_LOW_VOLTAGE_MODE = 411, ///< Invalid clock setting attempted in low voltage mode + + /* Start of FLASH Specific */ + FSP_ERR_PE_FAILURE = 500, ///< Unable to enter Programming mode. + FSP_ERR_CMD_LOCKED = 501, ///< Peripheral in command locked state + FSP_ERR_FCLK = 502, ///< FCLK must be >= 4 MHz + FSP_ERR_INVALID_LINKED_ADDRESS = 503, ///< Function or data are linked at an invalid region of memory + FSP_ERR_BLANK_CHECK_FAILED = 504, ///< Blank check operation failed + + /* Start of CAC Specific */ + FSP_ERR_INVALID_CAC_REF_CLOCK = 600, ///< Measured clock rate < reference clock rate + + /* Start of IIRFA Specific */ + FSP_ERR_INVALID_RESULT = 700, ///< The result of one or more calculations was +/- infinity. + + /* Start of GLCD Specific */ + FSP_ERR_CLOCK_GENERATION = 1000, ///< Clock cannot be specified as system clock + FSP_ERR_INVALID_TIMING_SETTING = 1001, ///< Invalid timing parameter + FSP_ERR_INVALID_LAYER_SETTING = 1002, ///< Invalid layer parameter + FSP_ERR_INVALID_ALIGNMENT = 1003, ///< Invalid memory alignment found + FSP_ERR_INVALID_GAMMA_SETTING = 1004, ///< Invalid gamma correction parameter + FSP_ERR_INVALID_LAYER_FORMAT = 1005, ///< Invalid color format in layer + FSP_ERR_INVALID_UPDATE_TIMING = 1006, ///< Invalid timing for register update + FSP_ERR_INVALID_CLUT_ACCESS = 1007, ///< Invalid access to CLUT entry + FSP_ERR_INVALID_FADE_SETTING = 1008, ///< Invalid fade-in/fade-out setting + FSP_ERR_INVALID_BRIGHTNESS_SETTING = 1009, ///< Invalid gamma correction parameter + + /* Start of JPEG Specific */ + FSP_ERR_JPEG_ERR = 1100, ///< JPEG error + FSP_ERR_JPEG_SOI_NOT_DETECTED = 1101, ///< SOI not detected until EOI detected. + FSP_ERR_JPEG_SOF1_TO_SOFF_DETECTED = 1102, ///< SOF1 to SOFF detected. + FSP_ERR_JPEG_UNSUPPORTED_PIXEL_FORMAT = 1103, ///< Unprovided pixel format detected. + FSP_ERR_JPEG_SOF_ACCURACY_ERROR = 1104, ///< SOF accuracy error: other than 8 detected. + FSP_ERR_JPEG_DQT_ACCURACY_ERROR = 1105, ///< DQT accuracy error: other than 0 detected. + FSP_ERR_JPEG_COMPONENT_ERROR1 = 1106, ///< Component error 1: the number of SOF0 header components detected is other than 1, 3, or 4. + FSP_ERR_JPEG_COMPONENT_ERROR2 = 1107, ///< Component error 2: the number of components differs between SOF0 header and SOS. + FSP_ERR_JPEG_SOF0_DQT_DHT_NOT_DETECTED = 1108, ///< SOF0, DQT, and DHT not detected when SOS detected. + FSP_ERR_JPEG_SOS_NOT_DETECTED = 1109, ///< SOS not detected: SOS not detected until EOI detected. + FSP_ERR_JPEG_EOI_NOT_DETECTED = 1110, ///< EOI not detected (default) + FSP_ERR_JPEG_RESTART_INTERVAL_DATA_NUMBER_ERROR = 1111, ///< Restart interval data number error detected. + FSP_ERR_JPEG_IMAGE_SIZE_ERROR = 1112, ///< Image size error detected. + FSP_ERR_JPEG_LAST_MCU_DATA_NUMBER_ERROR = 1113, ///< Last MCU data number error detected. + FSP_ERR_JPEG_BLOCK_DATA_NUMBER_ERROR = 1114, ///< Block data number error detected. + FSP_ERR_JPEG_BUFFERSIZE_NOT_ENOUGH = 1115, ///< User provided buffer size not enough + FSP_ERR_JPEG_UNSUPPORTED_IMAGE_SIZE = 1116, ///< JPEG Image size is not aligned with MCU + + /* Start of touch panel framework specific */ + FSP_ERR_CALIBRATE_FAILED = 1200, ///< Calibration failed + + /* Start of IIRFA specific */ + FSP_ERR_IIRFA_ECC_1BIT = 1300, ///< 1-bit ECC error detected + FSP_ERR_IIRFA_ECC_2BIT = 1301, ///< 2-bit ECC error detected + + /* Start of IP specific */ + FSP_ERR_IP_HARDWARE_NOT_PRESENT = 1400, ///< Requested IP does not exist on this device + FSP_ERR_IP_UNIT_NOT_PRESENT = 1401, ///< Requested unit does not exist on this device + FSP_ERR_IP_CHANNEL_NOT_PRESENT = 1402, ///< Requested channel does not exist on this device + + /* Start of USB specific */ + FSP_ERR_USB_FAILED = 1500, + FSP_ERR_USB_BUSY = 1501, + FSP_ERR_USB_SIZE_SHORT = 1502, + FSP_ERR_USB_SIZE_OVER = 1503, + FSP_ERR_USB_NOT_OPEN = 1504, + FSP_ERR_USB_NOT_SUSPEND = 1505, + FSP_ERR_USB_PARAMETER = 1506, + + /* Start of Message framework specific */ + FSP_ERR_NO_MORE_BUFFER = 2000, ///< No more buffer found in the memory block pool + FSP_ERR_ILLEGAL_BUFFER_ADDRESS = 2001, ///< Buffer address is out of block memory pool + FSP_ERR_INVALID_WORKBUFFER_SIZE = 2002, ///< Work buffer size is invalid + FSP_ERR_INVALID_MSG_BUFFER_SIZE = 2003, ///< Message buffer size is invalid + FSP_ERR_TOO_MANY_BUFFERS = 2004, ///< Number of buffer is too many + FSP_ERR_NO_SUBSCRIBER_FOUND = 2005, ///< No message subscriber found + FSP_ERR_MESSAGE_QUEUE_EMPTY = 2006, ///< No message found in the message queue + FSP_ERR_MESSAGE_QUEUE_FULL = 2007, ///< No room for new message in the message queue + FSP_ERR_ILLEGAL_SUBSCRIBER_LISTS = 2008, ///< Message subscriber lists is illegal + FSP_ERR_BUFFER_RELEASED = 2009, ///< Buffer has been released + + /* Start of 2DG Driver specific */ + FSP_ERR_D2D_ERROR_INIT = 3000, ///< D/AVE 2D has an error in the initialization + FSP_ERR_D2D_ERROR_DEINIT = 3001, ///< D/AVE 2D has an error in the initialization + FSP_ERR_D2D_ERROR_RENDERING = 3002, ///< D/AVE 2D has an error in the rendering + FSP_ERR_D2D_ERROR_SIZE = 3003, ///< D/AVE 2D has an error in the rendering + + /* Start of ETHER Driver specific */ + FSP_ERR_ETHER_ERROR_NO_DATA = 4000, ///< No Data in Receive buffer. + FSP_ERR_ETHER_ERROR_LINK = 4001, ///< ETHERC/EDMAC has an error in the Auto-negotiation + FSP_ERR_ETHER_ERROR_MAGIC_PACKET_MODE = 4002, ///< As a Magic Packet is being detected, and transmission/reception is not enabled + FSP_ERR_ETHER_ERROR_TRANSMIT_BUFFER_FULL = 4003, ///< Transmit buffer is not empty + FSP_ERR_ETHER_ERROR_FILTERING = 4004, ///< Detect multicast frame when multicast frame filtering enable + FSP_ERR_ETHER_ERROR_PHY_COMMUNICATION = 4005, ///< ETHERC/EDMAC has an error in the phy communication + FSP_ERR_ETHER_RECEIVE_BUFFER_ACTIVE = 4006, ///< Receive buffer is active. + + /* Start of ETHER_PHY Driver specific */ + FSP_ERR_ETHER_PHY_ERROR_LINK = 5000, ///< PHY is not link up. + FSP_ERR_ETHER_PHY_NOT_READY = 5001, ///< PHY has an error in the Auto-negotiation + + /* Start of BYTEQ library specific */ + FSP_ERR_QUEUE_FULL = 10000, ///< Queue is full, cannot queue another data + FSP_ERR_QUEUE_EMPTY = 10001, ///< Queue is empty, no data to dequeue + + /* Start of CTSU Driver specific */ + FSP_ERR_CTSU_SCANNING = 6000, ///< Scanning. + FSP_ERR_CTSU_NOT_GET_DATA = 6001, ///< Not processed previous scan data. + FSP_ERR_CTSU_INCOMPLETE_TUNING = 6002, ///< Incomplete initial offset tuning. + FSP_ERR_CTSU_DIAG_NOT_YET = 6003, ///< Diagnosis of data collected no yet. + FSP_ERR_CTSU_DIAG_LDO_OVER_VOLTAGE = 6004, ///< Diagnosis of LDO over voltage failed. + FSP_ERR_CTSU_DIAG_CCO_HIGH = 6005, ///< Diagnosis of CCO into 19.2uA failed. + FSP_ERR_CTSU_DIAG_CCO_LOW = 6006, ///< Diagnosis of CCO into 2.4uA failed. + FSP_ERR_CTSU_DIAG_SSCG = 6007, ///< Diagnosis of SSCG frequency failed. + FSP_ERR_CTSU_DIAG_DAC = 6008, ///< Diagnosis of non-touch count value failed. + FSP_ERR_CTSU_DIAG_OUTPUT_VOLTAGE = 6009, ///< Diagnosis of LDO output voltage failed. + FSP_ERR_CTSU_DIAG_OVER_VOLTAGE = 6010, ///< Diagnosis of over voltage detection circuit failed. + FSP_ERR_CTSU_DIAG_OVER_CURRENT = 6011, ///< Diagnosis of over current detection circuit failed. + FSP_ERR_CTSU_DIAG_LOAD_RESISTANCE = 6012, ///< Diagnosis of LDO internal resistance value failed. + FSP_ERR_CTSU_DIAG_CURRENT_SOURCE = 6013, ///< Diagnosis of Current source value failed. + FSP_ERR_CTSU_DIAG_SENSCLK_GAIN = 6014, ///< Diagnosis of SENSCLK frequency gain failed. + FSP_ERR_CTSU_DIAG_SUCLK_GAIN = 6015, ///< Diagnosis of SUCLK frequency gain failed. + FSP_ERR_CTSU_DIAG_CLOCK_RECOVERY = 6016, ///< Diagnosis of SUCLK clock recovery function failed. + FSP_ERR_CTSU_DIAG_CFC_GAIN = 6017, ///< Diagnosis of CFC oscillator gain failed. + + /* Start of SDMMC specific */ + FSP_ERR_CARD_INIT_FAILED = 40000, ///< SD card or eMMC device failed to initialize. + FSP_ERR_CARD_NOT_INSERTED = 40001, ///< SD card not installed. + FSP_ERR_DEVICE_BUSY = 40002, ///< Device is holding DAT0 low or another operation is ongoing. + FSP_ERR_CARD_NOT_INITIALIZED = 40004, ///< SD card was removed. + FSP_ERR_CARD_WRITE_PROTECTED = 40005, ///< Media is write protected. + FSP_ERR_TRANSFER_BUSY = 40006, ///< Transfer in progress. + FSP_ERR_RESPONSE = 40007, ///< Card did not respond or responded with an error. + + /* Start of FX_IO specific */ + FSP_ERR_MEDIA_FORMAT_FAILED = 50000, ///< Media format failed. + FSP_ERR_MEDIA_OPEN_FAILED = 50001, ///< Media open failed. + + /* Start of CAN specific */ + FSP_ERR_CAN_DATA_UNAVAILABLE = 60000, ///< No data available. + FSP_ERR_CAN_MODE_SWITCH_FAILED = 60001, ///< Switching operation modes failed. + FSP_ERR_CAN_INIT_FAILED = 60002, ///< Hardware initialization failed. + FSP_ERR_CAN_TRANSMIT_NOT_READY = 60003, ///< Transmit in progress. + FSP_ERR_CAN_RECEIVE_MAILBOX = 60004, ///< Mailbox is setup as a receive mailbox. + FSP_ERR_CAN_TRANSMIT_MAILBOX = 60005, ///< Mailbox is setup as a transmit mailbox. + FSP_ERR_CAN_MESSAGE_LOST = 60006, ///< Receive message has been overwritten or overrun. + FSP_ERR_CAN_TRANSMIT_FIFO_FULL = 60007, ///< Transmit FIFO is full. + + /* Start of SF_WIFI Specific */ + FSP_ERR_WIFI_CONFIG_FAILED = 70000, ///< WiFi module Configuration failed. + FSP_ERR_WIFI_INIT_FAILED = 70001, ///< WiFi module initialization failed. + FSP_ERR_WIFI_TRANSMIT_FAILED = 70002, ///< Transmission failed + FSP_ERR_WIFI_INVALID_MODE = 70003, ///< API called when provisioned in client mode + FSP_ERR_WIFI_FAILED = 70004, ///< WiFi Failed. + FSP_ERR_WIFI_SCAN_COMPLETE = 70005, ///< Wifi scan has completed. + FSP_ERR_WIFI_AP_NOT_CONNECTED = 70006, ///< WiFi module is not connected to access point + FSP_ERR_WIFI_UNKNOWN_AT_CMD = 70007, ///< DA16200 Unknown AT command Error + FSP_ERR_WIFI_INSUF_PARAM = 70008, ///< DA16200 Insufficient parameter + FSP_ERR_WIFI_TOO_MANY_PARAMS = 70009, ///< DA16200 Too many parameters + FSP_ERR_WIFI_INV_PARAM_VAL = 70010, ///< DA16200 Wrong parameter value + FSP_ERR_WIFI_NO_RESULT = 70011, ///< DA16200 No result + FSP_ERR_WIFI_RSP_BUF_OVFLW = 70012, ///< DA16200 Response buffer overflow + FSP_ERR_WIFI_FUNC_NOT_CONFIG = 70013, ///< DA16200 Function is not configured + FSP_ERR_WIFI_NVRAM_WR_FAIL = 70014, ///< DA16200 NVRAM write failure + FSP_ERR_WIFI_RET_MEM_WR_FAIL = 70015, ///< DA16200 Retention memory write failure + FSP_ERR_WIFI_UNKNOWN_ERR = 70016, ///< DA16200 unknown error + + /* Start of SF_CELLULAR Specific */ + FSP_ERR_CELLULAR_CONFIG_FAILED = 80000, ///< Cellular module Configuration failed. + FSP_ERR_CELLULAR_INIT_FAILED = 80001, ///< Cellular module initialization failed. + FSP_ERR_CELLULAR_TRANSMIT_FAILED = 80002, ///< Transmission failed + FSP_ERR_CELLULAR_FW_UPTODATE = 80003, ///< Firmware is uptodate + FSP_ERR_CELLULAR_FW_UPGRADE_FAILED = 80004, ///< Firmware upgrade failed + FSP_ERR_CELLULAR_FAILED = 80005, ///< Cellular Failed. + FSP_ERR_CELLULAR_INVALID_STATE = 80006, ///< API Called in invalid state. + FSP_ERR_CELLULAR_REGISTRATION_FAILED = 80007, ///< Cellular Network registration failed + + /* Start of SF_BLE specific */ + FSP_ERR_BLE_FAILED = 90001, ///< BLE operation failed + FSP_ERR_BLE_INIT_FAILED = 90002, ///< BLE device initialization failed + FSP_ERR_BLE_CONFIG_FAILED = 90003, ///< BLE device configuration failed + FSP_ERR_BLE_PRF_ALREADY_ENABLED = 90004, ///< BLE device Profile already enabled + FSP_ERR_BLE_PRF_NOT_ENABLED = 90005, ///< BLE device not enabled + + /* Start of SF_BLE_ABS specific */ + FSP_ERR_BLE_ABS_INVALID_OPERATION = 91001, ///< Invalid operation is executed. + FSP_ERR_BLE_ABS_NOT_FOUND = 91002, ///< Valid data or free space is not found. + + /* Start of Crypto specific (0x10000) @note Refer to sf_cryoto_err.h for Crypto error code. */ + FSP_ERR_CRYPTO_CONTINUE = 0x10000, ///< Continue executing function + FSP_ERR_CRYPTO_SCE_RESOURCE_CONFLICT = 0x10001, ///< Hardware resource busy + FSP_ERR_CRYPTO_SCE_FAIL = 0x10002, ///< Internal I/O buffer is not empty + FSP_ERR_CRYPTO_SCE_HRK_INVALID_INDEX = 0x10003, ///< Invalid index + FSP_ERR_CRYPTO_SCE_RETRY = 0x10004, ///< Retry + FSP_ERR_CRYPTO_SCE_VERIFY_FAIL = 0x10005, ///< Verify is failed + FSP_ERR_CRYPTO_SCE_ALREADY_OPEN = 0x10006, ///< HW SCE module is already opened + FSP_ERR_CRYPTO_NOT_OPEN = 0x10007, ///< Hardware module is not initialized + FSP_ERR_CRYPTO_UNKNOWN = 0x10008, ///< Some unknown error occurred + FSP_ERR_CRYPTO_NULL_POINTER = 0x10009, ///< Null pointer input as a parameter + FSP_ERR_CRYPTO_NOT_IMPLEMENTED = 0x1000a, ///< Algorithm/size not implemented + FSP_ERR_CRYPTO_RNG_INVALID_PARAM = 0x1000b, ///< An invalid parameter is specified + FSP_ERR_CRYPTO_RNG_FATAL_ERROR = 0x1000c, ///< A fatal error occurred + FSP_ERR_CRYPTO_INVALID_SIZE = 0x1000d, ///< Size specified is invalid + FSP_ERR_CRYPTO_INVALID_STATE = 0x1000e, ///< Function used in an valid state + FSP_ERR_CRYPTO_ALREADY_OPEN = 0x1000f, ///< control block is already opened + FSP_ERR_CRYPTO_INSTALL_KEY_FAILED = 0x10010, ///< Specified input key is invalid. + FSP_ERR_CRYPTO_AUTHENTICATION_FAILED = 0x10011, ///< Authentication failed + FSP_ERR_CRYPTO_SCE_KEY_SET_FAIL = 0x10012, ///< Failure to Init Cipher + FSP_ERR_CRYPTO_SCE_AUTHENTICATION = 0x10013, ///< Authentication failed + FSP_ERR_CRYPTO_SCE_PARAMETER = 0x10014, ///< Input date is illegal. + FSP_ERR_CRYPTO_SCE_PROHIBIT_FUNCTION = 0x10015, ///< An invalid function call occurred. + + /* Start of Crypto RSIP specific (0x10100) */ + FSP_ERR_CRYPTO_RSIP_RESOURCE_CONFLICT = 0x10100, ///< Hardware resource is busy + FSP_ERR_CRYPTO_RSIP_FATAL = 0x10101, ///< Hardware fatal error or unexpected return + FSP_ERR_CRYPTO_RSIP_FAIL = 0x10102, ///< Internal error + FSP_ERR_CRYPTO_RSIP_KEY_SET_FAIL = 0x10103, ///< Input key type is illegal + FSP_ERR_CRYPTO_RSIP_AUTHENTICATION = 0x10104, ///< Authentication failed + + /* Start of SF_CRYPTO specific */ + FSP_ERR_CRYPTO_COMMON_NOT_OPENED = 0x20000, ///< Crypto Framework Common is not opened + FSP_ERR_CRYPTO_HAL_ERROR = 0x20001, ///< Cryoto HAL module returned an error + FSP_ERR_CRYPTO_KEY_BUF_NOT_ENOUGH = 0x20002, ///< Key buffer size is not enough to generate a key + FSP_ERR_CRYPTO_BUF_OVERFLOW = 0x20003, ///< Attempt to write data larger than what the buffer can hold + FSP_ERR_CRYPTO_INVALID_OPERATION_MODE = 0x20004, ///< Invalid operation mode. + FSP_ERR_MESSAGE_TOO_LONG = 0x20005, ///< Message for RSA encryption is too long. + FSP_ERR_RSA_DECRYPTION_ERROR = 0x20006, ///< RSA Decryption error. + + /** @note SF_CRYPTO APIs may return an error code starting from 0x10000 which is of Crypto module. + * Refer to sf_cryoto_err.h for Crypto error codes. + */ + + /* Start of Sensor specific */ + FSP_ERR_SENSOR_INVALID_DATA = 0x30000, ///< Data is invalid. + FSP_ERR_SENSOR_IN_STABILIZATION = 0x30001, ///< Sensor is stabilizing. + FSP_ERR_SENSOR_MEASUREMENT_NOT_FINISHED = 0x30002, ///< Measurement is not finished. + + /* Start of COMMS specific */ + FSP_ERR_COMMS_BUS_NOT_OPEN = 0x40000, ///< Bus is not open. +} fsp_err_t; + +/** @} */ + +/*********************************************************************************************************************** + * Function prototypes + **********************************************************************************************************************/ + +/* Common macro for FSP header files. There is also a corresponding FSP_HEADER macro at the top of this file. */ +FSP_FOOTER + +#endif diff --git a/bsp/renesas/rzn2l_rsk/rzn/fsp/inc/fsp_features.h b/bsp/renesas/rzn2l_rsk/rzn/fsp/inc/fsp_features.h new file mode 100644 index 0000000000..5313968fc2 --- /dev/null +++ b/bsp/renesas/rzn2l_rsk/rzn/fsp/inc/fsp_features.h @@ -0,0 +1,562 @@ +/*********************************************************************************************************************** + * Copyright [2020-2024] Renesas Electronics Corporation and/or its affiliates. All Rights Reserved. + * + * This software and documentation are supplied by Renesas Electronics Corporation and/or its affiliates and may only + * be used with products of Renesas Electronics Corp. and its affiliates ("Renesas"). No other uses are authorized. + * Renesas products are sold pursuant to Renesas terms and conditions of sale. Purchasers are solely responsible for + * the selection and use of Renesas products and Renesas assumes no liability. No license, express or implied, to any + * intellectual property right is granted by Renesas. This software is protected under all applicable laws, including + * copyright laws. Renesas reserves the right to change or discontinue this software and/or this documentation. + * THE SOFTWARE AND DOCUMENTATION IS DELIVERED TO YOU "AS IS," AND RENESAS MAKES NO REPRESENTATIONS OR WARRANTIES, AND + * TO THE FULLEST EXTENT PERMISSIBLE UNDER APPLICABLE LAW, DISCLAIMS ALL WARRANTIES, WHETHER EXPLICITLY OR IMPLICITLY, + * INCLUDING WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE, AND NONINFRINGEMENT, WITH RESPECT TO THE + * SOFTWARE OR DOCUMENTATION. RENESAS SHALL HAVE NO LIABILITY ARISING OUT OF ANY SECURITY VULNERABILITY OR BREACH. + * TO THE MAXIMUM EXTENT PERMITTED BY LAW, IN NO EVENT WILL RENESAS BE LIABLE TO YOU IN CONNECTION WITH THE SOFTWARE OR + * DOCUMENTATION (OR ANY PERSON OR ENTITY CLAIMING RIGHTS DERIVED FROM YOU) FOR ANY LOSS, DAMAGES, OR CLAIMS WHATSOEVER, + * INCLUDING, WITHOUT LIMITATION, ANY DIRECT, CONSEQUENTIAL, SPECIAL, INDIRECT, PUNITIVE, OR INCIDENTAL DAMAGES; ANY + * LOST PROFITS, OTHER ECONOMIC DAMAGE, PROPERTY DAMAGE, OR PERSONAL INJURY; AND EVEN IF RENESAS HAS BEEN ADVISED OF THE + * POSSIBILITY OF SUCH LOSS, DAMAGES, CLAIMS OR COSTS. + **********************************************************************************************************************/ + +#ifndef FSP_FEATURES_H +#define FSP_FEATURES_H + +/*********************************************************************************************************************** + * Includes , "Project Includes" + **********************************************************************************************************************/ + +/* C99 includes. */ +#include +#include +#include +#include + +/* Different compiler support. */ +#include "fsp_common_api.h" +#include "../../fsp/src/bsp/mcu/all/bsp_compiler_support.h" + +/*********************************************************************************************************************** + * Macro definitions + **********************************************************************************************************************/ + +/*******************************************************************************************************************//** + * @addtogroup BSP_MCU + * @{ + **********************************************************************************************************************/ + +/*********************************************************************************************************************** + * Typedef definitions + **********************************************************************************************************************/ + +/** Available modules. */ +typedef enum e_fsp_ip +{ + FSP_IP_CGC = 1, ///< Clock Generation Circuit + FSP_IP_CLMA = 2, ///< Clock Monitor Circuit + FSP_IP_MSTP = 3, ///< Module Stop + FSP_IP_ICU = 4, ///< Interrupt Control Unit + FSP_IP_BSC = 5, ///< Bus State Contoller + FSP_IP_CKIO = 6, ///< CKIO + FSP_IP_DMAC = 7, ///< DMA Controller + FSP_IP_ELC = 8, ///< Event Link Controller + FSP_IP_IOPORT = 9, ///< I/O Ports + FSP_IP_MTU3 = 10, ///< Multi-Function Timer Pulse Unit + FSP_IP_POE3 = 11, ///< Port Output Enable for MTU3 + FSP_IP_GPT = 12, ///< General PWM Timer + FSP_IP_POEG = 13, ///< Port Output Enable for GPT + FSP_IP_TFU = 14, ///< Arithmetic Unit for Trigonometric Functions + FSP_IP_CMT = 15, ///< Compare Match Timer + FSP_IP_CMTW = 16, ///< Compare Match Timer W + FSP_IP_WDT = 17, ///< Watch Dog Timer + FSP_IP_RTC = 18, ///< Real Time Clock + FSP_IP_ETHSS = 19, ///< Ethernet Subsystem + FSP_IP_GMAC = 20, ///< Ethernet MAC + FSP_IP_ETHSW = 21, ///< Ethernet Switch + FSP_IP_ESC = 22, ///< EtherCAT Slave Controller + FSP_IP_USBHS = 23, ///< USB High Speed + FSP_IP_SCI = 24, ///< Serial Communications Interface + FSP_IP_IIC = 25, ///< I2C Bus Interface + FSP_IP_CANFD = 26, ///< Controller Area Network with Flexible Data Rate + FSP_IP_SPI = 27, ///< Serial Peripheral Interface + FSP_IP_XSPI = 28, ///< expanded Serial Peripheral Interface + FSP_IP_CRC = 29, ///< Cyclic Redundancy Check Calculator + FSP_IP_BSCAN = 30, ///< Boundary Scan + FSP_IP_DSMIF = 31, ///< Delta Sigma Interface + FSP_IP_ADC12 = 32, ///< 12-Bit A/D Converter + FSP_IP_TSU = 33, ///< Temperature Sensor + FSP_IP_DOC = 34, ///< Data Operation Circuit + FSP_IP_SYSRAM = 35, ///< System SRAM + FSP_IP_ENCIF = 36, ///< Encoder Interface + FSP_IP_SHOSTIF = 37, ///< Serial Host Interface + FSP_IP_PHOSTIF = 38, ///< Parallel Host Interface +} fsp_ip_t; + +/** Signals that can be mapped to an interrupt. */ +typedef enum e_fsp_signal +{ + FSP_SIGNAL_INTCPU0 = (0), ///< Software interrupt 0 + FSP_SIGNAL_INTCPU1 = (1), ///< Software interrupt 1 + FSP_SIGNAL_INTCPU2 = (2), ///< Software interrupt 2 + FSP_SIGNAL_INTCPU3 = (3), ///< Software interrupt 3 + FSP_SIGNAL_INTCPU4 = (4), ///< Software interrupt 4 + FSP_SIGNAL_INTCPU5 = (5), ///< Software interrupt 5 + FSP_SIGNAL_IRQ0 = (6), ///< External pin interrupt 0 + FSP_SIGNAL_IRQ1 = (7), ///< External pin interrupt 1 + FSP_SIGNAL_IRQ2 = (8), ///< External pin interrupt 2 + FSP_SIGNAL_IRQ3 = (9), ///< External pin interrupt 3 + FSP_SIGNAL_IRQ4 = (10), ///< External pin interrupt 4 + FSP_SIGNAL_IRQ5 = (11), ///< External pin interrupt 5 + FSP_SIGNAL_IRQ6 = (12), ///< External pin interrupt 6 + FSP_SIGNAL_IRQ7 = (13), ///< External pin interrupt 7 + FSP_SIGNAL_IRQ8 = (14), ///< External pin interrupt 8 + FSP_SIGNAL_IRQ9 = (15), ///< External pin interrupt 9 + FSP_SIGNAL_IRQ10 = (16), ///< External pin interrupt 10 + FSP_SIGNAL_IRQ11 = (17), ///< External pin interrupt 11 + FSP_SIGNAL_IRQ12 = (18), ///< External pin interrupt 12 + FSP_SIGNAL_IRQ13 = (19), ///< External pin interrupt 13 + FSP_SIGNAL_BSC_CMI = (20), ///< Refresh compare match interrupt + FSP_SIGNAL_DMAC0_INT0 = (21), ///< DMAC0 transfer completion 0 + FSP_SIGNAL_DMAC0_INT1 = (22), ///< DMAC0 transfer completion 1 + FSP_SIGNAL_DMAC0_INT2 = (23), ///< DMAC0 transfer completion 2 + FSP_SIGNAL_DMAC0_INT3 = (24), ///< DMAC0 transfer completion 3 + FSP_SIGNAL_DMAC0_INT4 = (25), ///< DMAC0 transfer completion 4 + FSP_SIGNAL_DMAC0_INT5 = (26), ///< DMAC0 transfer completion 5 + FSP_SIGNAL_DMAC0_INT6 = (27), ///< DMAC0 transfer completion 6 + FSP_SIGNAL_DMAC0_INT7 = (28), ///< DMAC0 transfer completion 7 + FSP_SIGNAL_DMAC1_INT0 = (37), ///< DMAC1 transfer completion 0 + FSP_SIGNAL_DMAC1_INT1 = (38), ///< DMAC1 transfer completion 1 + FSP_SIGNAL_DMAC1_INT2 = (39), ///< DMAC1 transfer completion 2 + FSP_SIGNAL_DMAC1_INT3 = (40), ///< DMAC1 transfer completion 3 + FSP_SIGNAL_DMAC1_INT4 = (41), ///< DMAC1 transfer completion 4 + FSP_SIGNAL_DMAC1_INT5 = (42), ///< DMAC1 transfer completion 5 + FSP_SIGNAL_DMAC1_INT6 = (43), ///< DMAC1 transfer completion 6 + FSP_SIGNAL_DMAC1_INT7 = (44), ///< DMAC1 transfer completion 7 + FSP_SIGNAL_CMT0_CMI = (53), ///< CMT0 Compare match + FSP_SIGNAL_CMT1_CMI = (54), ///< CMT1 Compare match + FSP_SIGNAL_CMT2_CMI = (55), ///< CMT2 Compare match + FSP_SIGNAL_CMT3_CMI = (56), ///< CMT3 Compare match + FSP_SIGNAL_CMT4_CMI = (57), ///< CMT4 Compare match + FSP_SIGNAL_CMT5_CMI = (58), ///< CMT5 Compare match + FSP_SIGNAL_CMTW0_CMWI = (59), ///< CMTW0 Compare match + FSP_SIGNAL_CMTW0_IC0I = (60), ///< CMTW0 Input capture of register 0 + FSP_SIGNAL_CMTW0_IC1I = (61), ///< CMTW0 Input capture of register 1 + FSP_SIGNAL_CMTW0_OC0I = (62), ///< CMTW0 Output compare of register 0 + FSP_SIGNAL_CMTW0_OC1I = (63), ///< CMTW0 Output compare of register 1 + FSP_SIGNAL_CMTW1_CMWI = (64), ///< CMTW1 Compare match + FSP_SIGNAL_CMTW1_IC0I = (65), ///< CMTW1 Input capture of register 0 + FSP_SIGNAL_CMTW1_IC1I = (66), ///< CMTW1 Input capture of register 1 + FSP_SIGNAL_CMTW1_OC0I = (67), ///< CMTW1 Output compare of register 0 + FSP_SIGNAL_CMTW1_OC1I = (68), ///< CMTW1 Output compare of register 1 + FSP_SIGNAL_TGIA0 = (69), ///< MTU0.TGRA input capture/compare match + FSP_SIGNAL_TGIB0 = (70), ///< MTU0.TGRB input capture/compare match + FSP_SIGNAL_TGIC0 = (71), ///< MTU0.TGRC input capture/compare match + FSP_SIGNAL_TGID0 = (72), ///< MTU0.TGRD input capture/compare match + FSP_SIGNAL_TCIV0 = (73), ///< MTU0.TCNT overflow + FSP_SIGNAL_TGIE0 = (74), ///< MTU0.TGRE compare match + FSP_SIGNAL_TGIF0 = (75), ///< MTU0.TGRF compare match + FSP_SIGNAL_TGIA1 = (76), ///< MTU1.TGRA input capture/compare match + FSP_SIGNAL_TGIB1 = (77), ///< MTU1.TGRB input capture/compare match + FSP_SIGNAL_TCIV1 = (78), ///< MTU1.TCNT overflow + FSP_SIGNAL_TCIU1 = (79), ///< MTU1.TCNT underflow + FSP_SIGNAL_TGIA2 = (80), ///< MTU2.TGRA input capture/compare match + FSP_SIGNAL_TGIB2 = (81), ///< MTU2.TGRB input capture/compare match + FSP_SIGNAL_TCIV2 = (82), ///< MTU2.TCNT overflow + FSP_SIGNAL_TCIU2 = (83), ///< MTU2.TCNT underflow + FSP_SIGNAL_TGIA3 = (84), ///< MTU3.TGRA input capture/compare match + FSP_SIGNAL_TGIB3 = (85), ///< MTU3.TGRB input capture/compare match + FSP_SIGNAL_TGIC3 = (86), ///< MTU3.TGRC input capture/compare match + FSP_SIGNAL_TGID3 = (87), ///< MTU3.TGRD input capture/compare match + FSP_SIGNAL_TCIV3 = (88), ///< MTU3.TCNT overflow + FSP_SIGNAL_TGIA4 = (89), ///< MTU4.TGRA input capture/compare match + FSP_SIGNAL_TGIB4 = (90), ///< MTU4.TGRB input capture/compare match + FSP_SIGNAL_TGIC4 = (91), ///< MTU4.TGRC input capture/compare match + FSP_SIGNAL_TGID4 = (92), ///< MTU4.TGRD input capture/compare match + FSP_SIGNAL_TCIV4 = (93), ///< MTU4.TCNT overflow/underflow + FSP_SIGNAL_TGIU5 = (94), ///< MTU5.TGRU input capture/compare match + FSP_SIGNAL_TGIV5 = (95), ///< MTU5.TGRV input capture/compare match + FSP_SIGNAL_TGIW5 = (96), ///< MTU5.TGRW input capture/compare match + FSP_SIGNAL_TGIA6 = (97), ///< MTU6.TGRA input capture/compare match + FSP_SIGNAL_TGIB6 = (98), ///< MTU6.TGRB input capture/compare match + FSP_SIGNAL_TGIC6 = (99), ///< MTU6.TGRC input capture/compare match + FSP_SIGNAL_TGID6 = (100), ///< MTU6.TGRD input capture/compare match + FSP_SIGNAL_TCIV6 = (101), ///< MTU6.TCNT overflow + FSP_SIGNAL_TGIA7 = (102), ///< MTU7.TGRA input capture/compare match + FSP_SIGNAL_TGIB7 = (103), ///< MTU7.TGRB input capture/compare match + FSP_SIGNAL_TGIC7 = (104), ///< MTU7.TGRC input capture/compare match + FSP_SIGNAL_TGID7 = (105), ///< MTU7.TGRD input capture/compare match + FSP_SIGNAL_TCIV7 = (106), ///< MTU7.TCNT overflow/underflow + FSP_SIGNAL_TGIA8 = (107), ///< MTU8.TGRA input capture/compare match + FSP_SIGNAL_TGIB8 = (108), ///< MTU8.TGRB input capture/compare match + FSP_SIGNAL_TGIC8 = (109), ///< MTU8.TGRC input capture/compare match + FSP_SIGNAL_TGID8 = (110), ///< MTU8.TGRD input capture/compare match + FSP_SIGNAL_TCIV8 = (111), ///< MTU8.TCNT overflow + FSP_SIGNAL_OEI1 = (112), ///< Output enable interrupt 1 + FSP_SIGNAL_OEI2 = (113), ///< Output enable interrupt 2 + FSP_SIGNAL_OEI3 = (114), ///< Output enable interrupt 3 + FSP_SIGNAL_OEI4 = (115), ///< Output enable interrupt 4 + FSP_SIGNAL_GPT0_CCMPA = (116), ///< GPT0 GTCCRA input capture/compare match + FSP_SIGNAL_GPT0_CCMPB = (117), ///< GPT0 GTCCRB input capture/compare match + FSP_SIGNAL_GPT0_CMPC = (118), ///< GPT0 GTCCRC compare match + FSP_SIGNAL_GPT0_CMPD = (119), ///< GPT0 GTCCRD compare match + FSP_SIGNAL_GPT0_CMPE = (120), ///< GPT0 GTCCRE compare match + FSP_SIGNAL_GPT0_CMPF = (121), ///< GPT0 GTCCRF compare match + FSP_SIGNAL_GPT0_OVF = (122), ///< GPT0 GTCNT overflow (GTPR compare match) + FSP_SIGNAL_GPT0_UDF = (123), ///< GPT0 GTCNT underflow + FSP_SIGNAL_GPT0_DTE = (124), ///< GPT0 Dead time error + FSP_SIGNAL_GPT1_CCMPA = (125), ///< GPT1 GTCCRA input capture/compare match + FSP_SIGNAL_GPT1_CCMPB = (126), ///< GPT1 GTCCRB input capture/compare match + FSP_SIGNAL_GPT1_CMPC = (127), ///< GPT1 GTCCRC compare match + FSP_SIGNAL_GPT1_CMPD = (128), ///< GPT1 GTCCRD compare match + FSP_SIGNAL_GPT1_CMPE = (129), ///< GPT1 GTCCRE compare match + FSP_SIGNAL_GPT1_CMPF = (130), ///< GPT1 GTCCRF compare match + FSP_SIGNAL_GPT1_OVF = (131), ///< GPT1 GTCNT overflow (GTPR compare match) + FSP_SIGNAL_GPT1_UDF = (132), ///< GPT1 GTCNT underflow + FSP_SIGNAL_GPT1_DTE = (133), ///< GPT1 Dead time error + FSP_SIGNAL_GPT2_CCMPA = (134), ///< GPT2 GTCCRA input capture/compare match + FSP_SIGNAL_GPT2_CCMPB = (135), ///< GPT2 GTCCRB input capture/compare match + FSP_SIGNAL_GPT2_CMPC = (136), ///< GPT2 GTCCRC compare match + FSP_SIGNAL_GPT2_CMPD = (137), ///< GPT2 GTCCRD compare match + FSP_SIGNAL_GPT2_CMPE = (138), ///< GPT2 GTCCRE compare match + FSP_SIGNAL_GPT2_CMPF = (139), ///< GPT2 GTCCRF compare match + FSP_SIGNAL_GPT2_OVF = (140), ///< GPT2 GTCNT overflow (GTPR compare match) + FSP_SIGNAL_GPT2_UDF = (141), ///< GPT2 GTCNT underflow + FSP_SIGNAL_GPT2_DTE = (142), ///< GPT2 Dead time error + FSP_SIGNAL_GPT3_CCMPA = (143), ///< GPT3 GTCCRA input capture/compare match + FSP_SIGNAL_GPT3_CCMPB = (144), ///< GPT3 GTCCRB input capture/compare match + FSP_SIGNAL_GPT3_CMPC = (145), ///< GPT3 GTCCRC compare match + FSP_SIGNAL_GPT3_CMPD = (146), ///< GPT3 GTCCRD compare match + FSP_SIGNAL_GPT3_CMPE = (147), ///< GPT3 GTCCRE compare match + FSP_SIGNAL_GPT3_CMPF = (148), ///< GPT3 GTCCRF compare match + FSP_SIGNAL_GPT3_OVF = (149), ///< GPT3 GTCNT overflow (GTPR compare match) + FSP_SIGNAL_GPT3_UDF = (150), ///< GPT3 GTCNT underflow + FSP_SIGNAL_GPT3_DTE = (151), ///< GPT3 Dead time error + FSP_SIGNAL_GPT4_CCMPA = (152), ///< GPT4 GTCCRA input capture/compare match + FSP_SIGNAL_GPT4_CCMPB = (153), ///< GPT4 GTCCRB input capture/compare match + FSP_SIGNAL_GPT4_CMPC = (154), ///< GPT4 GTCCRC compare match + FSP_SIGNAL_GPT4_CMPD = (155), ///< GPT4 GTCCRD compare match + FSP_SIGNAL_GPT4_CMPE = (156), ///< GPT4 GTCCRE compare match + FSP_SIGNAL_GPT4_CMPF = (157), ///< GPT4 GTCCRF compare match + FSP_SIGNAL_GPT4_OVF = (158), ///< GPT4 GTCNT overflow (GTPR compare match) + FSP_SIGNAL_GPT4_UDF = (159), ///< GPT4 GTCNT underflow + FSP_SIGNAL_GPT4_DTE = (160), ///< GPT4 Dead time error + FSP_SIGNAL_GPT5_CCMPA = (161), ///< GPT5 GTCCRA input capture/compare match + FSP_SIGNAL_GPT5_CCMPB = (162), ///< GPT5 GTCCRB input capture/compare match + FSP_SIGNAL_GPT5_CMPC = (163), ///< GPT5 GTCCRC compare match + FSP_SIGNAL_GPT5_CMPD = (164), ///< GPT5 GTCCRD compare match + FSP_SIGNAL_GPT5_CMPE = (165), ///< GPT5 GTCCRE compare match + FSP_SIGNAL_GPT5_CMPF = (166), ///< GPT5 GTCCRF compare match + FSP_SIGNAL_GPT5_OVF = (167), ///< GPT5 GTCNT overflow (GTPR compare match) + FSP_SIGNAL_GPT5_UDF = (168), ///< GPT5 GTCNT underflow + FSP_SIGNAL_GPT5_DTE = (169), ///< GPT5 Dead time error + FSP_SIGNAL_GPT6_CCMPA = (170), ///< GPT6 GTCCRA input capture/compare match + FSP_SIGNAL_GPT6_CCMPB = (171), ///< GPT6 GTCCRB input capture/compare match + FSP_SIGNAL_GPT6_CMPC = (172), ///< GPT6 GTCCRC compare match + FSP_SIGNAL_GPT6_CMPD = (173), ///< GPT6 GTCCRD compare match + FSP_SIGNAL_GPT6_CMPE = (174), ///< GPT6 GTCCRE compare match + FSP_SIGNAL_GPT6_CMPF = (175), ///< GPT6 GTCCRF compare match + FSP_SIGNAL_GPT6_OVF = (176), ///< GPT6 GTCNT overflow (GTPR compare match) + FSP_SIGNAL_GPT6_UDF = (177), ///< GPT6 GTCNT underflow + FSP_SIGNAL_GPT6_DTE = (178), ///< GPT6 Dead time error + FSP_SIGNAL_GPT7_CCMPA = (179), ///< GPT7 GTCCRA input capture/compare match + FSP_SIGNAL_GPT7_CCMPB = (180), ///< GPT7 GTCCRB input capture/compare match + FSP_SIGNAL_GPT7_CMPC = (181), ///< GPT7 GTCCRC compare match + FSP_SIGNAL_GPT7_CMPD = (182), ///< GPT7 GTCCRD compare match + FSP_SIGNAL_GPT7_CMPE = (183), ///< GPT7 GTCCRE compare match + FSP_SIGNAL_GPT7_CMPF = (184), ///< GPT7 GTCCRF compare match + FSP_SIGNAL_GPT7_OVF = (185), ///< GPT7 GTCNT overflow (GTPR compare match) + FSP_SIGNAL_GPT7_UDF = (186), ///< GPT7 GTCNT underflow + FSP_SIGNAL_GPT7_DTE = (187), ///< GPT7 Dead time error + FSP_SIGNAL_GPT8_CCMPA = (188), ///< GPT8 GTCCRA input capture/compare match + FSP_SIGNAL_GPT8_CCMPB = (189), ///< GPT8 GTCCRB input capture/compare match + FSP_SIGNAL_GPT8_CMPC = (190), ///< GPT8 GTCCRC compare match + FSP_SIGNAL_GPT8_CMPD = (191), ///< GPT8 GTCCRD compare match + FSP_SIGNAL_GPT8_CMPE = (192), ///< GPT8 GTCCRE compare match + FSP_SIGNAL_GPT8_CMPF = (193), ///< GPT8 GTCCRF compare match + FSP_SIGNAL_GPT8_OVF = (194), ///< GPT8 GTCNT overflow (GTPR compare match) + FSP_SIGNAL_GPT8_UDF = (195), ///< GPT8 GTCNT underflow + FSP_SIGNAL_GPT8_DTE = (196), ///< GPT8 Dead time error + FSP_SIGNAL_GPT9_CCMPA = (197), ///< GPT9 GTCCRA input capture/compare match + FSP_SIGNAL_GPT9_CCMPB = (198), ///< GPT9 GTCCRB input capture/compare match + FSP_SIGNAL_GPT9_CMPC = (199), ///< GPT9 GTCCRC compare match + FSP_SIGNAL_GPT9_CMPD = (200), ///< GPT9 GTCCRD compare match + FSP_SIGNAL_GPT9_CMPE = (201), ///< GPT9 GTCCRE compare match + FSP_SIGNAL_GPT9_CMPF = (202), ///< GPT9 GTCCRF compare match + FSP_SIGNAL_GPT9_OVF = (203), ///< GPT9 GTCNT overflow (GTPR compare match) + FSP_SIGNAL_GPT9_UDF = (204), ///< GPT9 GTCNT underflow + FSP_SIGNAL_GPT9_DTE = (205), ///< GPT9 Dead time error + FSP_SIGNAL_GPT10_CCMPA = (206), ///< GPT10 GTCCRA input capture/compare match + FSP_SIGNAL_GPT10_CCMPB = (207), ///< GPT10 GTCCRB input capture/compare match + FSP_SIGNAL_GPT10_CMPC = (208), ///< GPT10 GTCCRC compare match + FSP_SIGNAL_GPT10_CMPD = (209), ///< GPT10 GTCCRD compare match + FSP_SIGNAL_GPT10_CMPE = (210), ///< GPT10 GTCCRE compare match + FSP_SIGNAL_GPT10_CMPF = (211), ///< GPT10 GTCCRF compare match + FSP_SIGNAL_GPT10_OVF = (212), ///< GPT10 GTCNT overflow (GTPR compare match) + FSP_SIGNAL_GPT10_UDF = (213), ///< GPT10 GTCNT underflow + FSP_SIGNAL_GPT10_DTE = (214), ///< GPT10 Dead time error + FSP_SIGNAL_GPT11_CCMPA = (215), ///< GPT11 GTCCRA input capture/compare match + FSP_SIGNAL_GPT11_CCMPB = (216), ///< GPT11 GTCCRB input capture/compare match + FSP_SIGNAL_GPT11_CMPC = (217), ///< GPT11 GTCCRC compare match + FSP_SIGNAL_GPT11_CMPD = (218), ///< GPT11 GTCCRD compare match + FSP_SIGNAL_GPT11_CMPE = (219), ///< GPT11 GTCCRE compare match + FSP_SIGNAL_GPT11_CMPF = (220), ///< GPT11 GTCCRF compare match + FSP_SIGNAL_GPT11_OVF = (221), ///< GPT11 GTCNT overflow (GTPR compare match) + FSP_SIGNAL_GPT11_UDF = (222), ///< GPT11 GTCNT underflow + FSP_SIGNAL_GPT11_DTE = (223), ///< GPT11 Dead time error + FSP_SIGNAL_GPT12_CCMPA = (224), ///< GPT12 GTCCRA input capture/compare match + FSP_SIGNAL_GPT12_CCMPB = (225), ///< GPT12 GTCCRB input capture/compare match + FSP_SIGNAL_GPT12_CMPC = (226), ///< GPT12 GTCCRC compare match + FSP_SIGNAL_GPT12_CMPD = (227), ///< GPT12 GTCCRD compare match + FSP_SIGNAL_GPT12_CMPE = (228), ///< GPT12 GTCCRE compare match + FSP_SIGNAL_GPT12_CMPF = (229), ///< GPT12 GTCCRF compare match + FSP_SIGNAL_GPT12_OVF = (230), ///< GPT12 GTCNT overflow (GTPR compare match) + FSP_SIGNAL_GPT12_UDF = (231), ///< GPT12 GTCNT underflow + FSP_SIGNAL_GPT12_DTE = (232), ///< GPT12 Dead time error + FSP_SIGNAL_GPT13_CCMPA = (233), ///< GPT13 GTCCRA input capture/compare match + FSP_SIGNAL_GPT13_CCMPB = (234), ///< GPT13 GTCCRB input capture/compare match + FSP_SIGNAL_GPT13_CMPC = (235), ///< GPT13 GTCCRC compare match + FSP_SIGNAL_GPT13_CMPD = (236), ///< GPT13 GTCCRD compare match + FSP_SIGNAL_GPT13_CMPE = (237), ///< GPT13 GTCCRE compare match + FSP_SIGNAL_GPT13_CMPF = (238), ///< GPT13 GTCCRF compare match + FSP_SIGNAL_GPT13_OVF = (239), ///< GPT13 GTCNT overflow (GTPR compare match) + FSP_SIGNAL_GPT13_UDF = (240), ///< GPT13 GTCNT underflow + FSP_SIGNAL_GPT13_DTE = (241), ///< GPT13 Dead time error + FSP_SIGNAL_POEG0_GROUP0 = (242), ///< POEG group A interrupt for channels in LLPP + FSP_SIGNAL_POEG0_GROUP1 = (243), ///< POEG group B interrupt for channels in LLPP + FSP_SIGNAL_POEG0_GROUP2 = (244), ///< POEG group C interrupt for channels in LLPP + FSP_SIGNAL_POEG0_GROUP3 = (245), ///< POEG group D interrupt for channels in LLPP + FSP_SIGNAL_POEG1_GROUP0 = (246), ///< POEG group A interrupt for channels in NONSAFETY + FSP_SIGNAL_POEG1_GROUP1 = (247), ///< POEG group B interrupt for channels in NONSAFETY + FSP_SIGNAL_POEG1_GROUP2 = (248), ///< POEG group C interrupt for channels in NONSAFETY + FSP_SIGNAL_POEG1_GROUP3 = (249), ///< POEG group D interrupt for channels in NONSAFETY + FSP_SIGNAL_GMAC_LPI = (250), ///< GMAC1 energy efficient + FSP_SIGNAL_GMAC_PMT = (251), ///< GMAC1 power management + FSP_SIGNAL_GMAC_SBD = (252), ///< GMAC1 general interrupt + FSP_SIGNAL_ETHSW_INTR = (253), ///< Ethernet Switch interrupt + FSP_SIGNAL_ETHSW_DLR = (254), ///< Ethernet Switch DLR interrupt + FSP_SIGNAL_ETHSW_PRP = (255), ///< Ethernet Switch PRP interrupt + FSP_SIGNAL_ETHSW_IHUB = (256), ///< Ethernet Switch Integrated Hub interrupt + FSP_SIGNAL_ETHSW_PTRN0 = (257), ///< Ethernet Switch RX Pattern Matcher interrupt 0 + FSP_SIGNAL_ETHSW_PTRN1 = (258), ///< Ethernet Switch RX Pattern Matcher interrupt 1 + FSP_SIGNAL_ETHSW_PTRN2 = (259), ///< Ethernet Switch RX Pattern Matcher interrupt 2 + FSP_SIGNAL_ETHSW_PTRN3 = (260), ///< Ethernet Switch RX Pattern Matcher interrupt 3 + FSP_SIGNAL_ETHSW_PTRN4 = (261), ///< Ethernet Switch RX Pattern Matcher interrupt 4 + FSP_SIGNAL_ETHSW_PTRN5 = (262), ///< Ethernet Switch RX Pattern Matcher interrupt 5 + FSP_SIGNAL_ETHSW_PTRN6 = (263), ///< Ethernet Switch RX Pattern Matcher interrupt 6 + FSP_SIGNAL_ETHSW_PTRN7 = (264), ///< Ethernet Switch RX Pattern Matcher interrupt 7 + FSP_SIGNAL_ETHSW_PTRN8 = (265), ///< Ethernet Switch RX Pattern Matcher interrupt 8 + FSP_SIGNAL_ETHSW_PTRN9 = (266), ///< Ethernet Switch RX Pattern Matcher interrupt 9 + FSP_SIGNAL_ETHSW_PTRN10 = (267), ///< Ethernet Switch RX Pattern Matcher interrupt 10 + FSP_SIGNAL_ETHSW_PTRN11 = (268), ///< Ethernet Switch RX Pattern Matcher interrupt 11 + FSP_SIGNAL_ETHSW_PTPOUT0 = (269), ///< Ethernet switch timer pulse output 0 + FSP_SIGNAL_ETHSW_PTPOUT1 = (270), ///< Ethernet switch timer pulse output 1 + FSP_SIGNAL_ETHSW_PTPOUT2 = (271), ///< Ethernet switch timer pulse output 2 + FSP_SIGNAL_ETHSW_PTPOUT3 = (272), ///< Ethernet switch timer pulse output 3 + FSP_SIGNAL_ETHSW_TDMAOUT0 = (273), ///< Ethernet Switch TDMA timer output 0 + FSP_SIGNAL_ETHSW_TDMAOUT1 = (274), ///< Ethernet Switch TDMA timer output 1 + FSP_SIGNAL_ETHSW_TDMAOUT2 = (275), ///< Ethernet Switch TDMA timer output 2 + FSP_SIGNAL_ETHSW_TDMAOUT3 = (276), ///< Ethernet Switch TDMA timer output 3 + FSP_SIGNAL_ESC_SYNC0 = (277), ///< EtherCAT Sync0 interrupt + FSP_SIGNAL_ESC_SYNC1 = (278), ///< EtherCAT Sync1 interrupt + FSP_SIGNAL_ESC_CAT = (279), ///< EtherCAT interrupt + FSP_SIGNAL_ESC_SOF = (280), ///< EtherCAT SOF interrupt + FSP_SIGNAL_ESC_EOF = (281), ///< EtherCAT EOF interrupt + FSP_SIGNAL_ESC_WDT = (282), ///< EtherCAT WDT interrupt + FSP_SIGNAL_ESC_RST = (283), ///< EtherCAT RESET interrupt + FSP_SIGNAL_USB_HI = (284), ///< USB (Host) interrupt + FSP_SIGNAL_USB_FI = (285), ///< USB (Function) interrupt + FSP_SIGNAL_USB_FDMA0 = (286), ///< USB (Function) DMA 0 transmit completion + FSP_SIGNAL_USB_FDMA1 = (287), ///< USB (Function) DMA 1 transmit completion + FSP_SIGNAL_SCI0_ERI = (288), ///< SCI0 Receive error + FSP_SIGNAL_SCI0_RXI = (289), ///< SCI0 Receive data full + FSP_SIGNAL_SCI0_TXI = (290), ///< SCI0 Transmit data empty + FSP_SIGNAL_SCI0_TEI = (291), ///< SCI0 Transmit end + FSP_SIGNAL_SCI1_ERI = (292), ///< SCI1 Receive error + FSP_SIGNAL_SCI1_RXI = (293), ///< SCI1 Receive data full + FSP_SIGNAL_SCI1_TXI = (294), ///< SCI1 Transmit data empty + FSP_SIGNAL_SCI1_TEI = (295), ///< SCI1 Transmit end + FSP_SIGNAL_SCI2_ERI = (296), ///< SCI2 Receive error + FSP_SIGNAL_SCI2_RXI = (297), ///< SCI2 Receive data full + FSP_SIGNAL_SCI2_TXI = (298), ///< SCI2 Transmit data empty + FSP_SIGNAL_SCI2_TEI = (299), ///< SCI2 Transmit end + FSP_SIGNAL_SCI3_ERI = (300), ///< SCI3 Receive error + FSP_SIGNAL_SCI3_RXI = (301), ///< SCI3 Receive data full + FSP_SIGNAL_SCI3_TXI = (302), ///< SCI3 Transmit data empty + FSP_SIGNAL_SCI3_TEI = (303), ///< SCI3 Transmit end + FSP_SIGNAL_SCI4_ERI = (304), ///< SCI4 Receive error + FSP_SIGNAL_SCI4_RXI = (305), ///< SCI4 Receive data full + FSP_SIGNAL_SCI4_TXI = (306), ///< SCI4 Transmit data empty + FSP_SIGNAL_SCI4_TEI = (307), ///< SCI4 Transmit end + FSP_SIGNAL_IIC0_EEI = (308), ///< IIC0 Transfer error or event generation + FSP_SIGNAL_IIC0_RXI = (309), ///< IIC0 Receive data full + FSP_SIGNAL_IIC0_TXI = (310), ///< IIC0 Transmit data empty + FSP_SIGNAL_IIC0_TEI = (311), ///< IIC0 Transmit end + FSP_SIGNAL_IIC1_EEI = (312), ///< IIC1 Transfer error or event generation + FSP_SIGNAL_IIC1_RXI = (313), ///< IIC1 Receive data full + FSP_SIGNAL_IIC1_TXI = (314), ///< IIC1 Transmit data empty + FSP_SIGNAL_IIC1_TEI = (315), ///< IIC1 Transmit end + FSP_SIGNAL_CAN_RXF = (316), ///< CANFD RX FIFO interrupt + FSP_SIGNAL_CAN_GLERR = (317), ///< CANFD Global error interrupt + FSP_SIGNAL_CAN0_TX = (318), ///< CAFND0 Channel TX interrupt + FSP_SIGNAL_CAN0_CHERR = (319), ///< CAFND0 Channel CAN error interrupt + FSP_SIGNAL_CAN0_COMFRX = (320), ///< CAFND0 Common RX FIFO or TXQ interrupt + FSP_SIGNAL_CAN1_TX = (321), ///< CAFND1 Channel TX interrupt + FSP_SIGNAL_CAN1_CHERR = (322), ///< CAFND1 Channel CAN error interrupt + FSP_SIGNAL_CAN1_COMFRX = (323), ///< CAFND1 Common RX FIFO or TXQ interrupt + FSP_SIGNAL_SPI0_SPRI = (324), ///< SPI0 Reception buffer full + FSP_SIGNAL_SPI0_SPTI = (325), ///< SPI0 Transmit buffer empty + FSP_SIGNAL_SPI0_SPII = (326), ///< SPI0 SPI idle + FSP_SIGNAL_SPI0_SPEI = (327), ///< SPI0 errors + FSP_SIGNAL_SPI0_SPCEND = (328), ///< SPI0 Communication complete + FSP_SIGNAL_SPI1_SPRI = (329), ///< SPI1 Reception buffer full + FSP_SIGNAL_SPI1_SPTI = (330), ///< SPI1 Transmit buffer empty + FSP_SIGNAL_SPI1_SPII = (331), ///< SPI1 SPI idle + FSP_SIGNAL_SPI1_SPEI = (332), ///< SPI1 errors + FSP_SIGNAL_SPI1_SPCEND = (333), ///< SPI1 Communication complete + FSP_SIGNAL_SPI2_SPRI = (334), ///< SPI2 Reception buffer full + FSP_SIGNAL_SPI2_SPTI = (335), ///< SPI2 Transmit buffer empty + FSP_SIGNAL_SPI2_SPII = (336), ///< SPI2 SPI idle + FSP_SIGNAL_SPI2_SPEI = (337), ///< SPI2 errors + FSP_SIGNAL_SPI2_SPCEND = (338), ///< SPI2 Communication complete + FSP_SIGNAL_XSPI0_INT = (339), ///< xSPI0 Interrupt + FSP_SIGNAL_XSPI0_INTERR = (340), ///< xSPI0 Error interrupt + FSP_SIGNAL_XSPI1_INT = (341), ///< xSPI1 Interrupt + FSP_SIGNAL_XSPI1_INTERR = (342), ///< xSPI1 Error interrupt + FSP_SIGNAL_DSMIF0_CDRUI = (343), ///< DSMIF0 current data register update (ORed ch0 to ch2) + FSP_SIGNAL_DSMIF1_CDRUI = (344), ///< DSMIF1 current data register update (ORed ch3 to ch5) + FSP_SIGNAL_ADC0_ADI = (345), ///< ADC0 A/D scan end interrupt + FSP_SIGNAL_ADC0_GBADI = (346), ///< ADC0 A/D scan end interrupt for Group B + FSP_SIGNAL_ADC0_GCADI = (347), ///< ADC0 A/D scan end interrupt for Group C + FSP_SIGNAL_ADC0_CMPAI = (348), ///< ADC0 Window A compare match + FSP_SIGNAL_ADC0_CMPBI = (349), ///< ADC0 Window B compare match + FSP_SIGNAL_ADC1_ADI = (350), ///< ADC1 A/D scan end interrupt + FSP_SIGNAL_ADC1_GBADI = (351), ///< ADC1 A/D scan end interrupt for Group B + FSP_SIGNAL_ADC1_GCADI = (352), ///< ADC1 A/D scan end interrupt for Group C + FSP_SIGNAL_ADC1_CMPAI = (353), ///< ADC1 Window A compare match + FSP_SIGNAL_ADC1_CMPBI = (354), ///< ADC1 Window B compare match + FSP_SIGNAL_MBX_INT0 = (372), ///< Mailbox (Host CPU to Cortex-R52) interrupt 0 + FSP_SIGNAL_MBX_INT1 = (373), ///< Mailbox (Host CPU to Cortex-R52) interrupt 1 + FSP_SIGNAL_MBX_INT2 = (374), ///< Mailbox (Host CPU to Cortex-R52) interrupt 2 + FSP_SIGNAL_MBX_INT3 = (375), ///< Mailbox (Host CPU to Cortex-R52) interrupt 3 + FSP_SIGNAL_CPU0_ERR0 = (384), ///< Cortex-R52 CPU0 error event 0 + FSP_SIGNAL_CPU0_ERR1 = (385), ///< Cortex-R52 CPU0 error event 1 + FSP_SIGNAL_PERI_ERR0 = (388), ///< Peripherals error event 0 + FSP_SIGNAL_PERI_ERR1 = (389), ///< Peripherals error event 1 + FSP_SIGNAL_SHOST_INT = (390), ///< SHOSTIF interrupt + FSP_SIGNAL_PHOST_INT = (391), ///< PHOSTIF interrupt + FSP_SIGNAL_INTCPU6 = (392), ///< Software interrupt 6 + FSP_SIGNAL_INTCPU7 = (393), ///< Software interrupt 7 + FSP_SIGNAL_IRQ14 = (394), ///< External pin interrupt 14 + FSP_SIGNAL_IRQ15 = (395), ///< External pin interrupt 15 + FSP_SIGNAL_GPT14_CCMPA = (396), ///< GPT14 GTCCRA input capture/compare match + FSP_SIGNAL_GPT14_CCMPB = (397), ///< GPT14 GTCCRB input capture/compare match + FSP_SIGNAL_GPT14_CMPC = (398), ///< GPT14 GTCCRC compare match + FSP_SIGNAL_GPT14_CMPD = (399), ///< GPT14 GTCCRD compare match + FSP_SIGNAL_GPT14_CMPE = (400), ///< GPT14 GTCCRE compare match + FSP_SIGNAL_GPT14_CMPF = (401), ///< GPT14 GTCCRF compare match + FSP_SIGNAL_GPT14_OVF = (402), ///< GPT14 GTCNT overflow (GTPR compare match) + FSP_SIGNAL_GPT14_UDF = (403), ///< GPT14 GTCNT underflow + FSP_SIGNAL_GPT15_CCMPA = (404), ///< GPT15 GTCCRA input capture/compare match + FSP_SIGNAL_GPT15_CCMPB = (405), ///< GPT15 GTCCRB input capture/compare match + FSP_SIGNAL_GPT15_CMPC = (406), ///< GPT15 GTCCRC compare match + FSP_SIGNAL_GPT15_CMPD = (407), ///< GPT15 GTCCRD compare match + FSP_SIGNAL_GPT15_CMPE = (408), ///< GPT15 GTCCRE compare match + FSP_SIGNAL_GPT15_CMPF = (409), ///< GPT15 GTCCRF compare match + FSP_SIGNAL_GPT15_OVF = (410), ///< GPT15 GTCNT overflow (GTPR compare match) + FSP_SIGNAL_GPT15_UDF = (411), ///< GPT15 GTCNT underflow + FSP_SIGNAL_GPT16_CCMPA = (412), ///< GPT16 GTCCRA input capture/compare match + FSP_SIGNAL_GPT16_CCMPB = (413), ///< GPT16 GTCCRB input capture/compare match + FSP_SIGNAL_GPT16_CMPC = (414), ///< GPT16 GTCCRC compare match + FSP_SIGNAL_GPT16_CMPD = (415), ///< GPT16 GTCCRD compare match + FSP_SIGNAL_GPT16_CMPE = (416), ///< GPT16 GTCCRE compare match + FSP_SIGNAL_GPT16_CMPF = (417), ///< GPT16 GTCCRF compare match + FSP_SIGNAL_GPT16_OVF = (418), ///< GPT16 GTCNT overflow (GTPR compare match) + FSP_SIGNAL_GPT16_UDF = (419), ///< GPT16 GTCNT underflow + FSP_SIGNAL_GPT17_CCMPA = (420), ///< GPT17 GTCCRA input capture/compare match + FSP_SIGNAL_GPT17_CCMPB = (421), ///< GPT17 GTCCRB input capture/compare match + FSP_SIGNAL_GPT17_CMPC = (422), ///< GPT17 GTCCRC compare match + FSP_SIGNAL_GPT17_CMPD = (423), ///< GPT17 GTCCRD compare match + FSP_SIGNAL_GPT17_CMPE = (424), ///< GPT17 GTCCRE compare match + FSP_SIGNAL_GPT17_CMPF = (425), ///< GPT17 GTCCRF compare match + FSP_SIGNAL_GPT17_OVF = (426), ///< GPT17 GTCNT overflow (GTPR compare match) + FSP_SIGNAL_GPT17_UDF = (427), ///< GPT17 GTCNT underflow + FSP_SIGNAL_POEG2_GROUP0 = (428), ///< POEG group A interrupt for channels in SAFETY + FSP_SIGNAL_POEG2_GROUP1 = (429), ///< POEG group B interrupt for channels in SAFETY + FSP_SIGNAL_POEG2_GROUP2 = (430), ///< POEG group C interrupt for channels in SAFETY + FSP_SIGNAL_POEG2_GROUP3 = (431), ///< POEG group D interrupt for channels in SAFETY + FSP_SIGNAL_RTC_ALM = (432), ///< Alarm interrupt + FSP_SIGNAL_RTC_1S = (433), ///< 1 second interrupt + FSP_SIGNAL_RTC_PRD = (434), ///< Fixed interval interrupt + FSP_SIGNAL_SCI5_ERI = (435), ///< SCI5 Receive error + FSP_SIGNAL_SCI5_RXI = (436), ///< SCI5 Receive data full + FSP_SIGNAL_SCI5_TXI = (437), ///< SCI5 Transmit data empty + FSP_SIGNAL_SCI5_TEI = (438), ///< SCI5 Transmit end + FSP_SIGNAL_IIC2_EEI = (439), ///< IIC2 Transfer error or event generation + FSP_SIGNAL_IIC2_RXI = (440), ///< IIC2 Receive data full + FSP_SIGNAL_IIC2_TXI = (441), ///< IIC2 Transmit data empty + FSP_SIGNAL_IIC2_TEI = (442), ///< IIC2 Transmit end + FSP_SIGNAL_SPI3_SPRI = (443), ///< SPI3 Reception buffer full + FSP_SIGNAL_SPI3_SPTI = (444), ///< SPI3 Transmit buffer empty + FSP_SIGNAL_SPI3_SPII = (445), ///< SPI3 SPI idle + FSP_SIGNAL_SPI3_SPEI = (446), ///< SPI3 errors + FSP_SIGNAL_SPI3_SPCEND = (447), ///< SPI3 Communication complete + FSP_SIGNAL_DREQ = (448), ///< External DMA request + FSP_SIGNAL_CAN_RF_DMAREQ0 = (449), ///< CAFND RX FIFO 0 DMA request + FSP_SIGNAL_CAN_RF_DMAREQ1 = (450), ///< CAFND RX FIFO 1 DMA request + FSP_SIGNAL_CAN_RF_DMAREQ2 = (451), ///< CAFND RX FIFO 2 DMA request + FSP_SIGNAL_CAN_RF_DMAREQ3 = (452), ///< CAFND RX FIFO 3 DMA request + FSP_SIGNAL_CAN_RF_DMAREQ4 = (453), ///< CAFND RX FIFO 4 DMA request + FSP_SIGNAL_CAN_RF_DMAREQ5 = (454), ///< CAFND RX FIFO 5 DMA request + FSP_SIGNAL_CAN_RF_DMAREQ6 = (455), ///< CAFND RX FIFO 6 DMA request + FSP_SIGNAL_CAN_RF_DMAREQ7 = (456), ///< CAFND RX FIFO 7 DMA request + FSP_SIGNAL_CAN0_CF_DMAREQ = (457), ///< CAFND0 First common FIFO DMA request + FSP_SIGNAL_CAN1_CF_DMAREQ = (458), ///< CAFND1 First common FIFO DMA request + FSP_SIGNAL_ADC0_WCMPM = (459), ///< ADC0 compare match + FSP_SIGNAL_ADC0_WCMPUM = (460), ///< ADC0 compare mismatch + FSP_SIGNAL_ADC1_WCMPM = (461), ///< ADC1 compare match + FSP_SIGNAL_ADC1_WCMPUM = (462), ///< ADC1 compare mismatch + FSP_SIGNAL_TCIV4_OF = (463), ///< MTU4.TCNT overflow + FSP_SIGNAL_TCIV4_UF = (464), ///< MTU4.TCNT underflow + FSP_SIGNAL_TCIV7_OF = (465), ///< MTU7.TCNT overflow + FSP_SIGNAL_TCIV7_UF = (466), ///< MTU7.TCNT underflow + FSP_SIGNAL_IOPORT_GROUP1 = (467), ///< Input edge detection of input port group 1 + FSP_SIGNAL_IOPORT_GROUP2 = (468), ///< Input edge detection of input port group 2 + FSP_SIGNAL_IOPORT_SINGLE0 = (469), ///< Input edge detection of single input port 0 + FSP_SIGNAL_IOPORT_SINGLE1 = (470), ///< Input edge detection of single input port 1 + FSP_SIGNAL_IOPORT_SINGLE2 = (471), ///< Input edge detection of single input port 2 + FSP_SIGNAL_IOPORT_SINGLE3 = (472), ///< Input edge detection of single input port 3 + FSP_SIGNAL_GPT0_ADTRGA = (473), ///< GPT0 GTADTRA compare match + FSP_SIGNAL_GPT0_ADTRGB = (474), ///< GPT0 GTADTRB compare match + FSP_SIGNAL_GPT1_ADTRGA = (475), ///< GPT1 GTADTRA compare match + FSP_SIGNAL_GPT1_ADTRGB = (476), ///< GPT1 GTADTRB compare match + FSP_SIGNAL_GPT2_ADTRGA = (477), ///< GPT2 GTADTRA compare match + FSP_SIGNAL_GPT2_ADTRGB = (478), ///< GPT2 GTADTRB compare match + FSP_SIGNAL_GPT3_ADTRGA = (479), ///< GPT3 GTADTRA compare match + FSP_SIGNAL_GPT3_ADTRGB = (480), ///< GPT3 GTADTRB compare match + FSP_SIGNAL_GPT4_ADTRGA = (481), ///< GPT4 GTADTRA compare match + FSP_SIGNAL_GPT4_ADTRGB = (482), ///< GPT4 GTADTRB compare match + FSP_SIGNAL_GPT5_ADTRGA = (483), ///< GPT5 GTADTRA compare match + FSP_SIGNAL_GPT5_ADTRGB = (484), ///< GPT5 GTADTRB compare match + FSP_SIGNAL_GPT6_ADTRGA = (485), ///< GPT6 GTADTRA compare match + FSP_SIGNAL_GPT6_ADTRGB = (486), ///< GPT6 GTADTRB compare match + FSP_SIGNAL_GPT7_ADTRGA = (487), ///< GPT7 GTADTRA compare match + FSP_SIGNAL_GPT7_ADTRGB = (488), ///< GPT7 GTADTRB compare match + FSP_SIGNAL_GPT8_ADTRGA = (489), ///< GPT8 GTADTRA compare match + FSP_SIGNAL_GPT8_ADTRGB = (490), ///< GPT8 GTADTRB compare match + FSP_SIGNAL_GPT9_ADTRGA = (491), ///< GPT9 GTADTRA compare match + FSP_SIGNAL_GPT9_ADTRGB = (492), ///< GPT9 GTADTRB compare match + FSP_SIGNAL_GPT10_ADTRGA = (493), ///< GPT10 GTADTRA compare match + FSP_SIGNAL_GPT10_ADTRGB = (494), ///< GPT10 GTADTRB compare match + FSP_SIGNAL_GPT11_ADTRGA = (495), ///< GPT11 GTADTRA compare match + FSP_SIGNAL_GPT11_ADTRGB = (496), ///< GPT11 GTADTRB compare match + FSP_SIGNAL_GPT12_ADTRGA = (497), ///< GPT12 GTADTRA compare match + FSP_SIGNAL_GPT12_ADTRGB = (498), ///< GPT12 GTADTRB compare match + FSP_SIGNAL_GPT13_ADTRGA = (499), ///< GPT13 GTADTRA compare match + FSP_SIGNAL_GPT13_ADTRGB = (500), ///< GPT13 GTADTRB compare match + FSP_SIGNAL_NONE +} fsp_signal_t; + +typedef void (* fsp_vector_t)(void); + +/** @} (end addtogroup BSP_MCU) */ + +#endif diff --git a/bsp/renesas/rzn2l_rsk/rzn/fsp/inc/fsp_version.h b/bsp/renesas/rzn2l_rsk/rzn/fsp/inc/fsp_version.h new file mode 100644 index 0000000000..274f97a19c --- /dev/null +++ b/bsp/renesas/rzn2l_rsk/rzn/fsp/inc/fsp_version.h @@ -0,0 +1,80 @@ +/*********************************************************************************************************************** + * Copyright [2020-2024] Renesas Electronics Corporation and/or its affiliates. All Rights Reserved. + * + * This software and documentation are supplied by Renesas Electronics Corporation and/or its affiliates and may only + * be used with products of Renesas Electronics Corp. and its affiliates ("Renesas"). No other uses are authorized. + * Renesas products are sold pursuant to Renesas terms and conditions of sale. Purchasers are solely responsible for + * the selection and use of Renesas products and Renesas assumes no liability. No license, express or implied, to any + * intellectual property right is granted by Renesas. This software is protected under all applicable laws, including + * copyright laws. Renesas reserves the right to change or discontinue this software and/or this documentation. + * THE SOFTWARE AND DOCUMENTATION IS DELIVERED TO YOU "AS IS," AND RENESAS MAKES NO REPRESENTATIONS OR WARRANTIES, AND + * TO THE FULLEST EXTENT PERMISSIBLE UNDER APPLICABLE LAW, DISCLAIMS ALL WARRANTIES, WHETHER EXPLICITLY OR IMPLICITLY, + * INCLUDING WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE, AND NONINFRINGEMENT, WITH RESPECT TO THE + * SOFTWARE OR DOCUMENTATION. RENESAS SHALL HAVE NO LIABILITY ARISING OUT OF ANY SECURITY VULNERABILITY OR BREACH. + * TO THE MAXIMUM EXTENT PERMITTED BY LAW, IN NO EVENT WILL RENESAS BE LIABLE TO YOU IN CONNECTION WITH THE SOFTWARE OR + * DOCUMENTATION (OR ANY PERSON OR ENTITY CLAIMING RIGHTS DERIVED FROM YOU) FOR ANY LOSS, DAMAGES, OR CLAIMS WHATSOEVER, + * INCLUDING, WITHOUT LIMITATION, ANY DIRECT, CONSEQUENTIAL, SPECIAL, INDIRECT, PUNITIVE, OR INCIDENTAL DAMAGES; ANY + * LOST PROFITS, OTHER ECONOMIC DAMAGE, PROPERTY DAMAGE, OR PERSONAL INJURY; AND EVEN IF RENESAS HAS BEEN ADVISED OF THE + * POSSIBILITY OF SUCH LOSS, DAMAGES, CLAIMS OR COSTS. + **********************************************************************************************************************/ + +#ifndef FSP_VERSION_H +#define FSP_VERSION_H + +/*********************************************************************************************************************** + * Includes + **********************************************************************************************************************/ + +/* Includes board and MCU related header files. */ +#include "bsp_api.h" + +/*******************************************************************************************************************//** + * @addtogroup RENESAS_COMMON + * @{ + **********************************************************************************************************************/ + +/********************************************************************************************************************** + * Macro definitions + **********************************************************************************************************************/ + +/** FSP pack major version. */ +#define FSP_VERSION_MAJOR (2U) + +/** FSP pack minor version. */ +#define FSP_VERSION_MINOR (0U) + +/** FSP pack patch version. */ +#define FSP_VERSION_PATCH (0U) + +/** FSP pack version build number (currently unused). */ +#define FSP_VERSION_BUILD (0U) + +/** Public FSP version name. */ +#define FSP_VERSION_STRING ("2.0.0") + +/** Unique FSP version ID. */ +#define FSP_VERSION_BUILD_STRING ("Built with RZ/N Flexible Software Package version 2.0.0") + +/********************************************************************************************************************** + * Typedef definitions + **********************************************************************************************************************/ + +/** FSP Pack version structure */ +typedef union st_fsp_pack_version +{ + /** Version id */ + uint32_t version_id; + + /** Code version parameters, little endian order. */ + struct version_id_b_s + { + uint8_t build; ///< Build version of FSP Pack + uint8_t patch; ///< Patch version of FSP Pack + uint8_t minor; ///< Minor version of FSP Pack + uint8_t major; ///< Major version of FSP Pack + } version_id_b; +} fsp_pack_version_t; + +/** @} */ + +#endif diff --git a/bsp/renesas/rzn2l_rsk/rzn/fsp/inc/instances/r_ioport.h b/bsp/renesas/rzn2l_rsk/rzn/fsp/inc/instances/r_ioport.h new file mode 100644 index 0000000000..b9f4e1b93e --- /dev/null +++ b/bsp/renesas/rzn2l_rsk/rzn/fsp/inc/instances/r_ioport.h @@ -0,0 +1,212 @@ +/*********************************************************************************************************************** + * Copyright [2020-2024] Renesas Electronics Corporation and/or its affiliates. All Rights Reserved. + * + * This software and documentation are supplied by Renesas Electronics Corporation and/or its affiliates and may only + * be used with products of Renesas Electronics Corp. and its affiliates ("Renesas"). No other uses are authorized. + * Renesas products are sold pursuant to Renesas terms and conditions of sale. Purchasers are solely responsible for + * the selection and use of Renesas products and Renesas assumes no liability. No license, express or implied, to any + * intellectual property right is granted by Renesas. This software is protected under all applicable laws, including + * copyright laws. Renesas reserves the right to change or discontinue this software and/or this documentation. + * THE SOFTWARE AND DOCUMENTATION IS DELIVERED TO YOU "AS IS," AND RENESAS MAKES NO REPRESENTATIONS OR WARRANTIES, AND + * TO THE FULLEST EXTENT PERMISSIBLE UNDER APPLICABLE LAW, DISCLAIMS ALL WARRANTIES, WHETHER EXPLICITLY OR IMPLICITLY, + * INCLUDING WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE, AND NONINFRINGEMENT, WITH RESPECT TO THE + * SOFTWARE OR DOCUMENTATION. RENESAS SHALL HAVE NO LIABILITY ARISING OUT OF ANY SECURITY VULNERABILITY OR BREACH. + * TO THE MAXIMUM EXTENT PERMITTED BY LAW, IN NO EVENT WILL RENESAS BE LIABLE TO YOU IN CONNECTION WITH THE SOFTWARE OR + * DOCUMENTATION (OR ANY PERSON OR ENTITY CLAIMING RIGHTS DERIVED FROM YOU) FOR ANY LOSS, DAMAGES, OR CLAIMS WHATSOEVER, + * INCLUDING, WITHOUT LIMITATION, ANY DIRECT, CONSEQUENTIAL, SPECIAL, INDIRECT, PUNITIVE, OR INCIDENTAL DAMAGES; ANY + * LOST PROFITS, OTHER ECONOMIC DAMAGE, PROPERTY DAMAGE, OR PERSONAL INJURY; AND EVEN IF RENESAS HAS BEEN ADVISED OF THE + * POSSIBILITY OF SUCH LOSS, DAMAGES, CLAIMS OR COSTS. + **********************************************************************************************************************/ + +/*******************************************************************************************************************//** + * @addtogroup IOPORT + * @{ + **********************************************************************************************************************/ + +#ifndef R_IOPORT_H +#define R_IOPORT_H + +/*********************************************************************************************************************** + * Includes + **********************************************************************************************************************/ +#include "bsp_api.h" + +/* Common macro for FSP header files. There is also a corresponding FSP_FOOTER macro at the end of this file. */ +FSP_HEADER + +#include "r_ioport_api.h" +#include "r_ioport_cfg.h" + +/*********************************************************************************************************************** + * Macro definitions + **********************************************************************************************************************/ +#define IOPORT_SINGLE_PORT_NUM (4) +#define IOPORT_PORT_GROUP_NUM (2) +#define IOPORT_PORT_GROUP_1 (0) +#define IOPORT_PORT_GROUP_2 (1) +#define IOPORT_SINGLE_PORT_0 (0) +#define IOPORT_SINGLE_PORT_1 (1) +#define IOPORT_SINGLE_PORT_2 (2) +#define IOPORT_SINGLE_PORT_3 (3) + +/*********************************************************************************************************************** + * Typedef definitions + **********************************************************************************************************************/ + +/** Pin selection for port group + * @note Event link must be configured by the ELC + */ +typedef enum e_ioport_event_pin_selection +{ + IOPORT_EVENT_PIN_SELECTION_NONE = 0x00, ///< No pin selection for port group + IOPORT_EVENT_PIN_SELECTION_PIN_0 = 0x01, ///< Select pin 0 to port group + IOPORT_EVENT_PIN_SELECTION_PIN_1 = 0x02, ///< Select pin 1 to port group + IOPORT_EVENT_PIN_SELECTION_PIN_2 = 0x04, ///< Select pin 2 to port group + IOPORT_EVENT_PIN_SELECTION_PIN_3 = 0x08, ///< Select pin 3 to port group + IOPORT_EVENT_PIN_SELECTION_PIN_4 = 0x10, ///< Select pin 4 to port group + IOPORT_EVENT_PIN_SELECTION_PIN_5 = 0x20, ///< Select pin 5 to port group + IOPORT_EVENT_PIN_SELECTION_PIN_6 = 0x40, ///< Select pin 6 to port group + IOPORT_EVENT_PIN_SELECTION_PIN_7 = 0x80, ///< Select pin 7 to port group +} ioport_event_pin_selection_t; + +/** Port group operation + * @note Event link must be configured by the ELC + */ +typedef enum e_ioport_event_output_operation +{ + IOPORT_EVENT_OUTPUT_OPERATION_LOW = 0x0, ///< Set Low output to output operation + IOPORT_EVENT_OUTPUT_OPERATION_HIGH = 0x1, ///< Set High output to output operation + IOPORT_EVENT_OUTPUT_OPERATION_TOGGLE = 0x2, ///< Set toggle output to output operation + IOPORT_EVENT_OUTPUT_OPERATION_BUFFER = 0x3, ///< Set buffer value output to output operation +} ioport_event_output_operation_t; + +/** Input port group event control + * @note Event link must be configured by the ELC + */ +typedef enum e_ioport_event_control +{ + IOPORT_EVENT_CONTROL_DISABLE = 0x0, ///< Disable function related with event link + IOPORT_EVENT_CONTROL_ENABLE = 0x1, ///< Enable function related with event link +} ioport_event_control_t; + +/** Single port event direction + * @note Event link must be configured by the ELC + */ +typedef enum e_ioport_event_direction +{ + IOPORT_EVENT_DIRECTION_OUTPUT = 0x0, ///< Set output direction to single port + IOPORT_EVENT_DIRECTION_INPUT = 0x1, ///< Set input direction to single port +} ioport_event_direction_t; + +/** Input event edge detection + * @note Event link must be configured by the ELC + */ +typedef enum e_ioport_event_detection +{ + IOPORT_EVENT_DETECTION_RISING_EDGE = 0x0, ///< Set rising edge to event detection for input event + IOPORT_EVENT_DETECTION_FALLING_EDGE = 0x1, ///< Set falling edge to event detection for input event + IOPORT_EVENT_DETECTION_BOTH_EGDE = 0x2, ///< Set both edges to event detection for input event +} ioport_event_detection_t; + +/** Initial value for buffer register + * @note Event link must be configured by the ELC + */ +typedef enum e_ioport_event_initial_buffer_value +{ + IOPORT_EVENT_INITIAL_BUFFER_VALUE_LOW = 0U, ///< Set low input to initial value of buffer register for input port group + IOPORT_EVENT_INITIAL_BUFFER_VALUE_HIGH = 1U, ///< Set high input to initial value of buffer register for input port group +} ioport_event_initial_buffer_value_t; + +/** Single port configuration + * @note Event link must be configured by the ELC + */ +typedef struct st_ioport_event_single +{ + ioport_event_control_t event_control; ///< Event link control for single port + ioport_event_direction_t direction; ///< Event direction for single port + uint16_t port_num; ///< Port number specified to single port + ioport_event_output_operation_t operation; ///< Single port operation select + ioport_event_detection_t edge_detection; ///< Edge detection select +} ioport_event_single_t; + +/** Output port group configuration + * @note Event link must be configured by the ELC + */ +typedef struct st_ioport_event_group_output +{ + uint8_t pin_select; ///< Port number specified to output port group + ioport_event_output_operation_t operation; ///< Port group operation select +} ioport_event_group_output_t; + +/** Input port group configuration + * @note Event link must be configured by the ELC + */ +typedef struct st_ioport_event_group_input +{ + ioport_event_control_t event_control; ///< Event link control for input port group + ioport_event_detection_t edge_detection; ///< Edge detection select + ioport_event_control_t overwrite_control; ///< Buffer register overwrite control + uint8_t pin_select; ///< Port number specified to input port group + uint8_t buffer_init_value; ///< Buffer register initial value +} ioport_event_group_input_t; + +/** IOPORT extended configuration for event link function + * @note Event link must be configured by the ELC + */ +typedef struct st_ioport_extend_cfg +{ + ioport_event_group_output_t port_group_output_cfg[IOPORT_PORT_GROUP_NUM]; ///< Output port group configuration + ioport_event_group_input_t port_group_input_cfg[IOPORT_PORT_GROUP_NUM]; ///< Input port group configuration + ioport_event_single_t single_port_cfg[IOPORT_SINGLE_PORT_NUM]; ///< Single input port configuration +} ioport_extend_cfg_t; + +/** IOPORT private control block. DO NOT MODIFY. Initialization occurs when R_IOPORT_Open() is called. */ +typedef struct st_ioport_instance_ctrl +{ + uint32_t open; // Whether or not ioport is open + void const * p_context; // Pointer to context to be passed into callback + ioport_cfg_t const * p_cfg; // Pointer to the configuration block +} ioport_instance_ctrl_t; + +/********************************************************************************************************************** + * Exported global variables + **********************************************************************************************************************/ + +/** @cond INC_HEADER_DEFS_SEC */ +/** Filled in Interface API structure for this Instance. */ +extern const ioport_api_t g_ioport_on_ioport; + +/** @endcond */ + +/*********************************************************************************************************************** + * Public APIs + **********************************************************************************************************************/ + +fsp_err_t R_IOPORT_Open(ioport_ctrl_t * const p_ctrl, const ioport_cfg_t * p_cfg); +fsp_err_t R_IOPORT_Close(ioport_ctrl_t * const p_ctrl); +fsp_err_t R_IOPORT_PinsCfg(ioport_ctrl_t * const p_ctrl, const ioport_cfg_t * p_cfg); +fsp_err_t R_IOPORT_PinCfg(ioport_ctrl_t * const p_ctrl, bsp_io_port_pin_t pin, uint32_t cfg); +fsp_err_t R_IOPORT_PinEventInputRead(ioport_ctrl_t * const p_ctrl, bsp_io_port_pin_t pin, bsp_io_level_t * p_pin_event); +fsp_err_t R_IOPORT_PinEventOutputWrite(ioport_ctrl_t * const p_ctrl, bsp_io_port_pin_t pin, bsp_io_level_t pin_value); +fsp_err_t R_IOPORT_PinRead(ioport_ctrl_t * const p_ctrl, bsp_io_port_pin_t pin, bsp_io_level_t * p_pin_value); +fsp_err_t R_IOPORT_PinWrite(ioport_ctrl_t * const p_ctrl, bsp_io_port_pin_t pin, bsp_io_level_t level); +fsp_err_t R_IOPORT_PortDirectionSet(ioport_ctrl_t * const p_ctrl, + bsp_io_port_t port, + ioport_size_t direction_values, + ioport_size_t mask); +fsp_err_t R_IOPORT_PortEventInputRead(ioport_ctrl_t * const p_ctrl, bsp_io_port_t port, ioport_size_t * p_event_data); +fsp_err_t R_IOPORT_PortEventOutputWrite(ioport_ctrl_t * const p_ctrl, + bsp_io_port_t port, + ioport_size_t event_data, + ioport_size_t mask_value); +fsp_err_t R_IOPORT_PortRead(ioport_ctrl_t * const p_ctrl, bsp_io_port_t port, ioport_size_t * p_port_value); +fsp_err_t R_IOPORT_PortWrite(ioport_ctrl_t * const p_ctrl, bsp_io_port_t port, ioport_size_t value, ioport_size_t mask); + +/*******************************************************************************************************************//** + * @} (end defgroup IOPORT) + **********************************************************************************************************************/ + +/* Common macro for FSP header files. There is also a corresponding FSP_HEADER macro at the top of this file. */ +FSP_FOOTER + +#endif // R_IOPORT_H diff --git a/bsp/renesas/rzn2l_rsk/rzn/fsp/inc/instances/r_sci_uart.h b/bsp/renesas/rzn2l_rsk/rzn/fsp/inc/instances/r_sci_uart.h new file mode 100644 index 0000000000..fd40394111 --- /dev/null +++ b/bsp/renesas/rzn2l_rsk/rzn/fsp/inc/instances/r_sci_uart.h @@ -0,0 +1,246 @@ +/*********************************************************************************************************************** + * Copyright [2020-2024] Renesas Electronics Corporation and/or its affiliates. All Rights Reserved. + * + * This software and documentation are supplied by Renesas Electronics Corporation and/or its affiliates and may only + * be used with products of Renesas Electronics Corp. and its affiliates ("Renesas"). No other uses are authorized. + * Renesas products are sold pursuant to Renesas terms and conditions of sale. Purchasers are solely responsible for + * the selection and use of Renesas products and Renesas assumes no liability. No license, express or implied, to any + * intellectual property right is granted by Renesas. This software is protected under all applicable laws, including + * copyright laws. Renesas reserves the right to change or discontinue this software and/or this documentation. + * THE SOFTWARE AND DOCUMENTATION IS DELIVERED TO YOU "AS IS," AND RENESAS MAKES NO REPRESENTATIONS OR WARRANTIES, AND + * TO THE FULLEST EXTENT PERMISSIBLE UNDER APPLICABLE LAW, DISCLAIMS ALL WARRANTIES, WHETHER EXPLICITLY OR IMPLICITLY, + * INCLUDING WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE, AND NONINFRINGEMENT, WITH RESPECT TO THE + * SOFTWARE OR DOCUMENTATION. RENESAS SHALL HAVE NO LIABILITY ARISING OUT OF ANY SECURITY VULNERABILITY OR BREACH. + * TO THE MAXIMUM EXTENT PERMITTED BY LAW, IN NO EVENT WILL RENESAS BE LIABLE TO YOU IN CONNECTION WITH THE SOFTWARE OR + * DOCUMENTATION (OR ANY PERSON OR ENTITY CLAIMING RIGHTS DERIVED FROM YOU) FOR ANY LOSS, DAMAGES, OR CLAIMS WHATSOEVER, + * INCLUDING, WITHOUT LIMITATION, ANY DIRECT, CONSEQUENTIAL, SPECIAL, INDIRECT, PUNITIVE, OR INCIDENTAL DAMAGES; ANY + * LOST PROFITS, OTHER ECONOMIC DAMAGE, PROPERTY DAMAGE, OR PERSONAL INJURY; AND EVEN IF RENESAS HAS BEEN ADVISED OF THE + * POSSIBILITY OF SUCH LOSS, DAMAGES, CLAIMS OR COSTS. + **********************************************************************************************************************/ + +#ifndef R_SCI_UART_H +#define R_SCI_UART_H + +/*******************************************************************************************************************//** + * @addtogroup SCI_UART + * @{ + **********************************************************************************************************************/ + +/*********************************************************************************************************************** + * Includes + **********************************************************************************************************************/ +#include "bsp_api.h" +#include "r_uart_api.h" +#include "r_sci_uart_cfg.h" + +/* Common macro for FSP header files. There is also a corresponding FSP_FOOTER macro at the end of this file. */ +FSP_HEADER + +/*********************************************************************************************************************** + * Macro definitions + **********************************************************************************************************************/ + +/********************************************************************************************************************** + * Typedef definitions + **********************************************************************************************************************/ + +/** Enumeration for SCI clock source */ +typedef enum e_sci_uart_clock +{ + SCI_UART_CLOCK_INT, ///< Use internal clock for baud generation + SCI_UART_CLOCK_INT_WITH_BAUDRATE_OUTPUT, ///< Use internal clock for baud generation and output on SCK + SCI_UART_CLOCK_EXT8X, ///< Use external clock 8x baud rate + SCI_UART_CLOCK_EXT16X ///< Use external clock 16x baud rate +} sci_uart_clock_t; + +/** UART flow control mode definition */ +typedef enum e_sci_uart_flow_control +{ + SCI_UART_FLOW_CONTROL_RTS = 0U, ///< Use CTSn_RTSn pin for RTS + SCI_UART_FLOW_CONTROL_CTS = 1U, ///< Use CTSn_RTSn pin for CTS + SCI_UART_FLOW_CONTROL_HARDWARE_CTSRTS = 3U, ///< Use CTSn pin for CTS, CTSn_RTSn pin for RTS + SCI_UART_FLOW_CONTROL_CTSRTS = 5U, ///< Use SCI pin for CTS, external pin for RTS +} sci_uart_flow_control_t; + +/** UART instance control block. */ +typedef struct st_sci_uart_instance_ctrl +{ + /* Parameters to control UART peripheral device */ + uint8_t fifo_depth; // FIFO depth of the UART channel + uint8_t rx_transfer_in_progress; // Set to 1 if a receive transfer is in progress, 0 otherwise + uint8_t data_bytes : 2; // 1 byte for 7 or 8 bit data, 2 bytes for 9 bit data + uint8_t bitrate_modulation : 1; // 1 if bit rate modulation is enabled, 0 otherwise + uint32_t open; // Used to determine if the channel is configured + + bsp_io_port_pin_t flow_pin; + + /* Source buffer pointer used to fill hardware FIFO from transmit ISR. */ + uint8_t const * p_tx_src; + + /* Size of source buffer pointer used to fill hardware FIFO from transmit ISR. */ + uint32_t tx_src_bytes; + + /* Destination buffer pointer used for receiving data. */ + uint8_t const * p_rx_dest; + + /* Size of destination buffer pointer used for receiving data. */ + uint32_t rx_dest_bytes; + + /* Pointer to the configuration block. */ + uart_cfg_t const * p_cfg; + + /* Base register for this channel */ + R_SCI0_Type * p_reg; + + void (* p_callback)(uart_callback_args_t *); // Pointer to callback that is called when a uart_event_t occurs. + uart_callback_args_t * p_callback_memory; // Pointer to non-secure memory that can be used to pass arguments to a callback in non-secure memory. + + /* Pointer to context to be passed into callback function */ + void const * p_context; +} sci_uart_instance_ctrl_t; + +/** Receive FIFO trigger configuration. */ +typedef enum e_sci_uart_rx_fifo_trigger +{ + SCI_UART_RX_FIFO_TRIGGER_1 = 0x1, ///< Callback after each byte is received without buffering + SCI_UART_RX_FIFO_TRIGGER_MAX = 0xF, ///< Callback when FIFO is full or after 15 bit times with no data (fewer interrupts) +} sci_uart_rx_fifo_trigger_t; + +/** Asynchronous Start Bit Edge Detection configuration. */ +typedef enum e_sci_uart_start_bit +{ + SCI_UART_START_BIT_LOW_LEVEL = 0x0, ///< Detect low level on RXDn pin as start bit + SCI_UART_START_BIT_FALLING_EDGE = 0x1, ///< Detect falling level on RXDn pin as start bit +} sci_uart_start_bit_t; + +/** Noise cancellation configuration. */ +typedef enum e_sci_uart_noise_cancellation +{ + SCI_UART_NOISE_CANCELLATION_DISABLE = 0x0, ///< Disable noise cancellation + SCI_UART_NOISE_CANCELLATION_ENABLE = 0x1, ///< Enable noise cancellation, The base clock signal divided by 1 + SCI_UART_NOISE_CANCELLATION_ENABLE_FILTER_CKS_DIV_1 = 0x2, ///< Enable noise cancellation, The on-chip baud rate generator source clock divided by 1 + SCI_UART_NOISE_CANCELLATION_ENABLE_FILTER_CKS_DIV_2 = 0x3, ///< Enable noise cancellation, The on-chip baud rate generator source clock divided by 2 + SCI_UART_NOISE_CANCELLATION_ENABLE_FILTER_CKS_DIV_4 = 0x4, ///< Enable noise cancellation, The on-chip baud rate generator source clock divided by 4 + SCI_UART_NOISE_CANCELLATION_ENABLE_FILTER_CKS_DIV_8 = 0x5, ///< Enable noise cancellation, The on-chip baud rate generator source clock divided by 8 +} sci_uart_noise_cancellation_t; + +/** RS-485 Enable/Disable. */ +typedef enum e_sci_uart_rs485_enable +{ + SCI_UART_RS485_DISABLE = 0, ///< RS-485 disabled. + SCI_UART_RS485_ENABLE = 1, ///< RS-485 enabled. +} sci_uart_rs485_enable_t; + +/** The polarity of the RS-485 DE signal. */ +typedef enum e_sci_uart_rs485_de_polarity +{ + SCI_UART_RS485_DE_POLARITY_HIGH = 0, ///< The DE signal is high when a write transfer is in progress. + SCI_UART_RS485_DE_POLARITY_LOW = 1, ///< The DE signal is low when a write transfer is in progress. +} sci_uart_rs485_de_polarity_t; + +/** Source clock selection options for SCI. */ +typedef enum e_sci_uart_clock_source +{ + SCI_UART_CLOCK_SOURCE_SCI0ASYNCCLK = 0, + SCI_UART_CLOCK_SOURCE_SCI1ASYNCCLK = 1, + SCI_UART_CLOCK_SOURCE_SCI2ASYNCCLK = 2, + SCI_UART_CLOCK_SOURCE_SCI3ASYNCCLK = 3, + SCI_UART_CLOCK_SOURCE_SCI4ASYNCCLK = 4, + SCI_UART_CLOCK_SOURCE_SCI5ASYNCCLK = 5, + SCI_UART_CLOCK_SOURCE_PCLKM = 6, +} sci_uart_clock_source_t; + +/** Baudrate calculation configuration. */ +typedef struct st_sci_uart_baud_calculation +{ + uint32_t baudrate; ///< Target baudrate + bool bitrate_modulation; ///< Whether bitrate modulation use or not + uint32_t baud_rate_error_x_1000; ///< Max baudrate percent error +} sci_uart_baud_calculation_t; + +/** Register settings to achieve a desired baud rate and modulation duty. */ +typedef struct st_sci_baud_setting_t +{ + union + { + uint32_t baudrate_bits; + + struct + { + uint32_t : 4; + uint32_t bgdm : 1; ///< Baud Rate Generator Double-Speed Mode Select + uint32_t abcs : 1; ///< Asynchronous Mode Base Clock Select + uint32_t abcse : 1; ///< Asynchronous Mode Extended Base Clock Select 1 + uint32_t : 1; + uint32_t brr : 8; ///< Bit Rate Register setting + uint32_t brme : 1; ///< Bit Rate Modulation Enable + uint32_t : 3; + uint32_t cks : 2; ///< CKS value to get divisor (CKS = N) + uint32_t : 2; + uint32_t mddr : 8; ///< Modulation Duty Register setting + } baudrate_bits_b; + }; +} sci_baud_setting_t; + +/** Configuration settings for controlling the DE signal for RS-485. */ +typedef struct st_sci_uart_rs485_setting +{ + sci_uart_rs485_enable_t enable; ///< Enable the DE signal. + sci_uart_rs485_de_polarity_t polarity; ///< DE signal polarity. + uint8_t assertion_time : 5; ///< Time in baseclock units after assertion of the DE signal and before the start of the write transfer. + uint8_t negation_time : 5; ///< Time in baseclock units after the end of a write transfer and before the DE signal is negated. +} sci_uart_rs485_setting_t; + +/** UART on SCI device Configuration */ +typedef struct st_sci_uart_extended_cfg +{ + sci_uart_clock_t clock; ///< The source clock for the baud-rate generator. If internal optionally output baud rate on SCK + sci_uart_start_bit_t rx_edge_start; ///< Start reception on falling edge + sci_uart_noise_cancellation_t noise_cancel; ///< Noise cancellation setting + + sci_baud_setting_t * p_baud_setting; ///< Register settings for a desired baud rate. + + sci_uart_rx_fifo_trigger_t rx_fifo_trigger; ///< Receive FIFO trigger level, unused if channel has no FIFO or if DMAC is used. + + bsp_io_port_pin_t flow_control_pin; ///< UART Driver Enable pin + sci_uart_flow_control_t flow_control; ///< CTS/RTS function + sci_uart_rs485_setting_t rs485_setting; ///< RS-485 settings. + + /** Clock source to generate SCK can either be selected as PCLKM or SCInASYNCCLK. */ + sci_uart_clock_source_t clock_source; +} sci_uart_extended_cfg_t; + +/********************************************************************************************************************** + * Exported global variables + **********************************************************************************************************************/ + +/** @cond INC_HEADER_DEFS_SEC */ +/** Filled in Interface API structure for this Instance. */ +extern const uart_api_t g_uart_on_sci; + +/** @endcond */ + +fsp_err_t R_SCI_UART_Open(uart_ctrl_t * const p_ctrl, uart_cfg_t const * const p_cfg); +fsp_err_t R_SCI_UART_Read(uart_ctrl_t * const p_ctrl, uint8_t * const p_dest, uint32_t const bytes); +fsp_err_t R_SCI_UART_Write(uart_ctrl_t * const p_ctrl, uint8_t const * const p_src, uint32_t const bytes); +fsp_err_t R_SCI_UART_BaudSet(uart_ctrl_t * const p_ctrl, void const * const p_baud_setting); +fsp_err_t R_SCI_UART_InfoGet(uart_ctrl_t * const p_ctrl, uart_info_t * const p_info); +fsp_err_t R_SCI_UART_Close(uart_ctrl_t * const p_ctrl); +fsp_err_t R_SCI_UART_Abort(uart_ctrl_t * const p_ctrl, uart_dir_t communication_to_abort); +fsp_err_t R_SCI_UART_BaudCalculate(sci_uart_baud_calculation_t const * const p_baud_target, + sci_uart_clock_source_t clock_source, + sci_baud_setting_t * const p_baud_setting); +fsp_err_t R_SCI_UART_CallbackSet(uart_ctrl_t * const p_ctrl, + void ( * p_callback)(uart_callback_args_t *), + void const * const p_context, + uart_callback_args_t * const p_callback_memory); +fsp_err_t R_SCI_UART_ReadStop(uart_ctrl_t * const p_ctrl, uint32_t * remaining_bytes); + +/*******************************************************************************************************************//** + * @} (end addtogroup SCI_UART) + **********************************************************************************************************************/ + +/* Common macro for FSP header files. There is also a corresponding FSP_HEADER macro at the top of this file. */ +FSP_FOOTER + +#endif diff --git a/bsp/renesas/rzn2l_rsk/rzn/fsp/src/bsp/cmsis/Device/RENESAS/Include/R9A07G084.h b/bsp/renesas/rzn2l_rsk/rzn/fsp/src/bsp/cmsis/Device/RENESAS/Include/R9A07G084.h new file mode 100644 index 0000000000..ae4df5d449 --- /dev/null +++ b/bsp/renesas/rzn2l_rsk/rzn/fsp/src/bsp/cmsis/Device/RENESAS/Include/R9A07G084.h @@ -0,0 +1,46278 @@ +/*********************************************************************************************************************** + * Copyright [2020-2024] Renesas Electronics Corporation and/or its affiliates. All Rights Reserved. + * + * This software and documentation are supplied by Renesas Electronics Corporation and/or its affiliates and may only + * be used with products of Renesas Electronics Corp. and its affiliates ("Renesas"). No other uses are authorized. + * Renesas products are sold pursuant to Renesas terms and conditions of sale. Purchasers are solely responsible for + * the selection and use of Renesas products and Renesas assumes no liability. No license, express or implied, to any + * intellectual property right is granted by Renesas. This software is protected under all applicable laws, including + * copyright laws. Renesas reserves the right to change or discontinue this software and/or this documentation. + * THE SOFTWARE AND DOCUMENTATION IS DELIVERED TO YOU "AS IS," AND RENESAS MAKES NO REPRESENTATIONS OR WARRANTIES, AND + * TO THE FULLEST EXTENT PERMISSIBLE UNDER APPLICABLE LAW, DISCLAIMS ALL WARRANTIES, WHETHER EXPLICITLY OR IMPLICITLY, + * INCLUDING WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE, AND NONINFRINGEMENT, WITH RESPECT TO THE + * SOFTWARE OR DOCUMENTATION. RENESAS SHALL HAVE NO LIABILITY ARISING OUT OF ANY SECURITY VULNERABILITY OR BREACH. + * TO THE MAXIMUM EXTENT PERMITTED BY LAW, IN NO EVENT WILL RENESAS BE LIABLE TO YOU IN CONNECTION WITH THE SOFTWARE OR + * DOCUMENTATION (OR ANY PERSON OR ENTITY CLAIMING RIGHTS DERIVED FROM YOU) FOR ANY LOSS, DAMAGES, OR CLAIMS WHATSOEVER, + * INCLUDING, WITHOUT LIMITATION, ANY DIRECT, CONSEQUENTIAL, SPECIAL, INDIRECT, PUNITIVE, OR INCIDENTAL DAMAGES; ANY + * LOST PROFITS, OTHER ECONOMIC DAMAGE, PROPERTY DAMAGE, OR PERSONAL INJURY; AND EVEN IF RENESAS HAS BEEN ADVISED OF THE + * POSSIBILITY OF SUCH LOSS, DAMAGES, CLAIMS OR COSTS. + **********************************************************************************************************************/ + +/** @addtogroup Renesas Electronics Corporation + * @{ + */ + +/** @addtogroup R9A07G084 + * @{ + */ + +#ifndef R9A07G084_H + #define R9A07G084_H + + #ifdef __cplusplus +extern "C" { + #endif + +/** @addtogroup Configuration_of_CMSIS + * @{ + */ + +/* =========================================================================================================================== */ +/* ================ Interrupt Number Definition ================ */ +/* =========================================================================================================================== */ + +/* =========================================================================================================================== */ +/* ================ Processor and Core Peripheral Section ================ */ +/* =========================================================================================================================== */ + +/* ----------------Configuration of the Cortex-M Processor and Core Peripherals---------------- */ + #ifdef RENESAS_CORTEX_M4 + #define __MPU_PRESENT 1 /*!< MPU present or not */ + #define __NVIC_PRIO_BITS 4 /*!< Number of Bits used for Priority Levels */ + #define __Vendor_SysTickConfig 0 /*!< Set to 1 if different SysTick Config is used */ + #define __FPU_PRESENT 1 /*!< FPU present or not */ + #include "core_cm4.h" /*!< Cortex-M4 processor and core peripherals */ + #elif defined(RENESAS_CORTEX_M0PLUS) + #define __MPU_PRESENT 1 /*!< MPU present or not */ + #define __NVIC_PRIO_BITS 2 /*!< Number of Bits used for Priority Levels */ + #define __Vendor_SysTickConfig 0 /*!< Set to 1 if different SysTick Config is used */ + #define __FPU_PRESENT 0 /*!< FPU present or not */ + #define __VTOR_PRESENT 1 /*!< Vector table VTOR register available or not */ + #include "core_cm0plus.h" /*!< Cortex-M0 processor and core peripherals */ + #elif defined(RENESAS_CORTEX_M23) + #define __MPU_PRESENT 1 /*!< MPU present or not */ + #define __NVIC_PRIO_BITS 2 /*!< Number of Bits used for Priority Levels */ + #define __Vendor_SysTickConfig 0 /*!< Set to 1 if different SysTick Config is used */ + #define __FPU_PRESENT 0 /*!< FPU present or not */ + #define __VTOR_PRESENT 1 /*!< Vector table VTOR register available or not */ + #include "core_cm23.h" /*!< Cortex-M23 processor and core peripherals */ + #elif defined(RENESAS_CORTEX_M33) + #define __MPU_PRESENT 1 /*!< MPU present or not */ + #define __NVIC_PRIO_BITS 4 /*!< Number of Bits used for Priority Levels */ + #define __Vendor_SysTickConfig 0 /*!< Set to 1 if different SysTick Config is used */ + #define __FPU_PRESENT 1 /*!< FPU present or not */ + #define __VTOR_PRESENT 1 /*!< Vector table VTOR register available or not */ + #define __DSP_PRESENT 1 /*!< DSP present or not */ + #include "core_cm33.h" /*!< Cortex-M33 processor and core peripherals */ + #elif defined(RENESAS_CORTEX_R52) + #define __FPU_PRESENT 1 /*!< FPU present or not */ + #include "core_cr52.h" /*!< Cortex-R52 processor and core peripherals */ + #endif + + #include "system.h" /*!< System */ + + #ifndef __IM /*!< Fallback for older CMSIS versions */ + #define __IM __I + #endif + #ifndef __OM /*!< Fallback for older CMSIS versions */ + #define __OM __O + #endif + #ifndef __IOM /*!< Fallback for older CMSIS versions */ + #define __IOM __IO + #endif + +/* ======================================== Start of section using anonymous unions ======================================== */ + #if defined(__CC_ARM) + #pragma push + #pragma anon_unions + #elif defined(__ICCARM__) + #pragma language=extended + #elif defined(__ARMCC_VERSION) && (__ARMCC_VERSION >= 6010050) + #pragma clang diagnostic push + #pragma clang diagnostic ignored "-Wc11-extensions" + #pragma clang diagnostic ignored "-Wreserved-id-macro" + #pragma clang diagnostic ignored "-Wgnu-anonymous-struct" + #pragma clang diagnostic ignored "-Wnested-anon-types" + #elif defined(__GNUC__) + +/* anonymous unions are enabled by default */ + #elif defined(__TMS470__) + +/* anonymous unions are enabled by default */ + #elif defined(__TASKING__) + #pragma warning 586 + #elif defined(__CSMC__) + +/* anonymous unions are enabled by default */ + #else + #warning Not supported compiler type + #endif + +/* =========================================================================================================================== */ +/* ================ Device Specific Cluster Section ================ */ +/* =========================================================================================================================== */ + +/** @addtogroup Device_Peripheral_clusters + * @{ + */ + +/** + * @brief R_CANFD_CFDC [CFDC] (CANFD Channel [0..1] Registers) + */ +typedef struct +{ + union + { + __IOM uint32_t NCFG; /*!< (@ 0x00000000) Channel n Nominal Bit Rate Configuration Register */ + + struct + { + __IOM uint32_t NBRP : 10; /*!< [9..0] Nominal Bit Rate Prescaler */ + __IOM uint32_t NSJW : 7; /*!< [16..10] Nominal Bit Rate Resynchronization Jump Width Control */ + __IOM uint32_t NTSEG1 : 8; /*!< [24..17] Nominal Bit Rate Time Segment 1 Control */ + __IOM uint32_t NTSEG2 : 7; /*!< [31..25] Nominal Bit Rate Time Segment 2 Control */ + } NCFG_b; + }; + + union + { + __IOM uint32_t CTR; /*!< (@ 0x00000004) Channel n Control Register */ + + struct + { + __IOM uint32_t CHMDC : 2; /*!< [1..0] Mode Select */ + __IOM uint32_t CSLPR : 1; /*!< [2..2] Channel Stop Mode */ + __IOM uint32_t RTBO : 1; /*!< [3..3] Forcible Return from Bus-Off */ + uint32_t : 4; + __IOM uint32_t BEIE : 1; /*!< [8..8] Bus Error Interrupt Enable */ + __IOM uint32_t EWIE : 1; /*!< [9..9] Error Warning Interrupt Enable */ + __IOM uint32_t EPIE : 1; /*!< [10..10] Error Passive Interrupt Enable */ + __IOM uint32_t BOEIE : 1; /*!< [11..11] Bus-Off Entry Interrupt Enable */ + __IOM uint32_t BORIE : 1; /*!< [12..12] Bus-Off Recovery Interrupt Enable */ + __IOM uint32_t OLIE : 1; /*!< [13..13] Overload Interrupt Enable */ + __IOM uint32_t BLIE : 1; /*!< [14..14] Bus Lock Interrupt Enable */ + __IOM uint32_t ALIE : 1; /*!< [15..15] Arbitration Lost Interrupt Enable */ + __IOM uint32_t TAIE : 1; /*!< [16..16] Transmission Abort Interrupt Enable */ + __IOM uint32_t EOCOIE : 1; /*!< [17..17] Error Occurrence Counter Overflow Interrupt Enable */ + __IOM uint32_t SOCOIE : 1; /*!< [18..18] Successful Occurrence Counter Overflow Interrupt Enable */ + __IOM uint32_t TDCVFIE : 1; /*!< [19..19] Transceiver Delay Compensation Violation Interrupt + * Enable */ + uint32_t : 1; + __IOM uint32_t BOM : 2; /*!< [22..21] Bus-Off Recovery Mode Select */ + __IOM uint32_t ERRD : 1; /*!< [23..23] Error Display Mode Select */ + __IOM uint32_t CTME : 1; /*!< [24..24] Communication Test Mode Enable */ + __IOM uint32_t CTMS : 2; /*!< [26..25] Communication Test Mode Select */ + uint32_t : 3; + __IOM uint32_t CRCT : 1; /*!< [30..30] CRC Error Test Enable */ + __IOM uint32_t ROM : 1; /*!< [31..31] Restricted Operation Mode Enable */ + } CTR_b; + }; + + union + { + __IOM uint32_t STS; /*!< (@ 0x00000008) Channel n Status Register */ + + struct + { + __IM uint32_t CRSTSTS : 1; /*!< [0..0] Channel Reset Status Flag */ + __IM uint32_t CHLTSTS : 1; /*!< [1..1] Channel Halt Status Flag */ + __IM uint32_t CSLPSTS : 1; /*!< [2..2] Channel Stop Status Flag */ + __IM uint32_t EPSTS : 1; /*!< [3..3] Error Passive Status Flag */ + __IM uint32_t BOSTS : 1; /*!< [4..4] Bus-Off Status Flag */ + __IM uint32_t TRMSTS : 1; /*!< [5..5] Transmit Status Flag */ + __IM uint32_t RECSTS : 1; /*!< [6..6] Receive Status Flag */ + __IM uint32_t COMSTS : 1; /*!< [7..7] Communication Status Flag */ + __IOM uint32_t ESIF : 1; /*!< [8..8] Error State Indication Flag */ + uint32_t : 7; + __IM uint32_t REC : 8; /*!< [23..16] Reception Error Count */ + __IM uint32_t TEC : 8; /*!< [31..24] Transmission Error Count */ + } STS_b; + }; + + union + { + __IOM uint32_t ERFL; /*!< (@ 0x0000000C) Channel n Error Flag Register */ + + struct + { + __IOM uint32_t BEF : 1; /*!< [0..0] Bus Error Flag */ + __IOM uint32_t EWF : 1; /*!< [1..1] Error Warning Flag */ + __IOM uint32_t EPF : 1; /*!< [2..2] Error Passive Flag */ + __IOM uint32_t BOEF : 1; /*!< [3..3] Bus-Off Entry Flag */ + __IOM uint32_t BORF : 1; /*!< [4..4] Bus-Off Recovery Flag */ + __IOM uint32_t OVLF : 1; /*!< [5..5] Overload Flag */ + __IOM uint32_t BLF : 1; /*!< [6..6] Bus Lock Flag */ + __IOM uint32_t ALF : 1; /*!< [7..7] Arbitration Lost Flag */ + __IOM uint32_t SERR : 1; /*!< [8..8] Stuff Error Flag */ + __IOM uint32_t FERR : 1; /*!< [9..9] Form Error Flag */ + __IOM uint32_t AERR : 1; /*!< [10..10] Acknowledge Error Flag */ + __IOM uint32_t CERR : 1; /*!< [11..11] CRC Error Flag */ + __IOM uint32_t B1ERR : 1; /*!< [12..12] Recessive Bit Error Flag */ + __IOM uint32_t B0ERR : 1; /*!< [13..13] Dominant Bit Error Flag */ + __IOM uint32_t ADERR : 1; /*!< [14..14] Acknowledge Delimiter Error Flag */ + uint32_t : 1; + __IM uint32_t CRCREG : 15; /*!< [30..16] CRC Calculation Data (CRC length: 15 bits) */ + uint32_t : 1; + } ERFL_b; + }; +} R_CANFD_CFDC_Type; /*!< Size = 16 (0x10) */ + +/** + * @brief R_CANFD_CFDC2 [CFDC2] (Channel Configuration Registers) + */ +typedef struct +{ + union + { + __IOM uint32_t DCFG; /*!< (@ 0x00000000) Channel Data Bit Rate Configuration Register */ + + struct + { + __IOM uint32_t DBRP : 8; /*!< [7..0] Data Bit Rate Prescaler Division Ratio Setting */ + __IOM uint32_t DTSEG1 : 5; /*!< [12..8] Data Bit Rate Time Segment 1 Control */ + uint32_t : 3; + __IOM uint32_t DTSEG2 : 4; /*!< [19..16] Data Bit Rate Time Segment 2 Control */ + uint32_t : 4; + __IOM uint32_t DSJW : 4; /*!< [27..24] Data Bit Rate Resynchronization Jump Width Control */ + uint32_t : 4; + } DCFG_b; + }; + + union + { + __IOM uint32_t FDCFG; /*!< (@ 0x00000004) Channel n CAN-FD Configuration Register */ + + struct + { + __IOM uint32_t EOCCFG : 3; /*!< [2..0] Error Occurrence Counter Configuration */ + uint32_t : 5; + __IOM uint32_t TDCOC : 1; /*!< [8..8] Transmitter Delay Compensation Offset Configuration */ + __IOM uint32_t TDCE : 1; /*!< [9..9] Transceiver Delay Compensation Enable */ + __IOM uint32_t ESIC : 1; /*!< [10..10] Error State Indication Configuration */ + uint32_t : 5; + __IOM uint32_t TDCO : 8; /*!< [23..16] Transceiver Delay Compensation Offset */ + __IOM uint32_t GWEN : 1; /*!< [24..24] CAN2.0, CAN-FD Multi Gateway Enable */ + __IOM uint32_t GWFDF : 1; /*!< [25..25] Gateway FDF Configuration Bit */ + __IOM uint32_t GWBRS : 1; /*!< [26..26] Gateway BRS Configuration Bit */ + uint32_t : 1; + __IOM uint32_t FDOE : 1; /*!< [28..28] FD-Only Enable */ + __IOM uint32_t REFE : 1; /*!< [29..29] RX Edge Filter Enable */ + __IOM uint32_t CLOE : 1; /*!< [30..30] Classical CAN-Only Enable */ + __IOM uint32_t CFDTE : 1; /*!< [31..31] CAN-FD Frame Distinction Enable */ + } FDCFG_b; + }; + + union + { + __IOM uint32_t FDCTR; /*!< (@ 0x00000008) Channel n CAN-FD Control Register */ + + struct + { + __IOM uint32_t EOCCLR : 1; /*!< [0..0] Error Occurrence Counter Clear */ + __IOM uint32_t SOCCLR : 1; /*!< [1..1] Successful Occurrence Counter Clear */ + uint32_t : 30; + } FDCTR_b; + }; + + union + { + __IOM uint32_t FDSTS; /*!< (@ 0x0000000C) Channel n CAN-FD Status Register */ + + struct + { + __IM uint32_t TDCR : 8; /*!< [7..0] Transceiver Delay Compensation Result */ + __IOM uint32_t EOCO : 1; /*!< [8..8] Error Occurrence Counter Overflow Flag */ + __IOM uint32_t SOCO : 1; /*!< [9..9] Successful Occurrence Counter Overflow Flag */ + uint32_t : 5; + __IOM uint32_t TDCVF : 1; /*!< [15..15] Transceiver Delay Compensation Violation Flag */ + __IM uint32_t EOC : 8; /*!< [23..16] Error Occurrence Counter */ + __IM uint32_t SOC : 8; /*!< [31..24] Successful Occurrence Counter */ + } FDSTS_b; + }; + + union + { + __IM uint32_t FDCRC; /*!< (@ 0x00000010) Channel n CAN-FD CRC Register */ + + struct + { + __IM uint32_t CRCREG : 21; /*!< [20..0] CRC Register Value */ + uint32_t : 4; + __IM uint32_t SCNT : 4; /*!< [28..25] Stuff Bit Count */ + uint32_t : 3; + } FDCRC_b; + }; + __IM uint32_t RESERVED; + + union + { + __IOM uint32_t BLCT; /*!< (@ 0x00000018) Channel n Bus Load Control Register */ + + struct + { + __IOM uint32_t BLCE : 1; /*!< [0..0] Bus Load Counter Enable */ + uint32_t : 7; + __OM uint32_t BLCLD : 1; /*!< [8..8] Bus Load Counter Load */ + uint32_t : 23; + } BLCT_b; + }; + + union + { + __IM uint32_t BLSTS; /*!< (@ 0x0000001C) Channel n Bus Load Status Register */ + + struct + { + uint32_t : 3; + __IM uint32_t BLC : 29; /*!< [31..3] Bus Load Counter Status */ + } BLSTS_b; + }; +} R_CANFD_CFDC2_Type; /*!< Size = 32 (0x20) */ + +/** + * @brief R_CANFD_CFDGAFL [CFDGAFL] (Global Acceptance Filter List Registers) + */ +typedef struct +{ + union + { + __IOM uint32_t ID; /*!< (@ 0x00000000) Global Acceptance Filter List ID Register n */ + + struct + { + __IOM uint32_t GAFLID : 29; /*!< [28..0] Global Acceptance Filter List Entry ID Field */ + __IOM uint32_t GAFLLB : 1; /*!< [29..29] Global Acceptance Filter List Entry Loopback Configuration */ + __IOM uint32_t GAFLRTR : 1; /*!< [30..30] Global Acceptance Filter List Entry RTR Field */ + __IOM uint32_t GAFLIDE : 1; /*!< [31..31] Global Acceptance Filter List Entry IDE Field */ + } ID_b; + }; + + union + { + __IOM uint32_t M; /*!< (@ 0x00000004) Global Acceptance Filter List Mask Register n */ + + struct + { + __IOM uint32_t GAFLIDM : 29; /*!< [28..0] Global Acceptance Filter List ID Mask Field */ + __IOM uint32_t GAFLIFL1 : 1; /*!< [29..29] Global Acceptance Filter List Information Label 1 */ + __IOM uint32_t GAFLRTRM : 1; /*!< [30..30] Global Acceptance Filter List Entry RTR Mask */ + __IOM uint32_t GAFLIDEM : 1; /*!< [31..31] Global Acceptance Filter List IDE Mask */ + } M_b; + }; + + union + { + __IOM uint32_t P0; /*!< (@ 0x00000008) Global Acceptance Filter List Pointer 0 Register + * n */ + + struct + { + __IOM uint32_t GAFLDLC : 4; /*!< [3..0] Global Acceptance Filter List DLC Field */ + __IOM uint32_t GAFLSRD0 : 1; /*!< [4..4] Global Acceptance Filter List Select Routing Destination + * 0 */ + __IOM uint32_t GAFLSRD1 : 1; /*!< [5..5] Global Acceptance Filter List Select Routing Destination + * 1 */ + __IOM uint32_t GAFLSRD2 : 1; /*!< [6..6] Global Acceptance Filter List Select Routing Destination + * 2 */ + __IOM uint32_t GAFLIFL0 : 1; /*!< [7..7] Global Acceptance Filter List Information Label 0 */ + __IOM uint32_t GAFLRMDP : 5; /*!< [12..8] Global Acceptance Filter List RX Message Buffer Direction + * Pointer */ + uint32_t : 2; + __IOM uint32_t GAFLRMV : 1; /*!< [15..15] Global Acceptance Filter List RX Message Buffer Valid */ + __IOM uint32_t GAFLPTR : 16; /*!< [31..16] Global Acceptance Filter List Pointer */ + } P0_b; + }; + + union + { + __IOM uint32_t P1; /*!< (@ 0x0000000C) Global Acceptance Filter List Pointer 1 Register + * n */ + + struct + { + __IOM uint32_t GAFLFDP : 14; /*!< [13..0] Global Acceptance Filter List FIFO Direction Pointer */ + uint32_t : 18; + } P1_b; + }; +} R_CANFD_CFDGAFL_Type; /*!< Size = 16 (0x10) */ + +/** + * @brief R_CANFD_CFDRM [CFDRM] (RX Message Buffer Access Registers) + */ +typedef struct +{ + union + { + __IM uint32_t ID; /*!< (@ 0x00000000) RX Message Buffer ID Register */ + + struct + { + __IM uint32_t RMID : 29; /*!< [28..0] RX Message Buffer ID Field */ + uint32_t : 1; + __IM uint32_t RMRTR : 1; /*!< [30..30] RX Message Buffer RTR Bit */ + __IM uint32_t RMIDE : 1; /*!< [31..31] RX Message Buffer IDE Bit */ + } ID_b; + }; + + union + { + __IOM uint32_t PTR; /*!< (@ 0x00000004) RX Message Buffer Pointer Register */ + + struct + { + __IOM uint32_t RMTS : 16; /*!< [15..0] RX Message Buffer Timestamp Field */ + uint32_t : 12; + __IOM uint32_t RMDLC : 4; /*!< [31..28] RX Message Buffer DLC Field */ + } PTR_b; + }; + + union + { + __IOM uint32_t FDSTS; /*!< (@ 0x00000008) RX Message Buffer CAN-FD Status Register */ + + struct + { + __IOM uint32_t RMESI : 1; /*!< [0..0] Error State Indicator bit */ + __IOM uint32_t RMBRS : 1; /*!< [1..1] Bit Rate Switch bit */ + __IOM uint32_t RMFDF : 1; /*!< [2..2] CAN FD Format bit */ + uint32_t : 5; + __IOM uint32_t RMIFL : 2; /*!< [9..8] RX Message Buffer Information Label Field */ + uint32_t : 6; + __IOM uint32_t RMPTR : 16; /*!< [31..16] RX Message Buffer Pointer Field */ + } FDSTS_b; + }; + + union + { + union + { + __IM uint32_t DF_WD[16]; /*!< (@ 0x0000000C) RX Message Buffer Data Field p Register n (p + * = 0 to 15, n = 0 to 31) */ + + struct + { + __IM uint32_t RMDB_LL : 8; /*!< [7..0] RX Message Buffer Data Byte (4 * p) */ + __IM uint32_t RMDB_LH : 8; /*!< [15..8] RX Message Buffer Data Byte (4 * p + 1) */ + __IM uint32_t RMDB_HL : 8; /*!< [23..16] RX Message Buffer Data Byte (4 * p + 2) */ + __IM uint32_t RMDB_HH : 8; /*!< [31..24] RX Message Buffer Data Byte (4 * p + 3) */ + } DF_WD_b[16]; + }; + + union + { + __IM uint8_t DF[64]; /*!< (@ 0x0000000C) RX Message Buffer Data Field p Register n (p + * = 0 to 63, n = 0 to 31) */ + + struct + { + __IM uint8_t RMDB : 8; /*!< [7..0] RX Message Buffer Data Byte */ + } DF_b[64]; + }; + }; + __IM uint32_t RESERVED[13]; +} R_CANFD_CFDRM_Type; /*!< Size = 128 (0x80) */ + +/** + * @brief R_CANFD_CFDRF [CFDRF] (RX FIFO Access Registers) + */ +typedef struct +{ + union + { + __IM uint32_t ID; /*!< (@ 0x00000000) RX FIFO Access ID Register n */ + + struct + { + __IM uint32_t RFID : 29; /*!< [28..0] RX FIFO Buffer ID Field */ + uint32_t : 1; + __IM uint32_t RFRTR : 1; /*!< [30..30] RX FIFO Buffer RTR bit */ + __IM uint32_t RFIDE : 1; /*!< [31..31] RX FIFO Buffer IDE bit */ + } ID_b; + }; + + union + { + __IM uint32_t PTR; /*!< (@ 0x00000004) RX FIFO Access Pointer Register n */ + + struct + { + __IM uint32_t RFTS : 16; /*!< [15..0] RX FIFO Timestamp Value */ + uint32_t : 12; + __IM uint32_t RFDLC : 4; /*!< [31..28] RX FIFO Buffer DLC Field */ + } PTR_b; + }; + + union + { + __IM uint32_t FDSTS; /*!< (@ 0x00000008) RX FIFO Access CAN-FD Status Register n */ + + struct + { + __IM uint32_t RFESI : 1; /*!< [0..0] Error State Indicator bit */ + __IM uint32_t RFBRS : 1; /*!< [1..1] Bit Rate Switch bit */ + __IM uint32_t RFFDF : 1; /*!< [2..2] CAN FD Format bit */ + uint32_t : 5; + __IM uint32_t RFIFL : 2; /*!< [9..8] RX FIFO Buffer Information Label Field */ + uint32_t : 6; + __IM uint32_t CFDRFPTR : 16; /*!< [31..16] RX FIFO Buffer Pointer Field */ + } FDSTS_b; + }; + + union + { + union + { + __IM uint32_t DF_WD[16]; /*!< (@ 0x0000000C) RX FIFO Access Data Field p Register n (p = 0 + * to 15, n = 0 to 7) */ + + struct + { + __IM uint32_t RFDB_LL : 8; /*!< [7..0] RX FIFO Buffer Data Byte (4 * p) */ + __IM uint32_t RFDB_LH : 8; /*!< [15..8] RX FIFO Buffer Data Byte (4 * p + 1) */ + __IM uint32_t RFDB_HL : 8; /*!< [23..16] RX FIFO Buffer Data Byte (4 * p + 2) */ + __IM uint32_t RFDB_HH : 8; /*!< [31..24] RX FIFO Buffer Data Byte (4 * p + 3) */ + } DF_WD_b[16]; + }; + + union + { + __IM uint8_t DF[64]; /*!< (@ 0x0000000C) RX FIFO Access Data Field p Register n (p = 0 + * to 63, n = 0 to 7) */ + + struct + { + __IM uint8_t RFDB : 8; /*!< [7..0] RX FIFO Buffer Data Byte */ + } DF_b[64]; + }; + }; + __IM uint32_t RESERVED[13]; +} R_CANFD_CFDRF_Type; /*!< Size = 128 (0x80) */ + +/** + * @brief R_CANFD_CFDCF [CFDCF] (Common FIFO Access Registers) + */ +typedef struct +{ + union + { + __IOM uint32_t ID; /*!< (@ 0x00000000) Common FIFO Access ID Register */ + + struct + { + __IOM uint32_t CFID : 29; /*!< [28..0] Common FIFO Buffer ID Field */ + __IOM uint32_t THLEN : 1; /*!< [29..29] THL Entry Enable */ + __IOM uint32_t CFRTR : 1; /*!< [30..30] Common FIFO Buffer RTR bit */ + __IOM uint32_t CFIDE : 1; /*!< [31..31] Common FIFO Buffer IDE bit */ + } ID_b; + }; + + union + { + __IOM uint32_t PTR; /*!< (@ 0x00000004) Common FIFO Access Pointer Register n */ + + struct + { + __IOM uint32_t CFTS : 16; /*!< [15..0] Common FIFO Timestamp Value */ + uint32_t : 12; + __IOM uint32_t CFDLC : 4; /*!< [31..28] Common FIFO Buffer DLC Field */ + } PTR_b; + }; + + union + { + __IOM uint32_t FDCSTS; /*!< (@ 0x00000008) Common FIFO Access CAN-FD Control/Status Register + * n */ + + struct + { + __IOM uint32_t CFESI : 1; /*!< [0..0] Error State Indicator bit */ + __IOM uint32_t CFBRS : 1; /*!< [1..1] Bit Rate Switch bit */ + __IOM uint32_t CFFDF : 1; /*!< [2..2] CAN FD Format bit */ + uint32_t : 5; + __IOM uint32_t CFIFL : 2; /*!< [9..8] COMMON FIFO Buffer Information Label Field */ + uint32_t : 6; + __IOM uint32_t CFPTR : 16; /*!< [31..16] Common FIFO Buffer Pointer Field */ + } FDCSTS_b; + }; + + union + { + union + { + __IOM uint32_t DF_WD[16]; /*!< (@ 0x0000000C) Common FIFO Access Data Field p Register n (p + * = 0 to 15, n = 0 to 5) */ + + struct + { + __IOM uint32_t CFDB_LL : 8; /*!< [7..0] Common FIFO Buffer Data Bytes (4 * p) */ + __IOM uint32_t CFDB_LH : 8; /*!< [15..8] Common FIFO Buffer Data Bytes (4 * p + 1) */ + __IOM uint32_t CFDB_HL : 8; /*!< [23..16] Common FIFO Buffer Data Bytes (4 * p + 2) */ + __IOM uint32_t CFDB_HH : 8; /*!< [31..24] Common FIFO Buffer Data Bytes (4 * p + 3) */ + } DF_WD_b[16]; + }; + + union + { + __IOM uint8_t DF[64]; /*!< (@ 0x0000000C) Common FIFO Access Data Field p Register n (p + * = 0 to 63, n = 0 to 5) */ + + struct + { + __IOM uint8_t CFDB : 8; /*!< [7..0] Common FIFO Buffer Data Bytes */ + } DF_b[64]; + }; + }; + __IM uint32_t RESERVED[13]; +} R_CANFD_CFDCF_Type; /*!< Size = 128 (0x80) */ + +/** + * @brief R_CANFD_CFDTHL [CFDTHL] (Channel TX History List) + */ +typedef struct +{ + union + { + __IM uint32_t ACC0; /*!< (@ 0x00000000) Channel TX History List Access Registers 0 */ + + struct + { + __IM uint32_t BT : 3; /*!< [2..0] Buffer Type */ + __IM uint32_t BN : 7; /*!< [9..3] Buffer Number */ + uint32_t : 5; + __IM uint32_t TGW : 1; /*!< [15..15] Transmit Gateway Buffer Indication */ + __IM uint32_t TMTS : 16; /*!< [31..16] Transmit Timestamp */ + } ACC0_b; + }; + + union + { + __IM uint32_t ACC1; /*!< (@ 0x00000004) Channel TX History List Access Registers 1 */ + + struct + { + __IM uint32_t TID : 16; /*!< [15..0] Transmit ID */ + __IM uint32_t TIFL : 2; /*!< [17..16] Transmit Information Label */ + uint32_t : 14; + } ACC1_b; + }; +} R_CANFD_CFDTHL_Type; /*!< Size = 8 (0x8) */ + +/** + * @brief R_CANFD_CFDTM [CFDTM] (TX Message Buffer Registers) + */ +typedef struct +{ + union + { + __IOM uint32_t ID; /*!< (@ 0x00000000) TX Message Buffer ID Register n (n = 0 to 127) */ + + struct + { + __IOM uint32_t TMID : 29; /*!< [28..0] TX Message Buffer ID Field */ + __IOM uint32_t THLEN : 1; /*!< [29..29] Tx History List Entry */ + __IOM uint32_t TMRTR : 1; /*!< [30..30] TX Message Buffer RTR bit */ + __IOM uint32_t TMIDE : 1; /*!< [31..31] TX Message Buffer IDE bit */ + } ID_b; + }; + + union + { + __IOM uint32_t PTR; /*!< (@ 0x00000004) TX Message Buffer Pointer Register n (n = 0 to + * 127) */ + + struct + { + uint32_t : 28; + __IOM uint32_t TMDLC : 4; /*!< [31..28] TX Message Buffer DLC Field */ + } PTR_b; + }; + + union + { + __IOM uint32_t FDCTR; /*!< (@ 0x00000008) TX Message Buffer CAN-FD Control Register n (n + * = 0 to 127) */ + + struct + { + __IOM uint32_t TMESI : 1; /*!< [0..0] Error State Indicator bit */ + __IOM uint32_t TMBRS : 1; /*!< [1..1] Bit Rate Switch bit */ + __IOM uint32_t TMFDF : 1; /*!< [2..2] CAN FD Format bit */ + uint32_t : 5; + __IOM uint32_t TMIFL : 2; /*!< [9..8] TX Message Buffer Information Label Field */ + uint32_t : 6; + __IOM uint32_t TMPTR : 16; /*!< [31..16] TX Message Buffer Pointer Field */ + } FDCTR_b; + }; + + union + { + union + { + __IOM uint32_t DF_WD[16]; /*!< (@ 0x0000000C) TX Message Buffer Data Field p Register n (p + * = 0 to 15, n = 0 to 127) */ + + struct + { + __IOM uint32_t TMDB_LL : 8; /*!< [7..0] TX Message Buffer Data Byte (4 * p) */ + __IOM uint32_t TMDB_LH : 8; /*!< [15..8] TX Message Buffer Data Byte (4 * p + 1) */ + __IOM uint32_t TMDB_HL : 8; /*!< [23..16] TX Message Buffer Data Byte (4 * p + 2) */ + __IOM uint32_t TMDB_HH : 8; /*!< [31..24] TX Message Buffer Data Byte (4 * p + 3) */ + } DF_WD_b[16]; + }; + + union + { + __IOM uint8_t DF[64]; /*!< (@ 0x0000000C) TX Message Buffer Data Field p Register n (p + * = 0 to 63, n = 0 to 5) */ + + struct + { + __IOM uint8_t TMDB : 8; /*!< [7..0] TX Message Buffer Data Bytes */ + } DF_b[64]; + }; + }; + __IM uint32_t RESERVED[13]; +} R_CANFD_CFDTM_Type; /*!< Size = 128 (0x80) */ + +/** + * @brief R_CMT_UNT_CM [CM] (2 Timer Start Register Pairs) + */ +typedef struct +{ + union + { + __IOM uint16_t CR; /*!< (@ 0x00000000) Compare Match Timer Control Register */ + + struct + { + __IOM uint16_t CKS : 2; /*!< [1..0] Clock Select */ + uint16_t : 4; + __IOM uint16_t CMIE : 1; /*!< [6..6] Compare Match Interrupt Enable */ + uint16_t : 9; + } CR_b; + }; + __IOM uint16_t CNT; /*!< (@ 0x00000002) Compare Match Timer Counter Register */ + __IOM uint16_t COR; /*!< (@ 0x00000004) Compare Match Timer Constant Register */ +} R_CMT_UNT_CM_Type; /*!< Size = 6 (0x6) */ + +/** + * @brief R_CMT_UNT [UNT] (3 Timer Start Register Units) + */ +typedef struct +{ + union + { + __IOM uint16_t CMSTR0; /*!< (@ 0x00000000) Compare Match Timer Start Register */ + + struct + { + __IOM uint16_t STR0 : 1; /*!< [0..0] CMT Channel n Count Start */ + __IOM uint16_t STR1 : 1; /*!< [1..1] CMT Channel n+1 Count Start */ + uint16_t : 14; + } CMSTR0_b; + }; + __IOM R_CMT_UNT_CM_Type CM[2]; /*!< (@ 0x00000002) 2 Timer Start Register Pairs */ + __IM uint16_t RESERVED[505]; +} R_CMT_UNT_Type; /*!< Size = 1024 (0x400) */ + +/** + * @brief R_IIC0_SAR [SAR] (Slave Address Registers) + */ +typedef struct +{ + union + { + __IOM uint8_t L; /*!< (@ 0x00000000) Slave Address Register L y (y = 0 to 2) */ + + struct + { + __IOM uint8_t SVA0 : 1; /*!< [0..0] 10-bit Address LSB */ + __IOM uint8_t SVA : 7; /*!< [7..1] 7-bit Address/10-bit Address Lower Bits */ + } L_b; + }; + + union + { + __IOM uint8_t U; /*!< (@ 0x00000001) Slave Address Register U y (y = 0 to 2) */ + + struct + { + __IOM uint8_t FS : 1; /*!< [0..0] 7-bit/10-bit Address Format Select */ + __IOM uint8_t SVA : 2; /*!< [2..1] 10-bit Address Upper Bits */ + uint8_t : 5; + } U_b; + }; +} R_IIC0_SAR_Type; /*!< Size = 2 (0x2) */ + +/** + * @brief R_DMAC0_GRP_CH_N [N] (DMAC Address Registers [0..1]) + */ +typedef struct +{ + __IOM uint32_t SA; /*!< (@ 0x00000000) Nextm0 Source Address Register n (m = 0, 1) (n + * = 0 to 7) */ + __IOM uint32_t DA; /*!< (@ 0x00000004) Nextm0 Destination Address Register n (m = 0, + * 1) (n = 0 to 7) */ + __IOM uint32_t TB; /*!< (@ 0x00000008) Nextm0 Transaction Byte Register n (m = 0, 1) + * (n = 0 to 7) */ +} R_DMAC0_GRP_CH_N_Type; /*!< Size = 12 (0xc) */ + +/** + * @brief R_DMAC0_GRP_CH [CH] (DMAC channel Control Register [0..7]) + */ +typedef struct +{ + __IOM R_DMAC0_GRP_CH_N_Type N[2]; /*!< (@ 0x00000000) DMAC Address Registers [0..1] */ + __IM uint32_t CRSA; /*!< (@ 0x00000018) Current Source Address Register n (n = 0 to 7) */ + __IM uint32_t CRDA; /*!< (@ 0x0000001C) Current Destination Address Register n (n = 0 + * to 7) */ + __IM uint32_t CRTB; /*!< (@ 0x00000020) Current Transaction Byte Register n (n = 0 to + * 7) */ + + union + { + __IM uint32_t CHSTAT; /*!< (@ 0x00000024) Channel Status Register n (n = 0 to 7) */ + + struct + { + __IM uint32_t EN : 1; /*!< [0..0] DMA Activation Enable */ + __IM uint32_t RQST : 1; /*!< [1..1] DMA Transfer Request */ + __IM uint32_t TACT : 1; /*!< [2..2] DMAC Operating Status */ + __IM uint32_t SUS : 1; /*!< [3..3] Suspend */ + __IM uint32_t ER : 1; /*!< [4..4] DMA Error */ + __IM uint32_t END : 1; /*!< [5..5] DMA Transfer Completion Interrupt */ + __IM uint32_t TC : 1; /*!< [6..6] DMA Transfer Completion (total number of data bytes for + * transaction) */ + __IM uint32_t SR : 1; /*!< [7..7] Next Register Select */ + __IM uint32_t DL : 1; /*!< [8..8] Descriptor Load */ + __IM uint32_t DW : 1; /*!< [9..9] Descriptor Write Back */ + __IM uint32_t DER : 1; /*!< [10..10] Descriptor Error */ + __IM uint32_t MODE : 1; /*!< [11..11] DMA Mode */ + uint32_t : 4; + __IM uint32_t INTM : 1; /*!< [16..16] DMA Transfer Completion Interrupt Request Mask */ + uint32_t : 15; + } CHSTAT_b; + }; + + union + { + __IOM uint32_t CHCTRL; /*!< (@ 0x00000028) Channel Control Register n (n = 0 to 7) */ + + struct + { + __IOM uint32_t SETEN : 1; /*!< [0..0] DMA Activation Enable */ + __IOM uint32_t CLREN : 1; /*!< [1..1] DMA Activation Enable Clear */ + __IOM uint32_t STG : 1; /*!< [2..2] Software Trigger */ + __IOM uint32_t SWRST : 1; /*!< [3..3] Software Reset */ + __IOM uint32_t CLRRQ : 1; /*!< [4..4] DMA Transfer Request Clear */ + __IOM uint32_t CLREND : 1; /*!< [5..5] END Clear */ + __IOM uint32_t CLRTC : 1; /*!< [6..6] TC Clear */ + uint32_t : 1; + __IOM uint32_t SETSUS : 1; /*!< [8..8] Suspend Request */ + __IOM uint32_t CLRSUS : 1; /*!< [9..9] Suspend Clear */ + uint32_t : 6; + __IOM uint32_t SETINTM : 1; /*!< [16..16] DMA Transfer Completion Interrupt Request Mask */ + __IOM uint32_t CLRINTM : 1; /*!< [17..17] DMA Transfer Completion Interrupt Request Mask Clear */ + uint32_t : 14; + } CHCTRL_b; + }; + + union + { + __IOM uint32_t CHCFG; /*!< (@ 0x0000002C) Channel Configuration Register n (n = 0 to 7) */ + + struct + { + __IOM uint32_t SEL : 3; /*!< [2..0] Pin Select */ + __IOM uint32_t REQD : 1; /*!< [3..3] DMA Activation Request Source Select */ + __IOM uint32_t LOEN : 1; /*!< [4..4] L Detection Enable */ + __IOM uint32_t HIEN : 1; /*!< [5..5] H Detection Enable */ + __IOM uint32_t LVL : 1; /*!< [6..6] Level Detection Enable */ + uint32_t : 1; + __IOM uint32_t AM : 3; /*!< [10..8] ACK Mode */ + uint32_t : 1; + __IOM uint32_t SDS : 4; /*!< [15..12] Source Data Size */ + __IOM uint32_t DDS : 4; /*!< [19..16] Destination Data Size */ + __IOM uint32_t SAD : 1; /*!< [20..20] Source Address Count Direction */ + __IOM uint32_t DAD : 1; /*!< [21..21] Destination Address Count Direction */ + __IOM uint32_t TM : 1; /*!< [22..22] Transfer Mode */ + uint32_t : 1; + __IOM uint32_t DEM : 1; /*!< [24..24] DMA Transfer Completion Interrupt Mask */ + __IOM uint32_t TCM : 1; /*!< [25..25] TEND Mask */ + uint32_t : 1; + __IOM uint32_t SBE : 1; /*!< [27..27] Buffer Flush Enable */ + __IOM uint32_t RSEL : 1; /*!< [28..28] Next Register Select */ + __IOM uint32_t RSW : 1; /*!< [29..29] RSEL Reverse */ + __IOM uint32_t REN : 1; /*!< [30..30] Register Set Enable */ + __IOM uint32_t DMS : 1; /*!< [31..31] DMA Mode Select */ + } CHCFG_b; + }; + + union + { + __IOM uint32_t CHITVL; /*!< (@ 0x00000030) Channel Interval Register n (n = 0 to 7) */ + + struct + { + __IOM uint32_t ITVL : 16; /*!< [15..0] Interval */ + uint32_t : 16; + } CHITVL_b; + }; + + union + { + __IOM uint32_t CHEXT; /*!< (@ 0x00000034) Channel Extension Register n (n = 0 to 7) */ + + struct + { + __IOM uint32_t SPR : 3; /*!< [2..0] Source PROT */ + uint32_t : 1; + __IOM uint32_t SCA : 4; /*!< [7..4] Source CACHE */ + __IOM uint32_t DPR : 3; /*!< [10..8] Destination PROT */ + uint32_t : 1; + __IOM uint32_t DCA : 4; /*!< [15..12] Destination CACHE */ + uint32_t : 16; + } CHEXT_b; + }; + __IOM uint32_t NXLA; /*!< (@ 0x00000038) Next Link Address Register n (n = 0 to 7) */ + __IM uint32_t CRLA; /*!< (@ 0x0000003C) Current Link Address Register n (n = 0 to 7) */ +} R_DMAC0_GRP_CH_Type; /*!< Size = 64 (0x40) */ + +/** + * @brief R_DMAC0_GRP [GRP] (8 channel Registers) + */ +typedef struct +{ + __IOM R_DMAC0_GRP_CH_Type CH[8]; /*!< (@ 0x00000000) DMAC channel Control Register [0..7] */ + __IM uint32_t RESERVED[64]; + + union + { + __IOM uint32_t DCTRL; /*!< (@ 0x00000300) DMA Control Register A */ + + struct + { + __IOM uint32_t PR : 1; /*!< [0..0] Priority Control Select */ + __IOM uint32_t LVINT : 1; /*!< [1..1] Sets the interrupt output mode. */ + uint32_t : 30; + } DCTRL_b; + }; + __IM uint32_t RESERVED1[3]; + + union + { + __IM uint32_t DSTAT_EN; /*!< (@ 0x00000310) DMA Status EN Register A */ + + struct + { + __IM uint32_t EN00 : 1; /*!< [0..0] Channel 0 EN */ + __IM uint32_t EN01 : 1; /*!< [1..1] Channel 1 EN */ + __IM uint32_t EN02 : 1; /*!< [2..2] Channel 2 EN */ + __IM uint32_t EN03 : 1; /*!< [3..3] Channel 3 EN */ + __IM uint32_t EN04 : 1; /*!< [4..4] Channel 4 EN */ + __IM uint32_t EN05 : 1; /*!< [5..5] Channel 5 EN */ + __IM uint32_t EN06 : 1; /*!< [6..6] Channel 6 EN */ + __IM uint32_t EN07 : 1; /*!< [7..7] Channel 7 EN */ + uint32_t : 24; + } DSTAT_EN_b; + }; + + union + { + __IM uint32_t DSTAT_ER; /*!< (@ 0x00000314) DMA Status ER Register A */ + + struct + { + __IM uint32_t ER00 : 1; /*!< [0..0] Channel 0 ER */ + __IM uint32_t ER01 : 1; /*!< [1..1] Channel 1 ER */ + __IM uint32_t ER02 : 1; /*!< [2..2] Channel 2 ER */ + __IM uint32_t ER03 : 1; /*!< [3..3] Channel 3 ER */ + __IM uint32_t ER04 : 1; /*!< [4..4] Channel 4 ER */ + __IM uint32_t ER05 : 1; /*!< [5..5] Channel 5 ER */ + __IM uint32_t ER06 : 1; /*!< [6..6] Channel 6 ER */ + __IM uint32_t ER07 : 1; /*!< [7..7] Channel 7 ER */ + uint32_t : 24; + } DSTAT_ER_b; + }; + + union + { + __IM uint32_t DSTAT_END; /*!< (@ 0x00000318) DMA Status END Register A */ + + struct + { + __IM uint32_t END00 : 1; /*!< [0..0] Channel 0 END */ + __IM uint32_t END01 : 1; /*!< [1..1] Channel 1 END */ + __IM uint32_t END02 : 1; /*!< [2..2] Channel 2 END */ + __IM uint32_t END03 : 1; /*!< [3..3] Channel 3 END */ + __IM uint32_t END04 : 1; /*!< [4..4] Channel 4 END */ + __IM uint32_t END05 : 1; /*!< [5..5] Channel 5 END */ + __IM uint32_t END06 : 1; /*!< [6..6] Channel 6 END */ + __IM uint32_t END07 : 1; /*!< [7..7] Channel 7 END */ + uint32_t : 24; + } DSTAT_END_b; + }; + __IM uint32_t RESERVED2; + + union + { + __IM uint32_t DSTAT_SUS; /*!< (@ 0x00000320) DMA Status SUS Register A */ + + struct + { + __IM uint32_t SUS00 : 1; /*!< [0..0] Channel 0 SUS */ + __IM uint32_t SUS01 : 1; /*!< [1..1] Channel 1 SUS */ + __IM uint32_t SUS02 : 1; /*!< [2..2] Channel 2 SUS */ + __IM uint32_t SUS03 : 1; /*!< [3..3] Channel 3 SUS */ + __IM uint32_t SUS04 : 1; /*!< [4..4] Channel 4 SUS */ + __IM uint32_t SUS05 : 1; /*!< [5..5] Channel 5 SUS */ + __IM uint32_t SUS06 : 1; /*!< [6..6] Channel 6 SUS */ + __IM uint32_t SUS07 : 1; /*!< [7..7] Channel 7 SUS */ + uint32_t : 24; + } DSTAT_SUS_b; + }; +} R_DMAC0_GRP_Type; /*!< Size = 804 (0x324) */ + +/** + * @brief R_PORT_DRCTL [DRCTL] (I/O Buffer [0..24] Function Switching Register) + */ +typedef struct +{ + union + { + __IOM uint32_t L; /*!< (@ 0x00000000) I/O Buffer m Function Switching Register 0-3 */ + + struct + { + __IOM uint32_t DRV0 : 2; /*!< [1..0] Pm_0 Driving Ability Control */ + __IOM uint32_t PUD0 : 2; /*!< [3..2] Pm_0 Pull-Up/Down Control */ + __IOM uint32_t SMT0 : 1; /*!< [4..4] Pm_0 Schmitt Trigger Control */ + __IOM uint32_t SR0 : 1; /*!< [5..5] Pm_0 Slew Rate Control */ + uint32_t : 2; + __IOM uint32_t DRV1 : 2; /*!< [9..8] Pm_1 Driving Ability Control */ + __IOM uint32_t PUD1 : 2; /*!< [11..10] Pm_1 Pull-Up/Down Control */ + __IOM uint32_t SMT1 : 1; /*!< [12..12] Pm_1 Schmitt Trigger Control */ + __IOM uint32_t SR1 : 1; /*!< [13..13] Pm_1 Slew Rate Control */ + uint32_t : 2; + __IOM uint32_t DRV2 : 2; /*!< [17..16] Pm_2 Driving Ability Control */ + __IOM uint32_t PUD2 : 2; /*!< [19..18] Pm_2 Pull-Up/Down Control */ + __IOM uint32_t SMT2 : 1; /*!< [20..20] Pm_2 Schmitt Trigger Control */ + __IOM uint32_t SR2 : 1; /*!< [21..21] Pm_2 Slew Rate Control */ + uint32_t : 2; + __IOM uint32_t DRV3 : 2; /*!< [25..24] Pm_3 Driving Ability Control */ + __IOM uint32_t PUD3 : 2; /*!< [27..26] Pm_3 Pull-Up/Down Control */ + __IOM uint32_t SMT3 : 1; /*!< [28..28] Pm_3 Schmitt Trigger Control */ + __IOM uint32_t SR3 : 1; /*!< [29..29] Pm_3 Slew Rate Control */ + uint32_t : 2; + } L_b; + }; + + union + { + __IOM uint32_t H; /*!< (@ 0x00000004) I/O Buffer m Function Switching Register 4-7 */ + + struct + { + __IOM uint32_t DRV4 : 2; /*!< [1..0] Pm_4 Driving Ability Control */ + __IOM uint32_t PUD4 : 2; /*!< [3..2] Pm_4 Pull-Up/Down Control */ + __IOM uint32_t SMT4 : 1; /*!< [4..4] Pm_4 Schmitt Trigger Control */ + __IOM uint32_t SR4 : 1; /*!< [5..5] Pm_4 Slew Rate Control */ + uint32_t : 2; + __IOM uint32_t DRV5 : 2; /*!< [9..8] Pm_5 Driving Ability Control */ + __IOM uint32_t PUD5 : 2; /*!< [11..10] Pm_5 Pull-Up/Down Control */ + __IOM uint32_t SMT5 : 1; /*!< [12..12] Pm_5 Schmitt Trigger Control */ + __IOM uint32_t SR5 : 1; /*!< [13..13] Pm_5 Slew Rate Control */ + uint32_t : 2; + __IOM uint32_t DRV6 : 2; /*!< [17..16] Pm_6 Driving Ability Control */ + __IOM uint32_t PUD6 : 2; /*!< [19..18] Pm_6 Pull-Up/Down Control */ + __IOM uint32_t SMT6 : 1; /*!< [20..20] Pm_6 Schmitt Trigger Control */ + __IOM uint32_t SR6 : 1; /*!< [21..21] Pm_6 Slew Rate Control */ + uint32_t : 2; + __IOM uint32_t DRV7 : 2; /*!< [25..24] Pm_7 Driving Ability Control */ + __IOM uint32_t PUD7 : 2; /*!< [27..26] Pm_7 Pull-Up/Down Control */ + __IOM uint32_t SMT7 : 1; /*!< [28..28] Pm_7 Schmitt Trigger Control */ + __IOM uint32_t SR7 : 1; /*!< [29..29] Pm_7 Slew Rate Control */ + uint32_t : 2; + } H_b; + }; +} R_PORT_DRCTL_Type; /*!< Size = 8 (0x8) */ + +/** + * @brief R_PORT_NSR_ELC_PDBF [ELC_PDBF] (ELC Port Buffer Register [0..1]) + */ +typedef struct +{ + union + { + __IOM uint8_t BY; /*!< (@ 0x00000000) ELC Port Buffer Register n */ + + struct + { + __IOM uint8_t PB0 : 1; /*!< [0..0] Port Buffer 0 */ + __IOM uint8_t PB1 : 1; /*!< [1..1] Port Buffer 1 */ + __IOM uint8_t PB2 : 1; /*!< [2..2] Port Buffer 2 */ + __IOM uint8_t PB3 : 1; /*!< [3..3] Port Buffer 3 */ + __IOM uint8_t PB4 : 1; /*!< [4..4] Port Buffer 4 */ + __IOM uint8_t PB5 : 1; /*!< [5..5] Port Buffer 5 */ + __IOM uint8_t PB6 : 1; /*!< [6..6] Port Buffer 6 */ + __IOM uint8_t PB7 : 1; /*!< [7..7] Port Buffer 7 */ + } BY_b; + }; + __IM uint8_t RESERVED[3]; +} R_PORT_NSR_ELC_PDBF_Type; /*!< Size = 4 (0x4) */ + +/** + * @brief R_ETHSW_PTP_SWTM [SWTM] (Ethernet Switch Timer output pins 0-3 Registers) + */ +typedef struct +{ + union + { + __IOM uint32_t EN; /*!< (@ 0x00000000) PTP Timer Pulse Output Enable n Register */ + + struct + { + __IOM uint32_t OUTEN : 1; /*!< [0..0] Enable ETHSW_PTPOUTn Signal Output */ + uint32_t : 31; + } EN_b; + }; + + union + { + __IOM uint32_t STSEC; /*!< (@ 0x00000004) PTP Timer Pulse Start Second n Register */ + + struct + { + __IOM uint32_t STSEC : 32; /*!< [31..0] STSEC */ + } STSEC_b; + }; + + union + { + __IOM uint32_t STNS; /*!< (@ 0x00000008) PTP Timer Pulse Start Nanosecond n Register */ + + struct + { + __IOM uint32_t STNS : 32; /*!< [31..0] Start Time by Nanosecond */ + } STNS_b; + }; + + union + { + __IOM uint32_t PSEC; /*!< (@ 0x0000000C) PTP Timer Pulse Period Second n Register */ + + struct + { + __IOM uint32_t PSEC : 32; /*!< [31..0] PSEC */ + } PSEC_b; + }; + + union + { + __IOM uint32_t PNS; /*!< (@ 0x00000010) PTP Timer Pulse Period Nanosecond n Register */ + + struct + { + __IOM uint32_t PNS : 32; /*!< [31..0] Period by Nanosecond */ + } PNS_b; + }; + + union + { + __IOM uint32_t WTH; /*!< (@ 0x00000014) PTP Timer Pulse Width n Register */ + + struct + { + __IOM uint32_t WIDTH : 16; /*!< [15..0] Set the Pulse Width of ETHSW_PTPOUTn in the cycle number + * of ts_clk (8 ns). */ + uint32_t : 16; + } WTH_b; + }; + + union + { + __IOM uint32_t MAXP; /*!< (@ 0x00000018) PTP Timer Pulse Max Second n Register */ + + struct + { + __IOM uint32_t MAXP : 32; /*!< [31..0] Sets the boundary value in nanoseconds to carry from + * the nanosecond field to the second field. The same value + * as ATIME_EVT_PERIOD register must be set. */ + } MAXP_b; + }; + + union + { + __IOM uint32_t LATSEC; /*!< (@ 0x0000001C) PTP Timer Pulse Latch Second n Register */ + + struct + { + __IOM uint32_t LATSEC : 32; /*!< [31..0] LATSEC */ + } LATSEC_b; + }; + + union + { + __IOM uint32_t LATNS; /*!< (@ 0x00000020) PTP Timer Pulse Latch Nanosecond n Register */ + + struct + { + __IOM uint32_t LATNS : 32; /*!< [31..0] LATNS */ + } LATNS_b; + }; + __IM uint32_t RESERVED[55]; +} R_ETHSW_PTP_SWTM_Type; /*!< Size = 256 (0x100) */ + +/** + * @brief R_ETHSW_MGMT_ADDR [MGMT_ADDR] (MAC Address [0..3] for Bridge Protocol Frame Register) + */ +typedef struct +{ + union + { + __IOM uint32_t lo; /*!< (@ 0x00000000) Lower MAC Address */ + + struct + { + __IOM uint32_t BPDU_DST : 32; /*!< [31..0] Additional MAC address defining a Bridge Protocol Frame + * (BPDU) in addition to the commonly-known addresses */ + } lo_b; + }; + + union + { + __IOM uint32_t hi; /*!< (@ 0x00000004) Higher MAC Address */ + + struct + { + __IOM uint32_t BPDU_DST : 16; /*!< [15..0] Bits [7:0] is 5th byte, bits [15:8] is 6th (last) byte */ + __IOM uint32_t MASK : 8; /*!< [23..16] 8-bit mask for comparing the last byte of the MAC address. */ + uint32_t : 8; + } hi_b; + }; +} R_ETHSW_MGMT_ADDR_Type; /*!< Size = 8 (0x8) */ + +/** + * @brief R_ESC_FMMU [FMMU] (FMMU [0..7] Registers (n = 0 to 7)) + */ +typedef struct +{ + union + { + __IM uint32_t L_START_ADR; /*!< (@ 0x00000000) FMMU Logical Start Address n Register (n = 0 + * to 7) */ + + struct + { + __IM uint32_t LSTAADR : 32; /*!< [31..0] Logical Start Address Setting */ + } L_START_ADR_b; + }; + + union + { + __IM uint16_t LEN; /*!< (@ 0x00000004) FMMU Length n Register (n = 0 to 7) */ + + struct + { + __IM uint16_t FMMULEN : 16; /*!< [15..0] Area Size Specification */ + } LEN_b; + }; + + union + { + __IM uint8_t L_START_BIT; /*!< (@ 0x00000006) FMMU Logical Start Bit n Register (n = 0 to 7) */ + + struct + { + __IM uint8_t LSTABIT : 3; /*!< [2..0] Start Bit Setting */ + uint8_t : 5; + } L_START_BIT_b; + }; + + union + { + __IM uint8_t L_STOP_BIT; /*!< (@ 0x00000007) FMMU Logical Stop Bit n Register (n = 0 to 7) */ + + struct + { + __IM uint8_t LSTPBIT : 3; /*!< [2..0] Last Bit Setting */ + uint8_t : 5; + } L_STOP_BIT_b; + }; + + union + { + __IM uint16_t P_START_ADR; /*!< (@ 0x00000008) FMMU Physical Start Address n Register (n = 0 + * to 7) */ + + struct + { + __IM uint16_t PHYSTAADR : 16; /*!< [15..0] Physical Start Address Setting */ + } P_START_ADR_b; + }; + + union + { + __IM uint8_t P_START_BIT; /*!< (@ 0x0000000A) FMMU Physical Start Bit n Register (n = 0 to + * 7) */ + + struct + { + __IM uint8_t PHYSTABIT : 3; /*!< [2..0] Physical Start Bit Setting */ + uint8_t : 5; + } P_START_BIT_b; + }; + + union + { + __IM uint8_t TYPE; /*!< (@ 0x0000000B) FMMU Type n Register (n = 0 to 7) */ + + struct + { + __IM uint8_t READ : 1; /*!< [0..0] Read Access Mapping Setting */ + __IM uint8_t WRITE : 1; /*!< [1..1] Write Access Mapping Setting */ + uint8_t : 6; + } TYPE_b; + }; + + union + { + __IM uint8_t ACT; /*!< (@ 0x0000000C) FMMU Activate n Register (n = 0 to 7) */ + + struct + { + __IM uint8_t ACTIVATE : 1; /*!< [0..0] FMMU Enable/Disable */ + uint8_t : 7; + } ACT_b; + }; + __IM uint8_t RESERVED; + __IM uint16_t RESERVED1; +} R_ESC_FMMU_Type; /*!< Size = 16 (0x10) */ + +/** + * @brief R_ESC_SM [SM] (SyncManager [0..7] Registers (n = 0 to 7)) + */ +typedef struct +{ + union + { + __IM uint16_t P_START_ADR; /*!< (@ 0x00000000) SyncManager Physical Start Address n Register + * (n = 0 to 7) */ + + struct + { + __IM uint16_t SMSTAADDR : 16; /*!< [15..0] Physical Start Address Setting */ + } P_START_ADR_b; + }; + + union + { + __IM uint16_t LEN; /*!< (@ 0x00000002) SyncManager Length n Register (n = 0 to 7) */ + + struct + { + __IM uint16_t SMLEN : 16; /*!< [15..0] Area Size Setting */ + } LEN_b; + }; + + union + { + __IM uint8_t CONTROL; /*!< (@ 0x00000004) SyncManager Control n Register (n = 0 to 7) */ + + struct + { + __IM uint8_t OPEMODE : 2; /*!< [1..0] Operating Mode Setting */ + __IM uint8_t DIR : 2; /*!< [3..2] Transfer Direction Setting */ + __IM uint8_t IRQECAT : 1; /*!< [4..4] ECAT Event Interrupt Setting */ + __IM uint8_t IRQPDI : 1; /*!< [5..5] AL Event Interrupt Setting */ + __IM uint8_t WDTRGEN : 1; /*!< [6..6] Watchdog Trigger Setting */ + uint8_t : 1; + } CONTROL_b; + }; + + union + { + __IM uint8_t STATUS; /*!< (@ 0x00000005) SyncManager Status n Register (n = 0 to 7) */ + + struct + { + __IM uint8_t INTWR : 1; /*!< [0..0] Write Complete Interrupt State Indication */ + __IM uint8_t INTRD : 1; /*!< [1..1] Read Complete Interrupt State Indication */ + uint8_t : 1; + __IM uint8_t MAILBOX : 1; /*!< [3..3] Mailbox Status Indication */ + __IM uint8_t BUFFERED : 2; /*!< [5..4] Buffer Status Indication */ + __IM uint8_t RDBUF : 1; /*!< [6..6] Read State Indication */ + __IM uint8_t WRBUF : 1; /*!< [7..7] Write State Indication */ + } STATUS_b; + }; + + union + { + __IM uint8_t ACT; /*!< (@ 0x00000006) SyncManager Activate n Register (n = 0 to 7) */ + + struct + { + __IM uint8_t SMEN : 1; /*!< [0..0] SyncManager Enable/Disable */ + __IM uint8_t REPEATREQ : 1; /*!< [1..1] Repeat Request */ + uint8_t : 4; + __IM uint8_t LATCHECAT : 1; /*!< [6..6] ECAT Latch Event Specification */ + __IM uint8_t LATCHPDI : 1; /*!< [7..7] PDI Latch Event Specification */ + } ACT_b; + }; + + union + { + __IOM uint8_t PDI_CONT; /*!< (@ 0x00000007) SyncManager PDI Control n Register (n = 0 to + * 7) */ + + struct + { + __IOM uint8_t DEACTIVE : 1; /*!< [0..0] SyncManager Operation Indication/Setting */ + __IOM uint8_t REPEATACK : 1; /*!< [1..1] Repeat Acknowledge */ + uint8_t : 6; + } PDI_CONT_b; + }; +} R_ESC_SM_Type; /*!< Size = 8 (0x8) */ + +/** + * @brief R_USBF_PIPE_TR [PIPE_TR] (PIPEn Transaction Counter Registers (n=1-5)) + */ +typedef struct +{ + union + { + __IOM uint16_t E; /*!< (@ 0x00000000) PIPEn Transaction Counter Enable Register */ + + struct + { + uint16_t : 8; + __IOM uint16_t TRCLR : 1; /*!< [8..8] Transaction Counter Clear */ + __IOM uint16_t TRENB : 1; /*!< [9..9] Transaction Counter Enable */ + uint16_t : 6; + } E_b; + }; + + union + { + __IOM uint16_t N; /*!< (@ 0x00000002) PIPEn Transaction Counter Register */ + + struct + { + __IOM uint16_t TRNCNT : 16; /*!< [15..0] Transaction Counter */ + } N_b; + }; +} R_USBF_PIPE_TR_Type; /*!< Size = 4 (0x4) */ + +/** + * @brief R_USBF_CHa_N [N] (Address Registers n (n=0-1)) + */ +typedef struct +{ + union + { + __IOM uint32_t SA; /*!< (@ 0x00000000) Next Source Address Register */ + + struct + { + __IOM uint32_t SAWD : 32; /*!< [31..0] Source Address or Write Data */ + } SA_b; + }; + + union + { + __IOM uint32_t DA; /*!< (@ 0x00000004) Next Destination Address Register */ + + struct + { + __IOM uint32_t DA : 32; /*!< [31..0] Destination Address */ + } DA_b; + }; + + union + { + __IOM uint32_t TB; /*!< (@ 0x00000008) Next Transaction Byte Register */ + + struct + { + __IOM uint32_t TB : 32; /*!< [31..0] Transaction Byte */ + } TB_b; + }; +} R_USBF_CHa_N_Type; /*!< Size = 12 (0xc) */ + +/** + * @brief R_USBF_CHa [CHa] (Next Register Set) + */ +typedef struct +{ + __IOM R_USBF_CHa_N_Type N[2]; /*!< (@ 0x00000000) Address Registers n (n=0-1) */ + + union + { + __IM uint32_t CRSA; /*!< (@ 0x00000018) Current Source Address Register */ + + struct + { + __IM uint32_t CRSA : 32; /*!< [31..0] Source Address */ + } CRSA_b; + }; + + union + { + __IM uint32_t CRDA; /*!< (@ 0x0000001C) Current Destination Address Register */ + + struct + { + __IM uint32_t CRDA : 32; /*!< [31..0] Destination Address */ + } CRDA_b; + }; + + union + { + __IM uint32_t CRTB; /*!< (@ 0x00000020) Current Transaction Byte Register */ + + struct + { + __IM uint32_t CRTB : 32; /*!< [31..0] Transaction Byte */ + } CRTB_b; + }; + + union + { + __IM uint32_t CHSTAT; /*!< (@ 0x00000024) Channel Status Register */ + + struct + { + __IM uint32_t EN : 1; /*!< [0..0] Enable */ + __IM uint32_t RQST : 1; /*!< [1..1] Request */ + __IM uint32_t TACT : 1; /*!< [2..2] Transaction Active */ + __IM uint32_t SUS : 1; /*!< [3..3] Suspend */ + __IM uint32_t ER : 1; /*!< [4..4] Error */ + __IM uint32_t END : 1; /*!< [5..5] USB_FDMAn Interrupted */ + __IM uint32_t TC : 1; /*!< [6..6] Terminal Count */ + __IM uint32_t SR : 1; /*!< [7..7] Selected Register Set */ + __IM uint32_t DL : 1; /*!< [8..8] Descriptor Load */ + __IM uint32_t DW : 1; /*!< [9..9] Descriptor WriteBack */ + __IM uint32_t DER : 1; /*!< [10..10] Descriptor Error */ + __IM uint32_t MODE : 1; /*!< [11..11] DMA Mode */ + uint32_t : 4; + __IM uint32_t INTM : 1; /*!< [16..16] Interrupt Mask */ + __IM uint32_t DMARQM : 1; /*!< [17..17] DMAREQ Mask */ + __IM uint32_t SWPRQ : 1; /*!< [18..18] Sweep Request */ + uint32_t : 5; + __IM uint32_t DNUM : 8; /*!< [31..24] Data Number */ + } CHSTAT_b; + }; + + union + { + __OM uint32_t CHCTRL; /*!< (@ 0x00000028) Channel Control Register */ + + struct + { + __OM uint32_t SETEN : 1; /*!< [0..0] Set Enable */ + __OM uint32_t CLREN : 1; /*!< [1..1] Clear Enable */ + __OM uint32_t STG : 1; /*!< [2..2] Software Trigger */ + __OM uint32_t SWRST : 1; /*!< [3..3] Software Reset */ + __OM uint32_t CLRRQ : 1; /*!< [4..4] Clear Request */ + __OM uint32_t CLREND : 1; /*!< [5..5] Clear End */ + __OM uint32_t CLRTC : 1; /*!< [6..6] Clear TC */ + __OM uint32_t CLRDER : 1; /*!< [7..7] Clear DER */ + __OM uint32_t SETSUS : 1; /*!< [8..8] Set Suspend */ + __OM uint32_t CLRSUS : 1; /*!< [9..9] Clear Suspend */ + uint32_t : 2; + __OM uint32_t SETREN : 1; /*!< [12..12] Set Register Set Enable */ + uint32_t : 1; + __OM uint32_t SETSSWPRQ : 1; /*!< [14..14] Set Software Sweep Request */ + uint32_t : 1; + __OM uint32_t SETINTM : 1; /*!< [16..16] Set Interrupt Mask */ + __OM uint32_t CLRINTM : 1; /*!< [17..17] Clear Interrupt Mask */ + __OM uint32_t SETDMARQM : 1; /*!< [18..18] SET DMAREQ Mask */ + __OM uint32_t CLRDMARQM : 1; /*!< [19..19] Clear DMAREQ Mask */ + uint32_t : 12; + } CHCTRL_b; + }; + + union + { + __IOM uint32_t CHCFG; /*!< (@ 0x0000002C) Channel Configuration Register */ + + struct + { + __IOM uint32_t SEL : 1; /*!< [0..0] Terminal Select */ + uint32_t : 2; + __IOM uint32_t REQD : 1; /*!< [3..3] Request Direction */ + __IOM uint32_t LOEN : 1; /*!< [4..4] Sets the transfer request signal between the USB control + * and the DMAC. */ + __IOM uint32_t HIEN : 1; /*!< [5..5] Sets the transfer request signal between the USB control + * and the DMAC. */ + __IOM uint32_t LVL : 1; /*!< [6..6] Sets the transfer request signal between the USB control + * and the DMAC. */ + uint32_t : 1; + __IOM uint32_t AM : 3; /*!< [10..8] These bits set the transfer request signal between the + * USB control and the DMAC. */ + __IOM uint32_t DRRP : 1; /*!< [11..11] Descriptor Read Repeat */ + __IOM uint32_t SDS : 4; /*!< [15..12] Source Data Size */ + __IOM uint32_t DDS : 4; /*!< [19..16] Destination Data Size */ + __IOM uint32_t SAD : 1; /*!< [20..20] Source Address Direction */ + __IOM uint32_t DAD : 1; /*!< [21..21] Destination Address Direction */ + __IOM uint32_t TM : 1; /*!< [22..22] Sets the transfer request signal between the USB control + * and the DMAC. */ + __IOM uint32_t WONLY : 1; /*!< [23..23] Write Only Mode */ + __IOM uint32_t DEM : 1; /*!< [24..24] USB_FDMAn Mask */ + uint32_t : 1; + __IOM uint32_t DIM : 1; /*!< [26..26] Descriptor Interrupt Mask */ + __IOM uint32_t SBE : 1; /*!< [27..27] Sweep Buffer Enable */ + __IOM uint32_t RSEL : 1; /*!< [28..28] Register Set Select */ + __IOM uint32_t RSW : 1; /*!< [29..29] Register Select Switch */ + __IOM uint32_t REN : 1; /*!< [30..30] Register Set Enable */ + __IOM uint32_t DMS : 1; /*!< [31..31] DMA Mode Select */ + } CHCFG_b; + }; + + union + { + __IOM uint32_t CHITVL; /*!< (@ 0x00000030) Channel Interval Register */ + + struct + { + __IOM uint32_t ITVL : 16; /*!< [15..0] Interval */ + uint32_t : 16; + } CHITVL_b; + }; + + union + { + __IOM uint32_t CHEXT; /*!< (@ 0x00000034) Channel Extension Register */ + + struct + { + __IOM uint32_t SPR : 4; /*!< [3..0] Source PROT */ + uint32_t : 4; + __IOM uint32_t DPR : 4; /*!< [11..8] Destination PROT */ + uint32_t : 20; + } CHEXT_b; + }; + + union + { + __IOM uint32_t NXLA; /*!< (@ 0x00000038) Next Link Address Register */ + + struct + { + __IOM uint32_t NXLA : 32; /*!< [31..0] Next Link Address */ + } NXLA_b; + }; + + union + { + __IM uint32_t CRLA; /*!< (@ 0x0000003C) Current Link Address Register */ + + struct + { + __IM uint32_t CRLA : 32; /*!< [31..0] Current Link Address */ + } CRLA_b; + }; +} R_USBF_CHa_Type; /*!< Size = 64 (0x40) */ + +/** + * @brief R_USBF_CHb [CHb] (Skip Register Set) + */ +typedef struct +{ + union + { + __IOM uint32_t SCNT; /*!< (@ 0x00000000) Source Continuous Register */ + + struct + { + __IOM uint32_t SCNT : 32; /*!< [31..0] Source Continuous */ + } SCNT_b; + }; + + union + { + __IOM uint32_t SSKP; /*!< (@ 0x00000004) Source Skip Register */ + + struct + { + __IOM uint32_t SSKP : 32; /*!< [31..0] Source Skip */ + } SSKP_b; + }; + + union + { + __IOM uint32_t DCNT; /*!< (@ 0x00000008) Destination Continuous Register */ + + struct + { + __IOM uint32_t DCNT : 32; /*!< [31..0] Destination Continuous */ + } DCNT_b; + }; + + union + { + __IOM uint32_t DSKP; /*!< (@ 0x0000000C) Destination Skip Register */ + + struct + { + __IOM uint32_t DSKP : 32; /*!< [31..0] Destination Skip */ + } DSKP_b; + }; + __IM uint32_t RESERVED[4]; +} R_USBF_CHb_Type; /*!< Size = 32 (0x20) */ + +/** + * @brief R_XSPI0_CSa [CSa] (xSPI Command Map Configuration Register [0..1]) + */ +typedef struct +{ + union + { + __IOM uint32_t CMCFG0; /*!< (@ 0x00000000) xSPI Command Map Configuration Register 0 CSn */ + + struct + { + __IOM uint32_t FFMT : 2; /*!< [1..0] Frame format */ + __IOM uint32_t ADDSIZE : 2; /*!< [3..2] Address size */ + uint32_t : 12; + __IOM uint32_t ADDRPEN : 8; /*!< [23..16] Address Replace Enable */ + __IOM uint32_t ADDRPCD : 8; /*!< [31..24] Address Replace Code */ + } CMCFG0_b; + }; + + union + { + __IOM uint32_t CMCFG1; /*!< (@ 0x00000004) xSPI Command Map Configuration Register 1 CSn */ + + struct + { + __IOM uint32_t RDCMD : 16; /*!< [15..0] Read command */ + __IOM uint32_t RDLATE : 5; /*!< [20..16] Read latency cycle */ + uint32_t : 11; + } CMCFG1_b; + }; + + union + { + __IOM uint32_t CMCFG2; /*!< (@ 0x00000008) xSPI Command Map Configuration Register 2 CSn */ + + struct + { + __IOM uint32_t WRCMD : 16; /*!< [15..0] Write command */ + __IOM uint32_t WRLATE : 5; /*!< [20..16] Write latency cycle */ + uint32_t : 11; + } CMCFG2_b; + }; + __IM uint32_t RESERVED; +} R_XSPI0_CSa_Type; /*!< Size = 16 (0x10) */ + +/** + * @brief R_XSPI0_BUF [BUF] (xSPI Command Manual Buf [0..3]) + */ +typedef struct +{ + union + { + __IOM uint32_t CDT; /*!< (@ 0x00000000) xSPI Command Manual Type Buf */ + + struct + { + __IOM uint32_t CMDSIZE : 2; /*!< [1..0] Command Size */ + __IOM uint32_t ADDSIZE : 3; /*!< [4..2] Address size */ + __IOM uint32_t DATASIZE : 4; /*!< [8..5] Write/Read Data Size */ + __IOM uint32_t LATE : 5; /*!< [13..9] Latency cycle */ + uint32_t : 1; + __IOM uint32_t TRTYPE : 1; /*!< [15..15] Transaction Type */ + __IOM uint32_t CMD : 16; /*!< [31..16] Command (1-2 bytes) */ + } CDT_b; + }; + + union + { + __IOM uint32_t CDA; /*!< (@ 0x00000004) xSPI Command Manual Address Buf */ + + struct + { + __IOM uint32_t ADD : 32; /*!< [31..0] Address */ + } CDA_b; + }; + + union + { + __IOM uint32_t CDD0; /*!< (@ 0x00000008) xSPI Command Manual Data 0 Buf */ + + struct + { + __IOM uint32_t DATA : 32; /*!< [31..0] Write/Read Data */ + } CDD0_b; + }; + + union + { + __IOM uint32_t CDD1; /*!< (@ 0x0000000C) xSPI Command Manual Data 1 Buf */ + + struct + { + __IOM uint32_t DATA : 32; /*!< [31..0] Write/Read Data */ + } CDD1_b; + }; +} R_XSPI0_BUF_Type; /*!< Size = 16 (0x10) */ + +/** + * @brief R_XSPI0_CSb [CSb] (xSPI Command Calibration Control register [0..1]) + */ +typedef struct +{ + union + { + __IOM uint32_t CCCTL0; /*!< (@ 0x00000000) xSPI Command Calibration Control Register 0 CSn */ + + struct + { + __IOM uint32_t CAEN : 1; /*!< [0..0] Automatic Calibration Enable */ + __IOM uint32_t CANOWR : 1; /*!< [1..1] Calibration no write mode */ + uint32_t : 6; + __IOM uint32_t CAITV : 5; /*!< [12..8] Calibration interval */ + uint32_t : 3; + __IOM uint32_t CASFTSTA : 5; /*!< [20..16] Calibration DS shift start value */ + uint32_t : 3; + __IOM uint32_t CASFTEND : 5; /*!< [28..24] Calibration DS shift end value */ + uint32_t : 3; + } CCCTL0_b; + }; + + union + { + __IOM uint32_t CCCTL1; /*!< (@ 0x00000004) xSPI Command Calibration Control Register 1 CSn */ + + struct + { + __IOM uint32_t CACMDSIZE : 2; /*!< [1..0] Command Size */ + __IOM uint32_t CAADDSIZE : 3; /*!< [4..2] Address size */ + __IOM uint32_t CADATASIZE : 4; /*!< [8..5] Write/Read Data Size */ + uint32_t : 7; + __IOM uint32_t CAWRLATE : 5; /*!< [20..16] Write Latency cycle */ + uint32_t : 3; + __IOM uint32_t CARDLATE : 5; /*!< [28..24] Read Latency cycle */ + uint32_t : 3; + } CCCTL1_b; + }; + + union + { + __IOM uint32_t CCCTL2; /*!< (@ 0x00000008) xSPI Command Calibration Control Register 2 CSn */ + + struct + { + __IOM uint32_t CAWRCMD : 16; /*!< [15..0] Calibration pattern write command */ + __IOM uint32_t CARDCMD : 16; /*!< [31..16] Calibration pattern read command */ + } CCCTL2_b; + }; + + union + { + __IOM uint32_t CCCTL3; /*!< (@ 0x0000000C) xSPI Command Calibration Control Register 3 CSn */ + + struct + { + __IOM uint32_t CAADD : 32; /*!< [31..0] Calibration pattern address */ + } CCCTL3_b; + }; + + union + { + __IOM uint32_t CCCTL4; /*!< (@ 0x00000010) xSPI Command Calibration Control Register 4 CSn */ + + struct + { + __IOM uint32_t CADATA : 32; /*!< [31..0] Calibration pattern data */ + } CCCTL4_b; + }; + + union + { + __IOM uint32_t CCCTL5; /*!< (@ 0x00000014) xSPI Command Calibration Control Register 5 CSn */ + + struct + { + __IOM uint32_t CADATA : 32; /*!< [31..0] Calibration pattern data */ + } CCCTL5_b; + }; + + union + { + __IOM uint32_t CCCTL6; /*!< (@ 0x00000018) xSPI Command Calibration Control Register 6 CSn */ + + struct + { + __IOM uint32_t CADATA : 32; /*!< [31..0] Calibration pattern data */ + } CCCTL6_b; + }; + + union + { + __IOM uint32_t CCCTL7; /*!< (@ 0x0000001C) xSPI Command Calibration Control Register 7 CSn */ + + struct + { + __IOM uint32_t CADATA : 32; /*!< [31..0] Calibration pattern data */ + } CCCTL7_b; + }; +} R_XSPI0_CSb_Type; /*!< Size = 32 (0x20) */ + +/** + * @brief R_SYSRAM0_W [W] (System SRAM Wn Registers (n = 0 to 3)) + */ +typedef struct +{ + union + { + __IOM uint32_t EC710CTL; /*!< (@ 0x00000000) ECC Control Register */ + + struct + { + __IM uint32_t ECEMF : 1; /*!< [0..0] ECC Error Indicate Flag */ + __IM uint32_t ECER1F : 1; /*!< [1..1] 1-Bit ECC Error Detection/Correction Flag */ + __IM uint32_t ECER2F : 1; /*!< [2..2] 2-Bit ECC Error Detection Flag */ + __IOM uint32_t EC1EDIC : 1; /*!< [3..3] 1-Bit ECC Error Detection Interrupt Control */ + __IOM uint32_t EC2EDIC : 1; /*!< [4..4] 2-Bit ECC Error Detection Interrupt Control */ + __IOM uint32_t EC1ECP : 1; /*!< [5..5] 1-Bit ECC Error Correction Enable */ + __IOM uint32_t ECERVF : 1; /*!< [6..6] ECC Error Determination Enable */ + __IOM uint32_t ECTHM : 1; /*!< [7..7] ECC Function Through Mode Enable */ + uint32_t : 1; + __IOM uint32_t ECER1C : 1; /*!< [9..9] 1-Bit ECC Error Detection Clear */ + __IOM uint32_t ECER2C : 1; /*!< [10..10] 2-Bit ECC Error Detection Clear */ + __IM uint32_t ECOVFF : 1; /*!< [11..11] ECC Error Address Capture Overflow Flag */ + uint32_t : 2; + __IOM uint32_t EMCA : 2; /*!< [15..14] Access Control to ECC Mode Selection */ + __IM uint32_t ECEDF0 : 2; /*!< [17..16] ECC Error Address Capture Flag m (m = 0) */ + __IM uint32_t ECEDF1 : 2; /*!< [19..18] ECC Error Address Capture Flag m (m = 1) */ + __IM uint32_t ECEDF2 : 2; /*!< [21..20] ECC Error Address Capture Flag m (m = 2) */ + __IM uint32_t ECEDF3 : 2; /*!< [23..22] ECC Error Address Capture Flag m (m = 3) */ + __IM uint32_t ECEDF4 : 2; /*!< [25..24] ECC Error Address Capture Flag m (m = 4) */ + __IM uint32_t ECEDF5 : 2; /*!< [27..26] ECC Error Address Capture Flag m (m = 5) */ + __IM uint32_t ECEDF6 : 2; /*!< [29..28] ECC Error Address Capture Flag m (m = 6) */ + __IM uint32_t ECEDF7 : 2; /*!< [31..30] ECC Error Address Capture Flag m (m = 7) */ + } EC710CTL_b; + }; + + union + { + __IOM uint32_t EC710TMC; /*!< (@ 0x00000004) ECC Test Mode Control Register */ + + struct + { + __IOM uint32_t ECREIS : 1; /*!< [0..0] ECC Redundancy Bit Input Data Select */ + __IOM uint32_t ECDCS : 1; /*!< [1..1] ECC Decode Input Select */ + __IOM uint32_t ECENS : 1; /*!< [2..2] ECC Encode Input Select */ + __IOM uint32_t ECREOS : 1; /*!< [3..3] ECC Redundancy Bit Output Data Select */ + __IOM uint32_t ECTRRS : 1; /*!< [4..4] RAM Read Test Mode Select */ + uint32_t : 2; + __IOM uint32_t ECTMCE : 1; /*!< [7..7] Test Mode Enable */ + uint32_t : 6; + __IOM uint32_t ETMA : 2; /*!< [15..14] ECTMCE Write Enable */ + uint32_t : 16; + } EC710TMC_b; + }; + + union + { + __IOM uint32_t EC710TRC; /*!< (@ 0x00000008) ECC Redundancy Bit Data Control Test Register */ + + struct + { + __IOM uint32_t ECERDB : 7; /*!< [6..0] ECC Redundancy Bit Input/Output Substitute Buffer Register */ + uint32_t : 1; + __IM uint32_t ECECRD : 7; /*!< [14..8] ECC Encode Test Register */ + uint32_t : 1; + __IM uint32_t ECHORD : 7; /*!< [22..16] ECC 7-Redundancy-Bit Data Retain Test Register */ + uint32_t : 1; + __IM uint32_t ECSYND : 7; /*!< [30..24] ECC Decode Syndrome Register */ + uint32_t : 1; + } EC710TRC_b; + }; + + union + { + __IOM uint32_t EC710TED; /*!< (@ 0x0000000C) ECC Encode/Decode Input/Output Switchover Test + * Register */ + + struct + { + __IOM uint32_t ECEDB : 32; /*!< [31..0] 32-Bit Data Test Register for ECC Encode/Decode */ + } EC710TED_b; + }; + + union + { + __IM uint32_t EC710EAD[8]; /*!< (@ 0x00000010) ECC Error Address [0..7] Register 0 */ + + struct + { + __IM uint32_t ECEAD : 15; /*!< [14..0] Bit Error Address */ + uint32_t : 17; + } EC710EAD_b[8]; + }; + __IM uint32_t RESERVED[4]; +} R_SYSRAM0_W_Type; /*!< Size = 64 (0x40) */ + +/** + * @brief R_MPU0_RGN [RGN] (Master MPU Safety Region Start Address Register [0..7]) + */ +typedef struct +{ + union + { + __IOM uint32_t STADD; /*!< (@ 0x00000000) Master MPU Safety Region Start Address Register */ + + struct + { + __IOM uint32_t RDPR : 1; /*!< [0..0] Enable read protection for region m of master MPU */ + __IOM uint32_t WRPR : 1; /*!< [1..1] Enable write protection for region m of master MPU */ + uint32_t : 8; + __IOM uint32_t STADDR : 22; /*!< [31..10] Start address for MPU region */ + } STADD_b; + }; + + union + { + __IOM uint32_t ENDADD; /*!< (@ 0x00000004) Master MPU Safety Region End Address Register */ + + struct + { + uint32_t : 10; + __IOM uint32_t ENDADDR : 22; /*!< [31..10] End address for MPU region */ + } ENDADD_b; + }; + __IM uint32_t RESERVED[2]; +} R_MPU0_RGN_Type; /*!< Size = 16 (0x10) */ + +/** + * @brief R_DSMIF0_CH [CH] (Channel Registers [0..2]) + */ +typedef struct +{ + union + { + __IOM uint32_t DSICR; /*!< (@ 0x00000000) Interrupt Control Register */ + + struct + { + __IOM uint32_t IOEL : 1; /*!< [0..0] Overcurrent lower limit detection interrupt enable */ + __IOM uint32_t IOEH : 1; /*!< [1..1] Overcurrent upper limit exceeded output interrupt enable */ + __IOM uint32_t ISE : 1; /*!< [2..2] Short circuit detection error interrupt enable */ + __IOM uint32_t IUE : 1; /*!< [3..3] Current data register update interrupt enable */ + uint32_t : 28; + } DSICR_b; + }; + + union + { + __IOM uint32_t DSCMCCR; /*!< (@ 0x00000004) Current Measurement Clock Control Register */ + + struct + { + __IOM uint32_t CKDIR : 1; /*!< [0..0] A/D conversion clock master/slave switching */ + uint32_t : 6; + __IOM uint32_t SEDGE : 1; /*!< [7..7] Sampling edge selection */ + __IOM uint32_t CKDIV : 6; /*!< [13..8] A/D conversion clock division ratio */ + uint32_t : 18; + } DSCMCCR_b; + }; + + union + { + __IOM uint32_t DSCMFCR; /*!< (@ 0x00000008) Current Measurement Filter Control Register */ + + struct + { + __IOM uint32_t CMSINC : 2; /*!< [1..0] Current measurement filter order setting */ + uint32_t : 6; + __IOM uint32_t CMDEC : 8; /*!< [15..8] Decimation ratio selection for current measurement */ + __IOM uint32_t CMSH : 5; /*!< [20..16] Data shift setting for current measurement */ + uint32_t : 11; + } DSCMFCR_b; + }; + + union + { + __IOM uint32_t DSCMCTCR; /*!< (@ 0x0000000C) Current Measurement Capture Trigger Control Register */ + + struct + { + __IOM uint32_t CTSELA : 3; /*!< [2..0] Current capture trigger A selection bit */ + uint32_t : 5; + __IOM uint32_t CTSELB : 3; /*!< [10..8] Current capture trigger B selection bit */ + uint32_t : 5; + __IOM uint32_t DITSEL : 2; /*!< [17..16] Current measurement filter initialization trigger selection + * bit for frequency division counter for decimation. */ + uint32_t : 5; + __IOM uint32_t DEDGE : 1; /*!< [23..23] Current measurement filter initialization trigger for + * division counter for decimation edge selection bit. The + * trigger from ELC is usually used positive edge. Change + * from the initial value if necessary. */ + uint32_t : 8; + } DSCMCTCR_b; + }; + + union + { + __IOM uint32_t DSEDCR; /*!< (@ 0x00000010) Error Detect Control Register */ + + struct + { + __IOM uint32_t SDE : 1; /*!< [0..0] Short circuit detection enable bit */ + uint32_t : 31; + } DSEDCR_b; + }; + + union + { + __IOM uint32_t DSOCFCR; /*!< (@ 0x00000014) Overcurrent Detect Filter Control Register */ + + struct + { + __IOM uint32_t OCSINC : 2; /*!< [1..0] Overcurrent detection filter order setting */ + uint32_t : 6; + __IOM uint32_t OCDEC : 8; /*!< [15..8] Decimation ratio selection for overcurrent detection */ + __IOM uint32_t OCSH : 5; /*!< [20..16] Data shift setting for overcurrent detection */ + uint32_t : 11; + } DSOCFCR_b; + }; + + union + { + __IOM uint32_t DSOCLTR; /*!< (@ 0x00000018) Overcurrent Low Threshold Register */ + + struct + { + __IOM uint32_t OCMPTBL : 16; /*!< [15..0] Overcurrent detection lower limit */ + uint32_t : 16; + } DSOCLTR_b; + }; + + union + { + __IOM uint32_t DSOCHTR; /*!< (@ 0x0000001C) Overcurrent High Threshold Register */ + + struct + { + __IOM uint32_t OCMPTBH : 16; /*!< [15..0] Overcurrent detection upper limit */ + uint32_t : 16; + } DSOCHTR_b; + }; + + union + { + __IOM uint32_t DSSCTSR; /*!< (@ 0x00000020) Short Circuit Threshold Setting Register */ + + struct + { + __IOM uint32_t SCNTL : 13; /*!< [12..0] Short circuit detection low continuous detection count */ + uint32_t : 3; + __IOM uint32_t SCNTH : 13; /*!< [28..16] Short circuit detection high continuous detection count */ + uint32_t : 3; + } DSSCTSR_b; + }; + + union + { + __IOM uint32_t DSODCR; /*!< (@ 0x00000024) Overcurrent Detect Control Register */ + + struct + { + __IOM uint32_t ODEL : 1; /*!< [0..0] Overcurrent lower limit detection enable bit */ + __IOM uint32_t ODEH : 1; /*!< [1..1] Overcurrent upper limit exceeded detection enable bit */ + uint32_t : 30; + } DSODCR_b; + }; + __IM uint32_t RESERVED[6]; + + union + { + __IOM uint32_t DSCSTRTR; /*!< (@ 0x00000040) Software Start Trigger Register */ + + struct + { + __IOM uint32_t STRTRG : 1; /*!< [0..0] Channel start trigger */ + uint32_t : 31; + } DSCSTRTR_b; + }; + + union + { + __IOM uint32_t DSCSTPTR; /*!< (@ 0x00000044) Software Stop Trigger Register */ + + struct + { + __IOM uint32_t STPTRG : 1; /*!< [0..0] Channel stop trigger */ + uint32_t : 31; + } DSCSTPTR_b; + }; + __IM uint32_t RESERVED1[2]; + + union + { + __IM uint32_t DSCDR; /*!< (@ 0x00000050) Current Data Register */ + + struct + { + __IM uint32_t ADDR : 16; /*!< [15..0] Current data */ + uint32_t : 16; + } DSCDR_b; + }; + + union + { + __IM uint32_t DSCCDRA; /*!< (@ 0x00000054) Capture Current Data Register A */ + + struct + { + __IM uint32_t CDRA : 16; /*!< [15..0] Capture current data A */ + uint32_t : 16; + } DSCCDRA_b; + }; + + union + { + __IM uint32_t DSCCDRB; /*!< (@ 0x00000058) Capture Current Data Register B */ + + struct + { + __IM uint32_t CDRB : 16; /*!< [15..0] Capture current data B */ + uint32_t : 16; + } DSCCDRB_b; + }; + + union + { + __IM uint32_t DSOCDR; /*!< (@ 0x0000005C) Overcurrent Data Register */ + + struct + { + __IM uint32_t ODR : 16; /*!< [15..0] Overcurrent data */ + uint32_t : 16; + } DSOCDR_b; + }; + + union + { + __IM uint32_t DSCOCDR; /*!< (@ 0x00000060) Capture Overcurrent Data Register */ + + struct + { + __IM uint32_t CODR : 16; /*!< [15..0] Capture Overcurrent data when overcurrent detected */ + uint32_t : 16; + } DSCOCDR_b; + }; + __IM uint32_t RESERVED2[7]; + + union + { + __IM uint32_t DSCSR; /*!< (@ 0x00000080) Status Register */ + + struct + { + __IM uint32_t DUF : 1; /*!< [0..0] Channel n data update flag */ + __IM uint32_t OCFL : 1; /*!< [1..1] Channel n overcurrent lower limit detection flag */ + __IM uint32_t OCFH : 1; /*!< [2..2] Channel n overcurrent upper limit exceeded flag */ + __IM uint32_t SCF : 1; /*!< [3..3] Channel n short circuit detection flag */ + uint32_t : 12; + __IM uint32_t CHSTATE : 1; /*!< [16..16] Channel n state */ + uint32_t : 15; + } DSCSR_b; + }; + + union + { + __IOM uint32_t DSCSCR; /*!< (@ 0x00000084) Status Clear Register */ + + struct + { + __IOM uint32_t CLRDUF : 1; /*!< [0..0] Channel n data update flag clear */ + __IOM uint32_t CLROCFL : 1; /*!< [1..1] Channel n overcurrent lower limit detection flag clear */ + __IOM uint32_t CLROCFH : 1; /*!< [2..2] Channel n overcurrent upper limit exceeded flag clear */ + __IOM uint32_t CLRSCF : 1; /*!< [3..3] Channel n short circuit detection flag clear */ + uint32_t : 28; + } DSCSCR_b; + }; + __IM uint32_t RESERVED3[2]; +} R_DSMIF0_CH_Type; /*!< Size = 144 (0x90) */ + +/** @} */ /* End of group Device_Peripheral_clusters */ + +/* =========================================================================================================================== */ +/* ================ Device Specific Peripheral Section ================ */ +/* =========================================================================================================================== */ + +/** @addtogroup Device_Peripheral_peripherals + * @{ + */ + +/* =========================================================================================================================== */ +/* ================ R_GPT7 ================ */ +/* =========================================================================================================================== */ + +/** + * @brief General PWM Timer 7 (R_GPT7) + */ + +typedef struct /*!< (@ 0x80000000) R_GPT7 Structure */ +{ + union + { + __IOM uint32_t GTWP; /*!< (@ 0x00000000) General PWM Timer Write-Protection Register */ + + struct + { + __IOM uint32_t WP : 1; /*!< [0..0] Register Write Disabled */ + __IOM uint32_t STRWP : 1; /*!< [1..1] GTSTR.CSTRT Bit Write Disabled */ + __IOM uint32_t STPWP : 1; /*!< [2..2] GTSTP.CSTOP Bit Write Disabled */ + __IOM uint32_t CLRWP : 1; /*!< [3..3] GTCLR.CCLR Bit Write Disabled */ + __IOM uint32_t CMNWP : 1; /*!< [4..4] Common Register Write Disabled */ + uint32_t : 3; + __OM uint32_t PRKEY : 8; /*!< [15..8] GTWP Key Code */ + uint32_t : 16; + } GTWP_b; + }; + + union + { + __IOM uint32_t GTSTR; /*!< (@ 0x00000004) General PWM Timer Software Start Register */ + + struct + { + __IOM uint32_t CSTRT0 : 1; /*!< [0..0] Channel 0 Count Start */ + __IOM uint32_t CSTRT1 : 1; /*!< [1..1] Channel 1 Count Start */ + __IOM uint32_t CSTRT2 : 1; /*!< [2..2] Channel 2 Count Start */ + __IOM uint32_t CSTRT3 : 1; /*!< [3..3] Channel 3 Count Start */ + __IOM uint32_t CSTRT4 : 1; /*!< [4..4] Channel 4 Count Start */ + __IOM uint32_t CSTRT5 : 1; /*!< [5..5] Channel 5 Count Start */ + __IOM uint32_t CSTRT6 : 1; /*!< [6..6] Channel 6 Count Start */ + uint32_t : 25; + } GTSTR_b; + }; + + union + { + __IOM uint32_t GTSTP; /*!< (@ 0x00000008) General PWM Timer Software Stop Register */ + + struct + { + __IOM uint32_t CSTOP0 : 1; /*!< [0..0] Channel 0 Count Stop */ + __IOM uint32_t CSTOP1 : 1; /*!< [1..1] Channel 1 Count Stop */ + __IOM uint32_t CSTOP2 : 1; /*!< [2..2] Channel 2 Count Stop */ + __IOM uint32_t CSTOP3 : 1; /*!< [3..3] Channel 3 Count Stop */ + __IOM uint32_t CSTOP4 : 1; /*!< [4..4] Channel 4 Count Stop */ + __IOM uint32_t CSTOP5 : 1; /*!< [5..5] Channel 5 Count Stop */ + __IOM uint32_t CSTOP6 : 1; /*!< [6..6] Channel 6 Count Stop */ + uint32_t : 25; + } GTSTP_b; + }; + + union + { + __OM uint32_t GTCLR; /*!< (@ 0x0000000C) General PWM Timer Software Clear Register */ + + struct + { + __OM uint32_t CCLR0 : 1; /*!< [0..0] Channel 0 Count Clear */ + __OM uint32_t CCLR1 : 1; /*!< [1..1] Channel 1 Count Clear */ + __OM uint32_t CCLR2 : 1; /*!< [2..2] Channel 2 Count Clear */ + __OM uint32_t CCLR3 : 1; /*!< [3..3] Channel 3 Count Clear */ + __OM uint32_t CCLR4 : 1; /*!< [4..4] Channel 4 Count Clear */ + __OM uint32_t CCLR5 : 1; /*!< [5..5] Channel 5 Count Clear */ + __OM uint32_t CCLR6 : 1; /*!< [6..6] Channel 6 Count Clear */ + uint32_t : 25; + } GTCLR_b; + }; + + union + { + __IOM uint32_t GTSSR; /*!< (@ 0x00000010) General PWM Timer Start Source Select Register */ + + struct + { + __IOM uint32_t SSGTRGAFR : 2; /*!< [1..0] SSGTRGAFR */ + __IOM uint32_t SSGTRGBFR : 2; /*!< [3..2] SSGTRGBFR */ + __IOM uint32_t SSGTRGCFR : 2; /*!< [5..4] SSGTRGCFR */ + __IOM uint32_t SSGTRGDFR : 2; /*!< [7..6] SSGTRGDFR */ + __IOM uint32_t SSCARBHL : 2; /*!< [9..8] SSCARBHL */ + __IOM uint32_t SSCAFBHL : 2; /*!< [11..10] SSCAFBHL */ + __IOM uint32_t SSCBRAHL : 2; /*!< [13..12] SSCBRAHL */ + __IOM uint32_t SSCBFAHL : 2; /*!< [15..14] SSCBFAHL */ + __IOM uint32_t SSELCA : 1; /*!< [16..16] SSELCA */ + __IOM uint32_t SSELCB : 1; /*!< [17..17] SSELCB */ + __IOM uint32_t SSELCC : 1; /*!< [18..18] SSELCC */ + __IOM uint32_t SSELCD : 1; /*!< [19..19] SSELCD */ + __IOM uint32_t SSELCE : 1; /*!< [20..20] SSELCE */ + __IOM uint32_t SSELCF : 1; /*!< [21..21] SSELCF */ + __IOM uint32_t SSELCG : 1; /*!< [22..22] SSELCG */ + __IOM uint32_t SSELCH : 1; /*!< [23..23] SSELCH */ + uint32_t : 7; + __IOM uint32_t CSTRT : 1; /*!< [31..31] Software Source Count Start Enable */ + } GTSSR_b; + }; + + union + { + __IOM uint32_t GTPSR; /*!< (@ 0x00000014) General PWM Timer Stop Source Select Register */ + + struct + { + __IOM uint32_t PSGTRGAFR : 2; /*!< [1..0] PSGTRGAFR */ + __IOM uint32_t PSGTRGBFR : 2; /*!< [3..2] PSGTRGBFR */ + __IOM uint32_t PSGTRGCFR : 2; /*!< [5..4] PSGTRGCFR */ + __IOM uint32_t PSGTRGDFR : 2; /*!< [7..6] PSGTRGDFR */ + __IOM uint32_t PSCARBHL : 2; /*!< [9..8] PSCARBHL */ + __IOM uint32_t PSCAFBHL : 2; /*!< [11..10] PSCAFBHL */ + __IOM uint32_t PSCBRAHL : 2; /*!< [13..12] PSCBRAHL */ + __IOM uint32_t PSCBFAHL : 2; /*!< [15..14] PSCBFAHL */ + __IOM uint32_t PSELCA : 1; /*!< [16..16] PSELCA */ + __IOM uint32_t PSELCB : 1; /*!< [17..17] PSELCB */ + __IOM uint32_t PSELCC : 1; /*!< [18..18] PSELCC */ + __IOM uint32_t PSELCD : 1; /*!< [19..19] PSELCD */ + __IOM uint32_t PSELCE : 1; /*!< [20..20] PSELCE */ + __IOM uint32_t PSELCF : 1; /*!< [21..21] PSELCF */ + __IOM uint32_t PSELCG : 1; /*!< [22..22] PSELCG */ + __IOM uint32_t PSELCH : 1; /*!< [23..23] PSELCH */ + uint32_t : 7; + __IOM uint32_t CSTOP : 1; /*!< [31..31] CSTOP */ + } GTPSR_b; + }; + + union + { + __IOM uint32_t GTCSR; /*!< (@ 0x00000018) General PWM Timer Clear Source Select Register */ + + struct + { + __IOM uint32_t CSGTRGAFR : 2; /*!< [1..0] CSGTRGAFR */ + __IOM uint32_t CSGTRGBFR : 2; /*!< [3..2] CSGTRGBFR */ + __IOM uint32_t CSGTRGCFR : 2; /*!< [5..4] CSGTRGCFR */ + __IOM uint32_t CSGTRGDFR : 2; /*!< [7..6] CSGTRGDFR */ + __IOM uint32_t CSCARBHL : 2; /*!< [9..8] CSCARBHL */ + __IOM uint32_t CSCAFBHL : 2; /*!< [11..10] CSCAFBHL */ + __IOM uint32_t CSCBRAHL : 2; /*!< [13..12] CSCBRAHL */ + __IOM uint32_t CSCBFAHL : 2; /*!< [15..14] CSCBFAHL */ + __IOM uint32_t CSELCA : 1; /*!< [16..16] CSELCA */ + __IOM uint32_t CSELCB : 1; /*!< [17..17] CSELCB */ + __IOM uint32_t CSELCC : 1; /*!< [18..18] CSELCC */ + __IOM uint32_t CSELCD : 1; /*!< [19..19] CSELCD */ + __IOM uint32_t CSELCE : 1; /*!< [20..20] CSELCE */ + __IOM uint32_t CSELCF : 1; /*!< [21..21] CSELCF */ + __IOM uint32_t CSELCG : 1; /*!< [22..22] CSELCG */ + __IOM uint32_t CSELCH : 1; /*!< [23..23] CSELCH */ + uint32_t : 7; + __IOM uint32_t CCLR : 1; /*!< [31..31] CCLR */ + } GTCSR_b; + }; + + union + { + __IOM uint32_t GTUPSR; /*!< (@ 0x0000001C) General PWM Timer Count-Up Source Select Register */ + + struct + { + __IOM uint32_t USGTRGAFR : 2; /*!< [1..0] USGTRGAFR */ + __IOM uint32_t USGTRGBFR : 2; /*!< [3..2] USGTRGBFR */ + __IOM uint32_t USGTRGCFR : 2; /*!< [5..4] USGTRGCFR */ + __IOM uint32_t USGTRGDFR : 2; /*!< [7..6] USGTRGDFR */ + __IOM uint32_t USCARBHL : 2; /*!< [9..8] USCARBHL */ + __IOM uint32_t USCAFBHL : 2; /*!< [11..10] USCAFBHL */ + __IOM uint32_t USCBRAHL : 2; /*!< [13..12] USCBRAHL */ + __IOM uint32_t USCBFAHL : 2; /*!< [15..14] USCBFAHL */ + __IOM uint32_t USELCA : 1; /*!< [16..16] USELCA */ + __IOM uint32_t USELCB : 1; /*!< [17..17] USELCB */ + __IOM uint32_t USELCC : 1; /*!< [18..18] USELCC */ + __IOM uint32_t USELCD : 1; /*!< [19..19] USELCD */ + __IOM uint32_t USELCE : 1; /*!< [20..20] USELCE */ + __IOM uint32_t USELCF : 1; /*!< [21..21] USELCF */ + __IOM uint32_t USELCG : 1; /*!< [22..22] USELCG */ + __IOM uint32_t USELCH : 1; /*!< [23..23] USELCH */ + uint32_t : 8; + } GTUPSR_b; + }; + + union + { + __IOM uint32_t GTDNSR; /*!< (@ 0x00000020) General PWM Timer Count-Down Source Select Register */ + + struct + { + __IOM uint32_t DSGTRGAFR : 2; /*!< [1..0] DSGTRGAFR */ + __IOM uint32_t DSGTRGBFR : 2; /*!< [3..2] DSGTRGBFR */ + __IOM uint32_t DSGTRGCFR : 2; /*!< [5..4] DSGTRGCFR */ + __IOM uint32_t DSGTRGDFR : 2; /*!< [7..6] DSGTRGDFR */ + __IOM uint32_t DSCARBHL : 2; /*!< [9..8] DSCARBHL */ + __IOM uint32_t DSCAFBHL : 2; /*!< [11..10] DSCAFBHL */ + __IOM uint32_t DSCBRAHL : 2; /*!< [13..12] DSCBRAHL */ + __IOM uint32_t DSCBFAHL : 2; /*!< [15..14] DSCBFAHL */ + __IOM uint32_t DSELCA : 1; /*!< [16..16] DSELCA */ + __IOM uint32_t DSELCB : 1; /*!< [17..17] DSELCB */ + __IOM uint32_t DSELCC : 1; /*!< [18..18] DSELCC */ + __IOM uint32_t DSELCD : 1; /*!< [19..19] DSELCD */ + __IOM uint32_t DSELCE : 1; /*!< [20..20] DSELCE */ + __IOM uint32_t DSELCF : 1; /*!< [21..21] DSELCF */ + __IOM uint32_t DSELCG : 1; /*!< [22..22] DSELCG */ + __IOM uint32_t DSELCH : 1; /*!< [23..23] DSELCH */ + uint32_t : 8; + } GTDNSR_b; + }; + + union + { + __IOM uint32_t GTICASR; /*!< (@ 0x00000024) General PWM Timer Input Capture Source Select + * Register A */ + + struct + { + __IOM uint32_t ASGTRGAFR : 2; /*!< [1..0] ASGTRGAFR */ + __IOM uint32_t ASGTRGBFR : 2; /*!< [3..2] ASGTRGBFR */ + __IOM uint32_t ASGTRGCFR : 2; /*!< [5..4] ASGTRGCFR */ + __IOM uint32_t ASGTRGDFR : 2; /*!< [7..6] ASGTRGDFR */ + __IOM uint32_t ASCARBHL : 2; /*!< [9..8] ASCARBHL */ + __IOM uint32_t ASCAFBHL : 2; /*!< [11..10] ASCAFBHL */ + __IOM uint32_t ASCBRAHL : 2; /*!< [13..12] ASCBRAHL */ + __IOM uint32_t ASCBFAHL : 2; /*!< [15..14] ASCBFAHL */ + __IOM uint32_t ASELCA : 1; /*!< [16..16] ASELCA */ + __IOM uint32_t ASELCB : 1; /*!< [17..17] ASELCB */ + __IOM uint32_t ASELCC : 1; /*!< [18..18] ASELCC */ + __IOM uint32_t ASELCD : 1; /*!< [19..19] ASELCD */ + __IOM uint32_t ASELCE : 1; /*!< [20..20] ASELCE */ + __IOM uint32_t ASELCF : 1; /*!< [21..21] ASELCF */ + __IOM uint32_t ASELCG : 1; /*!< [22..22] ASELCG */ + __IOM uint32_t ASELCH : 1; /*!< [23..23] ASELCH */ + uint32_t : 8; + } GTICASR_b; + }; + + union + { + __IOM uint32_t GTICBSR; /*!< (@ 0x00000028) General PWM Timer Input Capture Source Select + * Register B */ + + struct + { + __IOM uint32_t BSGTRGAFR : 2; /*!< [1..0] BSGTRGAFR */ + __IOM uint32_t BSGTRGBFR : 2; /*!< [3..2] BSGTRGBFR */ + __IOM uint32_t BSGTRGCFR : 2; /*!< [5..4] BSGTRGCFR */ + __IOM uint32_t BSGTRGDFR : 2; /*!< [7..6] BSGTRGDFR */ + __IOM uint32_t BSCARBHL : 2; /*!< [9..8] BSCARBHL */ + __IOM uint32_t BSCAFBHL : 2; /*!< [11..10] BSCAFBHL */ + __IOM uint32_t BSCBRAHL : 2; /*!< [13..12] BSCBRAHL */ + __IOM uint32_t BSCBFAHL : 2; /*!< [15..14] BSCBFAHL */ + __IOM uint32_t BSELCA : 1; /*!< [16..16] BSELCA */ + __IOM uint32_t BSELCB : 1; /*!< [17..17] BSELCB */ + __IOM uint32_t BSELCC : 1; /*!< [18..18] BSELCC */ + __IOM uint32_t BSELCD : 1; /*!< [19..19] BSELCD */ + __IOM uint32_t BSELCE : 1; /*!< [20..20] BSELCE */ + __IOM uint32_t BSELCF : 1; /*!< [21..21] BSELCF */ + __IOM uint32_t BSELCG : 1; /*!< [22..22] BSELCG */ + __IOM uint32_t BSELCH : 1; /*!< [23..23] BSELCH */ + uint32_t : 8; + } GTICBSR_b; + }; + + union + { + __IOM uint32_t GTCR; /*!< (@ 0x0000002C) General PWM Timer Control Register */ + + struct + { + __IOM uint32_t CST : 1; /*!< [0..0] Count Start */ + uint32_t : 7; + __IOM uint32_t ICDS : 1; /*!< [8..8] Input Capture Operation Select at Count Stop */ + uint32_t : 7; + __IOM uint32_t MD : 3; /*!< [18..16] Mode Select */ + uint32_t : 4; + __IOM uint32_t TPCS : 4; /*!< [26..23] Timer Prescaler Select */ + uint32_t : 2; + __IOM uint32_t SWMD : 3; /*!< [31..29] Switch Mode Select */ + } GTCR_b; + }; + + union + { + __IOM uint32_t GTUDDTYC; /*!< (@ 0x00000030) General PWM Timer Count Direction and Duty Setting + * Register */ + + struct + { + __IOM uint32_t UD : 1; /*!< [0..0] Count Direction Setting */ + __IOM uint32_t UDF : 1; /*!< [1..1] Forcible Count Direction Setting */ + uint32_t : 14; + __IOM uint32_t OADTY : 2; /*!< [17..16] GTIOCnA Pin Output Duty Setting */ + __IOM uint32_t OADTYF : 1; /*!< [18..18] GTIOCnA Pin Output Duty Forced Setting */ + __IOM uint32_t OADTYR : 1; /*!< [19..19] Output after Release of GTIOCnA Pin Output 0%/100% + * Duty Cycle Settings */ + uint32_t : 4; + __IOM uint32_t OBDTY : 2; /*!< [25..24] GTIOCnB Pin Output Duty Setting */ + __IOM uint32_t OBDTYF : 1; /*!< [26..26] GTIOCnB Pin Output Duty Forced Setting */ + __IOM uint32_t OBDTYR : 1; /*!< [27..27] Output after Release of GTIOCnB Pin Output 0%/100% + * Duty Cycle Settings */ + uint32_t : 4; + } GTUDDTYC_b; + }; + + union + { + __IOM uint32_t GTIOR; /*!< (@ 0x00000034) General PWM Timer I/O Control Register */ + + struct + { + __IOM uint32_t GTIOA : 5; /*!< [4..0] GTIOCnA Pin Function Select */ + uint32_t : 1; + __IOM uint32_t OADFLT : 1; /*!< [6..6] GTIOCnA Pin Output Value Setting at the Count Stop */ + __IOM uint32_t OAHLD : 1; /*!< [7..7] GTIOCnA Pin Output Retention at the Start/Stop Count */ + __IOM uint32_t OAE : 1; /*!< [8..8] GTIOCnA Pin Output Enable */ + __IOM uint32_t OADF : 2; /*!< [10..9] GTIOCnA Pin Negate Value Setting */ + uint32_t : 2; + __IOM uint32_t NFAEN : 1; /*!< [13..13] GTIOCnA Pin Input Noise Filter Enable */ + __IOM uint32_t NFCSA : 2; /*!< [15..14] GTIOCnA Pin Input Noise Filter Sampling Clock Select */ + __IOM uint32_t GTIOB : 5; /*!< [20..16] GTIOCnB Pin Function Select */ + uint32_t : 1; + __IOM uint32_t OBDFLT : 1; /*!< [22..22] GTIOCnB Pin Output Value Setting at the Count Stop */ + __IOM uint32_t OBHLD : 1; /*!< [23..23] GTIOCnB Pin Output Retention at the Start/Stop Count */ + __IOM uint32_t OBE : 1; /*!< [24..24] GTIOCnB Pin Output Enable */ + __IOM uint32_t OBDF : 2; /*!< [26..25] GTIOCnB Pin Negate Value Setting */ + uint32_t : 2; + __IOM uint32_t NFBEN : 1; /*!< [29..29] GTIOCnB Pin Input Noise Filter Enable */ + __IOM uint32_t NFCSB : 2; /*!< [31..30] GTIOCnB Pin Input Noise Filter Sampling Clock Select */ + } GTIOR_b; + }; + + union + { + __IOM uint32_t GTINTAD; /*!< (@ 0x00000038) General PWM Timer Interrupt Output Setting Register */ + + struct + { + __IOM uint32_t GTINTA : 1; /*!< [0..0] GTINTA */ + __IOM uint32_t GTINTB : 1; /*!< [1..1] GTINTB */ + __IOM uint32_t GTINTC : 1; /*!< [2..2] GTINTC */ + __IOM uint32_t GTINTD : 1; /*!< [3..3] GTINTD */ + __IOM uint32_t GTINTE : 1; /*!< [4..4] GTINTE */ + __IOM uint32_t GTINTF : 1; /*!< [5..5] GTINTF */ + __IOM uint32_t GTINTPR : 2; /*!< [7..6] GTINTPR */ + uint32_t : 8; + __IOM uint32_t ADTRAUEN : 1; /*!< [16..16] ADTRAUEN */ + __IOM uint32_t ADTRADEN : 1; /*!< [17..17] ADTRADEN */ + __IOM uint32_t ADTRBUEN : 1; /*!< [18..18] ADTRBUEN */ + __IOM uint32_t ADTRBDEN : 1; /*!< [19..19] ADTRBDEN */ + uint32_t : 4; + __IOM uint32_t GRP : 2; /*!< [25..24] Select the group to detect disabling of output (dead-time + * error or simultaneous driving of outputs to the high or + * low level) to POEG and to request of disabling of output + * from POEG. */ + uint32_t : 2; + __IOM uint32_t GRPDTE : 1; /*!< [28..28] GRPDTE */ + __IOM uint32_t GRPABH : 1; /*!< [29..29] (GTIOCnA pin and GTIOCnB output) */ + __IOM uint32_t GRPABL : 1; /*!< [30..30] (GTIOCnA pin and GTIOCnB output) */ + uint32_t : 1; + } GTINTAD_b; + }; + + union + { + __IOM uint32_t GTST; /*!< (@ 0x0000003C) General PWM Timer Status Register */ + + struct + { + uint32_t : 8; + __IM uint32_t ITCNT : 3; /*!< [10..8] GPTn_OVF/GPTn_UDF Interrupt Skipping Count Counter */ + uint32_t : 4; + __IM uint32_t TUCF : 1; /*!< [15..15] Count Direction Flag */ + __IOM uint32_t ADTRAUF : 1; /*!< [16..16] GTADTRA Register Compare Match (Up-Counting) A/D Converter + * Start Request Flag */ + __IOM uint32_t ADTRADF : 1; /*!< [17..17] GTADTRA Register Compare Match (Down-Counting) A/D + * Converter Start Request Flag */ + __IOM uint32_t ADTRBUF : 1; /*!< [18..18] GTADTRB Register Compare Match (Up-Counting) A/D Converter + * Start Request Flag */ + __IOM uint32_t ADTRBDF : 1; /*!< [19..19] GTADTRB Register Compare Match (Down-Counting) A/D + * Converter Start Request Flag */ + uint32_t : 4; + __IM uint32_t ODF : 1; /*!< [24..24] Output Stop Request Flag */ + uint32_t : 3; + __IM uint32_t DTEF : 1; /*!< [28..28] Dead Time Error Flag */ + __IM uint32_t OABHF : 1; /*!< [29..29] Simultaneous High Output Flag */ + __IM uint32_t OABLF : 1; /*!< [30..30] Simultaneous Low Output Flag */ + uint32_t : 1; + } GTST_b; + }; + + union + { + __IOM uint32_t GTBER; /*!< (@ 0x00000040) General PWM Timer Buffer Enable Register */ + + struct + { + __IOM uint32_t BD0 : 1; /*!< [0..0] GTCCRA/GTCCRB Registers Buffer Operation Disable */ + __IOM uint32_t BD1 : 1; /*!< [1..1] GTPR Register Buffer Operation Disable */ + __IOM uint32_t BD2 : 1; /*!< [2..2] GTADTRA/GTADTRB Registers Buffer Operation Disable */ + __IOM uint32_t BD3 : 1; /*!< [3..3] GTDVU/GTDVD Registers Buffer Operation Disable */ + uint32_t : 4; + __IOM uint32_t DBRTECA : 1; /*!< [8..8] GTCCRA Register Double Buffer Repeat Operation Enable */ + uint32_t : 1; + __IOM uint32_t DBRTECB : 1; /*!< [10..10] GTCCRB Register Double Buffer Repeat Operation Enable */ + uint32_t : 5; + __IOM uint32_t CCRA : 2; /*!< [17..16] GTCCRA Register Buffer Operation */ + __IOM uint32_t CCRB : 2; /*!< [19..18] GTCCRB Register Buffer Operation */ + __IOM uint32_t PR : 2; /*!< [21..20] GTPR Register Buffer Operation */ + __IOM uint32_t CCRSWT : 1; /*!< [22..22] GTCCRA and GTCCRB Registers Forcible Buffer Operation */ + uint32_t : 1; + __IOM uint32_t ADTTA : 2; /*!< [25..24] GTADTRA Register Buffer Transfer Timing Select */ + __IOM uint32_t ADTDA : 1; /*!< [26..26] GTADTRA Register Double Buffer Operation */ + uint32_t : 1; + __IOM uint32_t ADTTB : 2; /*!< [29..28] GTADTRB Register Buffer Transfer Timing Select */ + __IOM uint32_t ADTDB : 1; /*!< [30..30] GTADTRB Register Double Buffer Operation */ + uint32_t : 1; + } GTBER_b; + }; + + union + { + __IOM uint32_t GTITC; /*!< (@ 0x00000044) General PWM Timer Interrupt and A/D Converter + * Start Request Skipping Setting Register */ + + struct + { + __IOM uint32_t ITLA : 1; /*!< [0..0] ITLA */ + __IOM uint32_t ITLB : 1; /*!< [1..1] ITLB */ + __IOM uint32_t ITLC : 1; /*!< [2..2] ITLC */ + __IOM uint32_t ITLD : 1; /*!< [3..3] ITLD */ + __IOM uint32_t ITLE : 1; /*!< [4..4] ITLE */ + __IOM uint32_t ITLF : 1; /*!< [5..5] ITLF */ + __IOM uint32_t IVTC : 2; /*!< [7..6] IVTC */ + __IOM uint32_t IVTT : 3; /*!< [10..8] IVTT */ + uint32_t : 1; + __IOM uint32_t ADTAL : 1; /*!< [12..12] ADTAL */ + uint32_t : 1; + __IOM uint32_t ADTBL : 1; /*!< [14..14] ADTBL */ + uint32_t : 17; + } GTITC_b; + }; + __IOM uint32_t GTCNT; /*!< (@ 0x00000048) General PWM Timer Counter */ + __IOM uint32_t GTCCR[6]; /*!< (@ 0x0000004C) General PWM Timer Compare Capture Register m + * (m = A to F) */ + __IOM uint32_t GTPR; /*!< (@ 0x00000064) General PWM Timer Cycle Setting Register */ + __IOM uint32_t GTPBR; /*!< (@ 0x00000068) General PWM Timer Cycle Setting Buffer Register */ + __IOM uint32_t GTPDBR; /*!< (@ 0x0000006C) General PWM Timer Cycle Setting Double-Buffer + * Register */ + __IOM uint32_t GTADTRA; /*!< (@ 0x00000070) A/D Converter Start Request Timing Register A + * (m = A, B) */ + __IOM uint32_t GTADTBRA; /*!< (@ 0x00000074) A/D Converter Start Request Timing Buffer Register + * A (m = A, B) */ + __IOM uint32_t GTADTDBRA; /*!< (@ 0x00000078) A/D Converter Start Request Timing Double-Buffer + * Register A */ + __IOM uint32_t GTADTRB; /*!< (@ 0x0000007C) A/D Converter Start Request Timing Register B + * (m = A, B) */ + __IOM uint32_t GTADTBRB; /*!< (@ 0x00000080) A/D Converter Start Request Timing Buffer Register + * B (m = A, B) */ + __IOM uint32_t GTADTDBRB; /*!< (@ 0x00000084) A/D Converter Start Request Timing Double-Buffer + * Register B */ + + union + { + __IOM uint32_t GTDTCR; /*!< (@ 0x00000088) General PWM Timer Dead Time Control Register */ + + struct + { + __IOM uint32_t TDE : 1; /*!< [0..0] Negative-Phase Waveform Setting */ + uint32_t : 3; + __IOM uint32_t TDBUE : 1; /*!< [4..4] GTDVU Register Buffer Operation Enable */ + __IOM uint32_t TDBDE : 1; /*!< [5..5] GTDVD Register Buffer Operation Enable */ + uint32_t : 2; + __IOM uint32_t TDFER : 1; /*!< [8..8] GTDVD Register Setting */ + uint32_t : 23; + } GTDTCR_b; + }; + __IOM uint32_t GTDVU; /*!< (@ 0x0000008C) General PWM Timer Dead Time Value Register U + * (m = U, D) */ + __IOM uint32_t GTDVD; /*!< (@ 0x00000090) General PWM Timer Dead Time Value Register D + * (m = U, D) */ + __IOM uint32_t GTDBU; /*!< (@ 0x00000094) General PWM Timer Dead Time Value Buffer Register + * U (m = U, D) */ + __IOM uint32_t GTDBD; /*!< (@ 0x00000098) General PWM Timer Dead Time Value Buffer Register + * D (m = U, D) */ + + union + { + __IM uint32_t GTSOS; /*!< (@ 0x0000009C) General PWM Timer Output Protection Function + * Status Register */ + + struct + { + __IM uint32_t SOS : 2; /*!< [1..0] Output Protection Function Status */ + uint32_t : 30; + } GTSOS_b; + }; + + union + { + __IOM uint32_t GTSOTR; /*!< (@ 0x000000A0) General PWM Timer Output Protection Function + * Temporary Release Register */ + + struct + { + __IOM uint32_t SOTR : 1; /*!< [0..0] Output Protection Function Temporary Release */ + uint32_t : 31; + } GTSOTR_b; + }; + + union + { + __IOM uint32_t GTADSMR; /*!< (@ 0x000000A4) General PWM Timer A/D Conversion Start Request + * Signal Monitoring Register */ + + struct + { + __IOM uint32_t ADSMS0 : 2; /*!< [1..0] A/D Conversion Start Request Signal Monitor 0 Selection */ + uint32_t : 6; + __IOM uint32_t ADSMEN0 : 1; /*!< [8..8] A/D Conversion Start Request Signal Monitor 0 Output + * Enabling */ + uint32_t : 7; + __IOM uint32_t ADSMS1 : 2; /*!< [17..16] A/D Conversion Start Request Signal Monitor 1 Selection */ + uint32_t : 6; + __IOM uint32_t ADSMEN1 : 1; /*!< [24..24] A/D Conversion Start Request Signal Monitor 1 Output + * Enabling */ + uint32_t : 7; + } GTADSMR_b; + }; + + union + { + __IOM uint32_t GTEITC; /*!< (@ 0x000000A8) General PWM Timer Extended Interrupt Skipping + * Counter Control Register */ + + struct + { + __IOM uint32_t EIVTC1 : 2; /*!< [1..0] Extended Interrupt Skipping Counter 1 Count Source Select */ + uint32_t : 2; + __IOM uint32_t EIVTT1 : 4; /*!< [7..4] Extended Interrupt Skipping 1 Skipping Count Setting */ + uint32_t : 4; + __IM uint32_t EITCNT1 : 4; /*!< [15..12] Extended Interrupt Skipping Counter 1 */ + __IOM uint32_t EIVTC2 : 2; /*!< [17..16] Extended Interrupt Skipping Counter 2 Count Source + * Select */ + uint32_t : 2; + __IOM uint32_t EIVTT2 : 4; /*!< [23..20] Extended Interrupt Skipping 2 Skipping Count Setting */ + __IOM uint32_t EITCNT2IV : 4; /*!< [27..24] Extended Interrupt Skipping Counter 2 Initial Value */ + __IM uint32_t EITCNT2 : 4; /*!< [31..28] Extended Interrupt Skipping Counter 2 */ + } GTEITC_b; + }; + + union + { + __IOM uint32_t GTEITLI1; /*!< (@ 0x000000AC) General PWM Timer Extended Interrupt Skipping + * Setting Register 1 */ + + struct + { + __IOM uint32_t EITLA : 3; /*!< [2..0] GTCCRA Register Compare Match / Input Capture Interrupt + * Extended Skipping Function Select */ + uint32_t : 1; + __IOM uint32_t EITLB : 3; /*!< [6..4] GTCCRB Register Compare Match / Input Capture Interrupt + * Extended Skipping Function Select */ + uint32_t : 1; + __IOM uint32_t EITLC : 3; /*!< [10..8] GTCCRC Register Compare Match / Input Capture Interrupt + * Extended Skipping Function Select */ + uint32_t : 1; + __IOM uint32_t EITLD : 3; /*!< [14..12] GTCCRD Register Compare Match / Input Capture Interrupt + * Extended Skipping Function Select */ + uint32_t : 1; + __IOM uint32_t EITLE : 3; /*!< [18..16] GTCCRE Register Compare Match / Input Capture Interrupt + * Extended Skipping Function Select */ + uint32_t : 1; + __IOM uint32_t EITLF : 3; /*!< [22..20] GTCCRF Register Compare Match / Input Capture Interrupt + * Extended Skipping Function Select */ + uint32_t : 1; + __IOM uint32_t EITLV : 3; /*!< [26..24] Overflow Interrupt Extended Skipping Function Select */ + uint32_t : 1; + __IOM uint32_t EITLU : 3; /*!< [30..28] Underflow Interrupt Extended Skipping Function Select */ + uint32_t : 1; + } GTEITLI1_b; + }; + + union + { + __IOM uint32_t GTEITLI2; /*!< (@ 0x000000B0) General PWM Timer Extended Interrupt Skipping + * Setting Register 2 */ + + struct + { + __IOM uint32_t EADTAL : 3; /*!< [2..0] GTADTRA A/D Converter Start Request Extended Skipping + * Function Select */ + uint32_t : 1; + __IOM uint32_t EADTBL : 3; /*!< [6..4] GTADTRB A/D Converter Start Request Extended Skipping + * Function Select */ + uint32_t : 25; + } GTEITLI2_b; + }; + + union + { + __IOM uint32_t GTEITLB; /*!< (@ 0x000000B4) General PWM Timer Extended Buffer Transfer Skipping + * Setting Register */ + + struct + { + __IOM uint32_t EBTLCA : 3; /*!< [2..0] GTCCRA Register Buffer Transfer Extended Skipping Function + * Select */ + uint32_t : 1; + __IOM uint32_t EBTLCB : 3; /*!< [6..4] GTCCRB Register Buffer Transfer Extended Skipping Function + * Select */ + uint32_t : 1; + __IOM uint32_t EBTLPR : 3; /*!< [10..8] GTPR Register Buffer Transfer Extended Skipping Function + * Select */ + uint32_t : 5; + __IOM uint32_t EBTLADA : 3; /*!< [18..16] GTADTRA Register Buffer Transfer Extended Skipping + * Function Select */ + uint32_t : 1; + __IOM uint32_t EBTLADB : 3; /*!< [22..20] GTADTRB Register Buffer Transfer Extended Skipping + * Function Select */ + uint32_t : 1; + __IOM uint32_t EBTLDVU : 3; /*!< [26..24] GTDVU Register Buffer Transfer Extended Skipping Function + * Select */ + uint32_t : 1; + __IOM uint32_t EBTLDVD : 3; /*!< [30..28] GTDVD Register Buffer Transfer Extended Skipping Function + * Select */ + uint32_t : 1; + } GTEITLB_b; + }; + __IM uint32_t RESERVED[6]; + + union + { + __IOM uint32_t GTSECSR; /*!< (@ 0x000000D0) General PWM Timer Operation Enable Bit Simultaneous + * Control Channel Select Register */ + + struct + { + __IOM uint32_t SECSEL0 : 1; /*!< [0..0] Channel 0 Operation Enable Bit Simultaneous Control Channel + * Select */ + __IOM uint32_t SECSEL1 : 1; /*!< [1..1] Channel 1 Operation Enable Bit Simultaneous Control Channel + * Select */ + __IOM uint32_t SECSEL2 : 1; /*!< [2..2] Channel 2 Operation Enable Bit Simultaneous Control Channel + * Select */ + __IOM uint32_t SECSEL3 : 1; /*!< [3..3] Channel 3 Operation Enable Bit Simultaneous Control Channel + * Select */ + __IOM uint32_t SECSEL4 : 1; /*!< [4..4] Channel 4 Operation Enable Bit Simultaneous Control Channel + * Select */ + __IOM uint32_t SECSEL5 : 1; /*!< [5..5] Channel 5 Operation Enable Bit Simultaneous Control Channel + * Select */ + __IOM uint32_t SECSEL6 : 1; /*!< [6..6] Channel 6 Operation Enable Bit Simultaneous Control Channel + * Select */ + uint32_t : 25; + } GTSECSR_b; + }; + + union + { + __IOM uint32_t GTSECR; /*!< (@ 0x000000D4) General PWM Timer Operation Enable Bit Simultaneous + * Control Register */ + + struct + { + __IOM uint32_t SBDCE : 1; /*!< [0..0] GTCCR Register Buffer Operation Simultaneous Enable */ + __IOM uint32_t SBDPE : 1; /*!< [1..1] GTPR Register Buffer Operation Simultaneous Enable */ + __IOM uint32_t SBDAE : 1; /*!< [2..2] GTADTR Register Buffer Operation Simultaneous Enable */ + __IOM uint32_t SBDDE : 1; /*!< [3..3] GTDV Register Buffer Operation Simultaneous Enable */ + uint32_t : 4; + __IOM uint32_t SBDCD : 1; /*!< [8..8] GTCCR Register Buffer Operation Simultaneous Disable */ + __IOM uint32_t SBDPD : 1; /*!< [9..9] GTPR Register Buffer Operation Simultaneous Disable */ + __IOM uint32_t SBDAD : 1; /*!< [10..10] GTADTR Register Buffer Operation Simultaneous Disable */ + __IOM uint32_t SBDDD : 1; /*!< [11..11] GTDV Register Buffer Operation Simultaneous Disable */ + uint32_t : 20; + } GTSECR_b; + }; + + union + { + __IOM uint32_t GTSWSR; /*!< (@ 0x000000D8) General PWM Timer Switch Source Select Register */ + + struct + { + __IOM uint32_t WSGTRGA : 2; /*!< [1..0] GTETRGA Signal Edge Select to Switch Counter (GTETRGSA + * Signal for SAFTY) */ + __IOM uint32_t WSGTRGB : 2; /*!< [3..2] GTETRGB Signal Edge Select to Switch Counter (GTETRGSB + * Signal for SAFTY) */ + __IOM uint32_t WSGTRGC : 2; /*!< [5..4] GTETRGC Signal Edge Select to Switch Counter (GTETRGSC + * Signal for SAFTY) */ + __IOM uint32_t WSGTRGD : 2; /*!< [7..6] GTETRGD Signal Edge Select to Switch Counter (GTETRGSD + * Signal for SAFTY) */ + uint32_t : 8; + __IOM uint32_t WSELCA : 1; /*!< [16..16] Event Source Counter Switch Enable */ + __IOM uint32_t WSELCB : 1; /*!< [17..17] Event Source Counter Switch Enable */ + __IOM uint32_t WSELCC : 1; /*!< [18..18] Event Source Counter Switch Enable */ + __IOM uint32_t WSELCD : 1; /*!< [19..19] Event Source Counter Switch Enable */ + __IOM uint32_t WSELCE : 1; /*!< [20..20] Event Source Counter Switch Enable */ + __IOM uint32_t WSELCF : 1; /*!< [21..21] Event Source Counter Switch Enable */ + __IOM uint32_t WSELCG : 1; /*!< [22..22] Event Source Counter Switch Enable */ + __IOM uint32_t CSELCH : 1; /*!< [23..23] Event Source Counter Switch Enable */ + uint32_t : 8; + } GTSWSR_b; + }; + __IOM uint32_t GTSWOS; /*!< (@ 0x000000DC) General PWM Timer Switch Offset Setting Register */ +} R_GPT0_Type; /*!< Size = 224 (0xe0) */ + +/* =========================================================================================================================== */ +/* ================ R_SCI0 ================ */ +/* =========================================================================================================================== */ + +/** + * @brief Serial Communication Interface 0 (R_SCI0) + */ + +typedef struct /*!< (@ 0x80001000) R_SCI0 Structure */ +{ + union + { + __IM uint32_t RDR; /*!< (@ 0x00000000) Receive Data Register */ + + struct + { + __IM uint32_t RDAT : 9; /*!< [8..0] Serial receive data */ + __IM uint32_t MPB : 1; /*!< [9..9] Multi-processor flag */ + __IM uint32_t DR : 1; /*!< [10..10] Receive data ready flag */ + __IM uint32_t FPER : 1; /*!< [11..11] FIFO parity error flag */ + __IM uint32_t FFER : 1; /*!< [12..12] FIFO framing error flag */ + uint32_t : 11; + __IM uint32_t ORER : 1; /*!< [24..24] Overrun Error flag */ + uint32_t : 2; + __IM uint32_t PER : 1; /*!< [27..27] Parity error flag */ + __IM uint32_t FER : 1; /*!< [28..28] Framing error flag */ + uint32_t : 3; + } RDR_b; + }; + + union + { + __IOM uint32_t TDR; /*!< (@ 0x00000004) Transmit Data Register */ + + struct + { + __IOM uint32_t TDAT : 9; /*!< [8..0] Serial transmit data */ + __IOM uint32_t MPBT : 1; /*!< [9..9] Multi-processor transfer bit flag */ + uint32_t : 22; + } TDR_b; + }; + + union + { + __IOM uint32_t CCR0; /*!< (@ 0x00000008) Common Control Register 0 */ + + struct + { + __IOM uint32_t RE : 1; /*!< [0..0] Receive Enable */ + uint32_t : 3; + __IOM uint32_t TE : 1; /*!< [4..4] Transmit Enable */ + uint32_t : 3; + __IOM uint32_t MPIE : 1; /*!< [8..8] Multi-Processor Interrupt Enable */ + __IOM uint32_t DCME : 1; /*!< [9..9] Data Compare Match Enable */ + __IOM uint32_t IDSEL : 1; /*!< [10..10] ID frame select */ + uint32_t : 5; + __IOM uint32_t RIE : 1; /*!< [16..16] Receive Interrupt Enable */ + uint32_t : 3; + __IOM uint32_t TIE : 1; /*!< [20..20] Transmit Interrupt Enable */ + __IOM uint32_t TEIE : 1; /*!< [21..21] Transmit End Interrupt Enable */ + uint32_t : 2; + __IOM uint32_t SSE : 1; /*!< [24..24] SSn# Pin Function Enable */ + uint32_t : 7; + } CCR0_b; + }; + + union + { + __IOM uint32_t CCR1; /*!< (@ 0x0000000C) Common Control Register 1 */ + + struct + { + __IOM uint32_t CTSE : 1; /*!< [0..0] CTS Enable */ + __IOM uint32_t CTSPEN : 1; /*!< [1..1] CTS external pin Enable */ + uint32_t : 2; + __IOM uint32_t SPB2DT : 1; /*!< [4..4] Serial port break data select */ + __IOM uint32_t SPB2IO : 1; /*!< [5..5] Serial port break I/O */ + uint32_t : 2; + __IOM uint32_t PE : 1; /*!< [8..8] Parity Enable */ + __IOM uint32_t PM : 1; /*!< [9..9] Parity Mode */ + uint32_t : 2; + __IOM uint32_t TINV : 1; /*!< [12..12] TXD invert */ + __IOM uint32_t RINV : 1; /*!< [13..13] RXD invert */ + uint32_t : 2; + __IOM uint32_t SPLP : 1; /*!< [16..16] Loopback Control */ + uint32_t : 3; + __IOM uint32_t SHARPS : 1; /*!< [20..20] Half-duplex communication select */ + uint32_t : 3; + __IOM uint32_t NFCS : 3; /*!< [26..24] Noise Filter Clock Select */ + uint32_t : 1; + __IOM uint32_t NFEN : 1; /*!< [28..28] Digital Noise Filter Function Enable */ + uint32_t : 3; + } CCR1_b; + }; + + union + { + __IOM uint32_t CCR2; /*!< (@ 0x00000010) Common Control Register 2 */ + + struct + { + __IOM uint32_t BCP : 3; /*!< [2..0] Base Clock Pulse */ + uint32_t : 1; + __IOM uint32_t BGDM : 1; /*!< [4..4] Baud Rate Generator Double-Speed Mode Select */ + __IOM uint32_t ABCS : 1; /*!< [5..5] Asynchronous Mode Base Clock Select */ + __IOM uint32_t ABCSE : 1; /*!< [6..6] Asynchronous Mode Extended Base Clock Select */ + uint32_t : 1; + __IOM uint32_t BRR : 8; /*!< [15..8] Bit rate setting */ + __IOM uint32_t BRME : 1; /*!< [16..16] BRME */ + uint32_t : 3; + __IOM uint32_t CKS : 2; /*!< [21..20] Clock Select */ + uint32_t : 2; + __IOM uint32_t MDDR : 8; /*!< [31..24] Modulation Duty setting */ + } CCR2_b; + }; + + union + { + __IOM uint32_t CCR3; /*!< (@ 0x00000014) Common Control Register 3 */ + + struct + { + __IOM uint32_t CPHA : 1; /*!< [0..0] Clock Phase Select */ + __IOM uint32_t CPOL : 1; /*!< [1..1] Clock Polarity Select */ + uint32_t : 5; + __IOM uint32_t BPEN : 1; /*!< [7..7] Synchronizer bypass enable */ + __IOM uint32_t CHR : 2; /*!< [9..8] Character Length */ + uint32_t : 2; + __IOM uint32_t LSBF : 1; /*!< [12..12] LSB First select */ + __IOM uint32_t SINV : 1; /*!< [13..13] Transmitted/Received Data Invert */ + __IOM uint32_t STP : 1; /*!< [14..14] Stop Bit Length */ + __IOM uint32_t RXDESEL : 1; /*!< [15..15] Asynchronous Start Bit Edge Detection Select */ + __IOM uint32_t MOD : 3; /*!< [18..16] Communication mode select */ + __IOM uint32_t MP : 1; /*!< [19..19] Multi-Processor Mode */ + __IOM uint32_t FM : 1; /*!< [20..20] FIFO Mode select */ + __IOM uint32_t DEN : 1; /*!< [21..21] Driver enable */ + uint32_t : 2; + __IOM uint32_t CKE : 2; /*!< [25..24] Clock enable */ + uint32_t : 2; + __IOM uint32_t GM : 1; /*!< [28..28] GSM Mode */ + __IOM uint32_t BLK : 1; /*!< [29..29] Block Transfer Mode */ + uint32_t : 2; + } CCR3_b; + }; + + union + { + __IOM uint32_t CCR4; /*!< (@ 0x00000018) Common Control Register 4 */ + + struct + { + __IOM uint32_t CMPD : 9; /*!< [8..0] Compare Match Data */ + uint32_t : 7; + __IOM uint32_t ASEN : 1; /*!< [16..16] Adjust receive sampling timing enable */ + __IOM uint32_t ATEN : 1; /*!< [17..17] Adjust transmit timing enable */ + uint32_t : 6; + __IOM uint32_t AST : 3; /*!< [26..24] Adjustment value for receive Sampling Timing */ + __IOM uint32_t AJD : 1; /*!< [27..27] Adjustment Direction for receive sampling timing */ + __IOM uint32_t ATT : 3; /*!< [30..28] Adjustment value for Transmit timing */ + __IOM uint32_t AET : 1; /*!< [31..31] Adjustment edge for transmit timing */ + } CCR4_b; + }; + __IM uint32_t RESERVED; + + union + { + __IOM uint32_t ICR; /*!< (@ 0x00000020) Simple I2C Control Register */ + + struct + { + __IOM uint32_t IICDL : 5; /*!< [4..0] SDA Delay Output Select */ + uint32_t : 3; + __IOM uint32_t IICINTM : 1; /*!< [8..8] IICINTM */ + __IOM uint32_t IICCSC : 1; /*!< [9..9] IICCSC */ + uint32_t : 3; + __IOM uint32_t IICACKT : 1; /*!< [13..13] IICACKT */ + uint32_t : 2; + __IOM uint32_t IICSTAREQ : 1; /*!< [16..16] IICSTAREQ */ + __IOM uint32_t IICRSTAREQ : 1; /*!< [17..17] IICRSTAREQ */ + __IOM uint32_t IICSTPREQ : 1; /*!< [18..18] IICSTPREQ */ + uint32_t : 1; + __IOM uint32_t IICSDAS : 2; /*!< [21..20] IICSDAS */ + __IOM uint32_t IICSCLS : 2; /*!< [23..22] IICSCLS */ + uint32_t : 8; + } ICR_b; + }; + + union + { + __IOM uint32_t FCR; /*!< (@ 0x00000024) FIFO Control Register */ + + struct + { + __IOM uint32_t DRES : 1; /*!< [0..0] Receive data ready error select */ + uint32_t : 7; + __IOM uint32_t TTRG : 5; /*!< [12..8] Transmit FIFO data trigger number */ + uint32_t : 2; + __OM uint32_t TFRST : 1; /*!< [15..15] Transmit FIFO Data Register Reset */ + __IOM uint32_t RTRG : 5; /*!< [20..16] Receive FIFO data trigger number */ + uint32_t : 2; + __OM uint32_t RFRST : 1; /*!< [23..23] Receive FIFO Data Register Reset */ + __IOM uint32_t RSTRG : 5; /*!< [28..24] RTS# Output Active Trigger Number Select */ + uint32_t : 3; + } FCR_b; + }; + __IM uint32_t RESERVED1[2]; + + union + { + __IOM uint32_t DCR; /*!< (@ 0x00000030) Driver Control Register */ + + struct + { + __IOM uint32_t DEPOL : 1; /*!< [0..0] Driver effective polarity select */ + uint32_t : 7; + __IOM uint32_t DEAST : 5; /*!< [12..8] Driver Assertion Time */ + uint32_t : 3; + __IOM uint32_t DENGT : 5; /*!< [20..16] Driver negate time */ + uint32_t : 11; + } DCR_b; + }; + __IM uint32_t RESERVED2[5]; + + union + { + __IM uint32_t CSR; /*!< (@ 0x00000048) Common Status Register */ + + struct + { + uint32_t : 4; + __IM uint32_t ERS : 1; /*!< [4..4] Error Signal Status Flag */ + uint32_t : 10; + __IM uint32_t RXDMON : 1; /*!< [15..15] Serial input data monitor */ + __IM uint32_t DCMF : 1; /*!< [16..16] Data Compare Match Flag */ + __IM uint32_t DPER : 1; /*!< [17..17] Data Compare Match Parity Error Flag */ + __IM uint32_t DFER : 1; /*!< [18..18] Data Compare Match Framing Error Flag */ + uint32_t : 5; + __IM uint32_t ORER : 1; /*!< [24..24] ORER */ + uint32_t : 1; + __IM uint32_t MFF : 1; /*!< [26..26] Mode Fault Error Flag */ + __IM uint32_t PER : 1; /*!< [27..27] PER */ + __IM uint32_t FER : 1; /*!< [28..28] FER */ + __IM uint32_t TDRE : 1; /*!< [29..29] Transmit Data Empty Flag */ + __IM uint32_t TEND : 1; /*!< [30..30] TEND */ + __IM uint32_t RDRF : 1; /*!< [31..31] RDRF */ + } CSR_b; + }; + + union + { + __IM uint32_t ISR; /*!< (@ 0x0000004C) Simple I2C Status Register */ + + struct + { + __IM uint32_t IICACKR : 1; /*!< [0..0] ACK Reception Data Flag */ + uint32_t : 2; + __IM uint32_t IICSTIF : 1; /*!< [3..3] Issuing of Start, Restart, or Stop Condition Completed + * Flag */ + uint32_t : 28; + } ISR_b; + }; + + union + { + __IM uint32_t FRSR; /*!< (@ 0x00000050) FIFO Receive Status Register */ + + struct + { + __IM uint32_t DR : 1; /*!< [0..0] DR */ + uint32_t : 7; + __IM uint32_t R : 6; /*!< [13..8] Receive FIFO Data Count */ + uint32_t : 2; + __IM uint32_t PNUM : 6; /*!< [21..16] Parity Error Count */ + uint32_t : 2; + __IM uint32_t FNUM : 6; /*!< [29..24] Framing Error Count */ + uint32_t : 2; + } FRSR_b; + }; + + union + { + __IM uint32_t FTSR; /*!< (@ 0x00000054) FIFO Transmit Status Register */ + + struct + { + __IM uint32_t T : 6; /*!< [5..0] Transmit FIFO Data Count */ + uint32_t : 26; + } FTSR_b; + }; + __IM uint32_t RESERVED3[4]; + + union + { + __OM uint32_t CFCLR; /*!< (@ 0x00000068) Common Flag Clear Register */ + + struct + { + uint32_t : 4; + __OM uint32_t ERSC : 1; /*!< [4..4] ERSC */ + uint32_t : 11; + __OM uint32_t DCMFC : 1; /*!< [16..16] DCMFC */ + __OM uint32_t DPERC : 1; /*!< [17..17] DPERC */ + __OM uint32_t DFERC : 1; /*!< [18..18] DFERC */ + uint32_t : 5; + __OM uint32_t ORERC : 1; /*!< [24..24] ORERC */ + uint32_t : 1; + __OM uint32_t MFFC : 1; /*!< [26..26] MFFC */ + __OM uint32_t PERC : 1; /*!< [27..27] PERC */ + __OM uint32_t FERC : 1; /*!< [28..28] FERC */ + __OM uint32_t TDREC : 1; /*!< [29..29] TDREC */ + uint32_t : 1; + __OM uint32_t RDRFC : 1; /*!< [31..31] RDRFC */ + } CFCLR_b; + }; + + union + { + __OM uint32_t ICFCLR; /*!< (@ 0x0000006C) Simple I2C Flag Clear Register */ + + struct + { + uint32_t : 3; + __OM uint32_t IICSTIFC : 1; /*!< [3..3] IICSTIFC */ + uint32_t : 28; + } ICFCLR_b; + }; + + union + { + __OM uint32_t FFCLR; /*!< (@ 0x00000070) FIFO Flag Clear Register */ + + struct + { + __OM uint32_t DRC : 1; /*!< [0..0] DRC */ + uint32_t : 31; + } FFCLR_b; + }; +} R_SCI0_Type; /*!< Size = 116 (0x74) */ + +/* =========================================================================================================================== */ +/* ================ R_SPI0 ================ */ +/* =========================================================================================================================== */ + +/** + * @brief Serial Peripheral Interface 0 (R_SPI0) + */ + +typedef struct /*!< (@ 0x80003000) R_SPI0 Structure */ +{ + union + { + union + { + __IOM uint32_t SPDR; /*!< (@ 0x00000000) SPI Data Register */ + + struct + { + __IOM uint32_t SPD : 32; /*!< [31..0] The SPI data register (SPDR) is used to store SPI's + * transmit data and receive data. Transmit buffers and receive + * buffers independently function. */ + } SPDR_b; + }; + __IOM uint16_t SPDR_HA; /*!< (@ 0x00000000) SPI Data Register */ + __IOM uint8_t SPDR_BY; /*!< (@ 0x00000000) SPI Data Register */ + }; + + union + { + __IOM uint8_t SPCKD; /*!< (@ 0x00000004) SPI Clock Delay Register */ + + struct + { + __IOM uint8_t SCKDL : 3; /*!< [2..0] RSPCK Delay Setting */ + uint8_t : 5; + } SPCKD_b; + }; + + union + { + __IOM uint8_t SSLND; /*!< (@ 0x00000005) SPI Slave Select Negation Delay Register */ + + struct + { + __IOM uint8_t SLNDL : 3; /*!< [2..0] SSL Negation Delay Bits */ + uint8_t : 5; + } SSLND_b; + }; + + union + { + __IOM uint8_t SPND; /*!< (@ 0x00000006) SPI Next-Access Delay Register */ + + struct + { + __IOM uint8_t SPNDL : 3; /*!< [2..0] SPI Next-Access Delay Bits */ + uint8_t : 5; + } SPND_b; + }; + + union + { + __IOM uint8_t MRCKD; /*!< (@ 0x00000007) SPI ClocK Digital control Register for Master + * Receive */ + + struct + { + __IOM uint8_t ARST : 3; /*!< [2..0] Receive Sampling Timing Adjustment Bits */ + uint8_t : 5; + } MRCKD_b; + }; + + union + { + __IOM uint32_t SPCR; /*!< (@ 0x00000008) SPI Control Register */ + + struct + { + __IOM uint32_t SPE : 1; /*!< [0..0] SPI Function Enable */ + uint32_t : 6; + __IOM uint32_t SPSCKSEL : 1; /*!< [7..7] SPI Master Receive Clock Select */ + __IOM uint32_t SPPE : 1; /*!< [8..8] Parity Enable */ + __IOM uint32_t SPOE : 1; /*!< [9..9] Parity Mode */ + uint32_t : 1; + __IOM uint32_t PTE : 1; /*!< [11..11] Parity Self-Diagnosis Enable */ + __IOM uint32_t SCKASE : 1; /*!< [12..12] RSPCK Auto-Stop Function Enable */ + __IOM uint32_t BFDS : 1; /*!< [13..13] Between Burst Transfer Frames Delay Select */ + __IOM uint32_t MODFEN : 1; /*!< [14..14] Mode Fault Error Detection Enable */ + uint32_t : 1; + __IOM uint32_t SPEIE : 1; /*!< [16..16] SPI Error Interrupt Enable */ + __IOM uint32_t SPRIE : 1; /*!< [17..17] SPI Receive Buffer Full Interrupt Enable */ + __IOM uint32_t SPIIE : 1; /*!< [18..18] SPI Idle Interrupt Enable */ + __IOM uint32_t SPDRES : 1; /*!< [19..19] SPI Receive Data Ready Error Select */ + __IOM uint32_t SPTIE : 1; /*!< [20..20] SPI Transmit Buffer Empty Interrupt Enable */ + __IOM uint32_t CENDIE : 1; /*!< [21..21] SPI Communication End Interrupt Enable */ + uint32_t : 2; + __IOM uint32_t SPMS : 1; /*!< [24..24] SPI Function Enable */ + __IOM uint32_t SPFRF : 1; /*!< [25..25] SPI Frame Format Select */ + uint32_t : 2; + __IOM uint32_t TXMD : 2; /*!< [29..28] Communication Mode Select */ + __IOM uint32_t MSTR : 1; /*!< [30..30] SPI Master/Slave Mode Select */ + __IOM uint32_t BPEN : 1; /*!< [31..31] Synchronization Circuit Bypass Enable */ + } SPCR_b; + }; + + union + { + __IOM uint8_t SPCRRM; /*!< (@ 0x0000000C) SPI Control Register for Master Receive only */ + + struct + { + __IOM uint8_t RMFM : 5; /*!< [4..0] Frame processing count setting in Master Receive only */ + uint8_t : 1; + __OM uint8_t RMEDTG : 1; /*!< [6..6] Reading value is always 0. */ + __OM uint8_t RMSTTG : 1; /*!< [7..7] Reading value is always 0. */ + } SPCRRM_b; + }; + + union + { + __IOM uint8_t SPDRCR; /*!< (@ 0x0000000D) SPI Control Register for Received Data Ready + * Detection */ + + struct + { + __IOM uint8_t SPDRC : 8; /*!< [7..0] SPDRC */ + } SPDRCR_b; + }; + + union + { + __IOM uint8_t SPPCR; /*!< (@ 0x0000000E) SPI Pin Control Register */ + + struct + { + __IOM uint8_t SPLP : 1; /*!< [0..0] SPI Loopback */ + __IOM uint8_t SPLP2 : 1; /*!< [1..1] SPI Loopback 2 */ + __IOM uint8_t SPOM : 1; /*!< [2..2] SPI Output Pin Mode */ + uint8_t : 1; + __IOM uint8_t MOIFV : 1; /*!< [4..4] MOSI Idle Fixed Value */ + __IOM uint8_t MOIFE : 1; /*!< [5..5] MOSI Idle Value Fixing Enable */ + uint8_t : 2; + } SPPCR_b; + }; + + union + { + __IOM uint8_t SPCR2; /*!< (@ 0x0000000F) SPI Control Register 2 */ + + struct + { + __IOM uint8_t SPSCKDL : 3; /*!< [2..0] SPI Master Receive Clock Analog Delay */ + uint8_t : 5; + } SPCR2_b; + }; + + union + { + __IOM uint8_t SSLP; /*!< (@ 0x00000010) SPI Slave Select Polarity Register */ + + struct + { + __IOM uint8_t SSL0P : 1; /*!< [0..0] SSL0 Signal Polarity Setting */ + __IOM uint8_t SSL1P : 1; /*!< [1..1] SSL1 Signal Polarity Setting */ + __IOM uint8_t SSL2P : 1; /*!< [2..2] SSL2 Signal Polarity Setting */ + __IOM uint8_t SSL3P : 1; /*!< [3..3] SSL3 Signal Polarity Setting */ + uint8_t : 4; + } SSLP_b; + }; + + union + { + __IOM uint8_t SPBR; /*!< (@ 0x00000011) SPI Bit Rate Register */ + + struct + { + __IOM uint8_t SPR : 8; /*!< [7..0] The SPBR register is used to set the bit rate in master + * mode. If SPBR is modified while SPCR.MSTR = 1 and SPCR.SPE + * = 1, subsequent operation is not guaranteed. */ + } SPBR_b; + }; + __IM uint8_t RESERVED; + + union + { + __IOM uint8_t SPSCR; /*!< (@ 0x00000013) SPI Sequence Control Register */ + + struct + { + __IOM uint8_t SPSLN : 3; /*!< [2..0] SPI Sequence Length Specification */ + uint8_t : 5; + } SPSCR_b; + }; + + union + { + __IOM uint32_t SPCMD[8]; /*!< (@ 0x00000014) SPI Command Register [0..7] (m = 0 to 7) */ + + struct + { + __IOM uint32_t CPHA : 1; /*!< [0..0] RSPCK Phase */ + __IOM uint32_t CPOL : 1; /*!< [1..1] RSPCK Polarity */ + __IOM uint32_t BRDV : 2; /*!< [3..2] Bit Rate Division */ + uint32_t : 3; + __IOM uint32_t SSLKP : 1; /*!< [7..7] SSL Signal Level Hold */ + uint32_t : 4; + __IOM uint32_t LSBF : 1; /*!< [12..12] SPI LSB First */ + __IOM uint32_t SPNDEN : 1; /*!< [13..13] SPI Next-Access Delay Enable */ + __IOM uint32_t SLNDEN : 1; /*!< [14..14] SSL Negation Delay Setting Enable */ + __IOM uint32_t SCKDEN : 1; /*!< [15..15] RSPCK Delay Setting Enable */ + __IOM uint32_t SPB : 5; /*!< [20..16] SPI Data Length */ + uint32_t : 3; + __IOM uint32_t SSLA : 2; /*!< [25..24] SSL Signal Assertion */ + uint32_t : 6; + } SPCMD_b[8]; + }; + __IM uint32_t RESERVED1[3]; + + union + { + __IOM uint16_t SPDCR; /*!< (@ 0x00000040) SPI Data Control Register */ + + struct + { + __IOM uint16_t BYSW : 1; /*!< [0..0] Byte Swap Operating Mode Select */ + __IOM uint16_t SLSEL : 2; /*!< [2..1] SSL Pin Output Select */ + __IOM uint16_t SPRDTD : 1; /*!< [3..3] SPI Receive Data or Transmit Data Selection */ + __IOM uint16_t SINV : 1; /*!< [4..4] Serial data invert */ + uint16_t : 3; + __IOM uint16_t SPFC : 2; /*!< [9..8] Frame Count */ + uint16_t : 6; + } SPDCR_b; + }; + __IM uint16_t RESERVED2; + + union + { + __IOM uint16_t SPDCR2; /*!< (@ 0x00000044) SPI Data Control Register 2 */ + + struct + { + __IOM uint16_t RTRG : 2; /*!< [1..0] Receive FIFO threshold setting */ + uint16_t : 6; + __IOM uint16_t TTRG : 2; /*!< [9..8] Transmission FIFO threshold setting */ + uint16_t : 6; + } SPDCR2_b; + }; + __IM uint16_t RESERVED3; + __IM uint32_t RESERVED4[2]; + __IM uint8_t RESERVED5; + + union + { + __IM uint8_t SPSSR; /*!< (@ 0x00000051) SPI Sequence Status Register */ + + struct + { + __IM uint8_t SPCP : 3; /*!< [2..0] SPI Command Pointer */ + uint8_t : 1; + __IM uint8_t SPECM : 3; /*!< [6..4] SPI Error Command */ + uint8_t : 1; + } SPSSR_b; + }; + + union + { + __IM uint16_t SPSR; /*!< (@ 0x00000052) SPI Status Register */ + + struct + { + uint16_t : 7; + __IM uint16_t SPDRF : 1; /*!< [7..7] SPI Receive Data Ready Flag */ + __IM uint16_t OVRF : 1; /*!< [8..8] Overrun Error Flag */ + __IM uint16_t IDLNF : 1; /*!< [9..9] SPI Idle Flag */ + __IM uint16_t MODF : 1; /*!< [10..10] Mode Fault Error Flag */ + __IM uint16_t PERF : 1; /*!< [11..11] Parity Error Flag */ + __IM uint16_t UDRF : 1; /*!< [12..12] Underrun Error Flag */ + __IM uint16_t SPTEF : 1; /*!< [13..13] SPI Transmit Buffer Empty Flag */ + __IM uint16_t CENDF : 1; /*!< [14..14] Communication End Flag */ + __IM uint16_t SPRF : 1; /*!< [15..15] SPI Receive Buffer Full Flag */ + } SPSR_b; + }; + __IM uint32_t RESERVED6; + + union + { + __IM uint8_t SPTFSR; /*!< (@ 0x00000058) SPI Transfer FIFO Status Register */ + + struct + { + __IM uint8_t TFDN : 3; /*!< [2..0] Transmit FIFO data empty stage number */ + uint8_t : 5; + } SPTFSR_b; + }; + __IM uint8_t RESERVED7; + __IM uint16_t RESERVED8; + + union + { + __IM uint8_t SPRFSR; /*!< (@ 0x0000005C) SPI Receive FIFO Status Register */ + + struct + { + __IM uint8_t RFDN : 3; /*!< [2..0] Receive FIFO data store stage number */ + uint8_t : 5; + } SPRFSR_b; + }; + __IM uint8_t RESERVED9; + __IM uint16_t RESERVED10; + + union + { + __IM uint32_t SPPSR; /*!< (@ 0x00000060) SPI Poling Register */ + + struct + { + __IM uint32_t SPEPS : 1; /*!< [0..0] SPI Polling Status */ + uint32_t : 31; + } SPPSR_b; + }; + __IM uint32_t RESERVED11; + __IM uint16_t RESERVED12; + + union + { + __IOM uint16_t SPSRC; /*!< (@ 0x0000006A) SPI Status Clear Register */ + + struct + { + uint16_t : 7; + __OM uint16_t SPDRFC : 1; /*!< [7..7] SPI Receive Data Ready Flag Clear */ + __OM uint16_t OVRFC : 1; /*!< [8..8] Overrun Error Flag Clear */ + uint16_t : 1; + __OM uint16_t MODFC : 1; /*!< [10..10] Mode Fault Error Flag Clear */ + __OM uint16_t PERFC : 1; /*!< [11..11] Parity Error Flag Clear */ + __OM uint16_t UDRFC : 1; /*!< [12..12] Underrun Error Flag Clear */ + __OM uint16_t SPTEFC : 1; /*!< [13..13] SPI Transmit Buffer Empty Flag Clear */ + __OM uint16_t CENDFC : 1; /*!< [14..14] Communication End Flag Clear */ + __OM uint16_t SPRFC : 1; /*!< [15..15] SPI Receive Buffer Full Flag Clear */ + } SPSRC_b; + }; + + union + { + __OM uint8_t SPFCR; /*!< (@ 0x0000006C) SPI FIFO Clear Register */ + + struct + { + __OM uint8_t SPFRST : 1; /*!< [0..0] SPI FIFO clear */ + uint8_t : 7; + } SPFCR_b; + }; + __IM uint8_t RESERVED13; + __IM uint16_t RESERVED14; +} R_SPI0_Type; /*!< Size = 112 (0x70) */ + +/* =========================================================================================================================== */ +/* ================ R_CRC0 ================ */ +/* =========================================================================================================================== */ + +/** + * @brief CRC Unit 0 (R_CRC0) + */ + +typedef struct /*!< (@ 0x80004000) R_CRC0 Structure */ +{ + union + { + __IOM uint8_t CRCCR0; /*!< (@ 0x00000000) CRC Control Register 0 */ + + struct + { + __IOM uint8_t GPS : 3; /*!< [2..0] CRC Generating Polynomial Switching */ + uint8_t : 3; + __IOM uint8_t LMS : 1; /*!< [6..6] CRC Calculation Switching */ + __OM uint8_t DORCLR : 1; /*!< [7..7] CRCDOR Register Clear */ + } CRCCR0_b; + }; + __IM uint8_t RESERVED; + __IM uint16_t RESERVED1; + + union + { + __IOM uint32_t CRCDIR; /*!< (@ 0x00000004) CRC Data Input Register */ + __IOM uint8_t CRCDIR_BY; /*!< (@ 0x00000004) CRC Data Input Register */ + }; + + union + { + __IOM uint32_t CRCDOR; /*!< (@ 0x00000008) CRC Data Output Register */ + __IOM uint16_t CRCDOR_HA; /*!< (@ 0x00000008) CRC Data Output Register */ + __IOM uint8_t CRCDOR_BY; /*!< (@ 0x00000008) CRC Data Output Register */ + }; +} R_CRC0_Type; /*!< Size = 12 (0xc) */ + +/* =========================================================================================================================== */ +/* ================ R_CANFD ================ */ +/* =========================================================================================================================== */ + +/** + * @brief CAN-FD (R_CANFD) + */ + +typedef struct /*!< (@ 0x80020000) R_CANFD Structure */ +{ + __IOM R_CANFD_CFDC_Type CFDC[2]; /*!< (@ 0x00000000) CANFD Channel [0..1] Registers */ + __IM uint32_t RESERVED[24]; + + union + { + __IM uint32_t CFDGIPV; /*!< (@ 0x00000080) Global IP Version Register */ + + struct + { + __IM uint32_t IPV : 8; /*!< [7..0] IP Version */ + __IM uint32_t IPT : 2; /*!< [9..8] IP Type */ + uint32_t : 6; + __IM uint32_t PSI : 14; /*!< [29..16] Parameter Status Information */ + uint32_t : 2; + } CFDGIPV_b; + }; + + union + { + __IOM uint32_t CFDGCFG; /*!< (@ 0x00000084) Global Configuration Register */ + + struct + { + __IOM uint32_t TPRI : 1; /*!< [0..0] Transmission Priority */ + __IOM uint32_t DCE : 1; /*!< [1..1] DLC Check Enable */ + __IOM uint32_t DRE : 1; /*!< [2..2] DLC Replacement Enable */ + __IOM uint32_t MME : 1; /*!< [3..3] Mirror Mode Enable */ + __IOM uint32_t DCS : 1; /*!< [4..4] Data Link Controller Clock Select */ + __IOM uint32_t CMPOC : 1; /*!< [5..5] CAN-FD Message Payload Overflow Configuration */ + uint32_t : 2; + __IOM uint32_t TSP : 4; /*!< [11..8] Timestamp Prescaler */ + __IOM uint32_t TSSS : 1; /*!< [12..12] Timestamp Source Select */ + __IOM uint32_t TSBTCS : 3; /*!< [15..13] Timestamp Bit Time Channel Select */ + __IOM uint32_t ITRCP : 16; /*!< [31..16] Interval Timer Reference Clock Prescaler */ + } CFDGCFG_b; + }; + + union + { + __IOM uint32_t CFDGCTR; /*!< (@ 0x00000088) Global Control Register */ + + struct + { + __IOM uint32_t GMDC : 2; /*!< [1..0] Global Mode Control */ + __IOM uint32_t GSLPR : 1; /*!< [2..2] Global Sleep Request */ + uint32_t : 5; + __IOM uint32_t DEIE : 1; /*!< [8..8] DLC Check Interrupt Enable */ + __IOM uint32_t MEIE : 1; /*!< [9..9] Message Lost Error Interrupt Enable */ + __IOM uint32_t THLEIE : 1; /*!< [10..10] TX History List Entry Lost Interrupt Enable */ + __IOM uint32_t CMPOFIE : 1; /*!< [11..11] CAN-FD Message Payload Overflow Flag Interrupt Enable */ + __IOM uint32_t QOWEIE : 1; /*!< [12..12] TXQ Message Overwrite Error Interrupt Enable */ + uint32_t : 1; + __IOM uint32_t QMEIE : 1; /*!< [14..14] TXQ Message Lost Error Interrupt Enable */ + __IOM uint32_t MOWEIE : 1; /*!< [15..15] Message Lost Error Interrupt Enable */ + __IOM uint32_t TSRST : 1; /*!< [16..16] Timestamp Reset */ + uint32_t : 15; + } CFDGCTR_b; + }; + + union + { + __IM uint32_t CFDGSTS; /*!< (@ 0x0000008C) Global Status Register */ + + struct + { + __IM uint32_t GRSTSTS : 1; /*!< [0..0] Global Reset Status */ + __IM uint32_t GHLTSTS : 1; /*!< [1..1] Global Halt Status */ + __IM uint32_t GSLPSTS : 1; /*!< [2..2] Global Sleep Status */ + __IM uint32_t GRAMINIT : 1; /*!< [3..3] Global RAM Initialization */ + uint32_t : 28; + } CFDGSTS_b; + }; + + union + { + __IOM uint32_t CFDGERFL; /*!< (@ 0x00000090) Global Error Flag Register */ + + struct + { + __IOM uint32_t DEF : 1; /*!< [0..0] DLC Error Flag */ + __IM uint32_t MES : 1; /*!< [1..1] Message Lost Error Status */ + __IM uint32_t THLES : 1; /*!< [2..2] TX History List Entry Lost Error Status */ + __IOM uint32_t CMPOF : 1; /*!< [3..3] CAN-FD Message Payload Overflow Flag */ + __IM uint32_t QOWES : 1; /*!< [4..4] TXQ Message Overwrite Error Status */ + uint32_t : 1; + __IM uint32_t QMES : 1; /*!< [6..6] TXQ Message Lost Error Status */ + __IM uint32_t MOWES : 1; /*!< [7..7] Message Overwrite Error Status */ + uint32_t : 8; + __IOM uint32_t EEF0 : 1; /*!< [16..16] ECC Error Flag for Channel 0 */ + __IOM uint32_t EEF1 : 1; /*!< [17..17] ECC Error Flag for Channel 1 */ + uint32_t : 14; + } CFDGERFL_b; + }; + + union + { + __IM uint32_t CFDGTSC; /*!< (@ 0x00000094) Global Timestamp Counter Register */ + + struct + { + __IM uint32_t TS : 16; /*!< [15..0] Timestamp value */ + uint32_t : 16; + } CFDGTSC_b; + }; + + union + { + __IOM uint32_t CFDGAFLECTR; /*!< (@ 0x00000098) Global Acceptance Filter List Entry Control Register */ + + struct + { + __IOM uint32_t AFLPN : 4; /*!< [3..0] Acceptance Filter List Page Number */ + uint32_t : 4; + __IOM uint32_t AFLDAE : 1; /*!< [8..8] Acceptance Filter List Data Access Enable */ + uint32_t : 23; + } CFDGAFLECTR_b; + }; + + union + { + __IOM uint32_t CFDGAFLCFG0; /*!< (@ 0x0000009C) Global Acceptance Filter List Configuration Register + * 0 */ + + struct + { + __IOM uint32_t RNC1 : 9; /*!< [8..0] Rule Number for Channel 1 */ + uint32_t : 7; + __IOM uint32_t RNC0 : 9; /*!< [24..16] Rule Number for Channel 0 */ + uint32_t : 7; + } CFDGAFLCFG0_b; + }; + __IM uint32_t RESERVED1[3]; + + union + { + __IOM uint32_t CFDRMNB; /*!< (@ 0x000000AC) RX Message Buffer Number Register */ + + struct + { + __IOM uint32_t NRXMB : 8; /*!< [7..0] Number of RX Message Buffers */ + __IOM uint32_t RMPLS : 3; /*!< [10..8] Reception Message Buffer Payload Data Size */ + uint32_t : 21; + } CFDRMNB_b; + }; + + union + { + __IOM uint32_t CFDRMND0; /*!< (@ 0x000000B0) RX Message Buffer New Data Register 0 */ + + struct + { + __IOM uint32_t RMNS : 32; /*!< [31..0] RX Message Buffer New Data Status */ + } CFDRMND0_b; + }; + __IM uint32_t RESERVED2[3]; + + union + { + __IOM uint32_t CFDRFCC[8]; /*!< (@ 0x000000C0) RX FIFO Configuration/Control Register [0..7] */ + + struct + { + __IOM uint32_t RFE : 1; /*!< [0..0] RX FIFO Enable */ + __IOM uint32_t RFIE : 1; /*!< [1..1] RX FIFO Interrupt Enable */ + uint32_t : 2; + __IOM uint32_t RFPLS : 3; /*!< [6..4] Rx FIFO Payload Data Size Configuration */ + uint32_t : 1; + __IOM uint32_t RFDC : 3; /*!< [10..8] RX FIFO Depth Configuration */ + uint32_t : 1; + __IOM uint32_t RFIM : 1; /*!< [12..12] RX FIFO Interrupt Mode */ + __IOM uint32_t RFIGCV : 3; /*!< [15..13] RX FIFO Interrupt Generation Counter Value */ + __IOM uint32_t RFFIE : 1; /*!< [16..16] RX FIFO Full Interrupt Enable */ + uint32_t : 15; + } CFDRFCC_b[8]; + }; + + union + { + __IOM uint32_t CFDRFSTS[8]; /*!< (@ 0x000000E0) RX FIFO Status Register [0..7] */ + + struct + { + __IM uint32_t RFEMP : 1; /*!< [0..0] RX FIFO Empty */ + __IM uint32_t RFFLL : 1; /*!< [1..1] RX FIFO Full */ + __IOM uint32_t RFMLT : 1; /*!< [2..2] RX FIFO Message Lost */ + __IOM uint32_t RFIF : 1; /*!< [3..3] RX FIFO Interrupt Flag */ + uint32_t : 4; + __IM uint32_t RFMC : 8; /*!< [15..8] RX FIFO Message Count */ + __IOM uint32_t RFFIF : 1; /*!< [16..16] RX FIFO Full Interrupt Flag */ + uint32_t : 15; + } CFDRFSTS_b[8]; + }; + + union + { + __IOM uint32_t CFDRFPCTR[8]; /*!< (@ 0x00000100) RX FIFO Pointer Control Register [0..7] */ + + struct + { + __IOM uint32_t RFPC : 8; /*!< [7..0] RX FIFO Pointer Control */ + uint32_t : 24; + } CFDRFPCTR_b[8]; + }; + + union + { + __IOM uint32_t CFDCFCC[6]; /*!< (@ 0x00000120) Common FIFO Configuration/Control Register [0..5] */ + + struct + { + __IOM uint32_t CFE : 1; /*!< [0..0] Common FIFO Enable */ + __IOM uint32_t CFRXIE : 1; /*!< [1..1] Common FIFO RX Interrupt Enable */ + __IOM uint32_t CFTXIE : 1; /*!< [2..2] Common FIFO TX Interrupt Enable */ + uint32_t : 1; + __IOM uint32_t CFPLS : 3; /*!< [6..4] Common FIFO Payload Data Size Configuration */ + uint32_t : 1; + __IOM uint32_t CFM : 2; /*!< [9..8] Common FIFO Mode */ + __IOM uint32_t CFITSS : 1; /*!< [10..10] Common FIFO Interval Timer Source Select */ + __IOM uint32_t CFITR : 1; /*!< [11..11] Common FIFO Interval Timer Resolution */ + __IOM uint32_t CFIM : 1; /*!< [12..12] Common FIFO Interrupt Mode */ + __IOM uint32_t CFIGCV : 3; /*!< [15..13] Common FIFO Interrupt Generation Counter Value */ + __IOM uint32_t CFTML : 5; /*!< [20..16] Common FIFO TX Message Buffer Link */ + __IOM uint32_t CFDC : 3; /*!< [23..21] Common FIFO Depth Configuration */ + __IOM uint32_t CFITT : 8; /*!< [31..24] Common FIFO Interval Transmission Time */ + } CFDCFCC_b[6]; + }; + __IM uint32_t RESERVED3[18]; + + union + { + __IOM uint32_t CFDCFCCE[6]; /*!< (@ 0x00000180) Common FIFO Configuration/Control Enhancement + * Register [0..5] */ + + struct + { + __IOM uint32_t CFFIE : 1; /*!< [0..0] Common FIFO Full Interrupt Enable */ + __IOM uint32_t CFOFRXIE : 1; /*!< [1..1] Common FIFO One Frame Reception Interrupt Enable */ + __IOM uint32_t CFOFTXIE : 1; /*!< [2..2] Common FIFO One Frame Transmission Interrupt Enable */ + uint32_t : 5; + __IOM uint32_t CFMOWM : 1; /*!< [8..8] Common FIFO Message Overwrite Mode */ + uint32_t : 7; + __IOM uint32_t CFBME : 1; /*!< [16..16] Common FIFO Buffering Mode Enable */ + uint32_t : 15; + } CFDCFCCE_b[6]; + }; + __IM uint32_t RESERVED4[18]; + + union + { + __IOM uint32_t CFDCFSTS[6]; /*!< (@ 0x000001E0) Common FIFO Status Register [0..5] */ + + struct + { + __IM uint32_t CFEMP : 1; /*!< [0..0] Common FIFO Empty */ + __IM uint32_t CFFLL : 1; /*!< [1..1] Common FIFO Full */ + __IOM uint32_t CFMLT : 1; /*!< [2..2] Common FIFO Message Lost */ + __IOM uint32_t CFRXIF : 1; /*!< [3..3] Common RX FIFO Interrupt Flag */ + __IOM uint32_t CFTXIF : 1; /*!< [4..4] Common TX FIFO Interrupt Flag */ + uint32_t : 3; + __IM uint32_t CFMC : 8; /*!< [15..8] Common FIFO Message Count */ + __IOM uint32_t CFFIF : 1; /*!< [16..16] Common FIFO Full Interrupt Flag */ + __IOM uint32_t CFOFRXIF : 1; /*!< [17..17] Common FIFO One Frame Reception Interrupt Flag */ + __IOM uint32_t CFOFTXIF : 1; /*!< [18..18] Common FIFO One Frame Transmission Interrupt Flag */ + uint32_t : 5; + __IOM uint32_t CFMOW : 1; /*!< [24..24] Common FIFO Message Overwrite */ + uint32_t : 7; + } CFDCFSTS_b[6]; + }; + __IM uint32_t RESERVED5[18]; + + union + { + __OM uint32_t CFDCFPCTR[6]; /*!< (@ 0x00000240) Common FIFO Pointer Control Register [0..5] */ + + struct + { + __OM uint32_t CFPC : 8; /*!< [7..0] Common FIFO Pointer Control */ + uint32_t : 24; + } CFDCFPCTR_b[6]; + }; + __IM uint32_t RESERVED6[18]; + + union + { + __IM uint32_t CFDFESTS; /*!< (@ 0x000002A0) FIFO Empty Status Register */ + + struct + { + __IM uint32_t RFXEMP : 8; /*!< [7..0] RX FIFO Empty Status */ + __IM uint32_t CFXEMP : 6; /*!< [13..8] Common FIFO Empty Status */ + uint32_t : 18; + } CFDFESTS_b; + }; + + union + { + __IM uint32_t CFDFFSTS; /*!< (@ 0x000002A4) FIFO Full Status Register */ + + struct + { + __IM uint32_t RFXFLL : 8; /*!< [7..0] RX FIFO Full Status */ + __IM uint32_t CFXFLL : 6; /*!< [13..8] Common FIFO Full Status */ + uint32_t : 18; + } CFDFFSTS_b; + }; + + union + { + __IM uint32_t CFDFMSTS; /*!< (@ 0x000002A8) FIFO Message Lost Status Register */ + + struct + { + __IM uint32_t RFXMLT : 8; /*!< [7..0] RX FIFO Message Lost Status */ + __IM uint32_t CFXMLT : 6; /*!< [13..8] Common FIFO Message Lost Status */ + uint32_t : 18; + } CFDFMSTS_b; + }; + + union + { + __IM uint32_t CFDRFISTS; /*!< (@ 0x000002AC) RX FIFO Interrupt Flag Status Register */ + + struct + { + __IM uint32_t RFXIF : 8; /*!< [7..0] RX FIFO[x] Interrupt Flag Status */ + uint32_t : 8; + __IM uint32_t RFXFFLL : 8; /*!< [23..16] RX FIFO[x] Interrupt Full Flag Status */ + uint32_t : 8; + } CFDRFISTS_b; + }; + + union + { + __IM uint32_t CFDCFRISTS; /*!< (@ 0x000002B0) Common FIFO RX Interrupt Flag Status Register */ + + struct + { + __IM uint32_t CFXRXIF : 6; /*!< [5..0] Common FIFO RX Interrupt Flag Status */ + uint32_t : 26; + } CFDCFRISTS_b; + }; + + union + { + __IM uint32_t CFDCFTISTS; /*!< (@ 0x000002B4) Common FIFO TX Interrupt Flag Status Register */ + + struct + { + __IM uint32_t CFXTXIF : 6; /*!< [5..0] Common FIFO TX Interrupt Flag Status */ + uint32_t : 26; + } CFDCFTISTS_b; + }; + + union + { + __IM uint32_t CFDCFOFRISTS; /*!< (@ 0x000002B8) Common FIFO One Frame RX Interrupt Flag Status + * Register */ + + struct + { + __IM uint32_t CFXOFRXIF : 6; /*!< [5..0] Common FIFO One Frame RX Interrupt Flag Status */ + uint32_t : 26; + } CFDCFOFRISTS_b; + }; + + union + { + __IM uint32_t CFDCFOFTISTS; /*!< (@ 0x000002BC) Common FIFO One Frame TX Interrupt Flag Status + * Register */ + + struct + { + __IM uint32_t CFXOFTXIF : 6; /*!< [5..0] Common FIFO One Frame TX Interrupt Flag Status */ + uint32_t : 26; + } CFDCFOFTISTS_b; + }; + + union + { + __IM uint32_t CFDCFMOWSTS; /*!< (@ 0x000002C0) Common FIFO Message Overwrite Status Register */ + + struct + { + __IM uint32_t CFXMOW : 6; /*!< [5..0] Common FIFO Massage Overwrite Status */ + uint32_t : 26; + } CFDCFMOWSTS_b; + }; + + union + { + __IM uint32_t CFDFFFSTS; /*!< (@ 0x000002C4) FIFO FDC Full Status Register */ + + struct + { + __IM uint32_t RFXFFLL : 8; /*!< [7..0] RX FIFO FDC Level Full Status */ + __IM uint32_t CFXFFLL : 6; /*!< [13..8] COMMON FIFO FDC Level Full Status */ + uint32_t : 18; + } CFDFFFSTS_b; + }; + __IM uint32_t RESERVED7[2]; + + union + { + __IOM uint8_t CFDTMC[128]; /*!< (@ 0x000002D0) TX Message Buffer Control Register [0..127] */ + + struct + { + __IOM uint8_t TMTR : 1; /*!< [0..0] TX Message Buffer Transmission Request */ + __IOM uint8_t TMTAR : 1; /*!< [1..1] TX Message Buffer Transmission Abort Request */ + __IOM uint8_t TMOM : 1; /*!< [2..2] TX Message Buffer One-shot Mode */ + uint8_t : 5; + } CFDTMC_b[128]; + }; + __IM uint32_t RESERVED8[288]; + + union + { + __IOM uint8_t CFDTMSTS[128]; /*!< (@ 0x000007D0) TX Message Buffer Status Register [0..127] */ + + struct + { + __IM uint8_t TMTSTS : 1; /*!< [0..0] TX Message Buffer Transmission Status */ + __IOM uint8_t TMTRF : 2; /*!< [2..1] TX Message Buffer Transmission Result Flag */ + __IM uint8_t TMTRM : 1; /*!< [3..3] TX Message Buffer Transmission Request Mirrored */ + __IM uint8_t TMTARM : 1; /*!< [4..4] TX Message Buffer Transmission Abort Request Mirrored */ + uint8_t : 3; + } CFDTMSTS_b[128]; + }; + __IM uint32_t RESERVED9[288]; + + union + { + __IM uint32_t CFDTMTRSTS[4]; /*!< (@ 0x00000CD0) TX Message Buffer Transmission Request Status + * Register [0..3] */ + + struct + { + __IM uint32_t TMTRSTS : 16; /*!< [15..0] TX Message Buffer Transmission Request Status */ + uint32_t : 16; + } CFDTMTRSTS_b[4]; + }; + __IM uint32_t RESERVED10[36]; + + union + { + __IM uint32_t CFDTMTARSTS[4]; /*!< (@ 0x00000D70) TX Message Buffer Transmission Abort Request + * Status Register [0..3] */ + + struct + { + __IM uint32_t TMTARSTS : 16; /*!< [15..0] TX Message Buffer Transmission Abort Request Status */ + uint32_t : 16; + } CFDTMTARSTS_b[4]; + }; + __IM uint32_t RESERVED11[36]; + + union + { + __IM uint32_t CFDTMTCSTS[4]; /*!< (@ 0x00000E10) TX Message Buffer Transmission Completion Status + * Register [0..3] */ + + struct + { + __IM uint32_t TMTCSTS : 16; /*!< [15..0] TX Message Buffer Transmission Completion Status */ + uint32_t : 16; + } CFDTMTCSTS_b[4]; + }; + __IM uint32_t RESERVED12[36]; + + union + { + __IM uint32_t CFDTMTASTS[4]; /*!< (@ 0x00000EB0) TX Message Buffer Transmission Abort Status Register + * [0..3] */ + + struct + { + __IM uint32_t TMTASTS : 16; /*!< [15..0] TX Message Buffer Transmission Abort Status */ + uint32_t : 16; + } CFDTMTASTS_b[4]; + }; + __IM uint32_t RESERVED13[36]; + + union + { + __IOM uint32_t CFDTMIEC[4]; /*!< (@ 0x00000F50) TX Message Buffer Transmission Interrupt Enable + * Register [0..3] */ + + struct + { + __IOM uint32_t TMIE : 16; /*!< [15..0] TX Message Buffer Interrupt Enable */ + uint32_t : 16; + } CFDTMIEC_b[4]; + }; + __IM uint32_t RESERVED14[40]; + + union + { + __IOM uint32_t CFDTXQCC0[2]; /*!< (@ 0x00001000) TX Queue Configuration/Control Register 0[0..1] */ + + struct + { + __IOM uint32_t TXQE : 1; /*!< [0..0] TX Queue Enable */ + __IOM uint32_t TXQGWE : 1; /*!< [1..1] TX Queue Gateway Mode Enable */ + __IOM uint32_t TXQOWE : 1; /*!< [2..2] TX Queue Overwrite Mode Enable */ + uint32_t : 2; + __IOM uint32_t TXQTXIE : 1; /*!< [5..5] TX Queue TX Interrupt Enable */ + uint32_t : 1; + __IOM uint32_t TXQIM : 1; /*!< [7..7] TX Queue Interrupt Mode */ + __IOM uint32_t TXQDC : 5; /*!< [12..8] TX Queue Depth Configuration */ + uint32_t : 3; + __IOM uint32_t TXQFIE : 1; /*!< [16..16] TXQ Full Interrupt Enable */ + __IOM uint32_t TXQOFRXIE : 1; /*!< [17..17] TXQ One Frame Reception Interrupt Enable */ + __IOM uint32_t TXQOFTXIE : 1; /*!< [18..18] TXQ One Frame Transmission Interrupt Enable */ + uint32_t : 13; + } CFDTXQCC0_b[2]; + }; + __IM uint32_t RESERVED15[6]; + + union + { + __IOM uint32_t CFDTXQSTS0[2]; /*!< (@ 0x00001020) TX Queue Status Register 0[0..1] */ + + struct + { + __IM uint32_t TXQEMP : 1; /*!< [0..0] TX Queue Empty */ + __IM uint32_t TXQFLL : 1; /*!< [1..1] TX Queue Full */ + __IOM uint32_t TXQTXIF : 1; /*!< [2..2] TX Queue TX Interrupt Flag */ + uint32_t : 5; + __IM uint32_t TXQMC : 6; /*!< [13..8] TX Queue Message Count */ + uint32_t : 2; + __IOM uint32_t TXQFIF : 1; /*!< [16..16] TXQ Full Interrupt Flag */ + __IOM uint32_t TXQOFRXIF : 1; /*!< [17..17] TXQ One Frame Reception Interrupt Flag */ + __IOM uint32_t TXQOFTXIF : 1; /*!< [18..18] TXQ One Frame Transmission Interrupt Flag */ + __IOM uint32_t TXQMLT : 1; /*!< [19..19] TXQ Message Lost */ + __IOM uint32_t TXQMOW : 1; /*!< [20..20] TXQ Message Overwrite */ + uint32_t : 11; + } CFDTXQSTS0_b[2]; + }; + __IM uint32_t RESERVED16[6]; + + union + { + __OM uint32_t CFDTXQPCTR0[2]; /*!< (@ 0x00001040) TX Queue Pointer Control Register 0[0..1] */ + + struct + { + __OM uint32_t TXQPC : 8; /*!< [7..0] TX Queue Pointer Control */ + uint32_t : 24; + } CFDTXQPCTR0_b[2]; + }; + __IM uint32_t RESERVED17[6]; + + union + { + __IOM uint32_t CFDTXQCC1[2]; /*!< (@ 0x00001060) TX Queue Configuration/Control Register 1[0..1] */ + + struct + { + __IOM uint32_t TXQE : 1; /*!< [0..0] TX Queue Enable */ + __IOM uint32_t TXQGWE : 1; /*!< [1..1] TX Queue Gateway Mode Enable */ + __IOM uint32_t TXQOWE : 1; /*!< [2..2] TX Queue Overwrite Mode Enable */ + uint32_t : 2; + __IOM uint32_t TXQTXIE : 1; /*!< [5..5] TX Queue TX Interrupt Enable */ + uint32_t : 1; + __IOM uint32_t TXQIM : 1; /*!< [7..7] TX Queue Interrupt Mode */ + __IOM uint32_t TXQDC : 5; /*!< [12..8] TX Queue Depth Configuration */ + uint32_t : 3; + __IOM uint32_t TXQFIE : 1; /*!< [16..16] TXQ Full Interrupt Enable */ + __IOM uint32_t TXQOFRXIE : 1; /*!< [17..17] TXQ One Frame Reception Interrupt Enable */ + __IOM uint32_t TXQOFTXIE : 1; /*!< [18..18] TXQ One Frame Transmission Interrupt Enable */ + uint32_t : 13; + } CFDTXQCC1_b[2]; + }; + __IM uint32_t RESERVED18[6]; + + union + { + __IOM uint32_t CFDTXQSTS1[2]; /*!< (@ 0x00001080) TX Queue Status Register 1[0..1] */ + + struct + { + __IM uint32_t TXQEMP : 1; /*!< [0..0] TX Queue Empty */ + __IM uint32_t TXQFLL : 1; /*!< [1..1] TX Queue Full */ + __IOM uint32_t TXQTXIF : 1; /*!< [2..2] TX Queue TX Interrupt Flag */ + uint32_t : 5; + __IM uint32_t TXQMC : 6; /*!< [13..8] TX Queue Message Count */ + uint32_t : 2; + __IOM uint32_t TXQFIF : 1; /*!< [16..16] TXQ Full Interrupt Flag */ + __IOM uint32_t TXQOFRXIF : 1; /*!< [17..17] TXQ One Frame Reception Interrupt Flag */ + __IOM uint32_t TXQOFTXIF : 1; /*!< [18..18] TXQ One Frame Transmission Interrupt Flag */ + __IOM uint32_t TXQMLT : 1; /*!< [19..19] TXQ Message Lost */ + __IOM uint32_t TXQMOW : 1; /*!< [20..20] TXQ Message Overwrite */ + uint32_t : 11; + } CFDTXQSTS1_b[2]; + }; + __IM uint32_t RESERVED19[6]; + + union + { + __OM uint32_t CFDTXQPCTR1[2]; /*!< (@ 0x000010A0) TX Queue Pointer Control Register 1[0..1] */ + + struct + { + __OM uint32_t TXQPC : 8; /*!< [7..0] TX Queue Pointer Control */ + uint32_t : 24; + } CFDTXQPCTR1_b[2]; + }; + __IM uint32_t RESERVED20[6]; + + union + { + __IOM uint32_t CFDTXQCC2[2]; /*!< (@ 0x000010C0) TX Queue Configuration/Control Register 2[0..1] */ + + struct + { + __IOM uint32_t TXQE : 1; /*!< [0..0] TX Queue Enable */ + __IOM uint32_t TXQGWE : 1; /*!< [1..1] TX Queue Gateway Mode Enable */ + __IOM uint32_t TXQOWE : 1; /*!< [2..2] TX Queue Overwrite Mode Enable */ + uint32_t : 2; + __IOM uint32_t TXQTXIE : 1; /*!< [5..5] TX Queue TX Interrupt Enable */ + uint32_t : 1; + __IOM uint32_t TXQIM : 1; /*!< [7..7] TX Queue Interrupt Mode */ + __IOM uint32_t TXQDC : 5; /*!< [12..8] TX Queue Depth Configuration */ + uint32_t : 3; + __IOM uint32_t TXQFIE : 1; /*!< [16..16] TXQ Full Interrupt Enable */ + __IOM uint32_t TXQOFRXIE : 1; /*!< [17..17] TXQ One Frame Reception Interrupt Enable */ + __IOM uint32_t TXQOFTXIE : 1; /*!< [18..18] TXQ One Frame Transmission Interrupt Enable */ + uint32_t : 13; + } CFDTXQCC2_b[2]; + }; + __IM uint32_t RESERVED21[6]; + + union + { + __IOM uint32_t CFDTXQSTS2[2]; /*!< (@ 0x000010E0) TX Queue Status Register 2[0..1] */ + + struct + { + __IM uint32_t TXQEMP : 1; /*!< [0..0] TX Queue Empty */ + __IM uint32_t TXQFLL : 1; /*!< [1..1] TX Queue Full */ + __IOM uint32_t TXQTXIF : 1; /*!< [2..2] TX Queue TX Interrupt Flag */ + uint32_t : 5; + __IM uint32_t TXQMC : 6; /*!< [13..8] TX Queue Message Count */ + uint32_t : 2; + __IOM uint32_t TXQFIF : 1; /*!< [16..16] TXQ Full Interrupt Flag */ + __IOM uint32_t TXQOFRXIF : 1; /*!< [17..17] TXQ One Frame Reception Interrupt Flag */ + __IOM uint32_t TXQOFTXIF : 1; /*!< [18..18] TXQ One Frame Transmission Interrupt Flag */ + __IOM uint32_t TXQMLT : 1; /*!< [19..19] TXQ Message Lost */ + __IOM uint32_t TXQMOW : 1; /*!< [20..20] TXQ Message Overwrite */ + uint32_t : 11; + } CFDTXQSTS2_b[2]; + }; + __IM uint32_t RESERVED22[6]; + + union + { + __OM uint32_t CFDTXQPCTR2[2]; /*!< (@ 0x00001100) TX Queue Pointer Control Register 2[0..1] */ + + struct + { + __OM uint32_t TXQPC : 8; /*!< [7..0] TX Queue Pointer Control */ + uint32_t : 24; + } CFDTXQPCTR2_b[2]; + }; + __IM uint32_t RESERVED23[6]; + + union + { + __IOM uint32_t CFDTXQCC3[2]; /*!< (@ 0x00001120) TX Queue Configuration/Control Register 3[0..1] */ + + struct + { + __IOM uint32_t TXQE : 1; /*!< [0..0] TX Queue Enable */ + uint32_t : 1; + __IOM uint32_t TXQOWE : 1; /*!< [2..2] TX Queue Overwrite Mode Enable */ + uint32_t : 2; + __IOM uint32_t TXQTXIE : 1; /*!< [5..5] TX Queue TX Interrupt Enable */ + uint32_t : 1; + __IOM uint32_t TXQIM : 1; /*!< [7..7] TX Queue Interrupt Mode */ + __IOM uint32_t TXQDC : 5; /*!< [12..8] TX Queue Depth Configuration */ + uint32_t : 5; + __IOM uint32_t TXQOFTXIE : 1; /*!< [18..18] TXQ One Frame Transmission Interrupt Enable */ + uint32_t : 13; + } CFDTXQCC3_b[2]; + }; + __IM uint32_t RESERVED24[6]; + + union + { + __IOM uint32_t CFDTXQSTS3[2]; /*!< (@ 0x00001140) TX Queue Status Register 3[0..1] */ + + struct + { + __IM uint32_t TXQEMP : 1; /*!< [0..0] TX Queue Empty */ + __IM uint32_t TXQFLL : 1; /*!< [1..1] TX Queue Full */ + __IOM uint32_t TXQTXIF : 1; /*!< [2..2] TX Queue TX Interrupt Flag */ + uint32_t : 5; + __IM uint32_t TXQMC : 6; /*!< [13..8] TX Queue Message Count */ + uint32_t : 4; + __IOM uint32_t TXQOFTXIF : 1; /*!< [18..18] TXQ One Frame Transmission Interrupt Flag */ + uint32_t : 1; + __IOM uint32_t TXQMOW : 1; /*!< [20..20] TXQ Message Overwrite */ + uint32_t : 11; + } CFDTXQSTS3_b[2]; + }; + __IM uint32_t RESERVED25[6]; + + union + { + __OM uint32_t CFDTXQPCTR3[2]; /*!< (@ 0x00001160) TX Queue Pointer Control Register 3[0..1] */ + + struct + { + __OM uint32_t TXQPC : 8; /*!< [7..0] TX Queue Pointer Control */ + uint32_t : 24; + } CFDTXQPCTR3_b[2]; + }; + __IM uint32_t RESERVED26[6]; + + union + { + __IM uint32_t CFDTXQESTS; /*!< (@ 0x00001180) TX Queue Empty Status Register */ + + struct + { + __IM uint32_t TXQxEMP : 8; /*!< [7..0] TXQ Empty Status */ + uint32_t : 24; + } CFDTXQESTS_b; + }; + + union + { + __IM uint32_t CFDTXQFISTS; /*!< (@ 0x00001184) TX Queue Full Interrupt Status Register */ + + struct + { + __IM uint32_t TXQ0FULL : 3; /*!< [2..0] TXQ Full Interrupt Status Flag for Channel 0 */ + uint32_t : 1; + __IM uint32_t TXQ1FULL : 3; /*!< [6..4] TXQ Full Interrupt Status Flag for Channel 1 */ + uint32_t : 25; + } CFDTXQFISTS_b; + }; + + union + { + __IM uint32_t CFDTXQMSTS; /*!< (@ 0x00001188) TX Queue Message Lost Status Register */ + + struct + { + __IM uint32_t TXQ0ML : 3; /*!< [2..0] TXQ Message Lost Status Flag for Channel 0 */ + uint32_t : 1; + __IM uint32_t TXQ1ML : 3; /*!< [6..4] TXQ Message Lost Status Flag for Channel 1 */ + uint32_t : 25; + } CFDTXQMSTS_b; + }; + __IM uint32_t RESERVED27; + + union + { + __IM uint32_t CFDTXQISTS; /*!< (@ 0x00001190) TX Queue Interrupt Status Register */ + + struct + { + __IM uint32_t TXQ0ISF : 4; /*!< [3..0] TXQ Interrupt Status Flag for Channel 0 */ + __IM uint32_t TXQ1ISF : 4; /*!< [7..4] TXQ Interrupt Status Flag for Channel 1 */ + uint32_t : 24; + } CFDTXQISTS_b; + }; + + union + { + __IM uint32_t CFDTXQOFTISTS; /*!< (@ 0x00001194) TX Queue One Frame TX Interrupt Status Register */ + + struct + { + __IM uint32_t TXQ0OFTISF : 4; /*!< [3..0] TXQ One Frame TX Interrupt Status Flag for Channel 0 */ + __IM uint32_t TXQ1OFTISF : 4; /*!< [7..4] TXQ One Frame TX Interrupt Status Flag for Channel 1 */ + uint32_t : 24; + } CFDTXQOFTISTS_b; + }; + + union + { + __IM uint32_t CFDTXQOFRISTS; /*!< (@ 0x00001198) TX Queue One Frame RX Interrupt Status Register */ + + struct + { + __IM uint32_t TXQ0OFRISF : 3; /*!< [2..0] TXQ One Frame RX Interrupt Status Flag for Channel 0 */ + uint32_t : 1; + __IM uint32_t TXQ1OFRISF : 3; /*!< [6..4] TXQ One Frame RX Interrupt Status Flag for Channel 1 */ + uint32_t : 25; + } CFDTXQOFRISTS_b; + }; + + union + { + __IM uint32_t CFDTXQFSTS; /*!< (@ 0x0000119C) TX Queue Full Status Register */ + + struct + { + __IM uint32_t TXQ0FSF : 4; /*!< [3..0] TXQ Full Status Flag for Channel 0 */ + __IM uint32_t TXQ1FSF : 4; /*!< [7..4] TXQ Full Status Flag for Channel 1 */ + uint32_t : 24; + } CFDTXQFSTS_b; + }; + __IM uint32_t RESERVED28[24]; + + union + { + __IOM uint32_t CFDTHLCC[2]; /*!< (@ 0x00001200) TX History List Configuration/Control Register + * [0..1] */ + + struct + { + __IOM uint32_t THLE : 1; /*!< [0..0] TX History List Enable */ + uint32_t : 7; + __IOM uint32_t THLIE : 1; /*!< [8..8] TX History List Interrupt Enable */ + __IOM uint32_t THLIM : 1; /*!< [9..9] TX History List Interrupt Mode */ + __IOM uint32_t THLDTE : 1; /*!< [10..10] TX History List Dedicated TX Enable */ + __IOM uint32_t THLDGE : 1; /*!< [11..11] TX History List Dedicated Gateway Enable */ + uint32_t : 20; + } CFDTHLCC_b[2]; + }; + __IM uint32_t RESERVED29[6]; + + union + { + __IOM uint32_t CFDTHLSTS[2]; /*!< (@ 0x00001220) TX History List Status Register [0..1] */ + + struct + { + __IM uint32_t THLEMP : 1; /*!< [0..0] TX History List Empty */ + __IM uint32_t THLFLL : 1; /*!< [1..1] TX History List Full */ + __IOM uint32_t THLELT : 1; /*!< [2..2] TX History List Entry Lost */ + __IOM uint32_t THLIF : 1; /*!< [3..3] TX History List Interrupt Flag */ + uint32_t : 4; + __IM uint32_t THLMC : 6; /*!< [13..8] TX History List Message Count */ + uint32_t : 18; + } CFDTHLSTS_b[2]; + }; + __IM uint32_t RESERVED30[6]; + + union + { + __OM uint32_t CFDTHLPCTR[2]; /*!< (@ 0x00001240) TX History List Pointer Control Register [0..1] */ + + struct + { + __OM uint32_t THLPC : 8; /*!< [7..0] TX History List Pointer Control */ + uint32_t : 24; + } CFDTHLPCTR_b[2]; + }; + __IM uint32_t RESERVED31[46]; + + union + { + __IM uint32_t CFDGTINTSTS0; /*!< (@ 0x00001300) Global TX Interrupt Status Register 0 */ + + struct + { + __IM uint32_t TSIF0 : 1; /*!< [0..0] TX Successful Interrupt Flag Channel 0 */ + __IM uint32_t TAIF0 : 1; /*!< [1..1] TX Abort Interrupt Flag Channel 0 */ + __IM uint32_t TQIF0 : 1; /*!< [2..2] TX Queue Interrupt Flag Channel 0 */ + __IM uint32_t CFTIF0 : 1; /*!< [3..3] COM FIFO TX/GW Mode Interrupt Flag Channel 0 */ + __IM uint32_t THIF0 : 1; /*!< [4..4] TX History List Interrupt Channel 0 */ + __IM uint32_t TQOFIF0 : 1; /*!< [5..5] TX Queue One Frame Transmission Interrupt Flag Channel + * 0 */ + __IM uint32_t CFOTIF0 : 1; /*!< [6..6] COM FIFO One Frame Transmission Interrupt Flag Channel + * 0 */ + uint32_t : 1; + __IM uint32_t TSIF1 : 1; /*!< [8..8] TX Successful Interrupt Flag Channel 1 */ + __IM uint32_t TAIF1 : 1; /*!< [9..9] TX Abort Interrupt Flag Channel 1 */ + __IM uint32_t TQIF1 : 1; /*!< [10..10] TX Queue Interrupt Flag Channel 1 */ + __IM uint32_t CFTIF1 : 1; /*!< [11..11] COM FIFO TX/GW Mode Interrupt Flag Channel 1 */ + __IM uint32_t THIF1 : 1; /*!< [12..12] TX History List Interrupt Channel 1 */ + __IM uint32_t TQOFIF1 : 1; /*!< [13..13] TX Queue One Frame Transmission Interrupt Flag Channel + * 1 */ + __IM uint32_t CFOTIF1 : 1; /*!< [14..14] COM FIFO One Frame Transmission Interrupt Flag Channel + * 1 */ + uint32_t : 17; + } CFDGTINTSTS0_b; + }; + __IM uint32_t RESERVED32; + + union + { + __IOM uint32_t CFDGTSTCFG; /*!< (@ 0x00001308) Global Test Configuration Register */ + + struct + { + __IOM uint32_t C0ICBCE : 1; /*!< [0..0] Channel 0 Internal CAN Bus Communication Test Mode Enable */ + __IOM uint32_t C1ICBCE : 1; /*!< [1..1] Channel 1 Internal CAN Bus Communication Test Mode Enable */ + uint32_t : 14; + __IOM uint32_t RTMPS : 10; /*!< [25..16] RAM Test Mode Page Select */ + uint32_t : 6; + } CFDGTSTCFG_b; + }; + + union + { + __IOM uint32_t CFDGTSTCTR; /*!< (@ 0x0000130C) Global Test Control Register */ + + struct + { + __IOM uint32_t ICBCTME : 1; /*!< [0..0] Internal CAN Bus Communication Test Mode Enable */ + uint32_t : 1; + __IOM uint32_t RTME : 1; /*!< [2..2] RAM Test Mode Enable */ + uint32_t : 29; + } CFDGTSTCTR_b; + }; + __IM uint32_t RESERVED33; + + union + { + __IOM uint32_t CFDGFDCFG; /*!< (@ 0x00001314) Global FD Configuration Register */ + + struct + { + __IOM uint32_t RPED : 1; /*!< [0..0] RES Bit Protocol Exception Disable */ + uint32_t : 7; + __IOM uint32_t TSCCFG : 2; /*!< [9..8] Timestamp Capture Configuration */ + uint32_t : 22; + } CFDGFDCFG_b; + }; + __IM uint32_t RESERVED34; + + union + { + __OM uint32_t CFDGLOCKK; /*!< (@ 0x0000131C) Global Lock Key Register */ + + struct + { + __OM uint32_t LOCK : 16; /*!< [15..0] Lock Key */ + uint32_t : 16; + } CFDGLOCKK_b; + }; + __IM uint32_t RESERVED35[4]; + + union + { + __IOM uint32_t CFDCDTCT; /*!< (@ 0x00001330) DMA Transfer Control Register */ + + struct + { + __IOM uint32_t RFDMAE0 : 1; /*!< [0..0] DMA Transfer Enable for RX FIFO 0 */ + __IOM uint32_t RFDMAE1 : 1; /*!< [1..1] DMA Transfer Enable for RX FIFO 1 */ + __IOM uint32_t RFDMAE2 : 1; /*!< [2..2] DMA Transfer Enable for RX FIFO 2 */ + __IOM uint32_t RFDMAE3 : 1; /*!< [3..3] DMA Transfer Enable for RX FIFO 3 */ + __IOM uint32_t RFDMAE4 : 1; /*!< [4..4] DMA Transfer Enable for RX FIFO 4 */ + __IOM uint32_t RFDMAE5 : 1; /*!< [5..5] DMA Transfer Enable for RX FIFO 5 */ + __IOM uint32_t RFDMAE6 : 1; /*!< [6..6] DMA Transfer Enable for RX FIFO 6 */ + __IOM uint32_t RFDMAE7 : 1; /*!< [7..7] DMA Transfer Enable for RX FIFO 7 */ + __IOM uint32_t CFDMAE0 : 1; /*!< [8..8] DMA Transfer Enable for Common FIFO 0 of Channel 0 */ + __IOM uint32_t CFDMAE1 : 1; /*!< [9..9] DMA Transfer Enable for Common FIFO 0 of Channel 1 */ + uint32_t : 22; + } CFDCDTCT_b; + }; + + union + { + __IM uint32_t CFDCDTSTS; /*!< (@ 0x00001334) DMA Transfer Status Register */ + + struct + { + __IM uint32_t RFDMASTS0 : 1; /*!< [0..0] DMA Transfer Status for RX FIFO 0 */ + __IM uint32_t RFDMASTS1 : 1; /*!< [1..1] DMA Transfer Status for RX FIFO 1 */ + __IM uint32_t RFDMASTS2 : 1; /*!< [2..2] DMA Transfer Status for RX FIFO 2 */ + __IM uint32_t RFDMASTS3 : 1; /*!< [3..3] DMA Transfer Status for RX FIFO 3 */ + __IM uint32_t RFDMASTS4 : 1; /*!< [4..4] DMA Transfer Status for RX FIFO 4 */ + __IM uint32_t RFDMASTS5 : 1; /*!< [5..5] DMA Transfer Status for RX FIFO 5 */ + __IM uint32_t RFDMASTS6 : 1; /*!< [6..6] DMA Transfer Status for RX FIFO 6 */ + __IM uint32_t RFDMASTS7 : 1; /*!< [7..7] DMA Transfer Status for RX FIFO 7 */ + __IM uint32_t CFDMASTS0 : 1; /*!< [8..8] DMA Transfer Status only for Common FIFO 0 of Channel + * 0 */ + __IM uint32_t CFDMASTS1 : 1; /*!< [9..9] DMA Transfer Status only for Common FIFO 0 of Channel + * 1 */ + uint32_t : 22; + } CFDCDTSTS_b; + }; + __IM uint32_t RESERVED36[2]; + + union + { + __IOM uint32_t CFDCDTTCT; /*!< (@ 0x00001340) DMA TX Transfer Control Register */ + + struct + { + __IOM uint32_t TQ0DMAE0 : 1; /*!< [0..0] DMA TX Transfer Enable for TXQ 0 of Channel 0 */ + __IOM uint32_t TQ0DMAE1 : 1; /*!< [1..1] DMA TX Transfer Enable for TXQ 0 of Channel 1 */ + uint32_t : 6; + __IOM uint32_t TQ3DMAE0 : 1; /*!< [8..8] DMA TX Transfer Enable for TXQ 3 of Channel 0 */ + __IOM uint32_t TQ3DMAE1 : 1; /*!< [9..9] DMA TX Transfer Enable for TXQ 3 of Channel 1 */ + uint32_t : 6; + __IOM uint32_t CFDMAE0 : 1; /*!< [16..16] DMA TX Transfer Enable for Common FIFO 2 of Channel + * 0 */ + __IOM uint32_t CFDMAE1 : 1; /*!< [17..17] DMA TX Transfer Enable for Common FIFO 2 of Channel + * 1 */ + uint32_t : 14; + } CFDCDTTCT_b; + }; + + union + { + __IM uint32_t CFDCDTTSTS; /*!< (@ 0x00001344) DMA TX Transfer Status Register */ + + struct + { + __IM uint32_t TQ0DMASTS0 : 1; /*!< [0..0] DMA TX Transfer Status for TXQ0 of Channel 0 */ + __IM uint32_t TQ0DMASTS1 : 1; /*!< [1..1] DMA TX Transfer Status for TXQ0 of Channel 1 */ + uint32_t : 6; + __IM uint32_t TQ3DMASTS0 : 1; /*!< [8..8] DMA TX Transfer Status for TXQ3 of Channel 0 */ + __IM uint32_t TQ3DMASTS1 : 1; /*!< [9..9] DMA TX Transfer Status for TXQ3 of Channel 1 */ + uint32_t : 6; + __IM uint32_t CFDMASTS0 : 1; /*!< [16..16] DMA TX Transfer Status for Common FIFO 2 of Channel + * 0 */ + __IM uint32_t CFDMASTS1 : 1; /*!< [17..17] DMA TX Transfer Status for Common FIFO 2 of Channel + * 1 */ + uint32_t : 14; + } CFDCDTTSTS_b; + }; + __IM uint32_t RESERVED37[2]; + + union + { + __IM uint32_t CFDGRINTSTS[2]; /*!< (@ 0x00001350) Global RX Interrupt Status Register [0..1] */ + + struct + { + __IM uint32_t QFIF : 3; /*!< [2..0] TXQ Full Interrupt Flag Channel n (n = 0, 1) */ + uint32_t : 1; + __IM uint32_t BQFIF : 2; /*!< [5..4] Borrowed TXQ Full Interrupt Flag Channel n (n = 0, 1) */ + uint32_t : 2; + __IM uint32_t QOFRIF : 3; /*!< [10..8] TXQ One Frame RX Interrupt Flag Channel n (n = 0, 1) */ + uint32_t : 1; + __IM uint32_t BQOFRIF : 2; /*!< [13..12] Borrowed TXQ One Frame RX Interrupt Flag Channel n + * (n = 0, 1) */ + uint32_t : 2; + __IM uint32_t CFRIF : 3; /*!< [18..16] Common FIFO RX Interrupt Flag Channel n (n = 0, 1) */ + uint32_t : 5; + __IM uint32_t CFRFIF : 3; /*!< [26..24] Common FIFO FDC Level Full Interrupt Flag Channel n + * (n = 0, 1) */ + uint32_t : 1; + __IM uint32_t CFOFRIF : 3; /*!< [30..28] Common FIFO One Frame RX Interrupt Flag Channel n (n + * = 0, 1) */ + uint32_t : 1; + } CFDGRINTSTS_b[2]; + }; + __IM uint32_t RESERVED38[10]; + + union + { + __IOM uint32_t CFDGRSTC; /*!< (@ 0x00001380) Global Reset Control Register */ + + struct + { + __IOM uint32_t SRST : 1; /*!< [0..0] Software Reset */ + uint32_t : 7; + __OM uint32_t KEY : 8; /*!< [15..8] Key Code */ + uint32_t : 16; + } CFDGRSTC_b; + }; + + union + { + __IOM uint32_t CFDGFCMC; /*!< (@ 0x00001384) Global Flexible CAN Mode Configuration Register */ + + struct + { + __IOM uint32_t FLXC0 : 1; /*!< [0..0] Flexible CAN Mode between Channel 0 and Channel 1 */ + uint32_t : 31; + } CFDGFCMC_b; + }; + __IM uint32_t RESERVED39; + + union + { + __IOM uint32_t CFDGFTBAC; /*!< (@ 0x0000138C) Global Flexible Transmission Buffer Assignment + * Configuration Register */ + + struct + { + __IOM uint32_t FLXMB0 : 4; /*!< [3..0] Flexible Transmission Buffer Assignment between Channel + * 0 and Channel 1 */ + uint32_t : 28; + } CFDGFTBAC_b; + }; + __IM uint32_t RESERVED40[28]; + __IOM R_CANFD_CFDC2_Type CFDC2[2]; /*!< (@ 0x00001400) Channel Configuration Registers */ + __IM uint32_t RESERVED41[240]; + __IOM R_CANFD_CFDGAFL_Type CFDGAFL[16]; /*!< (@ 0x00001800) Global Acceptance Filter List Registers */ + __IM uint32_t RESERVED42[448]; + __IOM R_CANFD_CFDRM_Type CFDRM[32]; /*!< (@ 0x00002000) RX Message Buffer Access Registers */ + __IM uint32_t RESERVED43[3072]; + __IOM R_CANFD_CFDRF_Type CFDRF[8]; /*!< (@ 0x00006000) RX FIFO Access Registers */ + __IOM R_CANFD_CFDCF_Type CFDCF[6]; /*!< (@ 0x00006400) Common FIFO Access Registers */ + __IM uint32_t RESERVED44[1600]; + __IOM R_CANFD_CFDTHL_Type CFDTHL[2]; /*!< (@ 0x00008000) Channel TX History List */ + __IM uint32_t RESERVED45[252]; + + union + { + __IOM uint32_t CFDRPGACC[64]; /*!< (@ 0x00008400) RAM Test Page Access Register [0..63] */ + + struct + { + __IOM uint32_t RDTA : 32; /*!< [31..0] RAM Data Test Access */ + } CFDRPGACC_b[64]; + }; + __IM uint32_t RESERVED46[7872]; + __IOM R_CANFD_CFDTM_Type CFDTM[128]; /*!< (@ 0x00010000) TX Message Buffer Registers */ +} R_CANFD_Type; /*!< Size = 81920 (0x14000) */ + +/* =========================================================================================================================== */ +/* ================ R_CMT ================ */ +/* =========================================================================================================================== */ + +/** + * @brief Compare Match Timer Control (R_CMT) + */ + +typedef struct /*!< (@ 0x80040000) R_CMT Structure */ +{ + __IOM R_CMT_UNT_Type UNT[3]; /*!< (@ 0x00000000) 3 Timer Start Register Units */ +} R_CMT_Type; /*!< Size = 3072 (0xc00) */ + +/* =========================================================================================================================== */ +/* ================ R_CMTW0 ================ */ +/* =========================================================================================================================== */ + +/** + * @brief Compare Match Timer W (R_CMTW0) + */ + +typedef struct /*!< (@ 0x80041000) R_CMTW0 Structure */ +{ + union + { + __IOM uint16_t CMWSTR; /*!< (@ 0x00000000) Timer Start Register */ + + struct + { + __IOM uint16_t STR : 1; /*!< [0..0] Counter Start */ + uint16_t : 15; + } CMWSTR_b; + }; + __IM uint16_t RESERVED; + + union + { + __IOM uint16_t CMWCR; /*!< (@ 0x00000004) Timer Control Register */ + + struct + { + __IOM uint16_t CKS : 2; /*!< [1..0] Clock Select */ + uint16_t : 1; + __IOM uint16_t CMWIE : 1; /*!< [3..3] Compare Match Interrupt Enable */ + __IOM uint16_t IC0IE : 1; /*!< [4..4] Input Capture 0 Interrupt Enable */ + __IOM uint16_t IC1IE : 1; /*!< [5..5] Input Capture 1 Interrupt Enable */ + __IOM uint16_t OC0IE : 1; /*!< [6..6] Output Compare 0 Interrupt Enable */ + __IOM uint16_t OC1IE : 1; /*!< [7..7] Output Compare 1 Interrupt Enable */ + uint16_t : 1; + __IOM uint16_t CMS : 1; /*!< [9..9] Timer Counter Size */ + uint16_t : 3; + __IOM uint16_t CCLR : 3; /*!< [15..13] Counter Clear */ + } CMWCR_b; + }; + __IM uint16_t RESERVED1; + + union + { + __IOM uint16_t CMWIOR; /*!< (@ 0x00000008) Timer I/O Control Register */ + + struct + { + __IOM uint16_t IC0 : 2; /*!< [1..0] Input Capture Control 0 */ + __IOM uint16_t IC1 : 2; /*!< [3..2] Input Capture Control 1 */ + __IOM uint16_t IC0E : 1; /*!< [4..4] Input Capture Enable 0 */ + __IOM uint16_t IC1E : 1; /*!< [5..5] Input Capture Enable 1 */ + uint16_t : 2; + __IOM uint16_t OC0 : 2; /*!< [9..8] Output Compare Control 0 */ + __IOM uint16_t OC1 : 2; /*!< [11..10] Output Compare Control 1 */ + __IOM uint16_t OC0E : 1; /*!< [12..12] Compare Match Enable 0 */ + __IOM uint16_t OC1E : 1; /*!< [13..13] Compare Match Enable 1 */ + uint16_t : 1; + __IOM uint16_t CMWE : 1; /*!< [15..15] Compare Match Enable */ + } CMWIOR_b; + }; + __IM uint16_t RESERVED2; + __IM uint32_t RESERVED3; + __IOM uint32_t CMWCNT; /*!< (@ 0x00000010) Timer Counter */ + __IOM uint32_t CMWCOR; /*!< (@ 0x00000014) Compare Match Constant Register */ + __IM uint32_t CMWICR0; /*!< (@ 0x00000018) Input Capture Registers */ + __IM uint32_t CMWICR1; /*!< (@ 0x0000001C) Input Capture Registers */ + __IOM uint32_t CMWOCR0; /*!< (@ 0x00000020) Output Compare Registers */ + __IOM uint32_t CMWOCR1; /*!< (@ 0x00000024) Output Compare Registers */ +} R_CMTW0_Type; /*!< Size = 40 (0x28) */ + +/* =========================================================================================================================== */ +/* ================ R_WDT0 ================ */ +/* =========================================================================================================================== */ + +/** + * @brief Watchdog Timer 0 (R_WDT0) + */ + +typedef struct /*!< (@ 0x80042000) R_WDT0 Structure */ +{ + __IOM uint8_t WDTRR; /*!< (@ 0x00000000) WDT Refresh Register */ + __IM uint8_t RESERVED; + + union + { + __IOM uint16_t WDTCR; /*!< (@ 0x00000002) WDT Control Register */ + + struct + { + __IOM uint16_t TOPS : 2; /*!< [1..0] Timeout Period Selection */ + uint16_t : 2; + __IOM uint16_t CKS : 4; /*!< [7..4] Clock Division Ratio Selection */ + __IOM uint16_t RPES : 2; /*!< [9..8] Window End Position Selection */ + uint16_t : 2; + __IOM uint16_t RPSS : 2; /*!< [13..12] Window Start Position Selection */ + uint16_t : 2; + } WDTCR_b; + }; + + union + { + __IOM uint16_t WDTSR; /*!< (@ 0x00000004) WDT Status Register */ + + struct + { + __IM uint16_t CNTVAL : 14; /*!< [13..0] Down-Counter Value */ + __IOM uint16_t UNDFF : 1; /*!< [14..14] Underflow Flag */ + __IOM uint16_t REFEF : 1; /*!< [15..15] Refresh Error Flag */ + } WDTSR_b; + }; + + union + { + __IOM uint8_t WDTRCR; /*!< (@ 0x00000006) WDT Reset Control Register */ + + struct + { + uint8_t : 7; + __IOM uint8_t RSTIRQS : 1; /*!< [7..7] Reset Interrupt Request Selection */ + } WDTRCR_b; + }; + __IM uint8_t RESERVED1; + __IM uint16_t RESERVED2; +} R_WDT0_Type; /*!< Size = 10 (0xa) */ + +/* =========================================================================================================================== */ +/* ================ R_IIC0 ================ */ +/* =========================================================================================================================== */ + +/** + * @brief I2C Bus Interface 0 (R_IIC0) + */ + +typedef struct /*!< (@ 0x80043000) R_IIC0 Structure */ +{ + union + { + __IOM uint8_t ICCR1; /*!< (@ 0x00000000) I2C Bus Control Register 1 */ + + struct + { + __IM uint8_t SDAI : 1; /*!< [0..0] SDA Line Monitor */ + __IM uint8_t SCLI : 1; /*!< [1..1] SCL Line Monitor */ + __IOM uint8_t SDAO : 1; /*!< [2..2] SDA Output Control/Monitor */ + __IOM uint8_t SCLO : 1; /*!< [3..3] SCL Output Control/Monitor */ + __OM uint8_t SOWP : 1; /*!< [4..4] SCLO/SDAO Write Protect */ + __IOM uint8_t CLO : 1; /*!< [5..5] Extra SCL Clock Cycle Output */ + __IOM uint8_t IICRST : 1; /*!< [6..6] IIC-Bus Interface Internal Reset */ + __IOM uint8_t ICE : 1; /*!< [7..7] IIC-Bus Interface Enable */ + } ICCR1_b; + }; + + union + { + __IOM uint8_t ICCR2; /*!< (@ 0x00000001) I2C Bus Control Register 2 */ + + struct + { + uint8_t : 1; + __IOM uint8_t ST : 1; /*!< [1..1] Start Condition Issuance Request */ + __IOM uint8_t RS : 1; /*!< [2..2] Restart Condition Issuance Request */ + __IOM uint8_t SP : 1; /*!< [3..3] Stop Condition Issuance Request */ + uint8_t : 1; + __IOM uint8_t TRS : 1; /*!< [5..5] Transmit/Receive Mode */ + __IOM uint8_t MST : 1; /*!< [6..6] Master/Slave Mode */ + __IM uint8_t BBSY : 1; /*!< [7..7] Bus Busy Detection Flag */ + } ICCR2_b; + }; + + union + { + __IOM uint8_t ICMR1; /*!< (@ 0x00000002) I2C Bus Mode Register 1 */ + + struct + { + __IOM uint8_t BC : 3; /*!< [2..0] Bit Counter */ + __OM uint8_t BCWP : 1; /*!< [3..3] BC Write Protect */ + __IOM uint8_t CKS : 3; /*!< [6..4] Internal Reference Clock Select */ + __IOM uint8_t MTWP : 1; /*!< [7..7] MST/TRS Write Protect */ + } ICMR1_b; + }; + + union + { + __IOM uint8_t ICMR2; /*!< (@ 0x00000003) I2C Bus Mode Register 2 */ + + struct + { + __IOM uint8_t TMOS : 1; /*!< [0..0] Timeout Detection Time Select */ + __IOM uint8_t TMOL : 1; /*!< [1..1] Timeout L Count Control */ + __IOM uint8_t TMOH : 1; /*!< [2..2] Timeout H Count Control */ + uint8_t : 1; + __IOM uint8_t SDDL : 3; /*!< [6..4] SDA Output Delay Counter */ + __IOM uint8_t DLCS : 1; /*!< [7..7] SDA Output Delay Clock Source Select */ + } ICMR2_b; + }; + + union + { + __IOM uint8_t ICMR3; /*!< (@ 0x00000004) I2C Bus Mode Register 3 */ + + struct + { + __IOM uint8_t NF : 2; /*!< [1..0] Noise Filter Stage Select */ + __IM uint8_t ACKBR : 1; /*!< [2..2] Receive Acknowledge */ + __IOM uint8_t ACKBT : 1; /*!< [3..3] Transmit Acknowledge */ + __IOM uint8_t ACKWP : 1; /*!< [4..4] ACKBT Write Protect */ + __IOM uint8_t RDRFS : 1; /*!< [5..5] RDRF Flag Set Timing Select */ + __IOM uint8_t WAIT : 1; /*!< [6..6] WAIT */ + __IOM uint8_t SMBS : 1; /*!< [7..7] SMBus/IIC-Bus Select */ + } ICMR3_b; + }; + + union + { + __IOM uint8_t ICFER; /*!< (@ 0x00000005) I2C Bus Function Enable Register */ + + struct + { + __IOM uint8_t TMOE : 1; /*!< [0..0] Timeout Function Enable */ + __IOM uint8_t MALE : 1; /*!< [1..1] Master Arbitration-Lost Detection Enable */ + __IOM uint8_t NALE : 1; /*!< [2..2] NACK Transmission Arbitration-Lost Detection Enable */ + __IOM uint8_t SALE : 1; /*!< [3..3] Slave Arbitration-Lost Detection Enable */ + __IOM uint8_t NACKE : 1; /*!< [4..4] NACK Reception Transfer Suspension Enable */ + __IOM uint8_t NFE : 1; /*!< [5..5] Digital Noise Filter Circuit Enable */ + __IOM uint8_t SCLE : 1; /*!< [6..6] SCL Synchronous Circuit Enable */ + uint8_t : 1; + } ICFER_b; + }; + + union + { + __IOM uint8_t ICSER; /*!< (@ 0x00000006) I2C Bus Status Enable Register */ + + struct + { + __IOM uint8_t SAR0E : 1; /*!< [0..0] Slave Address Register 0 Enable */ + __IOM uint8_t SAR1E : 1; /*!< [1..1] Slave Address Register 1 Enable */ + __IOM uint8_t SAR2E : 1; /*!< [2..2] Slave Address Register 2 Enable */ + __IOM uint8_t GCAE : 1; /*!< [3..3] General Call Address Enable */ + uint8_t : 1; + __IOM uint8_t DIDE : 1; /*!< [5..5] Device ID Address Detection Enable */ + uint8_t : 1; + __IOM uint8_t HOAE : 1; /*!< [7..7] Host Address Enable */ + } ICSER_b; + }; + + union + { + __IOM uint8_t ICIER; /*!< (@ 0x00000007) I2C Bus Interrupt Enable Register */ + + struct + { + __IOM uint8_t TMOIE : 1; /*!< [0..0] Timeout Interrupt Request Enable */ + __IOM uint8_t ALIE : 1; /*!< [1..1] Arbitration-Lost Interrupt Request Enable */ + __IOM uint8_t STIE : 1; /*!< [2..2] Start Condition Detection Interrupt Request Enable */ + __IOM uint8_t SPIE : 1; /*!< [3..3] Stop Condition Detection Interrupt Request Enable */ + __IOM uint8_t NAKIE : 1; /*!< [4..4] NACK Reception Interrupt Request Enable */ + __IOM uint8_t RIE : 1; /*!< [5..5] Receive Data Full Interrupt Request Enable */ + __IOM uint8_t TEIE : 1; /*!< [6..6] Transmit End Interrupt Request Enable */ + __IOM uint8_t TIE : 1; /*!< [7..7] Transmit Data Empty Interrupt Request Enable */ + } ICIER_b; + }; + + union + { + __IOM uint8_t ICSR1; /*!< (@ 0x00000008) I2C Bus Status Register 1 */ + + struct + { + __IOM uint8_t AAS0 : 1; /*!< [0..0] Slave Address 0 Detection Flag */ + __IOM uint8_t AAS1 : 1; /*!< [1..1] Slave Address 1 Detection Flag */ + __IOM uint8_t AAS2 : 1; /*!< [2..2] Slave Address 2 Detection Flag */ + __IOM uint8_t GCA : 1; /*!< [3..3] General Call Address Detection Flag */ + uint8_t : 1; + __IOM uint8_t DID : 1; /*!< [5..5] Device ID Address Detection Flag */ + uint8_t : 1; + __IOM uint8_t HOA : 1; /*!< [7..7] Host Address Detection Flag */ + } ICSR1_b; + }; + + union + { + __IOM uint8_t ICSR2; /*!< (@ 0x00000009) I2C Bus Status Register 2 */ + + struct + { + __IOM uint8_t TMOF : 1; /*!< [0..0] Timeout Detection Flag */ + __IOM uint8_t AL : 1; /*!< [1..1] Arbitration-Lost Flag */ + __IOM uint8_t START : 1; /*!< [2..2] Start Condition Detection Flag */ + __IOM uint8_t STOP : 1; /*!< [3..3] Stop Condition Detection Flag */ + __IOM uint8_t NACKF : 1; /*!< [4..4] NACK Detection Flag */ + __IOM uint8_t RDRF : 1; /*!< [5..5] Receive Data Full Flag */ + __IOM uint8_t TEND : 1; /*!< [6..6] Transmit End Flag */ + __IM uint8_t TDRE : 1; /*!< [7..7] Transmit Data Empty Flag */ + } ICSR2_b; + }; + __IOM R_IIC0_SAR_Type SAR[3]; /*!< (@ 0x0000000A) Slave Address Registers */ + + union + { + __IOM uint8_t ICBRL; /*!< (@ 0x00000010) I2C Bus Bit Rate Low-Level Register */ + + struct + { + __IOM uint8_t BRL : 5; /*!< [4..0] Bit Rate Low-Level Period */ + uint8_t : 3; + } ICBRL_b; + }; + + union + { + __IOM uint8_t ICBRH; /*!< (@ 0x00000011) I2C Bus Bit Rate High-Level Register */ + + struct + { + __IOM uint8_t BRH : 5; /*!< [4..0] Bit Rate High-Level Period */ + uint8_t : 3; + } ICBRH_b; + }; + __IOM uint8_t ICDRT; /*!< (@ 0x00000012) I2C Bus Transmit Data Register */ + __IM uint8_t ICDRR; /*!< (@ 0x00000013) I2C Bus Receive Data Register */ +} R_IIC0_Type; /*!< Size = 20 (0x14) */ + +/* =========================================================================================================================== */ +/* ================ R_DOC ================ */ +/* =========================================================================================================================== */ + +/** + * @brief Data Operation Circuit (R_DOC) + */ + +typedef struct /*!< (@ 0x80044000) R_DOC Structure */ +{ + union + { + __IOM uint8_t DOCR; /*!< (@ 0x00000000) DOC Control Register */ + + struct + { + __IOM uint8_t OMS : 2; /*!< [1..0] Operating Mode Select */ + __IOM uint8_t DCSEL : 1; /*!< [2..2] Detection Condition Select */ + uint8_t : 1; + __IOM uint8_t DOPCIE : 1; /*!< [4..4] Data Operation Circuit Interrupt Enable */ + __IM uint8_t DOPCF : 1; /*!< [5..5] Data Operation Circuit Flag */ + __OM uint8_t DOPCFCL : 1; /*!< [6..6] DOPCF Flag Clear */ + uint8_t : 1; + } DOCR_b; + }; + __IM uint8_t RESERVED; + __IOM uint16_t DODIR; /*!< (@ 0x00000002) DOC Data Input Register */ + __IOM uint16_t DODSR; /*!< (@ 0x00000004) DOC Data Setting Register */ +} R_DOC_Type; /*!< Size = 6 (0x6) */ + +/* =========================================================================================================================== */ +/* ================ R_ADC121 ================ */ +/* =========================================================================================================================== */ + +/** + * @brief 12-Bit A/D converter (R_ADC121) + */ + +typedef struct /*!< (@ 0x80045000) R_ADC121 Structure */ +{ + union + { + __IOM uint16_t ADCSR; /*!< (@ 0x00000000) A/D Control Register */ + + struct + { + __IOM uint16_t DBLANS : 5; /*!< [4..0] Double Trigger Channel Select */ + uint16_t : 1; + __IOM uint16_t GBADIE : 1; /*!< [6..6] Group B Scan End Interrupt Enable */ + __IOM uint16_t DBLE : 1; /*!< [7..7] Double Trigger Mode Select */ + __IOM uint16_t EXTRG : 1; /*!< [8..8] Trigger Select */ + __IOM uint16_t TRGE : 1; /*!< [9..9] Trigger Start Enable */ + uint16_t : 2; + __IOM uint16_t ADIE : 1; /*!< [12..12] Scan End Interrupt Enable */ + __IOM uint16_t ADCS : 2; /*!< [14..13] Scan Mode Select */ + __IOM uint16_t ADST : 1; /*!< [15..15] A/D conversion Start */ + } ADCSR_b; + }; + __IM uint16_t RESERVED; + + union + { + __IOM uint16_t ADANSA0; /*!< (@ 0x00000004) A/D Channel Select Register A0 */ + + struct + { + __IOM uint16_t ANSA0 : 8; /*!< [7..0] A/D conversion Analog input Channel Select */ + uint16_t : 8; + } ADANSA0_b; + }; + __IM uint16_t RESERVED1; + + union + { + __IOM uint16_t ADADS0; /*!< (@ 0x00000008) A/D-Converted Value Addition/Average Function + * Channel Select Register 0 */ + + struct + { + __IOM uint16_t ADS0 : 8; /*!< [7..0] A/D-Converted Value Addition/Average Channel Select */ + uint16_t : 8; + } ADADS0_b; + }; + __IM uint16_t RESERVED2; + + union + { + __IOM uint8_t ADADC; /*!< (@ 0x0000000C) A/D-Converted Value Addition/Average Count Select + * Register */ + + struct + { + __IOM uint8_t ADC : 3; /*!< [2..0] Addition Count Select */ + uint8_t : 4; + __IOM uint8_t AVEE : 1; /*!< [7..7] Average Mode Enable */ + } ADADC_b; + }; + __IM uint8_t RESERVED3; + + union + { + __IOM uint16_t ADCER; /*!< (@ 0x0000000E) A/D Control Extended Register */ + + struct + { + uint16_t : 1; + __IOM uint16_t ADPRC : 2; /*!< [2..1] A/D Conversion Accuracy Specify */ + uint16_t : 2; + __IOM uint16_t ACE : 1; /*!< [5..5] A/D Data Register Automatic Clearing Enable */ + uint16_t : 9; + __IOM uint16_t ADRFMT : 1; /*!< [15..15] A/D Data Register Format Select */ + } ADCER_b; + }; + + union + { + __IOM uint16_t ADSTRGR; /*!< (@ 0x00000010) A/D Conversion Start Trigger Select Register */ + + struct + { + __IOM uint16_t TRSB : 6; /*!< [5..0] A/D Conversion Start Trigger Select for Group B */ + uint16_t : 2; + __IOM uint16_t TRSA : 6; /*!< [13..8] A/D Conversion Start Trigger Select */ + uint16_t : 2; + } ADSTRGR_b; + }; + __IM uint16_t RESERVED4; + + union + { + __IOM uint16_t ADANSB0; /*!< (@ 0x00000014) A/D Channel Select Register B0 */ + + struct + { + __IOM uint16_t ANSB0 : 8; /*!< [7..0] A/D Conversion Analog Input Channel Select */ + uint16_t : 8; + } ADANSB0_b; + }; + __IM uint16_t RESERVED5; + + union + { + __IM uint16_t ADDBLDR; /*!< (@ 0x00000018) A/D Data Duplication Register */ + + struct + { + __IM uint16_t DBLDR : 16; /*!< [15..0] The result of A/D conversion in response to the second + * trigger in double trigger mode. */ + } ADDBLDR_b; + }; + __IM uint16_t RESERVED6[3]; + + union + { + __IM uint16_t ADDR[8]; /*!< (@ 0x00000020) A/D Data Register n (n = 0 to 3 for unit 0, n + * = 0 to 7 for unit1) */ + + struct + { + __IM uint16_t DR : 16; /*!< [15..0] The result of A/D conversion (n: Number of channel) */ + } ADDR_b[8]; + }; + __IM uint16_t RESERVED7[27]; + + union + { + __IOM uint16_t ADSHCR; /*!< (@ 0x00000066) A/D Sample and Hold Control Register */ + + struct + { + __IOM uint16_t SSTSH : 8; /*!< [7..0] Sample and hold period setting */ + __IOM uint16_t SHANS : 3; /*!< [10..8] Sample and hold use or bypass select for ch0-2 */ + uint16_t : 5; + } ADSHCR_b; + }; + __IM uint16_t RESERVED8[10]; + __IM uint8_t RESERVED9; + + union + { + __IOM uint8_t ADELCCR; /*!< (@ 0x0000007D) A/D Event Link Control Register */ + + struct + { + __IOM uint8_t ELCC : 2; /*!< [1..0] Event link control bits */ + __IOM uint8_t GCELC : 1; /*!< [2..2] Event control bit for Group C */ + uint8_t : 5; + } ADELCCR_b; + }; + __IM uint16_t RESERVED10; + + union + { + __IOM uint16_t ADGSPCR; /*!< (@ 0x00000080) A/D Group Scan Priority Control Register */ + + struct + { + __IOM uint16_t PGS : 1; /*!< [0..0] Group Priority Control Setting */ + __IOM uint16_t GBRSCN : 1; /*!< [1..1] Group B Restart Setting */ + uint16_t : 12; + __IOM uint16_t LGRRS : 1; /*!< [14..14] Restart Channel Select */ + __IOM uint16_t GBRP : 1; /*!< [15..15] Group B Single Scan Continuous Start */ + } ADGSPCR_b; + }; + __IM uint16_t RESERVED11; + + union + { + __IM uint16_t ADDBLDRA; /*!< (@ 0x00000084) A/D Data Duplication Register A */ + + struct + { + __IM uint16_t DBLDRA : 16; /*!< [15..0] The result of A/D conversion during extended operation + * in double trigger mode */ + } ADDBLDRA_b; + }; + + union + { + __IM uint16_t ADDBLDRB; /*!< (@ 0x00000086) A/D Data Duplication Register B */ + + struct + { + __IM uint16_t DBLDRB : 16; /*!< [15..0] The result of A/D conversion during extended operation + * in double trigger mode */ + } ADDBLDRB_b; + }; + __IM uint16_t RESERVED12[2]; + + union + { + __IM uint8_t ADWINMON; /*!< (@ 0x0000008C) A/D Compare Function Window A/B Status Monitoring + * Register */ + + struct + { + __IM uint8_t MONCOMB : 1; /*!< [0..0] Combination result monitor */ + uint8_t : 3; + __IM uint8_t MONCMPA : 1; /*!< [4..4] Comparing result monitor for window A */ + __IM uint8_t MONCMPB : 1; /*!< [5..5] Comparing result monitor for window B */ + uint8_t : 2; + } ADWINMON_b; + }; + __IM uint8_t RESERVED13; + __IM uint16_t RESERVED14; + + union + { + __IOM uint16_t ADCMPCR; /*!< (@ 0x00000090) A/D Compare Function Control Register */ + + struct + { + __IOM uint16_t CMPAB : 2; /*!< [1..0] Window A/B combination condition setting */ + uint16_t : 7; + __IOM uint16_t CMPBE : 1; /*!< [9..9] Window B operation permission */ + uint16_t : 1; + __IOM uint16_t CMPAE : 1; /*!< [11..11] Window A operation permission */ + uint16_t : 1; + __IOM uint16_t CMPBIE : 1; /*!< [13..13] Compare window B Interrupt Enable */ + __IOM uint16_t WCMPE : 1; /*!< [14..14] Window Function enable */ + __IOM uint16_t CMPAIE : 1; /*!< [15..15] Compare window A Interrupt Enable */ + } ADCMPCR_b; + }; + __IM uint16_t RESERVED15; + + union + { + __IOM uint16_t ADCMPANSR0; /*!< (@ 0x00000094) A/D Compare Function Window A Channel Select + * Register 0 */ + + struct + { + __IOM uint16_t CMPCHA0 : 8; /*!< [7..0] Window A Channel Select */ + uint16_t : 8; + } ADCMPANSR0_b; + }; + __IM uint16_t RESERVED16; + + union + { + __IOM uint16_t ADCMPLR0; /*!< (@ 0x00000098) A/D Compare Function Window A Comparison Condition + * Setting Register 0 */ + + struct + { + __IOM uint16_t CMPLCHA0 : 8; /*!< [7..0] Window A comparison condition for target channel (ch0-7) + * setting */ + uint16_t : 8; + } ADCMPLR0_b; + }; + __IM uint16_t RESERVED17; + + union + { + __IOM uint16_t ADCMPDR0; /*!< (@ 0x0000009C) A/D Comparison Function Window A Lower Level + * Setting Register */ + + struct + { + __IOM uint16_t CMPLLA : 16; /*!< [15..0] Reference data setting when using the compare function + * window A */ + } ADCMPDR0_b; + }; + + union + { + __IOM uint16_t ADCMPDR1; /*!< (@ 0x0000009E) AD Comparison Function Window A Upper Level Setting + * Register */ + + struct + { + __IOM uint16_t CMPULA : 16; /*!< [15..0] Reference data setting when using the compare function + * window A */ + } ADCMPDR1_b; + }; + + union + { + __IOM uint16_t ADCMPSR0; /*!< (@ 0x000000A0) A/D Comparison Function Window A Channel Status + * Register 0 */ + + struct + { + __IOM uint16_t CMPSTCHA0 : 8; /*!< [7..0] Window A Status Flag */ + uint16_t : 8; + } ADCMPSR0_b; + }; + __IM uint16_t RESERVED18[2]; + + union + { + __IOM uint8_t ADCMPBNSR; /*!< (@ 0x000000A6) A/D Compare Function Window B Channel Select + * Register */ + + struct + { + __IOM uint8_t CMPCHB : 6; /*!< [5..0] Window B Channel Select */ + uint8_t : 1; + __IOM uint8_t CMPLB : 1; /*!< [7..7] Window B Comparison Condition Setting */ + } ADCMPBNSR_b; + }; + __IM uint8_t RESERVED19; + + union + { + __IOM uint16_t ADWINLLB; /*!< (@ 0x000000A8) A/D Compare Function Window B Lower-Side Level + * Setting Register */ + + struct + { + __IOM uint16_t CMPLLB : 16; /*!< [15..0] Reference lower data setting when using the compare + * function window B */ + } ADWINLLB_b; + }; + + union + { + __IOM uint16_t ADWINULB; /*!< (@ 0x000000AA) A/D Compare Function Window B Upper-Side Level + * Setting Register */ + + struct + { + __IOM uint16_t CMPULB : 16; /*!< [15..0] Reference upper data setting when using the compare + * function window B */ + } ADWINULB_b; + }; + + union + { + __IOM uint8_t ADCMPBSR; /*!< (@ 0x000000AC) A/D Compare Function Window B Status Register */ + + struct + { + __IOM uint8_t CMPSTB : 1; /*!< [0..0] Window B Flag */ + uint8_t : 7; + } ADCMPBSR_b; + }; + __IM uint8_t RESERVED20; + __IM uint16_t RESERVED21[19]; + + union + { + __IOM uint16_t ADANSC0; /*!< (@ 0x000000D4) A/D Channel Select Register C0 */ + + struct + { + __IOM uint16_t ANSC0 : 8; /*!< [7..0] A/D-Converted Channel Select for Group C in Group Scan + * Mode */ + uint16_t : 8; + } ADANSC0_b; + }; + __IM uint16_t RESERVED22; + __IM uint8_t RESERVED23; + + union + { + __IOM uint8_t ADGCTRGR; /*!< (@ 0x000000D9) A/D Group C Trigger Select Register */ + + struct + { + __IOM uint8_t TRSC : 6; /*!< [5..0] Group C A/D Conversion Start Trigger Select */ + __IOM uint8_t GCADIE : 1; /*!< [6..6] Group C Scan Completion Interrupt Enable */ + __IOM uint8_t GRCE : 1; /*!< [7..7] Group C A/D Conversion Enable */ + } ADGCTRGR_b; + }; + __IM uint16_t RESERVED24[3]; + + union + { + __IOM uint8_t ADSSTR[8]; /*!< (@ 0x000000E0) A/D Sampling State Register n (n = 0 to 3 for + * unit 0, n = 0 to 7 for unit1) */ + + struct + { + __IOM uint8_t SST : 8; /*!< [7..0] Sampling Time Setting */ + } ADSSTR_b[8]; + }; +} R_ADC121_Type; /*!< Size = 232 (0xe8) */ + +/* =========================================================================================================================== */ +/* ================ R_TSU ================ */ +/* =========================================================================================================================== */ + +/** + * @brief Temperature Sensor Unit (R_TSU) + */ + +typedef struct /*!< (@ 0x80046000) R_TSU Structure */ +{ + union + { + __IOM uint32_t TSUSM; /*!< (@ 0x00000000) Sensor Mode Register */ + + struct + { + __IOM uint32_t TSEN : 1; /*!< [0..0] Temperature Sensor Enable */ + __IOM uint32_t ADCEN : 1; /*!< [1..1] ADC Enable */ + uint32_t : 30; + } TSUSM_b; + }; + + union + { + __IOM uint32_t TSUST; /*!< (@ 0x00000004) Sensor Trigger Register */ + + struct + { + __IOM uint32_t START : 1; /*!< [0..0] A/D Conversion Control */ + uint32_t : 31; + } TSUST_b; + }; + + union + { + __IOM uint32_t TSUSCS; /*!< (@ 0x00000008) Sensor Configuration Setting Register */ + + struct + { + uint32_t : 3; + __IOM uint32_t CKDIV : 1; /*!< [3..3] Divider Value for PCLKL */ + uint32_t : 28; + } TSUSCS_b; + }; + + union + { + __IM uint32_t TSUSAD; /*!< (@ 0x0000000C) Sensor ADC Data Register */ + + struct + { + __IM uint32_t DOUT : 12; /*!< [11..0] Temperature Sensor Data Output */ + uint32_t : 20; + } TSUSAD_b; + }; + + union + { + __IM uint32_t TSUSS; /*!< (@ 0x00000010) Sensor Status Register */ + + struct + { + __IM uint32_t CONV : 1; /*!< [0..0] A/D Conversion Status */ + uint32_t : 31; + } TSUSS_b; + }; +} R_TSU_Type; /*!< Size = 20 (0x14) */ + +/* =========================================================================================================================== */ +/* ================ R_POEG1 ================ */ +/* =========================================================================================================================== */ + +/** + * @brief GPT Port Output Enable 1 (R_POEG1) + */ + +typedef struct /*!< (@ 0x80047000) R_POEG1 Structure */ +{ + union + { + __IOM uint32_t POEG1GA; /*!< (@ 0x00000000) POEG1 Group A Setting Register */ + + struct + { + __IOM uint32_t PIDF : 1; /*!< [0..0] Port Input Detection Flag */ + __IOM uint32_t IOCF : 1; /*!< [1..1] GPT Output Stop Request Detection Flag */ + __IOM uint32_t OSTPF : 1; /*!< [2..2] Oscillation Stop Detection Flag */ + __IOM uint32_t SSF : 1; /*!< [3..3] Software Stop Flag */ + __IOM uint32_t PIDE : 1; /*!< [4..4] Port Input Detection Enable */ + __IOM uint32_t IOCE : 1; /*!< [5..5] GPT Output Stop Request Enable */ + __IOM uint32_t OSTPE : 1; /*!< [6..6] Enable Stopping Output on Stopping of Oscillation */ + uint32_t : 9; + __IM uint32_t ST : 1; /*!< [16..16] GTETRGn Input Status Flag */ + uint32_t : 11; + __IOM uint32_t INV : 1; /*!< [28..28] GTETRGn Input Inverting */ + __IOM uint32_t NFEN : 1; /*!< [29..29] Noise filter Enable */ + __IOM uint32_t NFCS : 2; /*!< [31..30] Noise filter Clock Select */ + } POEG1GA_b; + }; + __IM uint32_t RESERVED[255]; + + union + { + __IOM uint32_t POEG1GB; /*!< (@ 0x00000400) POEG1 Group B Setting Register */ + + struct + { + __IOM uint32_t PIDF : 1; /*!< [0..0] Port Input Detection Flag */ + __IOM uint32_t IOCF : 1; /*!< [1..1] GPT Output Stop Request Detection Flag */ + __IOM uint32_t OSTPF : 1; /*!< [2..2] Oscillation Stop Detection Flag */ + __IOM uint32_t SSF : 1; /*!< [3..3] Software Stop Flag */ + __IOM uint32_t PIDE : 1; /*!< [4..4] Port Input Detection Enable */ + __IOM uint32_t IOCE : 1; /*!< [5..5] GPT Output Stop Request Enable */ + __IOM uint32_t OSTPE : 1; /*!< [6..6] Enable Stopping Output on Stopping of Oscillation */ + uint32_t : 9; + __IM uint32_t ST : 1; /*!< [16..16] GTETRGn Input Status Flag */ + uint32_t : 11; + __IOM uint32_t INV : 1; /*!< [28..28] GTETRGn Input Inverting */ + __IOM uint32_t NFEN : 1; /*!< [29..29] Noise filter Enable */ + __IOM uint32_t NFCS : 2; /*!< [31..30] Noise filter Clock Select */ + } POEG1GB_b; + }; + __IM uint32_t RESERVED1[255]; + + union + { + __IOM uint32_t POEG1GC; /*!< (@ 0x00000800) POEG1 Group C Setting Register */ + + struct + { + __IOM uint32_t PIDF : 1; /*!< [0..0] Port Input Detection Flag */ + __IOM uint32_t IOCF : 1; /*!< [1..1] GPT Output Stop Request Detection Flag */ + __IOM uint32_t OSTPF : 1; /*!< [2..2] Oscillation Stop Detection Flag */ + __IOM uint32_t SSF : 1; /*!< [3..3] Software Stop Flag */ + __IOM uint32_t PIDE : 1; /*!< [4..4] Port Input Detection Enable */ + __IOM uint32_t IOCE : 1; /*!< [5..5] GPT Output Stop Request Enable */ + __IOM uint32_t OSTPE : 1; /*!< [6..6] Enable Stopping Output on Stopping of Oscillation */ + uint32_t : 9; + __IM uint32_t ST : 1; /*!< [16..16] GTETRGn Input Status Flag */ + uint32_t : 11; + __IOM uint32_t INV : 1; /*!< [28..28] GTETRGn Input Inverting */ + __IOM uint32_t NFEN : 1; /*!< [29..29] Noise filter Enable */ + __IOM uint32_t NFCS : 2; /*!< [31..30] Noise filter Clock Select */ + } POEG1GC_b; + }; + __IM uint32_t RESERVED2[255]; + + union + { + __IOM uint32_t POEG1GD; /*!< (@ 0x00000C00) POEG1 Group D Setting Register */ + + struct + { + __IOM uint32_t PIDF : 1; /*!< [0..0] Port Input Detection Flag */ + __IOM uint32_t IOCF : 1; /*!< [1..1] GPT Output Stop Request Detection Flag */ + __IOM uint32_t OSTPF : 1; /*!< [2..2] Oscillation Stop Detection Flag */ + __IOM uint32_t SSF : 1; /*!< [3..3] Software Stop Flag */ + __IOM uint32_t PIDE : 1; /*!< [4..4] Port Input Detection Enable */ + __IOM uint32_t IOCE : 1; /*!< [5..5] GPT Output Stop Request Enable */ + __IOM uint32_t OSTPE : 1; /*!< [6..6] Enable Stopping Output on Stopping of Oscillation */ + uint32_t : 9; + __IM uint32_t ST : 1; /*!< [16..16] GTETRGn Input Status Flag */ + uint32_t : 11; + __IOM uint32_t INV : 1; /*!< [28..28] GTETRGn Input Inverting */ + __IOM uint32_t NFEN : 1; /*!< [29..29] Noise filter Enable */ + __IOM uint32_t NFCS : 2; /*!< [31..30] Noise filter Clock Select */ + } POEG1GD_b; + }; +} R_POEG1_Type; /*!< Size = 3076 (0xc04) */ + +/* =========================================================================================================================== */ +/* ================ R_DMAC0 ================ */ +/* =========================================================================================================================== */ + +/** + * @brief DMA Controller 0 (R_DMAC0) + */ + +typedef struct /*!< (@ 0x80080000) R_DMAC0 Structure */ +{ + __IOM R_DMAC0_GRP_Type GRP[1]; /*!< (@ 0x00000000) 8 channel Registers */ +} R_DMAC0_Type; /*!< Size = 804 (0x324) */ + +/* =========================================================================================================================== */ +/* ================ R_ICU_NS ================ */ +/* =========================================================================================================================== */ + +/** + * @brief Interrupt Controller in Non Safety Domain (R_ICU_NS) + */ + +typedef struct /*!< (@ 0x80090000) R_ICU_NS Structure */ +{ + union + { + __OM uint32_t NS_SWINT; /*!< (@ 0x00000000) Software Interrupt Register */ + + struct + { + __OM uint32_t IC0 : 1; /*!< [0..0] Software Interrupt register */ + __OM uint32_t IC1 : 1; /*!< [1..1] Software Interrupt register */ + __OM uint32_t IC2 : 1; /*!< [2..2] Software Interrupt register */ + __OM uint32_t IC3 : 1; /*!< [3..3] Software Interrupt register */ + __OM uint32_t IC4 : 1; /*!< [4..4] Software Interrupt register */ + __OM uint32_t IC5 : 1; /*!< [5..5] Software Interrupt register */ + uint32_t : 26; + } NS_SWINT_b; + }; + + union + { + __IOM uint32_t NS_PORTNF_FLTSEL; /*!< (@ 0x00000004) Interrupt Noise Filter Enable Register */ + + struct + { + __IOM uint32_t FLT0 : 1; /*!< [0..0] Noise filter enable for IRQ0 */ + __IOM uint32_t FLT1 : 1; /*!< [1..1] Noise filter enable for IRQ1 */ + __IOM uint32_t FLT2 : 1; /*!< [2..2] Noise filter enable for IRQ2 */ + __IOM uint32_t FLT3 : 1; /*!< [3..3] Noise filter enable for IRQ3 */ + __IOM uint32_t FLT4 : 1; /*!< [4..4] Noise filter enable for IRQ4 */ + __IOM uint32_t FLT5 : 1; /*!< [5..5] Noise filter enable for IRQ5 */ + __IOM uint32_t FLT6 : 1; /*!< [6..6] Noise filter enable for IRQ6 */ + __IOM uint32_t FLT7 : 1; /*!< [7..7] Noise filter enable for IRQ7 */ + __IOM uint32_t FLT8 : 1; /*!< [8..8] Noise filter enable for IRQ8 */ + __IOM uint32_t FLT9 : 1; /*!< [9..9] Noise filter enable for IRQ9 */ + __IOM uint32_t FLT10 : 1; /*!< [10..10] Noise filter enable for IRQ10 */ + __IOM uint32_t FLT11 : 1; /*!< [11..11] Noise filter enable for IRQ11 */ + __IOM uint32_t FLT12 : 1; /*!< [12..12] Noise filter enable for IRQ12 */ + __IOM uint32_t FLT13 : 1; /*!< [13..13] Noise filter enable for IRQ13 */ + __IOM uint32_t FLTDRQ : 1; /*!< [14..14] Noise filter enable for External DMA request (DREQ) */ + uint32_t : 17; + } NS_PORTNF_FLTSEL_b; + }; + + union + { + __IOM uint32_t NS_PORTNF_CLKSEL; /*!< (@ 0x00000008) Interrupt Noise Filter Setting Register */ + + struct + { + __IOM uint32_t CKSEL0 : 2; /*!< [1..0] Noise filter sampling clock selector */ + __IOM uint32_t CKSEL1 : 2; /*!< [3..2] Noise filter sampling clock selector */ + __IOM uint32_t CKSEL2 : 2; /*!< [5..4] Noise filter sampling clock selector */ + __IOM uint32_t CKSEL3 : 2; /*!< [7..6] Noise filter sampling clock selector */ + __IOM uint32_t CKSEL4 : 2; /*!< [9..8] Noise filter sampling clock selector */ + __IOM uint32_t CKSEL5 : 2; /*!< [11..10] Noise filter sampling clock selector */ + __IOM uint32_t CKSEL6 : 2; /*!< [13..12] Noise filter sampling clock selector */ + __IOM uint32_t CKSEL7 : 2; /*!< [15..14] Noise filter sampling clock selector */ + __IOM uint32_t CKSEL8 : 2; /*!< [17..16] Noise filter sampling clock selector */ + __IOM uint32_t CKSEL9 : 2; /*!< [19..18] Noise filter sampling clock selector */ + __IOM uint32_t CKSEL10 : 2; /*!< [21..20] Noise filter sampling clock selector */ + __IOM uint32_t CKSEL11 : 2; /*!< [23..22] Noise filter sampling clock selector */ + __IOM uint32_t CKSEL12 : 2; /*!< [25..24] Noise filter sampling clock selector */ + __IOM uint32_t CKSEL13 : 2; /*!< [27..26] Noise filter sampling clock selector */ + __IOM uint32_t CKSELDREQ : 2; /*!< [29..28] Noise filter sampling clock selector */ + uint32_t : 2; + } NS_PORTNF_CLKSEL_b; + }; + + union + { + __IOM uint32_t NS_PORTNF_MD; /*!< (@ 0x0000000C) Interrupt Edge Detection Setting Register */ + + struct + { + __IOM uint32_t MD0 : 2; /*!< [1..0] Select detection mode for IRQ0 */ + __IOM uint32_t MD1 : 2; /*!< [3..2] Select detection mode for IRQ1 */ + __IOM uint32_t MD2 : 2; /*!< [5..4] Select detection mode for IRQ2 */ + __IOM uint32_t MD3 : 2; /*!< [7..6] Select detection mode for IRQ3 */ + __IOM uint32_t MD4 : 2; /*!< [9..8] Select detection mode for IRQ4 */ + __IOM uint32_t MD5 : 2; /*!< [11..10] Select detection mode for IRQ5 */ + __IOM uint32_t MD6 : 2; /*!< [13..12] Select detection mode for IRQ6 */ + __IOM uint32_t MD7 : 2; /*!< [15..14] Select detection mode for IRQ7 */ + __IOM uint32_t MD8 : 2; /*!< [17..16] Select detection mode for IRQ8 */ + __IOM uint32_t MD9 : 2; /*!< [19..18] Select detection mode for IRQ9 */ + __IOM uint32_t MD10 : 2; /*!< [21..20] Select detection mode for IRQ10 */ + __IOM uint32_t MD11 : 2; /*!< [23..22] Select detection mode for IRQ11 */ + __IOM uint32_t MD12 : 2; /*!< [25..24] Select detection mode for IRQ12 */ + __IOM uint32_t MD13 : 2; /*!< [27..26] Select detection mode for IRQ13 */ + __IOM uint32_t MDDRQ : 2; /*!< [29..28] Select detection mode for DREQ of DMAC */ + uint32_t : 2; + } NS_PORTNF_MD_b; + }; +} R_ICU_NS_Type; /*!< Size = 16 (0x10) */ + +/* =========================================================================================================================== */ +/* ================ R_ELC ================ */ +/* =========================================================================================================================== */ + +/** + * @brief Evnet Link Controller (R_ELC) + */ + +typedef struct /*!< (@ 0x80090010) R_ELC Structure */ +{ + union + { + __IOM uint32_t ELC_SSEL[19]; /*!< (@ 0x00000000) ELC Event Source Select Register [0..18] */ + + struct + { + __IOM uint32_t ELC_SEL0 : 10; /*!< [9..0] Set the number for ELC event source to be linked to the + * ELC destination. */ + __IOM uint32_t ELC_SEL1 : 10; /*!< [19..10] Set the number for ELC event source to be linked to + * the ELC destination. */ + __IOM uint32_t ELC_SEL2 : 10; /*!< [29..20] Set the number for ELC event source to be linked to + * the ELC destination. */ + uint32_t : 2; + } ELC_SSEL_b[19]; + }; +} R_ELC_Type; /*!< Size = 76 (0x4c) */ + +/* =========================================================================================================================== */ +/* ================ R_DMA ================ */ +/* =========================================================================================================================== */ + +/** + * @brief DMAC Configuration (R_DMA) + */ + +typedef struct /*!< (@ 0x80090060) R_DMA Structure */ +{ + __IM uint32_t RESERVED[3]; + + union + { + __IOM uint32_t DMAC0_RSSEL[3]; /*!< (@ 0x0000000C) DMAC Unit 0 Resource Select Register [0..2] */ + + struct + { + __IOM uint32_t REQ_SELA : 9; /*!< [8..0] DMA Resource Select for Channel n */ + uint32_t : 1; + __IOM uint32_t REQ_SELB : 9; /*!< [18..10] DMA Resource Select for Channel n + 1 */ + uint32_t : 1; + __IOM uint32_t REQ_SELC : 9; /*!< [28..20] DMA Resource Select for Channel n + 2 */ + uint32_t : 3; + } DMAC0_RSSEL_b[3]; + }; + __IM uint32_t RESERVED1[3]; + + union + { + __IOM uint32_t DMAC1_RSSEL[3]; /*!< (@ 0x00000024) DMAC Unit 1 Resource Select Register [0..2] */ + + struct + { + __IOM uint32_t REQ_SELA : 9; /*!< [8..0] DMA Resource Select for Channel n */ + uint32_t : 1; + __IOM uint32_t REQ_SELB : 9; /*!< [18..10] DMA Resource Select for Channel n + 1 */ + uint32_t : 1; + __IOM uint32_t REQ_SELC : 9; /*!< [28..20] DMA Resource Select for Channel n + 2 */ + uint32_t : 3; + } DMAC1_RSSEL_b[3]; + }; +} R_DMA_Type; /*!< Size = 48 (0x30) */ + +/* =========================================================================================================================== */ +/* ================ R_PORT_NSR ================ */ +/* =========================================================================================================================== */ + +/** + * @brief I/O Ports (Non safety region) (R_PORT_NSR) + */ + +typedef struct /*!< (@ 0x800A0000) R_PORT_NSR Structure */ +{ + union + { + __IOM uint8_t P[25]; /*!< (@ 0x00000000) Port [0..24] Register */ + + struct + { + __IOM uint8_t POUT_0 : 1; /*!< [0..0] Pm_n Output Data Store (n: bit position) */ + __IOM uint8_t POUT_1 : 1; /*!< [1..1] Pm_n Output Data Store (n: bit position) */ + __IOM uint8_t POUT_2 : 1; /*!< [2..2] Pm_n Output Data Store (n: bit position) */ + __IOM uint8_t POUT_3 : 1; /*!< [3..3] Pm_n Output Data Store (n: bit position) */ + __IOM uint8_t POUT_4 : 1; /*!< [4..4] Pm_n Output Data Store (n: bit position) */ + __IOM uint8_t POUT_5 : 1; /*!< [5..5] Pm_n Output Data Store (n: bit position) */ + __IOM uint8_t POUT_6 : 1; /*!< [6..6] Pm_n Output Data Store (n: bit position) */ + __IOM uint8_t POUT_7 : 1; /*!< [7..7] Pm_n Output Data Store (n: bit position) */ + } P_b[25]; + }; + __IM uint8_t RESERVED; + __IM uint16_t RESERVED1; + __IM uint32_t RESERVED2[121]; + + union + { + __IOM uint16_t PM[25]; /*!< (@ 0x00000200) Port 0 Mode Register */ + + struct + { + __IOM uint16_t PM0 : 2; /*!< [1..0] Pm_0 I/O Select */ + __IOM uint16_t PM1 : 2; /*!< [3..2] Pm_1 I/O Select */ + __IOM uint16_t PM2 : 2; /*!< [5..4] Pm_2 I/O Select */ + __IOM uint16_t PM3 : 2; /*!< [7..6] Pm_3 I/O Select */ + __IOM uint16_t PM4 : 2; /*!< [9..8] Pm_4 I/O Select */ + __IOM uint16_t PM5 : 2; /*!< [11..10] Pm_5 I/O Select */ + __IOM uint16_t PM6 : 2; /*!< [13..12] Pm_6 I/O Select */ + __IOM uint16_t PM7 : 2; /*!< [15..14] Pm_7 I/O Select */ + } PM_b[25]; + }; + __IM uint16_t RESERVED3; + __IM uint32_t RESERVED4[115]; + + union + { + __IOM uint8_t PMC[25]; /*!< (@ 0x00000400) Port [0..24] Mode Control Register */ + + struct + { + __IOM uint8_t PMC0 : 1; /*!< [0..0] Pm_n Pin Mode Control (n: bit position) */ + __IOM uint8_t PMC1 : 1; /*!< [1..1] Pm_n Pin Mode Control (n: bit position) */ + __IOM uint8_t PMC2 : 1; /*!< [2..2] Pm_n Pin Mode Control (n: bit position) */ + __IOM uint8_t PMC3 : 1; /*!< [3..3] Pm_n Pin Mode Control (n: bit position) */ + __IOM uint8_t PMC4 : 1; /*!< [4..4] Pm_n Pin Mode Control (n: bit position) */ + __IOM uint8_t PMC5 : 1; /*!< [5..5] Pm_n Pin Mode Control (n: bit position) */ + __IOM uint8_t PMC6 : 1; /*!< [6..6] Pm_n Pin Mode Control (n: bit position) */ + __IOM uint8_t PMC7 : 1; /*!< [7..7] Pm_n Pin Mode Control (n: bit position) */ + } PMC_b[25]; + }; + __IM uint8_t RESERVED5; + __IM uint16_t RESERVED6; + __IM uint32_t RESERVED7[121]; + + union + { + __IOM uint32_t PFC[25]; /*!< (@ 0x00000600) Port [0..24] Function Control Register */ + + struct + { + __IOM uint32_t PFC0 : 4; /*!< [3..0] Pm_0 Pin function Select */ + __IOM uint32_t PFC1 : 4; /*!< [7..4] Pm_1 Pin function Select */ + __IOM uint32_t PFC2 : 4; /*!< [11..8] Pm_2 Pin function Select */ + __IOM uint32_t PFC3 : 4; /*!< [15..12] Pm_3 Pin function Select */ + __IOM uint32_t PFC4 : 4; /*!< [19..16] Pm_4 Pin function Select */ + __IOM uint32_t PFC5 : 4; /*!< [23..20] Pm_5 Pin function Select */ + __IOM uint32_t PFC6 : 4; /*!< [27..24] Pm_6 Pin function Select */ + __IOM uint32_t PFC7 : 4; /*!< [31..28] Pm_7 Pin function Select */ + } PFC_b[25]; + }; + __IM uint32_t RESERVED8[103]; + + union + { + __IM uint8_t PIN[25]; /*!< (@ 0x00000800) Port [0..24] Input Register */ + + struct + { + __IM uint8_t PIN0 : 1; /*!< [0..0] Pm_n Pin Input (n: bit position) */ + __IM uint8_t PIN1 : 1; /*!< [1..1] Pm_n Pin Input (n: bit position) */ + __IM uint8_t PIN2 : 1; /*!< [2..2] Pm_n Pin Input (n: bit position) */ + __IM uint8_t PIN3 : 1; /*!< [3..3] Pm_n Pin Input (n: bit position) */ + __IM uint8_t PIN4 : 1; /*!< [4..4] Pm_n Pin Input (n: bit position) */ + __IM uint8_t PIN5 : 1; /*!< [5..5] Pm_n Pin Input (n: bit position) */ + __IM uint8_t PIN6 : 1; /*!< [6..6] Pm_n Pin Input (n: bit position) */ + __IM uint8_t PIN7 : 1; /*!< [7..7] Pm_n Pin Input (n: bit position) */ + } PIN_b[25]; + }; + __IM uint8_t RESERVED9; + __IM uint16_t RESERVED10; + __IM uint32_t RESERVED11[121]; + __IOM R_PORT_DRCTL_Type DRCTL[25]; /*!< (@ 0x00000A00) I/O Buffer [0..24] Function Switching Register */ + __IM uint32_t RESERVED12[206]; + + union + { + __IOM uint8_t ELC_PGR[2]; /*!< (@ 0x00000E00) ELC Port Group Setting Register [0..1] */ + + struct + { + __IOM uint8_t PG0 : 1; /*!< [0..0] Port Group Setting */ + __IOM uint8_t PG1 : 1; /*!< [1..1] Port Group Setting */ + __IOM uint8_t PG2 : 1; /*!< [2..2] Port Group Setting */ + __IOM uint8_t PG3 : 1; /*!< [3..3] Port Group Setting */ + __IOM uint8_t PG4 : 1; /*!< [4..4] Port Group Setting */ + __IOM uint8_t PG5 : 1; /*!< [5..5] Port Group Setting */ + __IOM uint8_t PG6 : 1; /*!< [6..6] Port Group Setting */ + __IOM uint8_t PG7 : 1; /*!< [7..7] Port Group Setting */ + } ELC_PGR_b[2]; + }; + + union + { + __IOM uint8_t ELC_PGC[2]; /*!< (@ 0x00000E02) ELC Port Group Control Register [0..1] */ + + struct + { + __IOM uint8_t PGCI : 2; /*!< [1..0] Event Output Edge Select */ + __IOM uint8_t PGCOVE : 1; /*!< [2..2] PDBF Overwrite */ + uint8_t : 1; + __IOM uint8_t PGCO : 3; /*!< [6..4] Port Group Operation Select */ + uint8_t : 1; + } ELC_PGC_b[2]; + }; + __IOM R_PORT_NSR_ELC_PDBF_Type ELC_PDBF[2]; /*!< (@ 0x00000E04) ELC Port Buffer Register [0..1] */ + + union + { + __IOM uint8_t ELC_PEL[4]; /*!< (@ 0x00000E0C) ELC Port Setting Register [0..3] */ + + struct + { + __IOM uint8_t PSB : 3; /*!< [2..0] Bit Number Specification */ + __IOM uint8_t PSP : 2; /*!< [4..3] Port Number Specification */ + __IOM uint8_t PSM : 2; /*!< [6..5] Event Link Specification */ + uint8_t : 1; + } ELC_PEL_b[4]; + }; + + union + { + __IOM uint8_t ELC_DPTC; /*!< (@ 0x00000E10) ELC Edge Detection Control Register */ + + struct + { + __IOM uint8_t PTC0 : 1; /*!< [0..0] Single Input Port n Edge Detection */ + __IOM uint8_t PTC1 : 1; /*!< [1..1] Single Input Port n Edge Detection */ + __IOM uint8_t PTC2 : 1; /*!< [2..2] Single Input Port n Edge Detection */ + __IOM uint8_t PTC3 : 1; /*!< [3..3] Single Input Port n Edge Detection */ + uint8_t : 4; + } ELC_DPTC_b; + }; + + union + { + __IOM uint8_t ELC_ELSR2; /*!< (@ 0x00000E11) ELC Port Event Control Register */ + + struct + { + uint8_t : 2; + __IOM uint8_t PEG1 : 1; /*!< [2..2] ELC Port Buffer Register (ELC_PDBFn) write access control. + * When set to 1, writing to the ELC_PDBFn register via Internal + * peripheral bus is disabled, preventing overwriting. */ + __IOM uint8_t PEG2 : 1; /*!< [3..3] ELC Port Buffer Register (ELC_PDBFn) write access control. + * When set to 1, writing to the ELC_PDBFn register via Internal + * peripheral bus is disabled, preventing overwriting. */ + __IOM uint8_t PES0 : 1; /*!< [4..4] Single Port n Event Link Function Enable */ + __IOM uint8_t PES1 : 1; /*!< [5..5] Single Port n Event Link Function Enable */ + __IOM uint8_t PES2 : 1; /*!< [6..6] Single Port n Event Link Function Enable */ + __IOM uint8_t PES3 : 1; /*!< [7..7] Single Port n Event Link Function Enable */ + } ELC_ELSR2_b; + }; + __IM uint16_t RESERVED13; +} R_PORT_COMMON_Type; /*!< Size = 3604 (0xe14) */ + +/* =========================================================================================================================== */ +/* ================ R_GMAC ================ */ +/* =========================================================================================================================== */ + +/** + * @brief Ethernet MAC (R_GMAC) + */ + +typedef struct /*!< (@ 0x80100000) R_GMAC Structure */ +{ + union + { + __IOM uint32_t MAC_Configuration; /*!< (@ 0x00000000) MAC Configuration Register */ + + struct + { + __IOM uint32_t PRELEN : 2; /*!< [1..0] Preamble Length for Transmit Frames */ + __IOM uint32_t RE : 1; /*!< [2..2] Receiver Enable */ + __IOM uint32_t TE : 1; /*!< [3..3] Transmitter Enable */ + __IOM uint32_t DC : 1; /*!< [4..4] Deferral Check */ + __IOM uint32_t BL : 2; /*!< [6..5] Back-Off Limit */ + __IOM uint32_t ACS : 1; /*!< [7..7] Automatic Pad or CRC Stripping */ + uint32_t : 1; + __IOM uint32_t DR : 1; /*!< [9..9] Disable Retry */ + __IOM uint32_t IPC : 1; /*!< [10..10] Checksum Offload */ + __IOM uint32_t DM : 1; /*!< [11..11] Duplex Mode */ + __IOM uint32_t LM : 1; /*!< [12..12] Loopback Mode */ + __IOM uint32_t DO : 1; /*!< [13..13] Disable Receive Own */ + __IOM uint32_t FES : 1; /*!< [14..14] Speed */ + __IOM uint32_t PS : 1; /*!< [15..15] Port Select */ + __IOM uint32_t DCRS : 1; /*!< [16..16] Disable Carrier Sense During Transmission */ + __IOM uint32_t IFG : 3; /*!< [19..17] Inter-Frame Gap */ + __IOM uint32_t JE : 1; /*!< [20..20] Jumbo Frame Enable */ + __IOM uint32_t BE : 1; /*!< [21..21] Frame Burst Enable */ + __IOM uint32_t JD : 1; /*!< [22..22] Jabber Disable */ + __IOM uint32_t WD : 1; /*!< [23..23] Watchdog Disable */ + uint32_t : 1; + __IOM uint32_t CST : 1; /*!< [25..25] CRC Stripping for Type Frames */ + uint32_t : 1; + __IOM uint32_t TWOKPE : 1; /*!< [27..27] IEEE 802.3 as Support for 2 K Packets */ + uint32_t : 4; + } MAC_Configuration_b; + }; + + union + { + __IOM uint32_t MAC_Frame_Filter; /*!< (@ 0x00000004) MAC Frame Filter Register */ + + struct + { + __IOM uint32_t PR : 1; /*!< [0..0] Promiscuous Mode */ + __IOM uint32_t HUC : 1; /*!< [1..1] Hash Unicast */ + __IOM uint32_t HMC : 1; /*!< [2..2] Hash Multicast */ + __IOM uint32_t DAIF : 1; /*!< [3..3] DA Inverse Filtering */ + __IOM uint32_t PM : 1; /*!< [4..4] Pass All Multicast */ + __IOM uint32_t DBF : 1; /*!< [5..5] Disable Broadcast Frames */ + __IOM uint32_t PCF : 2; /*!< [7..6] Pass Control Frames */ + __IOM uint32_t SAIF : 1; /*!< [8..8] SA Inverse Filtering */ + __IOM uint32_t SAF : 1; /*!< [9..9] Source Address Filter Enable */ + __IOM uint32_t HPF : 1; /*!< [10..10] Hash or Perfect Filter */ + uint32_t : 5; + __IOM uint32_t VTFE : 1; /*!< [16..16] VLAN Tag Filter Enable */ + uint32_t : 14; + __IOM uint32_t RA : 1; /*!< [31..31] Receive All */ + } MAC_Frame_Filter_b; + }; + __IM uint32_t RESERVED[2]; + + union + { + __IOM uint32_t GMII_Address; /*!< (@ 0x00000010) GMII Address Register */ + + struct + { + __IOM uint32_t GB : 1; /*!< [0..0] GMII Busy */ + __IOM uint32_t GW : 1; /*!< [1..1] GMII Write */ + __IOM uint32_t CR : 4; /*!< [5..2] CSR Clock Range */ + __IOM uint32_t GR : 5; /*!< [10..6] GMII Register */ + __IOM uint32_t PA : 5; /*!< [15..11] Physical Layer Address */ + uint32_t : 16; + } GMII_Address_b; + }; + + union + { + __IOM uint32_t GMII_Data; /*!< (@ 0x00000014) GMII Data Register */ + + struct + { + __IOM uint32_t GD : 16; /*!< [15..0] GMII Data */ + uint32_t : 16; + } GMII_Data_b; + }; + + union + { + __IOM uint32_t Flow_Control; /*!< (@ 0x00000018) Flow Control Register */ + + struct + { + __IOM uint32_t FCA_BPA : 1; /*!< [0..0] Flow Control Busy or Backpressure Activate */ + __IOM uint32_t TFE : 1; /*!< [1..1] Transmit Flow Control Enable */ + __IOM uint32_t RFE : 1; /*!< [2..2] Receive Flow Control Enable */ + __IOM uint32_t UP : 1; /*!< [3..3] Unicast Pause Frame Detect */ + __IOM uint32_t PLT : 2; /*!< [5..4] Pause Low Threshold */ + uint32_t : 1; + __IOM uint32_t DZPQ : 1; /*!< [7..7] Disable Zero-Quanta Pause */ + uint32_t : 8; + __IOM uint32_t PT : 16; /*!< [31..16] Pause Time */ + } Flow_Control_b; + }; + + union + { + __IOM uint32_t VLAN_Tag; /*!< (@ 0x0000001C) VLAN Tag Register */ + + struct + { + __IOM uint32_t VL : 16; /*!< [15..0] VLAN Tag Identifier for Receive Frames */ + __IOM uint32_t ETV : 1; /*!< [16..16] Enable 12-Bit VLAN Tag Comparison */ + __IOM uint32_t VTIM : 1; /*!< [17..17] VLAN Tag Inverse Match Enable */ + __IOM uint32_t ESVL : 1; /*!< [18..18] Enable S-VLAN */ + __IOM uint32_t VTHM : 1; /*!< [19..19] VLAN Tag Hash Table Match Enable */ + uint32_t : 12; + } VLAN_Tag_b; + }; + + union + { + __IM uint32_t Version; /*!< (@ 0x00000020) Version Register */ + + struct + { + __IM uint32_t VER : 16; /*!< [15..0] Version (GMAC: 0x3037) */ + uint32_t : 16; + } Version_b; + }; + + union + { + __IM uint32_t Debug; /*!< (@ 0x00000024) Debug Register */ + + struct + { + __IM uint32_t RPESTS : 1; /*!< [0..0] GMAC GMII or MII Receive Protocol Engine Status */ + __IM uint32_t RFCFCSTS : 2; /*!< [2..1] GMAC Receive Frame Controller FIFO Status */ + uint32_t : 1; + __IM uint32_t RWCSTS : 1; /*!< [4..4] MTL RX FIFO Write Controller Active Status */ + __IM uint32_t RRCSTS : 2; /*!< [6..5] MTL RX FIFO Read Controller State */ + uint32_t : 1; + __IM uint32_t RXFSTS : 2; /*!< [9..8] MTL RX FIFO Fill-level Status */ + uint32_t : 6; + __IM uint32_t TPESTS : 1; /*!< [16..16] GMAC GMII or MII Transmit Protocol Engine Status */ + __IM uint32_t TFCSTS : 2; /*!< [18..17] GMAC Transmit Frame Controller Status */ + __IM uint32_t TXPAUSED : 1; /*!< [19..19] GMAC transmitter in PAUSE */ + __IM uint32_t TRCSTS : 2; /*!< [21..20] MTL TX FIFO Read Controller Status */ + __IM uint32_t TWCSTS : 1; /*!< [22..22] MTL TX FIFO Write Controller Active Status */ + uint32_t : 1; + __IM uint32_t TXFSTS : 1; /*!< [24..24] MTL TX FIFO Not Empty Status */ + __IM uint32_t TXSTSFSTS : 1; /*!< [25..25] MTL TX Status FIFO Full Status */ + uint32_t : 6; + } Debug_b; + }; + + union + { + __IOM uint32_t Remote_Wake_Up_Frame_Filter; /*!< (@ 0x00000028) Remote Wake-Up Frame Filter Register */ + + struct + { + __IOM uint32_t WKUPFRMFTR : 32; /*!< [31..0] Remote Wake-Up Frame Filter */ + } Remote_Wake_Up_Frame_Filter_b; + }; + + union + { + __IOM uint32_t PMT_Control_Status; /*!< (@ 0x0000002C) PMT Control and Status Register */ + + struct + { + __IOM uint32_t PWRDWN : 1; /*!< [0..0] Power Down */ + __IOM uint32_t MGKPKTEN : 1; /*!< [1..1] Magic Packet Enable */ + __IOM uint32_t RWKPKTEN : 1; /*!< [2..2] Wake-Up Frame Enable */ + uint32_t : 2; + __IM uint32_t MGKPRCVD : 1; /*!< [5..5] Magic Packet Received */ + __IM uint32_t RWKPRCVD : 1; /*!< [6..6] Wake-Up Frame Received */ + uint32_t : 2; + __IOM uint32_t GLBLUCAST : 1; /*!< [9..9] Global Unicast */ + uint32_t : 14; + __IM uint32_t RWKPTR : 3; /*!< [26..24] Remote Wake-Up FIFO Pointer */ + uint32_t : 4; + __IOM uint32_t RWKFILTRST : 1; /*!< [31..31] Wake-Up Frame Filter Register Pointer Reset */ + } PMT_Control_Status_b; + }; + + union + { + __IOM uint32_t LPI_Control_Status; /*!< (@ 0x00000030) LPI Control and Status Register */ + + struct + { + __IM uint32_t TLPIEN : 1; /*!< [0..0] Transmit LPI Entry */ + __IM uint32_t TLPIEX : 1; /*!< [1..1] Transmit LPI Exit */ + __IM uint32_t RLPIEN : 1; /*!< [2..2] Receive LPI Entry */ + __IM uint32_t RLPIEX : 1; /*!< [3..3] Receive LPI Exit */ + uint32_t : 4; + __IM uint32_t TLPIST : 1; /*!< [8..8] Transmit LPI State */ + __IM uint32_t RLPIST : 1; /*!< [9..9] Receive LPI State */ + uint32_t : 6; + __IOM uint32_t LPIEN : 1; /*!< [16..16] LPI Enable */ + __IOM uint32_t PLS : 1; /*!< [17..17] PHY Link Status */ + uint32_t : 1; + __IOM uint32_t LPITXA : 1; /*!< [19..19] LPI TX Automate */ + uint32_t : 12; + } LPI_Control_Status_b; + }; + + union + { + __IOM uint32_t LPI_Timers_Control; /*!< (@ 0x00000034) LPI Timers Control Register */ + + struct + { + __IOM uint32_t TWT : 16; /*!< [15..0] LPI TW Timer */ + __IOM uint32_t LST : 10; /*!< [25..16] LPI LS Timer */ + uint32_t : 6; + } LPI_Timers_Control_b; + }; + + union + { + __IM uint32_t Interrupt_Status; /*!< (@ 0x00000038) Interrupt Status Register */ + + struct + { + uint32_t : 3; + __IM uint32_t PMTIS : 1; /*!< [3..3] PMT Interrupt Status */ + __IM uint32_t MMCIS : 1; /*!< [4..4] MMC Interrupt Status */ + __IM uint32_t MMCRXIS : 1; /*!< [5..5] MMC Receive Interrupt Status */ + __IM uint32_t MMCTXIS : 1; /*!< [6..6] MMC Transmit Interrupt Status */ + __IM uint32_t MMCRXIPIS : 1; /*!< [7..7] MMC Receive Checksum Offload Interrupt Status */ + uint32_t : 1; + __IM uint32_t TSIS : 1; /*!< [9..9] Timestamp Interrupt Status */ + __IM uint32_t LPIIS : 1; /*!< [10..10] LPI Interrupt Status */ + uint32_t : 21; + } Interrupt_Status_b; + }; + + union + { + __IOM uint32_t Interrupt_Mask; /*!< (@ 0x0000003C) Interrupt Mask Register */ + + struct + { + uint32_t : 3; + __IOM uint32_t PMTIM : 1; /*!< [3..3] PMT Interrupt Mask */ + uint32_t : 5; + __IOM uint32_t TSIM : 1; /*!< [9..9] Timestamp Interrupt Mask */ + __IOM uint32_t LPIIM : 1; /*!< [10..10] LPI Interrupt Mask */ + uint32_t : 21; + } Interrupt_Mask_b; + }; + + union + { + __IOM uint32_t MAR0_H; /*!< (@ 0x00000040) MAC Address 0 High Register */ + + struct + { + __IOM uint32_t ADDRHI : 16; /*!< [15..0] MAC Address0[47:32] */ + uint32_t : 15; + __IM uint32_t AE : 1; /*!< [31..31] Address Enable */ + } MAR0_H_b; + }; + + union + { + __IOM uint32_t MAR0_L; /*!< (@ 0x00000044) MAC Address 0 Low Register */ + + struct + { + __IOM uint32_t ADDRLO : 32; /*!< [31..0] MAC Address0[31:0] */ + } MAR0_L_b; + }; + + union + { + __IOM uint32_t MAR1_H; /*!< (@ 0x00000048) MAC ADDRESS High Register */ + + struct + { + __IOM uint32_t ADDRHI : 16; /*!< [15..0] MAC Address n[47:32] */ + uint32_t : 8; + __IOM uint32_t MBC : 6; /*!< [29..24] Mask Byte Control */ + __IOM uint32_t SA : 1; /*!< [30..30] Source Address */ + __IOM uint32_t AE : 1; /*!< [31..31] Address Enable */ + } MAR1_H_b; + }; + + union + { + __IOM uint32_t MAR1_L; /*!< (@ 0x0000004C) MAC ADDRESS Low Register */ + + struct + { + __IOM uint32_t ADDRLO : 32; /*!< [31..0] MAC Address n[31:0] */ + } MAR1_L_b; + }; + + union + { + __IOM uint32_t MAR2_H; /*!< (@ 0x00000050) MAC ADDRESS High Register */ + + struct + { + __IOM uint32_t ADDRHI : 16; /*!< [15..0] MAC Address n[47:32] */ + uint32_t : 8; + __IOM uint32_t MBC : 6; /*!< [29..24] Mask Byte Control */ + __IOM uint32_t SA : 1; /*!< [30..30] Source Address */ + __IOM uint32_t AE : 1; /*!< [31..31] Address Enable */ + } MAR2_H_b; + }; + + union + { + __IOM uint32_t MAR2_L; /*!< (@ 0x00000054) MAC ADDRESS Low Register */ + + struct + { + __IOM uint32_t ADDRLO : 32; /*!< [31..0] MAC Address n[31:0] */ + } MAR2_L_b; + }; + + union + { + __IOM uint32_t MAR3_H; /*!< (@ 0x00000058) MAC ADDRESS High Register */ + + struct + { + __IOM uint32_t ADDRHI : 16; /*!< [15..0] MAC Address n[47:32] */ + uint32_t : 8; + __IOM uint32_t MBC : 6; /*!< [29..24] Mask Byte Control */ + __IOM uint32_t SA : 1; /*!< [30..30] Source Address */ + __IOM uint32_t AE : 1; /*!< [31..31] Address Enable */ + } MAR3_H_b; + }; + + union + { + __IOM uint32_t MAR3_L; /*!< (@ 0x0000005C) MAC ADDRESS Low Register */ + + struct + { + __IOM uint32_t ADDRLO : 32; /*!< [31..0] MAC Address n[31:0] */ + } MAR3_L_b; + }; + + union + { + __IOM uint32_t MAR4_H; /*!< (@ 0x00000060) MAC ADDRESS High Register */ + + struct + { + __IOM uint32_t ADDRHI : 16; /*!< [15..0] MAC Address n[47:32] */ + uint32_t : 8; + __IOM uint32_t MBC : 6; /*!< [29..24] Mask Byte Control */ + __IOM uint32_t SA : 1; /*!< [30..30] Source Address */ + __IOM uint32_t AE : 1; /*!< [31..31] Address Enable */ + } MAR4_H_b; + }; + + union + { + __IOM uint32_t MAR4_L; /*!< (@ 0x00000064) MAC ADDRESS Low Register */ + + struct + { + __IOM uint32_t ADDRLO : 32; /*!< [31..0] MAC Address n[31:0] */ + } MAR4_L_b; + }; + + union + { + __IOM uint32_t MAR5_H; /*!< (@ 0x00000068) MAC ADDRESS High Register */ + + struct + { + __IOM uint32_t ADDRHI : 16; /*!< [15..0] MAC Address n[47:32] */ + uint32_t : 8; + __IOM uint32_t MBC : 6; /*!< [29..24] Mask Byte Control */ + __IOM uint32_t SA : 1; /*!< [30..30] Source Address */ + __IOM uint32_t AE : 1; /*!< [31..31] Address Enable */ + } MAR5_H_b; + }; + + union + { + __IOM uint32_t MAR5_L; /*!< (@ 0x0000006C) MAC ADDRESS Low Register */ + + struct + { + __IOM uint32_t ADDRLO : 32; /*!< [31..0] MAC Address n[31:0] */ + } MAR5_L_b; + }; + + union + { + __IOM uint32_t MAR6_H; /*!< (@ 0x00000070) MAC ADDRESS High Register */ + + struct + { + __IOM uint32_t ADDRHI : 16; /*!< [15..0] MAC Address n[47:32] */ + uint32_t : 8; + __IOM uint32_t MBC : 6; /*!< [29..24] Mask Byte Control */ + __IOM uint32_t SA : 1; /*!< [30..30] Source Address */ + __IOM uint32_t AE : 1; /*!< [31..31] Address Enable */ + } MAR6_H_b; + }; + + union + { + __IOM uint32_t MAR6_L; /*!< (@ 0x00000074) MAC ADDRESS Low Register */ + + struct + { + __IOM uint32_t ADDRLO : 32; /*!< [31..0] MAC Address n[31:0] */ + } MAR6_L_b; + }; + + union + { + __IOM uint32_t MAR7_H; /*!< (@ 0x00000078) MAC ADDRESS High Register */ + + struct + { + __IOM uint32_t ADDRHI : 16; /*!< [15..0] MAC Address n[47:32] */ + uint32_t : 8; + __IOM uint32_t MBC : 6; /*!< [29..24] Mask Byte Control */ + __IOM uint32_t SA : 1; /*!< [30..30] Source Address */ + __IOM uint32_t AE : 1; /*!< [31..31] Address Enable */ + } MAR7_H_b; + }; + + union + { + __IOM uint32_t MAR7_L; /*!< (@ 0x0000007C) MAC ADDRESS Low Register */ + + struct + { + __IOM uint32_t ADDRLO : 32; /*!< [31..0] MAC Address n[31:0] */ + } MAR7_L_b; + }; + + union + { + __IOM uint32_t MAR8_H; /*!< (@ 0x00000080) MAC ADDRESS High Register */ + + struct + { + __IOM uint32_t ADDRHI : 16; /*!< [15..0] MAC Address n[47:32] */ + uint32_t : 8; + __IOM uint32_t MBC : 6; /*!< [29..24] Mask Byte Control */ + __IOM uint32_t SA : 1; /*!< [30..30] Source Address */ + __IOM uint32_t AE : 1; /*!< [31..31] Address Enable */ + } MAR8_H_b; + }; + + union + { + __IOM uint32_t MAR8_L; /*!< (@ 0x00000084) MAC ADDRESS Low Register */ + + struct + { + __IOM uint32_t ADDRLO : 32; /*!< [31..0] MAC Address n[31:0] */ + } MAR8_L_b; + }; + + union + { + __IOM uint32_t MAR9_H; /*!< (@ 0x00000088) MAC ADDRESS High Register */ + + struct + { + __IOM uint32_t ADDRHI : 16; /*!< [15..0] MAC Address n[47:32] */ + uint32_t : 8; + __IOM uint32_t MBC : 6; /*!< [29..24] Mask Byte Control */ + __IOM uint32_t SA : 1; /*!< [30..30] Source Address */ + __IOM uint32_t AE : 1; /*!< [31..31] Address Enable */ + } MAR9_H_b; + }; + + union + { + __IOM uint32_t MAR9_L; /*!< (@ 0x0000008C) MAC ADDRESS Low Register */ + + struct + { + __IOM uint32_t ADDRLO : 32; /*!< [31..0] MAC Address n[31:0] */ + } MAR9_L_b; + }; + + union + { + __IOM uint32_t MAR10_H; /*!< (@ 0x00000090) MAC ADDRESS High Register */ + + struct + { + __IOM uint32_t ADDRHI : 16; /*!< [15..0] MAC Address n[47:32] */ + uint32_t : 8; + __IOM uint32_t MBC : 6; /*!< [29..24] Mask Byte Control */ + __IOM uint32_t SA : 1; /*!< [30..30] Source Address */ + __IOM uint32_t AE : 1; /*!< [31..31] Address Enable */ + } MAR10_H_b; + }; + + union + { + __IOM uint32_t MAR10_L; /*!< (@ 0x00000094) MAC ADDRESS Low Register */ + + struct + { + __IOM uint32_t ADDRLO : 32; /*!< [31..0] MAC Address n[31:0] */ + } MAR10_L_b; + }; + + union + { + __IOM uint32_t MAR11_H; /*!< (@ 0x00000098) MAC ADDRESS High Register */ + + struct + { + __IOM uint32_t ADDRHI : 16; /*!< [15..0] MAC Address n[47:32] */ + uint32_t : 8; + __IOM uint32_t MBC : 6; /*!< [29..24] Mask Byte Control */ + __IOM uint32_t SA : 1; /*!< [30..30] Source Address */ + __IOM uint32_t AE : 1; /*!< [31..31] Address Enable */ + } MAR11_H_b; + }; + + union + { + __IOM uint32_t MAR11_L; /*!< (@ 0x0000009C) MAC ADDRESS Low Register */ + + struct + { + __IOM uint32_t ADDRLO : 32; /*!< [31..0] MAC Address n[31:0] */ + } MAR11_L_b; + }; + + union + { + __IOM uint32_t MAR12_H; /*!< (@ 0x000000A0) MAC ADDRESS High Register */ + + struct + { + __IOM uint32_t ADDRHI : 16; /*!< [15..0] MAC Address n[47:32] */ + uint32_t : 8; + __IOM uint32_t MBC : 6; /*!< [29..24] Mask Byte Control */ + __IOM uint32_t SA : 1; /*!< [30..30] Source Address */ + __IOM uint32_t AE : 1; /*!< [31..31] Address Enable */ + } MAR12_H_b; + }; + + union + { + __IOM uint32_t MAR12_L; /*!< (@ 0x000000A4) MAC ADDRESS Low Register */ + + struct + { + __IOM uint32_t ADDRLO : 32; /*!< [31..0] MAC Address n[31:0] */ + } MAR12_L_b; + }; + + union + { + __IOM uint32_t MAR13_H; /*!< (@ 0x000000A8) MAC ADDRESS High Register */ + + struct + { + __IOM uint32_t ADDRHI : 16; /*!< [15..0] MAC Address n[47:32] */ + uint32_t : 8; + __IOM uint32_t MBC : 6; /*!< [29..24] Mask Byte Control */ + __IOM uint32_t SA : 1; /*!< [30..30] Source Address */ + __IOM uint32_t AE : 1; /*!< [31..31] Address Enable */ + } MAR13_H_b; + }; + + union + { + __IOM uint32_t MAR13_L; /*!< (@ 0x000000AC) MAC ADDRESS Low Register */ + + struct + { + __IOM uint32_t ADDRLO : 32; /*!< [31..0] MAC Address n[31:0] */ + } MAR13_L_b; + }; + + union + { + __IOM uint32_t MAR14_H; /*!< (@ 0x000000B0) MAC ADDRESS High Register */ + + struct + { + __IOM uint32_t ADDRHI : 16; /*!< [15..0] MAC Address n[47:32] */ + uint32_t : 8; + __IOM uint32_t MBC : 6; /*!< [29..24] Mask Byte Control */ + __IOM uint32_t SA : 1; /*!< [30..30] Source Address */ + __IOM uint32_t AE : 1; /*!< [31..31] Address Enable */ + } MAR14_H_b; + }; + + union + { + __IOM uint32_t MAR14_L; /*!< (@ 0x000000B4) MAC ADDRESS Low Register */ + + struct + { + __IOM uint32_t ADDRLO : 32; /*!< [31..0] MAC Address n[31:0] */ + } MAR14_L_b; + }; + + union + { + __IOM uint32_t MAR15_H; /*!< (@ 0x000000B8) MAC ADDRESS High Register */ + + struct + { + __IOM uint32_t ADDRHI : 16; /*!< [15..0] MAC Address n[47:32] */ + uint32_t : 8; + __IOM uint32_t MBC : 6; /*!< [29..24] Mask Byte Control */ + __IOM uint32_t SA : 1; /*!< [30..30] Source Address */ + __IOM uint32_t AE : 1; /*!< [31..31] Address Enable */ + } MAR15_H_b; + }; + + union + { + __IOM uint32_t MAR15_L; /*!< (@ 0x000000BC) MAC ADDRESS Low Register */ + + struct + { + __IOM uint32_t ADDRLO : 32; /*!< [31..0] MAC Address n[31:0] */ + } MAR15_L_b; + }; + __IM uint32_t RESERVED1[7]; + + union + { + __IOM uint32_t WDog_Timeout; /*!< (@ 0x000000DC) Watchdog Timeout Register */ + + struct + { + __IOM uint32_t WTO : 14; /*!< [13..0] Watchdog Timeout */ + uint32_t : 2; + __IOM uint32_t PWE : 1; /*!< [16..16] Programmable Watchdog Enable */ + uint32_t : 15; + } WDog_Timeout_b; + }; + __IM uint32_t RESERVED2[8]; + + union + { + __IOM uint32_t MMC_Control; /*!< (@ 0x00000100) MMC Control Register */ + + struct + { + __IOM uint32_t CNTRST : 1; /*!< [0..0] Counters Reset */ + __IOM uint32_t CNTSTOPRO : 1; /*!< [1..1] Counters Stop Rollover */ + __IOM uint32_t RSTONRD : 1; /*!< [2..2] Reset on Read */ + __IOM uint32_t CNTFREEZ : 1; /*!< [3..3] MMC Counter Freeze */ + __IOM uint32_t CNTPRST : 1; /*!< [4..4] Counters Preset */ + __IOM uint32_t CNTPRSTLVL : 1; /*!< [5..5] Full-Half Preset */ + uint32_t : 2; + __IOM uint32_t UCDBC : 1; /*!< [8..8] Update MMC Counters for Dropped Broadcast Frames */ + uint32_t : 23; + } MMC_Control_b; + }; + + union + { + __IM uint32_t MMC_Receive_Interrupt; /*!< (@ 0x00000104) MMC Receive Interrupt Register */ + + struct + { + __IM uint32_t RXGBFRMIS : 1; /*!< [0..0] MMC Receive Good Bad Frame Counter Interrupt Status */ + __IM uint32_t RXGBOCTIS : 1; /*!< [1..1] MMC Receive Good Bad Octet Counter Interrupt Status */ + __IM uint32_t RXGOCTIS : 1; /*!< [2..2] MMC Receive Good Octet Counter Interrupt Status */ + __IM uint32_t RXBCGFIS : 1; /*!< [3..3] MMC Receive Broadcast Good Frame Counter Interrupt Status */ + __IM uint32_t RXMCGFIS : 1; /*!< [4..4] MMC Receive Multicast Good Frame Counter Interrupt Status */ + __IM uint32_t RXCRCERFIS : 1; /*!< [5..5] MMC Receive CRC Error Frame Counter Interrupt Status */ + __IM uint32_t RXALGNERFIS : 1; /*!< [6..6] MMC Receive Alignment Error Frame Counter Interrupt Status */ + __IM uint32_t RXRUNTFIS : 1; /*!< [7..7] MMC Receive Runt Frame Counter Interrupt Status */ + __IM uint32_t RXJABERFIS : 1; /*!< [8..8] MMC Receive Jabber Error Frame Counter Interrupt Status */ + __IM uint32_t RXUSIZEGFIS : 1; /*!< [9..9] MMC Receive Undersize Good Frame Counter Interrupt Status */ + __IM uint32_t RXOSIZEGFIS : 1; /*!< [10..10] MMC Receive Oversize Good Frame Counter Interrupt Status */ + __IM uint32_t RX64OCTGBFIS : 1; /*!< [11..11] MMC Receive 64 Octet Good Bad Frame Counter Interrupt + * Status */ + __IM uint32_t RX65T127OCTGBFIS : 1; /*!< [12..12] MMC Receive 65 to 127 Octet Good Bad Frame Counter + * Interrupt Status */ + __IM uint32_t RX128T255OCTGBFIS : 1; /*!< [13..13] MMC Receive 128 to 255 Octet Good Bad Frame Counter + * Interrupt Status */ + __IM uint32_t RX256T511OCTGBFIS : 1; /*!< [14..14] MMC Receive 256 to 511 Octet Good Bad Frame Counter + * Interrupt Status */ + __IM uint32_t RX512T1023OCTGBFIS : 1; /*!< [15..15] MMC Receive 512 to 1023 Octet Good Bad Frame Counter + * Interrupt Status */ + __IM uint32_t RX1024TMAXOCTGBFIS : 1; /*!< [16..16] MMC Receive 1024 to Maximum Octet Good Bad Frame Counter + * Interrupt Status */ + __IM uint32_t RXUCGFIS : 1; /*!< [17..17] MMC Receive Unicast Good Frame Counter Interrupt Status */ + __IM uint32_t RXLENERFIS : 1; /*!< [18..18] MMC Receive Length Error Frame Counter Interrupt Status */ + __IM uint32_t RXORANGEFIS : 1; /*!< [19..19] MMC Receive Out Of Range Error Frame Counter Interrupt + * Status */ + __IM uint32_t RXPAUSFIS : 1; /*!< [20..20] MMC Receive Pause Frame Counter Interrupt Status */ + __IM uint32_t RXFOVFIS : 1; /*!< [21..21] MMC Receive FIFO Overflow Frame Counter Interrupt Status */ + __IM uint32_t RXVLANGBFIS : 1; /*!< [22..22] MMC Receive VLAN Good Bad Frame Counter Interrupt Status */ + __IM uint32_t RXWDOGFIS : 1; /*!< [23..23] MMC Receive Watchdog Error Frame Counter Interrupt + * Status */ + __IM uint32_t RXRCVERRFIS : 1; /*!< [24..24] MMC Receive Error Frame Counter Interrupt Status */ + __IM uint32_t RXCTRLFIS : 1; /*!< [25..25] MMC Receive Control Frame Counter Interrupt Status */ + uint32_t : 6; + } MMC_Receive_Interrupt_b; + }; + + union + { + __IM uint32_t MMC_Transmit_Interrupt; /*!< (@ 0x00000108) MMC Transmit Interrupt Register */ + + struct + { + __IM uint32_t TXGBOCTIS : 1; /*!< [0..0] MMC Transmit Good Bad Octet Counter Interrupt Status */ + __IM uint32_t TXGBFRMIS : 1; /*!< [1..1] MMC Transmit Good Bad Frame Counter Interrupt Status */ + __IM uint32_t TXBCGFIS : 1; /*!< [2..2] MMC Transmit Broadcast Good Frame Counter Interrupt Status */ + __IM uint32_t TXMCGFIS : 1; /*!< [3..3] MMC Transmit Multicast Good Frame Counter Interrupt Status */ + __IM uint32_t TX64OCTGBFIS : 1; /*!< [4..4] MMC Transmit 64 Octet Good Bad Frame Counter Interrupt + * Status */ + __IM uint32_t TX65T127OCTGBFIS : 1; /*!< [5..5] MMC Transmit 65 to 127 Octet Good Bad Frame Counter Interrupt + * Status */ + __IM uint32_t TX128T255OCTGBFIS : 1; /*!< [6..6] MMC Transmit 128 to 255 Octet Good Bad Frame Counter + * Interrupt Status */ + __IM uint32_t TX256T511OCTGBFIS : 1; /*!< [7..7] MMC Transmit 256 to 511 Octet Good Bad Frame Counter + * Interrupt Status */ + __IM uint32_t TX512T1023OCTGBFIS : 1; /*!< [8..8] MMC Transmit 512 to 1023 Octet Good Bad Frame Counter + * Interrupt Status */ + __IM uint32_t TX1024TMAXOCTGBFIS : 1; /*!< [9..9] MMC Transmit 1024 to Maximum Octet Good Bad Frame Counter + * Interrupt Status */ + __IM uint32_t TXUCGBFIS : 1; /*!< [10..10] MMC Transmit Unicast Good Bad Frame Counter Interrupt + * Status */ + __IM uint32_t TXMCGBFIS : 1; /*!< [11..11] MMC Transmit Multicast Good Bad Frame Counter Interrupt + * Status */ + __IM uint32_t TXBCGBFIS : 1; /*!< [12..12] MMC Transmit Broadcast Good Bad Frame Counter Interrupt + * Status */ + __IM uint32_t TXUFLOWERFIS : 1; /*!< [13..13] MMC Transmit Underflow Error Frame Counter Interrupt + * Status */ + __IM uint32_t TXSCOLGFIS : 1; /*!< [14..14] MMC Transmit Single Collision Good Frame Counter Interrupt + * Status */ + __IM uint32_t TXMCOLGFIS : 1; /*!< [15..15] MMC Transmit Multiple Collision Good Frame Counter + * Interrupt Status */ + __IM uint32_t TXDEFFIS : 1; /*!< [16..16] MMC Transmit Deferred Frame Counter Interrupt Status */ + __IM uint32_t TXLATCOLFIS : 1; /*!< [17..17] MMC Transmit Late Collision Frame Counter Interrupt + * Status */ + __IM uint32_t TXEXCOLFIS : 1; /*!< [18..18] MMC Transmit Excessive Collision Frame Counter Interrupt + * Status */ + __IM uint32_t TXCARERFIS : 1; /*!< [19..19] MMC Transmit Carrier Error Frame Counter Interrupt + * Status */ + __IM uint32_t TXGOCTIS : 1; /*!< [20..20] MMC Transmit Good Octet Counter Interrupt Status */ + __IM uint32_t TXGFRMIS : 1; /*!< [21..21] MMC Transmit Good Frame Counter Interrupt Status */ + __IM uint32_t TXEXDEFFIS : 1; /*!< [22..22] MMC Transmit Excessive Deferral Frame Counter Interrupt + * Status */ + __IM uint32_t TXPAUSFIS : 1; /*!< [23..23] MMC Transmit Pause Frame Counter Interrupt Status */ + __IM uint32_t TXVLANGFIS : 1; /*!< [24..24] MMC Transmit VLAN Good Frame Counter Interrupt Status */ + __IM uint32_t TXOSIZEGFIS : 1; /*!< [25..25] MMC Transmit Oversize Good Frame Counter Interrupt + * Status */ + uint32_t : 6; + } MMC_Transmit_Interrupt_b; + }; + + union + { + __IOM uint32_t MMC_Receive_Interrupt_Mask; /*!< (@ 0x0000010C) MMC Receive Interrupt Mask Register */ + + struct + { + __IOM uint32_t RXGBFRMIM : 1; /*!< [0..0] MMC Receive Good Bad Frame Counter Interrupt Mask */ + __IOM uint32_t RXGBOCTIM : 1; /*!< [1..1] MMC Receive Good Bad Octet Counter Interrupt Mask */ + __IOM uint32_t RXGOCTIM : 1; /*!< [2..2] MMC Receive Good Octet Counter Interrupt Mask */ + __IOM uint32_t RXBCGFIM : 1; /*!< [3..3] MMC Receive Broadcast Good Frame Counter Interrupt Mask */ + __IOM uint32_t RXMCGFIM : 1; /*!< [4..4] MMC Receive Multicast Good Frame Counter Interrupt Mask */ + __IOM uint32_t RXCRCERFIM : 1; /*!< [5..5] MMC Receive CRC Error Frame Counter Interrupt Mask */ + __IOM uint32_t RXALGNERFIM : 1; /*!< [6..6] MMC Receive Alignment Error Frame Counter Interrupt Mask */ + __IOM uint32_t RXRUNTFIM : 1; /*!< [7..7] MMC Receive Runt Frame Counter Interrupt Mask */ + __IOM uint32_t RXJABERFIM : 1; /*!< [8..8] MMC Receive Jabber Error Frame Counter Interrupt Mask */ + __IOM uint32_t RXUSIZEGFIM : 1; /*!< [9..9] MMC Receive Undersize Good Frame Counter Interrupt Mask */ + __IOM uint32_t RXOSIZEGFIM : 1; /*!< [10..10] MMC Receive Oversize Good Frame Counter Interrupt Mask */ + __IOM uint32_t RX64OCTGBFIM : 1; /*!< [11..11] MMC Receive 64 Octet Good Bad Frame Counter Interrupt + * Mask */ + __IOM uint32_t RX65T127OCTGBFIM : 1; /*!< [12..12] MMC Receive 65 to 127 Octet Good Bad Frame Counter + * Interrupt Mask */ + __IOM uint32_t RX128T255OCTGBFIM : 1; /*!< [13..13] MMC Receive 128 to 255 Octet Good Bad Frame Counter + * Interrupt Mask */ + __IOM uint32_t RX256T511OCTGBFIM : 1; /*!< [14..14] MMC Receive 256 to 511 Octet Good Bad Frame Counter + * Interrupt Mask */ + __IOM uint32_t RX512T1023OCTGBFIM : 1; /*!< [15..15] MMC Receive 512 to 1023 Octet Good Bad Frame Counter + * Interrupt Mask */ + __IOM uint32_t RX1024TMAXOCTGBFIM : 1; /*!< [16..16] MMC Receive 1024 to Maximum Octet Good Bad Frame Counter + * Interrupt Mask */ + __IOM uint32_t RXUCGFIM : 1; /*!< [17..17] MMC Receive Unicast Good Frame Counter Interrupt Mask */ + __IOM uint32_t RXLENERFIM : 1; /*!< [18..18] MMC Receive Length Error Frame Counter Interrupt Mask */ + __IOM uint32_t RXORANGEFIM : 1; /*!< [19..19] MMC Receive Out Of Range Error Frame Counter Interrupt + * Mask */ + __IOM uint32_t RXPAUSFIM : 1; /*!< [20..20] MMC Receive Pause Frame Counter Interrupt Mask */ + __IOM uint32_t RXFOVFIM : 1; /*!< [21..21] MMC Receive FIFO Overflow Frame Counter Interrupt Mask */ + __IOM uint32_t RXVLANGBFIM : 1; /*!< [22..22] MMC Receive VLAN Good Bad Frame Counter Interrupt Mask */ + __IOM uint32_t RXWDOGFIM : 1; /*!< [23..23] MMC Receive Watchdog Error Frame Counter Interrupt + * Mask */ + __IOM uint32_t RXRCVERRFIM : 1; /*!< [24..24] MMC Receive Error Frame Counter Interrupt Mask */ + __IOM uint32_t RXCTRLFIM : 1; /*!< [25..25] MMC Receive Control Frame Counter Interrupt Mask */ + uint32_t : 6; + } MMC_Receive_Interrupt_Mask_b; + }; + + union + { + __IOM uint32_t MMC_Transmit_Interrupt_Mask; /*!< (@ 0x00000110) MMC Transmit Interrupt Mask Register */ + + struct + { + __IOM uint32_t TXGBOCTIM : 1; /*!< [0..0] MMC Transmit Good Bad Octet Counter Interrupt Mask */ + __IOM uint32_t TXGBFRMIM : 1; /*!< [1..1] MMC Transmit Good Bad Frame Counter Interrupt Mask */ + __IOM uint32_t TXBCGFIM : 1; /*!< [2..2] MMC Transmit Broadcast Good Frame Counter Interrupt Mask */ + __IOM uint32_t TXMCGFIM : 1; /*!< [3..3] MMC Transmit Multicast Good Frame Counter Interrupt Mask */ + __IOM uint32_t TX64OCTGBFIM : 1; /*!< [4..4] MMC Transmit 64 Octet Good Bad Frame Counter Interrupt + * Mask */ + __IOM uint32_t TX65T127OCTGBFIM : 1; /*!< [5..5] MMC Transmit 65 to 127 Octet Good Bad Frame Counter Interrupt + * Mask */ + __IOM uint32_t TX128T255OCTGBFIM : 1; /*!< [6..6] MMC Transmit 128 to 255 Octet Good Bad Frame Counter + * Interrupt Mask */ + __IOM uint32_t TX256T511OCTGBFIM : 1; /*!< [7..7] MMC Transmit 256 to 511 Octet Good Bad Frame Counter + * Interrupt Mask */ + __IOM uint32_t TX512T1023OCTGBFIM : 1; /*!< [8..8] MMC Transmit 512 to 1023 Octet Good Bad Frame Counter + * Interrupt Mask */ + __IOM uint32_t TX1024TMAXOCTGBFIM : 1; /*!< [9..9] MMC Transmit 1024 to Maximum Octet Good Bad Frame Counter + * Interrupt Mask */ + __IOM uint32_t TXUCGBFIM : 1; /*!< [10..10] MMC Transmit Unicast Good Bad Frame Counter Interrupt + * Mask */ + __IOM uint32_t TXMCGBFIM : 1; /*!< [11..11] MMC Transmit Multicast Good Bad Frame Counter Interrupt + * Mask */ + __IOM uint32_t TXBCGBFIM : 1; /*!< [12..12] MMC Transmit Broadcast Good Bad Frame Counter Interrupt + * Mask */ + __IOM uint32_t TXUFLOWERFIM : 1; /*!< [13..13] MMC Transmit Underflow Error Frame Counter Interrupt + * Mask */ + __IOM uint32_t TXSCOLGFIM : 1; /*!< [14..14] MMC Transmit Single Collision Good Frame Counter Interrupt + * Mask */ + __IOM uint32_t TXMCOLGFIM : 1; /*!< [15..15] MMC Transmit Multiple Collision Good Frame Counter + * Interrupt Mask */ + __IOM uint32_t TXDEFFIM : 1; /*!< [16..16] MMC Transmit Deferred Frame Counter Interrupt Mask */ + __IOM uint32_t TXLATCOLFIM : 1; /*!< [17..17] MMC Transmit Late Collision Frame Counter Interrupt + * Mask */ + __IOM uint32_t TXEXCOLFIM : 1; /*!< [18..18] MMC Transmit Excessive Collision Frame Counter Interrupt + * Mask */ + __IOM uint32_t TXCARERFIM : 1; /*!< [19..19] MMC Transmit Carrier Error Frame Counter Interrupt + * Mask */ + __IOM uint32_t TXGOCTIM : 1; /*!< [20..20] MMC Transmit Good Octet Counter Interrupt Mask */ + __IOM uint32_t TXGFRMIM : 1; /*!< [21..21] MMC Transmit Good Frame Counter Interrupt Mask */ + __IOM uint32_t TXEXDEFFIM : 1; /*!< [22..22] MMC Transmit Excessive Deferral Frame Counter Interrupt + * Mask */ + __IOM uint32_t TXPAUSFIM : 1; /*!< [23..23] MMC Transmit Pause Frame Counter Interrupt Mask */ + __IOM uint32_t TXVLANGFIM : 1; /*!< [24..24] MMC Transmit VLAN Good Frame Counter Interrupt Mask */ + __IOM uint32_t TXOSIZEGFIM : 1; /*!< [25..25] MMC Transmit Oversize Good Frame Counter Interrupt + * Mask */ + uint32_t : 6; + } MMC_Transmit_Interrupt_Mask_b; + }; + + union + { + __IM uint32_t Tx_Octet_Count_Good_Bad; /*!< (@ 0x00000114) Transmit Octet Count for Good and Bad Frames */ + + struct + { + __IM uint32_t TXOCTGB : 32; /*!< [31..0] This field indicates the number of bytes transmitted + * in good and bad frames exclusive of preamble and retried + * bytes. */ + } Tx_Octet_Count_Good_Bad_b; + }; + + union + { + __IM uint32_t Tx_Frame_Count_Good_Bad; /*!< (@ 0x00000118) Transmit Frame Count for Good and Bad Frames */ + + struct + { + __IM uint32_t TXFRMGB : 32; /*!< [31..0] This field indicates the number of good and bad frames + * transmitted, exclusive of retried frames. */ + } Tx_Frame_Count_Good_Bad_b; + }; + + union + { + __IM uint32_t Tx_Broadcast_Frames_Good; /*!< (@ 0x0000011C) Transmit Frame Count for Good Broadcast Frames */ + + struct + { + __IM uint32_t TXBCASTG : 32; /*!< [31..0] This field indicates the number of transmitted good + * broadcast frames. */ + } Tx_Broadcast_Frames_Good_b; + }; + + union + { + __IM uint32_t Tx_Multicast_Frames_Good; /*!< (@ 0x00000120) Transmit Frame Count for Good Multicast Frames */ + + struct + { + __IM uint32_t TXMCASTG : 32; /*!< [31..0] This field indicates the number of transmitted good + * multicast frames. */ + } Tx_Multicast_Frames_Good_b; + }; + + union + { + __IM uint32_t Tx_64Octets_Frames_Good_Bad; /*!< (@ 0x00000124) Transmit Octet Count for Good and Bad 64 Byte + * Frames */ + + struct + { + __IM uint32_t TX64OCTGB : 32; /*!< [31..0] This field indicates the number of transmitted good + * and bad frames with length of 64 bytes, exclusive of preamble + * and retried frames. */ + } Tx_64Octets_Frames_Good_Bad_b; + }; + + union + { + __IM uint32_t Tx_65To127Octets_Frames_Good_Bad; /*!< (@ 0x00000128) Transmit Octet Count for Good and Bad 65 to 127 + * Bytes Frames */ + + struct + { + __IM uint32_t TX65_127OCTGB : 32; /*!< [31..0] This field indicates the number of transmitted good + * and bad frames with length between 65 and 127 (inclusive) + * bytes, exclusive of preamble and retried frames. */ + } Tx_65To127Octets_Frames_Good_Bad_b; + }; + + union + { + __IM uint32_t Tx_128To255Octets_Frames_Good_Bad; /*!< (@ 0x0000012C) Transmit Octet Count for Good and Bad 128 to + * 255 Bytes Frames */ + + struct + { + __IM uint32_t TX128_255OCTGB : 32; /*!< [31..0] This field indicates the number of transmitted good + * and bad frames with length between 128 and 255 (inclusive) + * bytes, exclusive of preamble and retried frames. */ + } Tx_128To255Octets_Frames_Good_Bad_b; + }; + + union + { + __IM uint32_t Tx_256To511Octets_Frames_Good_Bad; /*!< (@ 0x00000130) Transmit Octet Count for Good and Bad 256 to + * 511 Bytes Frames */ + + struct + { + __IM uint32_t TX256_511OCTGB : 32; /*!< [31..0] This field indicates the number of transmitted good + * and bad frames with length between 256 and 511 (inclusive) + * bytes, exclusive of preamble and retried frames. */ + } Tx_256To511Octets_Frames_Good_Bad_b; + }; + + union + { + __IM uint32_t Tx_512To1023Octets_Frames_Good_Bad; /*!< (@ 0x00000134) Transmit Octet Count for Good and Bad 512 to + * 1023 Bytes Frames */ + + struct + { + __IM uint32_t TX512_1023OCTGB : 32; /*!< [31..0] This field indicates the number of transmitted good + * and bad frames with length between 512 and 1,023 (inclusive) + * bytes, exclusive of preamble and retried frames. */ + } Tx_512To1023Octets_Frames_Good_Bad_b; + }; + + union + { + __IM uint32_t Tx_1024ToMaxOctets_Frames_Good_Bad; /*!< (@ 0x00000138) Transmit Octet Count for Good and Bad 1024 to + * Maxsize Bytes Frames */ + + struct + { + __IM uint32_t TX1024_MAXOCTGB : 32; /*!< [31..0] This field indicates the number of good and bad frames + * transmitted with length between 1,024 and maxsize (inclusive) + * bytes, exclusive of preamble and retried frames. */ + } Tx_1024ToMaxOctets_Frames_Good_Bad_b; + }; + + union + { + __IM uint32_t Tx_Unicast_Frames_Good_Bad; /*!< (@ 0x0000013C) Transmit Frame Count for Good and Bad Unicast + * Frames */ + + struct + { + __IM uint32_t TXUCASTGB : 32; /*!< [31..0] This field indicates the number of transmitted good + * and bad unicast frames. */ + } Tx_Unicast_Frames_Good_Bad_b; + }; + + union + { + __IM uint32_t Tx_Multicast_Frames_Good_Bad; /*!< (@ 0x00000140) Transmit Frame Count for Good and Bad Multicast + * Frames */ + + struct + { + __IM uint32_t TXMCASTGB : 32; /*!< [31..0] This field indicates the number of transmitted good + * and bad multicast frames. */ + } Tx_Multicast_Frames_Good_Bad_b; + }; + + union + { + __IM uint32_t Tx_Broadcast_Frames_Good_Bad; /*!< (@ 0x00000144) Transmit Frame Count for Good and Bad Broadcast + * Frames */ + + struct + { + __IM uint32_t TXBCASTGB : 32; /*!< [31..0] This field indicates the number of transmitted good + * and bad broadcast frames. */ + } Tx_Broadcast_Frames_Good_Bad_b; + }; + + union + { + __IM uint32_t Tx_Underflow_Error_Frames; /*!< (@ 0x00000148) Transmit Frame Count for Underflow Error Frames */ + + struct + { + __IM uint32_t TXUNDRFLW : 16; /*!< [15..0] This field indicates the number of frames aborted because + * of frame underflow error. */ + uint32_t : 16; + } Tx_Underflow_Error_Frames_b; + }; + + union + { + __IM uint32_t Tx_Single_Collision_Good_Frames; /*!< (@ 0x0000014C) Transmit Frame Count for Frames Transmitted after + * Single Collision */ + + struct + { + __IM uint32_t TXSNGLCOLG : 16; /*!< [15..0] This field indicates the number of successfully transmitted + * frames after a single collision in the half-duplex mode. */ + uint32_t : 16; + } Tx_Single_Collision_Good_Frames_b; + }; + + union + { + __IM uint32_t Tx_Multiple_Collision_Good_Frames; /*!< (@ 0x00000150) Transmit Frame Count for Frames Transmitted after + * Multiple Collision */ + + struct + { + __IM uint32_t TXMULTCOLG : 16; /*!< [15..0] This field indicates the number of successfully transmitted + * frames after multiple collisions in the half-duplex mode. */ + uint32_t : 16; + } Tx_Multiple_Collision_Good_Frames_b; + }; + + union + { + __IM uint32_t Tx_Deferred_Frames; /*!< (@ 0x00000154) Transmit Frame Count for Deferred Frames */ + + struct + { + __IM uint32_t TXDEFRD : 16; /*!< [15..0] This field indicates the number of successfully transmitted + * frames after a deferral in the half-duplex mode. */ + uint32_t : 16; + } Tx_Deferred_Frames_b; + }; + + union + { + __IM uint32_t Tx_Late_Collision_Frames; /*!< (@ 0x00000158) Transmit Frame Count for Late Collision Error + * Frames */ + + struct + { + __IM uint32_t TXLATECOL : 16; /*!< [15..0] This field indicates the number of frames aborted because + * of late collision error. */ + uint32_t : 16; + } Tx_Late_Collision_Frames_b; + }; + + union + { + __IM uint32_t Tx_Excessive_Collision_Frames; /*!< (@ 0x0000015C) Transmit Frame Count for Excessive Collision + * Error Frames */ + + struct + { + __IM uint32_t TXEXSCOL : 16; /*!< [15..0] This field indicates the number of frames aborted because + * of excessive (16) collision error. */ + uint32_t : 16; + } Tx_Excessive_Collision_Frames_b; + }; + + union + { + __IM uint32_t Tx_Carrier_Error_Frames; /*!< (@ 0x00000160) Transmit Frame Count for Carrier Sense Error + * Frames */ + + struct + { + __IM uint32_t TXCARR : 16; /*!< [15..0] This field indicates the number of frames aborted because + * of carrier sense error (no carrier or loss of carrier). */ + uint32_t : 16; + } Tx_Carrier_Error_Frames_b; + }; + + union + { + __IM uint32_t Tx_Octet_Count_Good; /*!< (@ 0x00000164) Transmit Octet Count for Good Frames */ + + struct + { + __IM uint32_t TXOCTG : 32; /*!< [31..0] TXOCTG */ + } Tx_Octet_Count_Good_b; + }; + + union + { + __IM uint32_t Tx_Frame_Count_Good; /*!< (@ 0x00000168) Transmit Frame Count for Good Frames */ + + struct + { + __IM uint32_t TXFRMG : 32; /*!< [31..0] This field indicates the number of transmitted good + * frames, exclusive of preamble. */ + } Tx_Frame_Count_Good_b; + }; + + union + { + __IM uint32_t Tx_Excessive_Deferral_Error; /*!< (@ 0x0000016C) Transmit Frame Count for Excessive Deferral Error + * Frames */ + + struct + { + __IM uint32_t TXEXSDEF : 16; /*!< [15..0] This field indicates the number of frames aborted because + * of excessive deferral error, that is, frames deferred for + * more than two max sized frame times. */ + uint32_t : 16; + } Tx_Excessive_Deferral_Error_b; + }; + + union + { + __IM uint32_t Tx_Pause_Frames; /*!< (@ 0x00000170) Transmit Frame Count for Good PAUSE Frames */ + + struct + { + __IM uint32_t TXPAUSE : 16; /*!< [15..0] This field indicates the number of transmitted good + * PAUSE frames. */ + uint32_t : 16; + } Tx_Pause_Frames_b; + }; + + union + { + __IM uint32_t Tx_VLAN_Frames_Good; /*!< (@ 0x00000174) Transmit Frame Count for Good VLAN Frames */ + + struct + { + __IM uint32_t TXVLANG : 32; /*!< [31..0] This register maintains the number of transmitted good + * VLAN frames, exclusive of retried frames. */ + } Tx_VLAN_Frames_Good_b; + }; + + union + { + __IM uint32_t Tx_OSize_Frames_Good; /*!< (@ 0x00000178) Transmit Frame Count for Good Oversize Frames */ + + struct + { + __IM uint32_t TXOSIZG : 16; /*!< [15..0] This field indicates the number of frames transmitted + * without errors and with length greater than the maxsize + * (1,518 or 1,522 bytes for VLAN tagged frames; 2000 bytes + * if enabled in bit [27] of MAC Configuration Register (MAC_Configuration)) + */ + uint32_t : 16; + } Tx_OSize_Frames_Good_b; + }; + __IM uint32_t RESERVED3; + + union + { + __IM uint32_t Rx_Frames_Count_Good_Bad; /*!< (@ 0x00000180) Receive Frame Count for Good and Bad Frames */ + + struct + { + __IM uint32_t RXFRMGB : 32; /*!< [31..0] This field indicates the number of received good and + * bad frames. */ + } Rx_Frames_Count_Good_Bad_b; + }; + + union + { + __IM uint32_t Rx_Octet_Count_Good_Bad; /*!< (@ 0x00000184) Receive Octet Count for Good and Bad Frames */ + + struct + { + __IM uint32_t RXOCTGB : 32; /*!< [31..0] This field indicates the number of bytes received, exclusive + * of preamble, in good and bad frames. */ + } Rx_Octet_Count_Good_Bad_b; + }; + + union + { + __IM uint32_t Rx_Octet_Count_Good; /*!< (@ 0x00000188) Receive Octet Count for Good Frames */ + + struct + { + __IM uint32_t RXOCTG : 32; /*!< [31..0] This field indicates the number of bytes received, exclusive + * of preamble, only in good frames. */ + } Rx_Octet_Count_Good_b; + }; + + union + { + __IM uint32_t Rx_Broadcast_Frames_Good; /*!< (@ 0x0000018C) Receive Frame Count for Good Broadcast Frames */ + + struct + { + __IM uint32_t RXBCASTG : 32; /*!< [31..0] This field indicates the number of received good broadcast + * frames. */ + } Rx_Broadcast_Frames_Good_b; + }; + + union + { + __IM uint32_t Rx_Multicast_Frames_Good; /*!< (@ 0x00000190) Receive Frame Count for Good Multicast Frames */ + + struct + { + __IM uint32_t RXMCASTG : 32; /*!< [31..0] This field indicates the number of received good multicast + * frames. */ + } Rx_Multicast_Frames_Good_b; + }; + + union + { + __IM uint32_t Rx_CRC_Error_Frames; /*!< (@ 0x00000194) Receive Frame Count for CRC Error Frames */ + + struct + { + __IM uint32_t RXCRCERR : 16; /*!< [15..0] This field indicates the number of frames received with + * CRC error. */ + uint32_t : 16; + } Rx_CRC_Error_Frames_b; + }; + + union + { + __IM uint32_t Rx_Alignment_Error_Frames; /*!< (@ 0x00000198) Receive Frame Count for Alignment Error Frames */ + + struct + { + __IM uint32_t RXALGNERR : 16; /*!< [15..0] This field indicates the number of frames received with + * alignment (dribble) error. This field is valid only in + * the 10 or 100 Mbps mode. */ + uint32_t : 16; + } Rx_Alignment_Error_Frames_b; + }; + + union + { + __IM uint32_t Rx_Runt_Error_Frames; /*!< (@ 0x0000019C) Receive Frame Count for Runt Error Frames */ + + struct + { + __IM uint32_t RXRUNTERR : 16; /*!< [15..0] This field indicates the number of frames received with + * runt error (< 64 bytes and CRC error). */ + uint32_t : 16; + } Rx_Runt_Error_Frames_b; + }; + + union + { + __IM uint32_t Rx_Jabber_Error_Frames; /*!< (@ 0x000001A0) Receive Frame Count for Jabber Error Frames */ + + struct + { + __IM uint32_t RXJABERR : 16; /*!< [15..0] This field indicates the number of giant frames received + * with length (including CRC) greater than 1,518 bytes (1,522 + * bytes for VLAN tagged) and with CRC error. If Jumbo Frame + * mode is enabled, then frames of length greater than 9,018 + * bytes (9,022 for VLAN tagged) are considered as giant frames. */ + uint32_t : 16; + } Rx_Jabber_Error_Frames_b; + }; + + union + { + __IM uint32_t Rx_Undersize_Frames_Good; /*!< (@ 0x000001A4) Receive Frame Count for Undersize Frames */ + + struct + { + __IM uint32_t RXUNDERSZG : 16; /*!< [15..0] This field indicates the number of frames received with + * length less than 64 bytes and without errors. */ + uint32_t : 16; + } Rx_Undersize_Frames_Good_b; + }; + + union + { + __IM uint32_t Rx_Oversize_Frames_Good; /*!< (@ 0x000001A8) Receive Frame Count for Oversize Frames */ + + struct + { + __IM uint32_t RXOVERSZG : 16; /*!< [15..0] This field indicates the number of frames received without + * errors, with length greater than the maxsize (1,518 or + * 1,522 for VLAN tagged frames; 2,000 bytes if enabled in + * bit [27] of MAC Configuration Register (MAC_Configuration)). */ + uint32_t : 16; + } Rx_Oversize_Frames_Good_b; + }; + + union + { + __IM uint32_t Rx_64Octets_Frames_Good_Bad; /*!< (@ 0x000001AC) Receive Frame Count for Good and Bad 64 Byte + * Frames */ + + struct + { + __IM uint32_t RX64OCTGB : 32; /*!< [31..0] This field indicates the number of received good and + * bad frames with length 64 bytes, exclusive of preamble. */ + } Rx_64Octets_Frames_Good_Bad_b; + }; + + union + { + __IM uint32_t Rx_65To127Octets_Frames_Good_Bad; /*!< (@ 0x000001B0) Receive Frame Count for Good and Bad 65 to 127 + * Bytes Frames */ + + struct + { + __IM uint32_t RX65_127OCTGB : 32; /*!< [31..0] This field indicates the number of received good and + * bad frames received with length between 65 and 127 (inclusive) + * bytes, exclusive of preamble. */ + } Rx_65To127Octets_Frames_Good_Bad_b; + }; + + union + { + __IM uint32_t Rx_128To255Octets_Frames_Good_Bad; /*!< (@ 0x000001B4) Receive Frame Count for Good and Bad 128 to 255 + * Bytes Frames */ + + struct + { + __IM uint32_t RX128_255OCTGB : 32; /*!< [31..0] This field indicates the number of received good and + * bad frames with length between 128 and 255 (inclusive) + * bytes, exclusive of preamble. */ + } Rx_128To255Octets_Frames_Good_Bad_b; + }; + + union + { + __IM uint32_t Rx_256To511Octets_Frames_Good_Bad; /*!< (@ 0x000001B8) Receive Frame Count for Good and Bad 256 to 511 + * Bytes Frames */ + + struct + { + __IM uint32_t RX256_511OCTGB : 32; /*!< [31..0] This field indicates the number of received good and + * bad frames with length between 256 and 511 (inclusive) + * bytes, exclusive of preamble. */ + } Rx_256To511Octets_Frames_Good_Bad_b; + }; + + union + { + __IM uint32_t Rx_512To1023Octets_Frames_Good_Bad; /*!< (@ 0x000001BC) Receive Frame Count for Good and Bad 512 to 1,023 + * Bytes Frames */ + + struct + { + __IM uint32_t RX512_1023OCTGB : 32; /*!< [31..0] This field indicates the number of received good and + * bad frames with length between 512 and 1,023 (inclusive) + * bytes, exclusive of preamble. */ + } Rx_512To1023Octets_Frames_Good_Bad_b; + }; + + union + { + __IM uint32_t Rx_1024ToMaxOctets_Frames_Good_Bad; /*!< (@ 0x000001C0) Receive Frame Count for Good and Bad 1,024 to + * Maxsize Bytes Frames */ + + struct + { + __IM uint32_t RX1024_MAXOCTGB : 32; /*!< [31..0] This field indicates the number of received good and + * bad frames with length between 1,024 and maxsize (inclusive) + * bytes, exclusive of preamble and retried frames. */ + } Rx_1024ToMaxOctets_Frames_Good_Bad_b; + }; + + union + { + __IM uint32_t Rx_Unicast_Frames_Good; /*!< (@ 0x000001C4) Receive Frame Count for Good Unicast Frames */ + + struct + { + __IM uint32_t RXUCASTG : 32; /*!< [31..0] This field indicates the number of received good unicast + * frames. */ + } Rx_Unicast_Frames_Good_b; + }; + + union + { + __IM uint32_t Rx_Length_Error_Frames; /*!< (@ 0x000001C8) Receive Frame Count for Length Error Frames */ + + struct + { + __IM uint32_t RXLENERR : 16; /*!< [15..0] RXLENERR */ + uint32_t : 16; + } Rx_Length_Error_Frames_b; + }; + + union + { + __IM uint32_t Rx_Out_Of_Range_Type_Frames; /*!< (@ 0x000001CC) Receive Frame Count for Out of Range Frames */ + + struct + { + __IM uint32_t RXOUTOFRNG : 16; /*!< [15..0] This field indicates the number of received frames with + * length field not equal to the valid frame size (greater + * than 1,500 but less than 1,536). */ + uint32_t : 16; + } Rx_Out_Of_Range_Type_Frames_b; + }; + + union + { + __IM uint32_t Rx_Pause_Frames; /*!< (@ 0x000001D0) Receive Frame Count for PAUSE Frames */ + + struct + { + __IM uint32_t RXPAUSEFRM : 16; /*!< [15..0] This field indicates the number of received good and + * valid PAUSE frames. */ + uint32_t : 16; + } Rx_Pause_Frames_b; + }; + + union + { + __IM uint32_t Rx_FIFO_Overflow_Frames; /*!< (@ 0x000001D4) Receive Frame Count for FIFO Overflow Frames */ + + struct + { + __IM uint32_t RXFIFOOVFL : 16; /*!< [15..0] This field indicates the number of received frames missed + * because of FIFO overflow. */ + uint32_t : 16; + } Rx_FIFO_Overflow_Frames_b; + }; + + union + { + __IM uint32_t Rx_VLAN_Frames_Good_Bad; /*!< (@ 0x000001D8) Receive Frame Count for Good and Bad VLAN Frames */ + + struct + { + __IM uint32_t RXVLANFRGB : 32; /*!< [31..0] This field indicates the number of received good and + * bad VLAN frames. */ + } Rx_VLAN_Frames_Good_Bad_b; + }; + + union + { + __IM uint32_t Rx_Watchdog_Error_Frames; /*!< (@ 0x000001DC) Receive Frame Count for Watchdog Error Frames */ + + struct + { + __IM uint32_t RXWDGERR : 16; /*!< [15..0] This field indicates the number of frames received with + * error because of the watchdog timeout error (frames with + * more than 2,048 bytes or value programmed in Watchdog Timeout + * Register (WDog_Timeout)). */ + uint32_t : 16; + } Rx_Watchdog_Error_Frames_b; + }; + + union + { + __IM uint32_t Rx_Receive_Error_Frames; /*!< (@ 0x000001E0) Receive Frame Count for Receive Error Frames */ + + struct + { + __IM uint32_t RXRCVERR : 16; /*!< [15..0] This field indicates the number of frames received with + * error because of the GMII/MII RXER error or Frame Extension + * error on GMII. */ + uint32_t : 16; + } Rx_Receive_Error_Frames_b; + }; + + union + { + __IM uint32_t Rx_Control_Frames_Good; /*!< (@ 0x000001E4) Receive Frame Count for Good Control Frames */ + + struct + { + __IM uint32_t RXCTRLG : 32; /*!< [31..0] This field indicates the number of good control frames + * received. */ + } Rx_Control_Frames_Good_b; + }; + __IM uint32_t RESERVED4[134]; + + union + { + __IOM uint32_t GMACTRGSEL; /*!< (@ 0x00000400) GMAC PTP Trigger Select Register */ + + struct + { + __IOM uint32_t TRGSEL : 2; /*!< [1..0] Select PTP Timestamp Trigger for GMAC IP */ + uint32_t : 30; + } GMACTRGSEL_b; + }; + __IM uint32_t RESERVED5[63]; + + union + { + __IOM uint32_t HASH_TABLE_REG[8]; /*!< (@ 0x00000500) Hash Table Register [0..7] (n = 0 to 7) */ + + struct + { + __IOM uint32_t HT : 32; /*!< [31..0] This field contains the nth 32 bits [31:0] of the Hash + * table. */ + } HASH_TABLE_REG_b[8]; + }; + __IM uint32_t RESERVED6[26]; + + union + { + __IOM uint32_t VLAN_Hash_Table_Reg; /*!< (@ 0x00000588) VLAN Hash Table Register */ + + struct + { + __IOM uint32_t VLHT : 16; /*!< [15..0] VLAN Hash Table */ + uint32_t : 16; + } VLAN_Hash_Table_Reg_b; + }; + __IM uint32_t RESERVED7[93]; + + union + { + __IOM uint32_t Timestamp_Control; /*!< (@ 0x00000700) Timestamp Control Register */ + + struct + { + __IOM uint32_t TSENA : 1; /*!< [0..0] Timestamp Enable */ + uint32_t : 7; + __IOM uint32_t TSENALL : 1; /*!< [8..8] Enable Timestamp for all Frames */ + __IOM uint32_t TSCTRLSSR : 1; /*!< [9..9] Timestamp Digital or Binary Rollover Control */ + __IOM uint32_t TSVER2ENA : 1; /*!< [10..10] Enable PTP packet Processing for Version 2 Format */ + __IOM uint32_t TSIPENA : 1; /*!< [11..11] Enable Processing of PTP over Ethernet Frames */ + __IOM uint32_t TSIPV6ENA : 1; /*!< [12..12] Enable Processing of PTP Frames Sent Over IPv6 UDP */ + __IOM uint32_t TSIPV4ENA : 1; /*!< [13..13] Enable Processing of PTP Frames Sent over IPv4 UDP */ + __IOM uint32_t TSEVNTENA : 1; /*!< [14..14] Enable Timestamp Snapshot for Event Messages */ + __IOM uint32_t TSMSTRENA : 1; /*!< [15..15] Enable Snapshot for Messages Relevant to Master */ + __IOM uint32_t SNAPTYPSEL : 2; /*!< [17..16] Select PTP packets for Taking Snapshots */ + __IOM uint32_t TSENMACADDR : 1; /*!< [18..18] Enable MAC address for PTP Frame Filtering */ + uint32_t : 5; + __IOM uint32_t ATSFC : 1; /*!< [24..24] Auxiliary Snapshot FIFO Clear */ + __IOM uint32_t ATSEN0 : 1; /*!< [25..25] Auxiliary Snapshot 0 Enable */ + __IOM uint32_t ATSEN1 : 1; /*!< [26..26] Auxiliary Snapshot 1 Enable */ + uint32_t : 5; + } Timestamp_Control_b; + }; + __IM uint32_t RESERVED8[9]; + + union + { + __IM uint32_t Timestamp_Status; /*!< (@ 0x00000728) Timestamp Status Register */ + + struct + { + uint32_t : 2; + __IM uint32_t AUXTSTRIG : 1; /*!< [2..2] Auxiliary Timestamp Trigger Snapshot */ + uint32_t : 13; + __IM uint32_t ATSSTN : 4; /*!< [19..16] Auxiliary Timestamp Snapshot Trigger Identifier */ + uint32_t : 4; + __IM uint32_t ATSSTM : 1; /*!< [24..24] Auxiliary Timestamp Snapshot Trigger Missed */ + __IM uint32_t ATSNS : 5; /*!< [29..25] Number of Auxiliary Timestamp Snapshots */ + uint32_t : 2; + } Timestamp_Status_b; + }; + __IM uint32_t RESERVED9; + + union + { + __IM uint32_t Auxiliary_Timestamp_Nanoseconds; /*!< (@ 0x00000730) Auxiliary Timestamp - Nanoseconds Register */ + + struct + { + __IM uint32_t AUXTSLO : 31; /*!< [30..0] Contains the lower 32 bits (nanoseconds field) of the + * auxiliary timestamp. */ + uint32_t : 1; + } Auxiliary_Timestamp_Nanoseconds_b; + }; + + union + { + __IM uint32_t Auxiliary_Timestamp_Seconds; /*!< (@ 0x00000734) Auxiliary Timestamp - Seconds Register */ + + struct + { + __IM uint32_t AUXTSHI : 32; /*!< [31..0] Contains the upper 32 bits (Seconds field) of the auxiliary + * timestamp. */ + } Auxiliary_Timestamp_Seconds_b; + }; + __IM uint32_t RESERVED10[50]; + + union + { + __IOM uint32_t MAR16_H; /*!< (@ 0x00000800) MAC ADDRESS High Register */ + + struct + { + __IOM uint32_t ADDRHI : 16; /*!< [15..0] MAC Address n[47:32] */ + uint32_t : 8; + __IOM uint32_t MBC : 6; /*!< [29..24] Mask Byte Control */ + __IOM uint32_t SA : 1; /*!< [30..30] Source Address */ + __IOM uint32_t AE : 1; /*!< [31..31] Address Enable */ + } MAR16_H_b; + }; + + union + { + __IOM uint32_t MAR16_L; /*!< (@ 0x00000804) MAC ADDRESS Low Register */ + + struct + { + __IOM uint32_t ADDRLO : 32; /*!< [31..0] MAC Address n[31:0] */ + } MAR16_L_b; + }; + + union + { + __IOM uint32_t MAR17_H; /*!< (@ 0x00000808) MAC ADDRESS High Register */ + + struct + { + __IOM uint32_t ADDRHI : 16; /*!< [15..0] MAC Address n[47:32] */ + uint32_t : 8; + __IOM uint32_t MBC : 6; /*!< [29..24] Mask Byte Control */ + __IOM uint32_t SA : 1; /*!< [30..30] Source Address */ + __IOM uint32_t AE : 1; /*!< [31..31] Address Enable */ + } MAR17_H_b; + }; + + union + { + __IOM uint32_t MAR17_L; /*!< (@ 0x0000080C) MAC ADDRESS Low Register */ + + struct + { + __IOM uint32_t ADDRLO : 32; /*!< [31..0] MAC Address n[31:0] */ + } MAR17_L_b; + }; + __IM uint32_t RESERVED11[508]; + + union + { + __IOM uint32_t Bus_Mode; /*!< (@ 0x00001000) Bus Mode Register */ + + struct + { + __IOM uint32_t SWR : 1; /*!< [0..0] Software Reset */ + __IM uint32_t DA : 1; /*!< [1..1] DMA Arbitration Scheme */ + __IOM uint32_t DSL : 5; /*!< [6..2] Descriptor Skip Length */ + __IOM uint32_t ATDS : 1; /*!< [7..7] Enhanced Descriptor Size */ + __IOM uint32_t PBL : 6; /*!< [13..8] Programmable Burst Length */ + __IM uint32_t PR : 2; /*!< [15..14] Priority Ratio */ + __IOM uint32_t FB : 1; /*!< [16..16] Fixed Burst */ + __IOM uint32_t RPBL : 6; /*!< [22..17] RX DMA PBL */ + __IOM uint32_t USP : 1; /*!< [23..23] Use Separate PBL */ + __IOM uint32_t PBLx8 : 1; /*!< [24..24] PBLx8 Mode */ + __IOM uint32_t AAL : 1; /*!< [25..25] Address Aligned Beats */ + __IM uint32_t MB : 1; /*!< [26..26] Mixed Burst */ + __IM uint32_t TXPR : 1; /*!< [27..27] Transmit Priority */ + __IM uint32_t PRWG : 2; /*!< [29..28] Channel Priority Weights */ + uint32_t : 1; + __IM uint32_t RIB : 1; /*!< [31..31] Rebuild INCRx Burst */ + } Bus_Mode_b; + }; + + union + { + __IOM uint32_t Transmit_Poll_Demand; /*!< (@ 0x00001004) Transmit Poll Demand Register */ + + struct + { + __IOM uint32_t TPD : 32; /*!< [31..0] Transmit Poll Demand */ + } Transmit_Poll_Demand_b; + }; + + union + { + __IOM uint32_t Receive_Poll_Demand; /*!< (@ 0x00001008) Receive Poll Demand Register */ + + struct + { + __IOM uint32_t RPD : 32; /*!< [31..0] Receive Poll Demand */ + } Receive_Poll_Demand_b; + }; + + union + { + __IOM uint32_t Receive_Descriptor_List_Address; /*!< (@ 0x0000100C) Receive Descriptor List Address Register */ + + struct + { + uint32_t : 2; + __IOM uint32_t RDESLA_32bit : 30; /*!< [31..2] Start of Receive List */ + } Receive_Descriptor_List_Address_b; + }; + + union + { + __IOM uint32_t Transmit_Descriptor_List_Address; /*!< (@ 0x00001010) Transmit Descriptor List Address Register */ + + struct + { + uint32_t : 2; + __IOM uint32_t TDESLA_32bit : 30; /*!< [31..2] Start of Transmit List */ + } Transmit_Descriptor_List_Address_b; + }; + + union + { + __IOM uint32_t Status; /*!< (@ 0x00001014) Status Register */ + + struct + { + __IOM uint32_t TI : 1; /*!< [0..0] Transmit Interrupt */ + __IOM uint32_t TPS : 1; /*!< [1..1] Transmit Process Stopped */ + __IOM uint32_t TU : 1; /*!< [2..2] Transmit Buffer Unavailable */ + __IOM uint32_t TJT : 1; /*!< [3..3] Transmit Jabber Timeout */ + __IOM uint32_t OVF : 1; /*!< [4..4] Receive Overflow */ + __IOM uint32_t UNF : 1; /*!< [5..5] Transmit Underflow */ + __IOM uint32_t RI : 1; /*!< [6..6] Receive Interrupt */ + __IOM uint32_t RU : 1; /*!< [7..7] Receive Buffer Unavailable */ + __IOM uint32_t RPS : 1; /*!< [8..8] Receive Process Stopped */ + __IOM uint32_t RWT : 1; /*!< [9..9] Receive Watchdog Timeout */ + __IOM uint32_t ETI : 1; /*!< [10..10] Early Transmit Interrupt */ + uint32_t : 2; + __IOM uint32_t FBI : 1; /*!< [13..13] Fatal Bus Error Interrupt */ + __IOM uint32_t ERI : 1; /*!< [14..14] Early Receive Interrupt */ + __IOM uint32_t AIS : 1; /*!< [15..15] Abnormal Interrupt Summary */ + __IOM uint32_t NIS : 1; /*!< [16..16] Normal Interrupt Summary */ + __IM uint32_t RS : 3; /*!< [19..17] Received Process State */ + __IM uint32_t TS : 3; /*!< [22..20] Transmit Process State */ + __IM uint32_t EB : 3; /*!< [25..23] Error Bits */ + uint32_t : 1; + __IM uint32_t GMI : 1; /*!< [27..27] GMAC MMC Interrupt */ + __IM uint32_t GPI : 1; /*!< [28..28] GMAC PMT Interrupt */ + __IM uint32_t TTI : 1; /*!< [29..29] Timestamp Trigger Interrupt */ + __IM uint32_t GLPII : 1; /*!< [30..30] GMAC LPI Interrupt */ + uint32_t : 1; + } Status_b; + }; + + union + { + __IOM uint32_t Operation_Mode; /*!< (@ 0x00001018) Operation Mode Register */ + + struct + { + uint32_t : 1; + __IOM uint32_t SR : 1; /*!< [1..1] Start or Stop Receive */ + __IOM uint32_t OSF : 1; /*!< [2..2] Operate on Second Frame */ + __IOM uint32_t RTC : 2; /*!< [4..3] Receive Threshold Control */ + __IOM uint32_t DGF : 1; /*!< [5..5] Drop Giant Frames */ + __IOM uint32_t FUF : 1; /*!< [6..6] Forward Undersized Good Frames */ + __IOM uint32_t FEF : 1; /*!< [7..7] Forward Error Frames */ + __IOM uint32_t EFC : 1; /*!< [8..8] Enable HW Flow Control */ + __IOM uint32_t RFA : 2; /*!< [10..9] Threshold for Activating Flow Control (in half-duplex + * and full-duplex) */ + __IOM uint32_t RFD : 2; /*!< [12..11] Threshold for Deactivating Flow Control (in half-duplex + * and full-duplex) */ + __IOM uint32_t ST : 1; /*!< [13..13] Start or Stop Transmission Command */ + __IOM uint32_t TTC : 3; /*!< [16..14] Transmit Threshold Control */ + uint32_t : 3; + __IOM uint32_t FTF : 1; /*!< [20..20] Flush Transmit FIFO */ + __IOM uint32_t TSF : 1; /*!< [21..21] Transmit Store and Forward */ + uint32_t : 3; + __IOM uint32_t RSF : 1; /*!< [25..25] Receive Store and Forward */ + __IOM uint32_t DT : 1; /*!< [26..26] Disable Dropping of TCP/IP Checksum Error Frames */ + uint32_t : 5; + } Operation_Mode_b; + }; + + union + { + __IOM uint32_t Interrupt_Enable; /*!< (@ 0x0000101C) Interrupt Enable Register */ + + struct + { + __IOM uint32_t TIE : 1; /*!< [0..0] Transmit Interrupt Enable */ + __IOM uint32_t TSE : 1; /*!< [1..1] Transmit Stopped Enable */ + __IOM uint32_t TUE : 1; /*!< [2..2] Transmit Buffer Unavailable Enable */ + __IOM uint32_t TJE : 1; /*!< [3..3] Transmit Jabber Timeout Enable */ + __IOM uint32_t OVE : 1; /*!< [4..4] Overflow Interrupt Enable */ + __IOM uint32_t UNE : 1; /*!< [5..5] Underflow Interrupt Enable */ + __IOM uint32_t RIE : 1; /*!< [6..6] Receive Interrupt Enable */ + __IOM uint32_t RUE : 1; /*!< [7..7] Receive Buffer Unavailable Enable */ + __IOM uint32_t RSE : 1; /*!< [8..8] Receive Stopped Enable */ + __IOM uint32_t RWE : 1; /*!< [9..9] Receive Watchdog Timeout Enable */ + __IOM uint32_t ETE : 1; /*!< [10..10] Early Transmit Interrupt Enable */ + uint32_t : 2; + __IOM uint32_t FBE : 1; /*!< [13..13] Fatal Bus Error Enable */ + __IOM uint32_t ERE : 1; /*!< [14..14] Early Receive Interrupt Enable */ + __IOM uint32_t AIE : 1; /*!< [15..15] Abnormal Interrupt Summary Enable */ + __IOM uint32_t NIE : 1; /*!< [16..16] Normal Interrupt Summary Enable */ + uint32_t : 15; + } Interrupt_Enable_b; + }; + + union + { + __IM uint32_t Missed_Frame_And_Buffer_Overflow_Counter; /*!< (@ 0x00001020) Missed Frame and Buffer Overflow Counter Register */ + + struct + { + __IM uint32_t MISFRMCNT : 16; /*!< [15..0] Missed Frame Counter */ + __IM uint32_t MISCNTOVF : 1; /*!< [16..16] Overflow Bit for Missed Frame Counter */ + __IM uint32_t OVFFRMCNT : 11; /*!< [27..17] Overflow Frame Counter */ + __IM uint32_t OVFCNTOVF : 1; /*!< [28..28] Overflow Bit for FIFO Overflow Counter */ + uint32_t : 3; + } Missed_Frame_And_Buffer_Overflow_Counter_b; + }; + + union + { + __IOM uint32_t Receive_Interrupt_Watchdog_Timer; /*!< (@ 0x00001024) Receive Interrupt Watchdog Timer Register */ + + struct + { + __IOM uint32_t RIWT : 8; /*!< [7..0] RI Watchdog Timer Count */ + uint32_t : 24; + } Receive_Interrupt_Watchdog_Timer_b; + }; + + union + { + __IOM uint32_t AXI_Bus_Mode; /*!< (@ 0x00001028) AXI Bus Mode Register */ + + struct + { + __IM uint32_t UNDEF : 1; /*!< [0..0] AXI Undefined Burst Length */ + __IOM uint32_t BLEN4 : 1; /*!< [1..1] AXI Burst Length 4 */ + __IOM uint32_t BLEN8 : 1; /*!< [2..2] AXI Burst Length 8 */ + __IOM uint32_t BLEN16 : 1; /*!< [3..3] AXI Burst Length 16 */ + uint32_t : 8; + __IM uint32_t AXI_AAL : 1; /*!< [12..12] Address-Aligned Beats */ + __IOM uint32_t ONEKBBE : 1; /*!< [13..13] 1 KB Boundary Crossing Enable for the GMAC-AXI Master */ + uint32_t : 2; + __IOM uint32_t RD_OSR_LMT : 2; /*!< [17..16] AXI Maximum Read OutStanding Request Limit */ + uint32_t : 2; + __IOM uint32_t WR_OSR_LMT : 2; /*!< [21..20] AXI Maximum Write OutStanding Request Limit */ + uint32_t : 8; + __IOM uint32_t LPI_XIT_FRM : 1; /*!< [30..30] Unlock on Magic Packet or Remote Wake-Up Frame */ + __IOM uint32_t EN_LPI : 1; /*!< [31..31] Enable Low Power Interface (LPI) */ + } AXI_Bus_Mode_b; + }; + + union + { + __IM uint32_t AXI_Status; /*!< (@ 0x0000102C) AXI Status Register */ + + struct + { + __IM uint32_t AXWHSTS : 1; /*!< [0..0] AXI Master Write Channel */ + __IM uint32_t AXIRDSTS : 1; /*!< [1..1] AXI Master Read Channel Status */ + uint32_t : 30; + } AXI_Status_b; + }; + __IM uint32_t RESERVED12[6]; + + union + { + __IM uint32_t Current_Host_Transmit_Descriptor; /*!< (@ 0x00001048) Current Host Transmit Descriptor Register */ + + struct + { + __IM uint32_t CURTDESAPTR : 32; /*!< [31..0] Host Transmit Descriptor Address Pointer */ + } Current_Host_Transmit_Descriptor_b; + }; + + union + { + __IM uint32_t Current_Host_Receive_Descriptor; /*!< (@ 0x0000104C) Current Host Receive Descriptor Register */ + + struct + { + __IM uint32_t CURRDESAPTR : 32; /*!< [31..0] Host Receive Descriptor Address Pointer */ + } Current_Host_Receive_Descriptor_b; + }; + + union + { + __IM uint32_t Current_Host_Transmit_Buffer_Address; /*!< (@ 0x00001050) Current Host Transmit Buffer Address Register */ + + struct + { + __IM uint32_t CURTBUFAPTR : 32; /*!< [31..0] Host Transmit Buffer Address Pointer */ + } Current_Host_Transmit_Buffer_Address_b; + }; + + union + { + __IM uint32_t Current_Host_Receive_Buffer_Address; /*!< (@ 0x00001054) Current Host Receive Buffer Address Register */ + + struct + { + __IM uint32_t CURRBUFAPTR : 32; /*!< [31..0] Host Receive Buffer Address Pointer */ + } Current_Host_Receive_Buffer_Address_b; + }; + + union + { + __IM uint32_t HW_Feature; /*!< (@ 0x00001058) HW Feature Register */ + + struct + { + __IM uint32_t MIISEL : 1; /*!< [0..0] 10 or 100 Mbps support */ + __IM uint32_t GMIISEL : 1; /*!< [1..1] 1000 Mbps support */ + __IM uint32_t HDSEL : 1; /*!< [2..2] Half-Duplex support */ + __IM uint32_t EXTHASHEN : 1; /*!< [3..3] Expanded DA Hash Filter */ + __IM uint32_t HASHSEL : 1; /*!< [4..4] HASH Filter */ + __IM uint32_t ADDMACADRSEL : 1; /*!< [5..5] Multiple MAC Address Registers */ + uint32_t : 1; + __IM uint32_t L3L4FLTREN : 1; /*!< [7..7] Layer 3 and Layer 4 Filter Feature */ + __IM uint32_t SMASEL : 1; /*!< [8..8] SMA (MDIO) Interface */ + __IM uint32_t RWKSEL : 1; /*!< [9..9] PMT Remote wakeup */ + __IM uint32_t MGKSEL : 1; /*!< [10..10] PMT Magic Packet */ + __IM uint32_t MMCSEL : 1; /*!< [11..11] RMON Module */ + __IM uint32_t TSVER1SEL : 1; /*!< [12..12] Only IEEE 1588-2002 Timestamp */ + __IM uint32_t TSVER2SEL : 1; /*!< [13..13] IEEE 1588-2008 Advanced Timestamp */ + __IM uint32_t EEESEL : 1; /*!< [14..14] Energy Efficient Ethernet */ + __IM uint32_t AVSEL : 1; /*!< [15..15] AV Feature */ + __IM uint32_t TXCOESEL : 1; /*!< [16..16] Checksum Offload in TX */ + __IM uint32_t RXTYP1COE : 1; /*!< [17..17] IP Checksum Offload (Type 1) in RX */ + __IM uint32_t RXTYP2COE : 1; /*!< [18..18] IP Checksum Offload (Type 2) in RX */ + __IM uint32_t RXFIFOSIZE : 1; /*!< [19..19] RX FIFO > 2,048 Bytes */ + __IM uint32_t RXCHCNT : 2; /*!< [21..20] Number of additional RX channels */ + __IM uint32_t TXCHCNT : 2; /*!< [23..22] Number of additional TX channels */ + __IM uint32_t ENHDESSEL : 1; /*!< [24..24] Enhanced Descriptor */ + __IM uint32_t INTTSEN : 1; /*!< [25..25] Timestamping with Internal System Time */ + __IM uint32_t FLEXIPPSEN : 1; /*!< [26..26] Flexible Pulse-Per-Second Output (GMAC: 0) */ + __IM uint32_t SAVLANINS : 1; /*!< [27..27] Source Address or VLAN Insertion */ + __IM uint32_t ACTPHYIF : 3; /*!< [30..28] Active or Selected PHY interface */ + uint32_t : 1; + } HW_Feature_b; + }; +} R_GMAC_Type; /*!< Size = 4188 (0x105c) */ + +/* =========================================================================================================================== */ +/* ================ R_ETHSS ================ */ +/* =========================================================================================================================== */ + +/** + * @brief Ethernet Subsystem (R_ETHSS) + */ + +typedef struct /*!< (@ 0x80110000) R_ETHSS Structure */ +{ + __IOM uint32_t PRCMD; /*!< (@ 0x00000000) Ethernet Protect Register */ + __IM uint32_t RESERVED; + + union + { + __IOM uint32_t MODCTRL; /*!< (@ 0x00000008) Mode Control Register */ + + struct + { + __IOM uint32_t SW_MODE : 3; /*!< [2..0] Media I/F connectionSW_MODE[2:0]Media I/FPort 0Port 1Port + * 2000bETHSW Port 0ETHSW Port 1ETHSW Port 2001bESC Port 0ESC + * Port 1GMAC Port010bESC Port 0ESC Port 1ETHSW Port 2011bESC + * Port 0ESC Port 1ESC Port 2100bETHSW Port 0ESC Port 1ESC + * Port 2101bETHSW Port 0ESC Port 1ETHSW Port 2110b-ETHSW + * Port 1ETHSW Port 0111b-ESC Port 1ESC Port 0 */ + uint32_t : 29; + } MODCTRL_b; + }; + + union + { + __IOM uint32_t PTPMCTRL; /*!< (@ 0x0000000C) PTP Mode Control Register */ + + struct + { + __IOM uint32_t PTP_MODE : 1; /*!< [0..0] Select the unit number of PTP Timer for GMAC and Pulse + * Generator (unit 0 - 3) */ + uint32_t : 15; + __IOM uint32_t PTP_PLS_RSTn : 1; /*!< [16..16] Reset control for Pulse Generator (unit 0 - 3) */ + uint32_t : 15; + } PTPMCTRL_b; + }; + __IM uint32_t RESERVED1; + + union + { + __IOM uint32_t PHYLNK; /*!< (@ 0x00000014) Ethernet PHY Link Mode Register */ + + struct + { + __IOM uint32_t SWLINK : 3; /*!< [2..0] Specify the active level of the ETHSW_PHYLINKn signal + * using the Ethernet switch interface */ + uint32_t : 1; + __IOM uint32_t CATLNK : 3; /*!< [6..4] Specify the active level of the ESC_PHYLINKn signal using + * the EtherCAT interface */ + uint32_t : 25; + } PHYLNK_b; + }; + __IM uint32_t RESERVED2[58]; + + union + { + __IOM uint32_t CONVCTRL[3]; /*!< (@ 0x00000100) RGMII/RMII Converter [0..2] Control Register */ + + struct + { + __IOM uint32_t CONV_MODE : 5; /*!< [4..0] Converter operation mode */ + uint32_t : 3; + __IOM uint32_t FULLD : 1; /*!< [8..8] FULLD */ + __IOM uint32_t RMII_RX_ER_EN : 1; /*!< [9..9] RMII_RX_ER_EN */ + __IOM uint32_t RMII_CRS_MODE : 1; /*!< [10..10] RMII_CRS_MODE */ + uint32_t : 1; + __IM uint32_t RGMII_LINK : 1; /*!< [12..12] RGMII_LINK */ + __IM uint32_t RGMII_DUPLEX : 1; /*!< [13..13] RGMII_DUPLEX */ + __IM uint32_t RGMII_SPEED : 2; /*!< [15..14] RGMII_SPEED */ + uint32_t : 16; + } CONVCTRL_b[3]; + }; + __IM uint32_t RESERVED3[2]; + + union + { + __IOM uint32_t CONVRST; /*!< (@ 0x00000114) RGMII/RMII Converter Reset Control Register */ + + struct + { + __IOM uint32_t PHYIR : 3; /*!< [2..0] PHYIR */ + uint32_t : 29; + } CONVRST_b; + }; + __IM uint32_t RESERVED4[123]; + + union + { + __IOM uint32_t SWCTRL; /*!< (@ 0x00000304) Switch Core Control Register */ + + struct + { + __IOM uint32_t SET10 : 3; /*!< [2..0] Port control to select use of 10 Mbps. Bit 0 = port 0, + * bit 1 = port 1, bit 2 = port 2. */ + uint32_t : 1; + __IOM uint32_t SET1000 : 3; /*!< [6..4] Port control to select use of 1000 Mbps. Bit 0 = port + * 0, bit 1 = port 1, bit 2 = port 2. */ + uint32_t : 9; + __IOM uint32_t STRAP_SX_ENB : 1; /*!< [16..16] Initialize switch after reset (set during module reset + * of ETHSW) */ + __IOM uint32_t STRAP_HUB_ENB : 1; /*!< [17..17] Initialize switch port 0 and 1 (set during module reset + * of ETHSW) */ + uint32_t : 14; + } SWCTRL_b; + }; + + union + { + __IOM uint32_t SWDUPC; /*!< (@ 0x00000308) Switch Core Duplex Mode Register */ + + struct + { + __IOM uint32_t PHY_DUPLEX : 3; /*!< [2..0] Configure the MAC of each port for full-duplex or half-duplex + * operation. Bit 0 = port 0, bit 1 = port 1, bit 2 = port + * 2. */ + uint32_t : 29; + } SWDUPC_b; + }; + __IM uint32_t RESERVED5[573]; + + union + { + __IOM uint32_t CDCR; /*!< (@ 0x00000C00) RGMII Clock Delay Control Register */ + + struct + { + __IOM uint32_t RXDLYEN : 1; /*!< [0..0] Enable delay for ETH2_RXCLK */ + __IOM uint32_t TXDLYEN : 1; /*!< [1..1] Enable delay for ETH2_TXCLK */ + __IOM uint32_t OSCCLKEN : 1; /*!< [2..2] Enable Oscillation mode for calibration */ + __IOM uint32_t CLKINEN : 1; /*!< [3..3] Enable Phase shift mode for normal operation */ + uint32_t : 28; + } CDCR_b; + }; + __IM uint32_t RESERVED6[3]; + + union + { + __IM uint32_t RXFCNT; /*!< (@ 0x00000C10) RGMII RX OSC Frequency Measurement Counter Register */ + + struct + { + __IM uint32_t RXFCNT : 16; /*!< [15..0] Oscillation frequency measurement counter for ETH2_RXCLK + * delay */ + uint32_t : 16; + } RXFCNT_b; + }; + + union + { + __IM uint32_t TXFCNT; /*!< (@ 0x00000C14) RGMII TX OSC Frequency Measurement Counter Register */ + + struct + { + __IM uint32_t TXFCNT : 16; /*!< [15..0] Oscillation frequency measurement counter for ETH2_TXCLK + * delay */ + uint32_t : 16; + } TXFCNT_b; + }; + + union + { + __IOM uint32_t RXTAPSEL; /*!< (@ 0x00000C18) RGMII RX TAP Selection Register */ + + struct + { + __IOM uint32_t RXTAPSEL : 7; /*!< [6..0] TAP selection for ETH2_RXCLK delay (number of taps for + * 90 degree phase shift) */ + uint32_t : 25; + } RXTAPSEL_b; + }; + + union + { + __IOM uint32_t TXTAPSEL; /*!< (@ 0x00000C1C) RGMII TX TAP Selection Register */ + + struct + { + __IOM uint32_t TXTAPSEL : 7; /*!< [6..0] TAP selection for ETH2_TXCLK delay (Number of taps for + * 90 degree phase shift) */ + uint32_t : 25; + } TXTAPSEL_b; + }; + + union + { + __IOM uint32_t MIIMCR; /*!< (@ 0x00000C20) MII Mode Control Register */ + + struct + { + __IOM uint32_t MIIM2MEN : 1; /*!< [0..0] Enable MAC-to-MAC MII Mode */ + uint32_t : 31; + } MIIMCR_b; + }; +} R_ETHSS_Type; /*!< Size = 3108 (0xc24) */ + +/* =========================================================================================================================== */ +/* ================ R_ESC_INI ================ */ +/* =========================================================================================================================== */ + +/** + * @brief Initial Configuration 1 for EtherCAT Slave Controller (R_ESC_INI) + */ + +typedef struct /*!< (@ 0x80110200) R_ESC_INI Structure */ +{ + union + { + __IOM uint32_t ECATOFFADR; /*!< (@ 0x00000000) EtherCAT PHY Offset Address Setting Register */ + + struct + { + __IOM uint32_t OADD : 5; /*!< [4..0] PHY Offset Address Setting */ + uint32_t : 27; + } ECATOFFADR_b; + }; + + union + { + __IOM uint32_t ECATOPMOD; /*!< (@ 0x00000004) EtherCAT Operation Mode Register */ + + struct + { + __IOM uint32_t EEPROMSIZE : 1; /*!< [0..0] EEPROM Memory Size Specification */ + uint32_t : 31; + } ECATOPMOD_b; + }; + + union + { + __IOM uint32_t ECATDBGC; /*!< (@ 0x00000008) EtherCAT Debug Control Register */ + + struct + { + __IOM uint32_t TXSFT0 : 2; /*!< [1..0] Set the delay time for ETH0_TXEN and ETH0_TXDn of the + * EtherCAT */ + __IOM uint32_t TXSFT1 : 2; /*!< [3..2] Set the delay time for ETH1_TXEN and ETH1_TXDn of the + * EtherCAT */ + __IOM uint32_t TXSFT2 : 2; /*!< [5..4] Set the delay time for ETH2_TXEN and ETH2_TXDn of the + * EtherCAT */ + uint32_t : 26; + } ECATDBGC_b; + }; + + union + { + __IOM uint32_t ECATTRGSEL; /*!< (@ 0x0000000C) EtherCAT DC Latch Trigger Select Register */ + + struct + { + __IOM uint32_t TRGSEL0 : 1; /*!< [0..0] Select DC Latch Trigger 0 for ESC */ + __IOM uint32_t TRGSEL1 : 1; /*!< [1..1] Select DC Latch Trigger 1 for ESC */ + uint32_t : 30; + } ECATTRGSEL_b; + }; +} R_ESC_INI_Type; /*!< Size = 16 (0x10) */ + +/* =========================================================================================================================== */ +/* ================ R_ETHSW_PTP ================ */ +/* =========================================================================================================================== */ + +/** + * @brief Ethernet Switch for PTP (R_ETHSW_PTP) + */ + +typedef struct /*!< (@ 0x80110400) R_ETHSW_PTP Structure */ +{ + __IM uint32_t RESERVED; + + union + { + __IOM uint32_t SWPTPOUTSEL; /*!< (@ 0x00000004) ETHSW_PTPOUT Select Register */ + + struct + { + __IOM uint32_t IOSEL0 : 1; /*!< [0..0] Select the source of the ETHSW_PTPOUT0 output signal */ + __IOM uint32_t IOSEL1 : 1; /*!< [1..1] Select the source of the ETHSW_PTPOUT1 output signal */ + __IOM uint32_t IOSEL2 : 1; /*!< [2..2] Select the source of the ETHSW_PTPOUT2 output signal */ + __IOM uint32_t IOSEL3 : 1; /*!< [3..3] Select the source of the ETHSW_PTPOUT3 output signal */ + __IOM uint32_t EVTSEL0 : 1; /*!< [4..4] Select the source of the ETHSW_PTPOUT0 event for GIC, + * DMAC, and ELC */ + __IOM uint32_t EVTSEL1 : 1; /*!< [5..5] Select the source of the ETHSW_PTPOUT1 event for GIC, + * DMAC, and ELC */ + __IOM uint32_t EVTSEL2 : 1; /*!< [6..6] Select the source of the ETHSW_PTPOUT2 event for GIC, + * DMAC, and ELC */ + __IOM uint32_t EVTSEL3 : 1; /*!< [7..7] Select the source of the ETHSW_PTPOUT3 event for GIC, + * DMAC, and ELC */ + uint32_t : 24; + } SWPTPOUTSEL_b; + }; + __IM uint32_t RESERVED1[254]; + __IOM R_ETHSW_PTP_SWTM_Type SWTM[4]; /*!< (@ 0x00000400) Ethernet Switch Timer output pins 0-3 Registers */ +} R_ETHSW_PTP_Type; /*!< Size = 2048 (0x800) */ + +/* =========================================================================================================================== */ +/* ================ R_ETHSW ================ */ +/* =========================================================================================================================== */ + +/** + * @brief Ethernet Switch (R_ETHSW) + */ + +typedef struct /*!< (@ 0x80120000) R_ETHSW Structure */ +{ + union + { + __IM uint32_t REVISION; /*!< (@ 0x00000000) Switch Core Version Register */ + + struct + { + __IM uint32_t REV : 32; /*!< [31..0] Revision */ + } REVISION_b; + }; + + union + { + __IOM uint32_t SCRATCH; /*!< (@ 0x00000004) Scratch Register */ + + struct + { + __IOM uint32_t SCRATCH : 32; /*!< [31..0] The Scratch Register provides a memory location to test + * the register access. */ + } SCRATCH_b; + }; + + union + { + __IOM uint32_t PORT_ENA; /*!< (@ 0x00000008) Port Enable Register */ + + struct + { + __IOM uint32_t TXENA : 4; /*!< [3..0] Transmit Enable Mask */ + uint32_t : 12; + __IOM uint32_t RXENA : 4; /*!< [19..16] Receive Enable Mask */ + uint32_t : 12; + } PORT_ENA_b; + }; + + union + { + __IOM uint32_t UCAST_DEFAULT_MASK0; /*!< (@ 0x0000000C) Unicast Default Mask Register 0 */ + + struct + { + __IOM uint32_t UCASTDM : 4; /*!< [3..0] Default Unicast Resolution */ + uint32_t : 28; + } UCAST_DEFAULT_MASK0_b; + }; + + union + { + __IOM uint32_t VLAN_VERIFY; /*!< (@ 0x00000010) Verify VLAN Domain Register */ + + struct + { + __IOM uint32_t VLANVERI : 4; /*!< [3..0] Verify VLAN Domain */ + uint32_t : 12; + __IOM uint32_t VLANDISC : 4; /*!< [19..16] Discard Unknown */ + uint32_t : 12; + } VLAN_VERIFY_b; + }; + + union + { + __IOM uint32_t BCAST_DEFAULT_MASK0; /*!< (@ 0x00000014) Broadcast Default Mask Register 0 */ + + struct + { + __IOM uint32_t BCASTDM : 4; /*!< [3..0] Default Broadcast Resolution */ + uint32_t : 28; + } BCAST_DEFAULT_MASK0_b; + }; + + union + { + __IOM uint32_t MCAST_DEFAULT_MASK0; /*!< (@ 0x00000018) Multicast Default Mask Register 0 */ + + struct + { + __IOM uint32_t MCASTDM : 4; /*!< [3..0] Default Multicast Resolution */ + uint32_t : 28; + } MCAST_DEFAULT_MASK0_b; + }; + + union + { + __IOM uint32_t INPUT_LEARN_BLOCK; /*!< (@ 0x0000001C) Input Learning Block Register */ + + struct + { + __IOM uint32_t BLOCKEN : 4; /*!< [3..0] Blocking Enable */ + uint32_t : 12; + __IOM uint32_t LEARNDIS : 4; /*!< [19..16] Learning Disable */ + uint32_t : 12; + } INPUT_LEARN_BLOCK_b; + }; + + union + { + __IOM uint32_t MGMT_CONFIG; /*!< (@ 0x00000020) Management Configuration Register */ + + struct + { + __IOM uint32_t PORT : 4; /*!< [3..0] The Port number of the port that should act as a management + * port. Keep the initial value. */ + uint32_t : 1; + __IOM uint32_t MSG_TRANS : 1; /*!< [5..5] Set (latched) when a BPDU message is transmitted from + * the management port to any output port. This bit can be + * used for handshaking to indicate that the port mask bits + * are used and can now be changed again by setting it to + * 0. */ + __IOM uint32_t ENABLE : 1; /*!< [6..6] If set, all Bridge Protocol Frames (BPDU) are forwarded + * exclusively to the management port specified in bits [3:0]. */ + __IOM uint32_t DISCARD : 1; /*!< [7..7] If set, BPDU frames are discarded always. */ + __IOM uint32_t MGMT_EN : 1; /*!< [8..8] If set, BPDU frames received at the management port are + * forwarded to the ports given in the portmask given in this + * register, bypassing the normal forwarding decisions (except + * forced forwarding). */ + __IOM uint32_t MGMT_DISC : 1; /*!< [9..9] This bit is the same as DISCARD (bit 7) but for the management + * port. */ + uint32_t : 3; + __IOM uint32_t PRIORITY : 3; /*!< [15..13] Priority to use for transmitted BPDU frames if non-zero. */ + __IOM uint32_t PORTMASK : 4; /*!< [19..16] Portmask for transmission of management frames. When + * the management port transmits a frame to the switch, it + * is forwarded to all ports in this portmask (bit 16 = port + * 0, bit 17 = port 1, ..., bit 19 = port 3). */ + uint32_t : 12; + } MGMT_CONFIG_b; + }; + + union + { + __IOM uint32_t MODE_CONFIG; /*!< (@ 0x00000024) Mode Configuration Register */ + + struct + { + uint32_t : 8; + __IOM uint32_t CUT_THRU_EN : 4; /*!< [11..8] Port Cut through Support Enable */ + uint32_t : 19; + __IOM uint32_t STATSRESET : 1; /*!< [31..31] Reset Statistics Counters Command. */ + } MODE_CONFIG_b; + }; + + union + { + __IOM uint32_t VLAN_IN_MODE; /*!< (@ 0x00000028) VLAN Input Manipulation Mode Register */ + + struct + { + __IOM uint32_t P0VLANINMD : 2; /*!< [1..0] Port 0 Define Behavior of VLAN Input Manipulation Function */ + __IOM uint32_t P1VLANINMD : 2; /*!< [3..2] Port 1 Define Behavior of VLAN Input Manipulation Function */ + __IOM uint32_t P2VLANINMD : 2; /*!< [5..4] Port 2 Define Behavior of VLAN Input Manipulation Function */ + __IOM uint32_t P3VLANINMD : 2; /*!< [7..6] Port3 Define Behavior of VLAN Input Manipulation Function */ + uint32_t : 24; + } VLAN_IN_MODE_b; + }; + + union + { + __IOM uint32_t VLAN_OUT_MODE; /*!< (@ 0x0000002C) VLAN Output Manipulation Mode Register */ + + struct + { + __IOM uint32_t P0VLANOUTMD : 2; /*!< [1..0] Port 0 Define Behavior of VLAN Output Manipulation Function */ + __IOM uint32_t P1VLANOUTMD : 2; /*!< [3..2] Port 1 Define Behavior of VLAN Output Manipulation Function */ + __IOM uint32_t P2VLANOUTMD : 2; /*!< [5..4] Port 2 Define Behavior of VLAN Output Manipulation Function */ + __IOM uint32_t P3VLANOUTMD : 2; /*!< [7..6] Port 3 Define Behavior of VLAN Output Manipulation Function */ + uint32_t : 24; + } VLAN_OUT_MODE_b; + }; + + union + { + __IOM uint32_t VLAN_IN_MODE_ENA; /*!< (@ 0x00000030) VLAN Input Mode Enable Register */ + + struct + { + __IOM uint32_t VLANINMDEN : 4; /*!< [3..0] Enable the input processing according to the VLAN_IN_MODE + * for a port (1 bit per port). */ + uint32_t : 28; + } VLAN_IN_MODE_ENA_b; + }; + + union + { + __IOM uint32_t VLAN_TAG_ID; /*!< (@ 0x00000034) VLAN Tag ID Register */ + + struct + { + __IOM uint32_t VLANTAGID : 16; /*!< [15..0] The VLAN type field (TPID) value to expect to identify + * a VLAN tagged frame. */ + uint32_t : 16; + } VLAN_TAG_ID_b; + }; + + union + { + __IOM uint32_t BCAST_STORM_LIMIT; /*!< (@ 0x00000038) Broadcast Storm Protection Register */ + + struct + { + __IOM uint32_t TMOUT : 16; /*!< [15..0] Timeout in steps of 65535 switch operating clock cycles. */ + __IOM uint32_t BCASTLIMIT : 16; /*!< [31..16] Number of broadcast frames (-1) that can be accepted + * on a port during a timeout period. If more are received, + * they are discarded. The counter is implemented per port + * independently. However, the limit is used for all ports. */ + } BCAST_STORM_LIMIT_b; + }; + + union + { + __IOM uint32_t MCAST_STORM_LIMIT; /*!< (@ 0x0000003C) Multicast Storm Protection Register */ + + struct + { + uint32_t : 16; + __IOM uint32_t MCASTLIMIT : 16; /*!< [31..16] Number of multicast frames (-1) that can be accepted + * on a port during a timeout period. If more are received, + * they are discarded. The counter is implemented per port + * independently. However, the limit is used for all ports. */ + } MCAST_STORM_LIMIT_b; + }; + + union + { + __IOM uint32_t MIRROR_CONTROL; /*!< (@ 0x00000040) Port Mirroring Configuration Register */ + + struct + { + __IOM uint32_t PORT : 2; /*!< [1..0] The port number of the port that acts as the mirror port + * and receives all mirrored frames. Valid setting range is + * 0 to 3. */ + uint32_t : 2; + __IOM uint32_t MIRROR_EN : 1; /*!< [4..4] MIRROR_EN */ + __IOM uint32_t ING_MAP_EN : 1; /*!< [5..5] If set, the ingress map is enabled (MIRROR_ING_MAP). */ + __IOM uint32_t EG_MAP_EN : 1; /*!< [6..6] If set, the egress map is enabled (MIRROR_EG_MAP). */ + __IOM uint32_t ING_SA_MATCH : 1; /*!< [7..7] If set, only frames received on an ingress port with + * a source address matching the value programmed in MIRROR_ISRC + * registers are mirrored. Other frames are not mirrored. */ + __IOM uint32_t ING_DA_MATCH : 1; /*!< [8..8] If set, only frames received on an ingress port with + * a destination address matching the value programmed in + * MIRROR_IDST registers are mirrored. Other frames are not + * mirrored. */ + __IOM uint32_t EG_SA_MATCH : 1; /*!< [9..9] If set, only frames transmitted on an egress port with + * a source address matching the value programmed in MIRROR_ESRC + * registers are mirrored. Other frames are not mirrored. */ + __IOM uint32_t EG_DA_MATCH : 1; /*!< [10..10] If set, only frames transmitted on an egress port with + * a destination address matching the value programmed in + * MIRROR_EDST registers are mirrored. Other frames are not + * mirrored. */ + uint32_t : 21; + } MIRROR_CONTROL_b; + }; + + union + { + __IOM uint32_t MIRROR_EG_MAP; /*!< (@ 0x00000044) Port Mirroring Egress Port Definition Register */ + + struct + { + __IOM uint32_t EMAP : 4; /*!< [3..0] Port Mirroring Egress Port Definitions */ + uint32_t : 28; + } MIRROR_EG_MAP_b; + }; + + union + { + __IOM uint32_t MIRROR_ING_MAP; /*!< (@ 0x00000048) Port Mirroring Ingress Port Definition Register */ + + struct + { + __IOM uint32_t IMAP : 4; /*!< [3..0] Port Mirroring Ingress Port Definitions */ + uint32_t : 28; + } MIRROR_ING_MAP_b; + }; + + union + { + __IOM uint32_t MIRROR_ISRC_0; /*!< (@ 0x0000004C) Ingress Source MAC Address for Mirror Filtering + * Register 0 */ + + struct + { + __IOM uint32_t ISRC : 32; /*!< [31..0] Ingress Source MAC Address for Mirror Filtering */ + } MIRROR_ISRC_0_b; + }; + + union + { + __IOM uint32_t MIRROR_ISRC_1; /*!< (@ 0x00000050) Ingress Source MAC Address for Mirror Filtering + * Register 1 */ + + struct + { + __IOM uint32_t ISRC : 16; /*!< [15..0] Ingress Source MAC Address for Mirror Filtering */ + uint32_t : 16; + } MIRROR_ISRC_1_b; + }; + + union + { + __IOM uint32_t MIRROR_IDST_0; /*!< (@ 0x00000054) Ingress Destination MAC Address for Mirror Filtering + * Register 0 */ + + struct + { + __IOM uint32_t IDST : 32; /*!< [31..0] Ingress Destination MAC Address for Mirror Filtering */ + } MIRROR_IDST_0_b; + }; + + union + { + __IOM uint32_t MIRROR_IDST_1; /*!< (@ 0x00000058) Ingress Destination MAC Address for Mirror Filtering + * Register 1 */ + + struct + { + __IOM uint32_t IDST : 16; /*!< [15..0] Ingress Destination MAC Address for Mirror Filtering */ + uint32_t : 16; + } MIRROR_IDST_1_b; + }; + + union + { + __IOM uint32_t MIRROR_ESRC_0; /*!< (@ 0x0000005C) Egress Source MAC Address for Mirror Filtering + * Register 0 */ + + struct + { + __IOM uint32_t ESRC : 32; /*!< [31..0] Egress Source MAC Address for Mirror Filtering */ + } MIRROR_ESRC_0_b; + }; + + union + { + __IOM uint32_t MIRROR_ESRC_1; /*!< (@ 0x00000060) Egress Source MAC Address for Mirror Filtering + * Register 1 */ + + struct + { + __IOM uint32_t ESRC : 16; /*!< [15..0] Egress Source MAC Address for Mirror Filtering */ + uint32_t : 16; + } MIRROR_ESRC_1_b; + }; + + union + { + __IOM uint32_t MIRROR_EDST_0; /*!< (@ 0x00000064) Egress Destination MAC Address for Mirror Filtering + * Register 0 */ + + struct + { + __IOM uint32_t EDST : 32; /*!< [31..0] Egress Destination MAC Address for Mirror Filtering */ + } MIRROR_EDST_0_b; + }; + + union + { + __IOM uint32_t MIRROR_EDST_1; /*!< (@ 0x00000068) Egress Destination MAC Address for Mirror Filtering + * Register 1 */ + + struct + { + __IOM uint32_t EDST : 16; /*!< [15..0] Egress Destination MAC Address for Mirror Filtering */ + uint32_t : 16; + } MIRROR_EDST_1_b; + }; + + union + { + __IOM uint32_t MIRROR_CNT; /*!< (@ 0x0000006C) Mirror Filtering Count Value Register */ + + struct + { + __IOM uint32_t CNT : 8; /*!< [7..0] Count Value for Mirror Filtering */ + uint32_t : 24; + } MIRROR_CNT_b; + }; + + union + { + __IOM uint32_t UCAST_DEFAULT_MASK1; /*!< (@ 0x00000070) Unicast Default Mask Register 1 */ + + struct + { + __IOM uint32_t UCASTDM1 : 4; /*!< [3..0] Default Unicast Resolution Mask 1 */ + uint32_t : 28; + } UCAST_DEFAULT_MASK1_b; + }; + + union + { + __IOM uint32_t BCAST_DEFAULT_MASK1; /*!< (@ 0x00000074) Broadcast Default Mask Register 1 */ + + struct + { + __IOM uint32_t BCASTDM1 : 4; /*!< [3..0] Default Broadcast Resolution Mask 1 */ + uint32_t : 28; + } BCAST_DEFAULT_MASK1_b; + }; + + union + { + __IOM uint32_t MCAST_DEFAULT_MASK1; /*!< (@ 0x00000078) Multicast Default Mask Register 1 */ + + struct + { + __IOM uint32_t MCASTDM1 : 4; /*!< [3..0] Default Multicast Resolution Mask 1 */ + uint32_t : 28; + } MCAST_DEFAULT_MASK1_b; + }; + + union + { + __IOM uint32_t PORT_XCAST_MASK_SEL; /*!< (@ 0x0000007C) Port Mask Select Register */ + + struct + { + __IOM uint32_t MSEL : 4; /*!< [3..0] Mask Select */ + uint32_t : 28; + } PORT_XCAST_MASK_SEL_b; + }; + __IM uint32_t RESERVED[2]; + + union + { + __IOM uint32_t QMGR_ST_MINCELLS; /*!< (@ 0x00000088) Minimum Memory Cell Statistics Register */ + + struct + { + __IOM uint32_t STMINCELLS : 11; /*!< [10..0] Minimum Free Cell Indication */ + uint32_t : 21; + } QMGR_ST_MINCELLS_b; + }; + __IM uint32_t RESERVED1[2]; + + union + { + __IOM uint32_t QMGR_RED_MIN4; /*!< (@ 0x00000094) RED Minimum Threshold Register */ + + struct + { + __IOM uint32_t CFGRED_MINTH4 : 32; /*!< [31..0] Random Early Detection (RED) Minimum Threshold for Queues + * 0 to 3 */ + } QMGR_RED_MIN4_b; + }; + + union + { + __IOM uint32_t QMGR_RED_MAX4; /*!< (@ 0x00000098) RED Maximum Threshold Register */ + + struct + { + __IOM uint32_t CFGRED_MAXTH4 : 32; /*!< [31..0] Random Early Detection (RED) Maximum Threshold for Queues + * 0 to 3 */ + } QMGR_RED_MAX4_b; + }; + + union + { + __IOM uint32_t QMGR_RED_CONFIG; /*!< (@ 0x0000009C) RED Configuration Register */ + + struct + { + __IOM uint32_t QUEUE_RED_EN : 4; /*!< [3..0] Enable Random Early Detection (RED) (when this bit is + * 1) or Tail Drop (when this bit is 0) congestion management + * for a queue. */ + uint32_t : 4; + __IOM uint32_t GACTIVITY_EN : 1; /*!< [8..8] Enable Averaging on Global Switch Activity (when this + * bit is 1) or on port local activity (when this bit is 0) + * only. */ + uint32_t : 23; + } QMGR_RED_CONFIG_b; + }; + + union + { + __IM uint32_t IMC_STATUS; /*!< (@ 0x000000A0) Input Memory Controller Status Register */ + + struct + { + __IM uint32_t CELLS_AVAILABLE : 24; /*!< [23..0] Total number of memory cells (128-byte units) available + * in the shared memory (real time). */ + __IM uint32_t CF_ERR : 1; /*!< [24..24] Cell Factory Empty Error */ + __IM uint32_t DE_ERR : 1; /*!< [25..25] Deallocation Error */ + __IM uint32_t DE_INIT : 1; /*!< [26..26] Asserts during Memory Initialization (deallocation + * module) */ + __IM uint32_t MEM_FULL : 1; /*!< [27..27] Latched Indication that Memory is or was Full */ + uint32_t : 4; + } IMC_STATUS_b; + }; + + union + { + __IM uint32_t IMC_ERR_FULL; /*!< (@ 0x000000A4) Input Port Memory Full and Truncation Indicator + * Register */ + + struct + { + __IM uint32_t IPC_ERR_FULL : 4; /*!< [3..0] Memory was full at start of a frame reception. */ + uint32_t : 12; + __IM uint32_t IPC_ERR_TRUNC : 4; /*!< [19..16] Memory became full while a frame was received and was + * partly written into memory. */ + uint32_t : 12; + } IMC_ERR_FULL_b; + }; + + union + { + __IM uint32_t IMC_ERR_IFACE; /*!< (@ 0x000000A8) Input Port Memory Error Indicator Register */ + + struct + { + __IM uint32_t IPC_ERR_IFACE : 4; /*!< [3..0] Error indication on memory input (receive from MAC) that + * a frame has been truncated and discarded. */ + uint32_t : 12; + __IM uint32_t WBUF_OVF : 4; /*!< [19..16] Error indicating an overflow in the input write buffer + * to the memory controller (a small decoupling FIFO at every + * MAC RX). */ + uint32_t : 12; + } IMC_ERR_IFACE_b; + }; + + union + { + __IM uint32_t IMC_ERR_QOFLOW; /*!< (@ 0x000000AC) Output Port Queue Overflow Indicator Register */ + + struct + { + __IM uint32_t OP_ERR : 4; /*!< [3..0] A frame cannot be stored in an output queue of the port + * as the queue FIFO overflowed (write occurred into full + * fifo). The frame is ignored but stays stored in memory. + * This should not occur during normal operation. This is + * a fatal error as the memory allocated by that frame is + * not freed, and resulting in memory leakage. */ + uint32_t : 28; + } IMC_ERR_QOFLOW_b; + }; + + union + { + __IOM uint32_t IMC_CONFIG; /*!< (@ 0x000000B0) Input Memory Controller Configuration Register */ + + struct + { + __IOM uint32_t WFQ_EN : 1; /*!< [0..0] Enable weighted fair queuing (when this bit is 1) or + * strict priority (when this bit is 0, default) output queue + * scheduling. */ + __IOM uint32_t RSV_ENA : 1; /*!< [1..1] Enable Memory Reservations to Operate */ + __IOM uint32_t SPEED_HIPRI_THR : 3; /*!< [4..2] High-Priority Speed Threshold */ + __IOM uint32_t CTFL_EMPTY_MD : 1; /*!< [5..5] When this bit is set to 0, a frame received in Cut-Through + * mode that cannot allocate an entry in the CTFL is forwarded + * as store and forward. */ + uint32_t : 26; + } IMC_CONFIG_b; + }; + + union + { + __IM uint32_t IMC_ERR_ALLOC; /*!< (@ 0x000000B4) Input Port Error Indicator Register */ + + struct + { + __IM uint32_t DISC_FULL : 4; /*!< [3..0] Per port discard indication due to memory pool going + * empty. Per port indication that one of the queues was full + * and a frame was discarded. */ + uint32_t : 12; + __IM uint32_t DISC_LATE : 4; /*!< [19..16] Per port discard indication due to lateness in the + * priority resolution. The priority resolution can be delayed + * by the pattern matchers. If it arrives too late (after + * approximately 100 bytes into the frame), the frame is discarded. */ + uint32_t : 12; + } IMC_ERR_ALLOC_b; + }; + __IM uint32_t RESERVED2[2]; + + union + { + __IOM uint32_t GPARSER0; /*!< (@ 0x000000C0) [n + 1]th Parser of 1st Block */ + + struct + { + __IOM uint32_t MASK_VAL2 : 8; /*!< [7..0] Mask for single byte compares or 2nd compare value (if + * bit 30 = 1) or least significant bits of a 16-bit compare + * value (if bit 28 = 1). When used as a mask (bit 28, 30 + * = 0, 0), the data from the frame is ANDed with this mask, + * then compared to the compare value. All bits having a 1 + * in the mask will be compared with the data in the frame. + * All bits having a 0 will be 0 for the compare, however + * this requires the compare value to have those bits also + * set to 0. */ + __IOM uint32_t COMPARE_VAL : 8; /*!< [15..8] The value to compare the frame data with at the given + * offset. */ + __IOM uint32_t OFFSET : 6; /*!< [21..16] An offset in bytes where to find the data for comparison + * within the frame. The offset value starts at 0 to indicate + * the very first byte after offset start. The offset start + * can be either the type/length field of the frame, that + * is, 0 = first byte of type/length field) or the payload + * following an IP header (see IPDATA). Valid values range + * from 0 to 60. */ + uint32_t : 1; + __IOM uint32_t OFFSET_DA : 1; /*!< [23..23] When set, the offset starts counting from the first + * byte of the MAC destination address. */ + __IOM uint32_t VALID : 1; /*!< [24..24] Indicate that this entry is valid (when this bit is + * 1) and should be used. When this bit is 0, the parser result + * always indicates "no match" and none of the other bits + * are relevant. */ + __IOM uint32_t SKIPVLAN : 1; /*!< [25..25] When set, any optional VLAN tags found in the frame + * are skipped and the parser starts operating at the first + * byte following any VLAN tags. When cleared, the parser + * starts with the first byte following the source MAC address. */ + __IOM uint32_t IPDATA : 1; /*!< [26..26] When set, the offset starts with the first byte following + * an IP header if an IP frame is processed. The following + * fields are skipped: */ + __IOM uint32_t IPPROTOCOL : 1; /*!< [27..27] When set, the compare value is compared with the protocol + * field found within the IP header for both IPv4 and IPv6 + * frames. It implicitly acts as SKIPVLAN = 1 skipping any + * VLAN tags if present. The offset setting has no meaning + * and is ignored. */ + __IOM uint32_t CMP16 : 1; /*!< [28..28] When set, MASK_VAL2[7:0] is used as a value to perform + * a 16-bit compare. COMPARE_VAL[7:0] represent the byte at + * the given offset and MASK_VAL2[7:0] represent the byte + * following at offset + 1 which matches the network byte + * order for 16-bit fields. For example, setting a compare + * value of 0x0800 and offset 0 matches IP frames. No mask + * is available in this mode. */ + __IOM uint32_t OFFSET_PLUS2 : 1; /*!< [29..29] Repeats the comparison at offset + 2, if the comparison + * at offset failed. */ + __IOM uint32_t CMP_MASK_OR : 1; /*!< [30..30] Use the MASK_VAL2[7:0] bits as a 2nd compare value. + * When set, the parser reports a match if the byte at given + * offset matches COMPARE_VAL[7:0] or MASK_VAL2[7:0]. */ + uint32_t : 1; + } GPARSER0_b; + }; + + union + { + __IOM uint32_t GPARSER1; /*!< (@ 0x000000C4) [n + 1]th Parser of 1st Block */ + + struct + { + __IOM uint32_t MASK_VAL2 : 8; /*!< [7..0] Mask for single byte compares or 2nd compare value (if + * bit 30 = 1) or least significant bits of a 16-bit compare + * value (if bit 28 = 1). When used as a mask (bit 28, 30 + * = 0, 0), the data from the frame is ANDed with this mask, + * then compared to the compare value. All bits having a 1 + * in the mask will be compared with the data in the frame. + * All bits having a 0 will be 0 for the compare, however + * this requires the compare value to have those bits also + * set to 0. */ + __IOM uint32_t COMPARE_VAL : 8; /*!< [15..8] The value to compare the frame data with at the given + * offset. */ + __IOM uint32_t OFFSET : 6; /*!< [21..16] An offset in bytes where to find the data for comparison + * within the frame. The offset value starts at 0 to indicate + * the very first byte after offset start. The offset start + * can be either the type/length field of the frame, that + * is, 0 = first byte of type/length field) or the payload + * following an IP header (see IPDATA). Valid values range + * from 0 to 60. */ + uint32_t : 1; + __IOM uint32_t OFFSET_DA : 1; /*!< [23..23] When set, the offset starts counting from the first + * byte of the MAC destination address. */ + __IOM uint32_t VALID : 1; /*!< [24..24] Indicate that this entry is valid (when this bit is + * 1) and should be used. When this bit is 0, the parser result + * always indicates "no match" and none of the other bits + * are relevant. */ + __IOM uint32_t SKIPVLAN : 1; /*!< [25..25] When set, any optional VLAN tags found in the frame + * are skipped and the parser starts operating at the first + * byte following any VLAN tags. When cleared, the parser + * starts with the first byte following the source MAC address. */ + __IOM uint32_t IPDATA : 1; /*!< [26..26] When set, the offset starts with the first byte following + * an IP header if an IP frame is processed. The following + * fields are skipped: */ + __IOM uint32_t IPPROTOCOL : 1; /*!< [27..27] When set, the compare value is compared with the protocol + * field found within the IP header for both IPv4 and IPv6 + * frames. It implicitly acts as SKIPVLAN = 1 skipping any + * VLAN tags if present. The offset setting has no meaning + * and is ignored. */ + __IOM uint32_t CMP16 : 1; /*!< [28..28] When set, MASK_VAL2[7:0] is used as a value to perform + * a 16-bit compare. COMPARE_VAL[7:0] represent the byte at + * the given offset and MASK_VAL2[7:0] represent the byte + * following at offset + 1 which matches the network byte + * order for 16-bit fields. For example, setting a compare + * value of 0x0800 and offset 0 matches IP frames. No mask + * is available in this mode. */ + __IOM uint32_t OFFSET_PLUS2 : 1; /*!< [29..29] Repeats the comparison at offset + 2, if the comparison + * at offset failed. */ + __IOM uint32_t CMP_MASK_OR : 1; /*!< [30..30] Use the MASK_VAL2[7:0] bits as a 2nd compare value. + * When set, the parser reports a match if the byte at given + * offset matches COMPARE_VAL[7:0] or MASK_VAL2[7:0]. */ + uint32_t : 1; + } GPARSER1_b; + }; + + union + { + __IOM uint32_t GPARSER2; /*!< (@ 0x000000C8) [n + 1]th Parser of 1st Block */ + + struct + { + __IOM uint32_t MASK_VAL2 : 8; /*!< [7..0] Mask for single byte compares or 2nd compare value (if + * bit 30 = 1) or least significant bits of a 16-bit compare + * value (if bit 28 = 1). When used as a mask (bit 28, 30 + * = 0, 0), the data from the frame is ANDed with this mask, + * then compared to the compare value. All bits having a 1 + * in the mask will be compared with the data in the frame. + * All bits having a 0 will be 0 for the compare, however + * this requires the compare value to have those bits also + * set to 0. */ + __IOM uint32_t COMPARE_VAL : 8; /*!< [15..8] The value to compare the frame data with at the given + * offset. */ + __IOM uint32_t OFFSET : 6; /*!< [21..16] An offset in bytes where to find the data for comparison + * within the frame. The offset value starts at 0 to indicate + * the very first byte after offset start. The offset start + * can be either the type/length field of the frame, that + * is, 0 = first byte of type/length field) or the payload + * following an IP header (see IPDATA). Valid values range + * from 0 to 60. */ + uint32_t : 1; + __IOM uint32_t OFFSET_DA : 1; /*!< [23..23] When set, the offset starts counting from the first + * byte of the MAC destination address. */ + __IOM uint32_t VALID : 1; /*!< [24..24] Indicate that this entry is valid (when this bit is + * 1) and should be used. When this bit is 0, the parser result + * always indicates "no match" and none of the other bits + * are relevant. */ + __IOM uint32_t SKIPVLAN : 1; /*!< [25..25] When set, any optional VLAN tags found in the frame + * are skipped and the parser starts operating at the first + * byte following any VLAN tags. When cleared, the parser + * starts with the first byte following the source MAC address. */ + __IOM uint32_t IPDATA : 1; /*!< [26..26] When set, the offset starts with the first byte following + * an IP header if an IP frame is processed. The following + * fields are skipped: */ + __IOM uint32_t IPPROTOCOL : 1; /*!< [27..27] When set, the compare value is compared with the protocol + * field found within the IP header for both IPv4 and IPv6 + * frames. It implicitly acts as SKIPVLAN = 1 skipping any + * VLAN tags if present. The offset setting has no meaning + * and is ignored. */ + __IOM uint32_t CMP16 : 1; /*!< [28..28] When set, MASK_VAL2[7:0] is used as a value to perform + * a 16-bit compare. COMPARE_VAL[7:0] represent the byte at + * the given offset and MASK_VAL2[7:0] represent the byte + * following at offset + 1 which matches the network byte + * order for 16-bit fields. For example, setting a compare + * value of 0x0800 and offset 0 matches IP frames. No mask + * is available in this mode. */ + __IOM uint32_t OFFSET_PLUS2 : 1; /*!< [29..29] Repeats the comparison at offset + 2, if the comparison + * at offset failed. */ + __IOM uint32_t CMP_MASK_OR : 1; /*!< [30..30] Use the MASK_VAL2[7:0] bits as a 2nd compare value. + * When set, the parser reports a match if the byte at given + * offset matches COMPARE_VAL[7:0] or MASK_VAL2[7:0]. */ + uint32_t : 1; + } GPARSER2_b; + }; + + union + { + __IOM uint32_t GPARSER3; /*!< (@ 0x000000CC) [n + 1]th Parser of 1st Block */ + + struct + { + __IOM uint32_t MASK_VAL2 : 8; /*!< [7..0] Mask for single byte compares or 2nd compare value (if + * bit 30 = 1) or least significant bits of a 16-bit compare + * value (if bit 28 = 1). When used as a mask (bit 28, 30 + * = 0, 0), the data from the frame is ANDed with this mask, + * then compared to the compare value. All bits having a 1 + * in the mask will be compared with the data in the frame. + * All bits having a 0 will be 0 for the compare, however + * this requires the compare value to have those bits also + * set to 0. */ + __IOM uint32_t COMPARE_VAL : 8; /*!< [15..8] The value to compare the frame data with at the given + * offset. */ + __IOM uint32_t OFFSET : 6; /*!< [21..16] An offset in bytes where to find the data for comparison + * within the frame. The offset value starts at 0 to indicate + * the very first byte after offset start. The offset start + * can be either the type/length field of the frame, that + * is, 0 = first byte of type/length field) or the payload + * following an IP header (see IPDATA). Valid values range + * from 0 to 60. */ + uint32_t : 1; + __IOM uint32_t OFFSET_DA : 1; /*!< [23..23] When set, the offset starts counting from the first + * byte of the MAC destination address. */ + __IOM uint32_t VALID : 1; /*!< [24..24] Indicate that this entry is valid (when this bit is + * 1) and should be used. When this bit is 0, the parser result + * always indicates "no match" and none of the other bits + * are relevant. */ + __IOM uint32_t SKIPVLAN : 1; /*!< [25..25] When set, any optional VLAN tags found in the frame + * are skipped and the parser starts operating at the first + * byte following any VLAN tags. When cleared, the parser + * starts with the first byte following the source MAC address. */ + __IOM uint32_t IPDATA : 1; /*!< [26..26] When set, the offset starts with the first byte following + * an IP header if an IP frame is processed. The following + * fields are skipped: */ + __IOM uint32_t IPPROTOCOL : 1; /*!< [27..27] When set, the compare value is compared with the protocol + * field found within the IP header for both IPv4 and IPv6 + * frames. It implicitly acts as SKIPVLAN = 1 skipping any + * VLAN tags if present. The offset setting has no meaning + * and is ignored. */ + __IOM uint32_t CMP16 : 1; /*!< [28..28] When set, MASK_VAL2[7:0] is used as a value to perform + * a 16-bit compare. COMPARE_VAL[7:0] represent the byte at + * the given offset and MASK_VAL2[7:0] represent the byte + * following at offset + 1 which matches the network byte + * order for 16-bit fields. For example, setting a compare + * value of 0x0800 and offset 0 matches IP frames. No mask + * is available in this mode. */ + __IOM uint32_t OFFSET_PLUS2 : 1; /*!< [29..29] Repeats the comparison at offset + 2, if the comparison + * at offset failed. */ + __IOM uint32_t CMP_MASK_OR : 1; /*!< [30..30] Use the MASK_VAL2[7:0] bits as a 2nd compare value. + * When set, the parser reports a match if the byte at given + * offset matches COMPARE_VAL[7:0] or MASK_VAL2[7:0]. */ + uint32_t : 1; + } GPARSER3_b; + }; + + union + { + __IOM uint32_t GARITH0; /*!< (@ 0x000000D0) Snoop Configuration for Arithmetic [n + 1]th + * Stage of 1st Block */ + + struct + { + __IOM uint32_t NOT_INP : 4; /*!< [3..0] Not Input */ + uint32_t : 4; + __IOM uint32_t SEL_MATCH : 4; /*!< [11..8] Select Match */ + __IOM uint32_t SEL_ARITH0 : 1; /*!< [12..12] Select Arithmetic Stage 0 */ + __IOM uint32_t SEL_ARITH1 : 1; /*!< [13..13] Select Arithmetic Stage 1 */ + __IOM uint32_t SEL_ARITH2 : 1; /*!< [14..14] Select Arithmetic Stage 2 */ + uint32_t : 1; + __IOM uint32_t OP : 1; /*!< [16..16] Operation */ + __IOM uint32_t RESULT_INV : 1; /*!< [17..17] Result Invert */ + uint32_t : 2; + __IOM uint32_t SNP_MD : 2; /*!< [21..20] Snoop Mode */ + uint32_t : 10; + } GARITH0_b; + }; + + union + { + __IOM uint32_t GARITH1; /*!< (@ 0x000000D4) Snoop Configuration for Arithmetic [n + 1]th + * Stage of 1st Block */ + + struct + { + __IOM uint32_t NOT_INP : 4; /*!< [3..0] Not Input */ + uint32_t : 4; + __IOM uint32_t SEL_MATCH : 4; /*!< [11..8] Select Match */ + __IOM uint32_t SEL_ARITH0 : 1; /*!< [12..12] Select Arithmetic Stage 0 */ + __IOM uint32_t SEL_ARITH1 : 1; /*!< [13..13] Select Arithmetic Stage 1 */ + __IOM uint32_t SEL_ARITH2 : 1; /*!< [14..14] Select Arithmetic Stage 2 */ + uint32_t : 1; + __IOM uint32_t OP : 1; /*!< [16..16] Operation */ + __IOM uint32_t RESULT_INV : 1; /*!< [17..17] Result Invert */ + uint32_t : 2; + __IOM uint32_t SNP_MD : 2; /*!< [21..20] Snoop Mode */ + uint32_t : 10; + } GARITH1_b; + }; + + union + { + __IOM uint32_t GARITH2; /*!< (@ 0x000000D8) Snoop Configuration for Arithmetic [n + 1]th + * Stage of 1st Block */ + + struct + { + __IOM uint32_t NOT_INP : 4; /*!< [3..0] Not Input */ + uint32_t : 4; + __IOM uint32_t SEL_MATCH : 4; /*!< [11..8] Select Match */ + __IOM uint32_t SEL_ARITH0 : 1; /*!< [12..12] Select Arithmetic Stage 0 */ + __IOM uint32_t SEL_ARITH1 : 1; /*!< [13..13] Select Arithmetic Stage 1 */ + __IOM uint32_t SEL_ARITH2 : 1; /*!< [14..14] Select Arithmetic Stage 2 */ + uint32_t : 1; + __IOM uint32_t OP : 1; /*!< [16..16] Operation */ + __IOM uint32_t RESULT_INV : 1; /*!< [17..17] Result Invert */ + uint32_t : 2; + __IOM uint32_t SNP_MD : 2; /*!< [21..20] Snoop Mode */ + uint32_t : 10; + } GARITH2_b; + }; + + union + { + __IOM uint32_t GARITH3; /*!< (@ 0x000000DC) Snoop Configuration for Arithmetic [n + 1]th + * Stage of 1st Block */ + + struct + { + __IOM uint32_t NOT_INP : 4; /*!< [3..0] Not Input */ + uint32_t : 4; + __IOM uint32_t SEL_MATCH : 4; /*!< [11..8] Select Match */ + __IOM uint32_t SEL_ARITH0 : 1; /*!< [12..12] Select Arithmetic Stage 0 */ + __IOM uint32_t SEL_ARITH1 : 1; /*!< [13..13] Select Arithmetic Stage 1 */ + __IOM uint32_t SEL_ARITH2 : 1; /*!< [14..14] Select Arithmetic Stage 2 */ + uint32_t : 1; + __IOM uint32_t OP : 1; /*!< [16..16] Operation */ + __IOM uint32_t RESULT_INV : 1; /*!< [17..17] Result Invert */ + uint32_t : 2; + __IOM uint32_t SNP_MD : 2; /*!< [21..20] Snoop Mode */ + uint32_t : 10; + } GARITH3_b; + }; + + union + { + __IOM uint32_t GPARSER4; /*!< (@ 0x000000E0) [n - 3]th Parser of 2nd Block */ + + struct + { + __IOM uint32_t MASK_VAL2 : 8; /*!< [7..0] Mask for single byte compares or 2nd compare value (if + * bit 30 = 1) or least significant bits of a 16-bit compare + * value (if bit 28 = 1). When used as a mask (bit 28, 30 + * = 0, 0), the data from the frame is ANDed with this mask, + * then compared to the compare value. All bits having a 1 + * in the mask are compared with the data in the frame. All + * bits having a 0 will be 0 for the compare, however this + * requires the compare value to have those bits also set + * to 0. */ + __IOM uint32_t COMPARE_VAL : 8; /*!< [15..8] The value to compare the frame data with at the given + * offset. */ + __IOM uint32_t OFFSET : 6; /*!< [21..16] An offset in bytes to locate the data for comparison + * within the frame. The offset value starts at 0 to indicate + * the very first byte after offset start. The offset start + * can be either the type or length field of the frame, for + * example 0 = first byte of type/length field) or the payload + * following an IP header (see bit 26). Valid values range + * from 0 to 60. */ + uint32_t : 1; + __IOM uint32_t OFFSET_DA : 1; /*!< [23..23] When set, the offset starts counting from the first + * byte of the MAC destination address. */ + __IOM uint32_t VALID : 1; /*!< [24..24] Indicates that this entry is valid (when this bit is + * 1) and should be used. When this bit is 0, the parser result + * always indicates "no match" and none of the other bits + * are relevant. */ + __IOM uint32_t SKIPVLAN : 1; /*!< [25..25] When set, any optional VLAN tags found in the frame + * are skipped and the parser starts operating at the first + * byte following any VLAN tags. When cleared, the parser + * starts with the first byte following the source MAC address. */ + __IOM uint32_t IPDATA : 1; /*!< [26..26] When set, the offset starts with the first byte following + * an IP header if an IP frame is processed. The following + * fields are skipped: */ + __IOM uint32_t IPPROTOCOL : 1; /*!< [27..27] When set, the compare value is compared with the protocol + * field located within the IP header for both IPv4 and IPv6 + * frames. It implicitly acts as SKIPVLAN = 1 skipping any + * VLAN tags if present. The offset setting has no meaning + * and is ignored. If the bit is set, but the frame is not + * an IPv4/v6 frame the parser reports a no match and does + * not continue to inspect the frame. When cleared, the offset + * is used normally on all frames. */ + __IOM uint32_t CMP16 : 1; /*!< [28..28] When set, MASK_VAL2[7:0] is used as a value to perform + * a 16-bit compare. COMPARE_VAL[7:0] represents the byte + * at the given offset and MASK_VAL2[7:0] represents the byte + * following at offset + 1 which matches the network byte + * order for 16-bit fields, (for example setting a compare + * value of 0x0800 and offset 0 matches IP frames). No mask + * is available in this mode. */ + __IOM uint32_t OFFSET_PLUS2 : 1; /*!< [29..29] Repeats the comparison at offset + 2, if the comparison + * at offset failed. */ + __IOM uint32_t CMP_MASK_OR : 1; /*!< [30..30] Use MASK_VAL2[7:0] as a second compare value. When + * set, the parser reports a match if the byte at given offset + * matches COMPARE_VAL[7:0] or MASK_VAL2[7:0]. */ + uint32_t : 1; + } GPARSER4_b; + }; + + union + { + __IOM uint32_t GPARSER5; /*!< (@ 0x000000E4) [n - 3]th Parser of 2nd Block */ + + struct + { + __IOM uint32_t MASK_VAL2 : 8; /*!< [7..0] Mask for single byte compares or 2nd compare value (if + * bit 30 = 1) or least significant bits of a 16-bit compare + * value (if bit 28 = 1). When used as a mask (bit 28, 30 + * = 0, 0), the data from the frame is ANDed with this mask, + * then compared to the compare value. All bits having a 1 + * in the mask are compared with the data in the frame. All + * bits having a 0 will be 0 for the compare, however this + * requires the compare value to have those bits also set + * to 0. */ + __IOM uint32_t COMPARE_VAL : 8; /*!< [15..8] The value to compare the frame data with at the given + * offset. */ + __IOM uint32_t OFFSET : 6; /*!< [21..16] An offset in bytes to locate the data for comparison + * within the frame. The offset value starts at 0 to indicate + * the very first byte after offset start. The offset start + * can be either the type or length field of the frame, for + * example 0 = first byte of type/length field) or the payload + * following an IP header (see bit 26). Valid values range + * from 0 to 60. */ + uint32_t : 1; + __IOM uint32_t OFFSET_DA : 1; /*!< [23..23] When set, the offset starts counting from the first + * byte of the MAC destination address. */ + __IOM uint32_t VALID : 1; /*!< [24..24] Indicates that this entry is valid (when this bit is + * 1) and should be used. When this bit is 0, the parser result + * always indicates "no match" and none of the other bits + * are relevant. */ + __IOM uint32_t SKIPVLAN : 1; /*!< [25..25] When set, any optional VLAN tags found in the frame + * are skipped and the parser starts operating at the first + * byte following any VLAN tags. When cleared, the parser + * starts with the first byte following the source MAC address. */ + __IOM uint32_t IPDATA : 1; /*!< [26..26] When set, the offset starts with the first byte following + * an IP header if an IP frame is processed. The following + * fields are skipped: */ + __IOM uint32_t IPPROTOCOL : 1; /*!< [27..27] When set, the compare value is compared with the protocol + * field located within the IP header for both IPv4 and IPv6 + * frames. It implicitly acts as SKIPVLAN = 1 skipping any + * VLAN tags if present. The offset setting has no meaning + * and is ignored. If the bit is set, but the frame is not + * an IPv4/v6 frame the parser reports a no match and does + * not continue to inspect the frame. When cleared, the offset + * is used normally on all frames. */ + __IOM uint32_t CMP16 : 1; /*!< [28..28] When set, MASK_VAL2[7:0] is used as a value to perform + * a 16-bit compare. COMPARE_VAL[7:0] represents the byte + * at the given offset and MASK_VAL2[7:0] represents the byte + * following at offset + 1 which matches the network byte + * order for 16-bit fields, (for example setting a compare + * value of 0x0800 and offset 0 matches IP frames). No mask + * is available in this mode. */ + __IOM uint32_t OFFSET_PLUS2 : 1; /*!< [29..29] Repeats the comparison at offset + 2, if the comparison + * at offset failed. */ + __IOM uint32_t CMP_MASK_OR : 1; /*!< [30..30] Use MASK_VAL2[7:0] as a second compare value. When + * set, the parser reports a match if the byte at given offset + * matches COMPARE_VAL[7:0] or MASK_VAL2[7:0]. */ + uint32_t : 1; + } GPARSER5_b; + }; + + union + { + __IOM uint32_t GPARSER6; /*!< (@ 0x000000E8) [n - 3]th Parser of 2nd Block */ + + struct + { + __IOM uint32_t MASK_VAL2 : 8; /*!< [7..0] Mask for single byte compares or 2nd compare value (if + * bit 30 = 1) or least significant bits of a 16-bit compare + * value (if bit 28 = 1). When used as a mask (bit 28, 30 + * = 0, 0), the data from the frame is ANDed with this mask, + * then compared to the compare value. All bits having a 1 + * in the mask are compared with the data in the frame. All + * bits having a 0 will be 0 for the compare, however this + * requires the compare value to have those bits also set + * to 0. */ + __IOM uint32_t COMPARE_VAL : 8; /*!< [15..8] The value to compare the frame data with at the given + * offset. */ + __IOM uint32_t OFFSET : 6; /*!< [21..16] An offset in bytes to locate the data for comparison + * within the frame. The offset value starts at 0 to indicate + * the very first byte after offset start. The offset start + * can be either the type or length field of the frame, for + * example 0 = first byte of type/length field) or the payload + * following an IP header (see bit 26). Valid values range + * from 0 to 60. */ + uint32_t : 1; + __IOM uint32_t OFFSET_DA : 1; /*!< [23..23] When set, the offset starts counting from the first + * byte of the MAC destination address. */ + __IOM uint32_t VALID : 1; /*!< [24..24] Indicates that this entry is valid (when this bit is + * 1) and should be used. When this bit is 0, the parser result + * always indicates "no match" and none of the other bits + * are relevant. */ + __IOM uint32_t SKIPVLAN : 1; /*!< [25..25] When set, any optional VLAN tags found in the frame + * are skipped and the parser starts operating at the first + * byte following any VLAN tags. When cleared, the parser + * starts with the first byte following the source MAC address. */ + __IOM uint32_t IPDATA : 1; /*!< [26..26] When set, the offset starts with the first byte following + * an IP header if an IP frame is processed. The following + * fields are skipped: */ + __IOM uint32_t IPPROTOCOL : 1; /*!< [27..27] When set, the compare value is compared with the protocol + * field located within the IP header for both IPv4 and IPv6 + * frames. It implicitly acts as SKIPVLAN = 1 skipping any + * VLAN tags if present. The offset setting has no meaning + * and is ignored. If the bit is set, but the frame is not + * an IPv4/v6 frame the parser reports a no match and does + * not continue to inspect the frame. When cleared, the offset + * is used normally on all frames. */ + __IOM uint32_t CMP16 : 1; /*!< [28..28] When set, MASK_VAL2[7:0] is used as a value to perform + * a 16-bit compare. COMPARE_VAL[7:0] represents the byte + * at the given offset and MASK_VAL2[7:0] represents the byte + * following at offset + 1 which matches the network byte + * order for 16-bit fields, (for example setting a compare + * value of 0x0800 and offset 0 matches IP frames). No mask + * is available in this mode. */ + __IOM uint32_t OFFSET_PLUS2 : 1; /*!< [29..29] Repeats the comparison at offset + 2, if the comparison + * at offset failed. */ + __IOM uint32_t CMP_MASK_OR : 1; /*!< [30..30] Use MASK_VAL2[7:0] as a second compare value. When + * set, the parser reports a match if the byte at given offset + * matches COMPARE_VAL[7:0] or MASK_VAL2[7:0]. */ + uint32_t : 1; + } GPARSER6_b; + }; + + union + { + __IOM uint32_t GPARSER7; /*!< (@ 0x000000EC) [n - 3]th Parser of 2nd Block */ + + struct + { + __IOM uint32_t MASK_VAL2 : 8; /*!< [7..0] Mask for single byte compares or 2nd compare value (if + * bit 30 = 1) or least significant bits of a 16-bit compare + * value (if bit 28 = 1). When used as a mask (bit 28, 30 + * = 0, 0), the data from the frame is ANDed with this mask, + * then compared to the compare value. All bits having a 1 + * in the mask are compared with the data in the frame. All + * bits having a 0 will be 0 for the compare, however this + * requires the compare value to have those bits also set + * to 0. */ + __IOM uint32_t COMPARE_VAL : 8; /*!< [15..8] The value to compare the frame data with at the given + * offset. */ + __IOM uint32_t OFFSET : 6; /*!< [21..16] An offset in bytes to locate the data for comparison + * within the frame. The offset value starts at 0 to indicate + * the very first byte after offset start. The offset start + * can be either the type or length field of the frame, for + * example 0 = first byte of type/length field) or the payload + * following an IP header (see bit 26). Valid values range + * from 0 to 60. */ + uint32_t : 1; + __IOM uint32_t OFFSET_DA : 1; /*!< [23..23] When set, the offset starts counting from the first + * byte of the MAC destination address. */ + __IOM uint32_t VALID : 1; /*!< [24..24] Indicates that this entry is valid (when this bit is + * 1) and should be used. When this bit is 0, the parser result + * always indicates "no match" and none of the other bits + * are relevant. */ + __IOM uint32_t SKIPVLAN : 1; /*!< [25..25] When set, any optional VLAN tags found in the frame + * are skipped and the parser starts operating at the first + * byte following any VLAN tags. When cleared, the parser + * starts with the first byte following the source MAC address. */ + __IOM uint32_t IPDATA : 1; /*!< [26..26] When set, the offset starts with the first byte following + * an IP header if an IP frame is processed. The following + * fields are skipped: */ + __IOM uint32_t IPPROTOCOL : 1; /*!< [27..27] When set, the compare value is compared with the protocol + * field located within the IP header for both IPv4 and IPv6 + * frames. It implicitly acts as SKIPVLAN = 1 skipping any + * VLAN tags if present. The offset setting has no meaning + * and is ignored. If the bit is set, but the frame is not + * an IPv4/v6 frame the parser reports a no match and does + * not continue to inspect the frame. When cleared, the offset + * is used normally on all frames. */ + __IOM uint32_t CMP16 : 1; /*!< [28..28] When set, MASK_VAL2[7:0] is used as a value to perform + * a 16-bit compare. COMPARE_VAL[7:0] represents the byte + * at the given offset and MASK_VAL2[7:0] represents the byte + * following at offset + 1 which matches the network byte + * order for 16-bit fields, (for example setting a compare + * value of 0x0800 and offset 0 matches IP frames). No mask + * is available in this mode. */ + __IOM uint32_t OFFSET_PLUS2 : 1; /*!< [29..29] Repeats the comparison at offset + 2, if the comparison + * at offset failed. */ + __IOM uint32_t CMP_MASK_OR : 1; /*!< [30..30] Use MASK_VAL2[7:0] as a second compare value. When + * set, the parser reports a match if the byte at given offset + * matches COMPARE_VAL[7:0] or MASK_VAL2[7:0]. */ + uint32_t : 1; + } GPARSER7_b; + }; + + union + { + __IOM uint32_t GARITH4; /*!< (@ 0x000000F0) Snoop Configuration for Arithmetic [n - 3]th + * Stage of 2nd Block */ + + struct + { + __IOM uint32_t NOT_INP : 4; /*!< [3..0] Not Input */ + uint32_t : 4; + __IOM uint32_t SEL_MATCH : 4; /*!< [11..8] Select Match */ + __IOM uint32_t SEL_ARITH0 : 1; /*!< [12..12] Select Arithmetic Stage 0 */ + __IOM uint32_t SEL_ARITH1 : 1; /*!< [13..13] Select Arithmetic Stage 1 */ + __IOM uint32_t SEL_ARITH2 : 1; /*!< [14..14] Select Arithmetic Stage 2 */ + uint32_t : 1; + __IOM uint32_t OP : 1; /*!< [16..16] Operation */ + __IOM uint32_t RESULT_INV : 1; /*!< [17..17] Result Invert */ + uint32_t : 2; + __IOM uint32_t SNP_MD : 2; /*!< [21..20] Snoop Mode */ + uint32_t : 10; + } GARITH4_b; + }; + + union + { + __IOM uint32_t GARITH5; /*!< (@ 0x000000F4) Snoop Configuration for Arithmetic [n - 3]th + * Stage of 2nd Block */ + + struct + { + __IOM uint32_t NOT_INP : 4; /*!< [3..0] Not Input */ + uint32_t : 4; + __IOM uint32_t SEL_MATCH : 4; /*!< [11..8] Select Match */ + __IOM uint32_t SEL_ARITH0 : 1; /*!< [12..12] Select Arithmetic Stage 0 */ + __IOM uint32_t SEL_ARITH1 : 1; /*!< [13..13] Select Arithmetic Stage 1 */ + __IOM uint32_t SEL_ARITH2 : 1; /*!< [14..14] Select Arithmetic Stage 2 */ + uint32_t : 1; + __IOM uint32_t OP : 1; /*!< [16..16] Operation */ + __IOM uint32_t RESULT_INV : 1; /*!< [17..17] Result Invert */ + uint32_t : 2; + __IOM uint32_t SNP_MD : 2; /*!< [21..20] Snoop Mode */ + uint32_t : 10; + } GARITH5_b; + }; + + union + { + __IOM uint32_t GARITH6; /*!< (@ 0x000000F8) Snoop Configuration for Arithmetic [n - 3]th + * Stage of 2nd Block */ + + struct + { + __IOM uint32_t NOT_INP : 4; /*!< [3..0] Not Input */ + uint32_t : 4; + __IOM uint32_t SEL_MATCH : 4; /*!< [11..8] Select Match */ + __IOM uint32_t SEL_ARITH0 : 1; /*!< [12..12] Select Arithmetic Stage 0 */ + __IOM uint32_t SEL_ARITH1 : 1; /*!< [13..13] Select Arithmetic Stage 1 */ + __IOM uint32_t SEL_ARITH2 : 1; /*!< [14..14] Select Arithmetic Stage 2 */ + uint32_t : 1; + __IOM uint32_t OP : 1; /*!< [16..16] Operation */ + __IOM uint32_t RESULT_INV : 1; /*!< [17..17] Result Invert */ + uint32_t : 2; + __IOM uint32_t SNP_MD : 2; /*!< [21..20] Snoop Mode */ + uint32_t : 10; + } GARITH6_b; + }; + + union + { + __IOM uint32_t GARITH7; /*!< (@ 0x000000FC) Snoop Configuration for Arithmetic [n - 3]th + * Stage of 2nd Block */ + + struct + { + __IOM uint32_t NOT_INP : 4; /*!< [3..0] Not Input */ + uint32_t : 4; + __IOM uint32_t SEL_MATCH : 4; /*!< [11..8] Select Match */ + __IOM uint32_t SEL_ARITH0 : 1; /*!< [12..12] Select Arithmetic Stage 0 */ + __IOM uint32_t SEL_ARITH1 : 1; /*!< [13..13] Select Arithmetic Stage 1 */ + __IOM uint32_t SEL_ARITH2 : 1; /*!< [14..14] Select Arithmetic Stage 2 */ + uint32_t : 1; + __IOM uint32_t OP : 1; /*!< [16..16] Operation */ + __IOM uint32_t RESULT_INV : 1; /*!< [17..17] Result Invert */ + uint32_t : 2; + __IOM uint32_t SNP_MD : 2; /*!< [21..20] Snoop Mode */ + uint32_t : 10; + } GARITH7_b; + }; + + union + { + __IOM uint32_t VLAN_PRIORITY[4]; /*!< (@ 0x00000100) VLAN Priority Register [0..3] */ + + struct + { + __IOM uint32_t PRIORITY0 : 3; /*!< [2..0] Priority 0 Setting */ + __IOM uint32_t PRIORITY1 : 3; /*!< [5..3] Priority 1 Setting */ + __IOM uint32_t PRIORITY2 : 3; /*!< [8..6] Priority 2 Setting */ + __IOM uint32_t PRIORITY3 : 3; /*!< [11..9] Priority 3 Setting */ + __IOM uint32_t PRIORITY4 : 3; /*!< [14..12] Priority 4 Setting */ + __IOM uint32_t PRIORITY5 : 3; /*!< [17..15] Priority 5 Setting */ + __IOM uint32_t PRIORITY6 : 3; /*!< [20..18] Priority 6 Setting */ + __IOM uint32_t PRIORITY7 : 3; /*!< [23..21] Priority 7 Setting */ + uint32_t : 8; + } VLAN_PRIORITY_b[4]; + }; + __IM uint32_t RESERVED3[12]; + + union + { + __IOM uint32_t IP_PRIORITY[4]; /*!< (@ 0x00000140) IP Priority Register [0..3] */ + + struct + { + __IOM uint32_t ADDRESS : 8; /*!< [7..0] COS Table Address Specifying */ + __IOM uint32_t IPV6SELECT : 1; /*!< [8..8] IPv6 COS Table Selection */ + __IOM uint32_t PRIORITY : 3; /*!< [11..9] COS Table Priority */ + uint32_t : 19; + __IOM uint32_t READ : 1; /*!< [31..31] COS Table Operation Switching */ + } IP_PRIORITY_b[4]; + }; + __IM uint32_t RESERVED4[12]; + + union + { + __IOM uint32_t PRIORITY_CFG[4]; /*!< (@ 0x00000180) Priority Configuration Register [0..3] */ + + struct + { + __IOM uint32_t VLANEN : 1; /*!< [0..0] VLAN Priority Enable */ + __IOM uint32_t IPEN : 1; /*!< [1..1] IP Priority Enable */ + __IOM uint32_t MACEN : 1; /*!< [2..2] MAC Based Priority Enable */ + __IOM uint32_t TYPE_EN : 1; /*!< [3..3] TYPE Based Priority Enable */ + __IOM uint32_t DEFAULTPRI : 3; /*!< [6..4] Default Priority Enable Setting */ + __IOM uint32_t PCP_REMAP_DIS : 1; /*!< [7..7] Disables PCP remapping when set to 1. */ + __IOM uint32_t PCP_REMAP : 24; /*!< [31..8] PCP Remapping function */ + } PRIORITY_CFG_b[4]; + }; + __IM uint32_t RESERVED5[10]; + + union + { + __IOM uint32_t PRIORITY_TYPE1; /*!< (@ 0x000001B8) Priority Type Register 1 */ + + struct + { + __IOM uint32_t TYPEVAL : 16; /*!< [15..0] Type Priority */ + __IOM uint32_t VALID : 1; /*!< [16..16] If set indicates, this register contains valid data. */ + __IOM uint32_t PRIORITY : 3; /*!< [19..17] The priority value to use if a match occurs. */ + uint32_t : 12; + } PRIORITY_TYPE1_b; + }; + + union + { + __IOM uint32_t PRIORITY_TYPE2; /*!< (@ 0x000001BC) Priority Type Register 2 */ + + struct + { + __IOM uint32_t TYPEVAL : 16; /*!< [15..0] Type Priority */ + __IOM uint32_t VALID : 1; /*!< [16..16] If set indicates, this register contains valid data. */ + __IOM uint32_t PRIORITY : 3; /*!< [19..17] The priority value to use if a match occurs. */ + uint32_t : 12; + } PRIORITY_TYPE2_b; + }; + __IOM R_ETHSW_MGMT_ADDR_Type MGMT_ADDR[4]; /*!< (@ 0x000001C0) MAC Address [0..3] for Bridge Protocol Frame + * Register */ + + union + { + __IOM uint32_t SRCFLT_ENA; /*!< (@ 0x000001E0) MAC Source Address Filtering Enable Register */ + + struct + { + __IOM uint32_t SRCENA : 3; /*!< [2..0] Per-Source Port Enable */ + uint32_t : 13; + __IOM uint32_t DSTENA : 4; /*!< [19..16] Per-Destination Port Enable */ + uint32_t : 12; + } SRCFLT_ENA_b; + }; + + union + { + __IOM uint32_t SRCFLT_CONTROL; /*!< (@ 0x000001E4) MAC Source Address Filtering Control Register */ + + struct + { + __IOM uint32_t MGMT_FWD : 1; /*!< [0..0] Management Forward Enable */ + __IOM uint32_t WATCHDOG_ENA : 1; /*!< [1..1] When set to 1, a watchdog is enabled. */ + uint32_t : 14; + __IOM uint32_t WATCHDOG_TIME : 16; /*!< [31..16] Defines the watchdog expire time in milliseconds. The + * default is 2000 milliseconds. */ + } SRCFLT_CONTROL_b; + }; + + union + { + __IOM uint32_t SRCFLT_MACADDR_LO; /*!< (@ 0x000001E8) Lower MAC Filtering Address Register */ + + struct + { + __IOM uint32_t SRCFLT_MACADDR : 32; /*!< [31..0] MAC address to use in source filtering */ + } SRCFLT_MACADDR_LO_b; + }; + + union + { + __IOM uint32_t SRCFLT_MACADDR_HI; /*!< (@ 0x000001EC) Higher MAC Filtering Address Register */ + + struct + { + __IOM uint32_t SRCFLT_MACADDR : 16; /*!< [15..0] MAC address to use in source filtering */ + __IOM uint32_t MASK : 16; /*!< [31..16] The mask to apply to the last 16 bits of the MAC address */ + } SRCFLT_MACADDR_HI_b; + }; + __IM uint32_t RESERVED6[3]; + + union + { + __IOM uint32_t PHY_FILTER_CFG; /*!< (@ 0x000001FC) Debounce Filter Configuration Register */ + + struct + { + __IOM uint32_t FILTER_DURATION : 9; /*!< [8..0] This is the amount of time to wait after the last phy_link + * (ETHSW_PHYLINKn: n = port) transition from 0 to 1 to acknowledge + * the link-up condition. */ + uint32_t : 7; + __IOM uint32_t FLT_EN : 3; /*!< [18..16] Per-port Enable Mask */ + uint32_t : 13; + } PHY_FILTER_CFG_b; + }; + + union + { + __IOM uint32_t SYSTEM_TAGINFO[4]; /*!< (@ 0x00000200) One VLAN ID Field [0..3] for VLAN Input Manipulation */ + + struct + { + __IOM uint32_t SYSVLANINFO : 16; /*!< [15..0] System VLAN Info (prio/cfi/vid) for Port n */ + uint32_t : 16; + } SYSTEM_TAGINFO_b[4]; + }; + __IM uint32_t RESERVED7[12]; + + union + { + __IOM uint32_t AUTH_PORT[4]; /*!< (@ 0x00000240) Port [0..3] Authentication Control and Configuration */ + + struct + { + __IOM uint32_t AUTH : 1; /*!< [0..0] Authorized */ + __IOM uint32_t CTRL_BOTH : 1; /*!< [1..1] Controlled Both */ + __IOM uint32_t EAPOL_EN : 1; /*!< [2..2] EAPOL Enable */ + __IOM uint32_t GUEST_EN : 1; /*!< [3..3] Guest Enable */ + __IOM uint32_t BPDU_EN : 1; /*!< [4..4] BPDU Enable */ + __IOM uint32_t EAPOL_UC_EN : 1; /*!< [5..5] EAPOL Unicast Enable */ + uint32_t : 5; + __IOM uint32_t ACHG_UNAUTH : 1; /*!< [11..11] Automatic Port Change to Unauthorized */ + __IOM uint32_t EAPOL_PNUM : 4; /*!< [15..12] EAPOL Port Number */ + __IOM uint32_t GUEST_MASK : 4; /*!< [19..16] Destination port mask with all ports that are allowed + * to receive non-EAPOL frames from this port while it is + * unauthorized and guest (GUEST_EN) is enabled. */ + uint32_t : 12; + } AUTH_PORT_b[4]; + }; + __IM uint32_t RESERVED8[12]; + + union + { + __IOM uint32_t VLAN_RES_TABLE[32]; /*!< (@ 0x00000280) 32 VLAN Domain Entries */ + + struct + { + __IOM uint32_t PORTMASK : 4; /*!< [3..0] When this bit is set to 1, it defines a port as a member + * of the VLAN. When bit [28] or bit [29] is set, the tagged + * bit mask is read/written instead of port mask. */ + __IOM uint32_t VLANID : 12; /*!< [15..4] The 12-bit VLAN identifier (VLAN ID) of the entry. */ + uint32_t : 12; + __IOM uint32_t RD_TAGMSK : 1; /*!< [28..28] Read TAG Mask */ + __IOM uint32_t WT_TAGMSK : 1; /*!< [29..29] Write TAG Mask */ + __IOM uint32_t WT_PRTMSK : 1; /*!< [30..30] Write Port Mask */ + uint32_t : 1; + } VLAN_RES_TABLE_b[32]; + }; + + union + { + __IM uint32_t TOTAL_DISC; /*!< (@ 0x00000300) Discarded Frame Total Number Register */ + + struct + { + __IM uint32_t TOTAL_DISC : 32; /*!< [31..0] Total number of incoming frames accepted by MAC RX but + * discarded in the switch */ + } TOTAL_DISC_b; + }; + + union + { + __IM uint32_t TOTAL_BYT_DISC; /*!< (@ 0x00000304) Discarded Frame Total Bytes Register */ + + struct + { + __IM uint32_t TOTAL_BYT_DISC : 32; /*!< [31..0] Sum of bytes of frames counted in TOTAL_DISC */ + } TOTAL_BYT_DISC_b; + }; + + union + { + __IM uint32_t TOTAL_FRM; /*!< (@ 0x00000308) Processed Frame Total Number Register */ + + struct + { + __IM uint32_t TOTAL_FRM : 32; /*!< [31..0] Total number of incoming frames processed by the switch */ + } TOTAL_FRM_b; + }; + + union + { + __IM uint32_t TOTAL_BYT_FRM; /*!< (@ 0x0000030C) Processed Frame Total Bytes Register */ + + struct + { + __IM uint32_t TOTAL_BYT_FRM : 32; /*!< [31..0] Sum of bytes of frames counted in TOTAL_FRM */ + } TOTAL_BYT_FRM_b; + }; + __IM uint32_t RESERVED9[12]; + + union + { + __IOM uint32_t IALK_CONTROL; /*!< (@ 0x00000340) IA Lookup Function Enable Register */ + + struct + { + __IOM uint32_t IA_LKUP_ENA : 4; /*!< [3..0] Per-port Enable to the IA Lookup Table */ + uint32_t : 12; + __IOM uint32_t CT_ENA : 4; /*!< [19..16] Per-port Cut-Through Mode Enable */ + uint32_t : 12; + } IALK_CONTROL_b; + }; + + union + { + __IOM uint32_t IALK_OUI; /*!< (@ 0x00000344) IA Frames MAC Address OUI Register */ + + struct + { + __IOM uint32_t IALK_OUI : 24; /*!< [23..0] IA Frames MAC Address OUI */ + uint32_t : 8; + } IALK_OUI_b; + }; + + union + { + __IOM uint32_t IALK_ID_MIN; /*!< (@ 0x00000348) Minimum Value ID MAC Address Register */ + + struct + { + __IOM uint32_t IALK_ID_MIN : 24; /*!< [23..0] Minimum value for the 24-bit ID in the MAC address */ + uint32_t : 8; + } IALK_ID_MIN_b; + }; + + union + { + __IOM uint32_t IALK_ID_MAX; /*!< (@ 0x0000034C) Maximum Value ID MAC Address Register */ + + struct + { + __IOM uint32_t IALK_ID_MAX : 24; /*!< [23..0] Maximum value for the 24-bit ID in the MAC address */ + uint32_t : 8; + } IALK_ID_MAX_b; + }; + + union + { + __IOM uint32_t IALK_ID_SUB; /*!< (@ 0x00000350) Offset Value ID MAC Address Register */ + + struct + { + __IOM uint32_t IALK_ID_SUB : 24; /*!< [23..0] Offset value to subtract from the 24-bit ID in the MAC + * address */ + uint32_t : 8; + } IALK_ID_SUB_b; + }; + + union + { + __IOM uint32_t IALK_ID_CONFIG; /*!< (@ 0x00000354) Configures Lookup Response Unknown IDs Register */ + + struct + { + __IOM uint32_t INVLD_ID_FLOOD : 1; /*!< [0..0] Setting this bit to 1 causes the IA table to return a + * found response for frames whose ID lies outside the ID + * range defined by [IA_LK_MAX:IA_LK_MIN] using INVLD_ID_FLOOD_MASK[3:0] + * bits. */ + __IOM uint32_t INVLD_ID_LRN_ENA : 1; /*!< [1..1] Setting this bit to 1 allows automatic learning into + * the L2 FDB for frames with unknown IDs. When 0, learning + * is inhibited. This bit is only valid when INVLD_ID_FLOOD + * bit is set to 1. */ + uint32_t : 2; + __IOM uint32_t INVLD_ID_PRIO : 3; /*!< [6..4] Priority to use for found responses of an invalid ID. + * This bit is only valid when INVLD_ID_FLOOD bit is set to + * 1. */ + __IOM uint32_t INVLD_ID_PRIO_VLD : 1; /*!< [7..7] Indicates if the priority in INVLD_ID_PRIO is valid. + * This bit is valid only when INVLD_ID_FLOOD bit is set to + * 1. */ + uint32_t : 8; + __IOM uint32_t INVLD_ID_FLOOD_MASK : 4; /*!< [19..16] Forwarding mask used for frames whose ID is invalid. + * This bit is only valid when INVLD_ID_FLOOD bit is set to + * 1. Setting this mask to 0 causes the frame to be dropped. */ + uint32_t : 12; + } IALK_ID_CONFIG_b; + }; + + union + { + __IOM uint32_t IALK_VLAN_CONFIG; /*!< (@ 0x00000358) Configure Lookup Response Unknown VLAN Register */ + + struct + { + __IOM uint32_t UNKWN_VLAN_FLOOD : 1; /*!< [0..0] When this bit is set to 1, a frame matching the OUI and + * with a valid ID but having a VLAN ID not matching any of + * the enabled values in IALK_VLANIDn causes the IA table + * to return a found response using the forwarding mask in + * UNKWN_VLAN_FLOOD_MASK[3:0]. */ + __IOM uint32_t UNKWN_VLAN_LRN_ENA : 1; /*!< [1..1] Setting this bit to 1 allows automatic learning into + * the L2 FDB for frames with unknown VLANs. When 0, learning + * is inhibited. This bit is only valid when UNKWN_VLAN_FLOOD + * bit is set to 1. */ + uint32_t : 2; + __IOM uint32_t UNKWN_VLAN_PRIO : 3; /*!< [6..4] Priority to use for found responses for an unknown VLAN. + * This bit is only valid when UNKWN_VLAN_FLOOD bit is set + * to 1. */ + __IOM uint32_t UNKWN_VLAN_PRIO_VLD : 1; /*!< [7..7] Indicates if the priority in UNKWN_VLAN_PRIO[2:0] is + * valid. This bit is only valid when UNKWN_VLAN_FLOOD bit + * is set to 1. */ + __IOM uint32_t VLANS_ENABLED : 3; /*!< [10..8] Configures the logical geometry of the IA table by specifying + * the number of distinct VLAN IDs enabled. When set to 0, + * no VLANs are supported and the VLAN ID for the frames is + * ignored. */ + uint32_t : 5; + __IOM uint32_t UNKWN_VLAN_FLOOD_MASK : 4; /*!< [19..16] Forwarding mask used for frames with an unknown VLAN + * ID. */ + uint32_t : 12; + } IALK_VLAN_CONFIG_b; + }; + + union + { + __IOM uint32_t IALK_TBL_ADDR; /*!< (@ 0x0000035C) IA Lookup Database Address Register */ + + struct + { + __IOM uint32_t ADDR : 13; /*!< [12..0] Defines the address to write to or read from the IA + * Lookup table */ + uint32_t : 15; + __IOM uint32_t AINC : 4; /*!< [31..28] Auto-Increment Control */ + } IALK_TBL_ADDR_b; + }; + + union + { + __IOM uint32_t IALK_TBL_DATA; /*!< (@ 0x00000360) IA Lookup Database Data Register */ + + struct + { + __IOM uint32_t VALID : 1; /*!< [0..0] Indicates whether the entry indicated by ADDR is valid + * or not. */ + __IOM uint32_t FWD_MASK : 4; /*!< [4..1] Forwarding mask used for lookups that hit the entry and + * when VALID is set to 1. */ + uint32_t : 27; + } IALK_TBL_DATA_b; + }; + __IM uint32_t RESERVED10[7]; + + union + { + __IOM uint32_t IALK_VLANID[4]; /*!< (@ 0x00000380) IA Lookup VLANIDn Register */ + + struct + { + __IOM uint32_t VLANID : 12; /*!< [11..0] Configure the VLAN ID to be used for VLAN n (n: IALK_VLAN_CONFIG.VLANS + * ENABLED). This bit is only valid when VLANID_ENA bit is + * set to 1. A value of 0 matches any VLAN ID. */ + __IOM uint32_t VLANID_ENA : 1; /*!< [12..12] Enables this VLAN ID. When set to 1, the VLAN ID of + * the frame is compared against VLANID[11:0]. */ + __IOM uint32_t VLANID_LRN_ENA : 1; /*!< [13..13] Configures whether automatic learning in the L2 FDB + * is allowed for frames matching VLAN ID. This also includes + * frames that match the VLAN ID and that the entry in the + * IA table is invalid. */ + uint32_t : 2; + __IOM uint32_t VLANID_FLOOD_MASK : 4; /*!< [19..16] Flooding mask to be used for frames matching this VLAN + * ID but with an invalid entry in the IA table. */ + uint32_t : 8; + __IOM uint32_t VLANID_PRIO : 3; /*!< [30..28] Priority to use for found responses. */ + __IOM uint32_t VLANID_PRIO_VLD : 1; /*!< [31..31] Indicates if the priority in VLANID_PRIO[2:0] is valid. */ + } IALK_VLANID_b[4]; + }; + __IM uint32_t RESERVED11[12]; + + union + { + __IM uint32_t IMC_QLEVEL_P[4]; /*!< (@ 0x000003C0) Port [0..3] Queued Frame Count Register */ + + struct + { + __IM uint32_t QUEUE0 : 4; /*!< [3..0] A 4-bit value per queue indicating the number of frames + * stored in queue 0 */ + __IM uint32_t QUEUE1 : 4; /*!< [7..4] A 4-bit value per queue indicating the number of frames + * stored in queue 1 */ + __IM uint32_t QUEUE2 : 4; /*!< [11..8] A 4-bit value per queue indicating the number of frames + * stored in queue 2 */ + __IM uint32_t QUEUE3 : 4; /*!< [15..12] A 4-bit value per queue indicating the number of frames + * stored in queue 3 */ + __IM uint32_t QUEUE4 : 4; /*!< [19..16] A 4-bit value per queue indicating the number of frames + * stored in queue 4 */ + __IM uint32_t QUEUE5 : 4; /*!< [23..20] A 4-bit value per queue indicating the number of frames + * stored in queue 5 */ + __IM uint32_t QUEUE6 : 4; /*!< [27..24] A 4-bit value per queue indicating the number of frames + * stored in queue 6 */ + __IM uint32_t QUEUE7 : 4; /*!< [31..28] A 4-bit value per queue indicating the number of frames + * stored in queue 7 */ + } IMC_QLEVEL_P_b[4]; + }; + __IM uint32_t RESERVED12[12]; + + union + { + __IOM uint32_t LK_CTRL; /*!< (@ 0x00000400) Learning/Lookup Function Global Configuration + * Register */ + + struct + { + __IOM uint32_t LKUP_EN : 1; /*!< [0..0] Lookup Controller Enable */ + __IOM uint32_t LEARN_EN : 1; /*!< [1..1] Learning Enable */ + __IOM uint32_t AGING_EN : 1; /*!< [2..2] Aging Enable */ + __IOM uint32_t ALW_MGRT : 1; /*!< [3..3] Allow Migration */ + __IOM uint32_t DISC_UNK_DEST : 1; /*!< [4..4] Discard Unknown Destination */ + uint32_t : 1; + __IOM uint32_t CLRTBL : 1; /*!< [6..6] Clear Table */ + __IOM uint32_t IND_VLAN : 1; /*!< [7..7] Enable Independent VLAN Learning */ + uint32_t : 8; + __IOM uint32_t DISC_UNK_SRC : 4; /*!< [19..16] Discard Unknown Source */ + uint32_t : 12; + } LK_CTRL_b; + }; + + union + { + __IOM uint32_t LK_STATUS; /*!< (@ 0x00000404) Status Bits and Table Overflow Counter Register */ + + struct + { + __IM uint32_t AGEADDR : 16; /*!< [15..0] Address the aging process will inspect when the aging + * timer expires next time. */ + __IOM uint32_t OVRF : 14; /*!< [29..16] Counts number of table overflows that occurred (a new + * address was learned but the table had no storage and an + * older entry was deleted). The counter is cleared by writing + * into the register and having bit 16 set to 1. */ + uint32_t : 1; + __IOM uint32_t LRNEVNT : 1; /*!< [31..31] Learn Event */ + } LK_STATUS_b; + }; + + union + { + __IOM uint32_t LK_ADDR_CTRL; /*!< (@ 0x00000408) Address Table Transaction Control and Read/Write + * Address */ + + struct + { + __IOM uint32_t ADDR_MSK : 12; /*!< [11..0] Memory address for read and write transactions. This + * is the address of a 69-bit entry. For the DEL_PORT bit, + * a port mask can be provided in these bits instead of the + * address. Bit 0 represents port 0, bit 1 port 1, and so + * on. */ + uint32_t : 10; + __IOM uint32_t CLR_DYNAMIC : 1; /*!< [22..22] When set to 1, scans the complete table for valid dynamic + * entries and deletes them (writes entry with all 0s). This + * bit is cleared when the function has completed. */ + __IOM uint32_t CLR_STATIC : 1; /*!< [23..23] When set to 1, scans the complete table for valid static + * entries and deletes them (writes entry with all 0s). This + * bit is cleared when the function has completed. */ + __IOM uint32_t GETLASTNEW : 1; /*!< [24..24] When set to 1, retrieves the last source address that + * was not found in the table and places it into LK_DATA_LO/HI/HI2. + * The valid bit of the entry (bit LK_DATA_HI[16]) indicates + * if the address is new (when valid bit is 1) or not (when + * valid bit is 0) since the command was last issued. */ + __IOM uint32_t WRITE : 1; /*!< [25..25] When set to 1, perform a single write transaction. */ + __IOM uint32_t READ : 1; /*!< [26..26] When set to 1, perform a single read transaction. */ + __IOM uint32_t WAIT_COMP : 1; /*!< [27..27] When set to 1, instructs to stall the processor bus + * until the transaction is completed. This allows performing + * of consecutive writes into this register with varying commands + * without the need for polling the BUSY bit. */ + __IM uint32_t LOOKUP : 1; /*!< [28..28] When set to 1, perform a lookup of the MAC address + * given in LK_DATA_LO/HI/HI2. */ + __IOM uint32_t CLEAR : 1; /*!< [29..29] When set to 1, writes all 0s to the entry selected + * by the given address set in ADDR_MSK[11:0]. If this bit + * is set together with the LOOKUP bit, first a lookup is + * performed and if the lookup succeeds, the entry is then + * deleted. The registers LK_DATA_LO/HI/HI2 are also cleared. + * The memory address in this register is set from the lookup + * result. If the lookup failed, the clear command is ignored + * and memory address is arbitrary. */ + __IOM uint32_t DEL_PORT : 1; /*!< [30..30] When set to 1, scans the complete table for valid dynamic + * entries that contain the given ports in their destination + * port mask and deletes the ports or the complete entry. + * The port mask is provided in the ADDR_MSK[3:0] when writing + * this register (1 bit per port, bit 0 = port 0, bit 1 = + * port 1, and so on). */ + __IM uint32_t BUSY : 1; /*!< [31..31] Transaction Busy Indication */ + } LK_ADDR_CTRL_b; + }; + + union + { + __IOM uint32_t LK_DATA_LO; /*!< (@ 0x0000040C) Lower 32-Bit Data of Lookup Memory Entry */ + + struct + { + __IOM uint32_t MEMDATA : 32; /*!< [31..0] Memory Data [31:0] */ + } LK_DATA_LO_b; + }; + + union + { + __IOM uint32_t LK_DATA_HI; /*!< (@ 0x00000410) Higher 25-Bit Data of Lookup Memory Entry */ + + struct + { + __IOM uint32_t MEMDATA : 25; /*!< [24..0] Memory Data [56:32] */ + uint32_t : 7; + } LK_DATA_HI_b; + }; + + union + { + __IOM uint32_t LK_DATA_HI2; /*!< (@ 0x00000414) Higher2 12-Bit Data of Lookup Memory Entry */ + + struct + { + uint32_t : 8; + __IOM uint32_t MEMDATA : 12; /*!< [19..8] Memory Data [68:57] */ + uint32_t : 12; + } LK_DATA_HI2_b; + }; + + union + { + __IOM uint32_t LK_LEARNCOUNT; /*!< (@ 0x00000418) Learned Address Count Register */ + + struct + { + __IOM uint32_t LEARNCOUNT : 13; /*!< [12..0] Number of Learned Addresses */ + uint32_t : 17; + __IOM uint32_t WRITE_MD : 2; /*!< [31..30] These bits define how the LEARNCOUNT value is modified + * when writing into the register: */ + } LK_LEARNCOUNT_b; + }; + + union + { + __IOM uint32_t LK_AGETIME; /*!< (@ 0x0000041C) Period of the Aging Timer */ + + struct + { + __IOM uint32_t AGETIME : 24; /*!< [23..0] 24-bit Timer Value */ + uint32_t : 8; + } LK_AGETIME_b; + }; + __IM uint32_t RESERVED13[24]; + + union + { + __IOM uint32_t MGMT_TAG_CONFIG; /*!< (@ 0x00000480) Management Tag Configuration Register */ + + struct + { + __IOM uint32_t ENABLE : 1; /*!< [0..0] Enable Management Tag Insertion Module */ + __IOM uint32_t AL_FRAMES : 1; /*!< [1..1] Enable Tag Insertion for All Frames */ + uint32_t : 2; + __IOM uint32_t TYPE1_EN : 1; /*!< [4..4] When set, frames with a Type field that match the value + * in PRIORITY_TYPE1.TYPEVAL[15:0] have management tag inserted. + * This is in addition to BPDU frames which always have tag + * inserted. */ + __IOM uint32_t TYPE2_EN : 1; /*!< [5..5] When set, frames with a Type field that match the value + * in PRIORITY_TYPE2.TYPEVAL[15:0] have management tag inserted. + * This is in addition to BPDU frames which always have tag + * inserted. */ + uint32_t : 10; + __IOM uint32_t TAGFIELD : 16; /*!< [31..16] The value of the tag that is found in the first Type/Length + * field of the frame to identify that the control information + * is present within a frame. For example, [31:24] = first + * octet, [23:16] = 2nd octet. */ + } MGMT_TAG_CONFIG_b; + }; + __IM uint32_t RESERVED14[32]; + + union + { + __IOM uint32_t TSM_CONFIG; /*!< (@ 0x00000504) Timestamping Control Module Configuration Register */ + + struct + { + __IOM uint32_t IRQ_EN : 1; /*!< [0..0] Final Interrupt enable */ + __IOM uint32_t IRQ_TEST : 1; /*!< [1..1] Software controlled interrupt for testing purposes */ + __IOM uint32_t IRQ_TSFIFO_OVR : 1; /*!< [2..2] Trigger interrupt enable for Transmit Timestamp Capture + * Overflow event */ + uint32_t : 1; + __IOM uint32_t IRQ_EVT_OFFSET : 2; /*!< [5..4] Per-timer Trigger interrupt enable for the timer offset + * event */ + uint32_t : 2; + __IOM uint32_t IRQ_EVT_PERIOD : 2; /*!< [9..8] Per-timer Trigger interrupt enable for the timer periodical + * event */ + uint32_t : 2; + __IOM uint32_t IRQ_ATIME_OVER : 2; /*!< [13..12] Per-timer Trigger interrupt enable for the timer wrap + * (reached its maximum) */ + uint32_t : 2; + __IOM uint32_t IRQ_TX_EN : 4; /*!< [19..16] Per Port Transmit Timestamp Capture Interrupt Enable */ + uint32_t : 12; + } TSM_CONFIG_b; + }; + + union + { + __IOM uint32_t TSM_IRQ_STAT_ACK; /*!< (@ 0x00000508) Interrupt Status/Acknowledge Register */ + + struct + { + __IM uint32_t IRQ_STAT : 1; /*!< [0..0] Interrupt Pending Status */ + __IOM uint32_t IRQ_TEST : 1; /*!< [1..1] Test Interrupt Pending Status */ + __IM uint32_t IRQ_TSFIFO_OVR : 1; /*!< [2..2] Transmit Timestamp Capture Overflow Interrupt Pending + * Status */ + uint32_t : 1; + __IOM uint32_t IRQ_EVT_OFFSET : 2; /*!< [5..4] Per-timer Offset Interrupt Pending Status */ + uint32_t : 2; + __IOM uint32_t IRQ_EVT_PERIOD : 2; /*!< [9..8] Per-timer Periodical Interrupt Pending Status */ + uint32_t : 2; + __IOM uint32_t IRQ_ATIME_OVER : 2; /*!< [13..12] Per-timer Overflow Interrupt Pending Status */ + uint32_t : 2; + __IOM uint32_t IRQ_TX : 4; /*!< [19..16] Per Port Transmit Timestamp Capture Interrupt */ + uint32_t : 12; + } TSM_IRQ_STAT_ACK_b; + }; + + union + { + __IOM uint32_t PTP_DOMAIN; /*!< (@ 0x0000050C) Domain Number of PTP Frame */ + + struct + { + __IOM uint32_t DOMAIN0 : 8; /*!< [7..0] DomainNumber to Match Against for Timer 0 */ + __IOM uint32_t DOMAIN1 : 8; /*!< [15..8] DomainNumber to Match Against for Timer 1 */ + uint32_t : 16; + } PTP_DOMAIN_b; + }; + __IM uint32_t RESERVED15[12]; + + union + { + __IOM uint32_t PEERDELAY_P0_T0; /*!< (@ 0x00000540) Port 0 Peer Delay Value for Timer 0 (n = 0 to + * 3) */ + + struct + { + __IOM uint32_t PEERDELAY : 30; /*!< [29..0] Peer Delay Value Determined at the Port n for Timer + * 0 */ + uint32_t : 2; + } PEERDELAY_P0_T0_b; + }; + + union + { + __IOM uint32_t PEERDELAY_P0_T1; /*!< (@ 0x00000544) Port 0 Peer Delay Value for Timer 1 (n = 0 to + * 3) */ + + struct + { + __IOM uint32_t PEERDELAY : 30; /*!< [29..0] Peer Delay Value Determined at the Port n for Timer + * 1 */ + uint32_t : 2; + } PEERDELAY_P0_T1_b; + }; + __IM uint32_t RESERVED16[2]; + + union + { + __IOM uint32_t PEERDELAY_P1_T0; /*!< (@ 0x00000550) Port 1 Peer Delay Value for Timer 0 (n = 0 to + * 3) */ + + struct + { + __IOM uint32_t PEERDELAY : 30; /*!< [29..0] Peer Delay Value Determined at the Port n for Timer + * 0 */ + uint32_t : 2; + } PEERDELAY_P1_T0_b; + }; + + union + { + __IOM uint32_t PEERDELAY_P1_T1; /*!< (@ 0x00000554) Port 1 Peer Delay Value for Timer 1 (n = 0 to + * 3) */ + + struct + { + __IOM uint32_t PEERDELAY : 30; /*!< [29..0] Peer Delay Value Determined at the Port n for Timer + * 1 */ + uint32_t : 2; + } PEERDELAY_P1_T1_b; + }; + __IM uint32_t RESERVED17[2]; + + union + { + __IOM uint32_t PEERDELAY_P2_T0; /*!< (@ 0x00000560) Port 2 Peer Delay Value for Timer 0 (n = 0 to + * 3) */ + + struct + { + __IOM uint32_t PEERDELAY : 30; /*!< [29..0] Peer Delay Value Determined at the Port n for Timer + * 0 */ + uint32_t : 2; + } PEERDELAY_P2_T0_b; + }; + + union + { + __IOM uint32_t PEERDELAY_P2_T1; /*!< (@ 0x00000564) Port 2 Peer Delay Value for Timer 1 (n = 0 to + * 3) */ + + struct + { + __IOM uint32_t PEERDELAY : 30; /*!< [29..0] Peer Delay Value Determined at the Port n for Timer + * 1 */ + uint32_t : 2; + } PEERDELAY_P2_T1_b; + }; + __IM uint32_t RESERVED18[2]; + + union + { + __IOM uint32_t PEERDELAY_P3_T0; /*!< (@ 0x00000570) Port 3 Peer Delay Value for Timer 0 (n = 0 to + * 3) */ + + struct + { + __IOM uint32_t PEERDELAY : 30; /*!< [29..0] Peer Delay Value Determined at the Port n for Timer + * 0 */ + uint32_t : 2; + } PEERDELAY_P3_T0_b; + }; + + union + { + __IOM uint32_t PEERDELAY_P3_T1; /*!< (@ 0x00000574) Port 3 Peer Delay Value for Timer 1 (n = 0 to + * 3) */ + + struct + { + __IOM uint32_t PEERDELAY : 30; /*!< [29..0] Peer Delay Value Determined at the Port n for Timer + * 1 */ + uint32_t : 2; + } PEERDELAY_P3_T1_b; + }; + __IM uint32_t RESERVED19[18]; + + union + { + __IOM uint32_t TS_FIFO_STATUS; /*!< (@ 0x000005C0) Transmit Timestamp FIFO Status Register */ + + struct + { + __IM uint32_t FF_VALID : 4; /*!< [3..0] Per-port indication that a valid timestamp is available + * in the corresponding FIFO of the port */ + uint32_t : 12; + __IOM uint32_t FF_OVR : 4; /*!< [19..16] Per-port indication that a timestamp cannot be written + * to the FIFO because of the FIFO being full. */ + uint32_t : 12; + } TS_FIFO_STATUS_b; + }; + + union + { + __IOM uint32_t TS_FIFO_READ_CTRL; /*!< (@ 0x000005C4) Transmit Timestamp FIFO Read Control Register */ + + struct + { + __IOM uint32_t PORT_NUM : 2; /*!< [1..0] Port Number to Read from */ + uint32_t : 2; + __IM uint32_t TS_VALID : 1; /*!< [4..4] When reading from this register, this bit is 1 if the + * FIFO indicated by PORT_NUM contained valid data. */ + uint32_t : 1; + __IM uint32_t TS_SEL : 1; /*!< [6..6] When TS_VALID is 1, TS_SEL indicates the timer used for + * the read timestamp. */ + uint32_t : 1; + __IM uint32_t TS_ID : 7; /*!< [14..8] When TS_VALID is 1, TS_ID indicates the ID specified + * by the application through the management tag control information, + * if present. */ + uint32_t : 17; + } TS_FIFO_READ_CTRL_b; + }; + + union + { + __IM uint32_t TS_FIFO_READ_TIMESTAMP; /*!< (@ 0x000005C8) 32-bit Timestamp Value Read from FIFO */ + + struct + { + __IM uint32_t TIMESTAMP : 32; /*!< [31..0] 32-bit timestamp value read from the FIFO */ + } TS_FIFO_READ_TIMESTAMP_b; + }; + __IM uint32_t RESERVED20[13]; + + union + { + __IOM uint32_t INT_CONFIG; /*!< (@ 0x00000600) Interrupt Enable Configuration Register */ + + struct + { + __IOM uint32_t IRQ_EN : 1; /*!< [0..0] Interrupt Global Enable */ + __IOM uint32_t MDIO1 : 1; /*!< [1..1] Enable Interrupt on Transaction Complete from MDIO Controller */ + uint32_t : 1; + __IOM uint32_t LK_NEW_SRC : 1; /*!< [3..3] Enable Interrupt for New Source Address */ + __IOM uint32_t IRQ_TEST : 1; /*!< [4..4] When set, an interrupt is triggered immediately. Can + * be used to cause a software controlled interrupt for testing + * purposes. */ + __IOM uint32_t DLR_INT : 1; /*!< [5..5] Enable Interrupt for DLR */ + __IOM uint32_t PRP_INT : 1; /*!< [6..6] Enable Interrupt for PRP */ + __IOM uint32_t HUB_INT : 1; /*!< [7..7] Enable Interrupt for HUB */ + __IOM uint32_t IRQ_LINK : 3; /*!< [10..8] Per Line Port Phy Link Change Interrupt Enable */ + uint32_t : 5; + __IOM uint32_t IRQ_MAC_EEE : 3; /*!< [18..16] Per Line Port MAC interrupt */ + uint32_t : 8; + __IOM uint32_t EFP_INT : 1; /*!< [27..27] Enable Interrupt for Extended Frame Parser */ + __IOM uint32_t SRCFLT_WD_INT : 1; /*!< [28..28] MAC Address Source Filtering Watchdog */ + __IOM uint32_t TSM_INT : 1; /*!< [29..29] Enable Interrupt for TSM (Timer, Timestamping) */ + __IOM uint32_t TDMA_INT : 1; /*!< [30..30] Enable Interrupt for TDMA scheduler */ + __IOM uint32_t PATTERN_INT : 1; /*!< [31..31] Enable Interrupt for RX Pattern Matcher */ + } INT_CONFIG_b; + }; + + union + { + __IOM uint32_t INT_STAT_ACK; /*!< (@ 0x00000604) Interrupt Status/ACK Register */ + + struct + { + __IM uint32_t IRQ_PEND : 1; /*!< [0..0] Interrupt Pending Status */ + __IOM uint32_t MDIO1 : 1; /*!< [1..1] Latched Interrupt Status for MDIO1 */ + uint32_t : 1; + __IOM uint32_t LK_NEW_SRC : 1; /*!< [3..3] Latched Interrupt Status for LK_NEW_SRC */ + __IM uint32_t IRQ_TEST : 1; /*!< [4..4] Interrupt Status for IRQ_TEST */ + __IM uint32_t DLR_INT : 1; /*!< [5..5] Interrupt Pending Status from DLR Module */ + __IM uint32_t PRP_INT : 1; /*!< [6..6] Interrupt Pending Status from PRP Module */ + __IM uint32_t HUB_INT : 1; /*!< [7..7] Interrupt Pending Status from Hub Module */ + __IOM uint32_t IRQ_LINK : 3; /*!< [10..8] Interrupt Pending per Line Port Phy Link Change Interrupt */ + uint32_t : 5; + __IOM uint32_t IRQ_MAC_EEE : 3; /*!< [18..16] Interrupt Pending Status per Line Port MAC Interrupt */ + uint32_t : 8; + __IOM uint32_t EFP_INT : 1; /*!< [27..27] Interrupt from Extended Frame Parser */ + __IOM uint32_t SRCFLT_WD_INT : 1; /*!< [28..28] Interrupt Pending Status for MAC Source Filtering Watchdog */ + __IM uint32_t TSM_INT : 1; /*!< [29..29] Interrupt Pending Interrupt Indication from TSM (Timestamping) + * module */ + __IM uint32_t TDMA_INT : 1; /*!< [30..30] Interrupt Pending Status from TDMA Scheduler */ + __IM uint32_t PATTERN_INT : 1; /*!< [31..31] Interrupt Pending Status from RX Pattern Matcher Module */ + } INT_STAT_ACK_b; + }; + __IM uint32_t RESERVED21[30]; + + union + { + __IOM uint32_t ATIME_CTRL0; /*!< (@ 0x00000680) Timer 0 Control Register (n = 0, 1) */ + + struct + { + __IOM uint32_t ENABLE : 1; /*!< [0..0] ENABLE */ + __IOM uint32_t ONE_SHOT : 1; /*!< [1..1] Avoid timer wrap around. If set, the timer stops at maximum. + * An overflow interrupt (TSM_CONFIG.IRQ_ATIME_OVER) occurs + * (if enabled) when the maximum is reached. */ + __IOM uint32_t EVT_OFFSET_ENA : 1; /*!< [2..2] Enable Offset Event */ + uint32_t : 1; + __IOM uint32_t EVT_PERIOD_ENA : 1; /*!< [4..4] Enable Periodical Event */ + __IOM uint32_t EVT_PERIOD_RST : 1; /*!< [5..5] Reset Timer on Periodical Event */ + uint32_t : 3; + __IOM uint32_t RESTART : 1; /*!< [9..9] Resets the Timer to Zero (Command Bit) */ + uint32_t : 1; + __IOM uint32_t CAPTURE : 1; /*!< [11..11] Capture Time Value (Command Bit) */ + __IOM uint32_t CAPTURE_ALL : 1; /*!< [12..12] Capture All Timers Value (Command Bit) */ + uint32_t : 19; + } ATIME_CTRL0_b; + }; + + union + { + __IOM uint32_t ATIME0; /*!< (@ 0x00000684) Timer 0 Count Register (n = 0, 1) */ + + struct + { + __IOM uint32_t TIMER_VAL : 32; /*!< [31..0] Timer Value */ + } ATIME0_b; + }; + + union + { + __IOM uint32_t ATIME_OFFSET0; /*!< (@ 0x00000688) Timer 0 Offset Register (n = 0, 1) */ + + struct + { + __IOM uint32_t OFFSET : 32; /*!< [31..0] Value used for performing offset corrections without + * changing the drift correction */ + } ATIME_OFFSET0_b; + }; + + union + { + __IOM uint32_t ATIME_EVT_PERIOD0; /*!< (@ 0x0000068C) Timer 0 Periodic Event Register (n = 0, 1) */ + + struct + { + __IOM uint32_t PERIOD : 32; /*!< [31..0] Value for generating periodic events */ + } ATIME_EVT_PERIOD0_b; + }; + + union + { + __IOM uint32_t ATIME_CORR0; /*!< (@ 0x00000690) Timer 0 Correction Period Register (n = 0, 1) */ + + struct + { + __IOM uint32_t CORR_PERIOD : 31; /*!< [30..0] Correction Period */ + uint32_t : 1; + } ATIME_CORR0_b; + }; + + union + { + __IOM uint32_t ATIME_INC0; /*!< (@ 0x00000694) Timer 0 Increment Register (n = 0, 1) */ + + struct + { + __IOM uint32_t CLK_PERIOD : 7; /*!< [6..0] Clock Period of the Timestamping Clock (125 MHz) in nanoseconds */ + uint32_t : 1; + __IOM uint32_t CORR_INC : 7; /*!< [14..8] Correction Increment Value */ + uint32_t : 1; + __IOM uint32_t OFFS_CORR_INC : 7; /*!< [22..16] Offset Correction Increment Value */ + uint32_t : 9; + } ATIME_INC0_b; + }; + + union + { + __IOM uint32_t ATIME_SEC0; /*!< (@ 0x00000698) Timer 0 Seconds Time Register (n = 0, 1) */ + + struct + { + __IOM uint32_t SEC_TIME : 32; /*!< [31..0] Seconds Time Value */ + } ATIME_SEC0_b; + }; + + union + { + __IOM uint32_t ATIME_OFFS_CORR0; /*!< (@ 0x0000069C) Timer 0 Offset Correction Counter Register (n + * = 0, 1) */ + + struct + { + __IOM uint32_t OFFS_CORR_CNT : 32; /*!< [31..0] Offset Correction Counter */ + } ATIME_OFFS_CORR0_b; + }; + + union + { + __IOM uint32_t ATIME_CTRL1; /*!< (@ 0x000006A0) Timer 1 Control Register (n = 0, 1) */ + + struct + { + __IOM uint32_t ENABLE : 1; /*!< [0..0] ENABLE */ + __IOM uint32_t ONE_SHOT : 1; /*!< [1..1] Avoid timer wrap around. If set, the timer stops at maximum. + * An overflow interrupt (TSM_CONFIG.IRQ_ATIME_OVER) occurs + * (if enabled) when the maximum is reached. */ + __IOM uint32_t EVT_OFFSET_ENA : 1; /*!< [2..2] Enable Offset Event */ + uint32_t : 1; + __IOM uint32_t EVT_PERIOD_ENA : 1; /*!< [4..4] Enable Periodical Event */ + __IOM uint32_t EVT_PERIOD_RST : 1; /*!< [5..5] Reset Timer on Periodical Event */ + uint32_t : 3; + __IOM uint32_t RESTART : 1; /*!< [9..9] Resets the Timer to Zero (Command Bit) */ + uint32_t : 1; + __IOM uint32_t CAPTURE : 1; /*!< [11..11] Capture Time Value (Command Bit) */ + __IOM uint32_t CAPTURE_ALL : 1; /*!< [12..12] Capture All Timers Value (Command Bit) */ + uint32_t : 19; + } ATIME_CTRL1_b; + }; + + union + { + __IOM uint32_t ATIME1; /*!< (@ 0x000006A4) Timer 1 Count Register (n = 0, 1) */ + + struct + { + __IOM uint32_t TIMER_VAL : 32; /*!< [31..0] Timer Value */ + } ATIME1_b; + }; + + union + { + __IOM uint32_t ATIME_OFFSET1; /*!< (@ 0x000006A8) Timer 1 Offset Register (n = 0, 1) */ + + struct + { + __IOM uint32_t OFFSET : 32; /*!< [31..0] Value used for performing offset corrections without + * changing the drift correction */ + } ATIME_OFFSET1_b; + }; + + union + { + __IOM uint32_t ATIME_EVT_PERIOD1; /*!< (@ 0x000006AC) Timer 1 Periodic Event Register (n = 0, 1) */ + + struct + { + __IOM uint32_t PERIOD : 32; /*!< [31..0] Value for generating periodic events */ + } ATIME_EVT_PERIOD1_b; + }; + + union + { + __IOM uint32_t ATIME_CORR1; /*!< (@ 0x000006B0) Timer 1 Correction Period Register (n = 0, 1) */ + + struct + { + __IOM uint32_t CORR_PERIOD : 31; /*!< [30..0] Correction Period */ + uint32_t : 1; + } ATIME_CORR1_b; + }; + + union + { + __IOM uint32_t ATIME_INC1; /*!< (@ 0x000006B4) Timer 1 Increment Register (n = 0, 1) */ + + struct + { + __IOM uint32_t CLK_PERIOD : 7; /*!< [6..0] Clock Period of the Timestamping Clock (125 MHz) in nanoseconds */ + uint32_t : 1; + __IOM uint32_t CORR_INC : 7; /*!< [14..8] Correction Increment Value */ + uint32_t : 1; + __IOM uint32_t OFFS_CORR_INC : 7; /*!< [22..16] Offset Correction Increment Value */ + uint32_t : 9; + } ATIME_INC1_b; + }; + + union + { + __IOM uint32_t ATIME_SEC1; /*!< (@ 0x000006B8) Timer 1 Seconds Time Register (n = 0, 1) */ + + struct + { + __IOM uint32_t SEC_TIME : 32; /*!< [31..0] Seconds Time Value */ + } ATIME_SEC1_b; + }; + + union + { + __IOM uint32_t ATIME_OFFS_CORR1; /*!< (@ 0x000006BC) Timer 1 Offset Correction Counter Register (n + * = 0, 1) */ + + struct + { + __IOM uint32_t OFFS_CORR_CNT : 32; /*!< [31..0] Offset Correction Counter */ + } ATIME_OFFS_CORR1_b; + }; + __IM uint32_t RESERVED22[16]; + + union + { + __IOM uint32_t MDIO_CFG_STATUS; /*!< (@ 0x00000700) MDIO Configuration and Status Register */ + + struct + { + __IM uint32_t BUSY : 1; /*!< [0..0] MDIO Busy */ + __IM uint32_t READERR : 1; /*!< [1..1] MDIO Read Error */ + __IOM uint32_t HOLD : 3; /*!< [4..2] MDIO Hold Time Setting */ + __IOM uint32_t DISPREAM : 1; /*!< [5..5] Disable Preamble */ + uint32_t : 1; + __IOM uint32_t CLKDIV : 9; /*!< [15..7] MDIO Clock Divisor */ + uint32_t : 16; + } MDIO_CFG_STATUS_b; + }; + + union + { + __IOM uint32_t MDIO_COMMAND; /*!< (@ 0x00000704) MDIO PHY Command Register */ + + struct + { + __IOM uint32_t REGADDR : 5; /*!< [4..0] Register Address */ + __IOM uint32_t PHYADDR : 5; /*!< [9..5] PHY Address */ + uint32_t : 5; + __IOM uint32_t TRANINIT : 1; /*!< [15..15] If set to 1, a read transaction is initiated. */ + uint32_t : 16; + } MDIO_COMMAND_b; + }; + + union + { + __IOM uint32_t MDIO_DATA; /*!< (@ 0x00000708) MDIO Data Register */ + + struct + { + __IOM uint32_t MDIO_DATA : 16; /*!< [15..0] MDIO_DATA */ + uint32_t : 16; + } MDIO_DATA_b; + }; + __IM uint32_t RESERVED23[61]; + + union + { + __IM uint32_t REV_P0; /*!< (@ 0x00000800) Port 0 MAC Core Revision (n = 0 to 3) */ + + struct + { + __IM uint32_t REV : 32; /*!< [31..0] MAC Core Revision */ + } REV_P0_b; + }; + __IM uint32_t RESERVED24; + + union + { + __IOM uint32_t COMMAND_CONFIG_P0; /*!< (@ 0x00000808) Port 0 Command Configuration Register (n = 0 + * to 3) */ + + struct + { + __IOM uint32_t TX_ENA : 1; /*!< [0..0] Enable/Disable MAC Transmit Path */ + __IOM uint32_t RX_ENA : 1; /*!< [1..1] Enable/Disable MAC Receive Path */ + __IOM uint32_t TDMA_PREBUF_DIS : 1; /*!< [2..2] When set to 1, the MAC does not request a new frame from + * the IMC until the current frame is completed. This can + * cause the IPG between frames to be more than the value + * in TX_IPG_LENGTH. */ + __IOM uint32_t ETH_SPEED : 1; /*!< [3..3] Operation Mode Definition */ + __IM uint32_t PROMIS_EN : 1; /*!< [4..4] Enable/Disable MAC Promiscuous Operation */ + __IM uint32_t PAD_EN : 1; /*!< [5..5] Enable/Disable Frame Padding Remove on Receive */ + uint32_t : 1; + __IM uint32_t PAUSE_FWD : 1; /*!< [7..7] Terminate/Forward Pause Frames */ + __IOM uint32_t PAUSE_IGNORE : 1; /*!< [8..8] Ignore Pause Frame Quanta */ + __IM uint32_t TX_ADDR_INS : 1; /*!< [9..9] Non writable bit, fixed to 0 always. */ + __IOM uint32_t HD_ENA : 1; /*!< [10..10] Enable auto full/half-duplex operation (set to 1) or + * full-duplex only (set to 0). */ + __IOM uint32_t TX_CRC_APPEND : 1; /*!< [11..11] Enable CRC Append on Transmit */ + uint32_t : 1; + __IOM uint32_t SW_RESET : 1; /*!< [13..13] Self Clearing Reset Command Bit */ + uint32_t : 9; + __IOM uint32_t CNTL_FRM_ENA : 1; /*!< [23..23] MAC Control Frame Enable */ + __IOM uint32_t NO_LGTH_CHK : 1; /*!< [24..24] Payload Length Check Disable */ + __IOM uint32_t ENA_10 : 1; /*!< [25..25] This bit has no effect except PHYSPEED bit of STATUS_Pn + * register. */ + __IOM uint32_t EFPI_SELECT : 1; /*!< [26..26] EFPI_SELECT */ + __IOM uint32_t TX_TRUNCATE : 1; /*!< [27..27] TX_TRUNCATE */ + uint32_t : 2; + __IOM uint32_t TIMER_SEL : 1; /*!< [30..30] Selects the default timer to use for timestamping operations + * on transmit and on receive. The value is used when not + * overridden by the PTP auto-response function, pattern matchers + * or force forwarding information in a management tag. */ + uint32_t : 1; + } COMMAND_CONFIG_P0_b; + }; + + union + { + __IOM uint32_t MAC_ADDR_0_P0; /*!< (@ 0x0000080C) Port 0 MAC Address Register 0 (n = 0 to 2) */ + + struct + { + __IOM uint32_t MAC_ADDR : 32; /*!< [31..0] The first 4 bytes of the MAC address of the port. First + * byte is bits [7:0]. The MAC address is used on locally + * generated frames such as pause frames, peer-delay response. */ + } MAC_ADDR_0_P0_b; + }; + + union + { + __IOM uint32_t MAC_ADDR_1_P0; /*!< (@ 0x00000810) Port 0 MAC Address Register 1 (n = 0 to 2) */ + + struct + { + __IOM uint32_t MAC_ADDR : 16; /*!< [15..0] The last 2 bytes of the MAC address of the port. Bits + * [7:0] is the 5th byte and bits [15:8] is the 6th byte. */ + uint32_t : 16; + } MAC_ADDR_1_P0_b; + }; + + union + { + __IOM uint32_t FRM_LENGTH_P0; /*!< (@ 0x00000814) Port 0 Maximum Frame Length Register (n = 0 to + * 3) */ + + struct + { + __IOM uint32_t FRM_LENGTH : 14; /*!< [13..0] Maximum Frame Length */ + uint32_t : 18; + } FRM_LENGTH_P0_b; + }; + + union + { + __IM uint32_t PAUSE_QUANT_P0; /*!< (@ 0x00000818) Port 0 MAC Pause Quanta (n = 0 to 3) */ + + struct + { + __IM uint32_t PAUSE_QUANT : 16; /*!< [15..0] Pause Quanta */ + uint32_t : 16; + } PAUSE_QUANT_P0_b; + }; + + union + { + __IOM uint32_t MAC_LINK_QTRIG_P0; /*!< (@ 0x0000081C) Port 0 Trigger Event Configuration Register (n + * = 0 to 2) */ + + struct + { + __IOM uint32_t PORT_MASK : 4; /*!< [3..0] Per-port Bit Mask */ + uint32_t : 12; + __IOM uint32_t QUEUE_MASK : 8; /*!< [23..16] 1-bit per queue indicating from which queues a frame + * is transmitted from the ports indicated by PORT_MASK. A + * single frame is transmitted per indicated port in PORT_MASK + * among the queues indicated by QUEUE_MASK. */ + uint32_t : 4; + __IOM uint32_t TRIGGERED : 1; /*!< [28..28] When MODE is set to 1, TRIGGERED indicates whether + * a frame was transmitted. When MODE is set to 0, TRIGGERED + * is always 0. This flag clears when the register is written. */ + __IOM uint32_t DLR_MODE : 1; /*!< [29..29] When set to 0, the DLR state machine is ignored. When + * set to 1, the Link Queue Trigger occurs only if the DLR + * state machine is in the NORMAL or FAULT state. */ + __IOM uint32_t MODE : 1; /*!< [30..30] When set to 0, only a single Link_Status frame is generated. + * This is to prevent sending multiple frames due to link + * flapping. */ + __IOM uint32_t ENABLE : 1; /*!< [31..31] Write to 1 to enable the Link Queue Trigger feature. + * When the link status (phy_link) transitions from 1 -> + * 0, a trigger event is generated to the memory controller + * for the ports and queues indicated in PORT_MASK and QUEUE_MASK. */ + } MAC_LINK_QTRIG_P0_b; + }; + __IM uint32_t RESERVED25[4]; + + union + { + __IOM uint32_t PTPCLOCKIDENTITY1_P0; /*!< (@ 0x00000830) Port 0 PTP Clock Identity 1 Register (n = 0 to + * 2) */ + + struct + { + __IOM uint32_t CLK_IDENTITY0 : 8; /*!< [7..0] 20, portIdentity.ClockIdentity[0] */ + __IOM uint32_t CLK_IDENTITY1 : 8; /*!< [15..8] 21, portIdentity.ClockIdentity[1] */ + __IOM uint32_t CLK_IDENTITY2 : 8; /*!< [23..16] 22, portIdentity.ClockIdentity[2] */ + __IOM uint32_t CLK_IDENTITY3 : 8; /*!< [31..24] 23, portIdentity.ClockIdentity[3] */ + } PTPCLOCKIDENTITY1_P0_b; + }; + + union + { + __IOM uint32_t PTPCLOCKIDENTITY2_P0; /*!< (@ 0x00000834) Port 0 PTP Clock Identity 2 Register (n = 0 to + * 2) */ + + struct + { + __IOM uint32_t CLK_IDENTITY4 : 8; /*!< [7..0] 24, portIdentity.ClockIdentity[4] */ + __IOM uint32_t CLK_IDENTITY5 : 8; /*!< [15..8] 25, portIdentity.ClockIdentity[5] */ + __IOM uint32_t CLK_IDENTITY6 : 8; /*!< [23..16] 26, portIdentity.ClockIdentity[6] */ + __IOM uint32_t CLK_IDENTITY7 : 8; /*!< [31..24] 27, portIdentity.ClockIdentity[7] */ + } PTPCLOCKIDENTITY2_P0_b; + }; + + union + { + __IOM uint32_t PTPAUTORESPONSE_P0; /*!< (@ 0x00000838) Port 0 PTP Auto Response Register (n = 0 to 2) */ + + struct + { + __IOM uint32_t ARSP_EN : 1; /*!< [0..0] Auto Response Enable */ + __IOM uint32_t D_TIMER : 1; /*!< [1..1] Default timer to use for auto-response generation */ + uint32_t : 14; + __IOM uint32_t PORTNUM1 : 8; /*!< [23..16] 29, portIdentity.PortNumber[1] (lsb) */ + __IOM uint32_t PORTNUM0 : 8; /*!< [31..24] 28, portIdentity.PortNumber[0] (msb) */ + } PTPAUTORESPONSE_P0_b; + }; + __IM uint32_t RESERVED26; + + union + { + __IOM uint32_t STATUS_P0; /*!< (@ 0x00000840) Port 0 Status Register */ + + struct + { + __IM uint32_t PHYSPEED : 2; /*!< [1..0] Currently Active PHY Interface Speed */ + __IM uint32_t PHYLINK : 1; /*!< [2..2] Link status from PHY interface */ + __IM uint32_t PHYDUPLEX : 1; /*!< [3..3] Duplex status from PHY interface */ + __IOM uint32_t TX_UNDFLW : 1; /*!< [4..4] Indicates that the transmit MAC underflow. This shall + * never occur during normal operation. */ + __IOM uint32_t LK_DST_ERR : 1; /*!< [5..5] Indicates that the L2 destination lookup process failed + * to complete in time before the next frame was received + * at the port. This should never occur under normal operation. + * The cause could be from IPG violations in the received + * frames. */ + __IM uint32_t BR_VERIF_ST : 3; /*!< [8..6] Indicates the current status of the verification according + * to clause 30.14.1.2 of the 802.3br specification */ + uint32_t : 23; + } STATUS_P0_b; + }; + + union + { + __IOM uint32_t TX_IPG_LENGTH_P0; /*!< (@ 0x00000844) Port 0 Transmit IPG Length Register (n = 0 to + * 3) */ + + struct + { + __IOM uint32_t TX_IPG_LENGTH : 5; /*!< [4..0] Define transmit interpacket gap in octets. Allowed values + * are in the range of 8 to 31. */ + uint32_t : 11; + __IOM uint32_t MINRTC3GAP : 5; /*!< [20..16] MINRTC3GAP */ + uint32_t : 11; + } TX_IPG_LENGTH_P0_b; + }; + + union + { + __IOM uint32_t EEE_CTL_STAT_P0; /*!< (@ 0x00000848) Port 0 MAC EEE Functions Control and Status (n + * = 0 to 2) */ + + struct + { + __IOM uint32_t EEE_AUTO : 1; /*!< [0..0] EEE Automatic Mode of Operation */ + __IOM uint32_t LPI_REQ : 1; /*!< [1..1] Request LPI Transmission when MAC Becomes Idle */ + __IOM uint32_t LPI_TXHOLD : 1; /*!< [2..2] MAC Transmission Hold */ + uint32_t : 5; + __IM uint32_t ST_LPI_REQ : 1; /*!< [8..8] Status (real time) of Internal LPI_REQ to the MAC */ + __IM uint32_t ST_LPI_TXHOLD : 1; /*!< [9..9] Status (real time) of Internal LPI_TXHOLD to the MAC */ + __IM uint32_t ST_TXBUSY : 1; /*!< [10..10] Status (real time) if the MAC is currently transmitting. */ + __IM uint32_t ST_TXAVAIL : 1; /*!< [11..11] Status (real time) if the MAC transmit FIFO has data + * available for transmission. */ + __IM uint32_t ST_LPI_IND : 1; /*!< [12..12] Status (real time) of Received LPI */ + uint32_t : 3; + __IM uint32_t STLH_LPI_REQ : 1; /*!< [16..16] Status (latched high) of Internal LPI_REQ to the MAC */ + __IM uint32_t STLH_LPI_TXHOLD : 1; /*!< [17..17] Status (latched high) of Internal LPI_TXHOLD to the + * MAC */ + __IM uint32_t STLH_TXBUSY : 1; /*!< [18..18] Status (latched high) if the MAC is/was Transmitting */ + uint32_t : 1; + __IM uint32_t STLH_LPI_IND : 1; /*!< [20..20] Status (latched high) of Received LPI (ST_LPI_IND) */ + uint32_t : 11; + } EEE_CTL_STAT_P0_b; + }; + + union + { + __IOM uint32_t EEE_IDLE_TIME_P0; /*!< (@ 0x0000084C) Port 0 EEE Idle Time Register (n = 0 to 2) */ + + struct + { + __IOM uint32_t EEE_IDLE_TIME : 32; /*!< [31..0] Time (-1) the transmitter must be idle before transmission + * of LPI begins. A 32-bit value in steps of 32 switch operating + * clock cycles. A value of 0 disables the timer. The value + * must be set to 1 less count. */ + } EEE_IDLE_TIME_P0_b; + }; + + union + { + __IOM uint32_t EEE_TWSYS_TIME_P0; /*!< (@ 0x00000850) Port 0 EEE Wake Up Time Register (n = 0 to 2) */ + + struct + { + __IOM uint32_t EEE_WKUP_TIME : 32; /*!< [31..0] Time (-1) after PHY wakeup until the MAC is allowed + * to begin transmitting the first frame again. A 32-bit value + * in steps of switch operating clock cycles. A value of 0 + * disables the timer. The value must be set to 1 less count. */ + } EEE_TWSYS_TIME_P0_b; + }; + + union + { + __IOM uint32_t IDLE_SLOPE_P0; /*!< (@ 0x00000854) Port 0 MAC Traffic Shaper Bandwidth Control */ + + struct + { + __IOM uint32_t IDLE_SLOPE : 11; /*!< [10..0] Traffic Shaper Bandwidth Control */ + uint32_t : 21; + } IDLE_SLOPE_P0_b; + }; + + union + { + __IOM uint32_t CT_DELAY_P0; /*!< (@ 0x00000858) Port 0 Cut-Through Delay Indication Register */ + + struct + { + __IOM uint32_t CT_DELAY : 9; /*!< [8..0] Delay Value in 400 ns / 40 ns / 8 ns increments (frequency + * of the MII PHY interface) */ + uint32_t : 23; + } CT_DELAY_P0_b; + }; + + union + { + __IOM uint32_t BR_CONTROL_P0; /*!< (@ 0x0000085C) Port 0 802.3br Frame Configuration Register */ + + struct + { + __IOM uint32_t PREEMPT_ENA : 1; /*!< [0..0] When set to 1, enables 802.3br Frame Preemption. */ + __IOM uint32_t VERIFY_DIS : 1; /*!< [1..1] When set to 1, disables the verify process required for + * preemption operation. */ + __IOM uint32_t RESPONSE_DIS : 1; /*!< [2..2] When set to 1 prevents the MAC from responding to "verify" + * frames. */ + uint32_t : 1; + __IOM uint32_t ADDFRAGSIZE : 2; /*!< [5..4] Minimum fragment size in increments of 64 bytes. */ + uint32_t : 2; + __IOM uint32_t TX_VERIFY_TIME : 7; /*!< [14..8] Preemption verification timeout in milliseconds. */ + uint32_t : 1; + __IOM uint32_t RX_STRICT_PRE : 1; /*!< [16..16] When set to 1, the preamble is checked so all bytes + * except the SFD are 0x55. When set to 0, only the last 2 + * bytes of the preamble are checked (SFD/SMD and FRAG_COUNT). + * It is recommended to set this bit to 1 to comply with the + * 802.3br specification. This bit must be set to 0 if only + * non-802.3br traffic is expected (for example, normal Ethernet + * traffic) and if custom preamble is used. */ + __IOM uint32_t RX_BR_SMD_DIS : 1; /*!< [17..17] When set to 1, the receiver does not decode the 802.3br + * SMDs and assumes all frames are express frames. This bit + * must be set to 0 for correct operation with 802.3br, and + * can be set to 1 when 802.3br is not enabled to avoid false + * detection of SMDs. */ + __IOM uint32_t RX_STRICT_BR_CTL : 1; /*!< [18..18] When set to 1, strict checking of VERIFY and RESPONSE + * frames is enabled. When set to 1, the frame contents and + * frame length checks are also performed on these frames. + * The mCRC is always checked regardless of the value of this + * register. This bit must be set to 0 to be compliant with + * the functionality described in IEEE 802.3br. */ + __IOM uint32_t TX_MCRC_INV : 1; /*!< [19..19] When set to 1, the 32-bit XOR mask used to calculate + * the mCRC for transmitted frames is inverted. This bit must + * always be written to 0 and only used for debugging. */ + __IOM uint32_t RX_MCRC_INV : 1; /*!< [20..20] When set to 1, the 32-bit XOR mask used to calculate + * the mCRC for received frames is inverted. This bit must + * always be written to 0 and only used for debugging. */ + uint32_t : 11; + } BR_CONTROL_P0_b; + }; + __IM uint32_t RESERVED27[2]; + + union + { + __IM uint32_t AFRAMESTRANSMITTEDOK_P0; /*!< (@ 0x00000868) Port 0 MAC Transmitted Valid Frame Count Register + * (n = 0 to 3) */ + + struct + { + __IM uint32_t TXVALIDCOUNT : 32; /*!< [31..0] PORT n, this field indicates the number of MAC Valid + * Transmitted, including pause. */ + } AFRAMESTRANSMITTEDOK_P0_b; + }; + + union + { + __IM uint32_t AFRAMESRECEIVEDOK_P0; /*!< (@ 0x0000086C) Port 0 MAC Received Valid Frame Count Register + * (n = 0 to 3) */ + + struct + { + __IM uint32_t RXVALIDCOUNT : 32; /*!< [31..0] PORT n, this field indicates the number of MAC Valid + * Received, including pause. */ + } AFRAMESRECEIVEDOK_P0_b; + }; + + union + { + __IM uint32_t AFRAMECHECKSEQUENCEERRORS_P0; /*!< (@ 0x00000870) Port 0 MAC FCS Error Frame Count Register (n + * = 0 to 3) */ + + struct + { + __IM uint32_t FCSERRCOUNT : 32; /*!< [31..0] PORT n, this field indicates the number of MAC Valid + * Length but CRC error. */ + } AFRAMECHECKSEQUENCEERRORS_P0_b; + }; + + union + { + __IM uint32_t AALIGNMENTERRORS_P0; /*!< (@ 0x00000874) Port 0 MAC Alignment Error Frame Count Register + * (n = 0 to 3) */ + + struct + { + __IM uint32_t ALGNERRCOUNT : 32; /*!< [31..0] PORT n, this field indicates the number of MAC Odd Number + * of Nibbles (MII) Received. */ + } AALIGNMENTERRORS_P0_b; + }; + + union + { + __IM uint32_t AOCTETSTRANSMITTEDOK_P0; /*!< (@ 0x00000878) Port 0 MAC Transmitted Valid Frame Octets Register + * (n = 0 to 3) */ + + struct + { + __IM uint32_t TXVALIDOCTETS : 32; /*!< [31..0] PORT n, this field indicates the octets (the payload + * only) of MAC Valid Transmitted. */ + } AOCTETSTRANSMITTEDOK_P0_b; + }; + + union + { + __IM uint32_t AOCTETSRECEIVEDOK_P0; /*!< (@ 0x0000087C) Port 0 MAC Received Valid Frame Octets Register + * (n = 0 to 3) */ + + struct + { + __IM uint32_t RXVALIDOCTETS : 32; /*!< [31..0] PORT n, this field indicates the octets (the payload + * only) of MAC Valid Received. */ + } AOCTETSRECEIVEDOK_P0_b; + }; + + union + { + __IM uint32_t ATXPAUSEMACCTRLFRAMES_P0; /*!< (@ 0x00000880) Port 0 MAC Transmitted Pause Frame Count Register + * (n = 0 to 3) */ + + struct + { + __IM uint32_t TXPAUSECOUNT : 32; /*!< [31..0] PORT n, this field indicates the number of MAC Valid + * Pause Transmitted. */ + } ATXPAUSEMACCTRLFRAMES_P0_b; + }; + + union + { + __IM uint32_t ARXPAUSEMACCTRLFRAMES_P0; /*!< (@ 0x00000884) Port 0 MAC Received Pause Frame Count Register + * (n = 0 to 3) */ + + struct + { + __IM uint32_t RXPAUSECOUNT : 32; /*!< [31..0] PORT n, this field indicates the number of MAC Valid + * Pause Received. */ + } ARXPAUSEMACCTRLFRAMES_P0_b; + }; + + union + { + __IM uint32_t IFINERRORS_P0; /*!< (@ 0x00000888) Port 0 MAC Input Error Count Register (n = 0 + * to 3) */ + + struct + { + __IM uint32_t INERRCOUNT : 32; /*!< [31..0] PORT n, this field indicates the number of MAC Any Error + * During Reception such as CRC, Length, PHY Error, RX FIFO + * Overflow. */ + } IFINERRORS_P0_b; + }; + + union + { + __IM uint32_t IFOUTERRORS_P0; /*!< (@ 0x0000088C) Port 0 MAC Output Error Count Register (n = 0 + * to 3) */ + + struct + { + __IM uint32_t OUTERRCOUNT : 32; /*!< [31..0] PORT n, this field indicates the number of MAC Frame + * Transmitted with PHY error. */ + } IFOUTERRORS_P0_b; + }; + + union + { + __IM uint32_t IFINUCASTPKTS_P0; /*!< (@ 0x00000890) Port 0 MAC Received Unicast Frame Count Register + * (n = 0 to 3) */ + + struct + { + __IM uint32_t RXUCASTCOUNT : 32; /*!< [31..0] PORT n, this field indicates the number of MAC Unicast + * Frame Valid Received. */ + } IFINUCASTPKTS_P0_b; + }; + + union + { + __IM uint32_t IFINMULTICASTPKTS_P0; /*!< (@ 0x00000894) Port 0 MAC Received Multicast Frame Count Register + * (n = 0 to 3) */ + + struct + { + __IM uint32_t RXMCASTCOUNT : 32; /*!< [31..0] PORT n, this field indicates the number of MAC Multicast + * Frame Valid Received. */ + } IFINMULTICASTPKTS_P0_b; + }; + + union + { + __IM uint32_t IFINBROADCASTPKTS_P0; /*!< (@ 0x00000898) Port 0 MAC Received Broadcast Frame Count Register + * (n = 0 to 3) */ + + struct + { + __IM uint32_t RXBCASTCOUNT : 32; /*!< [31..0] PORT n, this field indicates the number of MAC Broadcast + * Frame Valid Received. */ + } IFINBROADCASTPKTS_P0_b; + }; + + union + { + __IM uint32_t IFOUTDISCARDS_P0; /*!< (@ 0x0000089C) Port 0 MAC Discarded Outbound Frame Count Register + * (n = 0 to 3) */ + + struct + { + __IM uint32_t DISCOBCOUNT : 32; /*!< [31..0] Not Applicable */ + } IFOUTDISCARDS_P0_b; + }; + + union + { + __IM uint32_t IFOUTUCASTPKTS_P0; /*!< (@ 0x000008A0) Port 0 MAC Transmitted Unicast Frame Count Register + * (n = 0 to 3) */ + + struct + { + __IM uint32_t TXUCASTCOUNT : 32; /*!< [31..0] PORT n, this field indicates the number of MAC Unicast + * Frame Valid Transmitted. */ + } IFOUTUCASTPKTS_P0_b; + }; + + union + { + __IM uint32_t IFOUTMULTICASTPKTS_P0; /*!< (@ 0x000008A4) Port 0 MAC Transmitted Multicast Frame Count + * Register (n = 0 to 3) */ + + struct + { + __IM uint32_t TXMCASTCOUNT : 32; /*!< [31..0] PORT n, this field indicates the number of MAC Multicast + * Frame Valid Transmitted. */ + } IFOUTMULTICASTPKTS_P0_b; + }; + + union + { + __IM uint32_t IFOUTBROADCASTPKTS_P0; /*!< (@ 0x000008A8) Port 0 MAC Transmitted Broadcast Frame Count + * Register (n = 0 to 3) */ + + struct + { + __IM uint32_t TXBCASTCOUNT : 32; /*!< [31..0] PORT n, this field indicates the number of MAC Broadcast + * Frame Valid Transmitted. */ + } IFOUTBROADCASTPKTS_P0_b; + }; + + union + { + __IM uint32_t ETHERSTATSDROPEVENTS_P0; /*!< (@ 0x000008AC) Port 0 MAC Dropped Frame Count Register (n = + * 0 to 3) */ + + struct + { + __IM uint32_t DROPCOUNT : 32; /*!< [31..0] PORT n, this field indicates the number of MAC RX FIFO + * Full at frame start. */ + } ETHERSTATSDROPEVENTS_P0_b; + }; + + union + { + __IM uint32_t ETHERSTATSOCTETS_P0; /*!< (@ 0x000008B0) Port 0 MAC All Frame Octets Register (n = 0 to + * 3) */ + + struct + { + __IM uint32_t ALLOCTETS : 32; /*!< [31..0] ALLOCTETS */ + } ETHERSTATSOCTETS_P0_b; + }; + + union + { + __IM uint32_t ETHERSTATSPKTS_P0; /*!< (@ 0x000008B4) Port 0 MAC All Frame Count Register (n = 0 to + * 3) */ + + struct + { + __IM uint32_t ALLCOUNT : 32; /*!< [31..0] ALLCOUNT */ + } ETHERSTATSPKTS_P0_b; + }; + + union + { + __IM uint32_t ETHERSTATSUNDERSIZEPKTS_P0; /*!< (@ 0x000008B8) Port 0 MAC Too Short Frame Count Register (n + * = 0 to 3) */ + + struct + { + __IM uint32_t TOOSHRTCOUNT : 32; /*!< [31..0] PORT n, this field indicates the number of MAC too Short, + * Good CRC. */ + } ETHERSTATSUNDERSIZEPKTS_P0_b; + }; + + union + { + __IM uint32_t ETHERSTATSOVERSIZEPKTS_P0; /*!< (@ 0x000008BC) Port 0 MAC Too Long Frame Count Register (n = + * 0 to 3) */ + + struct + { + __IM uint32_t TOOLONGCOUNT : 32; /*!< [31..0] PORT n, this field indicates the number of MAC too Long, + * Good CRC. */ + } ETHERSTATSOVERSIZEPKTS_P0_b; + }; + + union + { + __IM uint32_t ETHERSTATSPKTS64OCTETS_P0; /*!< (@ 0x000008C0) Port 0 MAC 64 Octets Frame Count Register (n + * = 0 to 3) */ + + struct + { + __IM uint32_t OCTCNT64 : 32; /*!< [31..0] PORT n, this field indicates the number of MAC All Frames, + * Good and Bad (Packet Size: 64 bytes). */ + } ETHERSTATSPKTS64OCTETS_P0_b; + }; + + union + { + __IM uint32_t ETHERSTATSPKTS65TO127OCTETS_P0; /*!< (@ 0x000008C4) Port 0 MAC 65 to 127 Octets Frame Count Register + * (n = 0 to 3) */ + + struct + { + __IM uint32_t OCTCNT65T127 : 32; /*!< [31..0] PORT n, this field indicates the number of MAC All Frames, + * Good and Bad (Packet Size: 65 to 127 bytes). */ + } ETHERSTATSPKTS65TO127OCTETS_P0_b; + }; + + union + { + __IM uint32_t ETHERSTATSPKTS128TO255OCTETS_P0; /*!< (@ 0x000008C8) Port 0 MAC 128 to 255 Octets Frame Count Register + * (n = 0 to 3) */ + + struct + { + __IM uint32_t OCTCNT128T255 : 32; /*!< [31..0] PORT n, this field indicates the number of MAC All Frames, + * Good and Bad (Packet Size: 128 to 255 bytes). */ + } ETHERSTATSPKTS128TO255OCTETS_P0_b; + }; + + union + { + __IM uint32_t ETHERSTATSPKTS256TO511OCTETS_P0; /*!< (@ 0x000008CC) Port 0 MAC 256 to 511 Octets Frame Count Register + * (n = 0 to 3) */ + + struct + { + __IM uint32_t OCTCNT256T511 : 32; /*!< [31..0] PORT n, this field indicates the number of MAC All Frames, + * Good and Bad (Packet Size: 256 to 511 bytes). */ + } ETHERSTATSPKTS256TO511OCTETS_P0_b; + }; + + union + { + __IM uint32_t ETHERSTATSPKTS512TO1023OCTETS_P0; /*!< (@ 0x000008D0) Port 0 MAC 512 to 1023 Octets Frame Count Register + * (n = 0 to 3) */ + + struct + { + __IM uint32_t OCTCNT512T1023 : 32; /*!< [31..0] PORT n, this field indicates the number of MAC All Frames, + * Good and Bad (Packet Size: 512 to 1023 bytes). */ + } ETHERSTATSPKTS512TO1023OCTETS_P0_b; + }; + + union + { + __IM uint32_t ETHERSTATSPKTS1024TO1518OCTETS_P0; /*!< (@ 0x000008D4) Port 0 MAC 1024 to 1518 Octets Frame Count Register + * (n = 0 to 3) */ + + struct + { + __IM uint32_t OCTCNT1024T1518 : 32; /*!< [31..0] PORT n, this field indicates the number of MAC All Frames, + * Good and Bad (Packet Size: 1024 to 1518 bytes). */ + } ETHERSTATSPKTS1024TO1518OCTETS_P0_b; + }; + + union + { + __IM uint32_t ETHERSTATSPKTS1519TOXOCTETS_P0; /*!< (@ 0x000008D8) Port 0 MAC Over 1519 Octets Frame Count Register + * (n = 0 to 3) */ + + struct + { + __IM uint32_t OCTCNT1519TX : 32; /*!< [31..0] PORT n, this field indicates the number of MAC all Frames, + * Good and Bad (Packet Size: over 1519 bytes). */ + } ETHERSTATSPKTS1519TOXOCTETS_P0_b; + }; + + union + { + __IM uint32_t ETHERSTATSJABBERS_P0; /*!< (@ 0x000008DC) Port 0 MAC Jabbers Frame Count Register (n = + * 0 to 3) */ + + struct + { + __IM uint32_t JABBERCOUNT : 32; /*!< [31..0] PORT n, this field indicates the number of MAC too Long, + * Bad CRC. */ + } ETHERSTATSJABBERS_P0_b; + }; + + union + { + __IM uint32_t ETHERSTATSFRAGMENTS_P0; /*!< (@ 0x000008E0) Port 0 MAC Fragment Frame Count Register (n = + * 0 to 3) */ + + struct + { + __IM uint32_t FRAGCOUNT : 32; /*!< [31..0] PORT n, this field indicates the number of MAC too Short, + * Bad CRC. */ + } ETHERSTATSFRAGMENTS_P0_b; + }; + __IM uint32_t RESERVED28; + + union + { + __IM uint32_t VLANRECEIVEDOK_P0; /*!< (@ 0x000008E8) Port 0 MAC Received VLAN Tagged Frame Count Register + * (n = 0 to 3) */ + + struct + { + __IM uint32_t RXVLANTAGCNT : 32; /*!< [31..0] PORT n, this field indicates the number of Good Frames + * with VLAN Tag Received. */ + } VLANRECEIVEDOK_P0_b; + }; + __IM uint32_t RESERVED29[2]; + + union + { + __IM uint32_t VLANTRANSMITTEDOK_P0; /*!< (@ 0x000008F4) Port 0 MAC Transmitted VLAN Tagged Frame Count + * Register (n = 0 to 3) */ + + struct + { + __IM uint32_t TXVLANTAGCNT : 32; /*!< [31..0] PORT n, this field indicates the number of Good Frames + * with VLAN Tag Transmitted. */ + } VLANTRANSMITTEDOK_P0_b; + }; + + union + { + __IM uint32_t FRAMESRETRANSMITTED_P0; /*!< (@ 0x000008F8) Port 0 MAC Retransmitted Frame Count Register + * (n = 0 to 3) */ + + struct + { + __IM uint32_t RETXCOUNT : 32; /*!< [31..0] PORT n, this field indicates the number of Transmitted + * Frames that experienced a collision and were retransmitted. */ + } FRAMESRETRANSMITTED_P0_b; + }; + __IM uint32_t RESERVED30; + + union + { + __IM uint32_t STATS_HIWORD_P0; /*!< (@ 0x00000900) Port 0 MAC Statistics Counter High Word Register + * (n = 0 to 3) */ + + struct + { + __IM uint32_t STATS_HIWORD : 32; /*!< [31..0] The latched upper 32-bit of the 64 bits MAC Statistics + * Counter Last Read */ + } STATS_HIWORD_P0_b; + }; + + union + { + __IOM uint32_t STATS_CTRL_P0; /*!< (@ 0x00000904) Port 0 MAC Statistics Control Register (n = 0 + * to 3) */ + + struct + { + __IOM uint32_t CLRALL : 1; /*!< [0..0] Self Clearing Counter Initialize Command */ + __IM uint32_t CLRBUSY : 1; /*!< [1..1] Clear in Progress Indication */ + uint32_t : 30; + } STATS_CTRL_P0_b; + }; + + union + { + __IOM uint32_t STATS_CLEAR_VALUELO_P0; /*!< (@ 0x00000908) Port 0 MAC Statistics Clear Value Lower Register + * (n = 0 to 3) */ + + struct + { + __IOM uint32_t STATS_CLEAR_VALUELO : 32; /*!< [31..0] PORT n, lower 32-bit of 64 bits value loaded into all + * counters when clearing all counters with STATS_CTRL_Pn.CLRALL + * command for test purposes. These bits should be set to + * 0 normally. */ + } STATS_CLEAR_VALUELO_P0_b; + }; + + union + { + __IOM uint32_t STATS_CLEAR_VALUEHI_P0; /*!< (@ 0x0000090C) Port 0 MAC Statistics Clear Value Higher Register + * (n = 0 to 3) */ + + struct + { + __IOM uint32_t STATS_CLEAR_VALUEHI : 32; /*!< [31..0] PORT n, upper 32-bit of 64 bits value loaded into all + * counters when clearing all counters with STATS_CTRL_Pn.CLRALL + * command for test purposes. These bits should be set to + * 0 normally. */ + } STATS_CLEAR_VALUEHI_P0_b; + }; + + union + { + __IM uint32_t ADEFERRED_P0; /*!< (@ 0x00000910) Port 0 MAC Deferred Count Register (n = 0 to + * 3) */ + + struct + { + __IM uint32_t DEFERCOUNT : 32; /*!< [31..0] PORT n, this field indicates the number of Frame Transmitted + * without collision but was deferred at begin. */ + } ADEFERRED_P0_b; + }; + + union + { + __IM uint32_t AMULTIPLECOLLISIONS_P0; /*!< (@ 0x00000914) Port 0 MAC Multiple Collision Count Register + * (n = 0 to 3) */ + + struct + { + __IM uint32_t COUNTAFTMLTCOLL : 32; /*!< [31..0] PORT n, this field indicates the number of Good Frame + * Transmit after multiple collisions. */ + } AMULTIPLECOLLISIONS_P0_b; + }; + + union + { + __IM uint32_t ASINGLECOLLISIONS_P0; /*!< (@ 0x00000918) Port 0 MAC Single Collision Count Register (n + * = 0 to 3) */ + + struct + { + __IM uint32_t COUNTAFTSNGLCOLL : 32; /*!< [31..0] PORT n, this field indicates the number of Good Frame + * Transmit after single collision. */ + } ASINGLECOLLISIONS_P0_b; + }; + + union + { + __IM uint32_t ALATECOLLISIONS_P0; /*!< (@ 0x0000091C) Port 0 MAC Late Collision Count Register (n = + * 0 to 3) */ + + struct + { + __IM uint32_t LATECOLLCOUNT : 32; /*!< [31..0] PORT n, this field indicates the number of too Late + * Collision. Frame was aborted and not retransmitted. */ + } ALATECOLLISIONS_P0_b; + }; + + union + { + __IM uint32_t AEXCESSIVECOLLISIONS_P0; /*!< (@ 0x00000920) Port 0 MAC Excessive Collision Count Register + * (n = 0 to 3) */ + + struct + { + __IM uint32_t EXCCOLLCOUNT : 32; /*!< [31..0] PORT n, this field indicates the number of Frames Discarded + * due to 16 consecutive collisions. */ + } AEXCESSIVECOLLISIONS_P0_b; + }; + + union + { + __IM uint32_t ACARRIERSENSEERRORS_P0; /*!< (@ 0x00000924) Port 0 MAC Carrier Sense Error Count Register + * (n = 0 to 3) */ + + struct + { + __IM uint32_t CSERRCOUNT : 32; /*!< [31..0] PORT n, increments during Transmission without Collisions + * the PHY Carrier Sense Signal (RX_CRS) dropped or never + * asserted. */ + } ACARRIERSENSEERRORS_P0_b; + }; + __IM uint32_t RESERVED31[182]; + + union + { + __IM uint32_t REV_P1; /*!< (@ 0x00000C00) Port 1 MAC Core Revision (n = 0 to 3) */ + + struct + { + __IM uint32_t REV : 32; /*!< [31..0] MAC Core Revision */ + } REV_P1_b; + }; + __IM uint32_t RESERVED32; + + union + { + __IOM uint32_t COMMAND_CONFIG_P1; /*!< (@ 0x00000C08) Port 1 Command Configuration Register (n = 0 + * to 3) */ + + struct + { + __IOM uint32_t TX_ENA : 1; /*!< [0..0] Enable/Disable MAC Transmit Path */ + __IOM uint32_t RX_ENA : 1; /*!< [1..1] Enable/Disable MAC Receive Path */ + __IOM uint32_t TDMA_PREBUF_DIS : 1; /*!< [2..2] When set to 1, the MAC does not request a new frame from + * the IMC until the current frame is completed. This can + * cause the IPG between frames to be more than the value + * in TX_IPG_LENGTH. */ + __IOM uint32_t ETH_SPEED : 1; /*!< [3..3] Operation Mode Definition */ + __IM uint32_t PROMIS_EN : 1; /*!< [4..4] Enable/Disable MAC Promiscuous Operation */ + __IM uint32_t PAD_EN : 1; /*!< [5..5] Enable/Disable Frame Padding Remove on Receive */ + uint32_t : 1; + __IM uint32_t PAUSE_FWD : 1; /*!< [7..7] Terminate/Forward Pause Frames */ + __IOM uint32_t PAUSE_IGNORE : 1; /*!< [8..8] Ignore Pause Frame Quanta */ + __IM uint32_t TX_ADDR_INS : 1; /*!< [9..9] Non writable bit, fixed to 0 always. */ + __IOM uint32_t HD_ENA : 1; /*!< [10..10] Enable auto full/half-duplex operation (set to 1) or + * full-duplex only (set to 0). */ + __IOM uint32_t TX_CRC_APPEND : 1; /*!< [11..11] Enable CRC Append on Transmit */ + uint32_t : 1; + __IOM uint32_t SW_RESET : 1; /*!< [13..13] Self Clearing Reset Command Bit */ + uint32_t : 9; + __IOM uint32_t CNTL_FRM_ENA : 1; /*!< [23..23] MAC Control Frame Enable */ + __IOM uint32_t NO_LGTH_CHK : 1; /*!< [24..24] Payload Length Check Disable */ + __IOM uint32_t ENA_10 : 1; /*!< [25..25] This bit has no effect except PHYSPEED bit of STATUS_Pn + * register. */ + __IOM uint32_t EFPI_SELECT : 1; /*!< [26..26] EFPI_SELECT */ + __IOM uint32_t TX_TRUNCATE : 1; /*!< [27..27] TX_TRUNCATE */ + uint32_t : 2; + __IOM uint32_t TIMER_SEL : 1; /*!< [30..30] Selects the default timer to use for timestamping operations + * on transmit and on receive. The value is used when not + * overridden by the PTP auto-response function, pattern matchers + * or force forwarding information in a management tag. */ + uint32_t : 1; + } COMMAND_CONFIG_P1_b; + }; + + union + { + __IOM uint32_t MAC_ADDR_0_P1; /*!< (@ 0x00000C0C) Port 1 MAC Address Register 0 (n = 0 to 2) */ + + struct + { + __IOM uint32_t MAC_ADDR : 32; /*!< [31..0] The first 4 bytes of the MAC address of the port. First + * byte is bits [7:0]. The MAC address is used on locally + * generated frames such as pause frames, peer-delay response. */ + } MAC_ADDR_0_P1_b; + }; + + union + { + __IOM uint32_t MAC_ADDR_1_P1; /*!< (@ 0x00000C10) Port 1 MAC Address Register 1 (n = 0 to 2) */ + + struct + { + __IOM uint32_t MAC_ADDR : 16; /*!< [15..0] The last 2 bytes of the MAC address of the port. Bits + * [7:0] is the 5th byte and bits [15:8] is the 6th byte. */ + uint32_t : 16; + } MAC_ADDR_1_P1_b; + }; + + union + { + __IOM uint32_t FRM_LENGTH_P1; /*!< (@ 0x00000C14) Port 1 Maximum Frame Length Register (n = 0 to + * 3) */ + + struct + { + __IOM uint32_t FRM_LENGTH : 14; /*!< [13..0] Maximum Frame Length */ + uint32_t : 18; + } FRM_LENGTH_P1_b; + }; + + union + { + __IM uint32_t PAUSE_QUANT_P1; /*!< (@ 0x00000C18) Port 1 MAC Pause Quanta (n = 0 to 3) */ + + struct + { + __IM uint32_t PAUSE_QUANT : 16; /*!< [15..0] Pause Quanta */ + uint32_t : 16; + } PAUSE_QUANT_P1_b; + }; + + union + { + __IOM uint32_t MAC_LINK_QTRIG_P1; /*!< (@ 0x00000C1C) Port 1 Trigger Event Configuration Register (n + * = 0 to 2) */ + + struct + { + __IOM uint32_t PORT_MASK : 4; /*!< [3..0] Per-port Bit Mask */ + uint32_t : 12; + __IOM uint32_t QUEUE_MASK : 8; /*!< [23..16] 1-bit per queue indicating from which queues a frame + * is transmitted from the ports indicated by PORT_MASK. A + * single frame is transmitted per indicated port in PORT_MASK + * among the queues indicated by QUEUE_MASK. */ + uint32_t : 4; + __IOM uint32_t TRIGGERED : 1; /*!< [28..28] When MODE is set to 1, TRIGGERED indicates whether + * a frame was transmitted. When MODE is set to 0, TRIGGERED + * is always 0. This flag clears when the register is written. */ + __IOM uint32_t DLR_MODE : 1; /*!< [29..29] When set to 0, the DLR state machine is ignored. When + * set to 1, the Link Queue Trigger occurs only if the DLR + * state machine is in the NORMAL or FAULT state. */ + __IOM uint32_t MODE : 1; /*!< [30..30] When set to 0, only a single Link_Status frame is generated. + * This is to prevent sending multiple frames due to link + * flapping. */ + __IOM uint32_t ENABLE : 1; /*!< [31..31] Write to 1 to enable the Link Queue Trigger feature. + * When the link status (phy_link) transitions from 1 -> + * 0, a trigger event is generated to the memory controller + * for the ports and queues indicated in PORT_MASK and QUEUE_MASK. */ + } MAC_LINK_QTRIG_P1_b; + }; + __IM uint32_t RESERVED33[4]; + + union + { + __IOM uint32_t PTPCLOCKIDENTITY1_P1; /*!< (@ 0x00000C30) Port 1 PTP Clock Identity 1 Register (n = 0 to + * 2) */ + + struct + { + __IOM uint32_t CLK_IDENTITY0 : 8; /*!< [7..0] 20, portIdentity.ClockIdentity[0] */ + __IOM uint32_t CLK_IDENTITY1 : 8; /*!< [15..8] 21, portIdentity.ClockIdentity[1] */ + __IOM uint32_t CLK_IDENTITY2 : 8; /*!< [23..16] 22, portIdentity.ClockIdentity[2] */ + __IOM uint32_t CLK_IDENTITY3 : 8; /*!< [31..24] 23, portIdentity.ClockIdentity[3] */ + } PTPCLOCKIDENTITY1_P1_b; + }; + + union + { + __IOM uint32_t PTPCLOCKIDENTITY2_P1; /*!< (@ 0x00000C34) Port 1 PTP Clock Identity 2 Register (n = 0 to + * 2) */ + + struct + { + __IOM uint32_t CLK_IDENTITY4 : 8; /*!< [7..0] 24, portIdentity.ClockIdentity[4] */ + __IOM uint32_t CLK_IDENTITY5 : 8; /*!< [15..8] 25, portIdentity.ClockIdentity[5] */ + __IOM uint32_t CLK_IDENTITY6 : 8; /*!< [23..16] 26, portIdentity.ClockIdentity[6] */ + __IOM uint32_t CLK_IDENTITY7 : 8; /*!< [31..24] 27, portIdentity.ClockIdentity[7] */ + } PTPCLOCKIDENTITY2_P1_b; + }; + + union + { + __IOM uint32_t PTPAUTORESPONSE_P1; /*!< (@ 0x00000C38) Port 1 PTP Auto Response Register (n = 0 to 2) */ + + struct + { + __IOM uint32_t ARSP_EN : 1; /*!< [0..0] Auto Response Enable */ + __IOM uint32_t D_TIMER : 1; /*!< [1..1] Default timer to use for auto-response generation */ + uint32_t : 14; + __IOM uint32_t PORTNUM1 : 8; /*!< [23..16] 29, portIdentity.PortNumber[1] (lsb) */ + __IOM uint32_t PORTNUM0 : 8; /*!< [31..24] 28, portIdentity.PortNumber[0] (msb) */ + } PTPAUTORESPONSE_P1_b; + }; + __IM uint32_t RESERVED34; + + union + { + __IOM uint32_t STATUS_P1; /*!< (@ 0x00000C40) Port 1 Status Register */ + + struct + { + __IM uint32_t PHYSPEED : 2; /*!< [1..0] Currently Active PHY Interface Speed */ + __IM uint32_t PHYLINK : 1; /*!< [2..2] Link status from PHY interface */ + __IM uint32_t PHYDUPLEX : 1; /*!< [3..3] Duplex status from PHY interface */ + __IOM uint32_t TX_UNDFLW : 1; /*!< [4..4] Indicates that the transmit MAC underflow. This shall + * never occur during normal operation. */ + __IOM uint32_t LK_DST_ERR : 1; /*!< [5..5] Indicates that the L2 destination lookup process failed + * to complete in time before the next frame was received + * at the port. This should never occur under normal operation. + * The cause could be from IPG violations in the received + * frames. */ + __IM uint32_t BR_VERIF_ST : 3; /*!< [8..6] Indicates the current status of the verification according + * to clause 30.14.1.2 of the 802.3br specification */ + uint32_t : 23; + } STATUS_P1_b; + }; + + union + { + __IOM uint32_t TX_IPG_LENGTH_P1; /*!< (@ 0x00000C44) Port 1 Transmit IPG Length Register (n = 0 to + * 3) */ + + struct + { + __IOM uint32_t TX_IPG_LENGTH : 5; /*!< [4..0] Define transmit interpacket gap in octets. Allowed values + * are in the range of 8 to 31. */ + uint32_t : 11; + __IOM uint32_t MINRTC3GAP : 5; /*!< [20..16] MINRTC3GAP */ + uint32_t : 11; + } TX_IPG_LENGTH_P1_b; + }; + + union + { + __IOM uint32_t EEE_CTL_STAT_P1; /*!< (@ 0x00000C48) Port 1 MAC EEE Functions Control and Status (n + * = 0 to 2) */ + + struct + { + __IOM uint32_t EEE_AUTO : 1; /*!< [0..0] EEE Automatic Mode of Operation */ + __IOM uint32_t LPI_REQ : 1; /*!< [1..1] Request LPI Transmission when MAC Becomes Idle */ + __IOM uint32_t LPI_TXHOLD : 1; /*!< [2..2] MAC Transmission Hold */ + uint32_t : 5; + __IM uint32_t ST_LPI_REQ : 1; /*!< [8..8] Status (real time) of Internal LPI_REQ to the MAC */ + __IM uint32_t ST_LPI_TXHOLD : 1; /*!< [9..9] Status (real time) of Internal LPI_TXHOLD to the MAC */ + __IM uint32_t ST_TXBUSY : 1; /*!< [10..10] Status (real time) if the MAC is currently transmitting. */ + __IM uint32_t ST_TXAVAIL : 1; /*!< [11..11] Status (real time) if the MAC transmit FIFO has data + * available for transmission. */ + __IM uint32_t ST_LPI_IND : 1; /*!< [12..12] Status (real time) of Received LPI */ + uint32_t : 3; + __IM uint32_t STLH_LPI_REQ : 1; /*!< [16..16] Status (latched high) of Internal LPI_REQ to the MAC */ + __IM uint32_t STLH_LPI_TXHOLD : 1; /*!< [17..17] Status (latched high) of Internal LPI_TXHOLD to the + * MAC */ + __IM uint32_t STLH_TXBUSY : 1; /*!< [18..18] Status (latched high) if the MAC is/was Transmitting */ + uint32_t : 1; + __IM uint32_t STLH_LPI_IND : 1; /*!< [20..20] Status (latched high) of Received LPI (ST_LPI_IND) */ + uint32_t : 11; + } EEE_CTL_STAT_P1_b; + }; + + union + { + __IOM uint32_t EEE_IDLE_TIME_P1; /*!< (@ 0x00000C4C) Port 1 EEE Idle Time Register (n = 0 to 2) */ + + struct + { + __IOM uint32_t EEE_IDLE_TIME : 32; /*!< [31..0] Time (-1) the transmitter must be idle before transmission + * of LPI begins. A 32-bit value in steps of 32 switch operating + * clock cycles. A value of 0 disables the timer. The value + * must be set to 1 less count. */ + } EEE_IDLE_TIME_P1_b; + }; + + union + { + __IOM uint32_t EEE_TWSYS_TIME_P1; /*!< (@ 0x00000C50) Port 1 EEE Wake Up Time Register (n = 0 to 2) */ + + struct + { + __IOM uint32_t EEE_WKUP_TIME : 32; /*!< [31..0] Time (-1) after PHY wakeup until the MAC is allowed + * to begin transmitting the first frame again. A 32-bit value + * in steps of switch operating clock cycles. A value of 0 + * disables the timer. The value must be set to 1 less count. */ + } EEE_TWSYS_TIME_P1_b; + }; + + union + { + __IOM uint32_t IDLE_SLOPE_P1; /*!< (@ 0x00000C54) Port 1 MAC Traffic Shaper Bandwidth Control */ + + struct + { + __IOM uint32_t IDLE_SLOPE : 11; /*!< [10..0] Traffic Shaper Bandwidth Control */ + uint32_t : 21; + } IDLE_SLOPE_P1_b; + }; + + union + { + __IOM uint32_t CT_DELAY_P1; /*!< (@ 0x00000C58) Port 1 Cut-Through Delay Indication Register */ + + struct + { + __IOM uint32_t CT_DELAY : 9; /*!< [8..0] Delay Value in 400 ns / 40 ns / 8 ns increments (frequency + * of the MII PHY interface) */ + uint32_t : 23; + } CT_DELAY_P1_b; + }; + + union + { + __IOM uint32_t BR_CONTROL_P1; /*!< (@ 0x00000C5C) Port 1 802.3br Frame Configuration Register */ + + struct + { + __IOM uint32_t PREEMPT_ENA : 1; /*!< [0..0] When set to 1, enables 802.3br Frame Preemption. */ + __IOM uint32_t VERIFY_DIS : 1; /*!< [1..1] When set to 1, disables the verify process required for + * preemption operation. */ + __IOM uint32_t RESPONSE_DIS : 1; /*!< [2..2] When set to 1 prevents the MAC from responding to "verify" + * frames. */ + uint32_t : 1; + __IOM uint32_t ADDFRAGSIZE : 2; /*!< [5..4] Minimum fragment size in increments of 64 bytes. */ + uint32_t : 2; + __IOM uint32_t TX_VERIFY_TIME : 7; /*!< [14..8] Preemption verification timeout in milliseconds. */ + uint32_t : 1; + __IOM uint32_t RX_STRICT_PRE : 1; /*!< [16..16] When set to 1, the preamble is checked so all bytes + * except the SFD are 0x55. When set to 0, only the last 2 + * bytes of the preamble are checked (SFD/SMD and FRAG_COUNT). + * It is recommended to set this bit to 1 to comply with the + * 802.3br specification. This bit must be set to 0 if only + * non-802.3br traffic is expected (for example, normal Ethernet + * traffic) and if custom preamble is used. */ + __IOM uint32_t RX_BR_SMD_DIS : 1; /*!< [17..17] When set to 1, the receiver does not decode the 802.3br + * SMDs and assumes all frames are express frames. This bit + * must be set to 0 for correct operation with 802.3br, and + * can be set to 1 when 802.3br is not enabled to avoid false + * detection of SMDs. */ + __IOM uint32_t RX_STRICT_BR_CTL : 1; /*!< [18..18] When set to 1, strict checking of VERIFY and RESPONSE + * frames is enabled. When set to 1, the frame contents and + * frame length checks are also performed on these frames. + * The mCRC is always checked regardless of the value of this + * register. This bit must be set to 0 to be compliant with + * the functionality described in IEEE 802.3br. */ + __IOM uint32_t TX_MCRC_INV : 1; /*!< [19..19] When set to 1, the 32-bit XOR mask used to calculate + * the mCRC for transmitted frames is inverted. This bit must + * always be written to 0 and only used for debugging. */ + __IOM uint32_t RX_MCRC_INV : 1; /*!< [20..20] When set to 1, the 32-bit XOR mask used to calculate + * the mCRC for received frames is inverted. This bit must + * always be written to 0 and only used for debugging. */ + uint32_t : 11; + } BR_CONTROL_P1_b; + }; + __IM uint32_t RESERVED35[2]; + + union + { + __IM uint32_t AFRAMESTRANSMITTEDOK_P1; /*!< (@ 0x00000C68) Port 1 MAC Transmitted Valid Frame Count Register + * (n = 0 to 3) */ + + struct + { + __IM uint32_t TXVALIDCOUNT : 32; /*!< [31..0] PORT n, this field indicates the number of MAC Valid + * Transmitted, including pause. */ + } AFRAMESTRANSMITTEDOK_P1_b; + }; + + union + { + __IM uint32_t AFRAMESRECEIVEDOK_P1; /*!< (@ 0x00000C6C) Port 1 MAC Received Valid Frame Count Register + * (n = 0 to 3) */ + + struct + { + __IM uint32_t RXVALIDCOUNT : 32; /*!< [31..0] PORT n, this field indicates the number of MAC Valid + * Received, including pause. */ + } AFRAMESRECEIVEDOK_P1_b; + }; + + union + { + __IM uint32_t AFRAMECHECKSEQUENCEERRORS_P1; /*!< (@ 0x00000C70) Port 1 MAC FCS Error Frame Count Register (n + * = 0 to 3) */ + + struct + { + __IM uint32_t FCSERRCOUNT : 32; /*!< [31..0] PORT n, this field indicates the number of MAC Valid + * Length but CRC error. */ + } AFRAMECHECKSEQUENCEERRORS_P1_b; + }; + + union + { + __IM uint32_t AALIGNMENTERRORS_P1; /*!< (@ 0x00000C74) Port 1 MAC Alignment Error Frame Count Register + * (n = 0 to 3) */ + + struct + { + __IM uint32_t ALGNERRCOUNT : 32; /*!< [31..0] PORT n, this field indicates the number of MAC Odd Number + * of Nibbles (MII) Received. */ + } AALIGNMENTERRORS_P1_b; + }; + + union + { + __IM uint32_t AOCTETSTRANSMITTEDOK_P1; /*!< (@ 0x00000C78) Port 1 MAC Transmitted Valid Frame Octets Register + * (n = 0 to 3) */ + + struct + { + __IM uint32_t TXVALIDOCTETS : 32; /*!< [31..0] PORT n, this field indicates the octets (the payload + * only) of MAC Valid Transmitted. */ + } AOCTETSTRANSMITTEDOK_P1_b; + }; + + union + { + __IM uint32_t AOCTETSRECEIVEDOK_P1; /*!< (@ 0x00000C7C) Port 1 MAC Received Valid Frame Octets Register + * (n = 0 to 3) */ + + struct + { + __IM uint32_t RXVALIDOCTETS : 32; /*!< [31..0] PORT n, this field indicates the octets (the payload + * only) of MAC Valid Received. */ + } AOCTETSRECEIVEDOK_P1_b; + }; + + union + { + __IM uint32_t ATXPAUSEMACCTRLFRAMES_P1; /*!< (@ 0x00000C80) Port 1 MAC Transmitted Pause Frame Count Register + * (n = 0 to 3) */ + + struct + { + __IM uint32_t TXPAUSECOUNT : 32; /*!< [31..0] PORT n, this field indicates the number of MAC Valid + * Pause Transmitted. */ + } ATXPAUSEMACCTRLFRAMES_P1_b; + }; + + union + { + __IM uint32_t ARXPAUSEMACCTRLFRAMES_P1; /*!< (@ 0x00000C84) Port 1 MAC Received Pause Frame Count Register + * (n = 0 to 3) */ + + struct + { + __IM uint32_t RXPAUSECOUNT : 32; /*!< [31..0] PORT n, this field indicates the number of MAC Valid + * Pause Received. */ + } ARXPAUSEMACCTRLFRAMES_P1_b; + }; + + union + { + __IM uint32_t IFINERRORS_P1; /*!< (@ 0x00000C88) Port 1 MAC Input Error Count Register (n = 0 + * to 3) */ + + struct + { + __IM uint32_t INERRCOUNT : 32; /*!< [31..0] PORT n, this field indicates the number of MAC Any Error + * During Reception such as CRC, Length, PHY Error, RX FIFO + * Overflow. */ + } IFINERRORS_P1_b; + }; + + union + { + __IM uint32_t IFOUTERRORS_P1; /*!< (@ 0x00000C8C) Port 1 MAC Output Error Count Register (n = 0 + * to 3) */ + + struct + { + __IM uint32_t OUTERRCOUNT : 32; /*!< [31..0] PORT n, this field indicates the number of MAC Frame + * Transmitted with PHY error. */ + } IFOUTERRORS_P1_b; + }; + + union + { + __IM uint32_t IFINUCASTPKTS_P1; /*!< (@ 0x00000C90) Port 1 MAC Received Unicast Frame Count Register + * (n = 0 to 3) */ + + struct + { + __IM uint32_t RXUCASTCOUNT : 32; /*!< [31..0] PORT n, this field indicates the number of MAC Unicast + * Frame Valid Received. */ + } IFINUCASTPKTS_P1_b; + }; + + union + { + __IM uint32_t IFINMULTICASTPKTS_P1; /*!< (@ 0x00000C94) Port 1 MAC Received Multicast Frame Count Register + * (n = 0 to 3) */ + + struct + { + __IM uint32_t RXMCASTCOUNT : 32; /*!< [31..0] PORT n, this field indicates the number of MAC Multicast + * Frame Valid Received. */ + } IFINMULTICASTPKTS_P1_b; + }; + + union + { + __IM uint32_t IFINBROADCASTPKTS_P1; /*!< (@ 0x00000C98) Port 1 MAC Received Broadcast Frame Count Register + * (n = 0 to 3) */ + + struct + { + __IM uint32_t RXBCASTCOUNT : 32; /*!< [31..0] PORT n, this field indicates the number of MAC Broadcast + * Frame Valid Received. */ + } IFINBROADCASTPKTS_P1_b; + }; + + union + { + __IM uint32_t IFOUTDISCARDS_P1; /*!< (@ 0x00000C9C) Port 1 MAC Discarded Outbound Frame Count Register + * (n = 0 to 3) */ + + struct + { + __IM uint32_t DISCOBCOUNT : 32; /*!< [31..0] Not Applicable */ + } IFOUTDISCARDS_P1_b; + }; + + union + { + __IM uint32_t IFOUTUCASTPKTS_P1; /*!< (@ 0x00000CA0) Port 1 MAC Transmitted Unicast Frame Count Register + * (n = 0 to 3) */ + + struct + { + __IM uint32_t TXUCASTCOUNT : 32; /*!< [31..0] PORT n, this field indicates the number of MAC Unicast + * Frame Valid Transmitted. */ + } IFOUTUCASTPKTS_P1_b; + }; + + union + { + __IM uint32_t IFOUTMULTICASTPKTS_P1; /*!< (@ 0x00000CA4) Port 1 MAC Transmitted Multicast Frame Count + * Register (n = 0 to 3) */ + + struct + { + __IM uint32_t TXMCASTCOUNT : 32; /*!< [31..0] PORT n, this field indicates the number of MAC Multicast + * Frame Valid Transmitted. */ + } IFOUTMULTICASTPKTS_P1_b; + }; + + union + { + __IM uint32_t IFOUTBROADCASTPKTS_P1; /*!< (@ 0x00000CA8) Port 1 MAC Transmitted Broadcast Frame Count + * Register (n = 0 to 3) */ + + struct + { + __IM uint32_t TXBCASTCOUNT : 32; /*!< [31..0] PORT n, this field indicates the number of MAC Broadcast + * Frame Valid Transmitted. */ + } IFOUTBROADCASTPKTS_P1_b; + }; + + union + { + __IM uint32_t ETHERSTATSDROPEVENTS_P1; /*!< (@ 0x00000CAC) Port 1 MAC Dropped Frame Count Register (n = + * 0 to 3) */ + + struct + { + __IM uint32_t DROPCOUNT : 32; /*!< [31..0] PORT n, this field indicates the number of MAC RX FIFO + * Full at frame start. */ + } ETHERSTATSDROPEVENTS_P1_b; + }; + + union + { + __IM uint32_t ETHERSTATSOCTETS_P1; /*!< (@ 0x00000CB0) Port 1 MAC All Frame Octets Register (n = 0 to + * 3) */ + + struct + { + __IM uint32_t ALLOCTETS : 32; /*!< [31..0] ALLOCTETS */ + } ETHERSTATSOCTETS_P1_b; + }; + + union + { + __IM uint32_t ETHERSTATSPKTS_P1; /*!< (@ 0x00000CB4) Port 1 MAC All Frame Count Register (n = 0 to + * 3) */ + + struct + { + __IM uint32_t ALLCOUNT : 32; /*!< [31..0] ALLCOUNT */ + } ETHERSTATSPKTS_P1_b; + }; + + union + { + __IM uint32_t ETHERSTATSUNDERSIZEPKTS_P1; /*!< (@ 0x00000CB8) Port 1 MAC Too Short Frame Count Register (n + * = 0 to 3) */ + + struct + { + __IM uint32_t TOOSHRTCOUNT : 32; /*!< [31..0] PORT n, this field indicates the number of MAC too Short, + * Good CRC. */ + } ETHERSTATSUNDERSIZEPKTS_P1_b; + }; + + union + { + __IM uint32_t ETHERSTATSOVERSIZEPKTS_P1; /*!< (@ 0x00000CBC) Port 1 MAC Too Long Frame Count Register (n = + * 0 to 3) */ + + struct + { + __IM uint32_t TOOLONGCOUNT : 32; /*!< [31..0] PORT n, this field indicates the number of MAC too Long, + * Good CRC. */ + } ETHERSTATSOVERSIZEPKTS_P1_b; + }; + + union + { + __IM uint32_t ETHERSTATSPKTS64OCTETS_P1; /*!< (@ 0x00000CC0) Port 1 MAC 64 Octets Frame Count Register (n + * = 0 to 3) */ + + struct + { + __IM uint32_t OCTCNT64 : 32; /*!< [31..0] PORT n, this field indicates the number of MAC All Frames, + * Good and Bad (Packet Size: 64 bytes). */ + } ETHERSTATSPKTS64OCTETS_P1_b; + }; + + union + { + __IM uint32_t ETHERSTATSPKTS65TO127OCTETS_P1; /*!< (@ 0x00000CC4) Port 1 MAC 65 to 127 Octets Frame Count Register + * (n = 0 to 3) */ + + struct + { + __IM uint32_t OCTCNT65T127 : 32; /*!< [31..0] PORT n, this field indicates the number of MAC All Frames, + * Good and Bad (Packet Size: 65 to 127 bytes). */ + } ETHERSTATSPKTS65TO127OCTETS_P1_b; + }; + + union + { + __IM uint32_t ETHERSTATSPKTS128TO255OCTETS_P1; /*!< (@ 0x00000CC8) Port 1 MAC 128 to 255 Octets Frame Count Register + * (n = 0 to 3) */ + + struct + { + __IM uint32_t OCTCNT128T255 : 32; /*!< [31..0] PORT n, this field indicates the number of MAC All Frames, + * Good and Bad (Packet Size: 128 to 255 bytes). */ + } ETHERSTATSPKTS128TO255OCTETS_P1_b; + }; + + union + { + __IM uint32_t ETHERSTATSPKTS256TO511OCTETS_P1; /*!< (@ 0x00000CCC) Port 1 MAC 256 to 511 Octets Frame Count Register + * (n = 0 to 3) */ + + struct + { + __IM uint32_t OCTCNT256T511 : 32; /*!< [31..0] PORT n, this field indicates the number of MAC All Frames, + * Good and Bad (Packet Size: 256 to 511 bytes). */ + } ETHERSTATSPKTS256TO511OCTETS_P1_b; + }; + + union + { + __IM uint32_t ETHERSTATSPKTS512TO1023OCTETS_P1; /*!< (@ 0x00000CD0) Port 1 MAC 512 to 1023 Octets Frame Count Register + * (n = 0 to 3) */ + + struct + { + __IM uint32_t OCTCNT512T1023 : 32; /*!< [31..0] PORT n, this field indicates the number of MAC All Frames, + * Good and Bad (Packet Size: 512 to 1023 bytes). */ + } ETHERSTATSPKTS512TO1023OCTETS_P1_b; + }; + + union + { + __IM uint32_t ETHERSTATSPKTS1024TO1518OCTETS_P1; /*!< (@ 0x00000CD4) Port 1 MAC 1024 to 1518 Octets Frame Count Register + * (n = 0 to 3) */ + + struct + { + __IM uint32_t OCTCNT1024T1518 : 32; /*!< [31..0] PORT n, this field indicates the number of MAC All Frames, + * Good and Bad (Packet Size: 1024 to 1518 bytes). */ + } ETHERSTATSPKTS1024TO1518OCTETS_P1_b; + }; + + union + { + __IM uint32_t ETHERSTATSPKTS1519TOXOCTETS_P1; /*!< (@ 0x00000CD8) Port 1 MAC Over 1519 Octets Frame Count Register + * (n = 0 to 3) */ + + struct + { + __IM uint32_t OCTCNT1519TX : 32; /*!< [31..0] PORT n, this field indicates the number of MAC all Frames, + * Good and Bad (Packet Size: over 1519 bytes). */ + } ETHERSTATSPKTS1519TOXOCTETS_P1_b; + }; + + union + { + __IM uint32_t ETHERSTATSJABBERS_P1; /*!< (@ 0x00000CDC) Port 1 MAC Jabbers Frame Count Register (n = + * 0 to 3) */ + + struct + { + __IM uint32_t JABBERCOUNT : 32; /*!< [31..0] PORT n, this field indicates the number of MAC too Long, + * Bad CRC. */ + } ETHERSTATSJABBERS_P1_b; + }; + + union + { + __IM uint32_t ETHERSTATSFRAGMENTS_P1; /*!< (@ 0x00000CE0) Port 1 MAC Fragment Frame Count Register (n = + * 0 to 3) */ + + struct + { + __IM uint32_t FRAGCOUNT : 32; /*!< [31..0] PORT n, this field indicates the number of MAC too Short, + * Bad CRC. */ + } ETHERSTATSFRAGMENTS_P1_b; + }; + __IM uint32_t RESERVED36; + + union + { + __IM uint32_t VLANRECEIVEDOK_P1; /*!< (@ 0x00000CE8) Port 1 MAC Received VLAN Tagged Frame Count Register + * (n = 0 to 3) */ + + struct + { + __IM uint32_t RXVLANTAGCNT : 32; /*!< [31..0] PORT n, this field indicates the number of Good Frames + * with VLAN Tag Received. */ + } VLANRECEIVEDOK_P1_b; + }; + __IM uint32_t RESERVED37[2]; + + union + { + __IM uint32_t VLANTRANSMITTEDOK_P1; /*!< (@ 0x00000CF4) Port 1 MAC Transmitted VLAN Tagged Frame Count + * Register (n = 0 to 3) */ + + struct + { + __IM uint32_t TXVLANTAGCNT : 32; /*!< [31..0] PORT n, this field indicates the number of Good Frames + * with VLAN Tag Transmitted. */ + } VLANTRANSMITTEDOK_P1_b; + }; + + union + { + __IM uint32_t FRAMESRETRANSMITTED_P1; /*!< (@ 0x00000CF8) Port 1 MAC Retransmitted Frame Count Register + * (n = 0 to 3) */ + + struct + { + __IM uint32_t RETXCOUNT : 32; /*!< [31..0] PORT n, this field indicates the number of Transmitted + * Frames that experienced a collision and were retransmitted. */ + } FRAMESRETRANSMITTED_P1_b; + }; + __IM uint32_t RESERVED38; + + union + { + __IM uint32_t STATS_HIWORD_P1; /*!< (@ 0x00000D00) Port 1 MAC Statistics Counter High Word Register + * (n = 0 to 3) */ + + struct + { + __IM uint32_t STATS_HIWORD : 32; /*!< [31..0] The latched upper 32-bit of the 64 bits MAC Statistics + * Counter Last Read */ + } STATS_HIWORD_P1_b; + }; + + union + { + __IOM uint32_t STATS_CTRL_P1; /*!< (@ 0x00000D04) Port 1 MAC Statistics Control Register (n = 0 + * to 3) */ + + struct + { + __IOM uint32_t CLRALL : 1; /*!< [0..0] Self Clearing Counter Initialize Command */ + __IM uint32_t CLRBUSY : 1; /*!< [1..1] Clear in Progress Indication */ + uint32_t : 30; + } STATS_CTRL_P1_b; + }; + + union + { + __IOM uint32_t STATS_CLEAR_VALUELO_P1; /*!< (@ 0x00000D08) Port 1 MAC Statistics Clear Value Lower Register + * (n = 0 to 3) */ + + struct + { + __IOM uint32_t STATS_CLEAR_VALUELO : 32; /*!< [31..0] PORT n, lower 32-bit of 64 bits value loaded into all + * counters when clearing all counters with STATS_CTRL_Pn.CLRALL + * command for test purposes. These bits should be set to + * 0 normally. */ + } STATS_CLEAR_VALUELO_P1_b; + }; + + union + { + __IOM uint32_t STATS_CLEAR_VALUEHI_P1; /*!< (@ 0x00000D0C) Port 1 MAC Statistics Clear Value Higher Register + * (n = 0 to 3) */ + + struct + { + __IOM uint32_t STATS_CLEAR_VALUEHI : 32; /*!< [31..0] PORT n, upper 32-bit of 64 bits value loaded into all + * counters when clearing all counters with STATS_CTRL_Pn.CLRALL + * command for test purposes. These bits should be set to + * 0 normally. */ + } STATS_CLEAR_VALUEHI_P1_b; + }; + + union + { + __IM uint32_t ADEFERRED_P1; /*!< (@ 0x00000D10) Port 1 MAC Deferred Count Register (n = 0 to + * 3) */ + + struct + { + __IM uint32_t DEFERCOUNT : 32; /*!< [31..0] PORT n, this field indicates the number of Frame Transmitted + * without collision but was deferred at begin. */ + } ADEFERRED_P1_b; + }; + + union + { + __IM uint32_t AMULTIPLECOLLISIONS_P1; /*!< (@ 0x00000D14) Port 1 MAC Multiple Collision Count Register + * (n = 0 to 3) */ + + struct + { + __IM uint32_t COUNTAFTMLTCOLL : 32; /*!< [31..0] PORT n, this field indicates the number of Good Frame + * Transmit after multiple collisions. */ + } AMULTIPLECOLLISIONS_P1_b; + }; + + union + { + __IM uint32_t ASINGLECOLLISIONS_P1; /*!< (@ 0x00000D18) Port 1 MAC Single Collision Count Register (n + * = 0 to 3) */ + + struct + { + __IM uint32_t COUNTAFTSNGLCOLL : 32; /*!< [31..0] PORT n, this field indicates the number of Good Frame + * Transmit after single collision. */ + } ASINGLECOLLISIONS_P1_b; + }; + + union + { + __IM uint32_t ALATECOLLISIONS_P1; /*!< (@ 0x00000D1C) Port 1 MAC Late Collision Count Register (n = + * 0 to 3) */ + + struct + { + __IM uint32_t LATECOLLCOUNT : 32; /*!< [31..0] PORT n, this field indicates the number of too Late + * Collision. Frame was aborted and not retransmitted. */ + } ALATECOLLISIONS_P1_b; + }; + + union + { + __IM uint32_t AEXCESSIVECOLLISIONS_P1; /*!< (@ 0x00000D20) Port 1 MAC Excessive Collision Count Register + * (n = 0 to 3) */ + + struct + { + __IM uint32_t EXCCOLLCOUNT : 32; /*!< [31..0] PORT n, this field indicates the number of Frames Discarded + * due to 16 consecutive collisions. */ + } AEXCESSIVECOLLISIONS_P1_b; + }; + + union + { + __IM uint32_t ACARRIERSENSEERRORS_P1; /*!< (@ 0x00000D24) Port 1 MAC Carrier Sense Error Count Register + * (n = 0 to 3) */ + + struct + { + __IM uint32_t CSERRCOUNT : 32; /*!< [31..0] PORT n, increments during Transmission without Collisions + * the PHY Carrier Sense Signal (RX_CRS) dropped or never + * asserted. */ + } ACARRIERSENSEERRORS_P1_b; + }; + __IM uint32_t RESERVED39[182]; + + union + { + __IM uint32_t REV_P2; /*!< (@ 0x00001000) Port 2 MAC Core Revision (n = 0 to 3) */ + + struct + { + __IM uint32_t REV : 32; /*!< [31..0] MAC Core Revision */ + } REV_P2_b; + }; + __IM uint32_t RESERVED40; + + union + { + __IOM uint32_t COMMAND_CONFIG_P2; /*!< (@ 0x00001008) Port 2 Command Configuration Register (n = 0 + * to 3) */ + + struct + { + __IOM uint32_t TX_ENA : 1; /*!< [0..0] Enable/Disable MAC Transmit Path */ + __IOM uint32_t RX_ENA : 1; /*!< [1..1] Enable/Disable MAC Receive Path */ + __IOM uint32_t TDMA_PREBUF_DIS : 1; /*!< [2..2] When set to 1, the MAC does not request a new frame from + * the IMC until the current frame is completed. This can + * cause the IPG between frames to be more than the value + * in TX_IPG_LENGTH. */ + __IOM uint32_t ETH_SPEED : 1; /*!< [3..3] Operation Mode Definition */ + __IM uint32_t PROMIS_EN : 1; /*!< [4..4] Enable/Disable MAC Promiscuous Operation */ + __IM uint32_t PAD_EN : 1; /*!< [5..5] Enable/Disable Frame Padding Remove on Receive */ + uint32_t : 1; + __IM uint32_t PAUSE_FWD : 1; /*!< [7..7] Terminate/Forward Pause Frames */ + __IOM uint32_t PAUSE_IGNORE : 1; /*!< [8..8] Ignore Pause Frame Quanta */ + __IM uint32_t TX_ADDR_INS : 1; /*!< [9..9] Non writable bit, fixed to 0 always. */ + __IOM uint32_t HD_ENA : 1; /*!< [10..10] Enable auto full/half-duplex operation (set to 1) or + * full-duplex only (set to 0). */ + __IOM uint32_t TX_CRC_APPEND : 1; /*!< [11..11] Enable CRC Append on Transmit */ + uint32_t : 1; + __IOM uint32_t SW_RESET : 1; /*!< [13..13] Self Clearing Reset Command Bit */ + uint32_t : 9; + __IOM uint32_t CNTL_FRM_ENA : 1; /*!< [23..23] MAC Control Frame Enable */ + __IOM uint32_t NO_LGTH_CHK : 1; /*!< [24..24] Payload Length Check Disable */ + __IOM uint32_t ENA_10 : 1; /*!< [25..25] This bit has no effect except PHYSPEED bit of STATUS_Pn + * register. */ + __IOM uint32_t EFPI_SELECT : 1; /*!< [26..26] EFPI_SELECT */ + __IOM uint32_t TX_TRUNCATE : 1; /*!< [27..27] TX_TRUNCATE */ + uint32_t : 2; + __IOM uint32_t TIMER_SEL : 1; /*!< [30..30] Selects the default timer to use for timestamping operations + * on transmit and on receive. The value is used when not + * overridden by the PTP auto-response function, pattern matchers + * or force forwarding information in a management tag. */ + uint32_t : 1; + } COMMAND_CONFIG_P2_b; + }; + + union + { + __IOM uint32_t MAC_ADDR_0_P2; /*!< (@ 0x0000100C) Port 2 MAC Address Register 0 (n = 0 to 2) */ + + struct + { + __IOM uint32_t MAC_ADDR : 32; /*!< [31..0] The first 4 bytes of the MAC address of the port. First + * byte is bits [7:0]. The MAC address is used on locally + * generated frames such as pause frames, peer-delay response. */ + } MAC_ADDR_0_P2_b; + }; + + union + { + __IOM uint32_t MAC_ADDR_1_P2; /*!< (@ 0x00001010) Port 2 MAC Address Register 1 (n = 0 to 2) */ + + struct + { + __IOM uint32_t MAC_ADDR : 16; /*!< [15..0] The last 2 bytes of the MAC address of the port. Bits + * [7:0] is the 5th byte and bits [15:8] is the 6th byte. */ + uint32_t : 16; + } MAC_ADDR_1_P2_b; + }; + + union + { + __IOM uint32_t FRM_LENGTH_P2; /*!< (@ 0x00001014) Port 2 Maximum Frame Length Register (n = 0 to + * 3) */ + + struct + { + __IOM uint32_t FRM_LENGTH : 14; /*!< [13..0] Maximum Frame Length */ + uint32_t : 18; + } FRM_LENGTH_P2_b; + }; + + union + { + __IM uint32_t PAUSE_QUANT_P2; /*!< (@ 0x00001018) Port 2 MAC Pause Quanta (n = 0 to 3) */ + + struct + { + __IM uint32_t PAUSE_QUANT : 16; /*!< [15..0] Pause Quanta */ + uint32_t : 16; + } PAUSE_QUANT_P2_b; + }; + + union + { + __IOM uint32_t MAC_LINK_QTRIG_P2; /*!< (@ 0x0000101C) Port 2 Trigger Event Configuration Register (n + * = 0 to 2) */ + + struct + { + __IOM uint32_t PORT_MASK : 4; /*!< [3..0] Per-port Bit Mask */ + uint32_t : 12; + __IOM uint32_t QUEUE_MASK : 8; /*!< [23..16] 1-bit per queue indicating from which queues a frame + * is transmitted from the ports indicated by PORT_MASK. A + * single frame is transmitted per indicated port in PORT_MASK + * among the queues indicated by QUEUE_MASK. */ + uint32_t : 4; + __IOM uint32_t TRIGGERED : 1; /*!< [28..28] When MODE is set to 1, TRIGGERED indicates whether + * a frame was transmitted. When MODE is set to 0, TRIGGERED + * is always 0. This flag clears when the register is written. */ + __IOM uint32_t DLR_MODE : 1; /*!< [29..29] When set to 0, the DLR state machine is ignored. When + * set to 1, the Link Queue Trigger occurs only if the DLR + * state machine is in the NORMAL or FAULT state. */ + __IOM uint32_t MODE : 1; /*!< [30..30] When set to 0, only a single Link_Status frame is generated. + * This is to prevent sending multiple frames due to link + * flapping. */ + __IOM uint32_t ENABLE : 1; /*!< [31..31] Write to 1 to enable the Link Queue Trigger feature. + * When the link status (phy_link) transitions from 1 -> + * 0, a trigger event is generated to the memory controller + * for the ports and queues indicated in PORT_MASK and QUEUE_MASK. */ + } MAC_LINK_QTRIG_P2_b; + }; + __IM uint32_t RESERVED41[4]; + + union + { + __IOM uint32_t PTPCLOCKIDENTITY1_P2; /*!< (@ 0x00001030) Port 2 PTP Clock Identity 1 Register (n = 0 to + * 2) */ + + struct + { + __IOM uint32_t CLK_IDENTITY0 : 8; /*!< [7..0] 20, portIdentity.ClockIdentity[0] */ + __IOM uint32_t CLK_IDENTITY1 : 8; /*!< [15..8] 21, portIdentity.ClockIdentity[1] */ + __IOM uint32_t CLK_IDENTITY2 : 8; /*!< [23..16] 22, portIdentity.ClockIdentity[2] */ + __IOM uint32_t CLK_IDENTITY3 : 8; /*!< [31..24] 23, portIdentity.ClockIdentity[3] */ + } PTPCLOCKIDENTITY1_P2_b; + }; + + union + { + __IOM uint32_t PTPCLOCKIDENTITY2_P2; /*!< (@ 0x00001034) Port 2 PTP Clock Identity 2 Register (n = 0 to + * 2) */ + + struct + { + __IOM uint32_t CLK_IDENTITY4 : 8; /*!< [7..0] 24, portIdentity.ClockIdentity[4] */ + __IOM uint32_t CLK_IDENTITY5 : 8; /*!< [15..8] 25, portIdentity.ClockIdentity[5] */ + __IOM uint32_t CLK_IDENTITY6 : 8; /*!< [23..16] 26, portIdentity.ClockIdentity[6] */ + __IOM uint32_t CLK_IDENTITY7 : 8; /*!< [31..24] 27, portIdentity.ClockIdentity[7] */ + } PTPCLOCKIDENTITY2_P2_b; + }; + + union + { + __IOM uint32_t PTPAUTORESPONSE_P2; /*!< (@ 0x00001038) Port 2 PTP Auto Response Register (n = 0 to 2) */ + + struct + { + __IOM uint32_t ARSP_EN : 1; /*!< [0..0] Auto Response Enable */ + __IOM uint32_t D_TIMER : 1; /*!< [1..1] Default timer to use for auto-response generation */ + uint32_t : 14; + __IOM uint32_t PORTNUM1 : 8; /*!< [23..16] 29, portIdentity.PortNumber[1] (lsb) */ + __IOM uint32_t PORTNUM0 : 8; /*!< [31..24] 28, portIdentity.PortNumber[0] (msb) */ + } PTPAUTORESPONSE_P2_b; + }; + __IM uint32_t RESERVED42; + + union + { + __IOM uint32_t STATUS_P2; /*!< (@ 0x00001040) Port 2 Status Register */ + + struct + { + __IM uint32_t PHYSPEED : 2; /*!< [1..0] Currently Active PHY Interface Speed */ + __IM uint32_t PHYLINK : 1; /*!< [2..2] Link status from PHY interface */ + __IM uint32_t PHYDUPLEX : 1; /*!< [3..3] Duplex status from PHY interface */ + __IOM uint32_t TX_UNDFLW : 1; /*!< [4..4] Indicates that the transmit MAC underflow. This shall + * never occur during normal operation. */ + __IOM uint32_t LK_DST_ERR : 1; /*!< [5..5] Indicates that the L2 destination lookup process failed + * to complete in time before the next frame was received + * at the port. This should never occur under normal operation. + * The cause could be from IPG violations in the received + * frames. */ + __IM uint32_t BR_VERIF_ST : 3; /*!< [8..6] Indicates the current status of the verification according + * to clause 30.14.1.2 of the 802.3br specification */ + uint32_t : 23; + } STATUS_P2_b; + }; + + union + { + __IOM uint32_t TX_IPG_LENGTH_P2; /*!< (@ 0x00001044) Port 2 Transmit IPG Length Register (n = 0 to + * 3) */ + + struct + { + __IOM uint32_t TX_IPG_LENGTH : 5; /*!< [4..0] Define transmit interpacket gap in octets. Allowed values + * are in the range of 8 to 31. */ + uint32_t : 11; + __IOM uint32_t MINRTC3GAP : 5; /*!< [20..16] MINRTC3GAP */ + uint32_t : 11; + } TX_IPG_LENGTH_P2_b; + }; + + union + { + __IOM uint32_t EEE_CTL_STAT_P2; /*!< (@ 0x00001048) Port 2 MAC EEE Functions Control and Status (n + * = 0 to 2) */ + + struct + { + __IOM uint32_t EEE_AUTO : 1; /*!< [0..0] EEE Automatic Mode of Operation */ + __IOM uint32_t LPI_REQ : 1; /*!< [1..1] Request LPI Transmission when MAC Becomes Idle */ + __IOM uint32_t LPI_TXHOLD : 1; /*!< [2..2] MAC Transmission Hold */ + uint32_t : 5; + __IM uint32_t ST_LPI_REQ : 1; /*!< [8..8] Status (real time) of Internal LPI_REQ to the MAC */ + __IM uint32_t ST_LPI_TXHOLD : 1; /*!< [9..9] Status (real time) of Internal LPI_TXHOLD to the MAC */ + __IM uint32_t ST_TXBUSY : 1; /*!< [10..10] Status (real time) if the MAC is currently transmitting. */ + __IM uint32_t ST_TXAVAIL : 1; /*!< [11..11] Status (real time) if the MAC transmit FIFO has data + * available for transmission. */ + __IM uint32_t ST_LPI_IND : 1; /*!< [12..12] Status (real time) of Received LPI */ + uint32_t : 3; + __IM uint32_t STLH_LPI_REQ : 1; /*!< [16..16] Status (latched high) of Internal LPI_REQ to the MAC */ + __IM uint32_t STLH_LPI_TXHOLD : 1; /*!< [17..17] Status (latched high) of Internal LPI_TXHOLD to the + * MAC */ + __IM uint32_t STLH_TXBUSY : 1; /*!< [18..18] Status (latched high) if the MAC is/was Transmitting */ + uint32_t : 1; + __IM uint32_t STLH_LPI_IND : 1; /*!< [20..20] Status (latched high) of Received LPI (ST_LPI_IND) */ + uint32_t : 11; + } EEE_CTL_STAT_P2_b; + }; + + union + { + __IOM uint32_t EEE_IDLE_TIME_P2; /*!< (@ 0x0000104C) Port 2 EEE Idle Time Register (n = 0 to 2) */ + + struct + { + __IOM uint32_t EEE_IDLE_TIME : 32; /*!< [31..0] Time (-1) the transmitter must be idle before transmission + * of LPI begins. A 32-bit value in steps of 32 switch operating + * clock cycles. A value of 0 disables the timer. The value + * must be set to 1 less count. */ + } EEE_IDLE_TIME_P2_b; + }; + + union + { + __IOM uint32_t EEE_TWSYS_TIME_P2; /*!< (@ 0x00001050) Port 2 EEE Wake Up Time Register (n = 0 to 2) */ + + struct + { + __IOM uint32_t EEE_WKUP_TIME : 32; /*!< [31..0] Time (-1) after PHY wakeup until the MAC is allowed + * to begin transmitting the first frame again. A 32-bit value + * in steps of switch operating clock cycles. A value of 0 + * disables the timer. The value must be set to 1 less count. */ + } EEE_TWSYS_TIME_P2_b; + }; + + union + { + __IOM uint32_t IDLE_SLOPE_P2; /*!< (@ 0x00001054) Port 2 MAC Traffic Shaper Bandwidth Control */ + + struct + { + __IOM uint32_t IDLE_SLOPE : 11; /*!< [10..0] Traffic Shaper Bandwidth Control */ + uint32_t : 21; + } IDLE_SLOPE_P2_b; + }; + + union + { + __IOM uint32_t CT_DELAY_P2; /*!< (@ 0x00001058) Port 2 Cut-Through Delay Indication Register */ + + struct + { + __IOM uint32_t CT_DELAY : 9; /*!< [8..0] Delay Value in 400 ns / 40 ns / 8 ns increments (frequency + * of the MII PHY interface) */ + uint32_t : 23; + } CT_DELAY_P2_b; + }; + + union + { + __IOM uint32_t BR_CONTROL_P2; /*!< (@ 0x0000105C) Port 2 802.3br Frame Configuration Register */ + + struct + { + __IOM uint32_t PREEMPT_ENA : 1; /*!< [0..0] When set to 1, enables 802.3br Frame Preemption. */ + __IOM uint32_t VERIFY_DIS : 1; /*!< [1..1] When set to 1, disables the verify process required for + * preemption operation. */ + __IOM uint32_t RESPONSE_DIS : 1; /*!< [2..2] When set to 1 prevents the MAC from responding to "verify" + * frames. */ + uint32_t : 1; + __IOM uint32_t ADDFRAGSIZE : 2; /*!< [5..4] Minimum fragment size in increments of 64 bytes. */ + uint32_t : 2; + __IOM uint32_t TX_VERIFY_TIME : 7; /*!< [14..8] Preemption verification timeout in milliseconds. */ + uint32_t : 1; + __IOM uint32_t RX_STRICT_PRE : 1; /*!< [16..16] When set to 1, the preamble is checked so all bytes + * except the SFD are 0x55. When set to 0, only the last 2 + * bytes of the preamble are checked (SFD/SMD and FRAG_COUNT). + * It is recommended to set this bit to 1 to comply with the + * 802.3br specification. This bit must be set to 0 if only + * non-802.3br traffic is expected (for example, normal Ethernet + * traffic) and if custom preamble is used. */ + __IOM uint32_t RX_BR_SMD_DIS : 1; /*!< [17..17] When set to 1, the receiver does not decode the 802.3br + * SMDs and assumes all frames are express frames. This bit + * must be set to 0 for correct operation with 802.3br, and + * can be set to 1 when 802.3br is not enabled to avoid false + * detection of SMDs. */ + __IOM uint32_t RX_STRICT_BR_CTL : 1; /*!< [18..18] When set to 1, strict checking of VERIFY and RESPONSE + * frames is enabled. When set to 1, the frame contents and + * frame length checks are also performed on these frames. + * The mCRC is always checked regardless of the value of this + * register. This bit must be set to 0 to be compliant with + * the functionality described in IEEE 802.3br. */ + __IOM uint32_t TX_MCRC_INV : 1; /*!< [19..19] When set to 1, the 32-bit XOR mask used to calculate + * the mCRC for transmitted frames is inverted. This bit must + * always be written to 0 and only used for debugging. */ + __IOM uint32_t RX_MCRC_INV : 1; /*!< [20..20] When set to 1, the 32-bit XOR mask used to calculate + * the mCRC for received frames is inverted. This bit must + * always be written to 0 and only used for debugging. */ + uint32_t : 11; + } BR_CONTROL_P2_b; + }; + __IM uint32_t RESERVED43[2]; + + union + { + __IM uint32_t AFRAMESTRANSMITTEDOK_P2; /*!< (@ 0x00001068) Port 2 MAC Transmitted Valid Frame Count Register + * (n = 0 to 3) */ + + struct + { + __IM uint32_t TXVALIDCOUNT : 32; /*!< [31..0] PORT n, this field indicates the number of MAC Valid + * Transmitted, including pause. */ + } AFRAMESTRANSMITTEDOK_P2_b; + }; + + union + { + __IM uint32_t AFRAMESRECEIVEDOK_P2; /*!< (@ 0x0000106C) Port 2 MAC Received Valid Frame Count Register + * (n = 0 to 3) */ + + struct + { + __IM uint32_t RXVALIDCOUNT : 32; /*!< [31..0] PORT n, this field indicates the number of MAC Valid + * Received, including pause. */ + } AFRAMESRECEIVEDOK_P2_b; + }; + + union + { + __IM uint32_t AFRAMECHECKSEQUENCEERRORS_P2; /*!< (@ 0x00001070) Port 2 MAC FCS Error Frame Count Register (n + * = 0 to 3) */ + + struct + { + __IM uint32_t FCSERRCOUNT : 32; /*!< [31..0] PORT n, this field indicates the number of MAC Valid + * Length but CRC error. */ + } AFRAMECHECKSEQUENCEERRORS_P2_b; + }; + + union + { + __IM uint32_t AALIGNMENTERRORS_P2; /*!< (@ 0x00001074) Port 2 MAC Alignment Error Frame Count Register + * (n = 0 to 3) */ + + struct + { + __IM uint32_t ALGNERRCOUNT : 32; /*!< [31..0] PORT n, this field indicates the number of MAC Odd Number + * of Nibbles (MII) Received. */ + } AALIGNMENTERRORS_P2_b; + }; + + union + { + __IM uint32_t AOCTETSTRANSMITTEDOK_P2; /*!< (@ 0x00001078) Port 2 MAC Transmitted Valid Frame Octets Register + * (n = 0 to 3) */ + + struct + { + __IM uint32_t TXVALIDOCTETS : 32; /*!< [31..0] PORT n, this field indicates the octets (the payload + * only) of MAC Valid Transmitted. */ + } AOCTETSTRANSMITTEDOK_P2_b; + }; + + union + { + __IM uint32_t AOCTETSRECEIVEDOK_P2; /*!< (@ 0x0000107C) Port 2 MAC Received Valid Frame Octets Register + * (n = 0 to 3) */ + + struct + { + __IM uint32_t RXVALIDOCTETS : 32; /*!< [31..0] PORT n, this field indicates the octets (the payload + * only) of MAC Valid Received. */ + } AOCTETSRECEIVEDOK_P2_b; + }; + + union + { + __IM uint32_t ATXPAUSEMACCTRLFRAMES_P2; /*!< (@ 0x00001080) Port 2 MAC Transmitted Pause Frame Count Register + * (n = 0 to 3) */ + + struct + { + __IM uint32_t TXPAUSECOUNT : 32; /*!< [31..0] PORT n, this field indicates the number of MAC Valid + * Pause Transmitted. */ + } ATXPAUSEMACCTRLFRAMES_P2_b; + }; + + union + { + __IM uint32_t ARXPAUSEMACCTRLFRAMES_P2; /*!< (@ 0x00001084) Port 2 MAC Received Pause Frame Count Register + * (n = 0 to 3) */ + + struct + { + __IM uint32_t RXPAUSECOUNT : 32; /*!< [31..0] PORT n, this field indicates the number of MAC Valid + * Pause Received. */ + } ARXPAUSEMACCTRLFRAMES_P2_b; + }; + + union + { + __IM uint32_t IFINERRORS_P2; /*!< (@ 0x00001088) Port 2 MAC Input Error Count Register (n = 0 + * to 3) */ + + struct + { + __IM uint32_t INERRCOUNT : 32; /*!< [31..0] PORT n, this field indicates the number of MAC Any Error + * During Reception such as CRC, Length, PHY Error, RX FIFO + * Overflow. */ + } IFINERRORS_P2_b; + }; + + union + { + __IM uint32_t IFOUTERRORS_P2; /*!< (@ 0x0000108C) Port 2 MAC Output Error Count Register (n = 0 + * to 3) */ + + struct + { + __IM uint32_t OUTERRCOUNT : 32; /*!< [31..0] PORT n, this field indicates the number of MAC Frame + * Transmitted with PHY error. */ + } IFOUTERRORS_P2_b; + }; + + union + { + __IM uint32_t IFINUCASTPKTS_P2; /*!< (@ 0x00001090) Port 2 MAC Received Unicast Frame Count Register + * (n = 0 to 3) */ + + struct + { + __IM uint32_t RXUCASTCOUNT : 32; /*!< [31..0] PORT n, this field indicates the number of MAC Unicast + * Frame Valid Received. */ + } IFINUCASTPKTS_P2_b; + }; + + union + { + __IM uint32_t IFINMULTICASTPKTS_P2; /*!< (@ 0x00001094) Port 2 MAC Received Multicast Frame Count Register + * (n = 0 to 3) */ + + struct + { + __IM uint32_t RXMCASTCOUNT : 32; /*!< [31..0] PORT n, this field indicates the number of MAC Multicast + * Frame Valid Received. */ + } IFINMULTICASTPKTS_P2_b; + }; + + union + { + __IM uint32_t IFINBROADCASTPKTS_P2; /*!< (@ 0x00001098) Port 2 MAC Received Broadcast Frame Count Register + * (n = 0 to 3) */ + + struct + { + __IM uint32_t RXBCASTCOUNT : 32; /*!< [31..0] PORT n, this field indicates the number of MAC Broadcast + * Frame Valid Received. */ + } IFINBROADCASTPKTS_P2_b; + }; + + union + { + __IM uint32_t IFOUTDISCARDS_P2; /*!< (@ 0x0000109C) Port 2 MAC Discarded Outbound Frame Count Register + * (n = 0 to 3) */ + + struct + { + __IM uint32_t DISCOBCOUNT : 32; /*!< [31..0] Not Applicable */ + } IFOUTDISCARDS_P2_b; + }; + + union + { + __IM uint32_t IFOUTUCASTPKTS_P2; /*!< (@ 0x000010A0) Port 2 MAC Transmitted Unicast Frame Count Register + * (n = 0 to 3) */ + + struct + { + __IM uint32_t TXUCASTCOUNT : 32; /*!< [31..0] PORT n, this field indicates the number of MAC Unicast + * Frame Valid Transmitted. */ + } IFOUTUCASTPKTS_P2_b; + }; + + union + { + __IM uint32_t IFOUTMULTICASTPKTS_P2; /*!< (@ 0x000010A4) Port 2 MAC Transmitted Multicast Frame Count + * Register (n = 0 to 3) */ + + struct + { + __IM uint32_t TXMCASTCOUNT : 32; /*!< [31..0] PORT n, this field indicates the number of MAC Multicast + * Frame Valid Transmitted. */ + } IFOUTMULTICASTPKTS_P2_b; + }; + + union + { + __IM uint32_t IFOUTBROADCASTPKTS_P2; /*!< (@ 0x000010A8) Port 2 MAC Transmitted Broadcast Frame Count + * Register (n = 0 to 3) */ + + struct + { + __IM uint32_t TXBCASTCOUNT : 32; /*!< [31..0] PORT n, this field indicates the number of MAC Broadcast + * Frame Valid Transmitted. */ + } IFOUTBROADCASTPKTS_P2_b; + }; + + union + { + __IM uint32_t ETHERSTATSDROPEVENTS_P2; /*!< (@ 0x000010AC) Port 2 MAC Dropped Frame Count Register (n = + * 0 to 3) */ + + struct + { + __IM uint32_t DROPCOUNT : 32; /*!< [31..0] PORT n, this field indicates the number of MAC RX FIFO + * Full at frame start. */ + } ETHERSTATSDROPEVENTS_P2_b; + }; + + union + { + __IM uint32_t ETHERSTATSOCTETS_P2; /*!< (@ 0x000010B0) Port 2 MAC All Frame Octets Register (n = 0 to + * 3) */ + + struct + { + __IM uint32_t ALLOCTETS : 32; /*!< [31..0] ALLOCTETS */ + } ETHERSTATSOCTETS_P2_b; + }; + + union + { + __IM uint32_t ETHERSTATSPKTS_P2; /*!< (@ 0x000010B4) Port 2 MAC All Frame Count Register (n = 0 to + * 3) */ + + struct + { + __IM uint32_t ALLCOUNT : 32; /*!< [31..0] ALLCOUNT */ + } ETHERSTATSPKTS_P2_b; + }; + + union + { + __IM uint32_t ETHERSTATSUNDERSIZEPKTS_P2; /*!< (@ 0x000010B8) Port 2 MAC Too Short Frame Count Register (n + * = 0 to 3) */ + + struct + { + __IM uint32_t TOOSHRTCOUNT : 32; /*!< [31..0] PORT n, this field indicates the number of MAC too Short, + * Good CRC. */ + } ETHERSTATSUNDERSIZEPKTS_P2_b; + }; + + union + { + __IM uint32_t ETHERSTATSOVERSIZEPKTS_P2; /*!< (@ 0x000010BC) Port 2 MAC Too Long Frame Count Register (n = + * 0 to 3) */ + + struct + { + __IM uint32_t TOOLONGCOUNT : 32; /*!< [31..0] PORT n, this field indicates the number of MAC too Long, + * Good CRC. */ + } ETHERSTATSOVERSIZEPKTS_P2_b; + }; + + union + { + __IM uint32_t ETHERSTATSPKTS64OCTETS_P2; /*!< (@ 0x000010C0) Port 2 MAC 64 Octets Frame Count Register (n + * = 0 to 3) */ + + struct + { + __IM uint32_t OCTCNT64 : 32; /*!< [31..0] PORT n, this field indicates the number of MAC All Frames, + * Good and Bad (Packet Size: 64 bytes). */ + } ETHERSTATSPKTS64OCTETS_P2_b; + }; + + union + { + __IM uint32_t ETHERSTATSPKTS65TO127OCTETS_P2; /*!< (@ 0x000010C4) Port 2 MAC 65 to 127 Octets Frame Count Register + * (n = 0 to 3) */ + + struct + { + __IM uint32_t OCTCNT65T127 : 32; /*!< [31..0] PORT n, this field indicates the number of MAC All Frames, + * Good and Bad (Packet Size: 65 to 127 bytes). */ + } ETHERSTATSPKTS65TO127OCTETS_P2_b; + }; + + union + { + __IM uint32_t ETHERSTATSPKTS128TO255OCTETS_P2; /*!< (@ 0x000010C8) Port 2 MAC 128 to 255 Octets Frame Count Register + * (n = 0 to 3) */ + + struct + { + __IM uint32_t OCTCNT128T255 : 32; /*!< [31..0] PORT n, this field indicates the number of MAC All Frames, + * Good and Bad (Packet Size: 128 to 255 bytes). */ + } ETHERSTATSPKTS128TO255OCTETS_P2_b; + }; + + union + { + __IM uint32_t ETHERSTATSPKTS256TO511OCTETS_P2; /*!< (@ 0x000010CC) Port 2 MAC 256 to 511 Octets Frame Count Register + * (n = 0 to 3) */ + + struct + { + __IM uint32_t OCTCNT256T511 : 32; /*!< [31..0] PORT n, this field indicates the number of MAC All Frames, + * Good and Bad (Packet Size: 256 to 511 bytes). */ + } ETHERSTATSPKTS256TO511OCTETS_P2_b; + }; + + union + { + __IM uint32_t ETHERSTATSPKTS512TO1023OCTETS_P2; /*!< (@ 0x000010D0) Port 2 MAC 512 to 1023 Octets Frame Count Register + * (n = 0 to 3) */ + + struct + { + __IM uint32_t OCTCNT512T1023 : 32; /*!< [31..0] PORT n, this field indicates the number of MAC All Frames, + * Good and Bad (Packet Size: 512 to 1023 bytes). */ + } ETHERSTATSPKTS512TO1023OCTETS_P2_b; + }; + + union + { + __IM uint32_t ETHERSTATSPKTS1024TO1518OCTETS_P2; /*!< (@ 0x000010D4) Port 2 MAC 1024 to 1518 Octets Frame Count Register + * (n = 0 to 3) */ + + struct + { + __IM uint32_t OCTCNT1024T1518 : 32; /*!< [31..0] PORT n, this field indicates the number of MAC All Frames, + * Good and Bad (Packet Size: 1024 to 1518 bytes). */ + } ETHERSTATSPKTS1024TO1518OCTETS_P2_b; + }; + + union + { + __IM uint32_t ETHERSTATSPKTS1519TOXOCTETS_P2; /*!< (@ 0x000010D8) Port 2 MAC Over 1519 Octets Frame Count Register + * (n = 0 to 3) */ + + struct + { + __IM uint32_t OCTCNT1519TX : 32; /*!< [31..0] PORT n, this field indicates the number of MAC all Frames, + * Good and Bad (Packet Size: over 1519 bytes). */ + } ETHERSTATSPKTS1519TOXOCTETS_P2_b; + }; + + union + { + __IM uint32_t ETHERSTATSJABBERS_P2; /*!< (@ 0x000010DC) Port 2 MAC Jabbers Frame Count Register (n = + * 0 to 3) */ + + struct + { + __IM uint32_t JABBERCOUNT : 32; /*!< [31..0] PORT n, this field indicates the number of MAC too Long, + * Bad CRC. */ + } ETHERSTATSJABBERS_P2_b; + }; + + union + { + __IM uint32_t ETHERSTATSFRAGMENTS_P2; /*!< (@ 0x000010E0) Port 2 MAC Fragment Frame Count Register (n = + * 0 to 3) */ + + struct + { + __IM uint32_t FRAGCOUNT : 32; /*!< [31..0] PORT n, this field indicates the number of MAC too Short, + * Bad CRC. */ + } ETHERSTATSFRAGMENTS_P2_b; + }; + __IM uint32_t RESERVED44; + + union + { + __IM uint32_t VLANRECEIVEDOK_P2; /*!< (@ 0x000010E8) Port 2 MAC Received VLAN Tagged Frame Count Register + * (n = 0 to 3) */ + + struct + { + __IM uint32_t RXVLANTAGCNT : 32; /*!< [31..0] PORT n, this field indicates the number of Good Frames + * with VLAN Tag Received. */ + } VLANRECEIVEDOK_P2_b; + }; + __IM uint32_t RESERVED45[2]; + + union + { + __IM uint32_t VLANTRANSMITTEDOK_P2; /*!< (@ 0x000010F4) Port 2 MAC Transmitted VLAN Tagged Frame Count + * Register (n = 0 to 3) */ + + struct + { + __IM uint32_t TXVLANTAGCNT : 32; /*!< [31..0] PORT n, this field indicates the number of Good Frames + * with VLAN Tag Transmitted. */ + } VLANTRANSMITTEDOK_P2_b; + }; + + union + { + __IM uint32_t FRAMESRETRANSMITTED_P2; /*!< (@ 0x000010F8) Port 2 MAC Retransmitted Frame Count Register + * (n = 0 to 3) */ + + struct + { + __IM uint32_t RETXCOUNT : 32; /*!< [31..0] PORT n, this field indicates the number of Transmitted + * Frames that experienced a collision and were retransmitted. */ + } FRAMESRETRANSMITTED_P2_b; + }; + __IM uint32_t RESERVED46; + + union + { + __IM uint32_t STATS_HIWORD_P2; /*!< (@ 0x00001100) Port 2 MAC Statistics Counter High Word Register + * (n = 0 to 3) */ + + struct + { + __IM uint32_t STATS_HIWORD : 32; /*!< [31..0] The latched upper 32-bit of the 64 bits MAC Statistics + * Counter Last Read */ + } STATS_HIWORD_P2_b; + }; + + union + { + __IOM uint32_t STATS_CTRL_P2; /*!< (@ 0x00001104) Port 2 MAC Statistics Control Register (n = 0 + * to 3) */ + + struct + { + __IOM uint32_t CLRALL : 1; /*!< [0..0] Self Clearing Counter Initialize Command */ + __IM uint32_t CLRBUSY : 1; /*!< [1..1] Clear in Progress Indication */ + uint32_t : 30; + } STATS_CTRL_P2_b; + }; + + union + { + __IOM uint32_t STATS_CLEAR_VALUELO_P2; /*!< (@ 0x00001108) Port 2 MAC Statistics Clear Value Lower Register + * (n = 0 to 3) */ + + struct + { + __IOM uint32_t STATS_CLEAR_VALUELO : 32; /*!< [31..0] PORT n, lower 32-bit of 64 bits value loaded into all + * counters when clearing all counters with STATS_CTRL_Pn.CLRALL + * command for test purposes. These bits should be set to + * 0 normally. */ + } STATS_CLEAR_VALUELO_P2_b; + }; + + union + { + __IOM uint32_t STATS_CLEAR_VALUEHI_P2; /*!< (@ 0x0000110C) Port 2 MAC Statistics Clear Value Higher Register + * (n = 0 to 3) */ + + struct + { + __IOM uint32_t STATS_CLEAR_VALUEHI : 32; /*!< [31..0] PORT n, upper 32-bit of 64 bits value loaded into all + * counters when clearing all counters with STATS_CTRL_Pn.CLRALL + * command for test purposes. These bits should be set to + * 0 normally. */ + } STATS_CLEAR_VALUEHI_P2_b; + }; + + union + { + __IM uint32_t ADEFERRED_P2; /*!< (@ 0x00001110) Port 2 MAC Deferred Count Register (n = 0 to + * 3) */ + + struct + { + __IM uint32_t DEFERCOUNT : 32; /*!< [31..0] PORT n, this field indicates the number of Frame Transmitted + * without collision but was deferred at begin. */ + } ADEFERRED_P2_b; + }; + + union + { + __IM uint32_t AMULTIPLECOLLISIONS_P2; /*!< (@ 0x00001114) Port 2 MAC Multiple Collision Count Register + * (n = 0 to 3) */ + + struct + { + __IM uint32_t COUNTAFTMLTCOLL : 32; /*!< [31..0] PORT n, this field indicates the number of Good Frame + * Transmit after multiple collisions. */ + } AMULTIPLECOLLISIONS_P2_b; + }; + + union + { + __IM uint32_t ASINGLECOLLISIONS_P2; /*!< (@ 0x00001118) Port 2 MAC Single Collision Count Register (n + * = 0 to 3) */ + + struct + { + __IM uint32_t COUNTAFTSNGLCOLL : 32; /*!< [31..0] PORT n, this field indicates the number of Good Frame + * Transmit after single collision. */ + } ASINGLECOLLISIONS_P2_b; + }; + + union + { + __IM uint32_t ALATECOLLISIONS_P2; /*!< (@ 0x0000111C) Port 2 MAC Late Collision Count Register (n = + * 0 to 3) */ + + struct + { + __IM uint32_t LATECOLLCOUNT : 32; /*!< [31..0] PORT n, this field indicates the number of too Late + * Collision. Frame was aborted and not retransmitted. */ + } ALATECOLLISIONS_P2_b; + }; + + union + { + __IM uint32_t AEXCESSIVECOLLISIONS_P2; /*!< (@ 0x00001120) Port 2 MAC Excessive Collision Count Register + * (n = 0 to 3) */ + + struct + { + __IM uint32_t EXCCOLLCOUNT : 32; /*!< [31..0] PORT n, this field indicates the number of Frames Discarded + * due to 16 consecutive collisions. */ + } AEXCESSIVECOLLISIONS_P2_b; + }; + + union + { + __IM uint32_t ACARRIERSENSEERRORS_P2; /*!< (@ 0x00001124) Port 2 MAC Carrier Sense Error Count Register + * (n = 0 to 3) */ + + struct + { + __IM uint32_t CSERRCOUNT : 32; /*!< [31..0] PORT n, increments during Transmission without Collisions + * the PHY Carrier Sense Signal (RX_CRS) dropped or never + * asserted. */ + } ACARRIERSENSEERRORS_P2_b; + }; + __IM uint32_t RESERVED47[182]; + + union + { + __IM uint32_t REV_P3; /*!< (@ 0x00001400) Port 3 MAC Core Revision (n = 0 to 3) */ + + struct + { + __IM uint32_t REV : 32; /*!< [31..0] MAC Core Revision */ + } REV_P3_b; + }; + __IM uint32_t RESERVED48; + + union + { + __IOM uint32_t COMMAND_CONFIG_P3; /*!< (@ 0x00001408) Port 3 Command Configuration Register (n = 0 + * to 3) */ + + struct + { + __IOM uint32_t TX_ENA : 1; /*!< [0..0] Enable/Disable MAC Transmit Path */ + __IOM uint32_t RX_ENA : 1; /*!< [1..1] Enable/Disable MAC Receive Path */ + __IOM uint32_t TDMA_PREBUF_DIS : 1; /*!< [2..2] When set to 1, the MAC does not request a new frame from + * the IMC until the current frame is completed. This can + * cause the IPG between frames to be more than the value + * in TX_IPG_LENGTH. */ + __IOM uint32_t ETH_SPEED : 1; /*!< [3..3] Operation Mode Definition */ + __IM uint32_t PROMIS_EN : 1; /*!< [4..4] Enable/Disable MAC Promiscuous Operation */ + __IM uint32_t PAD_EN : 1; /*!< [5..5] Enable/Disable Frame Padding Remove on Receive */ + uint32_t : 1; + __IM uint32_t PAUSE_FWD : 1; /*!< [7..7] Terminate/Forward Pause Frames */ + __IOM uint32_t PAUSE_IGNORE : 1; /*!< [8..8] Ignore Pause Frame Quanta */ + __IM uint32_t TX_ADDR_INS : 1; /*!< [9..9] Non writable bit, fixed to 0 always. */ + __IOM uint32_t HD_ENA : 1; /*!< [10..10] Enable auto full/half-duplex operation (set to 1) or + * full-duplex only (set to 0). */ + __IOM uint32_t TX_CRC_APPEND : 1; /*!< [11..11] Enable CRC Append on Transmit */ + uint32_t : 1; + __IOM uint32_t SW_RESET : 1; /*!< [13..13] Self Clearing Reset Command Bit */ + uint32_t : 9; + __IOM uint32_t CNTL_FRM_ENA : 1; /*!< [23..23] MAC Control Frame Enable */ + __IOM uint32_t NO_LGTH_CHK : 1; /*!< [24..24] Payload Length Check Disable */ + __IOM uint32_t ENA_10 : 1; /*!< [25..25] This bit has no effect except PHYSPEED bit of STATUS_Pn + * register. */ + __IOM uint32_t EFPI_SELECT : 1; /*!< [26..26] EFPI_SELECT */ + __IOM uint32_t TX_TRUNCATE : 1; /*!< [27..27] TX_TRUNCATE */ + uint32_t : 2; + __IOM uint32_t TIMER_SEL : 1; /*!< [30..30] Selects the default timer to use for timestamping operations + * on transmit and on receive. The value is used when not + * overridden by the PTP auto-response function, pattern matchers + * or force forwarding information in a management tag. */ + uint32_t : 1; + } COMMAND_CONFIG_P3_b; + }; + __IM uint32_t RESERVED49[2]; + + union + { + __IOM uint32_t FRM_LENGTH_P3; /*!< (@ 0x00001414) Port 3 Maximum Frame Length Register (n = 0 to + * 3) */ + + struct + { + __IOM uint32_t FRM_LENGTH : 14; /*!< [13..0] Maximum Frame Length */ + uint32_t : 18; + } FRM_LENGTH_P3_b; + }; + + union + { + __IM uint32_t PAUSE_QUANT_P3; /*!< (@ 0x00001418) Port 3 MAC Pause Quanta (n = 0 to 3) */ + + struct + { + __IM uint32_t PAUSE_QUANT : 16; /*!< [15..0] Pause Quanta */ + uint32_t : 16; + } PAUSE_QUANT_P3_b; + }; + __IM uint32_t RESERVED50[9]; + + union + { + __IOM uint32_t STATUS_P3; /*!< (@ 0x00001440) Port 3 Status Register */ + + struct + { + __IM uint32_t PHYSPEED : 2; /*!< [1..0] Currently Active PHY Interface Speed */ + __IM uint32_t PHYLINK : 1; /*!< [2..2] Link status from PHY interface */ + __IM uint32_t PHYDUPLEX : 1; /*!< [3..3] Duplex status from PHY interface */ + __IOM uint32_t TX_UNDFLW : 1; /*!< [4..4] Indicates that the transmit MAC underflow. This shall + * never occur during normal operation. */ + __IOM uint32_t LK_DST_ERR : 1; /*!< [5..5] Indicates that the L2 destination lookup process failed + * to complete in time before the next frame was received + * at the port. This should never occur under normal operation. + * The cause could be from IPG violations in the received + * frames. */ + __IM uint32_t BR_VERIF_ST : 3; /*!< [8..6] Indicates the current status of the verification according + * to clause 30.14.1.2 of the 802.3br specification */ + uint32_t : 23; + } STATUS_P3_b; + }; + + union + { + __IOM uint32_t TX_IPG_LENGTH_P3; /*!< (@ 0x00001444) Port 3 Transmit IPG Length Register (n = 0 to + * 3) */ + + struct + { + __IOM uint32_t TX_IPG_LENGTH : 5; /*!< [4..0] Define transmit interpacket gap in octets. Allowed values + * are in the range of 8 to 31. */ + uint32_t : 11; + __IOM uint32_t MINRTC3GAP : 5; /*!< [20..16] MINRTC3GAP */ + uint32_t : 11; + } TX_IPG_LENGTH_P3_b; + }; + __IM uint32_t RESERVED51[3]; + + union + { + __IOM uint32_t IDLE_SLOPE_P3; /*!< (@ 0x00001454) Port 3 MAC Traffic Shaper Bandwidth Control */ + + struct + { + __IOM uint32_t IDLE_SLOPE : 11; /*!< [10..0] Traffic Shaper Bandwidth Control */ + uint32_t : 21; + } IDLE_SLOPE_P3_b; + }; + __IM uint32_t RESERVED52[4]; + + union + { + __IM uint32_t AFRAMESTRANSMITTEDOK_P3; /*!< (@ 0x00001468) Port 3 MAC Transmitted Valid Frame Count Register + * (n = 0 to 3) */ + + struct + { + __IM uint32_t TXVALIDCOUNT : 32; /*!< [31..0] PORT n, this field indicates the number of MAC Valid + * Transmitted, including pause. */ + } AFRAMESTRANSMITTEDOK_P3_b; + }; + + union + { + __IM uint32_t AFRAMESRECEIVEDOK_P3; /*!< (@ 0x0000146C) Port 3 MAC Received Valid Frame Count Register + * (n = 0 to 3) */ + + struct + { + __IM uint32_t RXVALIDCOUNT : 32; /*!< [31..0] PORT n, this field indicates the number of MAC Valid + * Received, including pause. */ + } AFRAMESRECEIVEDOK_P3_b; + }; + + union + { + __IM uint32_t AFRAMECHECKSEQUENCEERRORS_P3; /*!< (@ 0x00001470) Port 3 MAC FCS Error Frame Count Register (n + * = 0 to 3) */ + + struct + { + __IM uint32_t FCSERRCOUNT : 32; /*!< [31..0] PORT n, this field indicates the number of MAC Valid + * Length but CRC error. */ + } AFRAMECHECKSEQUENCEERRORS_P3_b; + }; + + union + { + __IM uint32_t AALIGNMENTERRORS_P3; /*!< (@ 0x00001474) Port 3 MAC Alignment Error Frame Count Register + * (n = 0 to 3) */ + + struct + { + __IM uint32_t ALGNERRCOUNT : 32; /*!< [31..0] PORT n, this field indicates the number of MAC Odd Number + * of Nibbles (MII) Received. */ + } AALIGNMENTERRORS_P3_b; + }; + + union + { + __IM uint32_t AOCTETSTRANSMITTEDOK_P3; /*!< (@ 0x00001478) Port 3 MAC Transmitted Valid Frame Octets Register + * (n = 0 to 3) */ + + struct + { + __IM uint32_t TXVALIDOCTETS : 32; /*!< [31..0] PORT n, this field indicates the octets (the payload + * only) of MAC Valid Transmitted. */ + } AOCTETSTRANSMITTEDOK_P3_b; + }; + + union + { + __IM uint32_t AOCTETSRECEIVEDOK_P3; /*!< (@ 0x0000147C) Port 3 MAC Received Valid Frame Octets Register + * (n = 0 to 3) */ + + struct + { + __IM uint32_t RXVALIDOCTETS : 32; /*!< [31..0] PORT n, this field indicates the octets (the payload + * only) of MAC Valid Received. */ + } AOCTETSRECEIVEDOK_P3_b; + }; + + union + { + __IM uint32_t ATXPAUSEMACCTRLFRAMES_P3; /*!< (@ 0x00001480) Port 3 MAC Transmitted Pause Frame Count Register + * (n = 0 to 3) */ + + struct + { + __IM uint32_t TXPAUSECOUNT : 32; /*!< [31..0] PORT n, this field indicates the number of MAC Valid + * Pause Transmitted. */ + } ATXPAUSEMACCTRLFRAMES_P3_b; + }; + + union + { + __IM uint32_t ARXPAUSEMACCTRLFRAMES_P3; /*!< (@ 0x00001484) Port 3 MAC Received Pause Frame Count Register + * (n = 0 to 3) */ + + struct + { + __IM uint32_t RXPAUSECOUNT : 32; /*!< [31..0] PORT n, this field indicates the number of MAC Valid + * Pause Received. */ + } ARXPAUSEMACCTRLFRAMES_P3_b; + }; + + union + { + __IM uint32_t IFINERRORS_P3; /*!< (@ 0x00001488) Port 3 MAC Input Error Count Register (n = 0 + * to 3) */ + + struct + { + __IM uint32_t INERRCOUNT : 32; /*!< [31..0] PORT n, this field indicates the number of MAC Any Error + * During Reception such as CRC, Length, PHY Error, RX FIFO + * Overflow. */ + } IFINERRORS_P3_b; + }; + + union + { + __IM uint32_t IFOUTERRORS_P3; /*!< (@ 0x0000148C) Port 3 MAC Output Error Count Register (n = 0 + * to 3) */ + + struct + { + __IM uint32_t OUTERRCOUNT : 32; /*!< [31..0] PORT n, this field indicates the number of MAC Frame + * Transmitted with PHY error. */ + } IFOUTERRORS_P3_b; + }; + + union + { + __IM uint32_t IFINUCASTPKTS_P3; /*!< (@ 0x00001490) Port 3 MAC Received Unicast Frame Count Register + * (n = 0 to 3) */ + + struct + { + __IM uint32_t RXUCASTCOUNT : 32; /*!< [31..0] PORT n, this field indicates the number of MAC Unicast + * Frame Valid Received. */ + } IFINUCASTPKTS_P3_b; + }; + + union + { + __IM uint32_t IFINMULTICASTPKTS_P3; /*!< (@ 0x00001494) Port 3 MAC Received Multicast Frame Count Register + * (n = 0 to 3) */ + + struct + { + __IM uint32_t RXMCASTCOUNT : 32; /*!< [31..0] PORT n, this field indicates the number of MAC Multicast + * Frame Valid Received. */ + } IFINMULTICASTPKTS_P3_b; + }; + + union + { + __IM uint32_t IFINBROADCASTPKTS_P3; /*!< (@ 0x00001498) Port 3 MAC Received Broadcast Frame Count Register + * (n = 0 to 3) */ + + struct + { + __IM uint32_t RXBCASTCOUNT : 32; /*!< [31..0] PORT n, this field indicates the number of MAC Broadcast + * Frame Valid Received. */ + } IFINBROADCASTPKTS_P3_b; + }; + + union + { + __IM uint32_t IFOUTDISCARDS_P3; /*!< (@ 0x0000149C) Port 3 MAC Discarded Outbound Frame Count Register + * (n = 0 to 3) */ + + struct + { + __IM uint32_t DISCOBCOUNT : 32; /*!< [31..0] Not Applicable */ + } IFOUTDISCARDS_P3_b; + }; + + union + { + __IM uint32_t IFOUTUCASTPKTS_P3; /*!< (@ 0x000014A0) Port 3 MAC Transmitted Unicast Frame Count Register + * (n = 0 to 3) */ + + struct + { + __IM uint32_t TXUCASTCOUNT : 32; /*!< [31..0] PORT n, this field indicates the number of MAC Unicast + * Frame Valid Transmitted. */ + } IFOUTUCASTPKTS_P3_b; + }; + + union + { + __IM uint32_t IFOUTMULTICASTPKTS_P3; /*!< (@ 0x000014A4) Port 3 MAC Transmitted Multicast Frame Count + * Register (n = 0 to 3) */ + + struct + { + __IM uint32_t TXMCASTCOUNT : 32; /*!< [31..0] PORT n, this field indicates the number of MAC Multicast + * Frame Valid Transmitted. */ + } IFOUTMULTICASTPKTS_P3_b; + }; + + union + { + __IM uint32_t IFOUTBROADCASTPKTS_P3; /*!< (@ 0x000014A8) Port 3 MAC Transmitted Broadcast Frame Count + * Register (n = 0 to 3) */ + + struct + { + __IM uint32_t TXBCASTCOUNT : 32; /*!< [31..0] PORT n, this field indicates the number of MAC Broadcast + * Frame Valid Transmitted. */ + } IFOUTBROADCASTPKTS_P3_b; + }; + + union + { + __IM uint32_t ETHERSTATSDROPEVENTS_P3; /*!< (@ 0x000014AC) Port 3 MAC Dropped Frame Count Register (n = + * 0 to 3) */ + + struct + { + __IM uint32_t DROPCOUNT : 32; /*!< [31..0] PORT n, this field indicates the number of MAC RX FIFO + * Full at frame start. */ + } ETHERSTATSDROPEVENTS_P3_b; + }; + + union + { + __IM uint32_t ETHERSTATSOCTETS_P3; /*!< (@ 0x000014B0) Port 3 MAC All Frame Octets Register (n = 0 to + * 3) */ + + struct + { + __IM uint32_t ALLOCTETS : 32; /*!< [31..0] ALLOCTETS */ + } ETHERSTATSOCTETS_P3_b; + }; + + union + { + __IM uint32_t ETHERSTATSPKTS_P3; /*!< (@ 0x000014B4) Port 3 MAC All Frame Count Register (n = 0 to + * 3) */ + + struct + { + __IM uint32_t ALLCOUNT : 32; /*!< [31..0] ALLCOUNT */ + } ETHERSTATSPKTS_P3_b; + }; + + union + { + __IM uint32_t ETHERSTATSUNDERSIZEPKTS_P3; /*!< (@ 0x000014B8) Port 3 MAC Too Short Frame Count Register (n + * = 0 to 3) */ + + struct + { + __IM uint32_t TOOSHRTCOUNT : 32; /*!< [31..0] PORT n, this field indicates the number of MAC too Short, + * Good CRC. */ + } ETHERSTATSUNDERSIZEPKTS_P3_b; + }; + + union + { + __IM uint32_t ETHERSTATSOVERSIZEPKTS_P3; /*!< (@ 0x000014BC) Port 3 MAC Too Long Frame Count Register (n = + * 0 to 3) */ + + struct + { + __IM uint32_t TOOLONGCOUNT : 32; /*!< [31..0] PORT n, this field indicates the number of MAC too Long, + * Good CRC. */ + } ETHERSTATSOVERSIZEPKTS_P3_b; + }; + + union + { + __IM uint32_t ETHERSTATSPKTS64OCTETS_P3; /*!< (@ 0x000014C0) Port 3 MAC 64 Octets Frame Count Register (n + * = 0 to 3) */ + + struct + { + __IM uint32_t OCTCNT64 : 32; /*!< [31..0] PORT n, this field indicates the number of MAC All Frames, + * Good and Bad (Packet Size: 64 bytes). */ + } ETHERSTATSPKTS64OCTETS_P3_b; + }; + + union + { + __IM uint32_t ETHERSTATSPKTS65TO127OCTETS_P3; /*!< (@ 0x000014C4) Port 3 MAC 65 to 127 Octets Frame Count Register + * (n = 0 to 3) */ + + struct + { + __IM uint32_t OCTCNT65T127 : 32; /*!< [31..0] PORT n, this field indicates the number of MAC All Frames, + * Good and Bad (Packet Size: 65 to 127 bytes). */ + } ETHERSTATSPKTS65TO127OCTETS_P3_b; + }; + + union + { + __IM uint32_t ETHERSTATSPKTS128TO255OCTETS_P3; /*!< (@ 0x000014C8) Port 3 MAC 128 to 255 Octets Frame Count Register + * (n = 0 to 3) */ + + struct + { + __IM uint32_t OCTCNT128T255 : 32; /*!< [31..0] PORT n, this field indicates the number of MAC All Frames, + * Good and Bad (Packet Size: 128 to 255 bytes). */ + } ETHERSTATSPKTS128TO255OCTETS_P3_b; + }; + + union + { + __IM uint32_t ETHERSTATSPKTS256TO511OCTETS_P3; /*!< (@ 0x000014CC) Port 3 MAC 256 to 511 Octets Frame Count Register + * (n = 0 to 3) */ + + struct + { + __IM uint32_t OCTCNT256T511 : 32; /*!< [31..0] PORT n, this field indicates the number of MAC All Frames, + * Good and Bad (Packet Size: 256 to 511 bytes). */ + } ETHERSTATSPKTS256TO511OCTETS_P3_b; + }; + + union + { + __IM uint32_t ETHERSTATSPKTS512TO1023OCTETS_P3; /*!< (@ 0x000014D0) Port 3 MAC 512 to 1023 Octets Frame Count Register + * (n = 0 to 3) */ + + struct + { + __IM uint32_t OCTCNT512T1023 : 32; /*!< [31..0] PORT n, this field indicates the number of MAC All Frames, + * Good and Bad (Packet Size: 512 to 1023 bytes). */ + } ETHERSTATSPKTS512TO1023OCTETS_P3_b; + }; + + union + { + __IM uint32_t ETHERSTATSPKTS1024TO1518OCTETS_P3; /*!< (@ 0x000014D4) Port 3 MAC 1024 to 1518 Octets Frame Count Register + * (n = 0 to 3) */ + + struct + { + __IM uint32_t OCTCNT1024T1518 : 32; /*!< [31..0] PORT n, this field indicates the number of MAC All Frames, + * Good and Bad (Packet Size: 1024 to 1518 bytes). */ + } ETHERSTATSPKTS1024TO1518OCTETS_P3_b; + }; + + union + { + __IM uint32_t ETHERSTATSPKTS1519TOXOCTETS_P3; /*!< (@ 0x000014D8) Port 3 MAC Over 1519 Octets Frame Count Register + * (n = 0 to 3) */ + + struct + { + __IM uint32_t OCTCNT1519TX : 32; /*!< [31..0] PORT n, this field indicates the number of MAC all Frames, + * Good and Bad (Packet Size: over 1519 bytes). */ + } ETHERSTATSPKTS1519TOXOCTETS_P3_b; + }; + + union + { + __IM uint32_t ETHERSTATSJABBERS_P3; /*!< (@ 0x000014DC) Port 3 MAC Jabbers Frame Count Register (n = + * 0 to 3) */ + + struct + { + __IM uint32_t JABBERCOUNT : 32; /*!< [31..0] PORT n, this field indicates the number of MAC too Long, + * Bad CRC. */ + } ETHERSTATSJABBERS_P3_b; + }; + + union + { + __IM uint32_t ETHERSTATSFRAGMENTS_P3; /*!< (@ 0x000014E0) Port 3 MAC Fragment Frame Count Register (n = + * 0 to 3) */ + + struct + { + __IM uint32_t FRAGCOUNT : 32; /*!< [31..0] PORT n, this field indicates the number of MAC too Short, + * Bad CRC. */ + } ETHERSTATSFRAGMENTS_P3_b; + }; + __IM uint32_t RESERVED53; + + union + { + __IM uint32_t VLANRECEIVEDOK_P3; /*!< (@ 0x000014E8) Port 3 MAC Received VLAN Tagged Frame Count Register + * (n = 0 to 3) */ + + struct + { + __IM uint32_t RXVLANTAGCNT : 32; /*!< [31..0] PORT n, this field indicates the number of Good Frames + * with VLAN Tag Received. */ + } VLANRECEIVEDOK_P3_b; + }; + __IM uint32_t RESERVED54[2]; + + union + { + __IM uint32_t VLANTRANSMITTEDOK_P3; /*!< (@ 0x000014F4) Port 3 MAC Transmitted VLAN Tagged Frame Count + * Register (n = 0 to 3) */ + + struct + { + __IM uint32_t TXVLANTAGCNT : 32; /*!< [31..0] PORT n, this field indicates the number of Good Frames + * with VLAN Tag Transmitted. */ + } VLANTRANSMITTEDOK_P3_b; + }; + + union + { + __IM uint32_t FRAMESRETRANSMITTED_P3; /*!< (@ 0x000014F8) Port 3 MAC Retransmitted Frame Count Register + * (n = 0 to 3) */ + + struct + { + __IM uint32_t RETXCOUNT : 32; /*!< [31..0] PORT n, this field indicates the number of Transmitted + * Frames that experienced a collision and were retransmitted. */ + } FRAMESRETRANSMITTED_P3_b; + }; + __IM uint32_t RESERVED55; + + union + { + __IM uint32_t STATS_HIWORD_P3; /*!< (@ 0x00001500) Port 3 MAC Statistics Counter High Word Register + * (n = 0 to 3) */ + + struct + { + __IM uint32_t STATS_HIWORD : 32; /*!< [31..0] The latched upper 32-bit of the 64 bits MAC Statistics + * Counter Last Read */ + } STATS_HIWORD_P3_b; + }; + + union + { + __IOM uint32_t STATS_CTRL_P3; /*!< (@ 0x00001504) Port 3 MAC Statistics Control Register (n = 0 + * to 3) */ + + struct + { + __IOM uint32_t CLRALL : 1; /*!< [0..0] Self Clearing Counter Initialize Command */ + __IM uint32_t CLRBUSY : 1; /*!< [1..1] Clear in Progress Indication */ + uint32_t : 30; + } STATS_CTRL_P3_b; + }; + + union + { + __IOM uint32_t STATS_CLEAR_VALUELO_P3; /*!< (@ 0x00001508) Port 3 MAC Statistics Clear Value Lower Register + * (n = 0 to 3) */ + + struct + { + __IOM uint32_t STATS_CLEAR_VALUELO : 32; /*!< [31..0] PORT n, lower 32-bit of 64 bits value loaded into all + * counters when clearing all counters with STATS_CTRL_Pn.CLRALL + * command for test purposes. These bits should be set to + * 0 normally. */ + } STATS_CLEAR_VALUELO_P3_b; + }; + + union + { + __IOM uint32_t STATS_CLEAR_VALUEHI_P3; /*!< (@ 0x0000150C) Port 3 MAC Statistics Clear Value Higher Register + * (n = 0 to 3) */ + + struct + { + __IOM uint32_t STATS_CLEAR_VALUEHI : 32; /*!< [31..0] PORT n, upper 32-bit of 64 bits value loaded into all + * counters when clearing all counters with STATS_CTRL_Pn.CLRALL + * command for test purposes. These bits should be set to + * 0 normally. */ + } STATS_CLEAR_VALUEHI_P3_b; + }; + + union + { + __IM uint32_t ADEFERRED_P3; /*!< (@ 0x00001510) Port 3 MAC Deferred Count Register (n = 0 to + * 3) */ + + struct + { + __IM uint32_t DEFERCOUNT : 32; /*!< [31..0] PORT n, this field indicates the number of Frame Transmitted + * without collision but was deferred at begin. */ + } ADEFERRED_P3_b; + }; + + union + { + __IM uint32_t AMULTIPLECOLLISIONS_P3; /*!< (@ 0x00001514) Port 3 MAC Multiple Collision Count Register + * (n = 0 to 3) */ + + struct + { + __IM uint32_t COUNTAFTMLTCOLL : 32; /*!< [31..0] PORT n, this field indicates the number of Good Frame + * Transmit after multiple collisions. */ + } AMULTIPLECOLLISIONS_P3_b; + }; + + union + { + __IM uint32_t ASINGLECOLLISIONS_P3; /*!< (@ 0x00001518) Port 3 MAC Single Collision Count Register (n + * = 0 to 3) */ + + struct + { + __IM uint32_t COUNTAFTSNGLCOLL : 32; /*!< [31..0] PORT n, this field indicates the number of Good Frame + * Transmit after single collision. */ + } ASINGLECOLLISIONS_P3_b; + }; + + union + { + __IM uint32_t ALATECOLLISIONS_P3; /*!< (@ 0x0000151C) Port 3 MAC Late Collision Count Register (n = + * 0 to 3) */ + + struct + { + __IM uint32_t LATECOLLCOUNT : 32; /*!< [31..0] PORT n, this field indicates the number of too Late + * Collision. Frame was aborted and not retransmitted. */ + } ALATECOLLISIONS_P3_b; + }; + + union + { + __IM uint32_t AEXCESSIVECOLLISIONS_P3; /*!< (@ 0x00001520) Port 3 MAC Excessive Collision Count Register + * (n = 0 to 3) */ + + struct + { + __IM uint32_t EXCCOLLCOUNT : 32; /*!< [31..0] PORT n, this field indicates the number of Frames Discarded + * due to 16 consecutive collisions. */ + } AEXCESSIVECOLLISIONS_P3_b; + }; + + union + { + __IM uint32_t ACARRIERSENSEERRORS_P3; /*!< (@ 0x00001524) Port 3 MAC Carrier Sense Error Count Register + * (n = 0 to 3) */ + + struct + { + __IM uint32_t CSERRCOUNT : 32; /*!< [31..0] PORT n, increments during Transmission without Collisions + * the PHY Carrier Sense Signal (RX_CRS) dropped or never + * asserted. */ + } ACARRIERSENSEERRORS_P3_b; + }; + __IM uint32_t RESERVED56[694]; + + union + { + __IOM uint32_t P0_QSTMACU0; /*!< (@ 0x00002000) Qci Stream Filter Table MAC Address Upper Part */ + + struct + { + __IOM uint32_t MACA : 16; /*!< [15..0] Qci stream filter table MAC address[47:32] */ + __IOM uint32_t DASA : 1; /*!< [16..16] MAC address (MACA) select */ + uint32_t : 15; + } P0_QSTMACU0_b; + }; + + union + { + __IOM uint32_t P0_QSTMACD0; /*!< (@ 0x00002004) Qci Stream Filter Table MAC Address Downer Part */ + + struct + { + __IOM uint32_t MACA : 32; /*!< [31..0] Qci stream filter table MAC address[31:0] */ + } P0_QSTMACD0_b; + }; + + union + { + __IOM uint32_t P0_QSTMAMU0; /*!< (@ 0x00002008) Qci Stream Filter Table MAC Address Mask Upper + * Part */ + + struct + { + __IOM uint32_t MACAM : 16; /*!< [15..0] Qci stream filter table MAC address bit mask[47:32] */ + uint32_t : 16; + } P0_QSTMAMU0_b; + }; + + union + { + __IOM uint32_t P0_QSTMAMD0; /*!< (@ 0x0000200C) Qci Stream Filter Table MAC Address Mask Downer + * Part */ + + struct + { + __IOM uint32_t MACAM : 32; /*!< [31..0] Qci stream filter table MAC address bit mask[31:0] */ + } P0_QSTMAMD0_b; + }; + + union + { + __IOM uint32_t P0_QSFTVL0; /*!< (@ 0x00002010) Qci Stream Filter Table VLAN */ + + struct + { + __IOM uint32_t VLANID : 12; /*!< [11..0] VLANID */ + __IOM uint32_t DEI : 1; /*!< [12..12] DEI */ + __IOM uint32_t PCP : 3; /*!< [15..13] PCP */ + __IOM uint32_t TAGMD : 2; /*!< [17..16] TAGMD */ + uint32_t : 14; + } P0_QSFTVL0_b; + }; + + union + { + __IOM uint32_t P0_QSFTVLM0; /*!< (@ 0x00002014) Qci Stream Filter Table VLAN Mask */ + + struct + { + __IOM uint32_t VLANIDM : 12; /*!< [11..0] Qci stream filter table VLAN ID[11:0] bit mask */ + __IOM uint32_t DEIM : 1; /*!< [12..12] DEIM */ + __IOM uint32_t PCPM : 3; /*!< [15..13] Qci stream filter table VLAN PCP[2:0] bit mask */ + uint32_t : 16; + } P0_QSFTVLM0_b; + }; + + union + { + __IOM uint32_t P0_QSFTBL0; /*!< (@ 0x00002018) Qci Stream Filter Table SDU/Gate/Meter ID */ + + struct + { + __IOM uint32_t QSTE : 1; /*!< [0..0] QSTE */ + uint32_t : 3; + __IOM uint32_t GAID : 3; /*!< [6..4] GAID */ + __IOM uint32_t GAIDV : 1; /*!< [7..7] GAIDV */ + __IOM uint32_t MEID : 3; /*!< [10..8] MEID */ + uint32_t : 1; + __IOM uint32_t MEIDV : 1; /*!< [12..12] MEIDV */ + uint32_t : 3; + __IOM uint32_t MSDU : 11; /*!< [26..16] Qci stream filter table max SDU size */ + __IOM uint32_t MSDUE : 1; /*!< [27..27] MSDUE */ + __IOM uint32_t QSMSM : 1; /*!< [28..28] Qci stream MSDU mode */ + uint32_t : 3; + } P0_QSFTBL0_b; + }; + + union + { + __IM uint32_t P0_QSMFC0; /*!< (@ 0x0000201C) Qci Stream Match Packet Count */ + + struct + { + __IM uint32_t QSMFC : 16; /*!< [15..0] Qci stream match packet count */ + uint32_t : 16; + } P0_QSMFC0_b; + }; + + union + { + __IM uint32_t P0_QMSPPC0; /*!< (@ 0x00002020) Qci MSDU Passed Packet Count */ + + struct + { + __IM uint32_t QMSPPC : 16; /*!< [15..0] Qci msdu passed packet count */ + uint32_t : 16; + } P0_QMSPPC0_b; + }; + + union + { + __IM uint32_t P0_QMSRPC0; /*!< (@ 0x00002024) Qci MSDU Reject Packet Count */ + + struct + { + __IM uint32_t QMSRPC : 16; /*!< [15..0] Qci MSDU rejected packet count */ + uint32_t : 16; + } P0_QMSRPC0_b; + }; + + union + { + __IOM uint32_t P0_QSTMACU1; /*!< (@ 0x00002028) Qci Stream Filter Table MAC Address Upper Part */ + + struct + { + __IOM uint32_t MACA : 16; /*!< [15..0] Qci stream filter table MAC address[47:32] */ + __IOM uint32_t DASA : 1; /*!< [16..16] MAC address (MACA) select */ + uint32_t : 15; + } P0_QSTMACU1_b; + }; + + union + { + __IOM uint32_t P0_QSTMACD1; /*!< (@ 0x0000202C) Qci Stream Filter Table MAC Address Downer Part */ + + struct + { + __IOM uint32_t MACA : 32; /*!< [31..0] Qci stream filter table MAC address[31:0] */ + } P0_QSTMACD1_b; + }; + + union + { + __IOM uint32_t P0_QSTMAMU1; /*!< (@ 0x00002030) Qci Stream Filter Table MAC Address Mask Upper + * Part */ + + struct + { + __IOM uint32_t MACAM : 16; /*!< [15..0] Qci stream filter table MAC address bit mask[47:32] */ + uint32_t : 16; + } P0_QSTMAMU1_b; + }; + + union + { + __IOM uint32_t P0_QSTMAMD1; /*!< (@ 0x00002034) Qci Stream Filter Table MAC Address Mask Downer + * Part */ + + struct + { + __IOM uint32_t MACAM : 32; /*!< [31..0] Qci stream filter table MAC address bit mask[31:0] */ + } P0_QSTMAMD1_b; + }; + + union + { + __IOM uint32_t P0_QSFTVL1; /*!< (@ 0x00002038) Qci Stream Filter Table VLAN */ + + struct + { + __IOM uint32_t VLANID : 12; /*!< [11..0] VLANID */ + __IOM uint32_t DEI : 1; /*!< [12..12] DEI */ + __IOM uint32_t PCP : 3; /*!< [15..13] PCP */ + __IOM uint32_t TAGMD : 2; /*!< [17..16] TAGMD */ + uint32_t : 14; + } P0_QSFTVL1_b; + }; + + union + { + __IOM uint32_t P0_QSFTVLM1; /*!< (@ 0x0000203C) Qci Stream Filter Table VLAN Mask */ + + struct + { + __IOM uint32_t VLANIDM : 12; /*!< [11..0] Qci stream filter table VLAN ID[11:0] bit mask */ + __IOM uint32_t DEIM : 1; /*!< [12..12] DEIM */ + __IOM uint32_t PCPM : 3; /*!< [15..13] Qci stream filter table VLAN PCP[2:0] bit mask */ + uint32_t : 16; + } P0_QSFTVLM1_b; + }; + + union + { + __IOM uint32_t P0_QSFTBL1; /*!< (@ 0x00002040) Qci Stream Filter Table SDU/Gate/Meter ID */ + + struct + { + __IOM uint32_t QSTE : 1; /*!< [0..0] QSTE */ + uint32_t : 3; + __IOM uint32_t GAID : 3; /*!< [6..4] GAID */ + __IOM uint32_t GAIDV : 1; /*!< [7..7] GAIDV */ + __IOM uint32_t MEID : 3; /*!< [10..8] MEID */ + uint32_t : 1; + __IOM uint32_t MEIDV : 1; /*!< [12..12] MEIDV */ + uint32_t : 3; + __IOM uint32_t MSDU : 11; /*!< [26..16] Qci stream filter table max SDU size */ + __IOM uint32_t MSDUE : 1; /*!< [27..27] MSDUE */ + __IOM uint32_t QSMSM : 1; /*!< [28..28] Qci stream MSDU mode */ + uint32_t : 3; + } P0_QSFTBL1_b; + }; + + union + { + __IM uint32_t P0_QSMFC1; /*!< (@ 0x00002044) Qci Stream Match Packet Count */ + + struct + { + __IM uint32_t QSMFC : 16; /*!< [15..0] Qci stream match packet count */ + uint32_t : 16; + } P0_QSMFC1_b; + }; + + union + { + __IM uint32_t P0_QMSPPC1; /*!< (@ 0x00002048) Qci MSDU Passed Packet Count */ + + struct + { + __IM uint32_t QMSPPC : 16; /*!< [15..0] Qci msdu passed packet count */ + uint32_t : 16; + } P0_QMSPPC1_b; + }; + + union + { + __IM uint32_t P0_QMSRPC1; /*!< (@ 0x0000204C) Qci MSDU Reject Packet Count */ + + struct + { + __IM uint32_t QMSRPC : 16; /*!< [15..0] Qci MSDU rejected packet count */ + uint32_t : 16; + } P0_QMSRPC1_b; + }; + + union + { + __IOM uint32_t P0_QSTMACU2; /*!< (@ 0x00002050) Qci Stream Filter Table MAC Address Upper Part */ + + struct + { + __IOM uint32_t MACA : 16; /*!< [15..0] Qci stream filter table MAC address[47:32] */ + __IOM uint32_t DASA : 1; /*!< [16..16] MAC address (MACA) select */ + uint32_t : 15; + } P0_QSTMACU2_b; + }; + + union + { + __IOM uint32_t P0_QSTMACD2; /*!< (@ 0x00002054) Qci Stream Filter Table MAC Address Downer Part */ + + struct + { + __IOM uint32_t MACA : 32; /*!< [31..0] Qci stream filter table MAC address[31:0] */ + } P0_QSTMACD2_b; + }; + + union + { + __IOM uint32_t P0_QSTMAMU2; /*!< (@ 0x00002058) Qci Stream Filter Table MAC Address Mask Upper + * Part */ + + struct + { + __IOM uint32_t MACAM : 16; /*!< [15..0] Qci stream filter table MAC address bit mask[47:32] */ + uint32_t : 16; + } P0_QSTMAMU2_b; + }; + + union + { + __IOM uint32_t P0_QSTMAMD2; /*!< (@ 0x0000205C) Qci Stream Filter Table MAC Address Mask Downer + * Part */ + + struct + { + __IOM uint32_t MACAM : 32; /*!< [31..0] Qci stream filter table MAC address bit mask[31:0] */ + } P0_QSTMAMD2_b; + }; + + union + { + __IOM uint32_t P0_QSFTVL2; /*!< (@ 0x00002060) Qci Stream Filter Table VLAN */ + + struct + { + __IOM uint32_t VLANID : 12; /*!< [11..0] VLANID */ + __IOM uint32_t DEI : 1; /*!< [12..12] DEI */ + __IOM uint32_t PCP : 3; /*!< [15..13] PCP */ + __IOM uint32_t TAGMD : 2; /*!< [17..16] TAGMD */ + uint32_t : 14; + } P0_QSFTVL2_b; + }; + + union + { + __IOM uint32_t P0_QSFTVLM2; /*!< (@ 0x00002064) Qci Stream Filter Table VLAN Mask */ + + struct + { + __IOM uint32_t VLANIDM : 12; /*!< [11..0] Qci stream filter table VLAN ID[11:0] bit mask */ + __IOM uint32_t DEIM : 1; /*!< [12..12] DEIM */ + __IOM uint32_t PCPM : 3; /*!< [15..13] Qci stream filter table VLAN PCP[2:0] bit mask */ + uint32_t : 16; + } P0_QSFTVLM2_b; + }; + + union + { + __IOM uint32_t P0_QSFTBL2; /*!< (@ 0x00002068) Qci Stream Filter Table SDU/Gate/Meter ID */ + + struct + { + __IOM uint32_t QSTE : 1; /*!< [0..0] QSTE */ + uint32_t : 3; + __IOM uint32_t GAID : 3; /*!< [6..4] GAID */ + __IOM uint32_t GAIDV : 1; /*!< [7..7] GAIDV */ + __IOM uint32_t MEID : 3; /*!< [10..8] MEID */ + uint32_t : 1; + __IOM uint32_t MEIDV : 1; /*!< [12..12] MEIDV */ + uint32_t : 3; + __IOM uint32_t MSDU : 11; /*!< [26..16] Qci stream filter table max SDU size */ + __IOM uint32_t MSDUE : 1; /*!< [27..27] MSDUE */ + __IOM uint32_t QSMSM : 1; /*!< [28..28] Qci stream MSDU mode */ + uint32_t : 3; + } P0_QSFTBL2_b; + }; + + union + { + __IM uint32_t P0_QSMFC2; /*!< (@ 0x0000206C) Qci Stream Match Packet Count */ + + struct + { + __IM uint32_t QSMFC : 16; /*!< [15..0] Qci stream match packet count */ + uint32_t : 16; + } P0_QSMFC2_b; + }; + + union + { + __IM uint32_t P0_QMSPPC2; /*!< (@ 0x00002070) Qci MSDU Passed Packet Count */ + + struct + { + __IM uint32_t QMSPPC : 16; /*!< [15..0] Qci msdu passed packet count */ + uint32_t : 16; + } P0_QMSPPC2_b; + }; + + union + { + __IM uint32_t P0_QMSRPC2; /*!< (@ 0x00002074) Qci MSDU Reject Packet Count */ + + struct + { + __IM uint32_t QMSRPC : 16; /*!< [15..0] Qci MSDU rejected packet count */ + uint32_t : 16; + } P0_QMSRPC2_b; + }; + + union + { + __IOM uint32_t P0_QSTMACU3; /*!< (@ 0x00002078) Qci Stream Filter Table MAC Address Upper Part */ + + struct + { + __IOM uint32_t MACA : 16; /*!< [15..0] Qci stream filter table MAC address[47:32] */ + __IOM uint32_t DASA : 1; /*!< [16..16] MAC address (MACA) select */ + uint32_t : 15; + } P0_QSTMACU3_b; + }; + + union + { + __IOM uint32_t P0_QSTMACD3; /*!< (@ 0x0000207C) Qci Stream Filter Table MAC Address Downer Part */ + + struct + { + __IOM uint32_t MACA : 32; /*!< [31..0] Qci stream filter table MAC address[31:0] */ + } P0_QSTMACD3_b; + }; + + union + { + __IOM uint32_t P0_QSTMAMU3; /*!< (@ 0x00002080) Qci Stream Filter Table MAC Address Mask Upper + * Part */ + + struct + { + __IOM uint32_t MACAM : 16; /*!< [15..0] Qci stream filter table MAC address bit mask[47:32] */ + uint32_t : 16; + } P0_QSTMAMU3_b; + }; + + union + { + __IOM uint32_t P0_QSTMAMD3; /*!< (@ 0x00002084) Qci Stream Filter Table MAC Address Mask Downer + * Part */ + + struct + { + __IOM uint32_t MACAM : 32; /*!< [31..0] Qci stream filter table MAC address bit mask[31:0] */ + } P0_QSTMAMD3_b; + }; + + union + { + __IOM uint32_t P0_QSFTVL3; /*!< (@ 0x00002088) Qci Stream Filter Table VLAN */ + + struct + { + __IOM uint32_t VLANID : 12; /*!< [11..0] VLANID */ + __IOM uint32_t DEI : 1; /*!< [12..12] DEI */ + __IOM uint32_t PCP : 3; /*!< [15..13] PCP */ + __IOM uint32_t TAGMD : 2; /*!< [17..16] TAGMD */ + uint32_t : 14; + } P0_QSFTVL3_b; + }; + + union + { + __IOM uint32_t P0_QSFTVLM3; /*!< (@ 0x0000208C) Qci Stream Filter Table VLAN Mask */ + + struct + { + __IOM uint32_t VLANIDM : 12; /*!< [11..0] Qci stream filter table VLAN ID[11:0] bit mask */ + __IOM uint32_t DEIM : 1; /*!< [12..12] DEIM */ + __IOM uint32_t PCPM : 3; /*!< [15..13] Qci stream filter table VLAN PCP[2:0] bit mask */ + uint32_t : 16; + } P0_QSFTVLM3_b; + }; + + union + { + __IOM uint32_t P0_QSFTBL3; /*!< (@ 0x00002090) Qci Stream Filter Table SDU/Gate/Meter ID */ + + struct + { + __IOM uint32_t QSTE : 1; /*!< [0..0] QSTE */ + uint32_t : 3; + __IOM uint32_t GAID : 3; /*!< [6..4] GAID */ + __IOM uint32_t GAIDV : 1; /*!< [7..7] GAIDV */ + __IOM uint32_t MEID : 3; /*!< [10..8] MEID */ + uint32_t : 1; + __IOM uint32_t MEIDV : 1; /*!< [12..12] MEIDV */ + uint32_t : 3; + __IOM uint32_t MSDU : 11; /*!< [26..16] Qci stream filter table max SDU size */ + __IOM uint32_t MSDUE : 1; /*!< [27..27] MSDUE */ + __IOM uint32_t QSMSM : 1; /*!< [28..28] Qci stream MSDU mode */ + uint32_t : 3; + } P0_QSFTBL3_b; + }; + + union + { + __IM uint32_t P0_QSMFC3; /*!< (@ 0x00002094) Qci Stream Match Packet Count */ + + struct + { + __IM uint32_t QSMFC : 16; /*!< [15..0] Qci stream match packet count */ + uint32_t : 16; + } P0_QSMFC3_b; + }; + + union + { + __IM uint32_t P0_QMSPPC3; /*!< (@ 0x00002098) Qci MSDU Passed Packet Count */ + + struct + { + __IM uint32_t QMSPPC : 16; /*!< [15..0] Qci msdu passed packet count */ + uint32_t : 16; + } P0_QMSPPC3_b; + }; + + union + { + __IM uint32_t P0_QMSRPC3; /*!< (@ 0x0000209C) Qci MSDU Reject Packet Count */ + + struct + { + __IM uint32_t QMSRPC : 16; /*!< [15..0] Qci MSDU rejected packet count */ + uint32_t : 16; + } P0_QMSRPC3_b; + }; + + union + { + __IOM uint32_t P0_QSTMACU4; /*!< (@ 0x000020A0) Qci Stream Filter Table MAC Address Upper Part */ + + struct + { + __IOM uint32_t MACA : 16; /*!< [15..0] Qci stream filter table MAC address[47:32] */ + __IOM uint32_t DASA : 1; /*!< [16..16] MAC address (MACA) select */ + uint32_t : 15; + } P0_QSTMACU4_b; + }; + + union + { + __IOM uint32_t P0_QSTMACD4; /*!< (@ 0x000020A4) Qci Stream Filter Table MAC Address Downer Part */ + + struct + { + __IOM uint32_t MACA : 32; /*!< [31..0] Qci stream filter table MAC address[31:0] */ + } P0_QSTMACD4_b; + }; + + union + { + __IOM uint32_t P0_QSTMAMU4; /*!< (@ 0x000020A8) Qci Stream Filter Table MAC Address Mask Upper + * Part */ + + struct + { + __IOM uint32_t MACAM : 16; /*!< [15..0] Qci stream filter table MAC address bit mask[47:32] */ + uint32_t : 16; + } P0_QSTMAMU4_b; + }; + + union + { + __IOM uint32_t P0_QSTMAMD4; /*!< (@ 0x000020AC) Qci Stream Filter Table MAC Address Mask Downer + * Part */ + + struct + { + __IOM uint32_t MACAM : 32; /*!< [31..0] Qci stream filter table MAC address bit mask[31:0] */ + } P0_QSTMAMD4_b; + }; + + union + { + __IOM uint32_t P0_QSFTVL4; /*!< (@ 0x000020B0) Qci Stream Filter Table VLAN */ + + struct + { + __IOM uint32_t VLANID : 12; /*!< [11..0] VLANID */ + __IOM uint32_t DEI : 1; /*!< [12..12] DEI */ + __IOM uint32_t PCP : 3; /*!< [15..13] PCP */ + __IOM uint32_t TAGMD : 2; /*!< [17..16] TAGMD */ + uint32_t : 14; + } P0_QSFTVL4_b; + }; + + union + { + __IOM uint32_t P0_QSFTVLM4; /*!< (@ 0x000020B4) Qci Stream Filter Table VLAN Mask */ + + struct + { + __IOM uint32_t VLANIDM : 12; /*!< [11..0] Qci stream filter table VLAN ID[11:0] bit mask */ + __IOM uint32_t DEIM : 1; /*!< [12..12] DEIM */ + __IOM uint32_t PCPM : 3; /*!< [15..13] Qci stream filter table VLAN PCP[2:0] bit mask */ + uint32_t : 16; + } P0_QSFTVLM4_b; + }; + + union + { + __IOM uint32_t P0_QSFTBL4; /*!< (@ 0x000020B8) Qci Stream Filter Table SDU/Gate/Meter ID */ + + struct + { + __IOM uint32_t QSTE : 1; /*!< [0..0] QSTE */ + uint32_t : 3; + __IOM uint32_t GAID : 3; /*!< [6..4] GAID */ + __IOM uint32_t GAIDV : 1; /*!< [7..7] GAIDV */ + __IOM uint32_t MEID : 3; /*!< [10..8] MEID */ + uint32_t : 1; + __IOM uint32_t MEIDV : 1; /*!< [12..12] MEIDV */ + uint32_t : 3; + __IOM uint32_t MSDU : 11; /*!< [26..16] Qci stream filter table max SDU size */ + __IOM uint32_t MSDUE : 1; /*!< [27..27] MSDUE */ + __IOM uint32_t QSMSM : 1; /*!< [28..28] Qci stream MSDU mode */ + uint32_t : 3; + } P0_QSFTBL4_b; + }; + + union + { + __IM uint32_t P0_QSMFC4; /*!< (@ 0x000020BC) Qci Stream Match Packet Count */ + + struct + { + __IM uint32_t QSMFC : 16; /*!< [15..0] Qci stream match packet count */ + uint32_t : 16; + } P0_QSMFC4_b; + }; + + union + { + __IM uint32_t P0_QMSPPC4; /*!< (@ 0x000020C0) Qci MSDU Passed Packet Count */ + + struct + { + __IM uint32_t QMSPPC : 16; /*!< [15..0] Qci msdu passed packet count */ + uint32_t : 16; + } P0_QMSPPC4_b; + }; + + union + { + __IM uint32_t P0_QMSRPC4; /*!< (@ 0x000020C4) Qci MSDU Reject Packet Count */ + + struct + { + __IM uint32_t QMSRPC : 16; /*!< [15..0] Qci MSDU rejected packet count */ + uint32_t : 16; + } P0_QMSRPC4_b; + }; + + union + { + __IOM uint32_t P0_QSTMACU5; /*!< (@ 0x000020C8) Qci Stream Filter Table MAC Address Upper Part */ + + struct + { + __IOM uint32_t MACA : 16; /*!< [15..0] Qci stream filter table MAC address[47:32] */ + __IOM uint32_t DASA : 1; /*!< [16..16] MAC address (MACA) select */ + uint32_t : 15; + } P0_QSTMACU5_b; + }; + + union + { + __IOM uint32_t P0_QSTMACD5; /*!< (@ 0x000020CC) Qci Stream Filter Table MAC Address Downer Part */ + + struct + { + __IOM uint32_t MACA : 32; /*!< [31..0] Qci stream filter table MAC address[31:0] */ + } P0_QSTMACD5_b; + }; + + union + { + __IOM uint32_t P0_QSTMAMU5; /*!< (@ 0x000020D0) Qci Stream Filter Table MAC Address Mask Upper + * Part */ + + struct + { + __IOM uint32_t MACAM : 16; /*!< [15..0] Qci stream filter table MAC address bit mask[47:32] */ + uint32_t : 16; + } P0_QSTMAMU5_b; + }; + + union + { + __IOM uint32_t P0_QSTMAMD5; /*!< (@ 0x000020D4) Qci Stream Filter Table MAC Address Mask Downer + * Part */ + + struct + { + __IOM uint32_t MACAM : 32; /*!< [31..0] Qci stream filter table MAC address bit mask[31:0] */ + } P0_QSTMAMD5_b; + }; + + union + { + __IOM uint32_t P0_QSFTVL5; /*!< (@ 0x000020D8) Qci Stream Filter Table VLAN */ + + struct + { + __IOM uint32_t VLANID : 12; /*!< [11..0] VLANID */ + __IOM uint32_t DEI : 1; /*!< [12..12] DEI */ + __IOM uint32_t PCP : 3; /*!< [15..13] PCP */ + __IOM uint32_t TAGMD : 2; /*!< [17..16] TAGMD */ + uint32_t : 14; + } P0_QSFTVL5_b; + }; + + union + { + __IOM uint32_t P0_QSFTVLM5; /*!< (@ 0x000020DC) Qci Stream Filter Table VLAN Mask */ + + struct + { + __IOM uint32_t VLANIDM : 12; /*!< [11..0] Qci stream filter table VLAN ID[11:0] bit mask */ + __IOM uint32_t DEIM : 1; /*!< [12..12] DEIM */ + __IOM uint32_t PCPM : 3; /*!< [15..13] Qci stream filter table VLAN PCP[2:0] bit mask */ + uint32_t : 16; + } P0_QSFTVLM5_b; + }; + + union + { + __IOM uint32_t P0_QSFTBL5; /*!< (@ 0x000020E0) Qci Stream Filter Table SDU/Gate/Meter ID */ + + struct + { + __IOM uint32_t QSTE : 1; /*!< [0..0] QSTE */ + uint32_t : 3; + __IOM uint32_t GAID : 3; /*!< [6..4] GAID */ + __IOM uint32_t GAIDV : 1; /*!< [7..7] GAIDV */ + __IOM uint32_t MEID : 3; /*!< [10..8] MEID */ + uint32_t : 1; + __IOM uint32_t MEIDV : 1; /*!< [12..12] MEIDV */ + uint32_t : 3; + __IOM uint32_t MSDU : 11; /*!< [26..16] Qci stream filter table max SDU size */ + __IOM uint32_t MSDUE : 1; /*!< [27..27] MSDUE */ + __IOM uint32_t QSMSM : 1; /*!< [28..28] Qci stream MSDU mode */ + uint32_t : 3; + } P0_QSFTBL5_b; + }; + + union + { + __IM uint32_t P0_QSMFC5; /*!< (@ 0x000020E4) Qci Stream Match Packet Count */ + + struct + { + __IM uint32_t QSMFC : 16; /*!< [15..0] Qci stream match packet count */ + uint32_t : 16; + } P0_QSMFC5_b; + }; + + union + { + __IM uint32_t P0_QMSPPC5; /*!< (@ 0x000020E8) Qci MSDU Passed Packet Count */ + + struct + { + __IM uint32_t QMSPPC : 16; /*!< [15..0] Qci msdu passed packet count */ + uint32_t : 16; + } P0_QMSPPC5_b; + }; + + union + { + __IM uint32_t P0_QMSRPC5; /*!< (@ 0x000020EC) Qci MSDU Reject Packet Count */ + + struct + { + __IM uint32_t QMSRPC : 16; /*!< [15..0] Qci MSDU rejected packet count */ + uint32_t : 16; + } P0_QMSRPC5_b; + }; + + union + { + __IOM uint32_t P0_QSTMACU6; /*!< (@ 0x000020F0) Qci Stream Filter Table MAC Address Upper Part */ + + struct + { + __IOM uint32_t MACA : 16; /*!< [15..0] Qci stream filter table MAC address[47:32] */ + __IOM uint32_t DASA : 1; /*!< [16..16] MAC address (MACA) select */ + uint32_t : 15; + } P0_QSTMACU6_b; + }; + + union + { + __IOM uint32_t P0_QSTMACD6; /*!< (@ 0x000020F4) Qci Stream Filter Table MAC Address Downer Part */ + + struct + { + __IOM uint32_t MACA : 32; /*!< [31..0] Qci stream filter table MAC address[31:0] */ + } P0_QSTMACD6_b; + }; + + union + { + __IOM uint32_t P0_QSTMAMU6; /*!< (@ 0x000020F8) Qci Stream Filter Table MAC Address Mask Upper + * Part */ + + struct + { + __IOM uint32_t MACAM : 16; /*!< [15..0] Qci stream filter table MAC address bit mask[47:32] */ + uint32_t : 16; + } P0_QSTMAMU6_b; + }; + + union + { + __IOM uint32_t P0_QSTMAMD6; /*!< (@ 0x000020FC) Qci Stream Filter Table MAC Address Mask Downer + * Part */ + + struct + { + __IOM uint32_t MACAM : 32; /*!< [31..0] Qci stream filter table MAC address bit mask[31:0] */ + } P0_QSTMAMD6_b; + }; + + union + { + __IOM uint32_t P0_QSFTVL6; /*!< (@ 0x00002100) Qci Stream Filter Table VLAN */ + + struct + { + __IOM uint32_t VLANID : 12; /*!< [11..0] VLANID */ + __IOM uint32_t DEI : 1; /*!< [12..12] DEI */ + __IOM uint32_t PCP : 3; /*!< [15..13] PCP */ + __IOM uint32_t TAGMD : 2; /*!< [17..16] TAGMD */ + uint32_t : 14; + } P0_QSFTVL6_b; + }; + + union + { + __IOM uint32_t P0_QSFTVLM6; /*!< (@ 0x00002104) Qci Stream Filter Table VLAN Mask */ + + struct + { + __IOM uint32_t VLANIDM : 12; /*!< [11..0] Qci stream filter table VLAN ID[11:0] bit mask */ + __IOM uint32_t DEIM : 1; /*!< [12..12] DEIM */ + __IOM uint32_t PCPM : 3; /*!< [15..13] Qci stream filter table VLAN PCP[2:0] bit mask */ + uint32_t : 16; + } P0_QSFTVLM6_b; + }; + + union + { + __IOM uint32_t P0_QSFTBL6; /*!< (@ 0x00002108) Qci Stream Filter Table SDU/Gate/Meter ID */ + + struct + { + __IOM uint32_t QSTE : 1; /*!< [0..0] QSTE */ + uint32_t : 3; + __IOM uint32_t GAID : 3; /*!< [6..4] GAID */ + __IOM uint32_t GAIDV : 1; /*!< [7..7] GAIDV */ + __IOM uint32_t MEID : 3; /*!< [10..8] MEID */ + uint32_t : 1; + __IOM uint32_t MEIDV : 1; /*!< [12..12] MEIDV */ + uint32_t : 3; + __IOM uint32_t MSDU : 11; /*!< [26..16] Qci stream filter table max SDU size */ + __IOM uint32_t MSDUE : 1; /*!< [27..27] MSDUE */ + __IOM uint32_t QSMSM : 1; /*!< [28..28] Qci stream MSDU mode */ + uint32_t : 3; + } P0_QSFTBL6_b; + }; + + union + { + __IM uint32_t P0_QSMFC6; /*!< (@ 0x0000210C) Qci Stream Match Packet Count */ + + struct + { + __IM uint32_t QSMFC : 16; /*!< [15..0] Qci stream match packet count */ + uint32_t : 16; + } P0_QSMFC6_b; + }; + + union + { + __IM uint32_t P0_QMSPPC6; /*!< (@ 0x00002110) Qci MSDU Passed Packet Count */ + + struct + { + __IM uint32_t QMSPPC : 16; /*!< [15..0] Qci msdu passed packet count */ + uint32_t : 16; + } P0_QMSPPC6_b; + }; + + union + { + __IM uint32_t P0_QMSRPC6; /*!< (@ 0x00002114) Qci MSDU Reject Packet Count */ + + struct + { + __IM uint32_t QMSRPC : 16; /*!< [15..0] Qci MSDU rejected packet count */ + uint32_t : 16; + } P0_QMSRPC6_b; + }; + + union + { + __IOM uint32_t P0_QSTMACU7; /*!< (@ 0x00002118) Qci Stream Filter Table MAC Address Upper Part */ + + struct + { + __IOM uint32_t MACA : 16; /*!< [15..0] Qci stream filter table MAC address[47:32] */ + __IOM uint32_t DASA : 1; /*!< [16..16] MAC address (MACA) select */ + uint32_t : 15; + } P0_QSTMACU7_b; + }; + + union + { + __IOM uint32_t P0_QSTMACD7; /*!< (@ 0x0000211C) Qci Stream Filter Table MAC Address Downer Part */ + + struct + { + __IOM uint32_t MACA : 32; /*!< [31..0] Qci stream filter table MAC address[31:0] */ + } P0_QSTMACD7_b; + }; + + union + { + __IOM uint32_t P0_QSTMAMU7; /*!< (@ 0x00002120) Qci Stream Filter Table MAC Address Mask Upper + * Part */ + + struct + { + __IOM uint32_t MACAM : 16; /*!< [15..0] Qci stream filter table MAC address bit mask[47:32] */ + uint32_t : 16; + } P0_QSTMAMU7_b; + }; + + union + { + __IOM uint32_t P0_QSTMAMD7; /*!< (@ 0x00002124) Qci Stream Filter Table MAC Address Mask Downer + * Part */ + + struct + { + __IOM uint32_t MACAM : 32; /*!< [31..0] Qci stream filter table MAC address bit mask[31:0] */ + } P0_QSTMAMD7_b; + }; + + union + { + __IOM uint32_t P0_QSFTVL7; /*!< (@ 0x00002128) Qci Stream Filter Table VLAN */ + + struct + { + __IOM uint32_t VLANID : 12; /*!< [11..0] VLANID */ + __IOM uint32_t DEI : 1; /*!< [12..12] DEI */ + __IOM uint32_t PCP : 3; /*!< [15..13] PCP */ + __IOM uint32_t TAGMD : 2; /*!< [17..16] TAGMD */ + uint32_t : 14; + } P0_QSFTVL7_b; + }; + + union + { + __IOM uint32_t P0_QSFTVLM7; /*!< (@ 0x0000212C) Qci Stream Filter Table VLAN Mask */ + + struct + { + __IOM uint32_t VLANIDM : 12; /*!< [11..0] Qci stream filter table VLAN ID[11:0] bit mask */ + __IOM uint32_t DEIM : 1; /*!< [12..12] DEIM */ + __IOM uint32_t PCPM : 3; /*!< [15..13] Qci stream filter table VLAN PCP[2:0] bit mask */ + uint32_t : 16; + } P0_QSFTVLM7_b; + }; + + union + { + __IOM uint32_t P0_QSFTBL7; /*!< (@ 0x00002130) Qci Stream Filter Table SDU/Gate/Meter ID */ + + struct + { + __IOM uint32_t QSTE : 1; /*!< [0..0] QSTE */ + uint32_t : 3; + __IOM uint32_t GAID : 3; /*!< [6..4] GAID */ + __IOM uint32_t GAIDV : 1; /*!< [7..7] GAIDV */ + __IOM uint32_t MEID : 3; /*!< [10..8] MEID */ + uint32_t : 1; + __IOM uint32_t MEIDV : 1; /*!< [12..12] MEIDV */ + uint32_t : 3; + __IOM uint32_t MSDU : 11; /*!< [26..16] Qci stream filter table max SDU size */ + __IOM uint32_t MSDUE : 1; /*!< [27..27] MSDUE */ + __IOM uint32_t QSMSM : 1; /*!< [28..28] Qci stream MSDU mode */ + uint32_t : 3; + } P0_QSFTBL7_b; + }; + + union + { + __IM uint32_t P0_QSMFC7; /*!< (@ 0x00002134) Qci Stream Match Packet Count */ + + struct + { + __IM uint32_t QSMFC : 16; /*!< [15..0] Qci stream match packet count */ + uint32_t : 16; + } P0_QSMFC7_b; + }; + + union + { + __IM uint32_t P0_QMSPPC7; /*!< (@ 0x00002138) Qci MSDU Passed Packet Count */ + + struct + { + __IM uint32_t QMSPPC : 16; /*!< [15..0] Qci msdu passed packet count */ + uint32_t : 16; + } P0_QMSPPC7_b; + }; + + union + { + __IM uint32_t P0_QMSRPC7; /*!< (@ 0x0000213C) Qci MSDU Reject Packet Count */ + + struct + { + __IM uint32_t QMSRPC : 16; /*!< [15..0] Qci MSDU rejected packet count */ + uint32_t : 16; + } P0_QMSRPC7_b; + }; + __IM uint32_t RESERVED57[42]; + + union + { + __IOM uint32_t P0_QSEIS; /*!< (@ 0x000021E8) Qci Stream Filter Error Interrupt Status (SDU + * Oversize) */ + + struct + { + __IOM uint32_t QSMOIS : 8; /*!< [7..0] MSDU oversize frames Interrupt status[s] */ + uint32_t : 24; + } P0_QSEIS_b; + }; + + union + { + __IOM uint32_t P0_QSEIE; /*!< (@ 0x000021EC) Qci Stream Filter Error Interrupt Enable */ + + struct + { + __IOM uint32_t QSMOIE : 8; /*!< [7..0] MSDU oversize frames Interrupt Enable[s] */ + uint32_t : 24; + } P0_QSEIE_b; + }; + + union + { + __OM uint32_t P0_QSEID; /*!< (@ 0x000021F0) Qci Stream Filter Error Interrupt Disable */ + + struct + { + __OM uint32_t QSMOID : 8; /*!< [7..0] MSDU oversize frames Interrupt Disable[s] */ + uint32_t : 24; + } P0_QSEID_b; + }; + __IM uint32_t RESERVED58[3]; + + union + { + __IOM uint32_t P0_QGMOD; /*!< (@ 0x00002200) Qci Gate Mode Register */ + + struct + { + __IOM uint32_t QGMOD : 8; /*!< [7..0] Flow gate mode[g] */ + uint32_t : 24; + } P0_QGMOD_b; + }; + + union + { + __IM uint32_t P0_QGPPC; /*!< (@ 0x00002204) Qci Gate (All) Passed Packet Count Port 0 */ + + struct + { + __IM uint32_t QGPPC : 16; /*!< [15..0] Qci gate passed packet count */ + uint32_t : 16; + } P0_QGPPC_b; + }; + + union + { + __IM uint32_t P0_QGDPC0; /*!< (@ 0x00002208) Qci Gate 0 Dropped Packet Count Port n */ + + struct + { + __IM uint32_t QGDPC : 16; /*!< [15..0] Qci gate dropped packet count */ + uint32_t : 16; + } P0_QGDPC0_b; + }; + __IM uint32_t RESERVED59; + + union + { + __IM uint32_t P0_QGDPC1; /*!< (@ 0x00002210) Qci Gate 1 Dropped Packet Count Port n */ + + struct + { + __IM uint32_t QGDPC : 16; /*!< [15..0] Qci gate dropped packet count */ + uint32_t : 16; + } P0_QGDPC1_b; + }; + __IM uint32_t RESERVED60; + + union + { + __IM uint32_t P0_QGDPC2; /*!< (@ 0x00002218) Qci Gate 2 Dropped Packet Count Port n */ + + struct + { + __IM uint32_t QGDPC : 16; /*!< [15..0] Qci gate dropped packet count */ + uint32_t : 16; + } P0_QGDPC2_b; + }; + __IM uint32_t RESERVED61; + + union + { + __IM uint32_t P0_QGDPC3; /*!< (@ 0x00002220) Qci Gate 3 Dropped Packet Count Port n */ + + struct + { + __IM uint32_t QGDPC : 16; /*!< [15..0] Qci gate dropped packet count */ + uint32_t : 16; + } P0_QGDPC3_b; + }; + __IM uint32_t RESERVED62; + + union + { + __IM uint32_t P0_QGDPC4; /*!< (@ 0x00002228) Qci Gate 4 Dropped Packet Count Port n */ + + struct + { + __IM uint32_t QGDPC : 16; /*!< [15..0] Qci gate dropped packet count */ + uint32_t : 16; + } P0_QGDPC4_b; + }; + __IM uint32_t RESERVED63; + + union + { + __IM uint32_t P0_QGDPC5; /*!< (@ 0x00002230) Qci Gate 5 Dropped Packet Count Port n */ + + struct + { + __IM uint32_t QGDPC : 16; /*!< [15..0] Qci gate dropped packet count */ + uint32_t : 16; + } P0_QGDPC5_b; + }; + __IM uint32_t RESERVED64; + + union + { + __IM uint32_t P0_QGDPC6; /*!< (@ 0x00002238) Qci Gate 6 Dropped Packet Count Port n */ + + struct + { + __IM uint32_t QGDPC : 16; /*!< [15..0] Qci gate dropped packet count */ + uint32_t : 16; + } P0_QGDPC6_b; + }; + __IM uint32_t RESERVED65; + + union + { + __IM uint32_t P0_QGDPC7; /*!< (@ 0x00002240) Qci Gate 7 Dropped Packet Count Port n */ + + struct + { + __IM uint32_t QGDPC : 16; /*!< [15..0] Qci gate dropped packet count */ + uint32_t : 16; + } P0_QGDPC7_b; + }; + + union + { + __IOM uint32_t P0_QGEIS; /*!< (@ 0x00002244) Qci Gate Error Interrupt Status */ + + struct + { + __IOM uint32_t QGMOIS : 8; /*!< [7..0] Gating error Interrupt status[g] */ + uint32_t : 24; + } P0_QGEIS_b; + }; + + union + { + __IOM uint32_t P0_QGEIE; /*!< (@ 0x00002248) Qci Gate Error Interrupt Enable */ + + struct + { + __IOM uint32_t QGMOIE : 8; /*!< [7..0] Gating error Interrupt Enable[g] */ + uint32_t : 24; + } P0_QGEIE_b; + }; + + union + { + __OM uint32_t P0_QGEID; /*!< (@ 0x0000224C) Qci Gate Error Interrupt Disable */ + + struct + { + __OM uint32_t QGMOID : 8; /*!< [7..0] Gating error Interrupt Disable[g] */ + uint32_t : 24; + } P0_QGEID_b; + }; + + union + { + __IOM uint32_t P0_QMDESC0; /*!< (@ 0x00002250) Qci Port n Flow Meter 0 Descriptor Register */ + + struct + { + __IOM uint32_t RFD : 1; /*!< [0..0] Red frame drop */ + __IOM uint32_t MM : 1; /*!< [1..1] Flow meter mode */ + __IOM uint32_t CF : 1; /*!< [2..2] Coupling flag */ + uint32_t : 29; + } P0_QMDESC0_b; + }; + + union + { + __IOM uint32_t P0_QMCBSC0; /*!< (@ 0x00002254) Qci Meter CBS Configuration Port n, Meter 0 */ + + struct + { + __IOM uint32_t CBS : 18; /*!< [17..0] CBS (Committed Burst Size) */ + uint32_t : 14; + } P0_QMCBSC0_b; + }; + + union + { + __IOM uint32_t P0_QMCIRC0; /*!< (@ 0x00002258) Qci Meter CIR Configuration n 0 */ + + struct + { + __IOM uint32_t CIR : 17; /*!< [16..0] CIR (Committed Information Rate) */ + uint32_t : 15; + } P0_QMCIRC0_b; + }; + + union + { + __IM uint32_t P0_QMGPC0; /*!< (@ 0x0000225C) Qci Meter Green Packet Count */ + + struct + { + __IM uint32_t QMGPC : 16; /*!< [15..0] Qci meter green packet count */ + uint32_t : 16; + } P0_QMGPC0_b; + }; + + union + { + __IM uint32_t P0_QMRPC0; /*!< (@ 0x00002260) Qci Meter Red Packet Count */ + + struct + { + __IM uint32_t QMRPC : 16; /*!< [15..0] Qci meter red packet count */ + uint32_t : 16; + } P0_QMRPC0_b; + }; + + union + { + __IOM uint32_t P0_QMDESC1; /*!< (@ 0x00002264) Qci Port n Flow Meter 1 Descriptor Register */ + + struct + { + __IOM uint32_t RFD : 1; /*!< [0..0] Red frame drop */ + __IOM uint32_t MM : 1; /*!< [1..1] Flow meter mode */ + __IOM uint32_t CF : 1; /*!< [2..2] Coupling flag */ + uint32_t : 29; + } P0_QMDESC1_b; + }; + + union + { + __IOM uint32_t P0_QMCBSC1; /*!< (@ 0x00002268) Qci Meter CBS Configuration Port n, Meter 1 */ + + struct + { + __IOM uint32_t CBS : 18; /*!< [17..0] CBS (Committed Burst Size) */ + uint32_t : 14; + } P0_QMCBSC1_b; + }; + + union + { + __IOM uint32_t P0_QMCIRC1; /*!< (@ 0x0000226C) Qci Meter CIR Configuration n 1 */ + + struct + { + __IOM uint32_t CIR : 17; /*!< [16..0] CIR (Committed Information Rate) */ + uint32_t : 15; + } P0_QMCIRC1_b; + }; + + union + { + __IM uint32_t P0_QMGPC1; /*!< (@ 0x00002270) Qci Meter Green Packet Count */ + + struct + { + __IM uint32_t QMGPC : 16; /*!< [15..0] Qci meter green packet count */ + uint32_t : 16; + } P0_QMGPC1_b; + }; + + union + { + __IM uint32_t P0_QMRPC1; /*!< (@ 0x00002274) Qci Meter Red Packet Count */ + + struct + { + __IM uint32_t QMRPC : 16; /*!< [15..0] Qci meter red packet count */ + uint32_t : 16; + } P0_QMRPC1_b; + }; + + union + { + __IOM uint32_t P0_QMDESC2; /*!< (@ 0x00002278) Qci Port n Flow Meter 2 Descriptor Register */ + + struct + { + __IOM uint32_t RFD : 1; /*!< [0..0] Red frame drop */ + __IOM uint32_t MM : 1; /*!< [1..1] Flow meter mode */ + __IOM uint32_t CF : 1; /*!< [2..2] Coupling flag */ + uint32_t : 29; + } P0_QMDESC2_b; + }; + + union + { + __IOM uint32_t P0_QMCBSC2; /*!< (@ 0x0000227C) Qci Meter CBS Configuration Port n, Meter 2 */ + + struct + { + __IOM uint32_t CBS : 18; /*!< [17..0] CBS (Committed Burst Size) */ + uint32_t : 14; + } P0_QMCBSC2_b; + }; + + union + { + __IOM uint32_t P0_QMCIRC2; /*!< (@ 0x00002280) Qci Meter CIR Configuration n 2 */ + + struct + { + __IOM uint32_t CIR : 17; /*!< [16..0] CIR (Committed Information Rate) */ + uint32_t : 15; + } P0_QMCIRC2_b; + }; + + union + { + __IM uint32_t P0_QMGPC2; /*!< (@ 0x00002284) Qci Meter Green Packet Count */ + + struct + { + __IM uint32_t QMGPC : 16; /*!< [15..0] Qci meter green packet count */ + uint32_t : 16; + } P0_QMGPC2_b; + }; + + union + { + __IM uint32_t P0_QMRPC2; /*!< (@ 0x00002288) Qci Meter Red Packet Count */ + + struct + { + __IM uint32_t QMRPC : 16; /*!< [15..0] Qci meter red packet count */ + uint32_t : 16; + } P0_QMRPC2_b; + }; + + union + { + __IOM uint32_t P0_QMDESC3; /*!< (@ 0x0000228C) Qci Port n Flow Meter 3 Descriptor Register */ + + struct + { + __IOM uint32_t RFD : 1; /*!< [0..0] Red frame drop */ + __IOM uint32_t MM : 1; /*!< [1..1] Flow meter mode */ + __IOM uint32_t CF : 1; /*!< [2..2] Coupling flag */ + uint32_t : 29; + } P0_QMDESC3_b; + }; + + union + { + __IOM uint32_t P0_QMCBSC3; /*!< (@ 0x00002290) Qci Meter CBS Configuration Port n, Meter 3 */ + + struct + { + __IOM uint32_t CBS : 18; /*!< [17..0] CBS (Committed Burst Size) */ + uint32_t : 14; + } P0_QMCBSC3_b; + }; + + union + { + __IOM uint32_t P0_QMCIRC3; /*!< (@ 0x00002294) Qci Meter CIR Configuration n 3 */ + + struct + { + __IOM uint32_t CIR : 17; /*!< [16..0] CIR (Committed Information Rate) */ + uint32_t : 15; + } P0_QMCIRC3_b; + }; + + union + { + __IM uint32_t P0_QMGPC3; /*!< (@ 0x00002298) Qci Meter Green Packet Count */ + + struct + { + __IM uint32_t QMGPC : 16; /*!< [15..0] Qci meter green packet count */ + uint32_t : 16; + } P0_QMGPC3_b; + }; + + union + { + __IM uint32_t P0_QMRPC3; /*!< (@ 0x0000229C) Qci Meter Red Packet Count */ + + struct + { + __IM uint32_t QMRPC : 16; /*!< [15..0] Qci meter red packet count */ + uint32_t : 16; + } P0_QMRPC3_b; + }; + + union + { + __IOM uint32_t P0_QMDESC4; /*!< (@ 0x000022A0) Qci Port n Flow Meter 4 Descriptor Register */ + + struct + { + __IOM uint32_t RFD : 1; /*!< [0..0] Red frame drop */ + __IOM uint32_t MM : 1; /*!< [1..1] Flow meter mode */ + __IOM uint32_t CF : 1; /*!< [2..2] Coupling flag */ + uint32_t : 29; + } P0_QMDESC4_b; + }; + + union + { + __IOM uint32_t P0_QMCBSC4; /*!< (@ 0x000022A4) Qci Meter CBS Configuration Port n, Meter 4 */ + + struct + { + __IOM uint32_t CBS : 18; /*!< [17..0] CBS (Committed Burst Size) */ + uint32_t : 14; + } P0_QMCBSC4_b; + }; + + union + { + __IOM uint32_t P0_QMCIRC4; /*!< (@ 0x000022A8) Qci Meter CIR Configuration n 4 */ + + struct + { + __IOM uint32_t CIR : 17; /*!< [16..0] CIR (Committed Information Rate) */ + uint32_t : 15; + } P0_QMCIRC4_b; + }; + + union + { + __IM uint32_t P0_QMGPC4; /*!< (@ 0x000022AC) Qci Meter Green Packet Count */ + + struct + { + __IM uint32_t QMGPC : 16; /*!< [15..0] Qci meter green packet count */ + uint32_t : 16; + } P0_QMGPC4_b; + }; + + union + { + __IM uint32_t P0_QMRPC4; /*!< (@ 0x000022B0) Qci Meter Red Packet Count */ + + struct + { + __IM uint32_t QMRPC : 16; /*!< [15..0] Qci meter red packet count */ + uint32_t : 16; + } P0_QMRPC4_b; + }; + + union + { + __IOM uint32_t P0_QMDESC5; /*!< (@ 0x000022B4) Qci Port n Flow Meter 5 Descriptor Register */ + + struct + { + __IOM uint32_t RFD : 1; /*!< [0..0] Red frame drop */ + __IOM uint32_t MM : 1; /*!< [1..1] Flow meter mode */ + __IOM uint32_t CF : 1; /*!< [2..2] Coupling flag */ + uint32_t : 29; + } P0_QMDESC5_b; + }; + + union + { + __IOM uint32_t P0_QMCBSC5; /*!< (@ 0x000022B8) Qci Meter CBS Configuration Port n, Meter 5 */ + + struct + { + __IOM uint32_t CBS : 18; /*!< [17..0] CBS (Committed Burst Size) */ + uint32_t : 14; + } P0_QMCBSC5_b; + }; + + union + { + __IOM uint32_t P0_QMCIRC5; /*!< (@ 0x000022BC) Qci Meter CIR Configuration n 5 */ + + struct + { + __IOM uint32_t CIR : 17; /*!< [16..0] CIR (Committed Information Rate) */ + uint32_t : 15; + } P0_QMCIRC5_b; + }; + + union + { + __IM uint32_t P0_QMGPC5; /*!< (@ 0x000022C0) Qci Meter Green Packet Count */ + + struct + { + __IM uint32_t QMGPC : 16; /*!< [15..0] Qci meter green packet count */ + uint32_t : 16; + } P0_QMGPC5_b; + }; + + union + { + __IM uint32_t P0_QMRPC5; /*!< (@ 0x000022C4) Qci Meter Red Packet Count */ + + struct + { + __IM uint32_t QMRPC : 16; /*!< [15..0] Qci meter red packet count */ + uint32_t : 16; + } P0_QMRPC5_b; + }; + + union + { + __IOM uint32_t P0_QMDESC6; /*!< (@ 0x000022C8) Qci Port n Flow Meter 6 Descriptor Register */ + + struct + { + __IOM uint32_t RFD : 1; /*!< [0..0] Red frame drop */ + __IOM uint32_t MM : 1; /*!< [1..1] Flow meter mode */ + __IOM uint32_t CF : 1; /*!< [2..2] Coupling flag */ + uint32_t : 29; + } P0_QMDESC6_b; + }; + + union + { + __IOM uint32_t P0_QMCBSC6; /*!< (@ 0x000022CC) Qci Meter CBS Configuration Port n, Meter 6 */ + + struct + { + __IOM uint32_t CBS : 18; /*!< [17..0] CBS (Committed Burst Size) */ + uint32_t : 14; + } P0_QMCBSC6_b; + }; + + union + { + __IOM uint32_t P0_QMCIRC6; /*!< (@ 0x000022D0) Qci Meter CIR Configuration n 6 */ + + struct + { + __IOM uint32_t CIR : 17; /*!< [16..0] CIR (Committed Information Rate) */ + uint32_t : 15; + } P0_QMCIRC6_b; + }; + + union + { + __IM uint32_t P0_QMGPC6; /*!< (@ 0x000022D4) Qci Meter Green Packet Count */ + + struct + { + __IM uint32_t QMGPC : 16; /*!< [15..0] Qci meter green packet count */ + uint32_t : 16; + } P0_QMGPC6_b; + }; + + union + { + __IM uint32_t P0_QMRPC6; /*!< (@ 0x000022D8) Qci Meter Red Packet Count */ + + struct + { + __IM uint32_t QMRPC : 16; /*!< [15..0] Qci meter red packet count */ + uint32_t : 16; + } P0_QMRPC6_b; + }; + + union + { + __IOM uint32_t P0_QMDESC7; /*!< (@ 0x000022DC) Qci Port n Flow Meter 7 Descriptor Register */ + + struct + { + __IOM uint32_t RFD : 1; /*!< [0..0] Red frame drop */ + __IOM uint32_t MM : 1; /*!< [1..1] Flow meter mode */ + __IOM uint32_t CF : 1; /*!< [2..2] Coupling flag */ + uint32_t : 29; + } P0_QMDESC7_b; + }; + + union + { + __IOM uint32_t P0_QMCBSC7; /*!< (@ 0x000022E0) Qci Meter CBS Configuration Port n, Meter 7 */ + + struct + { + __IOM uint32_t CBS : 18; /*!< [17..0] CBS (Committed Burst Size) */ + uint32_t : 14; + } P0_QMCBSC7_b; + }; + + union + { + __IOM uint32_t P0_QMCIRC7; /*!< (@ 0x000022E4) Qci Meter CIR Configuration n 7 */ + + struct + { + __IOM uint32_t CIR : 17; /*!< [16..0] CIR (Committed Information Rate) */ + uint32_t : 15; + } P0_QMCIRC7_b; + }; + + union + { + __IM uint32_t P0_QMGPC7; /*!< (@ 0x000022E8) Qci Meter Green Packet Count */ + + struct + { + __IM uint32_t QMGPC : 16; /*!< [15..0] Qci meter green packet count */ + uint32_t : 16; + } P0_QMGPC7_b; + }; + + union + { + __IM uint32_t P0_QMRPC7; /*!< (@ 0x000022EC) Qci Meter Red Packet Count */ + + struct + { + __IM uint32_t QMRPC : 16; /*!< [15..0] Qci meter red packet count */ + uint32_t : 16; + } P0_QMRPC7_b; + }; + + union + { + __IOM uint32_t P0_QMEC; /*!< (@ 0x000022F0) Qci Meter Enable Configuration */ + + struct + { + __IOM uint32_t ME : 8; /*!< [7..0] Enable meter[m] */ + uint32_t : 24; + } P0_QMEC_b; + }; + + union + { + __IOM uint32_t P0_QMEIS; /*!< (@ 0x000022F4) Qci Meter Error Interrupt Status */ + + struct + { + __IOM uint32_t QRFIS : 8; /*!< [7..0] Red frames Interrupt status[m] */ + uint32_t : 24; + } P0_QMEIS_b; + }; + + union + { + __IOM uint32_t P0_QMEIE; /*!< (@ 0x000022F8) Qci Meter Error Interrupt Enable */ + + struct + { + __IOM uint32_t QRFIE : 8; /*!< [7..0] Red frames Interrupt Enable[m] */ + uint32_t : 24; + } P0_QMEIE_b; + }; + + union + { + __OM uint32_t P0_QMEID; /*!< (@ 0x000022FC) Qci Meter Error Interrupt Disable */ + + struct + { + __OM uint32_t QRFID : 8; /*!< [7..0] Red frames Interrupt Disable[m] */ + uint32_t : 24; + } P0_QMEID_b; + }; + + union + { + __IOM uint32_t P0_PCP_REMAP; /*!< (@ 0x00002300) Port 0 VLAN Priority Code Point (PCP) Remap */ + + struct + { + __IOM uint32_t PCP_REMAP0 : 3; /*!< [2..0] PCP_REMAP0 */ + __IOM uint32_t PCP_REMAP1 : 3; /*!< [5..3] PCP_REMAP1 */ + __IOM uint32_t PCP_REMAP2 : 3; /*!< [8..6] PCP_REMAP2 */ + __IOM uint32_t PCP_REMAP3 : 3; /*!< [11..9] PCP_REMAP3 */ + __IOM uint32_t PCP_REMAP4 : 3; /*!< [14..12] PCP_REMAP4 */ + __IOM uint32_t PCP_REMAP5 : 3; /*!< [17..15] PCP_REMAP5 */ + __IOM uint32_t PCP_REMAP6 : 3; /*!< [20..18] PCP_REMAP6 */ + __IOM uint32_t PCP_REMAP7 : 3; /*!< [23..21] PCP_REMAP7 */ + uint32_t : 8; + } P0_PCP_REMAP_b; + }; + + union + { + __IOM uint32_t P0_VLAN_TAG; /*!< (@ 0x00002304) Port 0 VLAN TAG Information for Priority Regeneration */ + + struct + { + __IOM uint32_t VID : 12; /*!< [11..0] VID */ + __IOM uint32_t DEI : 1; /*!< [12..12] DEI */ + __IOM uint32_t PCP : 3; /*!< [15..13] PCP */ + __IOM uint32_t TPID : 16; /*!< [31..16] TPID */ + } P0_VLAN_TAG_b; + }; + + union + { + __IOM uint32_t P0_VLAN_MODE; /*!< (@ 0x00002308) Port 0 VLAN Mode */ + + struct + { + __IOM uint32_t VITM : 2; /*!< [1..0] VLAN input tagging mode */ + __IOM uint32_t VICM : 2; /*!< [3..2] VLAN input verification mode */ + uint32_t : 28; + } P0_VLAN_MODE_b; + }; + + union + { + __IM uint32_t P0_VIC_DROP_CNT; /*!< (@ 0x0000230C) Port 0 VLAN Ingress Check Drop Frame Counter */ + + struct + { + __IM uint32_t VIC_DROP_CNT : 16; /*!< [15..0] Port n VLAN ingress check drop frame count */ + uint32_t : 16; + } P0_VIC_DROP_CNT_b; + }; + __IM uint32_t RESERVED66[6]; + + union + { + __IM uint32_t P0_LOOKUP_HIT_CNT; /*!< (@ 0x00002328) Port 0 DST Address Lookup Hit Counter */ + + struct + { + __IM uint32_t LOOKUP_HIT_CNT : 24; /*!< [23..0] Port n Lookup hit count */ + uint32_t : 8; + } P0_LOOKUP_HIT_CNT_b; + }; + + union + { + __IOM uint32_t P0_ERROR_STATUS; /*!< (@ 0x0000232C) Port 0 Frame Parser Runtime Error Status */ + + struct + { + __IOM uint32_t SOPERR : 1; /*!< [0..0] SOP error detected in frame parser */ + __IOM uint32_t PUNDSZ : 1; /*!< [1..1] Preemptable frame under size error detected in frame + * parser */ + __IOM uint32_t POVRSZ : 1; /*!< [2..2] Preemptable frame over size error detected in frame parser */ + __IOM uint32_t EUNDSZ : 1; /*!< [3..3] Express frame under size error detected in frame parser */ + __IOM uint32_t EOVRSZ : 1; /*!< [4..4] Express frame over size error detected in frame parser */ + uint32_t : 27; + } P0_ERROR_STATUS_b; + }; + + union + { + __IOM uint32_t P0_ERROR_MASK; /*!< (@ 0x00002330) Port 0 Frame Parser Runtime Error Mask */ + + struct + { + __IOM uint32_t MSOPERR : 1; /*!< [0..0] Error mask of SOPERR (SOP error) */ + __IOM uint32_t MPUNDSZ : 1; /*!< [1..1] Error mask of PUNDSZ (Preemptable frame under size error) */ + __IOM uint32_t MPOVRSZ : 1; /*!< [2..2] Error mask of POVRSZ (Preemptable frame over size error) */ + __IOM uint32_t MEUNDSZ : 1; /*!< [3..3] Error mask of EUNDSZ (Express frame under size error) */ + __IOM uint32_t MEOVRSZ : 1; /*!< [4..4] Error mask of EOVRSZ (Express frame over size error) */ + uint32_t : 27; + } P0_ERROR_MASK_b; + }; + __IM uint32_t RESERVED67[35]; + + union + { + __IM uint32_t CHANNEL_STATE; /*!< (@ 0x000023C0) Enable/Disable State of Ingress Channels */ + + struct + { + __IM uint32_t CH0ACT : 1; /*!< [0..0] CH0ACT */ + __IM uint32_t CH1ACT : 1; /*!< [1..1] CH1ACT */ + __IM uint32_t CH2ACT : 1; /*!< [2..2] CH2ACT */ + uint32_t : 29; + } CHANNEL_STATE_b; + }; + + union + { + __OM uint32_t CHANNEL_ENABLE; /*!< (@ 0x000023C4) Enable Operation of Channel */ + + struct + { + __OM uint32_t CH0ENA : 1; /*!< [0..0] CH0ENA */ + __OM uint32_t CH1ENA : 1; /*!< [1..1] CH1ENA */ + __OM uint32_t CH2ENA : 1; /*!< [2..2] CH2ENA */ + uint32_t : 29; + } CHANNEL_ENABLE_b; + }; + + union + { + __OM uint32_t CHANNEL_DISABLE; /*!< (@ 0x000023C8) Disable and Reset Operation of Channel */ + + struct + { + __OM uint32_t CH0DIS : 1; /*!< [0..0] CH0DIS */ + __OM uint32_t CH1DIS : 1; /*!< [1..1] CH1DIS */ + __OM uint32_t CH2DIS : 1; /*!< [2..2] CH2DIS */ + uint32_t : 29; + } CHANNEL_DISABLE_b; + }; + + union + { + __IOM uint32_t ASI_MEM_WDATA[4]; /*!< (@ 0x000023CC) Memory Write Data Word [0..3] */ + + struct + { + __IOM uint32_t WDATA : 32; /*!< [31..0] Destination MAC address regeneration write data */ + } ASI_MEM_WDATA_b[4]; + }; + + union + { + __IOM uint32_t ASI_MEM_ADDR; /*!< (@ 0x000023DC) Memory Address and R/W Control */ + + struct + { + __IOM uint32_t ADDR : 7; /*!< [6..0] Memory access address */ + __IOM uint32_t MEM_WEN : 1; /*!< [7..7] MEM_WEN */ + __IOM uint32_t MEM_REQ : 3; /*!< [10..8] Memory access request */ + uint32_t : 21; + } ASI_MEM_ADDR_b; + }; + + union + { + __IM uint32_t ASI_MEM_RDATA[4]; /*!< (@ 0x000023E0) Memory Read Data Word [0..3] */ + + struct + { + __IM uint32_t RDATA : 32; /*!< [31..0] Destination MAC address regeneration read data */ + } ASI_MEM_RDATA_b[4]; + }; + __IM uint32_t RESERVED68[4]; + + union + { + __IOM uint32_t P1_QSTMACU0; /*!< (@ 0x00002400) Qci Stream Filter Table MAC Address Upper Part */ + + struct + { + __IOM uint32_t MACA : 16; /*!< [15..0] Qci stream filter table MAC address[47:32] */ + __IOM uint32_t DASA : 1; /*!< [16..16] MAC address (MACA) select */ + uint32_t : 15; + } P1_QSTMACU0_b; + }; + + union + { + __IOM uint32_t P1_QSTMACD0; /*!< (@ 0x00002404) Qci Stream Filter Table MAC Address Downer Part */ + + struct + { + __IOM uint32_t MACA : 32; /*!< [31..0] Qci stream filter table MAC address[31:0] */ + } P1_QSTMACD0_b; + }; + + union + { + __IOM uint32_t P1_QSTMAMU0; /*!< (@ 0x00002408) Qci Stream Filter Table MAC Address Mask Upper + * Part */ + + struct + { + __IOM uint32_t MACAM : 16; /*!< [15..0] Qci stream filter table MAC address bit mask[47:32] */ + uint32_t : 16; + } P1_QSTMAMU0_b; + }; + + union + { + __IOM uint32_t P1_QSTMAMD0; /*!< (@ 0x0000240C) Qci Stream Filter Table MAC Address Mask Downer + * Part */ + + struct + { + __IOM uint32_t MACAM : 32; /*!< [31..0] Qci stream filter table MAC address bit mask[31:0] */ + } P1_QSTMAMD0_b; + }; + + union + { + __IOM uint32_t P1_QSFTVL0; /*!< (@ 0x00002410) Qci Stream Filter Table VLAN */ + + struct + { + __IOM uint32_t VLANID : 12; /*!< [11..0] VLANID */ + __IOM uint32_t DEI : 1; /*!< [12..12] DEI */ + __IOM uint32_t PCP : 3; /*!< [15..13] PCP */ + __IOM uint32_t TAGMD : 2; /*!< [17..16] TAGMD */ + uint32_t : 14; + } P1_QSFTVL0_b; + }; + + union + { + __IOM uint32_t P1_QSFTVLM0; /*!< (@ 0x00002414) Qci Stream Filter Table VLAN Mask */ + + struct + { + __IOM uint32_t VLANIDM : 12; /*!< [11..0] Qci stream filter table VLAN ID[11:0] bit mask */ + __IOM uint32_t DEIM : 1; /*!< [12..12] DEIM */ + __IOM uint32_t PCPM : 3; /*!< [15..13] Qci stream filter table VLAN PCP[2:0] bit mask */ + uint32_t : 16; + } P1_QSFTVLM0_b; + }; + + union + { + __IOM uint32_t P1_QSFTBL0; /*!< (@ 0x00002418) Qci Stream Filter Table SDU/Gate/Meter ID */ + + struct + { + __IOM uint32_t QSTE : 1; /*!< [0..0] QSTE */ + uint32_t : 3; + __IOM uint32_t GAID : 3; /*!< [6..4] GAID */ + __IOM uint32_t GAIDV : 1; /*!< [7..7] GAIDV */ + __IOM uint32_t MEID : 3; /*!< [10..8] MEID */ + uint32_t : 1; + __IOM uint32_t MEIDV : 1; /*!< [12..12] MEIDV */ + uint32_t : 3; + __IOM uint32_t MSDU : 11; /*!< [26..16] Qci stream filter table max SDU size */ + __IOM uint32_t MSDUE : 1; /*!< [27..27] MSDUE */ + __IOM uint32_t QSMSM : 1; /*!< [28..28] Qci stream MSDU mode */ + uint32_t : 3; + } P1_QSFTBL0_b; + }; + + union + { + __IM uint32_t P1_QSMFC0; /*!< (@ 0x0000241C) Qci Stream Match Packet Count */ + + struct + { + __IM uint32_t QSMFC : 16; /*!< [15..0] Qci stream match packet count */ + uint32_t : 16; + } P1_QSMFC0_b; + }; + + union + { + __IM uint32_t P1_QMSPPC0; /*!< (@ 0x00002420) Qci MSDU Passed Packet Count */ + + struct + { + __IM uint32_t QMSPPC : 16; /*!< [15..0] Qci msdu passed packet count */ + uint32_t : 16; + } P1_QMSPPC0_b; + }; + + union + { + __IM uint32_t P1_QMSRPC0; /*!< (@ 0x00002424) Qci MSDU Reject Packet Count */ + + struct + { + __IM uint32_t QMSRPC : 16; /*!< [15..0] Qci MSDU rejected packet count */ + uint32_t : 16; + } P1_QMSRPC0_b; + }; + + union + { + __IOM uint32_t P1_QSTMACU1; /*!< (@ 0x00002428) Qci Stream Filter Table MAC Address Upper Part */ + + struct + { + __IOM uint32_t MACA : 16; /*!< [15..0] Qci stream filter table MAC address[47:32] */ + __IOM uint32_t DASA : 1; /*!< [16..16] MAC address (MACA) select */ + uint32_t : 15; + } P1_QSTMACU1_b; + }; + + union + { + __IOM uint32_t P1_QSTMACD1; /*!< (@ 0x0000242C) Qci Stream Filter Table MAC Address Downer Part */ + + struct + { + __IOM uint32_t MACA : 32; /*!< [31..0] Qci stream filter table MAC address[31:0] */ + } P1_QSTMACD1_b; + }; + + union + { + __IOM uint32_t P1_QSTMAMU1; /*!< (@ 0x00002430) Qci Stream Filter Table MAC Address Mask Upper + * Part */ + + struct + { + __IOM uint32_t MACAM : 16; /*!< [15..0] Qci stream filter table MAC address bit mask[47:32] */ + uint32_t : 16; + } P1_QSTMAMU1_b; + }; + + union + { + __IOM uint32_t P1_QSTMAMD1; /*!< (@ 0x00002434) Qci Stream Filter Table MAC Address Mask Downer + * Part */ + + struct + { + __IOM uint32_t MACAM : 32; /*!< [31..0] Qci stream filter table MAC address bit mask[31:0] */ + } P1_QSTMAMD1_b; + }; + + union + { + __IOM uint32_t P1_QSFTVL1; /*!< (@ 0x00002438) Qci Stream Filter Table VLAN */ + + struct + { + __IOM uint32_t VLANID : 12; /*!< [11..0] VLANID */ + __IOM uint32_t DEI : 1; /*!< [12..12] DEI */ + __IOM uint32_t PCP : 3; /*!< [15..13] PCP */ + __IOM uint32_t TAGMD : 2; /*!< [17..16] TAGMD */ + uint32_t : 14; + } P1_QSFTVL1_b; + }; + + union + { + __IOM uint32_t P1_QSFTVLM1; /*!< (@ 0x0000243C) Qci Stream Filter Table VLAN Mask */ + + struct + { + __IOM uint32_t VLANIDM : 12; /*!< [11..0] Qci stream filter table VLAN ID[11:0] bit mask */ + __IOM uint32_t DEIM : 1; /*!< [12..12] DEIM */ + __IOM uint32_t PCPM : 3; /*!< [15..13] Qci stream filter table VLAN PCP[2:0] bit mask */ + uint32_t : 16; + } P1_QSFTVLM1_b; + }; + + union + { + __IOM uint32_t P1_QSFTBL1; /*!< (@ 0x00002440) Qci Stream Filter Table SDU/Gate/Meter ID */ + + struct + { + __IOM uint32_t QSTE : 1; /*!< [0..0] QSTE */ + uint32_t : 3; + __IOM uint32_t GAID : 3; /*!< [6..4] GAID */ + __IOM uint32_t GAIDV : 1; /*!< [7..7] GAIDV */ + __IOM uint32_t MEID : 3; /*!< [10..8] MEID */ + uint32_t : 1; + __IOM uint32_t MEIDV : 1; /*!< [12..12] MEIDV */ + uint32_t : 3; + __IOM uint32_t MSDU : 11; /*!< [26..16] Qci stream filter table max SDU size */ + __IOM uint32_t MSDUE : 1; /*!< [27..27] MSDUE */ + __IOM uint32_t QSMSM : 1; /*!< [28..28] Qci stream MSDU mode */ + uint32_t : 3; + } P1_QSFTBL1_b; + }; + + union + { + __IM uint32_t P1_QSMFC1; /*!< (@ 0x00002444) Qci Stream Match Packet Count */ + + struct + { + __IM uint32_t QSMFC : 16; /*!< [15..0] Qci stream match packet count */ + uint32_t : 16; + } P1_QSMFC1_b; + }; + + union + { + __IM uint32_t P1_QMSPPC1; /*!< (@ 0x00002448) Qci MSDU Passed Packet Count */ + + struct + { + __IM uint32_t QMSPPC : 16; /*!< [15..0] Qci msdu passed packet count */ + uint32_t : 16; + } P1_QMSPPC1_b; + }; + + union + { + __IM uint32_t P1_QMSRPC1; /*!< (@ 0x0000244C) Qci MSDU Reject Packet Count */ + + struct + { + __IM uint32_t QMSRPC : 16; /*!< [15..0] Qci MSDU rejected packet count */ + uint32_t : 16; + } P1_QMSRPC1_b; + }; + + union + { + __IOM uint32_t P1_QSTMACU2; /*!< (@ 0x00002450) Qci Stream Filter Table MAC Address Upper Part */ + + struct + { + __IOM uint32_t MACA : 16; /*!< [15..0] Qci stream filter table MAC address[47:32] */ + __IOM uint32_t DASA : 1; /*!< [16..16] MAC address (MACA) select */ + uint32_t : 15; + } P1_QSTMACU2_b; + }; + + union + { + __IOM uint32_t P1_QSTMACD2; /*!< (@ 0x00002454) Qci Stream Filter Table MAC Address Downer Part */ + + struct + { + __IOM uint32_t MACA : 32; /*!< [31..0] Qci stream filter table MAC address[31:0] */ + } P1_QSTMACD2_b; + }; + + union + { + __IOM uint32_t P1_QSTMAMU2; /*!< (@ 0x00002458) Qci Stream Filter Table MAC Address Mask Upper + * Part */ + + struct + { + __IOM uint32_t MACAM : 16; /*!< [15..0] Qci stream filter table MAC address bit mask[47:32] */ + uint32_t : 16; + } P1_QSTMAMU2_b; + }; + + union + { + __IOM uint32_t P1_QSTMAMD2; /*!< (@ 0x0000245C) Qci Stream Filter Table MAC Address Mask Downer + * Part */ + + struct + { + __IOM uint32_t MACAM : 32; /*!< [31..0] Qci stream filter table MAC address bit mask[31:0] */ + } P1_QSTMAMD2_b; + }; + + union + { + __IOM uint32_t P1_QSFTVL2; /*!< (@ 0x00002460) Qci Stream Filter Table VLAN */ + + struct + { + __IOM uint32_t VLANID : 12; /*!< [11..0] VLANID */ + __IOM uint32_t DEI : 1; /*!< [12..12] DEI */ + __IOM uint32_t PCP : 3; /*!< [15..13] PCP */ + __IOM uint32_t TAGMD : 2; /*!< [17..16] TAGMD */ + uint32_t : 14; + } P1_QSFTVL2_b; + }; + + union + { + __IOM uint32_t P1_QSFTVLM2; /*!< (@ 0x00002464) Qci Stream Filter Table VLAN Mask */ + + struct + { + __IOM uint32_t VLANIDM : 12; /*!< [11..0] Qci stream filter table VLAN ID[11:0] bit mask */ + __IOM uint32_t DEIM : 1; /*!< [12..12] DEIM */ + __IOM uint32_t PCPM : 3; /*!< [15..13] Qci stream filter table VLAN PCP[2:0] bit mask */ + uint32_t : 16; + } P1_QSFTVLM2_b; + }; + + union + { + __IOM uint32_t P1_QSFTBL2; /*!< (@ 0x00002468) Qci Stream Filter Table SDU/Gate/Meter ID */ + + struct + { + __IOM uint32_t QSTE : 1; /*!< [0..0] QSTE */ + uint32_t : 3; + __IOM uint32_t GAID : 3; /*!< [6..4] GAID */ + __IOM uint32_t GAIDV : 1; /*!< [7..7] GAIDV */ + __IOM uint32_t MEID : 3; /*!< [10..8] MEID */ + uint32_t : 1; + __IOM uint32_t MEIDV : 1; /*!< [12..12] MEIDV */ + uint32_t : 3; + __IOM uint32_t MSDU : 11; /*!< [26..16] Qci stream filter table max SDU size */ + __IOM uint32_t MSDUE : 1; /*!< [27..27] MSDUE */ + __IOM uint32_t QSMSM : 1; /*!< [28..28] Qci stream MSDU mode */ + uint32_t : 3; + } P1_QSFTBL2_b; + }; + + union + { + __IM uint32_t P1_QSMFC2; /*!< (@ 0x0000246C) Qci Stream Match Packet Count */ + + struct + { + __IM uint32_t QSMFC : 16; /*!< [15..0] Qci stream match packet count */ + uint32_t : 16; + } P1_QSMFC2_b; + }; + + union + { + __IM uint32_t P1_QMSPPC2; /*!< (@ 0x00002470) Qci MSDU Passed Packet Count */ + + struct + { + __IM uint32_t QMSPPC : 16; /*!< [15..0] Qci msdu passed packet count */ + uint32_t : 16; + } P1_QMSPPC2_b; + }; + + union + { + __IM uint32_t P1_QMSRPC2; /*!< (@ 0x00002474) Qci MSDU Reject Packet Count */ + + struct + { + __IM uint32_t QMSRPC : 16; /*!< [15..0] Qci MSDU rejected packet count */ + uint32_t : 16; + } P1_QMSRPC2_b; + }; + + union + { + __IOM uint32_t P1_QSTMACU3; /*!< (@ 0x00002478) Qci Stream Filter Table MAC Address Upper Part */ + + struct + { + __IOM uint32_t MACA : 16; /*!< [15..0] Qci stream filter table MAC address[47:32] */ + __IOM uint32_t DASA : 1; /*!< [16..16] MAC address (MACA) select */ + uint32_t : 15; + } P1_QSTMACU3_b; + }; + + union + { + __IOM uint32_t P1_QSTMACD3; /*!< (@ 0x0000247C) Qci Stream Filter Table MAC Address Downer Part */ + + struct + { + __IOM uint32_t MACA : 32; /*!< [31..0] Qci stream filter table MAC address[31:0] */ + } P1_QSTMACD3_b; + }; + + union + { + __IOM uint32_t P1_QSTMAMU3; /*!< (@ 0x00002480) Qci Stream Filter Table MAC Address Mask Upper + * Part */ + + struct + { + __IOM uint32_t MACAM : 16; /*!< [15..0] Qci stream filter table MAC address bit mask[47:32] */ + uint32_t : 16; + } P1_QSTMAMU3_b; + }; + + union + { + __IOM uint32_t P1_QSTMAMD3; /*!< (@ 0x00002484) Qci Stream Filter Table MAC Address Mask Downer + * Part */ + + struct + { + __IOM uint32_t MACAM : 32; /*!< [31..0] Qci stream filter table MAC address bit mask[31:0] */ + } P1_QSTMAMD3_b; + }; + + union + { + __IOM uint32_t P1_QSFTVL3; /*!< (@ 0x00002488) Qci Stream Filter Table VLAN */ + + struct + { + __IOM uint32_t VLANID : 12; /*!< [11..0] VLANID */ + __IOM uint32_t DEI : 1; /*!< [12..12] DEI */ + __IOM uint32_t PCP : 3; /*!< [15..13] PCP */ + __IOM uint32_t TAGMD : 2; /*!< [17..16] TAGMD */ + uint32_t : 14; + } P1_QSFTVL3_b; + }; + + union + { + __IOM uint32_t P1_QSFTVLM3; /*!< (@ 0x0000248C) Qci Stream Filter Table VLAN Mask */ + + struct + { + __IOM uint32_t VLANIDM : 12; /*!< [11..0] Qci stream filter table VLAN ID[11:0] bit mask */ + __IOM uint32_t DEIM : 1; /*!< [12..12] DEIM */ + __IOM uint32_t PCPM : 3; /*!< [15..13] Qci stream filter table VLAN PCP[2:0] bit mask */ + uint32_t : 16; + } P1_QSFTVLM3_b; + }; + + union + { + __IOM uint32_t P1_QSFTBL3; /*!< (@ 0x00002490) Qci Stream Filter Table SDU/Gate/Meter ID */ + + struct + { + __IOM uint32_t QSTE : 1; /*!< [0..0] QSTE */ + uint32_t : 3; + __IOM uint32_t GAID : 3; /*!< [6..4] GAID */ + __IOM uint32_t GAIDV : 1; /*!< [7..7] GAIDV */ + __IOM uint32_t MEID : 3; /*!< [10..8] MEID */ + uint32_t : 1; + __IOM uint32_t MEIDV : 1; /*!< [12..12] MEIDV */ + uint32_t : 3; + __IOM uint32_t MSDU : 11; /*!< [26..16] Qci stream filter table max SDU size */ + __IOM uint32_t MSDUE : 1; /*!< [27..27] MSDUE */ + __IOM uint32_t QSMSM : 1; /*!< [28..28] Qci stream MSDU mode */ + uint32_t : 3; + } P1_QSFTBL3_b; + }; + + union + { + __IM uint32_t P1_QSMFC3; /*!< (@ 0x00002494) Qci Stream Match Packet Count */ + + struct + { + __IM uint32_t QSMFC : 16; /*!< [15..0] Qci stream match packet count */ + uint32_t : 16; + } P1_QSMFC3_b; + }; + + union + { + __IM uint32_t P1_QMSPPC3; /*!< (@ 0x00002498) Qci MSDU Passed Packet Count */ + + struct + { + __IM uint32_t QMSPPC : 16; /*!< [15..0] Qci msdu passed packet count */ + uint32_t : 16; + } P1_QMSPPC3_b; + }; + + union + { + __IM uint32_t P1_QMSRPC3; /*!< (@ 0x0000249C) Qci MSDU Reject Packet Count */ + + struct + { + __IM uint32_t QMSRPC : 16; /*!< [15..0] Qci MSDU rejected packet count */ + uint32_t : 16; + } P1_QMSRPC3_b; + }; + + union + { + __IOM uint32_t P1_QSTMACU4; /*!< (@ 0x000024A0) Qci Stream Filter Table MAC Address Upper Part */ + + struct + { + __IOM uint32_t MACA : 16; /*!< [15..0] Qci stream filter table MAC address[47:32] */ + __IOM uint32_t DASA : 1; /*!< [16..16] MAC address (MACA) select */ + uint32_t : 15; + } P1_QSTMACU4_b; + }; + + union + { + __IOM uint32_t P1_QSTMACD4; /*!< (@ 0x000024A4) Qci Stream Filter Table MAC Address Downer Part */ + + struct + { + __IOM uint32_t MACA : 32; /*!< [31..0] Qci stream filter table MAC address[31:0] */ + } P1_QSTMACD4_b; + }; + + union + { + __IOM uint32_t P1_QSTMAMU4; /*!< (@ 0x000024A8) Qci Stream Filter Table MAC Address Mask Upper + * Part */ + + struct + { + __IOM uint32_t MACAM : 16; /*!< [15..0] Qci stream filter table MAC address bit mask[47:32] */ + uint32_t : 16; + } P1_QSTMAMU4_b; + }; + + union + { + __IOM uint32_t P1_QSTMAMD4; /*!< (@ 0x000024AC) Qci Stream Filter Table MAC Address Mask Downer + * Part */ + + struct + { + __IOM uint32_t MACAM : 32; /*!< [31..0] Qci stream filter table MAC address bit mask[31:0] */ + } P1_QSTMAMD4_b; + }; + + union + { + __IOM uint32_t P1_QSFTVL4; /*!< (@ 0x000024B0) Qci Stream Filter Table VLAN */ + + struct + { + __IOM uint32_t VLANID : 12; /*!< [11..0] VLANID */ + __IOM uint32_t DEI : 1; /*!< [12..12] DEI */ + __IOM uint32_t PCP : 3; /*!< [15..13] PCP */ + __IOM uint32_t TAGMD : 2; /*!< [17..16] TAGMD */ + uint32_t : 14; + } P1_QSFTVL4_b; + }; + + union + { + __IOM uint32_t P1_QSFTVLM4; /*!< (@ 0x000024B4) Qci Stream Filter Table VLAN Mask */ + + struct + { + __IOM uint32_t VLANIDM : 12; /*!< [11..0] Qci stream filter table VLAN ID[11:0] bit mask */ + __IOM uint32_t DEIM : 1; /*!< [12..12] DEIM */ + __IOM uint32_t PCPM : 3; /*!< [15..13] Qci stream filter table VLAN PCP[2:0] bit mask */ + uint32_t : 16; + } P1_QSFTVLM4_b; + }; + + union + { + __IOM uint32_t P1_QSFTBL4; /*!< (@ 0x000024B8) Qci Stream Filter Table SDU/Gate/Meter ID */ + + struct + { + __IOM uint32_t QSTE : 1; /*!< [0..0] QSTE */ + uint32_t : 3; + __IOM uint32_t GAID : 3; /*!< [6..4] GAID */ + __IOM uint32_t GAIDV : 1; /*!< [7..7] GAIDV */ + __IOM uint32_t MEID : 3; /*!< [10..8] MEID */ + uint32_t : 1; + __IOM uint32_t MEIDV : 1; /*!< [12..12] MEIDV */ + uint32_t : 3; + __IOM uint32_t MSDU : 11; /*!< [26..16] Qci stream filter table max SDU size */ + __IOM uint32_t MSDUE : 1; /*!< [27..27] MSDUE */ + __IOM uint32_t QSMSM : 1; /*!< [28..28] Qci stream MSDU mode */ + uint32_t : 3; + } P1_QSFTBL4_b; + }; + + union + { + __IM uint32_t P1_QSMFC4; /*!< (@ 0x000024BC) Qci Stream Match Packet Count */ + + struct + { + __IM uint32_t QSMFC : 16; /*!< [15..0] Qci stream match packet count */ + uint32_t : 16; + } P1_QSMFC4_b; + }; + + union + { + __IM uint32_t P1_QMSPPC4; /*!< (@ 0x000024C0) Qci MSDU Passed Packet Count */ + + struct + { + __IM uint32_t QMSPPC : 16; /*!< [15..0] Qci msdu passed packet count */ + uint32_t : 16; + } P1_QMSPPC4_b; + }; + + union + { + __IM uint32_t P1_QMSRPC4; /*!< (@ 0x000024C4) Qci MSDU Reject Packet Count */ + + struct + { + __IM uint32_t QMSRPC : 16; /*!< [15..0] Qci MSDU rejected packet count */ + uint32_t : 16; + } P1_QMSRPC4_b; + }; + + union + { + __IOM uint32_t P1_QSTMACU5; /*!< (@ 0x000024C8) Qci Stream Filter Table MAC Address Upper Part */ + + struct + { + __IOM uint32_t MACA : 16; /*!< [15..0] Qci stream filter table MAC address[47:32] */ + __IOM uint32_t DASA : 1; /*!< [16..16] MAC address (MACA) select */ + uint32_t : 15; + } P1_QSTMACU5_b; + }; + + union + { + __IOM uint32_t P1_QSTMACD5; /*!< (@ 0x000024CC) Qci Stream Filter Table MAC Address Downer Part */ + + struct + { + __IOM uint32_t MACA : 32; /*!< [31..0] Qci stream filter table MAC address[31:0] */ + } P1_QSTMACD5_b; + }; + + union + { + __IOM uint32_t P1_QSTMAMU5; /*!< (@ 0x000024D0) Qci Stream Filter Table MAC Address Mask Upper + * Part */ + + struct + { + __IOM uint32_t MACAM : 16; /*!< [15..0] Qci stream filter table MAC address bit mask[47:32] */ + uint32_t : 16; + } P1_QSTMAMU5_b; + }; + + union + { + __IOM uint32_t P1_QSTMAMD5; /*!< (@ 0x000024D4) Qci Stream Filter Table MAC Address Mask Downer + * Part */ + + struct + { + __IOM uint32_t MACAM : 32; /*!< [31..0] Qci stream filter table MAC address bit mask[31:0] */ + } P1_QSTMAMD5_b; + }; + + union + { + __IOM uint32_t P1_QSFTVL5; /*!< (@ 0x000024D8) Qci Stream Filter Table VLAN */ + + struct + { + __IOM uint32_t VLANID : 12; /*!< [11..0] VLANID */ + __IOM uint32_t DEI : 1; /*!< [12..12] DEI */ + __IOM uint32_t PCP : 3; /*!< [15..13] PCP */ + __IOM uint32_t TAGMD : 2; /*!< [17..16] TAGMD */ + uint32_t : 14; + } P1_QSFTVL5_b; + }; + + union + { + __IOM uint32_t P1_QSFTVLM5; /*!< (@ 0x000024DC) Qci Stream Filter Table VLAN Mask */ + + struct + { + __IOM uint32_t VLANIDM : 12; /*!< [11..0] Qci stream filter table VLAN ID[11:0] bit mask */ + __IOM uint32_t DEIM : 1; /*!< [12..12] DEIM */ + __IOM uint32_t PCPM : 3; /*!< [15..13] Qci stream filter table VLAN PCP[2:0] bit mask */ + uint32_t : 16; + } P1_QSFTVLM5_b; + }; + + union + { + __IOM uint32_t P1_QSFTBL5; /*!< (@ 0x000024E0) Qci Stream Filter Table SDU/Gate/Meter ID */ + + struct + { + __IOM uint32_t QSTE : 1; /*!< [0..0] QSTE */ + uint32_t : 3; + __IOM uint32_t GAID : 3; /*!< [6..4] GAID */ + __IOM uint32_t GAIDV : 1; /*!< [7..7] GAIDV */ + __IOM uint32_t MEID : 3; /*!< [10..8] MEID */ + uint32_t : 1; + __IOM uint32_t MEIDV : 1; /*!< [12..12] MEIDV */ + uint32_t : 3; + __IOM uint32_t MSDU : 11; /*!< [26..16] Qci stream filter table max SDU size */ + __IOM uint32_t MSDUE : 1; /*!< [27..27] MSDUE */ + __IOM uint32_t QSMSM : 1; /*!< [28..28] Qci stream MSDU mode */ + uint32_t : 3; + } P1_QSFTBL5_b; + }; + + union + { + __IM uint32_t P1_QSMFC5; /*!< (@ 0x000024E4) Qci Stream Match Packet Count */ + + struct + { + __IM uint32_t QSMFC : 16; /*!< [15..0] Qci stream match packet count */ + uint32_t : 16; + } P1_QSMFC5_b; + }; + + union + { + __IM uint32_t P1_QMSPPC5; /*!< (@ 0x000024E8) Qci MSDU Passed Packet Count */ + + struct + { + __IM uint32_t QMSPPC : 16; /*!< [15..0] Qci msdu passed packet count */ + uint32_t : 16; + } P1_QMSPPC5_b; + }; + + union + { + __IM uint32_t P1_QMSRPC5; /*!< (@ 0x000024EC) Qci MSDU Reject Packet Count */ + + struct + { + __IM uint32_t QMSRPC : 16; /*!< [15..0] Qci MSDU rejected packet count */ + uint32_t : 16; + } P1_QMSRPC5_b; + }; + + union + { + __IOM uint32_t P1_QSTMACU6; /*!< (@ 0x000024F0) Qci Stream Filter Table MAC Address Upper Part */ + + struct + { + __IOM uint32_t MACA : 16; /*!< [15..0] Qci stream filter table MAC address[47:32] */ + __IOM uint32_t DASA : 1; /*!< [16..16] MAC address (MACA) select */ + uint32_t : 15; + } P1_QSTMACU6_b; + }; + + union + { + __IOM uint32_t P1_QSTMACD6; /*!< (@ 0x000024F4) Qci Stream Filter Table MAC Address Downer Part */ + + struct + { + __IOM uint32_t MACA : 32; /*!< [31..0] Qci stream filter table MAC address[31:0] */ + } P1_QSTMACD6_b; + }; + + union + { + __IOM uint32_t P1_QSTMAMU6; /*!< (@ 0x000024F8) Qci Stream Filter Table MAC Address Mask Upper + * Part */ + + struct + { + __IOM uint32_t MACAM : 16; /*!< [15..0] Qci stream filter table MAC address bit mask[47:32] */ + uint32_t : 16; + } P1_QSTMAMU6_b; + }; + + union + { + __IOM uint32_t P1_QSTMAMD6; /*!< (@ 0x000024FC) Qci Stream Filter Table MAC Address Mask Downer + * Part */ + + struct + { + __IOM uint32_t MACAM : 32; /*!< [31..0] Qci stream filter table MAC address bit mask[31:0] */ + } P1_QSTMAMD6_b; + }; + + union + { + __IOM uint32_t P1_QSFTVL6; /*!< (@ 0x00002500) Qci Stream Filter Table VLAN */ + + struct + { + __IOM uint32_t VLANID : 12; /*!< [11..0] VLANID */ + __IOM uint32_t DEI : 1; /*!< [12..12] DEI */ + __IOM uint32_t PCP : 3; /*!< [15..13] PCP */ + __IOM uint32_t TAGMD : 2; /*!< [17..16] TAGMD */ + uint32_t : 14; + } P1_QSFTVL6_b; + }; + + union + { + __IOM uint32_t P1_QSFTVLM6; /*!< (@ 0x00002504) Qci Stream Filter Table VLAN Mask */ + + struct + { + __IOM uint32_t VLANIDM : 12; /*!< [11..0] Qci stream filter table VLAN ID[11:0] bit mask */ + __IOM uint32_t DEIM : 1; /*!< [12..12] DEIM */ + __IOM uint32_t PCPM : 3; /*!< [15..13] Qci stream filter table VLAN PCP[2:0] bit mask */ + uint32_t : 16; + } P1_QSFTVLM6_b; + }; + + union + { + __IOM uint32_t P1_QSFTBL6; /*!< (@ 0x00002508) Qci Stream Filter Table SDU/Gate/Meter ID */ + + struct + { + __IOM uint32_t QSTE : 1; /*!< [0..0] QSTE */ + uint32_t : 3; + __IOM uint32_t GAID : 3; /*!< [6..4] GAID */ + __IOM uint32_t GAIDV : 1; /*!< [7..7] GAIDV */ + __IOM uint32_t MEID : 3; /*!< [10..8] MEID */ + uint32_t : 1; + __IOM uint32_t MEIDV : 1; /*!< [12..12] MEIDV */ + uint32_t : 3; + __IOM uint32_t MSDU : 11; /*!< [26..16] Qci stream filter table max SDU size */ + __IOM uint32_t MSDUE : 1; /*!< [27..27] MSDUE */ + __IOM uint32_t QSMSM : 1; /*!< [28..28] Qci stream MSDU mode */ + uint32_t : 3; + } P1_QSFTBL6_b; + }; + + union + { + __IM uint32_t P1_QSMFC6; /*!< (@ 0x0000250C) Qci Stream Match Packet Count */ + + struct + { + __IM uint32_t QSMFC : 16; /*!< [15..0] Qci stream match packet count */ + uint32_t : 16; + } P1_QSMFC6_b; + }; + + union + { + __IM uint32_t P1_QMSPPC6; /*!< (@ 0x00002510) Qci MSDU Passed Packet Count */ + + struct + { + __IM uint32_t QMSPPC : 16; /*!< [15..0] Qci msdu passed packet count */ + uint32_t : 16; + } P1_QMSPPC6_b; + }; + + union + { + __IM uint32_t P1_QMSRPC6; /*!< (@ 0x00002514) Qci MSDU Reject Packet Count */ + + struct + { + __IM uint32_t QMSRPC : 16; /*!< [15..0] Qci MSDU rejected packet count */ + uint32_t : 16; + } P1_QMSRPC6_b; + }; + + union + { + __IOM uint32_t P1_QSTMACU7; /*!< (@ 0x00002518) Qci Stream Filter Table MAC Address Upper Part */ + + struct + { + __IOM uint32_t MACA : 16; /*!< [15..0] Qci stream filter table MAC address[47:32] */ + __IOM uint32_t DASA : 1; /*!< [16..16] MAC address (MACA) select */ + uint32_t : 15; + } P1_QSTMACU7_b; + }; + + union + { + __IOM uint32_t P1_QSTMACD7; /*!< (@ 0x0000251C) Qci Stream Filter Table MAC Address Downer Part */ + + struct + { + __IOM uint32_t MACA : 32; /*!< [31..0] Qci stream filter table MAC address[31:0] */ + } P1_QSTMACD7_b; + }; + + union + { + __IOM uint32_t P1_QSTMAMU7; /*!< (@ 0x00002520) Qci Stream Filter Table MAC Address Mask Upper + * Part */ + + struct + { + __IOM uint32_t MACAM : 16; /*!< [15..0] Qci stream filter table MAC address bit mask[47:32] */ + uint32_t : 16; + } P1_QSTMAMU7_b; + }; + + union + { + __IOM uint32_t P1_QSTMAMD7; /*!< (@ 0x00002524) Qci Stream Filter Table MAC Address Mask Downer + * Part */ + + struct + { + __IOM uint32_t MACAM : 32; /*!< [31..0] Qci stream filter table MAC address bit mask[31:0] */ + } P1_QSTMAMD7_b; + }; + + union + { + __IOM uint32_t P1_QSFTVL7; /*!< (@ 0x00002528) Qci Stream Filter Table VLAN */ + + struct + { + __IOM uint32_t VLANID : 12; /*!< [11..0] VLANID */ + __IOM uint32_t DEI : 1; /*!< [12..12] DEI */ + __IOM uint32_t PCP : 3; /*!< [15..13] PCP */ + __IOM uint32_t TAGMD : 2; /*!< [17..16] TAGMD */ + uint32_t : 14; + } P1_QSFTVL7_b; + }; + + union + { + __IOM uint32_t P1_QSFTVLM7; /*!< (@ 0x0000252C) Qci Stream Filter Table VLAN Mask */ + + struct + { + __IOM uint32_t VLANIDM : 12; /*!< [11..0] Qci stream filter table VLAN ID[11:0] bit mask */ + __IOM uint32_t DEIM : 1; /*!< [12..12] DEIM */ + __IOM uint32_t PCPM : 3; /*!< [15..13] Qci stream filter table VLAN PCP[2:0] bit mask */ + uint32_t : 16; + } P1_QSFTVLM7_b; + }; + + union + { + __IOM uint32_t P1_QSFTBL7; /*!< (@ 0x00002530) Qci Stream Filter Table SDU/Gate/Meter ID */ + + struct + { + __IOM uint32_t QSTE : 1; /*!< [0..0] QSTE */ + uint32_t : 3; + __IOM uint32_t GAID : 3; /*!< [6..4] GAID */ + __IOM uint32_t GAIDV : 1; /*!< [7..7] GAIDV */ + __IOM uint32_t MEID : 3; /*!< [10..8] MEID */ + uint32_t : 1; + __IOM uint32_t MEIDV : 1; /*!< [12..12] MEIDV */ + uint32_t : 3; + __IOM uint32_t MSDU : 11; /*!< [26..16] Qci stream filter table max SDU size */ + __IOM uint32_t MSDUE : 1; /*!< [27..27] MSDUE */ + __IOM uint32_t QSMSM : 1; /*!< [28..28] Qci stream MSDU mode */ + uint32_t : 3; + } P1_QSFTBL7_b; + }; + + union + { + __IM uint32_t P1_QSMFC7; /*!< (@ 0x00002534) Qci Stream Match Packet Count */ + + struct + { + __IM uint32_t QSMFC : 16; /*!< [15..0] Qci stream match packet count */ + uint32_t : 16; + } P1_QSMFC7_b; + }; + + union + { + __IM uint32_t P1_QMSPPC7; /*!< (@ 0x00002538) Qci MSDU Passed Packet Count */ + + struct + { + __IM uint32_t QMSPPC : 16; /*!< [15..0] Qci msdu passed packet count */ + uint32_t : 16; + } P1_QMSPPC7_b; + }; + + union + { + __IM uint32_t P1_QMSRPC7; /*!< (@ 0x0000253C) Qci MSDU Reject Packet Count */ + + struct + { + __IM uint32_t QMSRPC : 16; /*!< [15..0] Qci MSDU rejected packet count */ + uint32_t : 16; + } P1_QMSRPC7_b; + }; + __IM uint32_t RESERVED69[42]; + + union + { + __IOM uint32_t P1_QSEIS; /*!< (@ 0x000025E8) Qci Stream Filter Error Interrupt Status (SDU + * Oversize) */ + + struct + { + __IOM uint32_t QSMOIS : 8; /*!< [7..0] MSDU oversize frames Interrupt status[s] */ + uint32_t : 24; + } P1_QSEIS_b; + }; + + union + { + __IOM uint32_t P1_QSEIE; /*!< (@ 0x000025EC) Qci Stream Filter Error Interrupt Enable */ + + struct + { + __IOM uint32_t QSMOIE : 8; /*!< [7..0] MSDU oversize frames Interrupt Enable[s] */ + uint32_t : 24; + } P1_QSEIE_b; + }; + + union + { + __OM uint32_t P1_QSEID; /*!< (@ 0x000025F0) Qci Stream Filter Error Interrupt Disable */ + + struct + { + __OM uint32_t QSMOID : 8; /*!< [7..0] MSDU oversize frames Interrupt Disable[s] */ + uint32_t : 24; + } P1_QSEID_b; + }; + __IM uint32_t RESERVED70[3]; + + union + { + __IOM uint32_t P1_QGMOD; /*!< (@ 0x00002600) Qci Gate Mode Register */ + + struct + { + __IOM uint32_t QGMOD : 8; /*!< [7..0] Flow gate mode[g] */ + uint32_t : 24; + } P1_QGMOD_b; + }; + + union + { + __IM uint32_t P1_QGPPC; /*!< (@ 0x00002604) Qci Gate (All) Passed Packet Count Port 1 */ + + struct + { + __IM uint32_t QGPPC : 16; /*!< [15..0] Qci gate passed packet count */ + uint32_t : 16; + } P1_QGPPC_b; + }; + + union + { + __IM uint32_t P1_QGDPC0; /*!< (@ 0x00002608) Qci Gate 0 Dropped Packet Count Port n */ + + struct + { + __IM uint32_t QGDPC : 16; /*!< [15..0] Qci gate dropped packet count */ + uint32_t : 16; + } P1_QGDPC0_b; + }; + __IM uint32_t RESERVED71; + + union + { + __IM uint32_t P1_QGDPC1; /*!< (@ 0x00002610) Qci Gate 1 Dropped Packet Count Port n */ + + struct + { + __IM uint32_t QGDPC : 16; /*!< [15..0] Qci gate dropped packet count */ + uint32_t : 16; + } P1_QGDPC1_b; + }; + __IM uint32_t RESERVED72; + + union + { + __IM uint32_t P1_QGDPC2; /*!< (@ 0x00002618) Qci Gate 2 Dropped Packet Count Port n */ + + struct + { + __IM uint32_t QGDPC : 16; /*!< [15..0] Qci gate dropped packet count */ + uint32_t : 16; + } P1_QGDPC2_b; + }; + __IM uint32_t RESERVED73; + + union + { + __IM uint32_t P1_QGDPC3; /*!< (@ 0x00002620) Qci Gate 3 Dropped Packet Count Port n */ + + struct + { + __IM uint32_t QGDPC : 16; /*!< [15..0] Qci gate dropped packet count */ + uint32_t : 16; + } P1_QGDPC3_b; + }; + __IM uint32_t RESERVED74; + + union + { + __IM uint32_t P1_QGDPC4; /*!< (@ 0x00002628) Qci Gate 4 Dropped Packet Count Port n */ + + struct + { + __IM uint32_t QGDPC : 16; /*!< [15..0] Qci gate dropped packet count */ + uint32_t : 16; + } P1_QGDPC4_b; + }; + __IM uint32_t RESERVED75; + + union + { + __IM uint32_t P1_QGDPC5; /*!< (@ 0x00002630) Qci Gate 5 Dropped Packet Count Port n */ + + struct + { + __IM uint32_t QGDPC : 16; /*!< [15..0] Qci gate dropped packet count */ + uint32_t : 16; + } P1_QGDPC5_b; + }; + __IM uint32_t RESERVED76; + + union + { + __IM uint32_t P1_QGDPC6; /*!< (@ 0x00002638) Qci Gate 6 Dropped Packet Count Port n */ + + struct + { + __IM uint32_t QGDPC : 16; /*!< [15..0] Qci gate dropped packet count */ + uint32_t : 16; + } P1_QGDPC6_b; + }; + __IM uint32_t RESERVED77; + + union + { + __IM uint32_t P1_QGDPC7; /*!< (@ 0x00002640) Qci Gate 7 Dropped Packet Count Port n */ + + struct + { + __IM uint32_t QGDPC : 16; /*!< [15..0] Qci gate dropped packet count */ + uint32_t : 16; + } P1_QGDPC7_b; + }; + + union + { + __IOM uint32_t P1_QGEIS; /*!< (@ 0x00002644) Qci Gate Error Interrupt Status */ + + struct + { + __IOM uint32_t QGMOIS : 8; /*!< [7..0] Gating error Interrupt status[g] */ + uint32_t : 24; + } P1_QGEIS_b; + }; + + union + { + __IOM uint32_t P1_QGEIE; /*!< (@ 0x00002648) Qci Gate Error Interrupt Enable */ + + struct + { + __IOM uint32_t QGMOIE : 8; /*!< [7..0] Gating error Interrupt Enable[g] */ + uint32_t : 24; + } P1_QGEIE_b; + }; + + union + { + __OM uint32_t P1_QGEID; /*!< (@ 0x0000264C) Qci Gate Error Interrupt Disable */ + + struct + { + __OM uint32_t QGMOID : 8; /*!< [7..0] Gating error Interrupt Disable[g] */ + uint32_t : 24; + } P1_QGEID_b; + }; + + union + { + __IOM uint32_t P1_QMDESC0; /*!< (@ 0x00002650) Qci Port n Flow Meter 0 Descriptor Register */ + + struct + { + __IOM uint32_t RFD : 1; /*!< [0..0] Red frame drop */ + __IOM uint32_t MM : 1; /*!< [1..1] Flow meter mode */ + __IOM uint32_t CF : 1; /*!< [2..2] Coupling flag */ + uint32_t : 29; + } P1_QMDESC0_b; + }; + + union + { + __IOM uint32_t P1_QMCBSC0; /*!< (@ 0x00002654) Qci Meter CBS Configuration Port n, Meter 0 */ + + struct + { + __IOM uint32_t CBS : 18; /*!< [17..0] CBS (Committed Burst Size) */ + uint32_t : 14; + } P1_QMCBSC0_b; + }; + + union + { + __IOM uint32_t P1_QMCIRC0; /*!< (@ 0x00002658) Qci Meter CIR Configuration n 0 */ + + struct + { + __IOM uint32_t CIR : 17; /*!< [16..0] CIR (Committed Information Rate) */ + uint32_t : 15; + } P1_QMCIRC0_b; + }; + + union + { + __IM uint32_t P1_QMGPC0; /*!< (@ 0x0000265C) Qci Meter Green Packet Count */ + + struct + { + __IM uint32_t QMGPC : 16; /*!< [15..0] Qci meter green packet count */ + uint32_t : 16; + } P1_QMGPC0_b; + }; + + union + { + __IM uint32_t P1_QMRPC0; /*!< (@ 0x00002660) Qci Meter Red Packet Count */ + + struct + { + __IM uint32_t QMRPC : 16; /*!< [15..0] Qci meter red packet count */ + uint32_t : 16; + } P1_QMRPC0_b; + }; + + union + { + __IOM uint32_t P1_QMDESC1; /*!< (@ 0x00002664) Qci Port n Flow Meter 1 Descriptor Register */ + + struct + { + __IOM uint32_t RFD : 1; /*!< [0..0] Red frame drop */ + __IOM uint32_t MM : 1; /*!< [1..1] Flow meter mode */ + __IOM uint32_t CF : 1; /*!< [2..2] Coupling flag */ + uint32_t : 29; + } P1_QMDESC1_b; + }; + + union + { + __IOM uint32_t P1_QMCBSC1; /*!< (@ 0x00002668) Qci Meter CBS Configuration Port n, Meter 1 */ + + struct + { + __IOM uint32_t CBS : 18; /*!< [17..0] CBS (Committed Burst Size) */ + uint32_t : 14; + } P1_QMCBSC1_b; + }; + + union + { + __IOM uint32_t P1_QMCIRC1; /*!< (@ 0x0000266C) Qci Meter CIR Configuration n 1 */ + + struct + { + __IOM uint32_t CIR : 17; /*!< [16..0] CIR (Committed Information Rate) */ + uint32_t : 15; + } P1_QMCIRC1_b; + }; + + union + { + __IM uint32_t P1_QMGPC1; /*!< (@ 0x00002670) Qci Meter Green Packet Count */ + + struct + { + __IM uint32_t QMGPC : 16; /*!< [15..0] Qci meter green packet count */ + uint32_t : 16; + } P1_QMGPC1_b; + }; + + union + { + __IM uint32_t P1_QMRPC1; /*!< (@ 0x00002674) Qci Meter Red Packet Count */ + + struct + { + __IM uint32_t QMRPC : 16; /*!< [15..0] Qci meter red packet count */ + uint32_t : 16; + } P1_QMRPC1_b; + }; + + union + { + __IOM uint32_t P1_QMDESC2; /*!< (@ 0x00002678) Qci Port n Flow Meter 2 Descriptor Register */ + + struct + { + __IOM uint32_t RFD : 1; /*!< [0..0] Red frame drop */ + __IOM uint32_t MM : 1; /*!< [1..1] Flow meter mode */ + __IOM uint32_t CF : 1; /*!< [2..2] Coupling flag */ + uint32_t : 29; + } P1_QMDESC2_b; + }; + + union + { + __IOM uint32_t P1_QMCBSC2; /*!< (@ 0x0000267C) Qci Meter CBS Configuration Port n, Meter 2 */ + + struct + { + __IOM uint32_t CBS : 18; /*!< [17..0] CBS (Committed Burst Size) */ + uint32_t : 14; + } P1_QMCBSC2_b; + }; + + union + { + __IOM uint32_t P1_QMCIRC2; /*!< (@ 0x00002680) Qci Meter CIR Configuration n 2 */ + + struct + { + __IOM uint32_t CIR : 17; /*!< [16..0] CIR (Committed Information Rate) */ + uint32_t : 15; + } P1_QMCIRC2_b; + }; + + union + { + __IM uint32_t P1_QMGPC2; /*!< (@ 0x00002684) Qci Meter Green Packet Count */ + + struct + { + __IM uint32_t QMGPC : 16; /*!< [15..0] Qci meter green packet count */ + uint32_t : 16; + } P1_QMGPC2_b; + }; + + union + { + __IM uint32_t P1_QMRPC2; /*!< (@ 0x00002688) Qci Meter Red Packet Count */ + + struct + { + __IM uint32_t QMRPC : 16; /*!< [15..0] Qci meter red packet count */ + uint32_t : 16; + } P1_QMRPC2_b; + }; + + union + { + __IOM uint32_t P1_QMDESC3; /*!< (@ 0x0000268C) Qci Port n Flow Meter 3 Descriptor Register */ + + struct + { + __IOM uint32_t RFD : 1; /*!< [0..0] Red frame drop */ + __IOM uint32_t MM : 1; /*!< [1..1] Flow meter mode */ + __IOM uint32_t CF : 1; /*!< [2..2] Coupling flag */ + uint32_t : 29; + } P1_QMDESC3_b; + }; + + union + { + __IOM uint32_t P1_QMCBSC3; /*!< (@ 0x00002690) Qci Meter CBS Configuration Port n, Meter 3 */ + + struct + { + __IOM uint32_t CBS : 18; /*!< [17..0] CBS (Committed Burst Size) */ + uint32_t : 14; + } P1_QMCBSC3_b; + }; + + union + { + __IOM uint32_t P1_QMCIRC3; /*!< (@ 0x00002694) Qci Meter CIR Configuration n 3 */ + + struct + { + __IOM uint32_t CIR : 17; /*!< [16..0] CIR (Committed Information Rate) */ + uint32_t : 15; + } P1_QMCIRC3_b; + }; + + union + { + __IM uint32_t P1_QMGPC3; /*!< (@ 0x00002698) Qci Meter Green Packet Count */ + + struct + { + __IM uint32_t QMGPC : 16; /*!< [15..0] Qci meter green packet count */ + uint32_t : 16; + } P1_QMGPC3_b; + }; + + union + { + __IM uint32_t P1_QMRPC3; /*!< (@ 0x0000269C) Qci Meter Red Packet Count */ + + struct + { + __IM uint32_t QMRPC : 16; /*!< [15..0] Qci meter red packet count */ + uint32_t : 16; + } P1_QMRPC3_b; + }; + + union + { + __IOM uint32_t P1_QMDESC4; /*!< (@ 0x000026A0) Qci Port n Flow Meter 4 Descriptor Register */ + + struct + { + __IOM uint32_t RFD : 1; /*!< [0..0] Red frame drop */ + __IOM uint32_t MM : 1; /*!< [1..1] Flow meter mode */ + __IOM uint32_t CF : 1; /*!< [2..2] Coupling flag */ + uint32_t : 29; + } P1_QMDESC4_b; + }; + + union + { + __IOM uint32_t P1_QMCBSC4; /*!< (@ 0x000026A4) Qci Meter CBS Configuration Port n, Meter 4 */ + + struct + { + __IOM uint32_t CBS : 18; /*!< [17..0] CBS (Committed Burst Size) */ + uint32_t : 14; + } P1_QMCBSC4_b; + }; + + union + { + __IOM uint32_t P1_QMCIRC4; /*!< (@ 0x000026A8) Qci Meter CIR Configuration n 4 */ + + struct + { + __IOM uint32_t CIR : 17; /*!< [16..0] CIR (Committed Information Rate) */ + uint32_t : 15; + } P1_QMCIRC4_b; + }; + + union + { + __IM uint32_t P1_QMGPC4; /*!< (@ 0x000026AC) Qci Meter Green Packet Count */ + + struct + { + __IM uint32_t QMGPC : 16; /*!< [15..0] Qci meter green packet count */ + uint32_t : 16; + } P1_QMGPC4_b; + }; + + union + { + __IM uint32_t P1_QMRPC4; /*!< (@ 0x000026B0) Qci Meter Red Packet Count */ + + struct + { + __IM uint32_t QMRPC : 16; /*!< [15..0] Qci meter red packet count */ + uint32_t : 16; + } P1_QMRPC4_b; + }; + + union + { + __IOM uint32_t P1_QMDESC5; /*!< (@ 0x000026B4) Qci Port n Flow Meter 5 Descriptor Register */ + + struct + { + __IOM uint32_t RFD : 1; /*!< [0..0] Red frame drop */ + __IOM uint32_t MM : 1; /*!< [1..1] Flow meter mode */ + __IOM uint32_t CF : 1; /*!< [2..2] Coupling flag */ + uint32_t : 29; + } P1_QMDESC5_b; + }; + + union + { + __IOM uint32_t P1_QMCBSC5; /*!< (@ 0x000026B8) Qci Meter CBS Configuration Port n, Meter 5 */ + + struct + { + __IOM uint32_t CBS : 18; /*!< [17..0] CBS (Committed Burst Size) */ + uint32_t : 14; + } P1_QMCBSC5_b; + }; + + union + { + __IOM uint32_t P1_QMCIRC5; /*!< (@ 0x000026BC) Qci Meter CIR Configuration n 5 */ + + struct + { + __IOM uint32_t CIR : 17; /*!< [16..0] CIR (Committed Information Rate) */ + uint32_t : 15; + } P1_QMCIRC5_b; + }; + + union + { + __IM uint32_t P1_QMGPC5; /*!< (@ 0x000026C0) Qci Meter Green Packet Count */ + + struct + { + __IM uint32_t QMGPC : 16; /*!< [15..0] Qci meter green packet count */ + uint32_t : 16; + } P1_QMGPC5_b; + }; + + union + { + __IM uint32_t P1_QMRPC5; /*!< (@ 0x000026C4) Qci Meter Red Packet Count */ + + struct + { + __IM uint32_t QMRPC : 16; /*!< [15..0] Qci meter red packet count */ + uint32_t : 16; + } P1_QMRPC5_b; + }; + + union + { + __IOM uint32_t P1_QMDESC6; /*!< (@ 0x000026C8) Qci Port n Flow Meter 6 Descriptor Register */ + + struct + { + __IOM uint32_t RFD : 1; /*!< [0..0] Red frame drop */ + __IOM uint32_t MM : 1; /*!< [1..1] Flow meter mode */ + __IOM uint32_t CF : 1; /*!< [2..2] Coupling flag */ + uint32_t : 29; + } P1_QMDESC6_b; + }; + + union + { + __IOM uint32_t P1_QMCBSC6; /*!< (@ 0x000026CC) Qci Meter CBS Configuration Port n, Meter 6 */ + + struct + { + __IOM uint32_t CBS : 18; /*!< [17..0] CBS (Committed Burst Size) */ + uint32_t : 14; + } P1_QMCBSC6_b; + }; + + union + { + __IOM uint32_t P1_QMCIRC6; /*!< (@ 0x000026D0) Qci Meter CIR Configuration n 6 */ + + struct + { + __IOM uint32_t CIR : 17; /*!< [16..0] CIR (Committed Information Rate) */ + uint32_t : 15; + } P1_QMCIRC6_b; + }; + + union + { + __IM uint32_t P1_QMGPC6; /*!< (@ 0x000026D4) Qci Meter Green Packet Count */ + + struct + { + __IM uint32_t QMGPC : 16; /*!< [15..0] Qci meter green packet count */ + uint32_t : 16; + } P1_QMGPC6_b; + }; + + union + { + __IM uint32_t P1_QMRPC6; /*!< (@ 0x000026D8) Qci Meter Red Packet Count */ + + struct + { + __IM uint32_t QMRPC : 16; /*!< [15..0] Qci meter red packet count */ + uint32_t : 16; + } P1_QMRPC6_b; + }; + + union + { + __IOM uint32_t P1_QMDESC7; /*!< (@ 0x000026DC) Qci Port n Flow Meter 7 Descriptor Register */ + + struct + { + __IOM uint32_t RFD : 1; /*!< [0..0] Red frame drop */ + __IOM uint32_t MM : 1; /*!< [1..1] Flow meter mode */ + __IOM uint32_t CF : 1; /*!< [2..2] Coupling flag */ + uint32_t : 29; + } P1_QMDESC7_b; + }; + + union + { + __IOM uint32_t P1_QMCBSC7; /*!< (@ 0x000026E0) Qci Meter CBS Configuration Port n, Meter 7 */ + + struct + { + __IOM uint32_t CBS : 18; /*!< [17..0] CBS (Committed Burst Size) */ + uint32_t : 14; + } P1_QMCBSC7_b; + }; + + union + { + __IOM uint32_t P1_QMCIRC7; /*!< (@ 0x000026E4) Qci Meter CIR Configuration n 7 */ + + struct + { + __IOM uint32_t CIR : 17; /*!< [16..0] CIR (Committed Information Rate) */ + uint32_t : 15; + } P1_QMCIRC7_b; + }; + + union + { + __IM uint32_t P1_QMGPC7; /*!< (@ 0x000026E8) Qci Meter Green Packet Count */ + + struct + { + __IM uint32_t QMGPC : 16; /*!< [15..0] Qci meter green packet count */ + uint32_t : 16; + } P1_QMGPC7_b; + }; + + union + { + __IM uint32_t P1_QMRPC7; /*!< (@ 0x000026EC) Qci Meter Red Packet Count */ + + struct + { + __IM uint32_t QMRPC : 16; /*!< [15..0] Qci meter red packet count */ + uint32_t : 16; + } P1_QMRPC7_b; + }; + + union + { + __IOM uint32_t P1_QMEC; /*!< (@ 0x000026F0) Qci Meter Enable Configuration */ + + struct + { + __IOM uint32_t ME : 8; /*!< [7..0] Enable meter[m] */ + uint32_t : 24; + } P1_QMEC_b; + }; + + union + { + __IOM uint32_t P1_QMEIS; /*!< (@ 0x000026F4) Qci Meter Error Interrupt Status */ + + struct + { + __IOM uint32_t QRFIS : 8; /*!< [7..0] Red frames Interrupt status[m] */ + uint32_t : 24; + } P1_QMEIS_b; + }; + + union + { + __IOM uint32_t P1_QMEIE; /*!< (@ 0x000026F8) Qci Meter Error Interrupt Enable */ + + struct + { + __IOM uint32_t QRFIE : 8; /*!< [7..0] Red frames Interrupt Enable[m] */ + uint32_t : 24; + } P1_QMEIE_b; + }; + + union + { + __OM uint32_t P1_QMEID; /*!< (@ 0x000026FC) Qci Meter Error Interrupt Disable */ + + struct + { + __OM uint32_t QRFID : 8; /*!< [7..0] Red frames Interrupt Disable[m] */ + uint32_t : 24; + } P1_QMEID_b; + }; + + union + { + __IOM uint32_t P1_PCP_REMAP; /*!< (@ 0x00002700) Port 1 VLAN Priority Code Point (PCP) Remap */ + + struct + { + __IOM uint32_t PCP_REMAP0 : 3; /*!< [2..0] PCP_REMAP0 */ + __IOM uint32_t PCP_REMAP1 : 3; /*!< [5..3] PCP_REMAP1 */ + __IOM uint32_t PCP_REMAP2 : 3; /*!< [8..6] PCP_REMAP2 */ + __IOM uint32_t PCP_REMAP3 : 3; /*!< [11..9] PCP_REMAP3 */ + __IOM uint32_t PCP_REMAP4 : 3; /*!< [14..12] PCP_REMAP4 */ + __IOM uint32_t PCP_REMAP5 : 3; /*!< [17..15] PCP_REMAP5 */ + __IOM uint32_t PCP_REMAP6 : 3; /*!< [20..18] PCP_REMAP6 */ + __IOM uint32_t PCP_REMAP7 : 3; /*!< [23..21] PCP_REMAP7 */ + uint32_t : 8; + } P1_PCP_REMAP_b; + }; + + union + { + __IOM uint32_t P1_VLAN_TAG; /*!< (@ 0x00002704) Port 1 VLAN TAG Information for Priority Regeneration */ + + struct + { + __IOM uint32_t VID : 12; /*!< [11..0] VID */ + __IOM uint32_t DEI : 1; /*!< [12..12] DEI */ + __IOM uint32_t PCP : 3; /*!< [15..13] PCP */ + __IOM uint32_t TPID : 16; /*!< [31..16] TPID */ + } P1_VLAN_TAG_b; + }; + + union + { + __IOM uint32_t P1_VLAN_MODE; /*!< (@ 0x00002708) Port 1 VLAN Mode */ + + struct + { + __IOM uint32_t VITM : 2; /*!< [1..0] VLAN input tagging mode */ + __IOM uint32_t VICM : 2; /*!< [3..2] VLAN input verification mode */ + uint32_t : 28; + } P1_VLAN_MODE_b; + }; + + union + { + __IM uint32_t P1_VIC_DROP_CNT; /*!< (@ 0x0000270C) Port 1 VLAN Ingress Check Drop Frame Counter */ + + struct + { + __IM uint32_t VIC_DROP_CNT : 16; /*!< [15..0] Port n VLAN ingress check drop frame count */ + uint32_t : 16; + } P1_VIC_DROP_CNT_b; + }; + __IM uint32_t RESERVED78[6]; + + union + { + __IM uint32_t P1_LOOKUP_HIT_CNT; /*!< (@ 0x00002728) Port 1 DST Address Lookup Hit Counter */ + + struct + { + __IM uint32_t LOOKUP_HIT_CNT : 24; /*!< [23..0] Port n Lookup hit count */ + uint32_t : 8; + } P1_LOOKUP_HIT_CNT_b; + }; + + union + { + __IOM uint32_t P1_ERROR_STATUS; /*!< (@ 0x0000272C) Port 1 Frame Parser Runtime Error Status */ + + struct + { + __IOM uint32_t SOPERR : 1; /*!< [0..0] SOP error detected in frame parser */ + __IOM uint32_t PUNDSZ : 1; /*!< [1..1] Preemptable frame under size error detected in frame + * parser */ + __IOM uint32_t POVRSZ : 1; /*!< [2..2] Preemptable frame over size error detected in frame parser */ + __IOM uint32_t EUNDSZ : 1; /*!< [3..3] Express frame under size error detected in frame parser */ + __IOM uint32_t EOVRSZ : 1; /*!< [4..4] Express frame over size error detected in frame parser */ + uint32_t : 27; + } P1_ERROR_STATUS_b; + }; + + union + { + __IOM uint32_t P1_ERROR_MASK; /*!< (@ 0x00002730) Port 1 Frame Parser Runtime Error Mask */ + + struct + { + __IOM uint32_t MSOPERR : 1; /*!< [0..0] Error mask of SOPERR (SOP error) */ + __IOM uint32_t MPUNDSZ : 1; /*!< [1..1] Error mask of PUNDSZ (Preemptable frame under size error) */ + __IOM uint32_t MPOVRSZ : 1; /*!< [2..2] Error mask of POVRSZ (Preemptable frame over size error) */ + __IOM uint32_t MEUNDSZ : 1; /*!< [3..3] Error mask of EUNDSZ (Express frame under size error) */ + __IOM uint32_t MEOVRSZ : 1; /*!< [4..4] Error mask of EOVRSZ (Express frame over size error) */ + uint32_t : 27; + } P1_ERROR_MASK_b; + }; + __IM uint32_t RESERVED79[51]; + + union + { + __IOM uint32_t P2_QSTMACU0; /*!< (@ 0x00002800) Qci Stream Filter Table MAC Address Upper Part */ + + struct + { + __IOM uint32_t MACA : 16; /*!< [15..0] Qci stream filter table MAC address[47:32] */ + __IOM uint32_t DASA : 1; /*!< [16..16] MAC address (MACA) select */ + uint32_t : 15; + } P2_QSTMACU0_b; + }; + + union + { + __IOM uint32_t P2_QSTMACD0; /*!< (@ 0x00002804) Qci Stream Filter Table MAC Address Downer Part */ + + struct + { + __IOM uint32_t MACA : 32; /*!< [31..0] Qci stream filter table MAC address[31:0] */ + } P2_QSTMACD0_b; + }; + + union + { + __IOM uint32_t P2_QSTMAMU0; /*!< (@ 0x00002808) Qci Stream Filter Table MAC Address Mask Upper + * Part */ + + struct + { + __IOM uint32_t MACAM : 16; /*!< [15..0] Qci stream filter table MAC address bit mask[47:32] */ + uint32_t : 16; + } P2_QSTMAMU0_b; + }; + + union + { + __IOM uint32_t P2_QSTMAMD0; /*!< (@ 0x0000280C) Qci Stream Filter Table MAC Address Mask Downer + * Part */ + + struct + { + __IOM uint32_t MACAM : 32; /*!< [31..0] Qci stream filter table MAC address bit mask[31:0] */ + } P2_QSTMAMD0_b; + }; + + union + { + __IOM uint32_t P2_QSFTVL0; /*!< (@ 0x00002810) Qci Stream Filter Table VLAN */ + + struct + { + __IOM uint32_t VLANID : 12; /*!< [11..0] VLANID */ + __IOM uint32_t DEI : 1; /*!< [12..12] DEI */ + __IOM uint32_t PCP : 3; /*!< [15..13] PCP */ + __IOM uint32_t TAGMD : 2; /*!< [17..16] TAGMD */ + uint32_t : 14; + } P2_QSFTVL0_b; + }; + + union + { + __IOM uint32_t P2_QSFTVLM0; /*!< (@ 0x00002814) Qci Stream Filter Table VLAN Mask */ + + struct + { + __IOM uint32_t VLANIDM : 12; /*!< [11..0] Qci stream filter table VLAN ID[11:0] bit mask */ + __IOM uint32_t DEIM : 1; /*!< [12..12] DEIM */ + __IOM uint32_t PCPM : 3; /*!< [15..13] Qci stream filter table VLAN PCP[2:0] bit mask */ + uint32_t : 16; + } P2_QSFTVLM0_b; + }; + + union + { + __IOM uint32_t P2_QSFTBL0; /*!< (@ 0x00002818) Qci Stream Filter Table SDU/Gate/Meter ID */ + + struct + { + __IOM uint32_t QSTE : 1; /*!< [0..0] QSTE */ + uint32_t : 3; + __IOM uint32_t GAID : 3; /*!< [6..4] GAID */ + __IOM uint32_t GAIDV : 1; /*!< [7..7] GAIDV */ + __IOM uint32_t MEID : 3; /*!< [10..8] MEID */ + uint32_t : 1; + __IOM uint32_t MEIDV : 1; /*!< [12..12] MEIDV */ + uint32_t : 3; + __IOM uint32_t MSDU : 11; /*!< [26..16] Qci stream filter table max SDU size */ + __IOM uint32_t MSDUE : 1; /*!< [27..27] MSDUE */ + __IOM uint32_t QSMSM : 1; /*!< [28..28] Qci stream MSDU mode */ + uint32_t : 3; + } P2_QSFTBL0_b; + }; + + union + { + __IM uint32_t P2_QSMFC0; /*!< (@ 0x0000281C) Qci Stream Match Packet Count */ + + struct + { + __IM uint32_t QSMFC : 16; /*!< [15..0] Qci stream match packet count */ + uint32_t : 16; + } P2_QSMFC0_b; + }; + + union + { + __IM uint32_t P2_QMSPPC0; /*!< (@ 0x00002820) Qci MSDU Passed Packet Count */ + + struct + { + __IM uint32_t QMSPPC : 16; /*!< [15..0] Qci msdu passed packet count */ + uint32_t : 16; + } P2_QMSPPC0_b; + }; + + union + { + __IM uint32_t P2_QMSRPC0; /*!< (@ 0x00002824) Qci MSDU Reject Packet Count */ + + struct + { + __IM uint32_t QMSRPC : 16; /*!< [15..0] Qci MSDU rejected packet count */ + uint32_t : 16; + } P2_QMSRPC0_b; + }; + + union + { + __IOM uint32_t P2_QSTMACU1; /*!< (@ 0x00002828) Qci Stream Filter Table MAC Address Upper Part */ + + struct + { + __IOM uint32_t MACA : 16; /*!< [15..0] Qci stream filter table MAC address[47:32] */ + __IOM uint32_t DASA : 1; /*!< [16..16] MAC address (MACA) select */ + uint32_t : 15; + } P2_QSTMACU1_b; + }; + + union + { + __IOM uint32_t P2_QSTMACD1; /*!< (@ 0x0000282C) Qci Stream Filter Table MAC Address Downer Part */ + + struct + { + __IOM uint32_t MACA : 32; /*!< [31..0] Qci stream filter table MAC address[31:0] */ + } P2_QSTMACD1_b; + }; + + union + { + __IOM uint32_t P2_QSTMAMU1; /*!< (@ 0x00002830) Qci Stream Filter Table MAC Address Mask Upper + * Part */ + + struct + { + __IOM uint32_t MACAM : 16; /*!< [15..0] Qci stream filter table MAC address bit mask[47:32] */ + uint32_t : 16; + } P2_QSTMAMU1_b; + }; + + union + { + __IOM uint32_t P2_QSTMAMD1; /*!< (@ 0x00002834) Qci Stream Filter Table MAC Address Mask Downer + * Part */ + + struct + { + __IOM uint32_t MACAM : 32; /*!< [31..0] Qci stream filter table MAC address bit mask[31:0] */ + } P2_QSTMAMD1_b; + }; + + union + { + __IOM uint32_t P2_QSFTVL1; /*!< (@ 0x00002838) Qci Stream Filter Table VLAN */ + + struct + { + __IOM uint32_t VLANID : 12; /*!< [11..0] VLANID */ + __IOM uint32_t DEI : 1; /*!< [12..12] DEI */ + __IOM uint32_t PCP : 3; /*!< [15..13] PCP */ + __IOM uint32_t TAGMD : 2; /*!< [17..16] TAGMD */ + uint32_t : 14; + } P2_QSFTVL1_b; + }; + + union + { + __IOM uint32_t P2_QSFTVLM1; /*!< (@ 0x0000283C) Qci Stream Filter Table VLAN Mask */ + + struct + { + __IOM uint32_t VLANIDM : 12; /*!< [11..0] Qci stream filter table VLAN ID[11:0] bit mask */ + __IOM uint32_t DEIM : 1; /*!< [12..12] DEIM */ + __IOM uint32_t PCPM : 3; /*!< [15..13] Qci stream filter table VLAN PCP[2:0] bit mask */ + uint32_t : 16; + } P2_QSFTVLM1_b; + }; + + union + { + __IOM uint32_t P2_QSFTBL1; /*!< (@ 0x00002840) Qci Stream Filter Table SDU/Gate/Meter ID */ + + struct + { + __IOM uint32_t QSTE : 1; /*!< [0..0] QSTE */ + uint32_t : 3; + __IOM uint32_t GAID : 3; /*!< [6..4] GAID */ + __IOM uint32_t GAIDV : 1; /*!< [7..7] GAIDV */ + __IOM uint32_t MEID : 3; /*!< [10..8] MEID */ + uint32_t : 1; + __IOM uint32_t MEIDV : 1; /*!< [12..12] MEIDV */ + uint32_t : 3; + __IOM uint32_t MSDU : 11; /*!< [26..16] Qci stream filter table max SDU size */ + __IOM uint32_t MSDUE : 1; /*!< [27..27] MSDUE */ + __IOM uint32_t QSMSM : 1; /*!< [28..28] Qci stream MSDU mode */ + uint32_t : 3; + } P2_QSFTBL1_b; + }; + + union + { + __IM uint32_t P2_QSMFC1; /*!< (@ 0x00002844) Qci Stream Match Packet Count */ + + struct + { + __IM uint32_t QSMFC : 16; /*!< [15..0] Qci stream match packet count */ + uint32_t : 16; + } P2_QSMFC1_b; + }; + + union + { + __IM uint32_t P2_QMSPPC1; /*!< (@ 0x00002848) Qci MSDU Passed Packet Count */ + + struct + { + __IM uint32_t QMSPPC : 16; /*!< [15..0] Qci msdu passed packet count */ + uint32_t : 16; + } P2_QMSPPC1_b; + }; + + union + { + __IM uint32_t P2_QMSRPC1; /*!< (@ 0x0000284C) Qci MSDU Reject Packet Count */ + + struct + { + __IM uint32_t QMSRPC : 16; /*!< [15..0] Qci MSDU rejected packet count */ + uint32_t : 16; + } P2_QMSRPC1_b; + }; + + union + { + __IOM uint32_t P2_QSTMACU2; /*!< (@ 0x00002850) Qci Stream Filter Table MAC Address Upper Part */ + + struct + { + __IOM uint32_t MACA : 16; /*!< [15..0] Qci stream filter table MAC address[47:32] */ + __IOM uint32_t DASA : 1; /*!< [16..16] MAC address (MACA) select */ + uint32_t : 15; + } P2_QSTMACU2_b; + }; + + union + { + __IOM uint32_t P2_QSTMACD2; /*!< (@ 0x00002854) Qci Stream Filter Table MAC Address Downer Part */ + + struct + { + __IOM uint32_t MACA : 32; /*!< [31..0] Qci stream filter table MAC address[31:0] */ + } P2_QSTMACD2_b; + }; + + union + { + __IOM uint32_t P2_QSTMAMU2; /*!< (@ 0x00002858) Qci Stream Filter Table MAC Address Mask Upper + * Part */ + + struct + { + __IOM uint32_t MACAM : 16; /*!< [15..0] Qci stream filter table MAC address bit mask[47:32] */ + uint32_t : 16; + } P2_QSTMAMU2_b; + }; + + union + { + __IOM uint32_t P2_QSTMAMD2; /*!< (@ 0x0000285C) Qci Stream Filter Table MAC Address Mask Downer + * Part */ + + struct + { + __IOM uint32_t MACAM : 32; /*!< [31..0] Qci stream filter table MAC address bit mask[31:0] */ + } P2_QSTMAMD2_b; + }; + + union + { + __IOM uint32_t P2_QSFTVL2; /*!< (@ 0x00002860) Qci Stream Filter Table VLAN */ + + struct + { + __IOM uint32_t VLANID : 12; /*!< [11..0] VLANID */ + __IOM uint32_t DEI : 1; /*!< [12..12] DEI */ + __IOM uint32_t PCP : 3; /*!< [15..13] PCP */ + __IOM uint32_t TAGMD : 2; /*!< [17..16] TAGMD */ + uint32_t : 14; + } P2_QSFTVL2_b; + }; + + union + { + __IOM uint32_t P2_QSFTVLM2; /*!< (@ 0x00002864) Qci Stream Filter Table VLAN Mask */ + + struct + { + __IOM uint32_t VLANIDM : 12; /*!< [11..0] Qci stream filter table VLAN ID[11:0] bit mask */ + __IOM uint32_t DEIM : 1; /*!< [12..12] DEIM */ + __IOM uint32_t PCPM : 3; /*!< [15..13] Qci stream filter table VLAN PCP[2:0] bit mask */ + uint32_t : 16; + } P2_QSFTVLM2_b; + }; + + union + { + __IOM uint32_t P2_QSFTBL2; /*!< (@ 0x00002868) Qci Stream Filter Table SDU/Gate/Meter ID */ + + struct + { + __IOM uint32_t QSTE : 1; /*!< [0..0] QSTE */ + uint32_t : 3; + __IOM uint32_t GAID : 3; /*!< [6..4] GAID */ + __IOM uint32_t GAIDV : 1; /*!< [7..7] GAIDV */ + __IOM uint32_t MEID : 3; /*!< [10..8] MEID */ + uint32_t : 1; + __IOM uint32_t MEIDV : 1; /*!< [12..12] MEIDV */ + uint32_t : 3; + __IOM uint32_t MSDU : 11; /*!< [26..16] Qci stream filter table max SDU size */ + __IOM uint32_t MSDUE : 1; /*!< [27..27] MSDUE */ + __IOM uint32_t QSMSM : 1; /*!< [28..28] Qci stream MSDU mode */ + uint32_t : 3; + } P2_QSFTBL2_b; + }; + + union + { + __IM uint32_t P2_QSMFC2; /*!< (@ 0x0000286C) Qci Stream Match Packet Count */ + + struct + { + __IM uint32_t QSMFC : 16; /*!< [15..0] Qci stream match packet count */ + uint32_t : 16; + } P2_QSMFC2_b; + }; + + union + { + __IM uint32_t P2_QMSPPC2; /*!< (@ 0x00002870) Qci MSDU Passed Packet Count */ + + struct + { + __IM uint32_t QMSPPC : 16; /*!< [15..0] Qci msdu passed packet count */ + uint32_t : 16; + } P2_QMSPPC2_b; + }; + + union + { + __IM uint32_t P2_QMSRPC2; /*!< (@ 0x00002874) Qci MSDU Reject Packet Count */ + + struct + { + __IM uint32_t QMSRPC : 16; /*!< [15..0] Qci MSDU rejected packet count */ + uint32_t : 16; + } P2_QMSRPC2_b; + }; + + union + { + __IOM uint32_t P2_QSTMACU3; /*!< (@ 0x00002878) Qci Stream Filter Table MAC Address Upper Part */ + + struct + { + __IOM uint32_t MACA : 16; /*!< [15..0] Qci stream filter table MAC address[47:32] */ + __IOM uint32_t DASA : 1; /*!< [16..16] MAC address (MACA) select */ + uint32_t : 15; + } P2_QSTMACU3_b; + }; + + union + { + __IOM uint32_t P2_QSTMACD3; /*!< (@ 0x0000287C) Qci Stream Filter Table MAC Address Downer Part */ + + struct + { + __IOM uint32_t MACA : 32; /*!< [31..0] Qci stream filter table MAC address[31:0] */ + } P2_QSTMACD3_b; + }; + + union + { + __IOM uint32_t P2_QSTMAMU3; /*!< (@ 0x00002880) Qci Stream Filter Table MAC Address Mask Upper + * Part */ + + struct + { + __IOM uint32_t MACAM : 16; /*!< [15..0] Qci stream filter table MAC address bit mask[47:32] */ + uint32_t : 16; + } P2_QSTMAMU3_b; + }; + + union + { + __IOM uint32_t P2_QSTMAMD3; /*!< (@ 0x00002884) Qci Stream Filter Table MAC Address Mask Downer + * Part */ + + struct + { + __IOM uint32_t MACAM : 32; /*!< [31..0] Qci stream filter table MAC address bit mask[31:0] */ + } P2_QSTMAMD3_b; + }; + + union + { + __IOM uint32_t P2_QSFTVL3; /*!< (@ 0x00002888) Qci Stream Filter Table VLAN */ + + struct + { + __IOM uint32_t VLANID : 12; /*!< [11..0] VLANID */ + __IOM uint32_t DEI : 1; /*!< [12..12] DEI */ + __IOM uint32_t PCP : 3; /*!< [15..13] PCP */ + __IOM uint32_t TAGMD : 2; /*!< [17..16] TAGMD */ + uint32_t : 14; + } P2_QSFTVL3_b; + }; + + union + { + __IOM uint32_t P2_QSFTVLM3; /*!< (@ 0x0000288C) Qci Stream Filter Table VLAN Mask */ + + struct + { + __IOM uint32_t VLANIDM : 12; /*!< [11..0] Qci stream filter table VLAN ID[11:0] bit mask */ + __IOM uint32_t DEIM : 1; /*!< [12..12] DEIM */ + __IOM uint32_t PCPM : 3; /*!< [15..13] Qci stream filter table VLAN PCP[2:0] bit mask */ + uint32_t : 16; + } P2_QSFTVLM3_b; + }; + + union + { + __IOM uint32_t P2_QSFTBL3; /*!< (@ 0x00002890) Qci Stream Filter Table SDU/Gate/Meter ID */ + + struct + { + __IOM uint32_t QSTE : 1; /*!< [0..0] QSTE */ + uint32_t : 3; + __IOM uint32_t GAID : 3; /*!< [6..4] GAID */ + __IOM uint32_t GAIDV : 1; /*!< [7..7] GAIDV */ + __IOM uint32_t MEID : 3; /*!< [10..8] MEID */ + uint32_t : 1; + __IOM uint32_t MEIDV : 1; /*!< [12..12] MEIDV */ + uint32_t : 3; + __IOM uint32_t MSDU : 11; /*!< [26..16] Qci stream filter table max SDU size */ + __IOM uint32_t MSDUE : 1; /*!< [27..27] MSDUE */ + __IOM uint32_t QSMSM : 1; /*!< [28..28] Qci stream MSDU mode */ + uint32_t : 3; + } P2_QSFTBL3_b; + }; + + union + { + __IM uint32_t P2_QSMFC3; /*!< (@ 0x00002894) Qci Stream Match Packet Count */ + + struct + { + __IM uint32_t QSMFC : 16; /*!< [15..0] Qci stream match packet count */ + uint32_t : 16; + } P2_QSMFC3_b; + }; + + union + { + __IM uint32_t P2_QMSPPC3; /*!< (@ 0x00002898) Qci MSDU Passed Packet Count */ + + struct + { + __IM uint32_t QMSPPC : 16; /*!< [15..0] Qci msdu passed packet count */ + uint32_t : 16; + } P2_QMSPPC3_b; + }; + + union + { + __IM uint32_t P2_QMSRPC3; /*!< (@ 0x0000289C) Qci MSDU Reject Packet Count */ + + struct + { + __IM uint32_t QMSRPC : 16; /*!< [15..0] Qci MSDU rejected packet count */ + uint32_t : 16; + } P2_QMSRPC3_b; + }; + + union + { + __IOM uint32_t P2_QSTMACU4; /*!< (@ 0x000028A0) Qci Stream Filter Table MAC Address Upper Part */ + + struct + { + __IOM uint32_t MACA : 16; /*!< [15..0] Qci stream filter table MAC address[47:32] */ + __IOM uint32_t DASA : 1; /*!< [16..16] MAC address (MACA) select */ + uint32_t : 15; + } P2_QSTMACU4_b; + }; + + union + { + __IOM uint32_t P2_QSTMACD4; /*!< (@ 0x000028A4) Qci Stream Filter Table MAC Address Downer Part */ + + struct + { + __IOM uint32_t MACA : 32; /*!< [31..0] Qci stream filter table MAC address[31:0] */ + } P2_QSTMACD4_b; + }; + + union + { + __IOM uint32_t P2_QSTMAMU4; /*!< (@ 0x000028A8) Qci Stream Filter Table MAC Address Mask Upper + * Part */ + + struct + { + __IOM uint32_t MACAM : 16; /*!< [15..0] Qci stream filter table MAC address bit mask[47:32] */ + uint32_t : 16; + } P2_QSTMAMU4_b; + }; + + union + { + __IOM uint32_t P2_QSTMAMD4; /*!< (@ 0x000028AC) Qci Stream Filter Table MAC Address Mask Downer + * Part */ + + struct + { + __IOM uint32_t MACAM : 32; /*!< [31..0] Qci stream filter table MAC address bit mask[31:0] */ + } P2_QSTMAMD4_b; + }; + + union + { + __IOM uint32_t P2_QSFTVL4; /*!< (@ 0x000028B0) Qci Stream Filter Table VLAN */ + + struct + { + __IOM uint32_t VLANID : 12; /*!< [11..0] VLANID */ + __IOM uint32_t DEI : 1; /*!< [12..12] DEI */ + __IOM uint32_t PCP : 3; /*!< [15..13] PCP */ + __IOM uint32_t TAGMD : 2; /*!< [17..16] TAGMD */ + uint32_t : 14; + } P2_QSFTVL4_b; + }; + + union + { + __IOM uint32_t P2_QSFTVLM4; /*!< (@ 0x000028B4) Qci Stream Filter Table VLAN Mask */ + + struct + { + __IOM uint32_t VLANIDM : 12; /*!< [11..0] Qci stream filter table VLAN ID[11:0] bit mask */ + __IOM uint32_t DEIM : 1; /*!< [12..12] DEIM */ + __IOM uint32_t PCPM : 3; /*!< [15..13] Qci stream filter table VLAN PCP[2:0] bit mask */ + uint32_t : 16; + } P2_QSFTVLM4_b; + }; + + union + { + __IOM uint32_t P2_QSFTBL4; /*!< (@ 0x000028B8) Qci Stream Filter Table SDU/Gate/Meter ID */ + + struct + { + __IOM uint32_t QSTE : 1; /*!< [0..0] QSTE */ + uint32_t : 3; + __IOM uint32_t GAID : 3; /*!< [6..4] GAID */ + __IOM uint32_t GAIDV : 1; /*!< [7..7] GAIDV */ + __IOM uint32_t MEID : 3; /*!< [10..8] MEID */ + uint32_t : 1; + __IOM uint32_t MEIDV : 1; /*!< [12..12] MEIDV */ + uint32_t : 3; + __IOM uint32_t MSDU : 11; /*!< [26..16] Qci stream filter table max SDU size */ + __IOM uint32_t MSDUE : 1; /*!< [27..27] MSDUE */ + __IOM uint32_t QSMSM : 1; /*!< [28..28] Qci stream MSDU mode */ + uint32_t : 3; + } P2_QSFTBL4_b; + }; + + union + { + __IM uint32_t P2_QSMFC4; /*!< (@ 0x000028BC) Qci Stream Match Packet Count */ + + struct + { + __IM uint32_t QSMFC : 16; /*!< [15..0] Qci stream match packet count */ + uint32_t : 16; + } P2_QSMFC4_b; + }; + + union + { + __IM uint32_t P2_QMSPPC4; /*!< (@ 0x000028C0) Qci MSDU Passed Packet Count */ + + struct + { + __IM uint32_t QMSPPC : 16; /*!< [15..0] Qci msdu passed packet count */ + uint32_t : 16; + } P2_QMSPPC4_b; + }; + + union + { + __IM uint32_t P2_QMSRPC4; /*!< (@ 0x000028C4) Qci MSDU Reject Packet Count */ + + struct + { + __IM uint32_t QMSRPC : 16; /*!< [15..0] Qci MSDU rejected packet count */ + uint32_t : 16; + } P2_QMSRPC4_b; + }; + + union + { + __IOM uint32_t P2_QSTMACU5; /*!< (@ 0x000028C8) Qci Stream Filter Table MAC Address Upper Part */ + + struct + { + __IOM uint32_t MACA : 16; /*!< [15..0] Qci stream filter table MAC address[47:32] */ + __IOM uint32_t DASA : 1; /*!< [16..16] MAC address (MACA) select */ + uint32_t : 15; + } P2_QSTMACU5_b; + }; + + union + { + __IOM uint32_t P2_QSTMACD5; /*!< (@ 0x000028CC) Qci Stream Filter Table MAC Address Downer Part */ + + struct + { + __IOM uint32_t MACA : 32; /*!< [31..0] Qci stream filter table MAC address[31:0] */ + } P2_QSTMACD5_b; + }; + + union + { + __IOM uint32_t P2_QSTMAMU5; /*!< (@ 0x000028D0) Qci Stream Filter Table MAC Address Mask Upper + * Part */ + + struct + { + __IOM uint32_t MACAM : 16; /*!< [15..0] Qci stream filter table MAC address bit mask[47:32] */ + uint32_t : 16; + } P2_QSTMAMU5_b; + }; + + union + { + __IOM uint32_t P2_QSTMAMD5; /*!< (@ 0x000028D4) Qci Stream Filter Table MAC Address Mask Downer + * Part */ + + struct + { + __IOM uint32_t MACAM : 32; /*!< [31..0] Qci stream filter table MAC address bit mask[31:0] */ + } P2_QSTMAMD5_b; + }; + + union + { + __IOM uint32_t P2_QSFTVL5; /*!< (@ 0x000028D8) Qci Stream Filter Table VLAN */ + + struct + { + __IOM uint32_t VLANID : 12; /*!< [11..0] VLANID */ + __IOM uint32_t DEI : 1; /*!< [12..12] DEI */ + __IOM uint32_t PCP : 3; /*!< [15..13] PCP */ + __IOM uint32_t TAGMD : 2; /*!< [17..16] TAGMD */ + uint32_t : 14; + } P2_QSFTVL5_b; + }; + + union + { + __IOM uint32_t P2_QSFTVLM5; /*!< (@ 0x000028DC) Qci Stream Filter Table VLAN Mask */ + + struct + { + __IOM uint32_t VLANIDM : 12; /*!< [11..0] Qci stream filter table VLAN ID[11:0] bit mask */ + __IOM uint32_t DEIM : 1; /*!< [12..12] DEIM */ + __IOM uint32_t PCPM : 3; /*!< [15..13] Qci stream filter table VLAN PCP[2:0] bit mask */ + uint32_t : 16; + } P2_QSFTVLM5_b; + }; + + union + { + __IOM uint32_t P2_QSFTBL5; /*!< (@ 0x000028E0) Qci Stream Filter Table SDU/Gate/Meter ID */ + + struct + { + __IOM uint32_t QSTE : 1; /*!< [0..0] QSTE */ + uint32_t : 3; + __IOM uint32_t GAID : 3; /*!< [6..4] GAID */ + __IOM uint32_t GAIDV : 1; /*!< [7..7] GAIDV */ + __IOM uint32_t MEID : 3; /*!< [10..8] MEID */ + uint32_t : 1; + __IOM uint32_t MEIDV : 1; /*!< [12..12] MEIDV */ + uint32_t : 3; + __IOM uint32_t MSDU : 11; /*!< [26..16] Qci stream filter table max SDU size */ + __IOM uint32_t MSDUE : 1; /*!< [27..27] MSDUE */ + __IOM uint32_t QSMSM : 1; /*!< [28..28] Qci stream MSDU mode */ + uint32_t : 3; + } P2_QSFTBL5_b; + }; + + union + { + __IM uint32_t P2_QSMFC5; /*!< (@ 0x000028E4) Qci Stream Match Packet Count */ + + struct + { + __IM uint32_t QSMFC : 16; /*!< [15..0] Qci stream match packet count */ + uint32_t : 16; + } P2_QSMFC5_b; + }; + + union + { + __IM uint32_t P2_QMSPPC5; /*!< (@ 0x000028E8) Qci MSDU Passed Packet Count */ + + struct + { + __IM uint32_t QMSPPC : 16; /*!< [15..0] Qci msdu passed packet count */ + uint32_t : 16; + } P2_QMSPPC5_b; + }; + + union + { + __IM uint32_t P2_QMSRPC5; /*!< (@ 0x000028EC) Qci MSDU Reject Packet Count */ + + struct + { + __IM uint32_t QMSRPC : 16; /*!< [15..0] Qci MSDU rejected packet count */ + uint32_t : 16; + } P2_QMSRPC5_b; + }; + + union + { + __IOM uint32_t P2_QSTMACU6; /*!< (@ 0x000028F0) Qci Stream Filter Table MAC Address Upper Part */ + + struct + { + __IOM uint32_t MACA : 16; /*!< [15..0] Qci stream filter table MAC address[47:32] */ + __IOM uint32_t DASA : 1; /*!< [16..16] MAC address (MACA) select */ + uint32_t : 15; + } P2_QSTMACU6_b; + }; + + union + { + __IOM uint32_t P2_QSTMACD6; /*!< (@ 0x000028F4) Qci Stream Filter Table MAC Address Downer Part */ + + struct + { + __IOM uint32_t MACA : 32; /*!< [31..0] Qci stream filter table MAC address[31:0] */ + } P2_QSTMACD6_b; + }; + + union + { + __IOM uint32_t P2_QSTMAMU6; /*!< (@ 0x000028F8) Qci Stream Filter Table MAC Address Mask Upper + * Part */ + + struct + { + __IOM uint32_t MACAM : 16; /*!< [15..0] Qci stream filter table MAC address bit mask[47:32] */ + uint32_t : 16; + } P2_QSTMAMU6_b; + }; + + union + { + __IOM uint32_t P2_QSTMAMD6; /*!< (@ 0x000028FC) Qci Stream Filter Table MAC Address Mask Downer + * Part */ + + struct + { + __IOM uint32_t MACAM : 32; /*!< [31..0] Qci stream filter table MAC address bit mask[31:0] */ + } P2_QSTMAMD6_b; + }; + + union + { + __IOM uint32_t P2_QSFTVL6; /*!< (@ 0x00002900) Qci Stream Filter Table VLAN */ + + struct + { + __IOM uint32_t VLANID : 12; /*!< [11..0] VLANID */ + __IOM uint32_t DEI : 1; /*!< [12..12] DEI */ + __IOM uint32_t PCP : 3; /*!< [15..13] PCP */ + __IOM uint32_t TAGMD : 2; /*!< [17..16] TAGMD */ + uint32_t : 14; + } P2_QSFTVL6_b; + }; + + union + { + __IOM uint32_t P2_QSFTVLM6; /*!< (@ 0x00002904) Qci Stream Filter Table VLAN Mask */ + + struct + { + __IOM uint32_t VLANIDM : 12; /*!< [11..0] Qci stream filter table VLAN ID[11:0] bit mask */ + __IOM uint32_t DEIM : 1; /*!< [12..12] DEIM */ + __IOM uint32_t PCPM : 3; /*!< [15..13] Qci stream filter table VLAN PCP[2:0] bit mask */ + uint32_t : 16; + } P2_QSFTVLM6_b; + }; + + union + { + __IOM uint32_t P2_QSFTBL6; /*!< (@ 0x00002908) Qci Stream Filter Table SDU/Gate/Meter ID */ + + struct + { + __IOM uint32_t QSTE : 1; /*!< [0..0] QSTE */ + uint32_t : 3; + __IOM uint32_t GAID : 3; /*!< [6..4] GAID */ + __IOM uint32_t GAIDV : 1; /*!< [7..7] GAIDV */ + __IOM uint32_t MEID : 3; /*!< [10..8] MEID */ + uint32_t : 1; + __IOM uint32_t MEIDV : 1; /*!< [12..12] MEIDV */ + uint32_t : 3; + __IOM uint32_t MSDU : 11; /*!< [26..16] Qci stream filter table max SDU size */ + __IOM uint32_t MSDUE : 1; /*!< [27..27] MSDUE */ + __IOM uint32_t QSMSM : 1; /*!< [28..28] Qci stream MSDU mode */ + uint32_t : 3; + } P2_QSFTBL6_b; + }; + + union + { + __IM uint32_t P2_QSMFC6; /*!< (@ 0x0000290C) Qci Stream Match Packet Count */ + + struct + { + __IM uint32_t QSMFC : 16; /*!< [15..0] Qci stream match packet count */ + uint32_t : 16; + } P2_QSMFC6_b; + }; + + union + { + __IM uint32_t P2_QMSPPC6; /*!< (@ 0x00002910) Qci MSDU Passed Packet Count */ + + struct + { + __IM uint32_t QMSPPC : 16; /*!< [15..0] Qci msdu passed packet count */ + uint32_t : 16; + } P2_QMSPPC6_b; + }; + + union + { + __IM uint32_t P2_QMSRPC6; /*!< (@ 0x00002914) Qci MSDU Reject Packet Count */ + + struct + { + __IM uint32_t QMSRPC : 16; /*!< [15..0] Qci MSDU rejected packet count */ + uint32_t : 16; + } P2_QMSRPC6_b; + }; + + union + { + __IOM uint32_t P2_QSTMACU7; /*!< (@ 0x00002918) Qci Stream Filter Table MAC Address Upper Part */ + + struct + { + __IOM uint32_t MACA : 16; /*!< [15..0] Qci stream filter table MAC address[47:32] */ + __IOM uint32_t DASA : 1; /*!< [16..16] MAC address (MACA) select */ + uint32_t : 15; + } P2_QSTMACU7_b; + }; + + union + { + __IOM uint32_t P2_QSTMACD7; /*!< (@ 0x0000291C) Qci Stream Filter Table MAC Address Downer Part */ + + struct + { + __IOM uint32_t MACA : 32; /*!< [31..0] Qci stream filter table MAC address[31:0] */ + } P2_QSTMACD7_b; + }; + + union + { + __IOM uint32_t P2_QSTMAMU7; /*!< (@ 0x00002920) Qci Stream Filter Table MAC Address Mask Upper + * Part */ + + struct + { + __IOM uint32_t MACAM : 16; /*!< [15..0] Qci stream filter table MAC address bit mask[47:32] */ + uint32_t : 16; + } P2_QSTMAMU7_b; + }; + + union + { + __IOM uint32_t P2_QSTMAMD7; /*!< (@ 0x00002924) Qci Stream Filter Table MAC Address Mask Downer + * Part */ + + struct + { + __IOM uint32_t MACAM : 32; /*!< [31..0] Qci stream filter table MAC address bit mask[31:0] */ + } P2_QSTMAMD7_b; + }; + + union + { + __IOM uint32_t P2_QSFTVL7; /*!< (@ 0x00002928) Qci Stream Filter Table VLAN */ + + struct + { + __IOM uint32_t VLANID : 12; /*!< [11..0] VLANID */ + __IOM uint32_t DEI : 1; /*!< [12..12] DEI */ + __IOM uint32_t PCP : 3; /*!< [15..13] PCP */ + __IOM uint32_t TAGMD : 2; /*!< [17..16] TAGMD */ + uint32_t : 14; + } P2_QSFTVL7_b; + }; + + union + { + __IOM uint32_t P2_QSFTVLM7; /*!< (@ 0x0000292C) Qci Stream Filter Table VLAN Mask */ + + struct + { + __IOM uint32_t VLANIDM : 12; /*!< [11..0] Qci stream filter table VLAN ID[11:0] bit mask */ + __IOM uint32_t DEIM : 1; /*!< [12..12] DEIM */ + __IOM uint32_t PCPM : 3; /*!< [15..13] Qci stream filter table VLAN PCP[2:0] bit mask */ + uint32_t : 16; + } P2_QSFTVLM7_b; + }; + + union + { + __IOM uint32_t P2_QSFTBL7; /*!< (@ 0x00002930) Qci Stream Filter Table SDU/Gate/Meter ID */ + + struct + { + __IOM uint32_t QSTE : 1; /*!< [0..0] QSTE */ + uint32_t : 3; + __IOM uint32_t GAID : 3; /*!< [6..4] GAID */ + __IOM uint32_t GAIDV : 1; /*!< [7..7] GAIDV */ + __IOM uint32_t MEID : 3; /*!< [10..8] MEID */ + uint32_t : 1; + __IOM uint32_t MEIDV : 1; /*!< [12..12] MEIDV */ + uint32_t : 3; + __IOM uint32_t MSDU : 11; /*!< [26..16] Qci stream filter table max SDU size */ + __IOM uint32_t MSDUE : 1; /*!< [27..27] MSDUE */ + __IOM uint32_t QSMSM : 1; /*!< [28..28] Qci stream MSDU mode */ + uint32_t : 3; + } P2_QSFTBL7_b; + }; + + union + { + __IM uint32_t P2_QSMFC7; /*!< (@ 0x00002934) Qci Stream Match Packet Count */ + + struct + { + __IM uint32_t QSMFC : 16; /*!< [15..0] Qci stream match packet count */ + uint32_t : 16; + } P2_QSMFC7_b; + }; + + union + { + __IM uint32_t P2_QMSPPC7; /*!< (@ 0x00002938) Qci MSDU Passed Packet Count */ + + struct + { + __IM uint32_t QMSPPC : 16; /*!< [15..0] Qci msdu passed packet count */ + uint32_t : 16; + } P2_QMSPPC7_b; + }; + + union + { + __IM uint32_t P2_QMSRPC7; /*!< (@ 0x0000293C) Qci MSDU Reject Packet Count */ + + struct + { + __IM uint32_t QMSRPC : 16; /*!< [15..0] Qci MSDU rejected packet count */ + uint32_t : 16; + } P2_QMSRPC7_b; + }; + __IM uint32_t RESERVED80[42]; + + union + { + __IOM uint32_t P2_QSEIS; /*!< (@ 0x000029E8) Qci Stream Filter Error Interrupt Status (SDU + * Oversize) */ + + struct + { + __IOM uint32_t QSMOIS : 8; /*!< [7..0] MSDU oversize frames Interrupt status[s] */ + uint32_t : 24; + } P2_QSEIS_b; + }; + + union + { + __IOM uint32_t P2_QSEIE; /*!< (@ 0x000029EC) Qci Stream Filter Error Interrupt Enable */ + + struct + { + __IOM uint32_t QSMOIE : 8; /*!< [7..0] MSDU oversize frames Interrupt Enable[s] */ + uint32_t : 24; + } P2_QSEIE_b; + }; + + union + { + __OM uint32_t P2_QSEID; /*!< (@ 0x000029F0) Qci Stream Filter Error Interrupt Disable */ + + struct + { + __OM uint32_t QSMOID : 8; /*!< [7..0] MSDU oversize frames Interrupt Disable[s] */ + uint32_t : 24; + } P2_QSEID_b; + }; + __IM uint32_t RESERVED81[3]; + + union + { + __IOM uint32_t P2_QGMOD; /*!< (@ 0x00002A00) Qci Gate Mode Register */ + + struct + { + __IOM uint32_t QGMOD : 8; /*!< [7..0] Flow gate mode[g] */ + uint32_t : 24; + } P2_QGMOD_b; + }; + + union + { + __IM uint32_t P2_QGPPC; /*!< (@ 0x00002A04) Qci Gate (All) Passed Packet Count Port 2 */ + + struct + { + __IM uint32_t QGPPC : 16; /*!< [15..0] Qci gate passed packet count */ + uint32_t : 16; + } P2_QGPPC_b; + }; + + union + { + __IM uint32_t P2_QGDPC0; /*!< (@ 0x00002A08) Qci Gate 0 Dropped Packet Count Port n */ + + struct + { + __IM uint32_t QGDPC : 16; /*!< [15..0] Qci gate dropped packet count */ + uint32_t : 16; + } P2_QGDPC0_b; + }; + __IM uint32_t RESERVED82; + + union + { + __IM uint32_t P2_QGDPC1; /*!< (@ 0x00002A10) Qci Gate 1 Dropped Packet Count Port n */ + + struct + { + __IM uint32_t QGDPC : 16; /*!< [15..0] Qci gate dropped packet count */ + uint32_t : 16; + } P2_QGDPC1_b; + }; + __IM uint32_t RESERVED83; + + union + { + __IM uint32_t P2_QGDPC2; /*!< (@ 0x00002A18) Qci Gate 2 Dropped Packet Count Port n */ + + struct + { + __IM uint32_t QGDPC : 16; /*!< [15..0] Qci gate dropped packet count */ + uint32_t : 16; + } P2_QGDPC2_b; + }; + __IM uint32_t RESERVED84; + + union + { + __IM uint32_t P2_QGDPC3; /*!< (@ 0x00002A20) Qci Gate 3 Dropped Packet Count Port n */ + + struct + { + __IM uint32_t QGDPC : 16; /*!< [15..0] Qci gate dropped packet count */ + uint32_t : 16; + } P2_QGDPC3_b; + }; + __IM uint32_t RESERVED85; + + union + { + __IM uint32_t P2_QGDPC4; /*!< (@ 0x00002A28) Qci Gate 4 Dropped Packet Count Port n */ + + struct + { + __IM uint32_t QGDPC : 16; /*!< [15..0] Qci gate dropped packet count */ + uint32_t : 16; + } P2_QGDPC4_b; + }; + __IM uint32_t RESERVED86; + + union + { + __IM uint32_t P2_QGDPC5; /*!< (@ 0x00002A30) Qci Gate 5 Dropped Packet Count Port n */ + + struct + { + __IM uint32_t QGDPC : 16; /*!< [15..0] Qci gate dropped packet count */ + uint32_t : 16; + } P2_QGDPC5_b; + }; + __IM uint32_t RESERVED87; + + union + { + __IM uint32_t P2_QGDPC6; /*!< (@ 0x00002A38) Qci Gate 6 Dropped Packet Count Port n */ + + struct + { + __IM uint32_t QGDPC : 16; /*!< [15..0] Qci gate dropped packet count */ + uint32_t : 16; + } P2_QGDPC6_b; + }; + __IM uint32_t RESERVED88; + + union + { + __IM uint32_t P2_QGDPC7; /*!< (@ 0x00002A40) Qci Gate 7 Dropped Packet Count Port n */ + + struct + { + __IM uint32_t QGDPC : 16; /*!< [15..0] Qci gate dropped packet count */ + uint32_t : 16; + } P2_QGDPC7_b; + }; + + union + { + __IOM uint32_t P2_QGEIS; /*!< (@ 0x00002A44) Qci Gate Error Interrupt Status */ + + struct + { + __IOM uint32_t QGMOIS : 8; /*!< [7..0] Gating error Interrupt status[g] */ + uint32_t : 24; + } P2_QGEIS_b; + }; + + union + { + __IOM uint32_t P2_QGEIE; /*!< (@ 0x00002A48) Qci Gate Error Interrupt Enable */ + + struct + { + __IOM uint32_t QGMOIE : 8; /*!< [7..0] Gating error Interrupt Enable[g] */ + uint32_t : 24; + } P2_QGEIE_b; + }; + + union + { + __OM uint32_t P2_QGEID; /*!< (@ 0x00002A4C) Qci Gate Error Interrupt Disable */ + + struct + { + __OM uint32_t QGMOID : 8; /*!< [7..0] Gating error Interrupt Disable[g] */ + uint32_t : 24; + } P2_QGEID_b; + }; + + union + { + __IOM uint32_t P2_QMDESC0; /*!< (@ 0x00002A50) Qci Port n Flow Meter 0 Descriptor Register */ + + struct + { + __IOM uint32_t RFD : 1; /*!< [0..0] Red frame drop */ + __IOM uint32_t MM : 1; /*!< [1..1] Flow meter mode */ + __IOM uint32_t CF : 1; /*!< [2..2] Coupling flag */ + uint32_t : 29; + } P2_QMDESC0_b; + }; + + union + { + __IOM uint32_t P2_QMCBSC0; /*!< (@ 0x00002A54) Qci Meter CBS Configuration Port n, Meter 0 */ + + struct + { + __IOM uint32_t CBS : 18; /*!< [17..0] CBS (Committed Burst Size) */ + uint32_t : 14; + } P2_QMCBSC0_b; + }; + + union + { + __IOM uint32_t P2_QMCIRC0; /*!< (@ 0x00002A58) Qci Meter CIR Configuration n 0 */ + + struct + { + __IOM uint32_t CIR : 17; /*!< [16..0] CIR (Committed Information Rate) */ + uint32_t : 15; + } P2_QMCIRC0_b; + }; + + union + { + __IM uint32_t P2_QMGPC0; /*!< (@ 0x00002A5C) Qci Meter Green Packet Count */ + + struct + { + __IM uint32_t QMGPC : 16; /*!< [15..0] Qci meter green packet count */ + uint32_t : 16; + } P2_QMGPC0_b; + }; + + union + { + __IM uint32_t P2_QMRPC0; /*!< (@ 0x00002A60) Qci Meter Red Packet Count */ + + struct + { + __IM uint32_t QMRPC : 16; /*!< [15..0] Qci meter red packet count */ + uint32_t : 16; + } P2_QMRPC0_b; + }; + + union + { + __IOM uint32_t P2_QMDESC1; /*!< (@ 0x00002A64) Qci Port n Flow Meter 1 Descriptor Register */ + + struct + { + __IOM uint32_t RFD : 1; /*!< [0..0] Red frame drop */ + __IOM uint32_t MM : 1; /*!< [1..1] Flow meter mode */ + __IOM uint32_t CF : 1; /*!< [2..2] Coupling flag */ + uint32_t : 29; + } P2_QMDESC1_b; + }; + + union + { + __IOM uint32_t P2_QMCBSC1; /*!< (@ 0x00002A68) Qci Meter CBS Configuration Port n, Meter 1 */ + + struct + { + __IOM uint32_t CBS : 18; /*!< [17..0] CBS (Committed Burst Size) */ + uint32_t : 14; + } P2_QMCBSC1_b; + }; + + union + { + __IOM uint32_t P2_QMCIRC1; /*!< (@ 0x00002A6C) Qci Meter CIR Configuration n 1 */ + + struct + { + __IOM uint32_t CIR : 17; /*!< [16..0] CIR (Committed Information Rate) */ + uint32_t : 15; + } P2_QMCIRC1_b; + }; + + union + { + __IM uint32_t P2_QMGPC1; /*!< (@ 0x00002A70) Qci Meter Green Packet Count */ + + struct + { + __IM uint32_t QMGPC : 16; /*!< [15..0] Qci meter green packet count */ + uint32_t : 16; + } P2_QMGPC1_b; + }; + + union + { + __IM uint32_t P2_QMRPC1; /*!< (@ 0x00002A74) Qci Meter Red Packet Count */ + + struct + { + __IM uint32_t QMRPC : 16; /*!< [15..0] Qci meter red packet count */ + uint32_t : 16; + } P2_QMRPC1_b; + }; + + union + { + __IOM uint32_t P2_QMDESC2; /*!< (@ 0x00002A78) Qci Port n Flow Meter 2 Descriptor Register */ + + struct + { + __IOM uint32_t RFD : 1; /*!< [0..0] Red frame drop */ + __IOM uint32_t MM : 1; /*!< [1..1] Flow meter mode */ + __IOM uint32_t CF : 1; /*!< [2..2] Coupling flag */ + uint32_t : 29; + } P2_QMDESC2_b; + }; + + union + { + __IOM uint32_t P2_QMCBSC2; /*!< (@ 0x00002A7C) Qci Meter CBS Configuration Port n, Meter 2 */ + + struct + { + __IOM uint32_t CBS : 18; /*!< [17..0] CBS (Committed Burst Size) */ + uint32_t : 14; + } P2_QMCBSC2_b; + }; + + union + { + __IOM uint32_t P2_QMCIRC2; /*!< (@ 0x00002A80) Qci Meter CIR Configuration n 2 */ + + struct + { + __IOM uint32_t CIR : 17; /*!< [16..0] CIR (Committed Information Rate) */ + uint32_t : 15; + } P2_QMCIRC2_b; + }; + + union + { + __IM uint32_t P2_QMGPC2; /*!< (@ 0x00002A84) Qci Meter Green Packet Count */ + + struct + { + __IM uint32_t QMGPC : 16; /*!< [15..0] Qci meter green packet count */ + uint32_t : 16; + } P2_QMGPC2_b; + }; + + union + { + __IM uint32_t P2_QMRPC2; /*!< (@ 0x00002A88) Qci Meter Red Packet Count */ + + struct + { + __IM uint32_t QMRPC : 16; /*!< [15..0] Qci meter red packet count */ + uint32_t : 16; + } P2_QMRPC2_b; + }; + + union + { + __IOM uint32_t P2_QMDESC3; /*!< (@ 0x00002A8C) Qci Port n Flow Meter 3 Descriptor Register */ + + struct + { + __IOM uint32_t RFD : 1; /*!< [0..0] Red frame drop */ + __IOM uint32_t MM : 1; /*!< [1..1] Flow meter mode */ + __IOM uint32_t CF : 1; /*!< [2..2] Coupling flag */ + uint32_t : 29; + } P2_QMDESC3_b; + }; + + union + { + __IOM uint32_t P2_QMCBSC3; /*!< (@ 0x00002A90) Qci Meter CBS Configuration Port n, Meter 3 */ + + struct + { + __IOM uint32_t CBS : 18; /*!< [17..0] CBS (Committed Burst Size) */ + uint32_t : 14; + } P2_QMCBSC3_b; + }; + + union + { + __IOM uint32_t P2_QMCIRC3; /*!< (@ 0x00002A94) Qci Meter CIR Configuration n 3 */ + + struct + { + __IOM uint32_t CIR : 17; /*!< [16..0] CIR (Committed Information Rate) */ + uint32_t : 15; + } P2_QMCIRC3_b; + }; + + union + { + __IM uint32_t P2_QMGPC3; /*!< (@ 0x00002A98) Qci Meter Green Packet Count */ + + struct + { + __IM uint32_t QMGPC : 16; /*!< [15..0] Qci meter green packet count */ + uint32_t : 16; + } P2_QMGPC3_b; + }; + + union + { + __IM uint32_t P2_QMRPC3; /*!< (@ 0x00002A9C) Qci Meter Red Packet Count */ + + struct + { + __IM uint32_t QMRPC : 16; /*!< [15..0] Qci meter red packet count */ + uint32_t : 16; + } P2_QMRPC3_b; + }; + + union + { + __IOM uint32_t P2_QMDESC4; /*!< (@ 0x00002AA0) Qci Port n Flow Meter 4 Descriptor Register */ + + struct + { + __IOM uint32_t RFD : 1; /*!< [0..0] Red frame drop */ + __IOM uint32_t MM : 1; /*!< [1..1] Flow meter mode */ + __IOM uint32_t CF : 1; /*!< [2..2] Coupling flag */ + uint32_t : 29; + } P2_QMDESC4_b; + }; + + union + { + __IOM uint32_t P2_QMCBSC4; /*!< (@ 0x00002AA4) Qci Meter CBS Configuration Port n, Meter 4 */ + + struct + { + __IOM uint32_t CBS : 18; /*!< [17..0] CBS (Committed Burst Size) */ + uint32_t : 14; + } P2_QMCBSC4_b; + }; + + union + { + __IOM uint32_t P2_QMCIRC4; /*!< (@ 0x00002AA8) Qci Meter CIR Configuration n 4 */ + + struct + { + __IOM uint32_t CIR : 17; /*!< [16..0] CIR (Committed Information Rate) */ + uint32_t : 15; + } P2_QMCIRC4_b; + }; + + union + { + __IM uint32_t P2_QMGPC4; /*!< (@ 0x00002AAC) Qci Meter Green Packet Count */ + + struct + { + __IM uint32_t QMGPC : 16; /*!< [15..0] Qci meter green packet count */ + uint32_t : 16; + } P2_QMGPC4_b; + }; + + union + { + __IM uint32_t P2_QMRPC4; /*!< (@ 0x00002AB0) Qci Meter Red Packet Count */ + + struct + { + __IM uint32_t QMRPC : 16; /*!< [15..0] Qci meter red packet count */ + uint32_t : 16; + } P2_QMRPC4_b; + }; + + union + { + __IOM uint32_t P2_QMDESC5; /*!< (@ 0x00002AB4) Qci Port n Flow Meter 5 Descriptor Register */ + + struct + { + __IOM uint32_t RFD : 1; /*!< [0..0] Red frame drop */ + __IOM uint32_t MM : 1; /*!< [1..1] Flow meter mode */ + __IOM uint32_t CF : 1; /*!< [2..2] Coupling flag */ + uint32_t : 29; + } P2_QMDESC5_b; + }; + + union + { + __IOM uint32_t P2_QMCBSC5; /*!< (@ 0x00002AB8) Qci Meter CBS Configuration Port n, Meter 5 */ + + struct + { + __IOM uint32_t CBS : 18; /*!< [17..0] CBS (Committed Burst Size) */ + uint32_t : 14; + } P2_QMCBSC5_b; + }; + + union + { + __IOM uint32_t P2_QMCIRC5; /*!< (@ 0x00002ABC) Qci Meter CIR Configuration n 5 */ + + struct + { + __IOM uint32_t CIR : 17; /*!< [16..0] CIR (Committed Information Rate) */ + uint32_t : 15; + } P2_QMCIRC5_b; + }; + + union + { + __IM uint32_t P2_QMGPC5; /*!< (@ 0x00002AC0) Qci Meter Green Packet Count */ + + struct + { + __IM uint32_t QMGPC : 16; /*!< [15..0] Qci meter green packet count */ + uint32_t : 16; + } P2_QMGPC5_b; + }; + + union + { + __IM uint32_t P2_QMRPC5; /*!< (@ 0x00002AC4) Qci Meter Red Packet Count */ + + struct + { + __IM uint32_t QMRPC : 16; /*!< [15..0] Qci meter red packet count */ + uint32_t : 16; + } P2_QMRPC5_b; + }; + + union + { + __IOM uint32_t P2_QMDESC6; /*!< (@ 0x00002AC8) Qci Port n Flow Meter 6 Descriptor Register */ + + struct + { + __IOM uint32_t RFD : 1; /*!< [0..0] Red frame drop */ + __IOM uint32_t MM : 1; /*!< [1..1] Flow meter mode */ + __IOM uint32_t CF : 1; /*!< [2..2] Coupling flag */ + uint32_t : 29; + } P2_QMDESC6_b; + }; + + union + { + __IOM uint32_t P2_QMCBSC6; /*!< (@ 0x00002ACC) Qci Meter CBS Configuration Port n, Meter 6 */ + + struct + { + __IOM uint32_t CBS : 18; /*!< [17..0] CBS (Committed Burst Size) */ + uint32_t : 14; + } P2_QMCBSC6_b; + }; + + union + { + __IOM uint32_t P2_QMCIRC6; /*!< (@ 0x00002AD0) Qci Meter CIR Configuration n 6 */ + + struct + { + __IOM uint32_t CIR : 17; /*!< [16..0] CIR (Committed Information Rate) */ + uint32_t : 15; + } P2_QMCIRC6_b; + }; + + union + { + __IM uint32_t P2_QMGPC6; /*!< (@ 0x00002AD4) Qci Meter Green Packet Count */ + + struct + { + __IM uint32_t QMGPC : 16; /*!< [15..0] Qci meter green packet count */ + uint32_t : 16; + } P2_QMGPC6_b; + }; + + union + { + __IM uint32_t P2_QMRPC6; /*!< (@ 0x00002AD8) Qci Meter Red Packet Count */ + + struct + { + __IM uint32_t QMRPC : 16; /*!< [15..0] Qci meter red packet count */ + uint32_t : 16; + } P2_QMRPC6_b; + }; + + union + { + __IOM uint32_t P2_QMDESC7; /*!< (@ 0x00002ADC) Qci Port n Flow Meter 7 Descriptor Register */ + + struct + { + __IOM uint32_t RFD : 1; /*!< [0..0] Red frame drop */ + __IOM uint32_t MM : 1; /*!< [1..1] Flow meter mode */ + __IOM uint32_t CF : 1; /*!< [2..2] Coupling flag */ + uint32_t : 29; + } P2_QMDESC7_b; + }; + + union + { + __IOM uint32_t P2_QMCBSC7; /*!< (@ 0x00002AE0) Qci Meter CBS Configuration Port n, Meter 7 */ + + struct + { + __IOM uint32_t CBS : 18; /*!< [17..0] CBS (Committed Burst Size) */ + uint32_t : 14; + } P2_QMCBSC7_b; + }; + + union + { + __IOM uint32_t P2_QMCIRC7; /*!< (@ 0x00002AE4) Qci Meter CIR Configuration n 7 */ + + struct + { + __IOM uint32_t CIR : 17; /*!< [16..0] CIR (Committed Information Rate) */ + uint32_t : 15; + } P2_QMCIRC7_b; + }; + + union + { + __IM uint32_t P2_QMGPC7; /*!< (@ 0x00002AE8) Qci Meter Green Packet Count */ + + struct + { + __IM uint32_t QMGPC : 16; /*!< [15..0] Qci meter green packet count */ + uint32_t : 16; + } P2_QMGPC7_b; + }; + + union + { + __IM uint32_t P2_QMRPC7; /*!< (@ 0x00002AEC) Qci Meter Red Packet Count */ + + struct + { + __IM uint32_t QMRPC : 16; /*!< [15..0] Qci meter red packet count */ + uint32_t : 16; + } P2_QMRPC7_b; + }; + + union + { + __IOM uint32_t P2_QMEC; /*!< (@ 0x00002AF0) Qci Meter Enable Configuration */ + + struct + { + __IOM uint32_t ME : 8; /*!< [7..0] Enable meter[m] */ + uint32_t : 24; + } P2_QMEC_b; + }; + + union + { + __IOM uint32_t P2_QMEIS; /*!< (@ 0x00002AF4) Qci Meter Error Interrupt Status */ + + struct + { + __IOM uint32_t QRFIS : 8; /*!< [7..0] Red frames Interrupt status[m] */ + uint32_t : 24; + } P2_QMEIS_b; + }; + + union + { + __IOM uint32_t P2_QMEIE; /*!< (@ 0x00002AF8) Qci Meter Error Interrupt Enable */ + + struct + { + __IOM uint32_t QRFIE : 8; /*!< [7..0] Red frames Interrupt Enable[m] */ + uint32_t : 24; + } P2_QMEIE_b; + }; + + union + { + __OM uint32_t P2_QMEID; /*!< (@ 0x00002AFC) Qci Meter Error Interrupt Disable */ + + struct + { + __OM uint32_t QRFID : 8; /*!< [7..0] Red frames Interrupt Disable[m] */ + uint32_t : 24; + } P2_QMEID_b; + }; + + union + { + __IOM uint32_t P2_PCP_REMAP; /*!< (@ 0x00002B00) Port 2 VLAN Priority Code Point (PCP) Remap */ + + struct + { + __IOM uint32_t PCP_REMAP0 : 3; /*!< [2..0] PCP_REMAP0 */ + __IOM uint32_t PCP_REMAP1 : 3; /*!< [5..3] PCP_REMAP1 */ + __IOM uint32_t PCP_REMAP2 : 3; /*!< [8..6] PCP_REMAP2 */ + __IOM uint32_t PCP_REMAP3 : 3; /*!< [11..9] PCP_REMAP3 */ + __IOM uint32_t PCP_REMAP4 : 3; /*!< [14..12] PCP_REMAP4 */ + __IOM uint32_t PCP_REMAP5 : 3; /*!< [17..15] PCP_REMAP5 */ + __IOM uint32_t PCP_REMAP6 : 3; /*!< [20..18] PCP_REMAP6 */ + __IOM uint32_t PCP_REMAP7 : 3; /*!< [23..21] PCP_REMAP7 */ + uint32_t : 8; + } P2_PCP_REMAP_b; + }; + + union + { + __IOM uint32_t P2_VLAN_TAG; /*!< (@ 0x00002B04) Port 2 VLAN TAG Information for Priority Regeneration */ + + struct + { + __IOM uint32_t VID : 12; /*!< [11..0] VID */ + __IOM uint32_t DEI : 1; /*!< [12..12] DEI */ + __IOM uint32_t PCP : 3; /*!< [15..13] PCP */ + __IOM uint32_t TPID : 16; /*!< [31..16] TPID */ + } P2_VLAN_TAG_b; + }; + + union + { + __IOM uint32_t P2_VLAN_MODE; /*!< (@ 0x00002B08) Port 2 VLAN Mode */ + + struct + { + __IOM uint32_t VITM : 2; /*!< [1..0] VLAN input tagging mode */ + __IOM uint32_t VICM : 2; /*!< [3..2] VLAN input verification mode */ + uint32_t : 28; + } P2_VLAN_MODE_b; + }; + + union + { + __IM uint32_t P2_VIC_DROP_CNT; /*!< (@ 0x00002B0C) Port 2 VLAN Ingress Check Drop Frame Counter */ + + struct + { + __IM uint32_t VIC_DROP_CNT : 16; /*!< [15..0] Port n VLAN ingress check drop frame count */ + uint32_t : 16; + } P2_VIC_DROP_CNT_b; + }; + __IM uint32_t RESERVED89[6]; + + union + { + __IM uint32_t P2_LOOKUP_HIT_CNT; /*!< (@ 0x00002B28) Port 2 DST Address Lookup Hit Counter */ + + struct + { + __IM uint32_t LOOKUP_HIT_CNT : 24; /*!< [23..0] Port n Lookup hit count */ + uint32_t : 8; + } P2_LOOKUP_HIT_CNT_b; + }; + + union + { + __IOM uint32_t P2_ERROR_STATUS; /*!< (@ 0x00002B2C) Port 2 Frame Parser Runtime Error Status */ + + struct + { + __IOM uint32_t SOPERR : 1; /*!< [0..0] SOP error detected in frame parser */ + __IOM uint32_t PUNDSZ : 1; /*!< [1..1] Preemptable frame under size error detected in frame + * parser */ + __IOM uint32_t POVRSZ : 1; /*!< [2..2] Preemptable frame over size error detected in frame parser */ + __IOM uint32_t EUNDSZ : 1; /*!< [3..3] Express frame under size error detected in frame parser */ + __IOM uint32_t EOVRSZ : 1; /*!< [4..4] Express frame over size error detected in frame parser */ + uint32_t : 27; + } P2_ERROR_STATUS_b; + }; + + union + { + __IOM uint32_t P2_ERROR_MASK; /*!< (@ 0x00002B30) Port 2 Frame Parser Runtime Error Mask */ + + struct + { + __IOM uint32_t MSOPERR : 1; /*!< [0..0] Error mask of SOPERR (SOP error) */ + __IOM uint32_t MPUNDSZ : 1; /*!< [1..1] Error mask of PUNDSZ (Preemptable frame under size error) */ + __IOM uint32_t MPOVRSZ : 1; /*!< [2..2] Error mask of POVRSZ (Preemptable frame over size error) */ + __IOM uint32_t MEUNDSZ : 1; /*!< [3..3] Error mask of EUNDSZ (Express frame under size error) */ + __IOM uint32_t MEOVRSZ : 1; /*!< [4..4] Error mask of EOVRSZ (Express frame over size error) */ + uint32_t : 27; + } P2_ERROR_MASK_b; + }; + __IM uint32_t RESERVED90[564]; + + union + { + __IM uint32_t STATN_STATUS; /*!< (@ 0x00003404) Statistics Status Register */ + + struct + { + __IM uint32_t BUSY : 1; /*!< [0..0] Statistics module is busy */ + uint32_t : 31; + } STATN_STATUS_b; + }; + + union + { + __IOM uint32_t STATN_CONFIG; /*!< (@ 0x00003408) Statistics Configure Register */ + + struct + { + uint32_t : 1; + __IOM uint32_t CLEAR_ON_READ : 1; /*!< [1..1] When set to 1, a read to a counter resets it to 0. When + * set to 0 (default), counters are not affected by read. */ + uint32_t : 29; + __IOM uint32_t RESET : 1; /*!< [31..31] When set to 1, all internal functions are aborted and + * return to a stable state (flushes prescalers). It also + * triggers a clear of all counter memory (all ports are cleared) + * by setting STATN_CONTROL.CMD_CLEAR with all mask bits. + * Capture memory is not reset. */ + } STATN_CONFIG_b; + }; + + union + { + __IOM uint32_t STATN_CONTROL; /*!< (@ 0x0000340C) Statistics Control Register */ + + struct + { + __IOM uint32_t CHANMASK : 4; /*!< [3..0] One bit per port. Bit 0 = port 0, bit 1 = port 1, and + * so on. */ + uint32_t : 25; + __IOM uint32_t CLEAR_PRE : 1; /*!< [29..29] Clear the internal pre-scaler counters of ports when + * a clear occurs. This bit can be used together with the + * CMD_CLEAR command to clear the internal pre-scaler counters + * of the ports. */ + uint32_t : 1; + __IOM uint32_t CMD_CLEAR : 1; /*!< [31..31] Clear Channel Counters Command */ + } STATN_CONTROL_b; + }; + + union + { + __IOM uint32_t STATN_CLEARVALUE_LO; /*!< (@ 0x00003410) Statistics Clear Value Lower Register */ + + struct + { + __IOM uint32_t STATN_CLEARVALUE_LO : 32; /*!< [31..0] 32-bit value written into statistics memory when a clear + * command (STATN_CONTROL.CMD_CLEAR) is triggered (see ), + * or when a clear-after-read is used. */ + } STATN_CLEARVALUE_LO_b; + }; + __IM uint32_t RESERVED91[21]; + + union + { + __IM uint32_t ODISC0; /*!< (@ 0x00003468) Port 0 Discarded Outgoing Frame Count Register */ + + struct + { + __IM uint32_t ODISC : 32; /*!< [31..0] Port n outgoing frames discarded due to output queue + * congestion. */ + } ODISC0_b; + }; + + union + { + __IM uint32_t IDISC_VLAN0; /*!< (@ 0x0000346C) Port 0 Discarded Incoming VLAN Tagged Frame Count + * Register */ + + struct + { + __IM uint32_t IDISC_VLAN : 32; /*!< [31..0] Port n incoming frames discarded due to mismatching + * or missing VLAN ID while VLAN verification was enabled. */ + } IDISC_VLAN0_b; + }; + + union + { + __IM uint32_t IDISC_UNTAGGED0; /*!< (@ 0x00003470) Port 0 Discarded Incoming VLAN Untagged Frame + * Count Register */ + + struct + { + __IM uint32_t IDISC_UNTAGGED : 32; /*!< [31..0] Port n incoming frames discarded due to missing VLAN + * tag. */ + } IDISC_UNTAGGED0_b; + }; + + union + { + __IM uint32_t IDISC_BLOCKED0; /*!< (@ 0x00003474) Port 0 Discarded Incoming Blocked Frame Count + * Register */ + + struct + { + __IM uint32_t IDISC_BLOCKED : 32; /*!< [31..0] Port n incoming frames discarded (after learning) as + * the port is configured in blocking mode. */ + } IDISC_BLOCKED0_b; + }; + + union + { + __IM uint32_t IDISC_ANY0; /*!< (@ 0x00003478) Port 0 Discarded Any Frame Count Register (n + * = 0 to 3) */ + + struct + { + __IM uint32_t IDISC_ANY : 32; /*!< [31..0] Port n total incoming frames discarded. This includes + * IDISC_VLAN, IDSIC_UNTAGGED, IDISC_SRCFLT, and IDISC_BLOCKED. */ + } IDISC_ANY0_b; + }; + + union + { + __IM uint32_t IDISC_SRCFLT0; /*!< (@ 0x0000347C) Port 0 Discarded Address Source Count Register */ + + struct + { + __IM uint32_t IDISC_SRCFLT : 32; /*!< [31..0] Port n counts the number of incoming frames discarded + * due to the MAC address source filter. */ + } IDISC_SRCFLT0_b; + }; + + union + { + __IM uint32_t TX_HOLD_REQ_CNT0; /*!< (@ 0x00003480) Port 0 TX Hold Request Count Register */ + + struct + { + __IM uint32_t TX_HOLD_REQ_CNT : 32; /*!< [31..0] TX_HOLD_REQ_CNT */ + } TX_HOLD_REQ_CNT0_b; + }; + + union + { + __IM uint32_t TX_FRAG_CNT0; /*!< (@ 0x00003484) Port 0 TX for Preemption Count Register */ + + struct + { + __IM uint32_t TX_FRAG_CNT : 32; /*!< [31..0] Port n increments when an additional mPacket is transmitted + * due to preemption. */ + } TX_FRAG_CNT0_b; + }; + + union + { + __IM uint32_t RX_FRAG_CNT0; /*!< (@ 0x00003488) Port 0 RX Continuation Count Register */ + + struct + { + __IM uint32_t RX_FRAG_CNT : 32; /*!< [31..0] Port n increments for every continuation mPacket received. */ + } RX_FRAG_CNT0_b; + }; + + union + { + __IM uint32_t RX_ASSY_OK_CNT0; /*!< (@ 0x0000348C) Port 0 RX Preempted Frame Success Count Register */ + + struct + { + __IM uint32_t RX_ASSY_OK_CNT : 32; /*!< [31..0] Port n increments when a preempted frame is successfully + * assembled. */ + } RX_ASSY_OK_CNT0_b; + }; + + union + { + __IM uint32_t RX_ASSY_ERR_CNT0; /*!< (@ 0x00003490) Port 0 RX Preempted Frame Incorrect Count Register */ + + struct + { + __IM uint32_t RX_ASSY_ERR_CNT : 16; /*!< [15..0] Port n increments when a preempted frame is incorrectly + * assembled. */ + uint32_t : 16; + } RX_ASSY_ERR_CNT0_b; + }; + + union + { + __IM uint32_t RX_SMD_ERR_CNT0; /*!< (@ 0x00003494) Port 0 RX SMD Frame Count Register */ + + struct + { + __IM uint32_t RX_SMD_ERR_CNT : 16; /*!< [15..0] Port n increments when a frame with an SMD-Cx is received + * and no assembly is in progress. */ + uint32_t : 16; + } RX_SMD_ERR_CNT0_b; + }; + + union + { + __IM uint32_t TX_VERIFY_OK_CNT0; /*!< (@ 0x00003498) Port 0 TX VERIFY Frame Count Register */ + + struct + { + __IM uint32_t TX_VERIFY_OK_CNT : 8; /*!< [7..0] Port n increments for every VERIFY frame transmitted. */ + uint32_t : 24; + } TX_VERIFY_OK_CNT0_b; + }; + + union + { + __IM uint32_t TX_RESPONSE_OK_CNT0; /*!< (@ 0x0000349C) Port 0 TX RESPONSE Frame Count Register */ + + struct + { + __IM uint32_t TX_RESPONSE_OK_CNT : 8; /*!< [7..0] Port n increments for every RESPONSE frame transmitted. */ + uint32_t : 24; + } TX_RESPONSE_OK_CNT0_b; + }; + + union + { + __IM uint32_t RX_VERIFY_OK_CNT0; /*!< (@ 0x000034A0) Port 0 RX VERIFY Frame Count Register */ + + struct + { + __IM uint32_t RX_VERIFY_OK_CNT : 8; /*!< [7..0] Port n increments for every valid VERIFY frame received. */ + uint32_t : 24; + } RX_VERIFY_OK_CNT0_b; + }; + + union + { + __IM uint32_t RX_RESPONSE_OK_CNT0; /*!< (@ 0x000034A4) Port 0 RX RESPONSE Frame Count Register */ + + struct + { + __IM uint32_t RX_RESPONSE_OK_CNT : 8; /*!< [7..0] Port n increments for every valid RESPONSE frame received. */ + uint32_t : 24; + } RX_RESPONSE_OK_CNT0_b; + }; + + union + { + __IM uint32_t RX_VERIFY_BAD_CNT0; /*!< (@ 0x000034A8) Port 0 RX Error VERIFY Frame Count Register */ + + struct + { + __IM uint32_t RX_VERIFY_BAD_CNT : 8; /*!< [7..0] Port n increments for every errored VERIFY frame received. */ + uint32_t : 24; + } RX_VERIFY_BAD_CNT0_b; + }; + + union + { + __IM uint32_t RX_RESPONSE_BAD_CNT0; /*!< (@ 0x000034AC) Port 0 RX Error RESPONSE Frame Count Register */ + + struct + { + __IM uint32_t RX_RESPONSE_BAD_CNT : 8; /*!< [7..0] Port n increments for every errored RESPONSE frame received. */ + uint32_t : 24; + } RX_RESPONSE_BAD_CNT0_b; + }; + + union + { + __IM uint32_t ODISC1; /*!< (@ 0x000034B0) Port 1 Discarded Outgoing Frame Count Register */ + + struct + { + __IM uint32_t ODISC : 32; /*!< [31..0] Port n outgoing frames discarded due to output queue + * congestion. */ + } ODISC1_b; + }; + + union + { + __IM uint32_t IDISC_VLAN1; /*!< (@ 0x000034B4) Port 1 Discarded Incoming VLAN Tagged Frame Count + * Register */ + + struct + { + __IM uint32_t IDISC_VLAN : 32; /*!< [31..0] Port n incoming frames discarded due to mismatching + * or missing VLAN ID while VLAN verification was enabled. */ + } IDISC_VLAN1_b; + }; + + union + { + __IM uint32_t IDISC_UNTAGGED1; /*!< (@ 0x000034B8) Port 1 Discarded Incoming VLAN Untagged Frame + * Count Register */ + + struct + { + __IM uint32_t IDISC_UNTAGGED : 32; /*!< [31..0] Port n incoming frames discarded due to missing VLAN + * tag. */ + } IDISC_UNTAGGED1_b; + }; + + union + { + __IM uint32_t IDISC_BLOCKED1; /*!< (@ 0x000034BC) Port 1 Discarded Incoming Blocked Frame Count + * Register */ + + struct + { + __IM uint32_t IDISC_BLOCKED : 32; /*!< [31..0] Port n incoming frames discarded (after learning) as + * the port is configured in blocking mode. */ + } IDISC_BLOCKED1_b; + }; + + union + { + __IM uint32_t IDISC_ANY1; /*!< (@ 0x000034C0) Port 1 Discarded Any Frame Count Register (n + * = 0 to 3) */ + + struct + { + __IM uint32_t IDISC_ANY : 32; /*!< [31..0] Port n total incoming frames discarded. This includes + * IDISC_VLAN, IDSIC_UNTAGGED, IDISC_SRCFLT, and IDISC_BLOCKED. */ + } IDISC_ANY1_b; + }; + + union + { + __IM uint32_t IDISC_SRCFLT1; /*!< (@ 0x000034C4) Port 1 Discarded Address Source Count Register */ + + struct + { + __IM uint32_t IDISC_SRCFLT : 32; /*!< [31..0] Port n counts the number of incoming frames discarded + * due to the MAC address source filter. */ + } IDISC_SRCFLT1_b; + }; + + union + { + __IM uint32_t TX_HOLD_REQ_CNT1; /*!< (@ 0x000034C8) Port 1 TX Hold Request Count Register */ + + struct + { + __IM uint32_t TX_HOLD_REQ_CNT : 32; /*!< [31..0] TX_HOLD_REQ_CNT */ + } TX_HOLD_REQ_CNT1_b; + }; + + union + { + __IM uint32_t TX_FRAG_CNT1; /*!< (@ 0x000034CC) Port 1 TX for Preemption Count Register */ + + struct + { + __IM uint32_t TX_FRAG_CNT : 32; /*!< [31..0] Port n increments when an additional mPacket is transmitted + * due to preemption. */ + } TX_FRAG_CNT1_b; + }; + + union + { + __IM uint32_t RX_FRAG_CNT1; /*!< (@ 0x000034D0) Port 1 RX Continuation Count Register */ + + struct + { + __IM uint32_t RX_FRAG_CNT : 32; /*!< [31..0] Port n increments for every continuation mPacket received. */ + } RX_FRAG_CNT1_b; + }; + + union + { + __IM uint32_t RX_ASSY_OK_CNT1; /*!< (@ 0x000034D4) Port 1 RX Preempted Frame Success Count Register */ + + struct + { + __IM uint32_t RX_ASSY_OK_CNT : 32; /*!< [31..0] Port n increments when a preempted frame is successfully + * assembled. */ + } RX_ASSY_OK_CNT1_b; + }; + + union + { + __IM uint32_t RX_ASSY_ERR_CNT1; /*!< (@ 0x000034D8) Port 1 RX Preempted Frame Incorrect Count Register */ + + struct + { + __IM uint32_t RX_ASSY_ERR_CNT : 16; /*!< [15..0] Port n increments when a preempted frame is incorrectly + * assembled. */ + uint32_t : 16; + } RX_ASSY_ERR_CNT1_b; + }; + + union + { + __IM uint32_t RX_SMD_ERR_CNT1; /*!< (@ 0x000034DC) Port 1 RX SMD Frame Count Register */ + + struct + { + __IM uint32_t RX_SMD_ERR_CNT : 16; /*!< [15..0] Port n increments when a frame with an SMD-Cx is received + * and no assembly is in progress. */ + uint32_t : 16; + } RX_SMD_ERR_CNT1_b; + }; + + union + { + __IM uint32_t TX_VERIFY_OK_CNT1; /*!< (@ 0x000034E0) Port 1 TX VERIFY Frame Count Register */ + + struct + { + __IM uint32_t TX_VERIFY_OK_CNT : 8; /*!< [7..0] Port n increments for every VERIFY frame transmitted. */ + uint32_t : 24; + } TX_VERIFY_OK_CNT1_b; + }; + + union + { + __IM uint32_t TX_RESPONSE_OK_CNT1; /*!< (@ 0x000034E4) Port 1 TX RESPONSE Frame Count Register */ + + struct + { + __IM uint32_t TX_RESPONSE_OK_CNT : 8; /*!< [7..0] Port n increments for every RESPONSE frame transmitted. */ + uint32_t : 24; + } TX_RESPONSE_OK_CNT1_b; + }; + + union + { + __IM uint32_t RX_VERIFY_OK_CNT1; /*!< (@ 0x000034E8) Port 1 RX VERIFY Frame Count Register */ + + struct + { + __IM uint32_t RX_VERIFY_OK_CNT : 8; /*!< [7..0] Port n increments for every valid VERIFY frame received. */ + uint32_t : 24; + } RX_VERIFY_OK_CNT1_b; + }; + + union + { + __IM uint32_t RX_RESPONSE_OK_CNT1; /*!< (@ 0x000034EC) Port 1 RX RESPONSE Frame Count Register */ + + struct + { + __IM uint32_t RX_RESPONSE_OK_CNT : 8; /*!< [7..0] Port n increments for every valid RESPONSE frame received. */ + uint32_t : 24; + } RX_RESPONSE_OK_CNT1_b; + }; + + union + { + __IM uint32_t RX_VERIFY_BAD_CNT1; /*!< (@ 0x000034F0) Port 1 RX Error VERIFY Frame Count Register */ + + struct + { + __IM uint32_t RX_VERIFY_BAD_CNT : 8; /*!< [7..0] Port n increments for every errored VERIFY frame received. */ + uint32_t : 24; + } RX_VERIFY_BAD_CNT1_b; + }; + + union + { + __IM uint32_t RX_RESPONSE_BAD_CNT1; /*!< (@ 0x000034F4) Port 1 RX Error RESPONSE Frame Count Register */ + + struct + { + __IM uint32_t RX_RESPONSE_BAD_CNT : 8; /*!< [7..0] Port n increments for every errored RESPONSE frame received. */ + uint32_t : 24; + } RX_RESPONSE_BAD_CNT1_b; + }; + + union + { + __IM uint32_t ODISC2; /*!< (@ 0x000034F8) Port 2 Discarded Outgoing Frame Count Register */ + + struct + { + __IM uint32_t ODISC : 32; /*!< [31..0] Port n outgoing frames discarded due to output queue + * congestion. */ + } ODISC2_b; + }; + + union + { + __IM uint32_t IDISC_VLAN2; /*!< (@ 0x000034FC) Port 2 Discarded Incoming VLAN Tagged Frame Count + * Register */ + + struct + { + __IM uint32_t IDISC_VLAN : 32; /*!< [31..0] Port n incoming frames discarded due to mismatching + * or missing VLAN ID while VLAN verification was enabled. */ + } IDISC_VLAN2_b; + }; + + union + { + __IM uint32_t IDISC_UNTAGGED2; /*!< (@ 0x00003500) Port 2 Discarded Incoming VLAN Untagged Frame + * Count Register */ + + struct + { + __IM uint32_t IDISC_UNTAGGED : 32; /*!< [31..0] Port n incoming frames discarded due to missing VLAN + * tag. */ + } IDISC_UNTAGGED2_b; + }; + + union + { + __IM uint32_t IDISC_BLOCKED2; /*!< (@ 0x00003504) Port 2 Discarded Incoming Blocked Frame Count + * Register */ + + struct + { + __IM uint32_t IDISC_BLOCKED : 32; /*!< [31..0] Port n incoming frames discarded (after learning) as + * the port is configured in blocking mode. */ + } IDISC_BLOCKED2_b; + }; + + union + { + __IM uint32_t IDISC_ANY2; /*!< (@ 0x00003508) Port 2 Discarded Any Frame Count Register (n + * = 0 to 3) */ + + struct + { + __IM uint32_t IDISC_ANY : 32; /*!< [31..0] Port n total incoming frames discarded. This includes + * IDISC_VLAN, IDSIC_UNTAGGED, IDISC_SRCFLT, and IDISC_BLOCKED. */ + } IDISC_ANY2_b; + }; + + union + { + __IM uint32_t IDISC_SRCFLT2; /*!< (@ 0x0000350C) Port 2 Discarded Address Source Count Register */ + + struct + { + __IM uint32_t IDISC_SRCFLT : 32; /*!< [31..0] Port n counts the number of incoming frames discarded + * due to the MAC address source filter. */ + } IDISC_SRCFLT2_b; + }; + + union + { + __IM uint32_t TX_HOLD_REQ_CNT2; /*!< (@ 0x00003510) Port 2 TX Hold Request Count Register */ + + struct + { + __IM uint32_t TX_HOLD_REQ_CNT : 32; /*!< [31..0] TX_HOLD_REQ_CNT */ + } TX_HOLD_REQ_CNT2_b; + }; + + union + { + __IM uint32_t TX_FRAG_CNT2; /*!< (@ 0x00003514) Port 2 TX for Preemption Count Register */ + + struct + { + __IM uint32_t TX_FRAG_CNT : 32; /*!< [31..0] Port n increments when an additional mPacket is transmitted + * due to preemption. */ + } TX_FRAG_CNT2_b; + }; + + union + { + __IM uint32_t RX_FRAG_CNT2; /*!< (@ 0x00003518) Port 2 RX Continuation Count Register */ + + struct + { + __IM uint32_t RX_FRAG_CNT : 32; /*!< [31..0] Port n increments for every continuation mPacket received. */ + } RX_FRAG_CNT2_b; + }; + + union + { + __IM uint32_t RX_ASSY_OK_CNT2; /*!< (@ 0x0000351C) Port 2 RX Preempted Frame Success Count Register */ + + struct + { + __IM uint32_t RX_ASSY_OK_CNT : 32; /*!< [31..0] Port n increments when a preempted frame is successfully + * assembled. */ + } RX_ASSY_OK_CNT2_b; + }; + + union + { + __IM uint32_t RX_ASSY_ERR_CNT2; /*!< (@ 0x00003520) Port 2 RX Preempted Frame Incorrect Count Register */ + + struct + { + __IM uint32_t RX_ASSY_ERR_CNT : 16; /*!< [15..0] Port n increments when a preempted frame is incorrectly + * assembled. */ + uint32_t : 16; + } RX_ASSY_ERR_CNT2_b; + }; + + union + { + __IM uint32_t RX_SMD_ERR_CNT2; /*!< (@ 0x00003524) Port 2 RX SMD Frame Count Register */ + + struct + { + __IM uint32_t RX_SMD_ERR_CNT : 16; /*!< [15..0] Port n increments when a frame with an SMD-Cx is received + * and no assembly is in progress. */ + uint32_t : 16; + } RX_SMD_ERR_CNT2_b; + }; + + union + { + __IM uint32_t TX_VERIFY_OK_CNT2; /*!< (@ 0x00003528) Port 2 TX VERIFY Frame Count Register */ + + struct + { + __IM uint32_t TX_VERIFY_OK_CNT : 8; /*!< [7..0] Port n increments for every VERIFY frame transmitted. */ + uint32_t : 24; + } TX_VERIFY_OK_CNT2_b; + }; + + union + { + __IM uint32_t TX_RESPONSE_OK_CNT2; /*!< (@ 0x0000352C) Port 2 TX RESPONSE Frame Count Register */ + + struct + { + __IM uint32_t TX_RESPONSE_OK_CNT : 8; /*!< [7..0] Port n increments for every RESPONSE frame transmitted. */ + uint32_t : 24; + } TX_RESPONSE_OK_CNT2_b; + }; + + union + { + __IM uint32_t RX_VERIFY_OK_CNT2; /*!< (@ 0x00003530) Port 2 RX VERIFY Frame Count Register */ + + struct + { + __IM uint32_t RX_VERIFY_OK_CNT : 8; /*!< [7..0] Port n increments for every valid VERIFY frame received. */ + uint32_t : 24; + } RX_VERIFY_OK_CNT2_b; + }; + + union + { + __IM uint32_t RX_RESPONSE_OK_CNT2; /*!< (@ 0x00003534) Port 2 RX RESPONSE Frame Count Register */ + + struct + { + __IM uint32_t RX_RESPONSE_OK_CNT : 8; /*!< [7..0] Port n increments for every valid RESPONSE frame received. */ + uint32_t : 24; + } RX_RESPONSE_OK_CNT2_b; + }; + + union + { + __IM uint32_t RX_VERIFY_BAD_CNT2; /*!< (@ 0x00003538) Port 2 RX Error VERIFY Frame Count Register */ + + struct + { + __IM uint32_t RX_VERIFY_BAD_CNT : 8; /*!< [7..0] Port n increments for every errored VERIFY frame received. */ + uint32_t : 24; + } RX_VERIFY_BAD_CNT2_b; + }; + + union + { + __IM uint32_t RX_RESPONSE_BAD_CNT2; /*!< (@ 0x0000353C) Port 2 RX Error RESPONSE Frame Count Register */ + + struct + { + __IM uint32_t RX_RESPONSE_BAD_CNT : 8; /*!< [7..0] Port n increments for every errored RESPONSE frame received. */ + uint32_t : 24; + } RX_RESPONSE_BAD_CNT2_b; + }; + + union + { + __IM uint32_t ODISC3; /*!< (@ 0x00003540) Port 3 Discarded Outgoing Frame Count Register */ + + struct + { + __IM uint32_t ODISC : 32; /*!< [31..0] Port n outgoing frames discarded due to output queue + * congestion. */ + } ODISC3_b; + }; + + union + { + __IM uint32_t IDISC_VLAN3; /*!< (@ 0x00003544) Port 3 Discarded Incoming VLAN Tagged Frame Count + * Register */ + + struct + { + __IM uint32_t IDISC_VLAN : 32; /*!< [31..0] Port n incoming frames discarded due to mismatching + * or missing VLAN ID while VLAN verification was enabled. */ + } IDISC_VLAN3_b; + }; + + union + { + __IM uint32_t IDISC_UNTAGGED3; /*!< (@ 0x00003548) Port 3 Discarded Incoming VLAN Untagged Frame + * Count Register */ + + struct + { + __IM uint32_t IDISC_UNTAGGED : 32; /*!< [31..0] Port n incoming frames discarded due to missing VLAN + * tag. */ + } IDISC_UNTAGGED3_b; + }; + + union + { + __IM uint32_t IDISC_BLOCKED3; /*!< (@ 0x0000354C) Port 3 Discarded Incoming Blocked Frame Count + * Register */ + + struct + { + __IM uint32_t IDISC_BLOCKED : 32; /*!< [31..0] Port n incoming frames discarded (after learning) as + * the port is configured in blocking mode. */ + } IDISC_BLOCKED3_b; + }; + + union + { + __IM uint32_t IDISC_ANY3; /*!< (@ 0x00003550) Port 3 Discarded Any Frame Count Register (n + * = 0 to 3) */ + + struct + { + __IM uint32_t IDISC_ANY : 32; /*!< [31..0] Port n total incoming frames discarded. This includes + * IDISC_VLAN, IDSIC_UNTAGGED, IDISC_SRCFLT, and IDISC_BLOCKED. */ + } IDISC_ANY3_b; + }; + __IM uint32_t RESERVED92[363]; + + union + { + __IOM uint32_t MMCTL_OUT_CT; /*!< (@ 0x00003B00) Cut-Through Register */ + + struct + { + __IOM uint32_t CT_OVR_ENA : 3; /*!< [2..0] Per-port bit mask to enable overriding the Cut-Through + * (CT) behavior of the output ports with CT_OVR. When set + * to 0, the frames are transmitted CT if the CT flag of the + * frame context is set. */ + uint32_t : 13; + __IOM uint32_t CT_OVR : 3; /*!< [18..16] 1 bit per-port value to set the Cut Through behavior + * of the output ports. When set to 0, all frames are sent + * as Store & Forward (SF) frames. When set to 1, frames with + * the CT flag set in the frame context are started as soon + * as the frame context information is available. */ + uint32_t : 13; + } MMCTL_OUT_CT_b; + }; + + union + { + __IOM uint32_t MMCTL_CTFL_P0_3_ENA; /*!< (@ 0x00003B04) Cut-Through Frame Length Enable Register */ + + struct + { + __IOM uint32_t CTFL_P0_ENA : 8; /*!< [7..0] Port 0 bit mask of n bits, where n is the number of queues + * per port indicating whether the CTFL is used for Cut-Through + * (CT) frames. When set to 1, a CT frame requires a CTFL + * entry to be written as a CT frame in the output memory. */ + __IOM uint32_t CTFL_P1_ENA : 8; /*!< [15..8] Port 1 bit mask of n bits, where n is the number of + * queues per port indicating whether the CTFL is used for + * Cut-Through (CT) frames. When set to 1, a CT frame requires + * a CTFL entry to be written as a CT frame in the output + * memory. */ + __IOM uint32_t CTFL_P2_ENA : 8; /*!< [23..16] Port 2 bit mask of n bits, where n is the number of + * queues per port indicating whether the CTFL is used for + * Cut-Through (CT) frames. When set to 1, a CT frame requires + * a CTFL entry to be written as a CT frame in the output + * memory. */ + uint32_t : 8; + } MMCTL_CTFL_P0_3_ENA_b; + }; + __IM uint32_t RESERVED93[6]; + + union + { + __IOM uint32_t MMCTL_YELLOW_BYTE_LENGTH_P[3]; /*!< (@ 0x00003B20) Port [0..2] Yellow Period Byte Length Register */ + + struct + { + uint32_t : 2; + __IOM uint32_t YELLOW_LEN : 14; /*!< [15..2] Length in bytes of the YELLOW period for port n. Determines + * whether a frame can be transmitted before the YELLOW period + * expires. The value is programmed in increments of 4 bytes + * excluding the MAC overhead (IPG, Preamble and FCS if appended) + * of the frame. */ + __IOM uint32_t YLEN_EN : 1; /*!< [16..16] When set to 1, enables transmission when OUT_CT_ENA + * is low only if the frame length is less than YELLOW_LEN. + * If cleared, YELLOW_LEN is ignored and frames are always + * transmitted in SF mode when OUT_CT_ENA is 0. */ + uint32_t : 15; + } MMCTL_YELLOW_BYTE_LENGTH_P_b[3]; + }; + __IM uint32_t RESERVED94[5]; + + union + { + __IOM uint32_t MMCTL_POOL0_CTR; /*!< (@ 0x00003B40) Memory Pool Counter (n = 0 to 1) */ + + struct + { + __IOM uint32_t CELLS : 10; /*!< [9..0] Memory pool configuration for pool n. Configures, in + * cells, the size of each memory pool. */ + uint32_t : 6; + __IM uint32_t USED : 10; /*!< [25..16] Reports the current available number of used cells + * for this memory pool. The used number of free cells can + * be calculated as CELLS - USED. */ + uint32_t : 6; + } MMCTL_POOL0_CTR_b; + }; + + union + { + __IOM uint32_t MMCTL_POOL1_CTR; /*!< (@ 0x00003B44) Memory Pool Counter (n = 0 to 1) */ + + struct + { + __IOM uint32_t CELLS : 10; /*!< [9..0] Memory pool configuration for pool n. Configures, in + * cells, the size of each memory pool. */ + uint32_t : 6; + __IM uint32_t USED : 10; /*!< [25..16] Reports the current available number of used cells + * for this memory pool. The used number of free cells can + * be calculated as CELLS - USED. */ + uint32_t : 6; + } MMCTL_POOL1_CTR_b; + }; + __IM uint32_t RESERVED95[6]; + + union + { + __IOM uint32_t MMCTL_POOL_GLOBAL; /*!< (@ 0x00003B60) Memory Pool Configuration Register */ + + struct + { + __IOM uint32_t CELLS : 10; /*!< [9..0] Memory pool configuration for the global pool. Configures, + * in cells, the size of the global shared pool. */ + uint32_t : 6; + __IM uint32_t USED : 10; /*!< [25..16] Reports the current number of used cells for the global + * shared pool. The used number of free cells can be calculated + * as CELLS - USED. */ + uint32_t : 6; + } MMCTL_POOL_GLOBAL_b; + }; + + union + { + __IM uint32_t MMCTL_POOL_STATUS; /*!< (@ 0x00003B64) Memory Pool Status Register */ + + struct + { + __IM uint32_t QUEUE_FULL : 8; /*!< [7..0] Per-queue pool full indication. Indicates for each queue + * whether all the blocks in the corresponding pool and global + * pool are allocated. */ + uint32_t : 24; + } MMCTL_POOL_STATUS_b; + }; + + union + { + __IOM uint32_t MMCTL_POOL_QMAP; /*!< (@ 0x00003B68) Queue MAP Register */ + + struct + { + __IOM uint32_t Q0_MAP : 1; /*!< [0..0] Queue 0 Memory Pool */ + uint32_t : 2; + __IOM uint32_t Q0_ENA : 1; /*!< [3..3] Queue 0 Memory Pool Enabled */ + __IOM uint32_t Q1_MAP : 1; /*!< [4..4] Queue 1 Memory Pool */ + uint32_t : 2; + __IOM uint32_t Q1_ENA : 1; /*!< [7..7] Queue 1 Memory Pool Enabled */ + __IOM uint32_t Q2_MAP : 1; /*!< [8..8] Queue 2 Memory Pool */ + uint32_t : 2; + __IOM uint32_t Q2_ENA : 1; /*!< [11..11] Queue 2 Memory Pool Enabled */ + __IOM uint32_t Q3_MAP : 1; /*!< [12..12] Queue 3 Memory Pool */ + uint32_t : 2; + __IOM uint32_t Q3_ENA : 1; /*!< [15..15] Queue 3 Memory Pool Enabled */ + __IOM uint32_t Q4_MAP : 1; /*!< [16..16] Queue 4 Memory Pool */ + uint32_t : 2; + __IOM uint32_t Q4_ENA : 1; /*!< [19..19] Queue 4 Memory Pool Enabled */ + __IOM uint32_t Q5_MAP : 1; /*!< [20..20] Queue 5 Memory Pool */ + uint32_t : 2; + __IOM uint32_t Q5_ENA : 1; /*!< [23..23] Queue 5 Memory Pool Enabled */ + __IOM uint32_t Q6_MAP : 1; /*!< [24..24] Queue 6 Memory Pool */ + uint32_t : 2; + __IOM uint32_t Q6_ENA : 1; /*!< [27..27] Queue 6 Memory Pool Enabled */ + __IOM uint32_t Q7_MAP : 1; /*!< [28..28] Queue 7 Memory Pool */ + uint32_t : 2; + __IOM uint32_t Q7_ENA : 1; /*!< [31..31] Queue 7 Memory Pool Enabled */ + } MMCTL_POOL_QMAP_b; + }; + + union + { + __OM uint32_t MMCTL_QGATE; /*!< (@ 0x00003B6C) Queue Gate State Register */ + + struct + { + __OM uint32_t PORT_MASK : 4; /*!< [3..0] Per-port bit mask. When set to 1 for a port, the queue + * gate state is changed for that port as indicated by QUEUE_GATE. */ + uint32_t : 12; + __OM uint32_t QUEUE_GATE : 16; /*!< [31..16] 2-bit per queue indicating the action to be performed + * on each queue of the ports indicated by PORT_MASK. */ + } MMCTL_QGATE_b; + }; + + union + { + __OM uint32_t MMCTL_QTRIG; /*!< (@ 0x00003B70) Queue Trigger Register */ + + struct + { + __OM uint32_t PORT_MASK : 4; /*!< [3..0] Per-port bit mask. When set to 1 for a port, a frame + * is triggered from the closed queues indicated by QUEUE_TRIG. */ + uint32_t : 12; + __OM uint32_t QUEUE_TRIG : 8; /*!< [23..16] 1-bit per queue indicating from which queues a frame + * is to be transmitted from the ports indicated by PORT_MASK. + * When set to 1, a single frame is transmitted per indicated + * port in PORT_MASK among the queues indicated by QUEUE_TRIG. */ + uint32_t : 8; + } MMCTL_QTRIG_b; + }; + + union + { + __OM uint32_t MMCTL_QFLUSH; /*!< (@ 0x00003B74) Flush Event Select Register */ + + struct + { + __OM uint32_t PORT_MASK : 4; /*!< [3..0] Per-port bit mask. When set to 1 for a port, the queue + * flush status is changed for that port for the queues indicated + * in QUEUE_MASK. */ + uint32_t : 12; + __OM uint32_t QUEUE_MASK : 8; /*!< [23..16] 1 bit per queue indicating for which queues of the + * ports indicated by PORT_MASK the flush state is changed + * as indicated in ACTION. */ + __OM uint32_t ACTION : 2; /*!< [25..24] Selects the flush state for the queues indicated by + * QUEUE_MASK in the ports indicated by PORT_MASK. Possible + * actions are: */ + uint32_t : 6; + } MMCTL_QFLUSH_b; + }; + + union + { + __IM uint32_t MMCTL_QCLOSED_STATUS_P0_3; /*!< (@ 0x00003B78) Queue Closed Status Register */ + + struct + { + __IM uint32_t P0_STATUS : 8; /*!< [7..0] Per-queue closed status of Port 0 (1-bit per queue). + * A 0 indicates that the queue is open (enabled), and a 1 + * indicates that the queue is closed (disabled). */ + __IM uint32_t P1_STATUS : 8; /*!< [15..8] Per-queue closed status of Port 1 (1-bit per queue). + * A 0 indicates that the queue is open (enabled), and a 1 + * indicates that the queue is closed (disabled). */ + __IM uint32_t P2_STATUS : 8; /*!< [23..16] Per-queue closed status of Port 2 (1-bit per queue). + * A 0 indicates that the queue is open (enabled), and a 1 + * indicates that the queue is closed (disabled). */ + uint32_t : 8; + } MMCTL_QCLOSED_STATUS_P0_3_b; + }; + __IM uint32_t RESERVED96; + + union + { + __IOM uint32_t MMCTL_1FRAME_MODE_P[3]; /*!< (@ 0x00003B80) Port [0..2] 1-Frame Mode Configuration Register */ + + struct + { + __IOM uint32_t Q_1FRAME_ENA : 8; /*!< [7..0] 1 bit per queue. Setting a bit to 1 enables the 1-frame + * mode for that queue for port n. In this mode, only one + * frame is allowed in the queue. If a new frame is received, + * the old frame is discarded. */ + uint32_t : 8; + __IOM uint32_t Q_BUF_ENA : 8; /*!< [23..16] 1 bit per queue. Setting a bit to 1 enables the buffer + * mode behavior for that queue for port n. This mode requires + * also that Q_1FRAME_ENA is set to 1. */ + uint32_t : 8; + } MMCTL_1FRAME_MODE_P_b[3]; + }; + __IM uint32_t RESERVED97[5]; + + union + { + __IM uint32_t MMCTL_P0_3_QUEUE_STATUS; /*!< (@ 0x00003BA0) Queue Status Indicator */ + + struct + { + __IM uint32_t P0_Q_STATUS : 8; /*!< [7..0] Port 0 Per-Queue Bit Indication */ + __IM uint32_t P1_Q_STATUS : 8; /*!< [15..8] Port 1 Per-Queue Bit Indication */ + __IM uint32_t P2_Q_STATUS : 8; /*!< [23..16] Port 2 Per-Queue Bit Indication */ + uint32_t : 8; + } MMCTL_P0_3_QUEUE_STATUS_b; + }; + __IM uint32_t RESERVED98; + + union + { + __IM uint32_t MMCTL_P0_3_FLUSH_STATUS; /*!< (@ 0x00003BA8) Queue Flush Status Indicator */ + + struct + { + __IM uint32_t P0_F_STATUS : 8; /*!< [7..0] Port 0 per-Queue Bit Indication on whether the queue + * is flushing frames (read 1) or not (read 0). */ + __IM uint32_t P1_F_STATUS : 8; /*!< [15..8] Port 1 per-Queue Bit Indication on whether the queue + * is flushing frames (read 1) or not (read 0). */ + __IM uint32_t P2_F_STATUS : 8; /*!< [23..16] Port 2 per-Queue Bit Indication on whether the queue + * is flushing frames (read 1) or not (read 0). */ + uint32_t : 8; + } MMCTL_P0_3_FLUSH_STATUS_b; + }; + __IM uint32_t RESERVED99; + + union + { + __IOM uint32_t MMCTL_DLY_QTRIGGER_CTRL; /*!< (@ 0x00003BB0) Delayed Queue Trigger Control Register */ + + struct + { + __IOM uint32_t DELAY_TIME : 30; /*!< [29..0] 30-bit time in nanoseconds indicates the time after + * the trigger request from the pattern matchers to generate + * the event. */ + __IOM uint32_t TIMER_SEL : 1; /*!< [30..30] Select the source timer to use for calculating the + * time. */ + uint32_t : 1; + } MMCTL_DLY_QTRIGGER_CTRL_b; + }; + + union + { + __IOM uint32_t MMCTL_PREEMPT_QUEUES; /*!< (@ 0x00003BB4) Preemptable Queues Configures Register */ + + struct + { + __IOM uint32_t PREEMPT_ENA : 8; /*!< [7..0] Per-queue enable bit to configure which queues are used + * for preemptable traffic. Set to 1 the corresponding bit + * to configure a queue to be preemptable. */ + __IOM uint32_t PREEMPT_ON_QCLOSE : 8; /*!< [15..8] Per-queue configuration bit to enable preempting a frame + * when the queue goes from OPEN to CLOSED. When the corresponding + * bit is set to 1 and the queue is configured as preemptable + * in PREEMPT_ENA, a queue close event causes the current + * frame to be preempted, if preemption is operational. */ + uint32_t : 16; + } MMCTL_PREEMPT_QUEUES_b; + }; + + union + { + __IOM uint32_t MMCTL_HOLD_CONTROL; /*!< (@ 0x00003BB8) Request Preemption Register */ + + struct + { + __IOM uint32_t Q_HOLD_REQ_FORCE : 3; /*!< [2..0] A per-port bit that forces a preempt request using MM_CTL.request + * (hold_req). When this bit is set to 1, it overrides other + * sources of hold request, including the TDMA controller. */ + uint32_t : 13; + __IOM uint32_t Q_HOLD_REQ_RELEASE : 3; /*!< [18..16] A per-port bit that forces a release of preemption + * request using MM_CTL.request (hold_req). When this bit + * is set to 1, it overrides other sources of hold request, + * including the TDMA controller and Q_HOLD_REQ_FORCE[2:0]. */ + uint32_t : 13; + } MMCTL_HOLD_CONTROL_b; + }; + + union + { + __IM uint32_t MMCTL_PREEMPT_STATUS; /*!< (@ 0x00003BBC) Preemption State Register */ + + struct + { + __IM uint32_t PREEMPT_STATE : 3; /*!< [2..0] A per-port bit that indicates if a port is in a preempted + * state. This is a real-time indication meant for debugging. */ + uint32_t : 13; + __IM uint32_t HOLD_REQ_STATE : 3; /*!< [18..16] A per-port bit that indicates if a port is preempted + * using MM_CTL.request (hold_req). This is a real-time indication + * meant for debugging. */ + uint32_t : 13; + } MMCTL_PREEMPT_STATUS_b; + }; + + union + { + __IOM uint32_t MMCTL_CQF_CTRL_P[4]; /*!< (@ 0x00003BC0) Port [0..3] Cyclic Queuing and Forwarding Control + * Register */ + + struct + { + __IOM uint32_t PRIO_ENABLE0 : 8; /*!< [7..0] A per-queue enable to select which ingress priorities + * are queued in the two CQF queues. */ + __IOM uint32_t QUEUE_SEL0 : 3; /*!< [10..8] Select which two physical queues are used for CQF. The + * queues used are QUEUE_SEL0 and QUEUE_SEL0 + 1. Frames are + * written into QUEUE_SEL0 when the gate control selected + * with GATE_SEL0 is 0, and into QUEUE_SEL0 + 1 when the gate + * control is 1. */ + __IOM uint32_t GATE_SEL0 : 3; /*!< [13..11] Select which gate control signal is used for selecting + * the output queue (these signals are the same as the ETHSW_TDMAOUT + * pins). */ + __IOM uint32_t USE_SOP0 : 1; /*!< [14..14] When set to 1, the CFQ queue is determined when the + * SOP is received at the frame writer in the memory controller. + * When set to 0, the queue is determined when the EOP is + * received at the frame writer. */ + __IOM uint32_t REF_SEL0 : 1; /*!< [15..15] Select whether the gate control signal used for the + * CQF group is based on the egress port when set to 0, or + * the ingress port when set to 1. */ + uint32_t : 16; + } MMCTL_CQF_CTRL_P_b[4]; + }; + __IM uint32_t RESERVED100[4]; + + union + { + __IM uint32_t MMCTL_P0_3_QCLOSED_NONEMPTY; /*!< (@ 0x00003BE0) Port Queue Status Register */ + + struct + { + __IM uint32_t P0_Q_STATUS : 8; /*!< [7..0] Port 0 per-queue bit indication on whether the queue + * transitioned from open to closed state while frames were + * still queued. */ + __IM uint32_t P1_Q_STATUS : 8; /*!< [15..8] Port 1 per-queue bit indication on whether the queue + * transitioned from open to closed state while frames were + * still queued. */ + __IM uint32_t P2_Q_STATUS : 8; /*!< [23..16] Port 2 per-queue bit indication on whether the queue + * transitioned from open to closed state while frames were + * still queued. */ + __IM uint32_t P3_Q_STATUS : 8; /*!< [31..24] Port 3 per-queue bit indication on whether the queue + * transitioned from open to closed state while frames were + * still queued. */ + } MMCTL_P0_3_QCLOSED_NONEMPTY_b; + }; + __IM uint32_t RESERVED101; + + union + { + __IOM uint32_t MMCTL_PREEMPT_EXTRA; /*!< (@ 0x00003BE8) Frame Preemption Extra Configuration Register */ + + struct + { + __IOM uint32_t MIN_PFRM_ADJ : 4; /*!< [3..0] Adjust the minimum mPacket length, in increments of 4 + * bytes. */ + __IOM uint32_t LAST_PFRM_ADJ : 4; /*!< [7..4] Adjust the preemptable threshold when reaching the end + * of the frame, in increments of 4 bytes. Incrementing this + * value increments the length of the last mPacket. */ + uint32_t : 24; + } MMCTL_PREEMPT_EXTRA_b; + }; + __IM uint32_t RESERVED102[5]; + + union + { + __IOM uint32_t DLR_CONTROL; /*!< (@ 0x00003C00) DLR Control Register */ + + struct + { + __IOM uint32_t ENABLE : 1; /*!< [0..0] Enable DLR extension module. When set, the DLR module + * becomes active. When DLR is enabled, the LOOP_FILTER_ENA + * must also be enabled for proper DLR operation. */ + __IOM uint32_t AUTOFLUSH : 1; /*!< [1..1] Enable automatic flushing of unicast entries in address + * table if ring reconfiguration occurs (see also DLR interrupt + * IRQ_flush_macaddr_ena in DLR_IRQ_CONTROL). */ + __IOM uint32_t LOOP_FILTER_ENA : 1; /*!< [2..2] Enable the loop filter function. When set to 1, the ingress + * loop filter is enabled. This can be enabled regardless + * of the DLR ENABLE state, allowing the loop filter function + * to operate when DLR is not used. */ + uint32_t : 1; + __IOM uint32_t IGNORE_INVTM : 1; /*!< [4..4] Enable ignore beacon frames with invalid timeout timer. + * When enabled (set to 1) frames with timeout timer value + * not within a range of 200 microseconds to 500 milliseconds + * are ignored and parameters are not locally stored or considered + * for state transitions. The invalid timeout timer value + * is always stored within the DLR_INV_TMOUT register irrespective + * of the value of this bit. Ignored frames are forwarded + * normally. */ + uint32_t : 3; + __IOM uint32_t US_TIME : 12; /*!< [19..8] Number of clock cycles required for 1 microsecond for + * the switch operating clock. This LSI operates at 200 MHz, + * therefore this register must be set to 0xC8. The value + * after reset must be changed. */ + uint32_t : 12; + } DLR_CONTROL_b; + }; + + union + { + __IM uint32_t DLR_STATUS; /*!< (@ 0x00003C04) DLR Status Register */ + + struct + { + __IM uint32_t LastBcnRcvPort : 2; /*!< [1..0] Last Beacon Receive Port */ + uint32_t : 6; + __IM uint32_t NODE_STATE : 8; /*!< [15..8] Local Node Current State */ + __IM uint32_t LINK_STATUS : 2; /*!< [17..16] Link Status */ + uint32_t : 6; + __IM uint32_t TOPOLOGY : 8; /*!< [31..24] Current Network Topology */ + } DLR_STATUS_b; + }; + + union + { + __IOM uint32_t DLR_ETH_TYP; /*!< (@ 0x00003C08) DLR Ethernet Type Register */ + + struct + { + __IOM uint32_t DLR_ETH_TYP : 16; /*!< [15..0] Ethernet type to compare for DLR frame detection (initial + * value is 0x80E1) */ + uint32_t : 16; + } DLR_ETH_TYP_b; + }; + + union + { + __IOM uint32_t DLR_IRQ_CONTROL; /*!< (@ 0x00003C0C) DLR Interrupt Control Register */ + + struct + { + __IOM uint32_t IRQ_state_chng_ena : 1; /*!< [0..0] Enable Interrupt for State Change */ + __IOM uint32_t IRQ_flush_macaddr_ena : 1; /*!< [1..1] Enable Flush Local MAC Address Table Interrupt. */ + __IOM uint32_t IRQ_stop_nbchk0_ena : 1; /*!< [2..2] Enable Stop Request Neighbor Check Timeout Timer Interrupt + * for Port 0. */ + __IOM uint32_t IRQ_stop_nbchk1_ena : 1; /*!< [3..3] Enable Stop Request Neighbor Check Timeout Timer Interrupt + * for Port 1. */ + __IOM uint32_t IRQ_bec_tmr0_exp_ena : 1; /*!< [4..4] IRQ_bec_tmr0_exp_ena */ + __IOM uint32_t IRQ_bec_tmr1_exp_ena : 1; /*!< [5..5] Enable Interrupt on Beacon Timeout Timer Expire for Port + * 1. */ + __IOM uint32_t IRQ_supr_chng_ena : 1; /*!< [6..6] Enable Interrupt on Ring Supervisor Change. */ + __IOM uint32_t IRQ_link_chng0_ena : 1; /*!< [7..7] Enable Link Status Change Interrupt Event for Port 0. */ + __IOM uint32_t IRQ_link_chng1_ena : 1; /*!< [8..8] Enable Link Status Change Interrupt Event for Port 1. */ + __IOM uint32_t IRQ_sup_ignord_ena : 1; /*!< [9..9] Enable interrupt on beacon frame detection from a supervisor + * with lower precedence than the current ring supervisor + * or lower numeric value for MAC address when precedence + * is same. */ + __IOM uint32_t IRQ_ip_addr_chng_ena : 1; /*!< [10..10] Enable interrupt on IP address change detection within + * beacon frame from ring supervisor. */ + __IOM uint32_t IRQ_invalid_tmr_ena : 1; /*!< [11..11] Enable interrupt on invalid range for beacon timeout + * timer value detection. */ + __IOM uint32_t IRQ_bec_rcv0_ena : 1; /*!< [12..12] Enable interrupt on beacon frame detection on port + * 0. */ + __IOM uint32_t IRQ_bec_rcv1_ena : 1; /*!< [13..13] Enable interrupt on beacon frame detection on port + * 1. */ + __IOM uint32_t IRQ_frm_dscrd0 : 1; /*!< [14..14] Enable interrupt on frame discard due to source address + * match with the local address on port 0. */ + __IOM uint32_t IRQ_frm_dscrd1 : 1; /*!< [15..15] Enable Interrupt on Frame discard due to source address + * match with the local address on port 1. */ + uint32_t : 13; + __IOM uint32_t low_int_en : 1; /*!< [29..29] Enable active-low interrupt. Asserted to use active-low + * interrupt signal instead of active-high interrupt signal. */ + __OM uint32_t atomic_OR : 1; /*!< [30..30] When set during a register-write, the enable bits are + * ORed into the current setting of the register. By writing + * this bit at the same time, only the target bit can be set + * to 1. */ + __OM uint32_t atomic_AND : 1; /*!< [31..31] When set during a register-write, the enable bits are + * ANDed with the current setting of the register. By writing + * this bit at the same time, only the target bit can be set + * to 0. */ + } DLR_IRQ_CONTROL_b; + }; + + union + { + __IOM uint32_t DLR_IRQ_STAT_ACK; /*!< (@ 0x00003C10) DLR Interrupt Status/ACK Register */ + + struct + { + __IOM uint32_t state_chng_IRQ_pending : 1; /*!< [0..0] Latched State Change Event */ + __IOM uint32_t flush_IRQ_pending : 1; /*!< [1..1] Latched Flush Event for MAC Address Learning Table */ + __IOM uint32_t nbchk0_IRQ_pending : 1; /*!< [2..2] Stop Request Event for Neighbor Check Timeout Timer for + * Port 0 */ + __IOM uint32_t nbchk1_IRQ_pending : 1; /*!< [3..3] Stop Request Event for Neighbor Check Timeout Timer for + * Port 1 */ + __IOM uint32_t bec_tmr0_IRQ_pending : 1; /*!< [4..4] Beacon Timeout Timer Expire Event for Port 0 */ + __IOM uint32_t bec_tmr1_IRQ_pending : 1; /*!< [5..5] Beacon Timeout Timer Expire Event for Port 1 */ + __IOM uint32_t supr_chng_IRQ_pending : 1; /*!< [6..6] Latched Supervisor Change Event */ + __IOM uint32_t Link0_IRQ_pending : 1; /*!< [7..7] Latched Link Status Change Event for Port 0 */ + __IOM uint32_t Link1_IRQ_pending : 1; /*!< [8..8] Latched Link Status Change Event for Port 1 */ + __IOM uint32_t sup_ignord_IRQ_pending : 1; /*!< [9..9] Latched Event for Beacon Frame Detection from Ignored + * Supervisor */ + __IOM uint32_t ip_chng_IRQ_pending : 1; /*!< [10..10] Latched IP Address Change Event */ + __IOM uint32_t invalid_tmr_IRQ_pending : 1; /*!< [11..11] Latched Event on Invalid Beacon Timeout Timer Value + * Detection Within Beacon Frame on Port 0 or Port 1 */ + __IOM uint32_t bec_rcv0_IRQ_pending : 1; /*!< [12..12] Latched Event on Beacon Frame Detection on Port 0 */ + __IOM uint32_t bec_rcv1_IRQ_pending : 1; /*!< [13..13] Latched Event on Beacon Frame Detection on Port 1 */ + __IOM uint32_t frm_dscrd0_IRQ_pending : 1; /*!< [14..14] Latched Event on Frame Discard Due to Source Address + * Match with the Local Address on Port 0 (Loop Filter) */ + __IOM uint32_t frm_dscrd1_IRQ_pending : 1; /*!< [15..15] Latched Event on Frame Discard Due to Source Address + * Match with the Local Address on Port 1 (Loop Filter) */ + uint32_t : 16; + } DLR_IRQ_STAT_ACK_b; + }; + + union + { + __IOM uint32_t DLR_LOC_MAClo; /*!< (@ 0x00003C14) DLR Local MAC Address Low Register */ + + struct + { + __IOM uint32_t LOC_MAC : 32; /*!< [31..0] First 4 octets of the Local MAC address for loop filter */ + } DLR_LOC_MAClo_b; + }; + + union + { + __IOM uint32_t DLR_LOC_MAChi; /*!< (@ 0x00003C18) DLR Local MAC Address High Register */ + + struct + { + __IOM uint32_t LOC_MAC : 16; /*!< [15..0] Last 2 octets of local MAC address for loop filter */ + uint32_t : 16; + } DLR_LOC_MAChi_b; + }; + __IM uint32_t RESERVED103; + + union + { + __IM uint32_t DLR_SUPR_MAClo; /*!< (@ 0x00003C20) DLR Supervisor MAC Address Low Register */ + + struct + { + __IM uint32_t SUPR_MAC : 32; /*!< [31..0] First 4 octets of the active ring supervisor of the + * MAC address extracted from the Source Address field of + * the beacon frame. */ + } DLR_SUPR_MAClo_b; + }; + + union + { + __IM uint32_t DLR_SUPR_MAChi; /*!< (@ 0x00003C24) DLR Supervisor MAC Address High Register */ + + struct + { + __IM uint32_t SUPR_MAC : 16; /*!< [15..0] Last 2 octets of the active ring supervisor of the MAC + * address extracted from the Source Address field of the + * beacon frame. */ + __IM uint32_t PRECE : 8; /*!< [23..16] Precedence value of the ring supervisor extracted from + * the Supervisor precedence field of the beacon frame. */ + uint32_t : 8; + } DLR_SUPR_MAChi_b; + }; + + union + { + __IM uint32_t DLR_STATE_VLAN; /*!< (@ 0x00003C28) DLR Ring Status/VLAN Register */ + + struct + { + __IM uint32_t RINGSTAT : 8; /*!< [7..0] DLR ring state extracted from the Ring State field of + * the beacon frame. */ + __IM uint32_t VLANVALID : 1; /*!< [8..8] VLAN Valid */ + uint32_t : 7; + __IM uint32_t VLANINFO : 16; /*!< [31..16] IEEE 802.1Q VLAN Tag control field extracted from the + * VLAN info field of the beacon frame. */ + } DLR_STATE_VLAN_b; + }; + + union + { + __IM uint32_t DLR_BEC_TMOUT; /*!< (@ 0x00003C2C) DLR Beacon Timeout Register */ + + struct + { + __IM uint32_t BEC_TMOUT : 32; /*!< [31..0] Beacon timeout timer value extracted from the Beacon + * Timeout in microseconds field of the beacon frame. */ + } DLR_BEC_TMOUT_b; + }; + + union + { + __IM uint32_t DLR_BEC_INTRVL; /*!< (@ 0x00003C30) DLR Beacon Interval Register */ + + struct + { + __IM uint32_t BEC_INTRVL : 32; /*!< [31..0] Beacon interval extracted from the Beacon Interval field + * of the beacon frame */ + } DLR_BEC_INTRVL_b; + }; + + union + { + __IM uint32_t DLR_SUPR_IPADR; /*!< (@ 0x00003C34) DLR Supervisor IP Address Register */ + + struct + { + __IM uint32_t SUPR_IPADR : 32; /*!< [31..0] IP address of the ring supervisor extracted from the + * Source IP address field of the beacon frame. A value of + * 0x0 can be received when supervisor has no IP address. */ + } DLR_SUPR_IPADR_b; + }; + + union + { + __IM uint32_t DLR_ETH_STYP_VER; /*!< (@ 0x00003C38) DLR Sub Type/Protocol Version Register */ + + struct + { + __IM uint32_t SUBTYPE : 8; /*!< [7..0] DLR Ring Ether Sub Type extracted from the Ring Sub Type + * field of the beacon frame. */ + __IM uint32_t PROTVER : 8; /*!< [15..8] DLR Ring Protocol Version extracted from the Ring Protocol + * Version field of the beacon frame. */ + __IM uint32_t SPORT : 8; /*!< [23..16] Source port extracted from the Source Port field of + * the beacon frame. */ + uint32_t : 8; + } DLR_ETH_STYP_VER_b; + }; + + union + { + __IM uint32_t DLR_INV_TMOUT; /*!< (@ 0x00003C3C) DLR Beacon Timeout Timer Register */ + + struct + { + __IM uint32_t INV_TMOUT : 32; /*!< [31..0] Last out of range Beacon timeout timer value extracted + * from beacon frame on any of the port. */ + } DLR_INV_TMOUT_b; + }; + + union + { + __IM uint32_t DLR_SEQ_ID; /*!< (@ 0x00003C40) DLR Sequence ID Register */ + + struct + { + __IM uint32_t SEQ_ID : 32; /*!< [31..0] Sequence ID of the last beacon frame extracted from + * the Sequence ID field of the beacon frame on port 0 or + * port 1. Sequence ID of the ignored frames is not stored. */ + } DLR_SEQ_ID_b; + }; + __IM uint32_t RESERVED104[5]; + + union + { + __IOM uint32_t DLR_DSTlo; /*!< (@ 0x00003C58) DLR Beacon Destination Address Low Register */ + + struct + { + __IOM uint32_t DLR_DST : 32; /*!< [31..0] First 4 octets of the beacon frame destination multicast + * address (01-21-6C-00-00-01). */ + } DLR_DSTlo_b; + }; + + union + { + __IOM uint32_t DLR_DSThi; /*!< (@ 0x00003C5C) DLR Beacon Destination Address High Register */ + + struct + { + __IOM uint32_t DLR_DST : 16; /*!< [15..0] Last 2 octets of the beacon frame destination multicast + * address (01-21-6C-00-00-01). */ + uint32_t : 16; + } DLR_DSThi_b; + }; + + union + { + __IM uint32_t DLR_RX_STAT0; /*!< (@ 0x00003C60) DLR Received Frame Statistic Register 0 */ + + struct + { + __IM uint32_t RX_STAT0 : 32; /*!< [31..0] Number of Beacon Frames Received on Port 0 */ + } DLR_RX_STAT0_b; + }; + + union + { + __IM uint32_t DLR_RX_ERR_STAT0; /*!< (@ 0x00003C64) DLR Received Frame Error Statistic Register 0 */ + + struct + { + __IM uint32_t RX_ERR_STAT0 : 32; /*!< [31..0] Number of Beacon Frames Received with CRC Error on Port + * 0 */ + } DLR_RX_ERR_STAT0_b; + }; + __IM uint32_t RESERVED105; + + union + { + __IOM uint32_t DLR_RX_LF_STAT0; /*!< (@ 0x00003C6C) DLR Received Frame Loop Filter Statistic Register + * 0 */ + + struct + { + __IOM uint32_t RX_LF_STAT0 : 8; /*!< [7..0] Number of discarded frames in port 0 due to loop filtering + * when LOOP_FILTER_ENA is set to 1. Saturates at 255. */ + uint32_t : 24; + } DLR_RX_LF_STAT0_b; + }; + + union + { + __IM uint32_t DLR_RX_STAT1; /*!< (@ 0x00003C70) DLR Received Frame Statistic Register 1 */ + + struct + { + __IM uint32_t RX_STAT1 : 32; /*!< [31..0] Number of Beacon Frames Received on Port 1 */ + } DLR_RX_STAT1_b; + }; + + union + { + __IM uint32_t DLR_RX_ERR_STAT1; /*!< (@ 0x00003C74) DLR Received Frame Error Statistic Register 1 */ + + struct + { + __IM uint32_t RX_ERR_STAT1 : 32; /*!< [31..0] Number of Beacon Frames Received with CRC Error on Port + * 1 */ + } DLR_RX_ERR_STAT1_b; + }; + __IM uint32_t RESERVED106; + + union + { + __IOM uint32_t DLR_RX_LF_STAT1; /*!< (@ 0x00003C7C) DLR Received Frame Loop Filter Statistic Register + * 1 */ + + struct + { + __IOM uint32_t RX_LF_STAT1 : 8; /*!< [7..0] Number of discarded frames in port 1 due to loop filtering + * when LOOP_FILTER_ENA is set to 1. Saturates at 255. */ + uint32_t : 24; + } DLR_RX_LF_STAT1_b; + }; + __IM uint32_t RESERVED107[32]; + + union + { + __IOM uint32_t PRP_CONFIG; /*!< (@ 0x00003D00) PRP Configuration Register */ + + struct + { + __IOM uint32_t PRP_ENA : 1; /*!< [0..0] Enable PRP Operation */ + __IOM uint32_t RX_DUP_ACCEPT : 1; /*!< [1..1] Enable Duplicate Accept Mode of Operation at Receive */ + __IOM uint32_t RX_REMOVE_RCT : 1; /*!< [2..2] Allow PRP Port RX to Remove the RCT */ + __IOM uint32_t TX_RCT_MODE : 2; /*!< [4..3] Control Appending the RCT to Transmitted Frames on the + * Redundant Ports */ + __IOM uint32_t TX_RCT_BROADCAST : 1; /*!< [5..5] Should be 1 normally. */ + __IOM uint32_t TX_RCT_MULTICAST : 1; /*!< [6..6] Should be 1 normally. */ + __IOM uint32_t TX_RCT_UNKNOWN : 1; /*!< [7..7] Should be 1 normally. */ + __IOM uint32_t TX_RCT_1588 : 1; /*!< [8..8] Setting this bit affects IEEE 1588 frames that are forwarded + * through the switch (for example, when used as RedBox) to + * both PRP_GROUP ports. Locally generated IEEE 1588 frames + * (peer-delay request/response) are not affected by this + * setting. */ + __IOM uint32_t RCT_LEN_CHK_DIS : 1; /*!< [9..9] When set to 1, disables the RCT length field checking + * against the actual frame length. */ + uint32_t : 6; + __IOM uint32_t PRP_AGE_ENA : 1; /*!< [16..16] Enable History Memory Aging Timer */ + uint32_t : 15; + } PRP_CONFIG_b; + }; + + union + { + __IOM uint32_t PRP_GROUP; /*!< (@ 0x00003D04) PRP Port Group Register */ + + struct + { + __IOM uint32_t PRP_GROUP : 3; /*!< [2..0] Defines which two ports should be treated as redundant + * ports for PRP. */ + uint32_t : 13; + __IOM uint32_t LANB_MASK : 3; /*!< [18..16] Defines which of the ports is considered the LAN B + * port. */ + uint32_t : 13; + } PRP_GROUP_b; + }; + + union + { + __IOM uint32_t PRP_SUFFIX; /*!< (@ 0x00003D08) PRP RCT Suffix */ + + struct + { + __IOM uint32_t PRP_SUFFIX : 16; /*!< [15..0] The Redundancy Control Trailer (RCT) suffix (initial + * value is 0x88FB) */ + uint32_t : 16; + } PRP_SUFFIX_b; + }; + + union + { + __IOM uint32_t PRP_LANID; /*!< (@ 0x00003D0C) PRP LAN Identifier */ + + struct + { + __IOM uint32_t LANAID : 4; /*!< [3..0] LAN A Identifier */ + __IOM uint32_t LANBID : 4; /*!< [7..4] LAN B Identifier */ + uint32_t : 24; + } PRP_LANID_b; + }; + + union + { + __IOM uint32_t DUP_W; /*!< (@ 0x00003D10) PRP Max Duplicate Detection Window Size */ + + struct + { + __IOM uint32_t DUP_W : 8; /*!< [7..0] Maximum Duplicate Detect Window Size */ + uint32_t : 24; + } DUP_W_b; + }; + + union + { + __IOM uint32_t PRP_AGETIME; /*!< (@ 0x00003D14) PRP Aging Time Define Register */ + + struct + { + __IOM uint32_t PRP_AGETIME : 24; /*!< [23..0] Timeout in steps of 32 switch operating clock cycles + * to control aging of duplicate history data. */ + uint32_t : 8; + } PRP_AGETIME_b; + }; + + union + { + __IOM uint32_t PRP_IRQ_CONTROL; /*!< (@ 0x00003D18) PRP Interrupt Control Register */ + + struct + { + __IOM uint32_t MEMTOOLATE : 1; /*!< [0..0] Enable Interrupt for Memory Error Indications. */ + __IOM uint32_t WRONGLAN : 1; /*!< [1..1] Enable interrupt for frames received at a redundant port + * with an invalid LAN identifier in its redundancy trailer. */ + __IOM uint32_t OUTOFSEQ : 1; /*!< [2..2] Enable interrupt for frames received and accepted but + * have an unexpected sequence number. */ + __IOM uint32_t SEQMISSING : 1; /*!< [3..3] Enable interrupt for frames received and accepted that + * caused the history to skip a sequence number that was never + * received (for example, a missing sequence number is being + * ignored and is now treated as a candidate for dropping). */ + uint32_t : 28; + } PRP_IRQ_CONTROL_b; + }; + + union + { + __IOM uint32_t PRP_IRQ_STAT_ACK; /*!< (@ 0x00003D1C) PRP Interrupt Status/ACK Register */ + + struct + { + __IOM uint32_t MEMTOOLATE : 1; /*!< [0..0] Interrupt Pending Indication */ + __IOM uint32_t WRONGLAN : 1; /*!< [1..1] This bit functions the same as MEMTOOLATE bit. */ + __IOM uint32_t OUTOFSEQ : 1; /*!< [2..2] This bit functions the same as MEMTOOLATE bit. */ + __IOM uint32_t SEQMISSING : 1; /*!< [3..3] This bit functions the same as MEMTOOLATE bit. */ + uint32_t : 28; + } PRP_IRQ_STAT_ACK_b; + }; + + union + { + __IOM uint32_t RM_ADDR_CTRL; /*!< (@ 0x00003D20) PRP History Memory Transactions Control Register */ + + struct + { + __IOM uint32_t address : 12; /*!< [11..0] Memory Address for Read and Write Transactions */ + uint32_t : 10; + __IOM uint32_t CLEAR_DYNAMIC : 1; /*!< [22..22] When set to 1, scan the complete table for valid dynamic + * history entries and deletes them (writes entry with all + * 0s). */ + __IOM uint32_t CLEAR_MEMORY : 1; /*!< [23..23] When set to 1, write all memory locations with 0. */ + uint32_t : 1; + __IOM uint32_t WRITE : 1; /*!< [25..25] When set to 1, perform a Single Write Transaction. */ + __IOM uint32_t READ : 1; /*!< [26..26] When set to 1, perform Single Read Transaction. */ + uint32_t : 2; + __IOM uint32_t CLEAR : 1; /*!< [29..29] When set to 1, write all 0s to the entry selected by + * the given address. */ + uint32_t : 1; + __IM uint32_t BUSY : 1; /*!< [31..31] Transaction Busy Indication */ + } RM_ADDR_CTRL_b; + }; + + union + { + __IOM uint32_t RM_DATA; /*!< (@ 0x00003D24) PRP Memory Data Register */ + + struct + { + __IOM uint32_t RM_DATA : 32; /*!< [31..0] Memory data register for read/write transactions controlled + * by RM_ADDR_CTRL. */ + } RM_DATA_b; + }; + + union + { + __IOM uint32_t RM_DATA_HI; /*!< (@ 0x00003D28) PRP Memory Data Higher Register */ + + struct + { + __IOM uint32_t RM_DATA_HI : 32; /*!< [31..0] A Second Data Register */ + } RM_DATA_HI_b; + }; + + union + { + __IM uint32_t RM_STATUS; /*!< (@ 0x00003D2C) PRP Memory Controller Status Indication */ + + struct + { + __IM uint32_t ageaddress : 12; /*!< [11..0] Address of an entry which the aging process inspects + * when the aging timer expires next time. */ + uint32_t : 20; + } RM_STATUS_b; + }; + + union + { + __IOM uint32_t TxSeqTooLate; /*!< (@ 0x00003D30) PRP Frame Transmission Retrieval of Failed Sequence */ + + struct + { + __IOM uint32_t TxSeqTooLate : 4; /*!< [3..0] Retrieval of a Sequence Number Failed */ + uint32_t : 28; + } TxSeqTooLate_b; + }; + + union + { + __IM uint32_t CntErrWrongLanA; /*!< (@ 0x00003D34) PRP Wrong ID LAN-A Count Register */ + + struct + { + __IM uint32_t CntErrWrongLanA : 32; /*!< [31..0] Valid frames received on LAN A which have an RCT (valid + * length + suffix) but LAN ID is not matching LAN A. */ + } CntErrWrongLanA_b; + }; + + union + { + __IM uint32_t CntErrWrongLanB; /*!< (@ 0x00003D38) PRP Wrong ID LAN-B Count Register */ + + struct + { + __IM uint32_t CntErrWrongLanB : 32; /*!< [31..0] Valid frames received on LAN B which have an RCT (valid + * length + suffix) but LAN ID is not matching LAN B. */ + } CntErrWrongLanB_b; + }; + + union + { + __IM uint32_t CntDupLanA; /*!< (@ 0x00003D3C) PRP Duplicate LAN-A Count Register */ + + struct + { + __IM uint32_t CntDupLanA : 32; /*!< [31..0] Valid frames received on LAN A that were dropped by + * duplicate detection. */ + } CntDupLanA_b; + }; + + union + { + __IM uint32_t CntDupLanB; /*!< (@ 0x00003D40) PRP Duplicate LAN-B Count Register */ + + struct + { + __IM uint32_t CntDupLanB : 32; /*!< [31..0] Valid frames received on LAN B that were dropped by + * duplicate detection. */ + } CntDupLanB_b; + }; + + union + { + __IM uint32_t CntOutOfSeqLowA; /*!< (@ 0x00003D44) PRP Sequence Error Low LAN-A Count Register */ + + struct + { + __IM uint32_t CntOutOfSeqLowA : 32; /*!< [31..0] Valid and accepted frames received on LAN A with a sequence + * number less than last window (DUP_W). */ + } CntOutOfSeqLowA_b; + }; + + union + { + __IM uint32_t CntOutOfSeqLowB; /*!< (@ 0x00003D48) PRP Sequence Error Low LAN-B Count Register */ + + struct + { + __IM uint32_t CntOutOfSeqLowB : 32; /*!< [31..0] Valid and accepted frames received on LAN B with a sequence + * number less than last window (DUP_W). */ + } CntOutOfSeqLowB_b; + }; + + union + { + __IM uint32_t CntOutOfSeqA; /*!< (@ 0x00003D4C) PRP Sequence Error LAN-A Count Register */ + + struct + { + __IM uint32_t CntOutOfSeqA : 32; /*!< [31..0] Valid and accepted frames received on LAN A with an + * unexpected sequence number. */ + } CntOutOfSeqA_b; + }; + + union + { + __IM uint32_t CntOutOfSeqB; /*!< (@ 0x00003D50) PRP Sequence Error LAN-B Count Register */ + + struct + { + __IM uint32_t CntOutOfSeqB : 32; /*!< [31..0] Valid and accepted frames received on LAN B with an + * unexpected sequence number. */ + } CntOutOfSeqB_b; + }; + + union + { + __IM uint32_t CntAcceptA; /*!< (@ 0x00003D54) PRP Valid Frame LAN-A Count Register */ + + struct + { + __IM uint32_t CntAcceptA : 32; /*!< [31..0] Valid frames received on LAN A which had a valid sequence + * number in the expected range. */ + } CntAcceptA_b; + }; + + union + { + __IM uint32_t CntAcceptB; /*!< (@ 0x00003D58) PRP Valid Frame LAN-B Count Register */ + + struct + { + __IM uint32_t CntAcceptB : 32; /*!< [31..0] Valid frames received on LAN B which had a valid sequence + * number in the expected range. */ + } CntAcceptB_b; + }; + + union + { + __IM uint32_t CntMissing; /*!< (@ 0x00003D5C) PRP Drop History Adjustment Count */ + + struct + { + __IM uint32_t CntMissing : 32; /*!< [31..0] Indicates adjustment of the drop history as a frame + * was received with a sequence number of expected + history + + 1. This occurs if the same frame was dropped in both + + LAN segments (one sequence number is missing) and the history + + is now extended beyond that sequence number (causing it + + to be treated as drop allowed). */ + } CntMissing_b; + }; + __IM uint32_t RESERVED108[40]; + + union + { + __IOM uint32_t HUB_CONFIG; /*!< (@ 0x00003E00) HUB Configuration Register */ + + struct + { + __IOM uint32_t HUB_ENA : 1; /*!< [0..0] Enable Integrated HUB Operation */ + __IOM uint32_t RETRANSMIT_ENA : 1; /*!< [1..1] Enable Hub Retransmit Capability */ + __IOM uint32_t TRIGGER_MODE : 1; /*!< [2..2] Enable Single Frame Trigger Mode */ + __IOM uint32_t HUB_ISOLATE : 1; /*!< [3..3] Isolate all hub ports from the other ports of the switch + * and allow communication with management port only. It is + * then up to the application of the management port to implement + * some bridging functionality to other ports as required. */ + __IOM uint32_t TIMER_SEL : 1; /*!< [4..4] Select the timer to use for timed triggers */ + uint32_t : 1; + __IOM uint32_t IPG_WAIT : 3; /*!< [8..6] IPG_WAIT */ + __IOM uint32_t CRS_GEN : 1; /*!< [9..9] CRS_GEN */ + __IOM uint32_t PRMB_GEN_DIS : 1; /*!< [10..10] PRMB_GEN_DIS */ + __IOM uint32_t JAM_WAIT_IDLE : 1; /*!< [11..11] JAM_WAIT_IDLE */ + uint32_t : 20; + } HUB_CONFIG_b; + }; + + union + { + __IOM uint32_t HUB_GROUP; /*!< (@ 0x00003E04) HUB Port Group Register */ + + struct + { + __IOM uint32_t HUB_GROUP : 3; /*!< [2..0] Define all ports that should be combined to a Hub Group. */ + uint32_t : 29; + } HUB_GROUP_b; + }; + + union + { + __IOM uint32_t HUB_DEFPORT; /*!< (@ 0x00003E08) HUB Default Port Selection Register */ + + struct + { + __IOM uint32_t HUB_DEFPORT : 3; /*!< [2..0] The default port within the Hub Group where all traffic + * from a port outside the group is forwarded to port (bit + * 0 = port 0, bit 1 = port 1, and bit 2 = port 2). If a frame + * should be forwarded to any of the hub ports, the frame + * is sent to this port only. The copy function of the hub + * copies it to all PHY interfaces of the group eventually. */ + uint32_t : 29; + } HUB_DEFPORT_b; + }; + + union + { + __IOM uint32_t HUB_TRIGGER_IMMEDIATE; /*!< (@ 0x00003E0C) HUB Transmission Trigger Immediate Register */ + + struct + { + __IOM uint32_t HUB_TRIGGER_IMMEDIATE : 3; /*!< [2..0] Trigger immediate transmission of a single frame from + * given port within the hub group (bit 0 = port 0, bit 1 + * = port 1, and bit 2 = port 2). */ + uint32_t : 29; + } HUB_TRIGGER_IMMEDIATE_b; + }; + + union + { + __IOM uint32_t HUB_TRIGGER_AT; /*!< (@ 0x00003E10) HUB Transmission Trigger At Register */ + + struct + { + __IOM uint32_t HUB_TRIGGER_AT : 3; /*!< [2..0] Trigger Transmission of a Single Frame at a Specific + * Time (bit 0 = port 0, bit 1 = port 1, and bit 2 = port + * 2). */ + uint32_t : 29; + } HUB_TRIGGER_AT_b; + }; + + union + { + __IOM uint32_t HUB_TTIME; /*!< (@ 0x00003E14) HUB Transmission Time Define Register */ + + struct + { + __IOM uint32_t HUB_TTIME : 32; /*!< [31..0] Define the Time Value when a Trigger Should Occur */ + } HUB_TTIME_b; + }; + + union + { + __IOM uint32_t HUB_IRQ_CONTROL; /*!< (@ 0x00003E18) HUB Interrupt Control Register */ + + struct + { + __IOM uint32_t RX_TRIGGER : 3; /*!< [2..0] Enable Interrupt on Receive Pattern Match Trigger Function */ + __IOM uint32_t CHANGE_DET : 1; /*!< [3..3] Enable interrupt for hub TX state machine port state + * change request detection */ + __IOM uint32_t TRIGGER_IMMEDIATE : 1; /*!< [4..4] Enable interrupt when hub transmit started after writing + * the HUB_TRIGGER_IMMEDIATE register */ + __IOM uint32_t TRIGGER_TIMER : 1; /*!< [5..5] Enable interrupt when hub transmit started after writing + * the HUB_TRIGGER_TIME register and the timeout value is + * reached (register HUB_TTIME). */ + uint32_t : 26; + } HUB_IRQ_CONTROL_b; + }; + + union + { + __IOM uint32_t HUB_IRQ_STAT_ACK; /*!< (@ 0x00003E1C) HUB Interrupt Status/ACK Register */ + + struct + { + __IOM uint32_t RX_TRIGGER : 3; /*!< [2..0] Interrupt Pending Indication */ + __IOM uint32_t CHANGE_DET : 1; /*!< [3..3] This bit functions the same as RX_TRIGGER bit. */ + __IOM uint32_t TRIGGER_IMMEDIATE : 1; /*!< [4..4] This bit functions the same as RX_TRIGGER bit. */ + __IOM uint32_t TRIGGER_TIMER : 1; /*!< [5..5] This bit functions the same as RX_TRIGGER bit. */ + uint32_t : 26; + } HUB_IRQ_STAT_ACK_b; + }; + + union + { + __IM uint32_t HUB_STATUS; /*!< (@ 0x00003E20) HUB Status Register */ + + struct + { + __IM uint32_t PORTS_ACTIVE : 3; /*!< [2..0] When this bit is 1, it shows the currently active ports + * of the Hub group which are allowed for transmit. */ + uint32_t : 6; + __IM uint32_t TX_ACTIVE : 1; /*!< [9..9] When this bit is 1, the hub global transmit state machine + * has successfully entered Hub mode and is now controlling + * the hub group. */ + __IM uint32_t TX_BUSY : 1; /*!< [10..10] When this bit is 1, the local device currently transmits + * data to all ports within the hub group. */ + __IM uint32_t Speed_OK : 1; /*!< [11..11] When this bit is 1, it indicates that the port speed + * of all group ports match. */ + __IM uint32_t TX_Change_Pending : 1; /*!< [12..12] Indicate a pending change request in the hub transmitter + * that is unsolved and cause the hub to stop operation (no + * longer performing any transmissions). */ + uint32_t : 19; + } HUB_STATUS_b; + }; + + union + { + __IM uint32_t HUB_OPORT_STATUS; /*!< (@ 0x00003E24) HUB Output Port Status Register */ + + struct + { + __IM uint32_t HUB_OPORT_STATUS : 3; /*!< [2..0] Per Output Port Data Available Status */ + uint32_t : 29; + } HUB_OPORT_STATUS_b; + }; + __IM uint32_t RESERVED109[22]; + + union + { + __IOM uint32_t TDMA_CONFIG; /*!< (@ 0x00003E80) TDMA Configuration Register */ + + struct + { + __IOM uint32_t TDMA_ENA : 1; /*!< [0..0] Enable TDMA Scheduler */ + __IM uint32_t WAIT_START : 1; /*!< [1..1] Status bit which is set as long as the scheduler is enabled + * but has not yet reached the time given in register TDMA_START. */ + __IOM uint32_t TIMER_SEL : 1; /*!< [2..2] Select which timer to use as the time source for the + * scheduler */ + uint32_t : 1; + __IM uint32_t RED_PERIOD : 1; /*!< [4..4] Read only bit indicating the current period for Profinet */ + __IOM uint32_t RED_OVRD_ENA : 1; /*!< [5..5] Enables overriding the RED period status, regardless + * of the indication by the TCV. */ + __IOM uint32_t RED_OVRD : 1; /*!< [6..6] Override Value for the RED Period */ + __OM uint32_t IN_CT_WREN : 1; /*!< [7..7] IN_CT_WREN */ + __OM uint32_t OUT_CT_WREN : 1; /*!< [8..8] Enable writing the OUT_CT_ENA control to the egress ports. */ + __OM uint32_t HOLD_REQ_CLR : 1; /*!< [9..9] Writing 1 to this register clears the state of TDMA hold + * request. */ + uint32_t : 2; + __IM uint32_t TIMER_SEL_ACTIVE : 1; /*!< [12..12] Return the current timer being used for the TDMA Scheduler */ + uint32_t : 3; + __IOM uint32_t IN_CT_ENA : 4; /*!< [19..16] On read, return the current status of the ingress Cut-Through + * enable indicated by the TDMA scheduler. On write, override + * the ingress Cut-Through enable if IN_CT_WREN is also 1. */ + uint32_t : 4; + __IOM uint32_t OUT_CT_ENA : 4; /*!< [27..24] On read, return the current status of the egress Cut-Through + * enable indicated by the TDMA scheduler. On write, override + * the egress Cut-Through enable if OUT_CT_WREN is also 1. */ + uint32_t : 4; + } TDMA_CONFIG_b; + }; + + union + { + __IOM uint32_t TDMA_ENA_CTRL; /*!< (@ 0x00003E84) TDMA Scheduling Enable Control Register */ + + struct + { + __IOM uint32_t PORT_ENA : 4; /*!< [3..0] Set to 1 to indicate that a port is operating in TDMA + * mode. When set to 1 for a port, the port does not prefetch + * another frame until the current frame in progress is done + * and if TDMA_PREBUF_DIS in COMMAND_CONFIG is set to 1. This + * helps adding precision to the queue gating operations indicated + * by the TDMA at the expense of loss of line rate. */ + uint32_t : 12; + __IOM uint32_t QGATE_DIS : 8; /*!< [23..16] One bit per output queue. When a bit is set to 1, the + * TDMA scheduler gating commands do not affect the queue + * even if the queue mask in the TCV control data is set to + * 1. */ + __IOM uint32_t QTRIG_DIS : 8; /*!< [31..24] One bit per output queue. When a bit is set to 1, the + * TDMA scheduler triggering commands do not affect the queue + * even if the queue mask in the TCV control data is set to + * 1. */ + } TDMA_ENA_CTRL_b; + }; + + union + { + __IOM uint32_t TDMA_START; /*!< (@ 0x00003E88) TDMA Start Time Set Register */ + + struct + { + __IOM uint32_t TDMA_START : 32; /*!< [31..0] Set the start time for the very first cycle after system + * initialization has completed. The value is compared with + * the system time (selected in TDMA_CONFIG.TIMER_SEL) and + * when it is reached (crossed), the scheduler begins with + * its first cycle. The 2nd cycle is then at TDMA_START + + * TDMA_CYCLE. */ + } TDMA_START_b; + }; + + union + { + __IOM uint32_t TDMA_MODULO; /*!< (@ 0x00003E8C) TDMA System Timer Modulo */ + + struct + { + __IOM uint32_t TDMA_MODULO : 32; /*!< [31..0] The System Timer Modulo */ + } TDMA_MODULO_b; + }; + + union + { + __IOM uint32_t TDMA_CYCLE; /*!< (@ 0x00003E90) TDMA Periodic Cycle Set Register */ + + struct + { + __IOM uint32_t TDMA_CYCLE : 32; /*!< [31..0] The periodic cycle time for the scheduler given in system + * timer time. */ + } TDMA_CYCLE_b; + }; + + union + { + __IOM uint32_t TCV_SEQ_ADDR; /*!< (@ 0x00003E94) TCV Sequence Address Register */ + + struct + { + __IOM uint32_t TCV_S_ADDR : 12; /*!< [11..0] Address to write to or read from in the TCV sequence + * table. */ + uint32_t : 19; + __IOM uint32_t ADDR_AINC : 1; /*!< [31..31] When set to 1, read and write operations performed + * using TCV_SEQ_CTRL causes the address in TCV_S_ADDR to + * auto-increment after the operation. */ + } TCV_SEQ_ADDR_b; + }; + + union + { + __IOM uint32_t TCV_SEQ_CTRL; /*!< (@ 0x00003E98) TCV Sequence Table Control Register */ + + struct + { + __IOM uint32_t START : 1; /*!< [0..0] Indicate this TCV must be executed after the next cycle + * start */ + __IOM uint32_t INT : 1; /*!< [1..1] Indicates this TCV generates an interrupt to the CPU + * when activated */ + __IOM uint32_t TCV_D_IDX : 9; /*!< [10..2] Index to the TCV Data Entry */ + uint32_t : 11; + __IOM uint32_t GPIO : 8; /*!< [29..22] Generic bits that control the output pins ETHSW_TDMAOUTn + * (n = 0 to 7) */ + uint32_t : 1; + __IOM uint32_t READ_MODE : 1; /*!< [31..31] When set to 1, a read operation is performed instead + * of writing to the TCV sequence table. The read data (START, + * INT, TCV_D_IDX[8:0], and GPIO) can be obtained by reading + * this register afterwards. On read, this field always returns + * 0. */ + } TCV_SEQ_CTRL_b; + }; + + union + { + __IOM uint32_t TCV_SEQ_LAST; /*!< (@ 0x00003E9C) TCV Sequence Last Entry */ + + struct + { + __IOM uint32_t LAST : 12; /*!< [11..0] Defines the last entry to read from the TCV sequence + * table when the TDMA scheduler is operating. */ + uint32_t : 4; + __IM uint32_t ACTIVE : 12; /*!< [27..16] Return the active TCV sequence entry. */ + uint32_t : 4; + } TCV_SEQ_LAST_b; + }; + + union + { + __IOM uint32_t TCV_D_ADDR; /*!< (@ 0x00003EA0) TCV Data Address Register */ + + struct + { + __IOM uint32_t ADDR : 9; /*!< [8..0] Address to read from/write to in the TCV data table */ + uint32_t : 22; + __IOM uint32_t AINC_WR_ENA : 1; /*!< [31..31] Auto-Increment Enable */ + } TCV_D_ADDR_b; + }; + + union + { + __IOM uint32_t TCV_D_OFFSET; /*!< (@ 0x00003EA4) TCV Data Offset Register */ + + struct + { + __IOM uint32_t TCV_D_OFFSET : 32; /*!< [31..0] 32-bit time offset for the TCV data entry indicated + * by TCV_D_ADDR. When accessing the table, TCV_D_OFFSET must + * be read or written before TCV_D_CTRL. */ + } TCV_D_OFFSET_b; + }; + + union + { + __IOM uint32_t TCV_D_CTRL; /*!< (@ 0x00003EA8) TCV Data Control Register */ + + struct + { + __IOM uint32_t INC_CTR0 : 1; /*!< [0..0] Increment Control for Counter 0 */ + __IOM uint32_t INC_CTR1 : 1; /*!< [1..1] Increment Control for Counter 1 */ + __IOM uint32_t RED_PERIOD : 1; /*!< [2..2] Period Color Control (for Profinet IRT) */ + __IOM uint32_t OUT_CT_ENA : 1; /*!< [3..3] Output Cut-Through Enable */ + __IOM uint32_t IN_CT_ENA : 1; /*!< [4..4] Input Cut-Through Enable */ + __IOM uint32_t TRIGGER_MODE : 1; /*!< [5..5] Trigger mode enable when set to 1. GATE_MODE must be + * 0, otherwise, GATE_MODE has precedence. */ + __IOM uint32_t GATE_MODE : 1; /*!< [6..6] Gate mode enable when set to 1. */ + __IOM uint32_t HOLD_REQ : 1; /*!< [7..7] Preemption hold request. Generates a hold request to + * ports enabled in PMASK. */ + __IOM uint32_t QGATE : 8; /*!< [15..8] Bits mask, one per output queue */ + __IOM uint32_t PMASK : 4; /*!< [19..16] Bits mask, one per output port */ + uint32_t : 12; + } TCV_D_CTRL_b; + }; + + union + { + __IOM uint32_t TDMA_CTR0; /*!< (@ 0x00003EAC) TDMA Counter 0 */ + + struct + { + __IOM uint32_t TDMA_CTR0 : 32; /*!< [31..0] 32-bit counter that is incremented when the TCV field + * INC_CTR0 is set to 1. */ + } TDMA_CTR0_b; + }; + + union + { + __IOM uint32_t TDMA_CTR1; /*!< (@ 0x00003EB0) TDMA Counter 1 */ + + struct + { + __IOM uint32_t VALUE : 8; /*!< [7..0] Current Counter Value */ + __OM uint32_t WRITE_ENA : 1; /*!< [8..8] Write Enable for VALUE */ + uint32_t : 7; + __IOM uint32_t MAX : 8; /*!< [23..16] Counter Maximum Value */ + __IOM uint32_t INT_VALUE : 8; /*!< [31..24] Interrupt Value */ + } TDMA_CTR1_b; + }; + + union + { + __IOM uint32_t TDMA_TCV_START; /*!< (@ 0x00003EB4) TDMA TCV Sequence Entry Start */ + + struct + { + __IOM uint32_t TDMA_TCV_START : 12; /*!< [11..0] Define the TCV_SEQ entry to start from. */ + uint32_t : 20; + } TDMA_TCV_START_b; + }; + + union + { + __IM uint32_t TIME_LOAD_NEXT; /*!< (@ 0x00003EB8) TDMA Calculated Next Loading Time */ + + struct + { + __IM uint32_t TIME_LOAD_NEXT : 32; /*!< [31..0] Status giving the calculated time the scheduler loads + * into its internal compare register after the current running + * slot end is reached (not the end of the current slot). */ + } TIME_LOAD_NEXT_b; + }; + + union + { + __IOM uint32_t TDMA_IRQ_CONTROL; /*!< (@ 0x00003EBC) TDMA IRQ Control Register */ + + struct + { + __IOM uint32_t TCV_INT_EN : 1; /*!< [0..0] Enable Interrupts Generated by the TCV */ + uint32_t : 12; + __IOM uint32_t CTR1_INT_EN : 1; /*!< [13..13] Enable Interrupts Generated from Counter 1 */ + uint32_t : 18; + } TDMA_IRQ_CONTROL_b; + }; + + union + { + __IOM uint32_t TDMA_IRQ_STAT_ACK; /*!< (@ 0x00003EC0) TDMA IRQ Status/ACK Register */ + + struct + { + __IOM uint32_t TCV_ACK : 1; /*!< [0..0] TCV Execution Event */ + uint32_t : 12; + __IOM uint32_t CTR1_ACK : 1; /*!< [13..13] Counter 1 Event */ + uint32_t : 18; + } TDMA_IRQ_STAT_ACK_b; + }; + + union + { + __IOM uint32_t TDMA_GPIO; /*!< (@ 0x00003EC4) TDMA GPIO Register */ + + struct + { + __IM uint32_t GPIO_STATUS : 8; /*!< [7..0] Status of the GPIO Output Pins */ + uint32_t : 8; + __IOM uint32_t GPIO_MODE : 16; /*!< [31..16] 2 bits per GPIO pin to configure its operating mode */ + } TDMA_GPIO_b; + }; + __IM uint32_t RESERVED110[14]; + + union + { + __IOM uint32_t RXMATCH_CONFIG[4]; /*!< (@ 0x00003F00) RX Pattern Matcher Configuration for Port [0..3] */ + + struct + { + __IOM uint32_t PATTERN_EN : 12; /*!< [11..0] Enable Patterns on the Port (RX) */ + uint32_t : 20; + } RXMATCH_CONFIG_b[4]; + }; + __IM uint32_t RESERVED111[12]; + + union + { + __IOM uint32_t PATTERN_CTRL[12]; /*!< (@ 0x00003F40) RX Pattern Matcher Function Control for Pattern + * [0..11] */ + + struct + { + __IOM uint32_t MATCH_NOT : 1; /*!< [0..0] When set, a match is reported and the functions of this + * control are executed if the pattern does not match. */ + __IOM uint32_t MGMTFWD : 1; /*!< [1..1] When set, the frame is forwarded to the management port + * only (suppressing destination address lookup). */ + __IOM uint32_t DISCARD : 1; /*!< [2..2] When set, the frame is discarded. */ + __IOM uint32_t SET_PRIO : 1; /*!< [3..3] Set frame priority, overriding normal classification. */ + __IOM uint32_t MODE : 2; /*!< [5..4] Selects the operating mode */ + __IOM uint32_t TIMER_SEL_OVR : 1; /*!< [6..6] Overrides the default timer to use by timestamp operations + * when set to 1, using instead the value in TIMER_SEL. */ + __IOM uint32_t FORCE_FORWARD : 1; /*!< [7..7] When set, the frame is forwarded to the ports indicated + * in PORTMASK, ignoring the result from L2 lookups. */ + __IOM uint32_t HUBTRIGGER : 1; /*!< [8..8] When set, the port defined in the PORTMASK setting is + * allowed for transmitting one frame. */ + __IOM uint32_t MATCH_RED : 1; /*!< [9..9] Enable the pattern matcher only when the TDMA indicates + * that this is the RED period. */ + __IOM uint32_t MATCH_NOT_RED : 1; /*!< [10..10] Enable the pattern matcher only when the TDMA indicates + * that this is not the RED period. */ + __IOM uint32_t VLAN_SKIP : 1; /*!< [11..11] When set to 1, for operating modes 1, 2, and 3. The + * first Length/Type after the MAC source address is compared + * against 0x8100. If it matches, a VLAN tag is assumed and + * 4 bytes are skipped. */ + __IOM uint32_t PRIORITY : 3; /*!< [14..12] Priority of the frame used when SET_PRIO is set. The + * priority is used to forward the frame into the corresponding + * output queue of a port. */ + __IOM uint32_t LEARNING_DIS : 1; /*!< [15..15] When set to 1, the hardware learning function is not + * executed. */ + __IOM uint32_t PORTMASK : 4; /*!< [19..16] A port mask used depending on the control bits (for + * example, HUBTRIGGER). */ + uint32_t : 2; + __IOM uint32_t IMC_TRIGGER : 1; /*!< [22..22] When set, the ports defined in the PORTMASK setting + * are allowed for transmitting one frame from the queues + * indicated by QUEUESEL. The trigger request is sent to the + * integrated memory controller. */ + __IOM uint32_t IMC_TRIGGER_DLY : 1; /*!< [23..23] When set, the ports defined in the PORTMASK setting + * are allowed for transmitting one frame from the queues + * indicated by QUEUESEL. The trigger request is sent to the + * integrated memory controller and the event is delayed by + * the value programmed in MMCTL_DLY_QTRIGGER_CTRL. */ + __IOM uint32_t SWAP_BYTES : 1; /*!< [24..24] Applicable only for operating modes 1, 2, and 3. When + * set to 1, the byte order is swapped from the order received + * by the frame. When set to 0, the first byte received by + * the frame is set into position 0 for comparison. When set + * to 1, the first byte received is set into position 3 (for + * mode 1) or position 2 (for mode 2 and 3) for comparison. */ + __IOM uint32_t MATCH_LT : 1; /*!< [25..25] For operating modes 1, 2, and 3. When set to 1, the + * Length/Type field in the frame after the MAC source address + * is compared against the value in length_type in the compare + * register. If VLAN_SKIP is set and the frame has a VLAN + * tag with Length/Type of 0x8100 then the comparison is performed + * in the Length/Type following the VLAN tag. */ + __IOM uint32_t TIMER_SEL : 1; /*!< [26..26] Override value to use when TIMER_SEL_OVR is set to + * 1 for selecting the timer for this frame. */ + uint32_t : 1; + __IOM uint32_t QUEUESEL : 4; /*!< [31..28] A queue selector for the HUBTRIGGER function. Selects + * the queue to trigger a frame, or sets from 0x8 to 0xF to + * select one among all queues. */ + } PATTERN_CTRL_b[12]; + }; + __IM uint32_t RESERVED112[4]; + + union + { + __IOM uint32_t PATTERN_IRQ_CONTROL; /*!< (@ 0x00003F80) RX Pattern Matcher Interrupt Control Register */ + + struct + { + __IOM uint32_t MATCHINT : 12; /*!< [11..0] Enable Interrupt on Receive Pattern Match */ + uint32_t : 4; + __IOM uint32_t ERROR_INT : 4; /*!< [19..16] Enable Interrupt on Internal Pattern Matcher Error */ + uint32_t : 12; + } PATTERN_IRQ_CONTROL_b; + }; + + union + { + __IOM uint32_t PATTERN_IRQ_STAT_ACK; /*!< (@ 0x00003F84) RX Pattern Matcher Interrupt Status/ACK Register */ + + struct + { + __IOM uint32_t MATCHINT : 12; /*!< [11..0] Interrupt pending indication for the corresponding pattern + * match events (see ). */ + uint32_t : 4; + __IOM uint32_t ERROR_INT : 4; /*!< [19..16] Interrupt pending indication for a pattern matcher + * error, per port. */ + uint32_t : 12; + } PATTERN_IRQ_STAT_ACK_b; + }; + + union + { + __IOM uint32_t PTRN_VLANID; /*!< (@ 0x00003F88) Custom VLAN ID Register */ + + struct + { + __IOM uint32_t PTRN_VLANID : 16; /*!< [15..0] Custom VLAN ID to use. The default VLAN ID 0x8100 is + * always considered by the hardware. This value can be changed + * to detect other VLANs like 0x8808. */ + uint32_t : 16; + } PTRN_VLANID_b; + }; + + union + { + __IOM uint32_t PATTERN_SEL; /*!< (@ 0x00003F8C) RX Pattern Number Selection Register */ + + struct + { + __IOM uint32_t PATTERN_SEL : 4; /*!< [3..0] Define the pattern number which is selected for read/write + * through the PTRN_CMP_* and PTRN_MSK_* registers. */ + uint32_t : 28; + } PATTERN_SEL_b; + }; + __IM uint32_t RESERVED113[12]; + + union + { + __IOM uint32_t PTRN_CMP_30; /*!< (@ 0x00003FC0) Pattern Compare Value Bytes 3 .. 0 */ + + struct + { + __IOM uint32_t PTRN_CMP_30 : 32; /*!< [31..0] Pattern Compare Value Bytes 3 .. 0 */ + } PTRN_CMP_30_b; + }; + + union + { + __IOM uint32_t PTRN_CMP_74; /*!< (@ 0x00003FC4) Pattern Compare Value Bytes 7 .. 4 */ + + struct + { + __IOM uint32_t PTRN_CMP_74 : 32; /*!< [31..0] Pattern Compare Value Bytes 7 .. 4 */ + } PTRN_CMP_74_b; + }; + + union + { + __IOM uint32_t PTRN_CMP_118; /*!< (@ 0x00003FC8) Pattern Compare Value Bytes 11 .. 8 */ + + struct + { + __IOM uint32_t PTRN_CMP_118 : 32; /*!< [31..0] Pattern Compare Value Bytes 11 .. 8 */ + } PTRN_CMP_118_b; + }; + __IM uint32_t RESERVED114; + + union + { + __IOM uint32_t PTRN_MSK_30; /*!< (@ 0x00003FD0) Pattern Mask for Bytes 3 .. 0 */ + + struct + { + __IOM uint32_t PTRN_MSK_30 : 32; /*!< [31..0] PTRN_MSK_30 */ + } PTRN_MSK_30_b; + }; + + union + { + __IOM uint32_t PTRN_MSK_74; /*!< (@ 0x00003FD4) Pattern Mask for Bytes 7 .. 4 */ + + struct + { + __IOM uint32_t PTRN_MSK_74 : 32; /*!< [31..0] PTRN_MSK_74 */ + } PTRN_MSK_74_b; + }; + + union + { + __IOM uint32_t PTRN_MSK_118; /*!< (@ 0x00003FD8) Pattern Mask for Bytes 11 .. 8 */ + + struct + { + __IOM uint32_t PTRN_MSK_118 : 32; /*!< [31..0] PTRN_MSK_118 */ + } PTRN_MSK_118_b; + }; +} R_ETHSW_Type; /*!< Size = 16348 (0x3fdc) */ + +/* =========================================================================================================================== */ +/* ================ R_ESC ================ */ +/* =========================================================================================================================== */ + +/** + * @brief EtherCAT Slave Controller (R_ESC) + */ + +typedef struct /*!< (@ 0x80130000) R_ESC Structure */ +{ + union + { + __IM uint8_t TYPE; /*!< (@ 0x00000000) Type Register */ + + struct + { + __IM uint8_t TYPE : 8; /*!< [7..0] Type of the EtherCAT slave controller */ + } TYPE_b; + }; + + union + { + __IM uint8_t REVISION; /*!< (@ 0x00000001) Revision Register */ + + struct + { + __IM uint8_t REV : 8; /*!< [7..0] Revision of the EtherCAT slave controller */ + } REVISION_b; + }; + + union + { + __IM uint8_t BUILD; /*!< (@ 0x00000002) Build Register */ + + struct + { + __IM uint8_t BUILD : 8; /*!< [7..0] Build number of the EtherCAT slave controller */ + } BUILD_b; + }; + __IM uint8_t RESERVED; + + union + { + __IM uint8_t FMMU_NUM; /*!< (@ 0x00000004) FMMU Supported Register */ + + struct + { + __IM uint8_t NUMFMMU : 8; /*!< [7..0] Number of FMMU channels supported in the EtherCAT slave + * controller */ + } FMMU_NUM_b; + }; + + union + { + __IM uint8_t SYNC_MANAGER; /*!< (@ 0x00000005) SyncManager Supported Register */ + + struct + { + __IM uint8_t NUMSYNC : 8; /*!< [7..0] Number of SyncManager channels supported in the EtherCAT + * slave controller */ + } SYNC_MANAGER_b; + }; + + union + { + __IM uint8_t RAM_SIZE; /*!< (@ 0x00000006) RAM Size Register */ + + struct + { + __IM uint8_t RAMSIZE : 8; /*!< [7..0] Process data RAM size supported in the EtherCAT slave + * controller (unit: KB) */ + } RAM_SIZE_b; + }; + + union + { + __IM uint8_t PORT_DESC; /*!< (@ 0x00000007) Port Descriptor Register */ + + struct + { + __IM uint8_t P0 : 2; /*!< [1..0] Port 0 configuration */ + __IM uint8_t P1 : 2; /*!< [3..2] Port 1 configuration */ + __IM uint8_t P2 : 2; /*!< [5..4] Port 2 configuration */ + __IM uint8_t P3 : 2; /*!< [7..6] Port 3 configuration */ + } PORT_DESC_b; + }; + + union + { + __IM uint16_t FEATURE; /*!< (@ 0x00000008) ESC Features Supported Register */ + + struct + { + __IM uint16_t FMMU : 1; /*!< [0..0] FMMU Operation */ + uint16_t : 1; + __IM uint16_t DC : 1; /*!< [2..2] Distributed Clock */ + __IM uint16_t DCWID : 1; /*!< [3..3] Distributed Clock Width */ + uint16_t : 2; + __IM uint16_t LINKDECMII : 1; /*!< [6..6] Enhanced Link Detection in MII */ + __IM uint16_t FCS : 1; /*!< [7..7] Separate handling of FCS errors */ + __IM uint16_t DCSYNC : 1; /*!< [8..8] Enhanced DC SYNC activation */ + __IM uint16_t LRW : 1; /*!< [9..9] EtherCAT LRW command support */ + __IM uint16_t RWSUPP : 1; /*!< [10..10] EtherCAT read/write command support (BRW, APRW, FPRW) */ + __IM uint16_t FSCONFIG : 1; /*!< [11..11] Fixed FMMU/SyncManager configuration */ + uint16_t : 4; + } FEATURE_b; + }; + __IM uint16_t RESERVED1; + __IM uint32_t RESERVED2; + + union + { + __IM uint16_t STATION_ADR; /*!< (@ 0x00000010) Configured Station Address Register */ + + struct + { + __IM uint16_t NODADDR : 16; /*!< [15..0] Node Addressing Address Indication */ + } STATION_ADR_b; + }; + + union + { + __IOM uint16_t STATION_ALIAS; /*!< (@ 0x00000012) Configured Station Alias Register */ + + struct + { + __IOM uint16_t NODALIADDR : 16; /*!< [15..0] Alias Address Indication */ + } STATION_ALIAS_b; + }; + __IM uint32_t RESERVED3[3]; + + union + { + __IM uint8_t WR_REG_ENABLE; /*!< (@ 0x00000020) Write Register Enable Register */ + + struct + { + __IM uint8_t ENABLE : 1; /*!< [0..0] Register Write Protection Unlock */ + uint8_t : 7; + } WR_REG_ENABLE_b; + }; + + union + { + __IM uint8_t WR_REG_PROTECT; /*!< (@ 0x00000021) Write Register Protection Register */ + + struct + { + __IM uint8_t PROTECT : 1; /*!< [0..0] Register Write Protection Specification */ + uint8_t : 7; + } WR_REG_PROTECT_b; + }; + __IM uint16_t RESERVED4; + __IM uint32_t RESERVED5[3]; + + union + { + __IM uint8_t ESC_WR_ENABLE; /*!< (@ 0x00000030) ESC Write Enable Register */ + + struct + { + __IM uint8_t ENABLE : 1; /*!< [0..0] Register/Memory Write Protection Unlock */ + uint8_t : 7; + } ESC_WR_ENABLE_b; + }; + + union + { + __IM uint8_t ESC_WR_PROTECT; /*!< (@ 0x00000031) ESC Write Protection Register */ + + struct + { + __IM uint8_t PROTECT : 1; /*!< [0..0] Register/Memory Write Protection Specification */ + uint8_t : 7; + } ESC_WR_PROTECT_b; + }; + __IM uint16_t RESERVED6; + __IM uint32_t RESERVED7[3]; + + union + { + union + { + __IM uint8_t ESC_RESET_ECAT_R; /*!< (@ 0x00000040) ESC Reset ECAT Register for read */ + + struct + { + __IM uint8_t RESET_ECAT : 2; /*!< [1..0] Reset Progress Status */ + uint8_t : 6; + } ESC_RESET_ECAT_R_b; + }; + + union + { + __IM uint8_t ESC_RESET_ECAT_W; /*!< (@ 0x00000040) ESC Reset ECAT Register for write */ + + struct + { + __IM uint8_t RESET_ECAT : 8; /*!< [7..0] Software Reset Setting */ + } ESC_RESET_ECAT_W_b; + }; + }; + + union + { + union + { + __IOM uint8_t ESC_RESET_PDI_R; /*!< (@ 0x00000041) ESC Reset PDI Register for read */ + + struct + { + __IOM uint8_t RESET_PDI : 2; /*!< [1..0] Reset Progress Status */ + uint8_t : 6; + } ESC_RESET_PDI_R_b; + }; + + union + { + __IOM uint8_t ESC_RESET_PDI_W; /*!< (@ 0x00000041) ESC Reset PDI Register for write */ + + struct + { + __IOM uint8_t RESET_PDI : 8; /*!< [7..0] Software Reset Setting */ + } ESC_RESET_PDI_W_b; + }; + }; + __IM uint16_t RESERVED8; + __IM uint32_t RESERVED9[47]; + + union + { + __IM uint32_t ESC_DL_CONTROL; /*!< (@ 0x00000100) ESC DL Control Register */ + + struct + { + __IM uint32_t FWDRULE : 1; /*!< [0..0] Forwarding Rule */ + __IM uint32_t TEMPUSE : 1; /*!< [1..1] Temporary Use of Bits 15 to 8 Settings */ + uint32_t : 6; + __IM uint32_t LP0 : 2; /*!< [9..8] Loop Port 0 Configuration */ + __IM uint32_t LP1 : 2; /*!< [11..10] Loop Port 1 Configuration */ + __IM uint32_t LP2 : 2; /*!< [13..12] Loop Port 2 Configuration */ + __IM uint32_t LP3 : 2; /*!< [15..14] Loop Port 3 Configuration */ + __IM uint32_t RXFIFO : 3; /*!< [18..16] RX FIFO Size */ + uint32_t : 5; + __IM uint32_t STAALIAS : 1; /*!< [24..24] Station Alias Status */ + uint32_t : 7; + } ESC_DL_CONTROL_b; + }; + __IM uint32_t RESERVED10; + + union + { + __IM uint16_t PHYSICAL_RW_OFFSET; /*!< (@ 0x00000108) Physical Read/Write Offset Register */ + + struct + { + __IM uint16_t RWOFFSET : 16; /*!< [15..0] Offset between Read and Write Addresses */ + } PHYSICAL_RW_OFFSET_b; + }; + __IM uint16_t RESERVED11; + __IM uint32_t RESERVED12; + + union + { + __IM uint16_t ESC_DL_STATUS; /*!< (@ 0x00000110) ESC DL Status Register */ + + struct + { + __IM uint16_t PDIOPE : 1; /*!< [0..0] PDI/EEPROM Load State Indication */ + __IM uint16_t PDIWDST : 1; /*!< [1..1] PDI Watchdog Timer Status */ + __IM uint16_t ENHLINKD : 1; /*!< [2..2] Enhanced Link Detection Indication */ + uint16_t : 1; + __IM uint16_t PHYP0 : 1; /*!< [4..4] Port 0 Link State Indication */ + __IM uint16_t PHYP1 : 1; /*!< [5..5] Port 1 Link State Indication */ + __IM uint16_t PHYP2 : 1; /*!< [6..6] Port 2 Link State Indication */ + __IM uint16_t PHYP3 : 1; /*!< [7..7] Port 3 Link State Indication */ + __IM uint16_t LP0 : 1; /*!< [8..8] Loop Port 0 State Indication */ + __IM uint16_t COMP0 : 1; /*!< [9..9] Port 0 Communication State Indication */ + __IM uint16_t LP1 : 1; /*!< [10..10] Loop Port 1 State Indication */ + __IM uint16_t COMP1 : 1; /*!< [11..11] Port 1 Communication State Indication */ + __IM uint16_t LP2 : 1; /*!< [12..12] Loop Port 2 State Indication */ + __IM uint16_t COMP2 : 1; /*!< [13..13] Port 2 Communication State Indication */ + __IM uint16_t LP3 : 1; /*!< [14..14] Loop Port 3 State Indication */ + __IM uint16_t COMP3 : 1; /*!< [15..15] Port 3 Communication State Indication */ + } ESC_DL_STATUS_b; + }; + __IM uint16_t RESERVED13; + __IM uint32_t RESERVED14[3]; + + union + { + __IM uint16_t AL_CONTROL; /*!< (@ 0x00000120) AL Control Register */ + + struct + { + __IM uint16_t INISTATE : 4; /*!< [3..0] Change the state transition of the device state machine. */ + __IM uint16_t ERRINDACK : 1; /*!< [4..4] Error Indication Acknowledge (Response) */ + __IM uint16_t DEVICEID : 1; /*!< [5..5] Device ID Request */ + uint16_t : 10; + } AL_CONTROL_b; + }; + __IM uint16_t RESERVED15; + __IM uint32_t RESERVED16[3]; + + union + { + __IOM uint16_t AL_STATUS; /*!< (@ 0x00000130) AL Status Register */ + + struct + { + __IOM uint16_t ACTSTATE : 4; /*!< [3..0] State Machine State Indication */ + __IOM uint16_t ERR : 1; /*!< [4..4] Error State Indication */ + __IOM uint16_t DEVICEID : 1; /*!< [5..5] Device ID Load State Indication */ + uint16_t : 10; + } AL_STATUS_b; + }; + __IM uint16_t RESERVED17; + + union + { + __IOM uint16_t AL_STATUS_CODE; /*!< (@ 0x00000134) AL Status Code Register */ + + struct + { + __IOM uint16_t STATUSCODE : 16; /*!< [15..0] AL status code */ + } AL_STATUS_CODE_b; + }; + __IM uint16_t RESERVED18; + + union + { + __IOM uint8_t RUN_LED_OVERRIDE; /*!< (@ 0x00000138) RUN LED Override Register */ + + struct + { + __IOM uint8_t LEDCODE : 4; /*!< [3..0] LED Code Indication (FSM state: Bits [3:0] of the AL + * Status register, AL_STATUS) */ + __IOM uint8_t OVERRIDEEN : 1; /*!< [4..4] Override Setting */ + uint8_t : 3; + } RUN_LED_OVERRIDE_b; + }; + + union + { + __IOM uint8_t ERR_LED_OVERRIDE; /*!< (@ 0x00000139) ERR LED Override Register */ + + struct + { + __IOM uint8_t LEDCODE : 4; /*!< [3..0] LED Code Indication */ + __IOM uint8_t OVERRIDEEN : 1; /*!< [4..4] Override Setting */ + uint8_t : 3; + } ERR_LED_OVERRIDE_b; + }; + __IM uint16_t RESERVED19; + __IM uint32_t RESERVED20; + + union + { + __IM uint8_t PDI_CONTROL; /*!< (@ 0x00000140) PDI Control Register */ + + struct + { + __IM uint8_t PDI : 8; /*!< [7..0] Process Data Interface. In this LSI, the following value + * is indicated. */ + } PDI_CONTROL_b; + }; + + union + { + __IM uint8_t ESC_CONFIG; /*!< (@ 0x00000141) ESC Configuration Register */ + + struct + { + __IM uint8_t DEVEMU : 1; /*!< [0..0] Device emulation (control of AL status) */ + __IM uint8_t ENLALLP : 1; /*!< [1..1] Sets enhanced link detection for all ports */ + __IM uint8_t DCSYNC : 1; /*!< [2..2] Sets the SYNC output unit for distributed clocks (fixed + * to 1 in this LSI) */ + __IM uint8_t DCLATCH : 1; /*!< [3..3] Sets the latch input unit for distributed clocks */ + __IM uint8_t ENLP0 : 1; /*!< [4..4] Port 0 Enhanced Link Detection Setting */ + __IM uint8_t ENLP1 : 1; /*!< [5..5] Port 1 Enhanced Link Detection Setting */ + __IM uint8_t ENLP2 : 1; /*!< [6..6] Port 2 Enhanced Link Detection Setting */ + __IM uint8_t ENLP3 : 1; /*!< [7..7] Port 3 Enhanced Link Detection Setting */ + } ESC_CONFIG_b; + }; + __IM uint16_t RESERVED21; + __IM uint32_t RESERVED22[3]; + + union + { + __IM uint8_t PDI_CONFIG; /*!< (@ 0x00000150) PDI Configuration Register */ + + struct + { + __IM uint8_t ONCHIPBUSCLK : 5; /*!< [4..0] On-Chip Bus Clock Indication */ + __IM uint8_t ONCHIPBUS : 3; /*!< [7..5] On-Chip Bus Type Indication */ + } PDI_CONFIG_b; + }; + + union + { + __IM uint8_t SYNC_LATCH_CONFIG; /*!< (@ 0x00000151) SYNC/LATCH PDI Configuration Register */ + + struct + { + __IM uint8_t SYNC0OUT : 2; /*!< [1..0] SYNC0 Output Driver and Polarity Indication */ + __IM uint8_t SYNCLAT0 : 1; /*!< [2..2] SYNC0/LATCH0 Indication */ + __IM uint8_t SYNC0MAP : 1; /*!< [3..3] SYNC0 State Mapping Indication */ + __IM uint8_t SYNC1OUT : 2; /*!< [5..4] SYNC1 Output Driver and Polarity Indication */ + __IM uint8_t SYNCLAT1 : 1; /*!< [6..6] SYNC1/LATCH1 Indication */ + __IM uint8_t SYNC1MAP : 1; /*!< [7..7] SYNC1 State Mapping Indication */ + } SYNC_LATCH_CONFIG_b; + }; + + union + { + __IM uint16_t EXT_PDI_CONFIG; /*!< (@ 0x00000152) Extended PDI Configuration Register */ + + struct + { + __IM uint16_t DATABUSWID : 2; /*!< [1..0] PDI Data Bus Width Indication */ + uint16_t : 14; + } EXT_PDI_CONFIG_b; + }; + __IM uint32_t RESERVED23[43]; + + union + { + __IM uint16_t ECAT_EVENT_MASK; /*!< (@ 0x00000200) ECAT Event Mask Register */ + + struct + { + __IM uint16_t ECATEVMASK : 16; /*!< [15..0] Event Request Mask Setting */ + } ECAT_EVENT_MASK_b; + }; + __IM uint16_t RESERVED24; + + union + { + __IOM uint32_t AL_EVENT_MASK; /*!< (@ 0x00000204) AL Event Mask Register */ + + struct + { + __IOM uint32_t ALEVMASK : 32; /*!< [31..0] Event Request Mask Setting */ + } AL_EVENT_MASK_b; + }; + __IM uint32_t RESERVED25[2]; + + union + { + __IM uint16_t ECAT_EVENT_REQ; /*!< (@ 0x00000210) ECAT Event Request Register */ + + struct + { + __IM uint16_t DCLATCH : 1; /*!< [0..0] DC Latch Event State Indication */ + uint16_t : 1; + __IM uint16_t DLSTA : 1; /*!< [2..2] DL Status Event State Indication */ + __IM uint16_t ALSTA : 1; /*!< [3..3] AL Status Event State Indication */ + __IM uint16_t SMSTA0 : 1; /*!< [4..4] Mirror value of SyncManager 0 Status Indication */ + __IM uint16_t SMSTA1 : 1; /*!< [5..5] Mirror value of SyncManager 1 Status Indication */ + __IM uint16_t SMSTA2 : 1; /*!< [6..6] Mirror value of SyncManager 2 Status Indication */ + __IM uint16_t SMSTA3 : 1; /*!< [7..7] Mirror value of SyncManager 3 Status Indication */ + __IM uint16_t SMSTA4 : 1; /*!< [8..8] Mirror value of SyncManager 4 Status Indication */ + __IM uint16_t SMSTA5 : 1; /*!< [9..9] Mirror value of SyncManager 5 Status Indication */ + __IM uint16_t SMSTA6 : 1; /*!< [10..10] Mirror value of SyncManager 6 Status Indication */ + __IM uint16_t SMSTA7 : 1; /*!< [11..11] Mirror value of SyncManager 7 Status Indication */ + uint16_t : 4; + } ECAT_EVENT_REQ_b; + }; + __IM uint16_t RESERVED26; + __IM uint32_t RESERVED27[3]; + + union + { + __IM uint32_t AL_EVENT_REQ; /*!< (@ 0x00000220) AL Event Request Register */ + + struct + { + __IM uint32_t ALCTRL : 1; /*!< [0..0] AL Control Event State Indication */ + __IM uint32_t DCLATCH : 1; /*!< [1..1] DC Latch Event State Indication */ + __IM uint32_t DCSYNC0STA : 1; /*!< [2..2] DC SYNC0 State Indication */ + __IM uint32_t DCSYNC1STA : 1; /*!< [3..3] DC SYNC1 State Indication */ + __IM uint32_t SYNCACT : 1; /*!< [4..4] SyncManager Activation Indication */ + uint32_t : 1; + __IM uint32_t WDPD : 1; /*!< [6..6] Watchdog Process Data Indication */ + uint32_t : 1; + __IM uint32_t SMINT0 : 1; /*!< [8..8] SyncManager 0 interrupt (bit 0 or 1 of the SyncManager + * status register (0x0805)) */ + __IM uint32_t SMINT1 : 1; /*!< [9..9] SyncManager 1 interrupt (bit 0 or 1 of the SyncManager + * status register (0x080D)) */ + __IM uint32_t SMINT2 : 1; /*!< [10..10] SyncManager 2 interrupt (bit 0 or 1 of the SyncManager + * status register (0x0815)) */ + __IM uint32_t SMINT3 : 1; /*!< [11..11] SyncManager 3 interrupt (bit 0 or 1 of the SyncManager + * status register (0x081D)) */ + __IM uint32_t SMINT4 : 1; /*!< [12..12] SyncManager 4 interrupt (bit 0 or 1 of the SyncManager + * status register (0x0825)) */ + __IM uint32_t SMINT5 : 1; /*!< [13..13] SyncManager 5 interrupt (bit 0 or 1 of the SyncManager + * status register (0x082D)) */ + __IM uint32_t SMINT6 : 1; /*!< [14..14] SyncManager 6 interrupt (bit 0 or 1 of the SyncManager + * status register (0x0835)) */ + __IM uint32_t SMINT7 : 1; /*!< [15..15] SyncManager 7 interrupt (bit 0 or 1 of the SyncManager + * status register (0x083D)) */ + uint32_t : 16; + } AL_EVENT_REQ_b; + }; + __IM uint32_t RESERVED28[55]; + + union + { + __IM uint16_t RX_ERR_COUNT[3]; /*!< (@ 0x00000300) RX Error Counter [0..2] Register (n = 0 to 2) */ + + struct + { + __IM uint16_t INVFRMCNT : 8; /*!< [7..0] Invalid Frame Counter Value Indication */ + __IM uint16_t RXERRCNT : 8; /*!< [15..8] RX Frame Error Counter Value Indication */ + } RX_ERR_COUNT_b[3]; + }; + __IM uint16_t RESERVED29; + + union + { + __IM uint8_t FWD_RX_ERR_COUNT[3]; /*!< (@ 0x00000308) Forwarded RX Error Counter [0..2] Register (n + * = 0 to 2) */ + + struct + { + __IM uint8_t FWDERRCNT : 8; /*!< [7..0] Forwarded Error Counter Value Indication */ + } FWD_RX_ERR_COUNT_b[3]; + }; + __IM uint8_t RESERVED30; + + union + { + __IM uint8_t ECAT_PROC_ERR_COUNT; /*!< (@ 0x0000030C) ECAT Processing Unit Error Counter Register */ + + struct + { + __IM uint8_t EPUERRCNT : 8; /*!< [7..0] Processing Unit Error Counter Value Indication */ + } ECAT_PROC_ERR_COUNT_b; + }; + + union + { + __IM uint8_t PDI_ERR_COUNT; /*!< (@ 0x0000030D) PDI Error Counter Register */ + + struct + { + __IM uint8_t PDIERRCNT : 8; /*!< [7..0] PDI Error Counter Value Indication */ + } PDI_ERR_COUNT_b; + }; + __IM uint16_t RESERVED31; + + union + { + __IM uint8_t LOST_LINK_COUNT[3]; /*!< (@ 0x00000310) Lost Link Counter [0..2] Register (n = 0 to 2) */ + + struct + { + __IM uint8_t LOSTLINKCNT : 8; /*!< [7..0] Lost Link Counter Value Indication */ + } LOST_LINK_COUNT_b[3]; + }; + __IM uint8_t RESERVED32; + __IM uint32_t RESERVED33[59]; + + union + { + __IM uint16_t WD_DIVIDE; /*!< (@ 0x00000400) Watchdog Divider Register */ + + struct + { + __IM uint16_t WDDIV : 16; /*!< [15..0] Watchdog Clock Frequency Divisor Setting */ + } WD_DIVIDE_b; + }; + __IM uint16_t RESERVED34; + __IM uint32_t RESERVED35[3]; + + union + { + __IM uint16_t WDT_PDI; /*!< (@ 0x00000410) Watchdog Time PDI Register */ + + struct + { + __IM uint16_t WDTIMPDI : 16; /*!< [15..0] Watchdog Overflow Time Setting */ + } WDT_PDI_b; + }; + __IM uint16_t RESERVED36; + __IM uint32_t RESERVED37[3]; + + union + { + __IM uint16_t WDT_DATA; /*!< (@ 0x00000420) Watchdog Time Process Data Register */ + + struct + { + __IM uint16_t WDTIMPD : 16; /*!< [15..0] Watchdog Overflow Time Setting */ + } WDT_DATA_b; + }; + __IM uint16_t RESERVED38; + __IM uint32_t RESERVED39[7]; + + union + { + __IM uint16_t WDS_DATA; /*!< (@ 0x00000440) Watchdog Status Process Data Register */ + + struct + { + __IM uint16_t WDSTAPD : 1; /*!< [0..0] Watchdog State Indication */ + uint16_t : 15; + } WDS_DATA_b; + }; + + union + { + __IM uint8_t WDC_DATA; /*!< (@ 0x00000442) Watchdog Counter Process Data Register */ + + struct + { + __IM uint8_t WDCNTPD : 8; /*!< [7..0] Watchdog Counter Value Indication */ + } WDC_DATA_b; + }; + + union + { + __IM uint8_t WDC_PDI; /*!< (@ 0x00000443) Watchdog Counter PDI Register */ + + struct + { + __IM uint8_t WDCNTPDI : 8; /*!< [7..0] Watchdog Counter Value Indication */ + } WDC_PDI_b; + }; + __IM uint32_t RESERVED40[47]; + + union + { + __IM uint8_t EEP_CONF; /*!< (@ 0x00000500) EEPROM Configuration Register */ + + struct + { + __IM uint8_t CTRLPDI : 1; /*!< [0..0] PDI EEPROM Control */ + __IM uint8_t FORCEECAT : 1; /*!< [1..1] EEPROM Access Right Change */ + uint8_t : 6; + } EEP_CONF_b; + }; + + union + { + __IOM uint8_t EEP_STATE; /*!< (@ 0x00000501) EEPROM PDI Access State Register */ + + struct + { + __IOM uint8_t PDIACCESS : 1; /*!< [0..0] EEPROM Access Right Setting */ + uint8_t : 7; + } EEP_STATE_b; + }; + + union + { + __IOM uint16_t EEP_CONT_STAT; /*!< (@ 0x00000502) EEPROM Control/Status Register */ + + struct + { + __IM uint16_t ECATWREN : 1; /*!< [0..0] ECAT Write Enable */ + uint16_t : 5; + __IM uint16_t READBYTE : 1; /*!< [6..6] EEPROM Read Byte Indication */ + __IM uint16_t PROMSIZE : 1; /*!< [7..7] EEPROM Algorithm Indication */ + __IOM uint16_t COMMAND : 3; /*!< [10..8] Command */ + __IM uint16_t CKSUMERR : 1; /*!< [11..11] Checksum Error Indication */ + __IM uint16_t LOADSTA : 1; /*!< [12..12] EEPROM Loading Status Indication */ + __IM uint16_t ACKCMDERR : 1; /*!< [13..13] Acknowledge/Command Error Indication */ + __IM uint16_t WRENERR : 1; /*!< [14..14] Write Enable Error Indication */ + __IM uint16_t BUSY : 1; /*!< [15..15] EEPROM Interface State Indication */ + } EEP_CONT_STAT_b; + }; + + union + { + __IOM uint32_t EEP_ADR; /*!< (@ 0x00000504) EEPROM Address Register */ + + struct + { + __IOM uint32_t ADDRESS : 32; /*!< [31..0] EEPROM Address Setting */ + } EEP_ADR_b; + }; + + union + { + __IOM uint32_t EEP_DATA; /*!< (@ 0x00000508) EEPROM Data Register */ + + struct + { + __IOM uint32_t LODATA : 16; /*!< [15..0] Data to be written to the EEPROM or data read from the + * EEPROM (lower 2 bytes) */ + __IM uint32_t HIDATA : 16; /*!< [31..16] Data read from the EEPROM (upper 2 bytes) */ + } EEP_DATA_b; + }; + __IM uint32_t RESERVED41; + + union + { + __IOM uint16_t MII_CONT_STAT; /*!< (@ 0x00000510) MII Management Control/Status Register */ + + struct + { + __IM uint16_t WREN : 1; /*!< [0..0] Write Enable */ + __IM uint16_t PDICTRL : 1; /*!< [1..1] PDI Control Indication */ + __IM uint16_t MILINK : 1; /*!< [2..2] MI Link Detection */ + __IM uint16_t PHYOFFSET : 5; /*!< [7..3] PHY Address Offset Indication */ + __IOM uint16_t COMMAND : 2; /*!< [9..8] Command */ + uint16_t : 3; + __IOM uint16_t READERR : 1; /*!< [13..13] Read Error Indication */ + __IM uint16_t CMDERR : 1; /*!< [14..14] Command Error Indication */ + __IM uint16_t BUSY : 1; /*!< [15..15] MII Management State Indication */ + } MII_CONT_STAT_b; + }; + + union + { + __IOM uint8_t PHY_ADR; /*!< (@ 0x00000512) PHY Address Register */ + + struct + { + __IOM uint8_t PHYADDR : 5; /*!< [4..0] PHY Address Setting */ + uint8_t : 3; + } PHY_ADR_b; + }; + + union + { + __IOM uint8_t PHY_REG_ADR; /*!< (@ 0x00000513) PHY Register Address Register */ + + struct + { + __IOM uint8_t PHYREGADDR : 5; /*!< [4..0] Address of PHY register */ + uint8_t : 3; + } PHY_REG_ADR_b; + }; + + union + { + __IOM uint16_t PHY_DATA; /*!< (@ 0x00000514) PHY Data Register */ + + struct + { + __IOM uint16_t PHYREGDATA : 16; /*!< [15..0] PHY Register Data Indication/Setting */ + } PHY_DATA_b; + }; + + union + { + __IM uint8_t MII_ECAT_ACS_STAT; /*!< (@ 0x00000516) MII Management ECAT Access State Register */ + + struct + { + __IM uint8_t ACSMII : 1; /*!< [0..0] MII Management Interface Access Right Setting */ + uint8_t : 7; + } MII_ECAT_ACS_STAT_b; + }; + + union + { + __IOM uint8_t MII_PDI_ACS_STAT; /*!< (@ 0x00000517) MII Management PDI Access State Register */ + + struct + { + __IOM uint8_t ACSMII : 1; /*!< [0..0] Right of access to the MII management interface */ + __IM uint8_t FORPDI : 1; /*!< [1..1] Forced change of access by the PDI (forced change of + * bit 0) */ + uint8_t : 6; + } MII_PDI_ACS_STAT_b; + }; + __IM uint32_t RESERVED42[58]; + __IOM R_ESC_FMMU_Type FMMU[8]; /*!< (@ 0x00000600) FMMU [0..7] Registers (n = 0 to 7) */ + __IM uint32_t RESERVED43[96]; + __IOM R_ESC_SM_Type SM[8]; /*!< (@ 0x00000800) SyncManager [0..7] Registers (n = 0 to 7) */ + __IM uint32_t RESERVED44[48]; + + union + { + __IM uint32_t DC_RCV_TIME_PORT[3]; /*!< (@ 0x00000900) Receive Time Port [0..2] Register */ + + struct + { + __IM uint32_t RCVTIME0 : 32; /*!< [31..0] Receive Time Indication/Latch */ + } DC_RCV_TIME_PORT_b[3]; + }; + __IM uint32_t RESERVED45; + __IM uint32_t DC_SYS_TIME_L; /*!< (@ 0x00000910) System Time Register L */ + __IM uint32_t DC_SYS_TIME_H; /*!< (@ 0x00000914) System Time Register H */ + __IM uint32_t DC_RCV_TIME_UNIT_L; /*!< (@ 0x00000918) Receive Time ECAT Processing Unit Register L */ + __IM uint32_t DC_RCV_TIME_UNIT_H; /*!< (@ 0x0000091C) Receive Time ECAT Processing Unit Register H */ + __IM uint32_t DC_SYS_TIME_OFFSET_L; /*!< (@ 0x00000920) System Time Offset Register L */ + __IM uint32_t DC_SYS_TIME_OFFSET_H; /*!< (@ 0x00000924) System Time Offset Register H */ + + union + { + __IM uint32_t DC_SYS_TIME_DELAY; /*!< (@ 0x00000928) System Time Delay Register */ + + struct + { + __IM uint32_t SYSTIMDLY : 32; /*!< [31..0] Propagation Delay Indication */ + } DC_SYS_TIME_DELAY_b; + }; + + union + { + __IM uint32_t DC_SYS_TIME_DIFF; /*!< (@ 0x0000092C) System Time Difference Register */ + + struct + { + __IM uint32_t DIFF : 31; /*!< [30..0] System Time Mean Difference Indication */ + __IM uint32_t LCP : 1; /*!< [31..31] System Time Greater/Less Indication */ + } DC_SYS_TIME_DIFF_b; + }; + + union + { + __IM uint16_t DC_SPEED_COUNT_START; /*!< (@ 0x00000930) Speed Counter Start Register */ + + struct + { + __IM uint16_t SPDCNTSTRT : 15; /*!< [14..0] Drift Correction Bandwidth Setting */ + uint16_t : 1; + } DC_SPEED_COUNT_START_b; + }; + + union + { + __IM uint16_t DC_SPEED_COUNT_DIFF; /*!< (@ 0x00000932) Speed Counter Difference Register */ + + struct + { + __IM uint16_t SPDCNTDIFF : 16; /*!< [15..0] Clock Period Deviation Indication */ + } DC_SPEED_COUNT_DIFF_b; + }; + + union + { + __IM uint8_t DC_SYS_TIME_DIFF_FIL_DEPTH; /*!< (@ 0x00000934) System Time Difference Filter Depth Register */ + + struct + { + __IM uint8_t SYSTIMDEP : 4; /*!< [3..0] Filter Depth Setting */ + uint8_t : 4; + } DC_SYS_TIME_DIFF_FIL_DEPTH_b; + }; + + union + { + __IM uint8_t DC_SPEED_COUNT_FIL_DEPTH; /*!< (@ 0x00000935) Speed Counter Filter Depth Register */ + + struct + { + __IM uint8_t CLKPERDEP : 4; /*!< [3..0] Filter Depth Setting */ + uint8_t : 4; + } DC_SPEED_COUNT_FIL_DEPTH_b; + }; + __IM uint16_t RESERVED46; + __IM uint32_t RESERVED47[18]; + + union + { + __IM uint8_t DC_CYC_CONT; /*!< (@ 0x00000980) Cyclic Unit Control Register */ + + struct + { + __IM uint8_t SYNCOUT : 1; /*!< [0..0] SYNC Output Unit Control Setting */ + uint8_t : 3; + __IM uint8_t LATCH0 : 1; /*!< [4..4] Latch Input Unit 0 Control Setting */ + __IM uint8_t LATCH1 : 1; /*!< [5..5] Latch Input Unit 1 Control Setting */ + uint8_t : 2; + } DC_CYC_CONT_b; + }; + + union + { + __IOM uint8_t DC_ACT; /*!< (@ 0x00000981) Activation Register */ + + struct + { + __IOM uint8_t SYNCACT : 1; /*!< [0..0] Sync Output Unit Activation */ + __IOM uint8_t SYNC0 : 1; /*!< [1..1] SYNC0 Output Setting */ + __IOM uint8_t SYNC1 : 1; /*!< [2..2] SYNC1 Output Setting */ + __IOM uint8_t AUTOACT : 1; /*!< [3..3] SYNC Output Unit Activation */ + __IOM uint8_t EXTSTARTTIME : 1; /*!< [4..4] Start Time Cyclic Operation Extension */ + __IOM uint8_t STARTTIME : 1; /*!< [5..5] Start Time Plausibility */ + __IOM uint8_t NEARFUTURE : 1; /*!< [6..6] Near Future Range Setting */ + __IOM uint8_t DBGPULSE : 1; /*!< [7..7] Debug Pulse Setting */ + } DC_ACT_b; + }; + + union + { + __IM uint16_t DC_PULSE_LEN; /*!< (@ 0x00000982) SYNC Signal Pulse Length Register */ + + struct + { + __IM uint16_t PULSELEN : 16; /*!< [15..0] SYNC Signal Pulse Length Indication */ + } DC_PULSE_LEN_b; + }; + + union + { + __IM uint8_t DC_ACT_STAT; /*!< (@ 0x00000984) Activation Status Register */ + + struct + { + __IM uint8_t SYNC0ACT : 1; /*!< [0..0] SYNC0 Status Indication */ + __IM uint8_t SYNC1ACT : 1; /*!< [1..1] SYNC1 Status Indication */ + __IM uint8_t STARTTIME : 1; /*!< [2..2] Plausibility Result Indication */ + uint8_t : 5; + } DC_ACT_STAT_b; + }; + __IM uint8_t RESERVED48; + __IM uint16_t RESERVED49; + __IM uint32_t RESERVED50; + __IM uint16_t RESERVED51; + + union + { + __IM uint8_t DC_SYNC0_STAT; /*!< (@ 0x0000098E) SYNC0 Status Register */ + + struct + { + __IM uint8_t SYNC0STA : 1; /*!< [0..0] SYNC0 State Indication */ + uint8_t : 7; + } DC_SYNC0_STAT_b; + }; + + union + { + __IM uint8_t DC_SYNC1_STAT; /*!< (@ 0x0000098F) SYNC1 Status Register */ + + struct + { + __IM uint8_t SYNC1STA : 1; /*!< [0..0] SYNC1 State Indication */ + uint8_t : 7; + } DC_SYNC1_STAT_b; + }; + __IOM uint32_t DC_CYC_START_TIME_L; /*!< (@ 0x00000990) Start Time Cyclic Operation/Next SYNC0 Pulse + * Register L */ + __IOM uint32_t DC_CYC_START_TIME_H; /*!< (@ 0x00000994) Start Time Cyclic Operation/Next SYNC0 Pulse + * Register H */ + __IM uint32_t DC_NEXT_SYNC1_PULSE_L; /*!< (@ 0x00000998) Next SYNC1 Pulse Register L */ + __IM uint32_t DC_NEXT_SYNC1_PULSE_H; /*!< (@ 0x0000099C) Next SYNC1 Pulse Register H */ + + union + { + __IOM uint32_t DC_SYNC0_CYC_TIME; /*!< (@ 0x000009A0) SYNC0 Cycle Time Register */ + + struct + { + __IOM uint32_t SYNC0CYC : 32; /*!< [31..0] Time Between Consecutive SYNC0 Pulses */ + } DC_SYNC0_CYC_TIME_b; + }; + + union + { + __IOM uint32_t DC_SYNC1_CYC_TIME; /*!< (@ 0x000009A4) SYNC1 Cycle Time Register */ + + struct + { + __IOM uint32_t SYNC1CYC : 32; /*!< [31..0] Time between SYNC1 and SYNC0 Pulses */ + } DC_SYNC1_CYC_TIME_b; + }; + + union + { + __IOM uint8_t DC_LATCH0_CONT; /*!< (@ 0x000009A8) Latch 0 Control Register */ + + struct + { + __IOM uint8_t POSEDGE : 1; /*!< [0..0] Latch 0 Positive Edge Function Setting */ + __IOM uint8_t NEGEDGE : 1; /*!< [1..1] Latch 0 Negative Edge Function Setting */ + uint8_t : 6; + } DC_LATCH0_CONT_b; + }; + + union + { + __IOM uint8_t DC_LATCH1_CONT; /*!< (@ 0x000009A9) Latch 1 Control Register */ + + struct + { + __IOM uint8_t POSEDGE : 1; /*!< [0..0] Latch 1 Positive Edge Function Setting */ + __IOM uint8_t NEGEDGE : 1; /*!< [1..1] Latch 1 Negative Edge Function Setting */ + uint8_t : 6; + } DC_LATCH1_CONT_b; + }; + __IM uint16_t RESERVED52[2]; + + union + { + __IM uint8_t DC_LATCH0_STAT; /*!< (@ 0x000009AE) Latch 0 Status Register */ + + struct + { + __IM uint8_t EVENTPOS : 1; /*!< [0..0] Latch 0 Positive Edge Event Indication */ + __IM uint8_t EVENTNEG : 1; /*!< [1..1] Latch 0 Negative Edge Event Indication */ + __IM uint8_t PINSTATE : 1; /*!< [2..2] Latch 0 Input Pin State Indication */ + uint8_t : 5; + } DC_LATCH0_STAT_b; + }; + + union + { + __IM uint8_t DC_LATCH1_STAT; /*!< (@ 0x000009AF) Latch 1 Status Register */ + + struct + { + __IM uint8_t EVENTPOS : 1; /*!< [0..0] Latch 1 Positive Edge Event Indication */ + __IM uint8_t EVENTNEG : 1; /*!< [1..1] Latch 1 Negative Edge Event Indication */ + __IM uint8_t PINSTATE : 1; /*!< [2..2] Latch 1 Input Pin State Indication */ + uint8_t : 5; + } DC_LATCH1_STAT_b; + }; + __IM uint32_t DC_LATCH0_TIME_POS_L; /*!< (@ 0x000009B0) Latch 0 Time Positive Edge Register L */ + __IM uint32_t DC_LATCH0_TIME_POS_H; /*!< (@ 0x000009B4) Latch 0 Time Positive Edge Register H */ + __IM uint32_t DC_LATCH0_TIME_NEG_L; /*!< (@ 0x000009B8) Latch 0 Time Negative Edge Register L */ + __IM uint32_t DC_LATCH0_TIME_NEG_H; /*!< (@ 0x000009BC) Latch 0 Time Negative Edge Register H */ + __IM uint32_t DC_LATCH1_TIME_POS_L; /*!< (@ 0x000009C0) Latch 1 Time Positive Edge Register L */ + __IM uint32_t DC_LATCH1_TIME_POS_H; /*!< (@ 0x000009C4) Latch 1 Time Positive Edge Register H */ + __IM uint32_t DC_LATCH1_TIME_NEG_L; /*!< (@ 0x000009C8) Latch 1 Time Negative Edge Register L */ + __IM uint32_t DC_LATCH1_TIME_NEG_H; /*!< (@ 0x000009CC) Latch 1 Time Negative Edge Register H */ + __IM uint32_t RESERVED53[8]; + + union + { + __IM uint32_t DC_ECAT_CNG_EV_TIME; /*!< (@ 0x000009F0) Buffer Change Event Time Register */ + + struct + { + __IM uint32_t ECATCHANGE : 32; /*!< [31..0] Local Time Indication */ + } DC_ECAT_CNG_EV_TIME_b; + }; + __IM uint32_t RESERVED54; + + union + { + __IM uint32_t DC_PDI_START_EV_TIME; /*!< (@ 0x000009F8) PDI Buffer Start Event Time Register */ + + struct + { + __IM uint32_t PDISTART : 32; /*!< [31..0] Local Time Indication */ + } DC_PDI_START_EV_TIME_b; + }; + + union + { + __IM uint32_t DC_PDI_CNG_EV_TIME; /*!< (@ 0x000009FC) PDI Buffer Change Event Time Register */ + + struct + { + __IM uint32_t PDICHANGE : 32; /*!< [31..0] Local Time Indication */ + } DC_PDI_CNG_EV_TIME_b; + }; + __IM uint32_t RESERVED55[256]; + __IM uint32_t PRODUCT_ID_L; /*!< (@ 0x00000E00) Product ID Register L */ + __IM uint32_t PRODUCT_ID_H; /*!< (@ 0x00000E04) Product ID Register H */ + + union + { + __IM uint32_t VENDOR_ID_L; /*!< (@ 0x00000E08) Vendor ID Register L */ + + struct + { + __IM uint32_t VENDORID : 32; /*!< [31..0] Vendor ID Indication */ + } VENDOR_ID_L_b; + }; +} R_ESC_Type; /*!< Size = 3596 (0xe0c) */ + +/* =========================================================================================================================== */ +/* ================ R_USBHC ================ */ +/* =========================================================================================================================== */ + +/** + * @brief USB 2.0 HS Host Module (R_USBHC) + */ + +typedef struct /*!< (@ 0x80200000) R_USBHC Structure */ +{ + union + { + __IM uint32_t HCREVISION; /*!< (@ 0x00000000) HcRevision Register */ + + struct + { + __IM uint32_t REV : 8; /*!< [7..0] HCI revision */ + uint32_t : 24; + } HCREVISION_b; + }; + + union + { + __IOM uint32_t HCCONTROL; /*!< (@ 0x00000004) HcControl Register */ + + struct + { + __IOM uint32_t CBSR : 2; /*!< [1..0] Control/bulk transfer service ratio (ControlBulkServiceRatio) */ + __IOM uint32_t PLE : 1; /*!< [2..2] Periodic list setting (PeriodicListEnable) */ + __IOM uint32_t IE : 1; /*!< [3..3] Isochronous ED processing setting (IsochronousEnable) */ + __IOM uint32_t CLE : 1; /*!< [4..4] Control list processing setting (ControlListEnable) */ + __IOM uint32_t BLE : 1; /*!< [5..5] Bulk list processing setting (BulkListEnable) */ + __IOM uint32_t HCFS : 2; /*!< [7..6] Host logic operation status (Host Controller FunctionalState) */ + __IOM uint32_t IR : 1; /*!< [8..8] HcInterruptStatus interrupt path setting (InterruptRouting) */ + __IOM uint32_t RWC : 1; /*!< [9..9] Remote Wakeup support setting (RemoteWakeUpConnect) */ + __IOM uint32_t RWE : 1; /*!< [10..10] PME assertion control (RemoteWakeUpEnable) */ + uint32_t : 21; + } HCCONTROL_b; + }; + + union + { + __IOM uint32_t HCCOMMANDSTATUS; /*!< (@ 0x00000008) HcCommandStatus Register */ + + struct + { + __OM uint32_t HCR : 1; /*!< [0..0] Host logic software reset start (HostController Reset) */ + __IOM uint32_t CLF : 1; /*!< [1..1] Control list TD (ControlList Filled) */ + __IOM uint32_t BLF : 1; /*!< [2..2] Bulk list TD (BulkListFilled) */ + __OM uint32_t OCR : 1; /*!< [3..3] Host logic control right change (OwnershipChangeRequest) */ + uint32_t : 12; + __IM uint32_t SOC : 2; /*!< [17..16] Schedule overrun count (Scheduling OverrunCount) */ + uint32_t : 14; + } HCCOMMANDSTATUS_b; + }; + + union + { + __IOM uint32_t HCINTERRUPTSTATUS; /*!< (@ 0x0000000C) HcInterruptStatus Register */ + + struct + { + __IOM uint32_t SO : 1; /*!< [0..0] USB schedule overrun (Scheduling Overrun) */ + __IOM uint32_t WDH : 1; /*!< [1..1] Host logic HccaDoneHead update (Writeback Done Head) */ + __IOM uint32_t SF : 1; /*!< [2..2] HccaFrameNumber update (StartOfFrame) */ + __IOM uint32_t RD : 1; /*!< [3..3] Resume detection (Resume Detected) */ + __IOM uint32_t UE : 1; /*!< [4..4] USB non-related system error detection (Unrecoverable + * Error) */ + __IOM uint32_t FNO : 1; /*!< [5..5] FrameNumber bit MSB change (Frame Number Overflow) */ + __IOM uint32_t RHSC : 1; /*!< [6..6] HcRhStatus/HcRhPortStatus register status (RootHubStatus + * Change) */ + uint32_t : 23; + __IOM uint32_t OC : 1; /*!< [30..30] Host logic control right change (OwnershipChange) */ + uint32_t : 1; + } HCINTERRUPTSTATUS_b; + }; + + union + { + __IOM uint32_t HCINTERRUPTENABLE; /*!< (@ 0x00000010) HcInterruptEnable Register */ + + struct + { + __IOM uint32_t SOE : 1; /*!< [0..0] SO interrupt source enable (Scheduling OverrunEnable) */ + __IOM uint32_t WDHE : 1; /*!< [1..1] WDH interrupt source enable (WritebackDone HeadEnable) */ + __IOM uint32_t SFE : 1; /*!< [2..2] SF interrupt source enable (StartOfFrame) */ + __IOM uint32_t RDE : 1; /*!< [3..3] RD interrupt source enable (Resume DetectedEnable) */ + __IOM uint32_t UEE : 1; /*!< [4..4] UE interrupt source enable (Unrecoverable ErrorEnable) */ + __IOM uint32_t FNOE : 1; /*!< [5..5] FNO interrupt source enable (FrameNumber OverflowEnable) */ + __IOM uint32_t RHSCE : 1; /*!< [6..6] RHSC interrupt source enable (RootHubStatus ChangeEnable) */ + uint32_t : 23; + __IOM uint32_t OCE : 1; /*!< [30..30] OC interrupt source enable (OwnershipChangeEnable) */ + __IOM uint32_t MIE : 1; /*!< [31..31] Interrupt 8 source enable (MasterInterrupt Enable) */ + } HCINTERRUPTENABLE_b; + }; + + union + { + __IOM uint32_t HCINTERRUPTDISABLE; /*!< (@ 0x00000014) HcInterruptDisable Register */ + + struct + { + __IOM uint32_t SOD : 1; /*!< [0..0] SO interrupt source disable (Scheduling Overrun Disable) */ + __IOM uint32_t WDHD : 1; /*!< [1..1] WDH interrupt source disable (Writeback DoneHead Disable) */ + __IOM uint32_t SFD : 1; /*!< [2..2] SF interrupt source disable (StartOfFrame Disable) */ + __IOM uint32_t RDD : 1; /*!< [3..3] RD interrupt source disable (Resume Detected Disable) */ + __IOM uint32_t UED : 1; /*!< [4..4] UE interrupt source disable (Unrecoverable ErrorDisable) */ + __IOM uint32_t FNOD : 1; /*!< [5..5] FNO interrupt source disable (FrameNumberOverflow Disable) */ + __IOM uint32_t RHSCD : 1; /*!< [6..6] RHSC interrupt source disable (RootHub StatusChange Disable) */ + uint32_t : 23; + __IOM uint32_t OCD : 1; /*!< [30..30] OC interrupt source disable (OwnershipChangeDisable) */ + __IOM uint32_t MID : 1; /*!< [31..31] Interrupt 8 source disable (Master Interrupt Disable) */ + } HCINTERRUPTDISABLE_b; + }; + + union + { + __IOM uint32_t HCHCCA; /*!< (@ 0x00000018) HcHCCA Register */ + + struct + { + uint32_t : 8; + __IOM uint32_t RAMBA : 24; /*!< [31..8] RAM base address setting */ + } HCHCCA_b; + }; + + union + { + __IM uint32_t HCPERIODCCURRENTIED; /*!< (@ 0x0000001C) HcPeriodicCurrentED Register */ + + struct + { + uint32_t : 4; + __IM uint32_t PCED : 28; /*!< [31..4] ED physical address (PeriodicCurrentED) */ + } HCPERIODCCURRENTIED_b; + }; + + union + { + __IOM uint32_t HCCONTROLHEADED; /*!< (@ 0x00000020) HcControlHeadED Register */ + + struct + { + uint32_t : 4; + __IOM uint32_t CHED : 28; /*!< [31..4] Start ED physical address (ControlHeadED) */ + } HCCONTROLHEADED_b; + }; + + union + { + __IOM uint32_t HCCONTROLCURRENTED; /*!< (@ 0x00000024) HcControlCurrentED Register */ + + struct + { + uint32_t : 4; + __IOM uint32_t CCED : 28; /*!< [31..4] ED physical address (ControlCurrentED) */ + } HCCONTROLCURRENTED_b; + }; + + union + { + __IOM uint32_t HCBULKHEADED; /*!< (@ 0x00000028) HcBulkHeadED Register */ + + struct + { + uint32_t : 4; + __IOM uint32_t BHED : 28; /*!< [31..4] Start ED physical address (BulkHeadED) */ + } HCBULKHEADED_b; + }; + + union + { + __IOM uint32_t HCBULKCURRENTED; /*!< (@ 0x0000002C) HcBulkCurrentED Register */ + + struct + { + uint32_t : 4; + __IOM uint32_t BCED : 28; /*!< [31..4] ED physical address (BulkCurrentED) */ + } HCBULKCURRENTED_b; + }; + + union + { + __IM uint32_t HCDONEHEAD; /*!< (@ 0x00000030) HcDoneHead Register */ + + struct + { + uint32_t : 4; + __IM uint32_t DH : 28; /*!< [31..4] HcDoneHead physical address (DoneHead) */ + } HCDONEHEAD_b; + }; + + union + { + __IOM uint32_t HCFMINTERVAL; /*!< (@ 0x00000034) HcFmInterval Register */ + + struct + { + __IOM uint32_t FI : 14; /*!< [13..0] Frame interval setting (FrameInterval) */ + uint32_t : 2; + __IOM uint32_t FSMPS : 15; /*!< [30..16] FS transfer packet maximum size setting (FSLagest DataPacket) */ + __IOM uint32_t FIT : 1; /*!< [31..31] Frame synchronization (FrameInterval Toggle) */ + } HCFMINTERVAL_b; + }; + + union + { + __IM uint32_t HCFNREMAINING; /*!< (@ 0x00000038) HcFmRemaining Register */ + + struct + { + __IM uint32_t FR : 14; /*!< [13..0] Down counter frame (FrameRemaining) */ + uint32_t : 17; + __IM uint32_t FRT : 1; /*!< [31..31] Frame synchronization (FrameRemainingToggle) */ + } HCFNREMAINING_b; + }; + + union + { + __IM uint32_t HCFMNUMBER; /*!< (@ 0x0000003C) HcFmNumber Register */ + + struct + { + __IM uint32_t FN : 16; /*!< [15..0] Elapsed frame number (FrameNumber) */ + uint32_t : 16; + } HCFMNUMBER_b; + }; + + union + { + __IOM uint32_t HCPERIODSTART; /*!< (@ 0x00000040) HcPeriodicStart Register */ + + struct + { + __IOM uint32_t PS : 14; /*!< [13..0] Periodic list processing start time (PeriodicStart) */ + uint32_t : 18; + } HCPERIODSTART_b; + }; + + union + { + __IOM uint32_t HCLSTHRESHOLD; /*!< (@ 0x00000044) HcLSThreshold Register */ + + struct + { + __IOM uint32_t LS : 12; /*!< [11..0] Transferrable threshold (LSThreshold) */ + uint32_t : 20; + } HCLSTHRESHOLD_b; + }; + + union + { + __IOM uint32_t HCRHDESCRIPTORA; /*!< (@ 0x00000048) HcRhDescriptorA Register */ + + struct + { + __IM uint32_t NDP : 8; /*!< [7..0] Downstream port number (NumberDownstreamPorts) */ + __IOM uint32_t PSM : 1; /*!< [8..8] Power switch control (PowerSwitchingMode) */ + __IOM uint32_t NPS : 1; /*!< [9..9] Power control (NoPower Switching) */ + __IM uint32_t DT : 1; /*!< [10..10] Device type (DeviceType) */ + __IOM uint32_t OCPM : 1; /*!< [11..11] Overcurrent state reporting (OverCurrentProtection + * Mode) */ + __IOM uint32_t NOCP : 1; /*!< [12..12] Overcurrent function support (NoOver Current Protection) */ + uint32_t : 11; + __IOM uint32_t POTPGT : 8; /*!< [31..24] Wait time (PowerOnToPowerGood Time) */ + } HCRHDESCRIPTORA_b; + }; + + union + { + __IOM uint32_t HCRHDESCRIPTORB; /*!< (@ 0x0000004C) HcRhDescriptorB Register */ + + struct + { + __IOM uint32_t DR : 16; /*!< [15..0] Device Removable */ + __IOM uint32_t PPCM : 16; /*!< [31..16] Port Power Control Mask */ + } HCRHDESCRIPTORB_b; + }; + + union + { + __IOM uint32_t HCRHSTATUS; /*!< (@ 0x00000050) HcRhStatus Register */ + + struct + { + __IOM uint32_t LPS : 1; /*!< [0..0] Local power status (LocalPowerStatus) */ + __IM uint32_t OCI : 1; /*!< [1..1] Overcurrent indicator (OverCurrent Indicator) */ + uint32_t : 13; + __IOM uint32_t DRWE : 1; /*!< [15..15] Device remote start enable (DeviceRemoteWakeupEnable) */ + __IOM uint32_t LPSC : 1; /*!< [16..16] Local power status change (LocalPowerStatusChange) */ + __IOM uint32_t OCIC : 1; /*!< [17..17] OCI bit change report (OverCurrent Indicate Change) */ + uint32_t : 13; + __OM uint32_t CRWE : 1; /*!< [31..31] DRWE bit clear (Clear Remote Wakeup Enable) */ + } HCRHSTATUS_b; + }; + + union + { + __IOM uint32_t HCRHPORTSTATUS1; /*!< (@ 0x00000054) HcRhPortStatus1 Register */ + + struct + { + __IOM uint32_t CCS : 1; /*!< [0..0] Connection status indication (CurrentConnectStatus) */ + __IOM uint32_t PES : 1; /*!< [1..1] Port enable status (PortEnableStatus) */ + __IOM uint32_t PSS : 1; /*!< [2..2] Suspend/Resume status (PortSuspendStatus) */ + __IM uint32_t POCI : 1; /*!< [3..3] Downstream port overcurrent detection (PortOverCurrentIndicator) */ + __IOM uint32_t PRS : 1; /*!< [4..4] Port reset status (PortResetStatus) */ + uint32_t : 3; + __IOM uint32_t PPS : 1; /*!< [8..8] Power status (PortPowerStatus) */ + __IOM uint32_t LSDA : 1; /*!< [9..9] Device speed (LowSpeedDeviceAttached) */ + uint32_t : 6; + __IOM uint32_t CSC : 1; /*!< [16..16] CCS bit status (ConnectStatus Change) */ + __IOM uint32_t PESC : 1; /*!< [17..17] PES bit status (PortEnable StatusChange) */ + __IOM uint32_t PSSC : 1; /*!< [18..18] RESUME sequence complete (PortSuspend StatusChange) */ + __IOM uint32_t OCIC : 1; /*!< [19..19] Overcurrent state detection (OverCurrent IndicateChange) */ + __IOM uint32_t PRSC : 1; /*!< [20..20] Port reset complete (PortReset StatusChange) */ + uint32_t : 11; + } HCRHPORTSTATUS1_b; + }; + __IM uint32_t RESERVED[42]; + + union + { + __IM uint32_t CAPL_VERSION; /*!< (@ 0x00000100) Capability Registers Length and EHCI Version + * Number Register */ + + struct + { + __IM uint32_t CRL : 8; /*!< [7..0] Capability Registers Length */ + uint32_t : 8; + __IM uint32_t HCIVN : 16; /*!< [31..16] EHCI Version Number */ + } CAPL_VERSION_b; + }; + + union + { + __IM uint32_t HCSPARAMS; /*!< (@ 0x00000104) Structural Parameters Register */ + + struct + { + __IM uint32_t N_PORTS : 4; /*!< [3..0] Number of downstream ports (Number of Ports) */ + __IM uint32_t PPC : 1; /*!< [4..4] Port power control (Port Power Control) */ + uint32_t : 2; + __IM uint32_t PTRR : 1; /*!< [7..7] Port routing rules */ + __IM uint32_t N_PCC : 4; /*!< [11..8] Number of ports (Number of Ports per Companion Controller) */ + __IM uint32_t N_CC : 4; /*!< [15..12] Number of OHCI host logic (Number of Companion Controller) */ + __IM uint32_t P_INDICATOR : 1; /*!< [16..16] Port indicator control support */ + uint32_t : 3; + __IM uint32_t DBGPTNUM : 4; /*!< [23..20] Debug port number */ + uint32_t : 8; + } HCSPARAMS_b; + }; + + union + { + __IM uint32_t HCCPARAMS; /*!< (@ 0x00000108) Capability Parameters Register */ + + struct + { + __IM uint32_t AC64 : 1; /*!< [0..0] Memory pointer selection */ + __IM uint32_t PFLF : 1; /*!< [1..1] Programming frame list flag */ + __IM uint32_t ASPC : 1; /*!< [2..2] Asynchronous schedule park support capability */ + uint32_t : 1; + __IM uint32_t IST : 4; /*!< [7..4] Isochronous data structure threshold */ + __IM uint32_t EECP : 8; /*!< [15..8] Offset address (EHCI Extend Capabilities Pointer) */ + __IM uint32_t HP : 1; /*!< [16..16] Hardware prefetch capability */ + __IM uint32_t LPMC : 1; /*!< [17..17] Link power management capability */ + __IM uint32_t PCEC : 1; /*!< [18..18] Per-port change event capability */ + __IM uint32_t PL32 : 1; /*!< [19..19] 32-frame periodic list capability */ + uint32_t : 12; + } HCCPARAMS_b; + }; + __IM uint32_t HCSP_PORTROUTE; /*!< (@ 0x0000010C) Companion Port Route Description Register */ + __IM uint32_t RESERVED1[4]; + + union + { + __IOM uint32_t USBCMD; /*!< (@ 0x00000120) USB Command Register */ + + struct + { + __IOM uint32_t RS : 1; /*!< [0..0] EHCI host logic run/stop (Run/Stop) */ + __IOM uint32_t HCRESET : 1; /*!< [1..1] Host logic initialization (Host Controller Reset) */ + __IOM uint32_t FLS : 2; /*!< [3..2] Frame list size */ + __IOM uint32_t PSE : 1; /*!< [4..4] Periodic schedule enable */ + __IOM uint32_t ASYNSE : 1; /*!< [5..5] Asynchronous schedule enable */ + __IOM uint32_t IAAD : 1; /*!< [6..6] Interrupt on Async Advance Doorbell */ + __IM uint32_t LHCR : 1; /*!< [7..7] Light host controller reset execution status */ + __IOM uint32_t ASPMC : 2; /*!< [9..8] Asynchronous schedule park mode count */ + uint32_t : 1; + __IOM uint32_t ASPME : 1; /*!< [11..11] Asynchronous schedule park mode enable */ + uint32_t : 3; + __IOM uint32_t PPCEE : 1; /*!< [15..15] Per-port change event enable */ + __IOM uint32_t ITC : 8; /*!< [23..16] Host logic interrupt generation maximum rate (Interrupt + * Threshold Control) */ + __IOM uint32_t HIRD : 4; /*!< [27..24] Host-Initiated Resume Duration (Minimum K-state drive + * time) */ + uint32_t : 4; + } USBCMD_b; + }; + + union + { + __IOM uint32_t USBSTS; /*!< (@ 0x00000124) USB Status Register */ + + struct + { + __IOM uint32_t USBINT : 1; /*!< [0..0] USB transfer complete (USB Interrupt) */ + __IOM uint32_t USBERRINT : 1; /*!< [1..1] USB transaction status (USB Error Interrupt) */ + __IOM uint32_t PTCGDET : 1; /*!< [2..2] Port state change detection */ + __IOM uint32_t FLROV : 1; /*!< [3..3] Frame list rollover */ + __IOM uint32_t HSYSE : 1; /*!< [4..4] Host system error */ + __IOM uint32_t IAAIS : 1; /*!< [5..5] Async advance interrupt status */ + uint32_t : 6; + __IM uint32_t EHCSTS : 1; /*!< [12..12] EHCI host logic status (HCHalted) */ + __IM uint32_t RECLAM : 1; /*!< [13..13] Empty asynchronous schedule detection (Reclamation) */ + __IM uint32_t PSCHSTS : 1; /*!< [14..14] Periodic schedule status */ + __IM uint32_t ASS : 1; /*!< [15..15] Asynchronous schedule status */ + __IOM uint32_t PTCGDETC : 16; /*!< [31..16] Port-n Change Detect */ + } USBSTS_b; + }; + + union + { + __IOM uint32_t USBINTR; /*!< (@ 0x00000128) USB Interrupt Enable Register */ + + struct + { + __IOM uint32_t USBIE : 1; /*!< [0..0] USB interrupt enable */ + __IOM uint32_t USBEIE : 1; /*!< [1..1] USB error interrupt enable */ + __IOM uint32_t PTCGIE : 1; /*!< [2..2] Port change interrupt enable */ + __IOM uint32_t FMLSTROE : 1; /*!< [3..3] Frame list rollover enable */ + __IOM uint32_t HSEE : 1; /*!< [4..4] Host system error enable */ + __IOM uint32_t INTAADVE : 1; /*!< [5..5] Interrupt on async advance enable */ + uint32_t : 10; + __IOM uint32_t PCGIE : 16; /*!< [31..16] Port-n Change Interrupt Enable */ + } USBINTR_b; + }; + + union + { + __IOM uint32_t FRINDEX; /*!< (@ 0x0000012C) USB Frame Index Register */ + + struct + { + __IOM uint32_t FRAMEINDEX : 14; /*!< [13..0] Frame index */ + uint32_t : 18; + } FRINDEX_b; + }; + __IM uint32_t CTRLDSSEGMENT; /*!< (@ 0x00000130) Control Data Structure Segment Register */ + + union + { + __IOM uint32_t PERIODICLISTBASE; /*!< (@ 0x00000134) Periodic Frame List Base Address Register */ + + struct + { + uint32_t : 12; + __IOM uint32_t PFLSA : 20; /*!< [31..12] Periodic frame list start address */ + } PERIODICLISTBASE_b; + }; + + union + { + __IOM uint32_t ASYNCLISTADDR; /*!< (@ 0x00000138) Next Asynchronous List Address Register */ + + struct + { + uint32_t : 5; + __IOM uint32_t LPL : 27; /*!< [31..5] Asynchronous Queue Head link pointer address (Link Pointer + * Low) */ + } ASYNCLISTADDR_b; + }; + __IM uint32_t RESERVED2[9]; + + union + { + __IOM uint32_t CONFIGFLAG; /*!< (@ 0x00000160) Configure Flag Register */ + + struct + { + __IOM uint32_t CF : 1; /*!< [0..0] Port routing control circuit configuration flag (Configure + * Flag) */ + uint32_t : 31; + } CONFIGFLAG_b; + }; + + union + { + __IOM uint32_t PORTSC1; /*!< (@ 0x00000164) Port 1 Status and Control Register */ + + struct + { + __IM uint32_t CCSTS : 1; /*!< [0..0] Port connection status */ + __IOM uint32_t CSC : 1; /*!< [1..1] Connect status change */ + __IOM uint32_t PTE : 1; /*!< [2..2] Port enable/disable status */ + __IOM uint32_t PTESC : 1; /*!< [3..3] Port enable/disable status change */ + __IM uint32_t OVCACT : 1; /*!< [4..4] Port overcurrent status */ + __IOM uint32_t OVCC : 1; /*!< [5..5] Over-current Change */ + __IOM uint32_t FRCPTRSM : 1; /*!< [6..6] Force Port Resume (Port resume detection flag) */ + __IOM uint32_t SUSPEND : 1; /*!< [7..7] Port suspend */ + __IOM uint32_t PTRST : 1; /*!< [8..8] Port reset status */ + __IOM uint32_t LPMCTL : 1; /*!< [9..9] LPM control */ + __IM uint32_t LINESTS : 2; /*!< [11..10] D+/D- logic level */ + __IOM uint32_t PP : 1; /*!< [12..12] Port Power Supply Control (Port Power) */ + __IOM uint32_t PTOWNR : 1; /*!< [13..13] Port ownership */ + __IM uint32_t PTINDCTL : 2; /*!< [15..14] As the host logic does not support the port indicator + * control function, these bits are set to 00b. */ + __IOM uint32_t PTTST : 4; /*!< [19..16] Pin test control */ + __IOM uint32_t WKCNNT_E : 1; /*!< [20..20] Device connection detection enable (Wake on Connect + * Enable) */ + __IOM uint32_t WKDSCNNT_E : 1; /*!< [21..21] Device disconnection detection enable (Wake on Disconnect + * Enable) */ + __IOM uint32_t WKOC_E : 1; /*!< [22..22] Overcurrent state detection enable (Wake on Over-current + * Enable) */ + __IOM uint32_t SUSPSTS : 2; /*!< [24..23] Suspend status */ + __IOM uint32_t DVADDR : 7; /*!< [31..25] USB device address */ + } PORTSC1_b; + }; + __IM uint32_t RESERVED3[38]; + + union + { + __IOM uint32_t INTENABLE; /*!< (@ 0x00000200) INT_ENABLE Register */ + + struct + { + __IOM uint32_t AHB_INTEN : 1; /*!< [0..0] AHB_INT bit control */ + __IOM uint32_t USBH_INTAEN : 1; /*!< [1..1] USBH_INTA bit control */ + __IOM uint32_t USBH_INTBEN : 1; /*!< [2..2] USBH_INTB bit control */ + __IOM uint32_t UCOM_INTEN : 1; /*!< [3..3] UCOM_INT bit control */ + __IOM uint32_t WAKEON_INTEN : 1; /*!< [4..4] WAKEON_INT bit control */ + uint32_t : 27; + } INTENABLE_b; + }; + + union + { + __IOM uint32_t INTSTATUS; /*!< (@ 0x00000204) INT_STATUS Register */ + + struct + { + __IOM uint32_t AHB_INT : 1; /*!< [0..0] AHB bus error indication */ + __IM uint32_t USBH_INTA : 1; /*!< [1..1] OHCI interrupt status */ + __IM uint32_t USBH_INTB : 1; /*!< [2..2] USBH_INTB EHCI interrupt status */ + __IM uint32_t UCOM_INT : 1; /*!< [3..3] UCOM register interrupt status */ + __IOM uint32_t WAKEON_INT : 1; /*!< [4..4] WAKEON interrupt status */ + uint32_t : 27; + } INTSTATUS_b; + }; + + union + { + __IOM uint32_t AHBBUSCTR; /*!< (@ 0x00000208) AHB_BUS_CTR Register */ + + struct + { + __IOM uint32_t MAX_BURST_LEN : 2; /*!< [1..0] Maximum burst length */ + uint32_t : 2; + __IOM uint32_t ALIGN_ADDRESS : 2; /*!< [5..4] Address boundary setting */ + uint32_t : 2; + __IOM uint32_t PROT_MODE : 1; /*!< [8..8] This bit selects the MHPROT[3:0] mode when the AHB master + * interface initiates a transfer. */ + uint32_t : 3; + __IOM uint32_t PROT_TYPE : 4; /*!< [15..12] These bits set MHPROT[3:0] when the AHB master interface + * initiates a transfer. */ + uint32_t : 16; + } AHBBUSCTR_b; + }; + + union + { + __IOM uint32_t USBCTR; /*!< (@ 0x0000020C) USBCTR Register */ + + struct + { + __OM uint32_t USBH_RST : 1; /*!< [0..0] Software reset for the core */ + __IOM uint32_t PLL_RST : 1; /*!< [1..1] Reset of USB PHY PLL */ + __IOM uint32_t DIRPD : 1; /*!< [2..2] Direct transition to power-down state */ + uint32_t : 29; + } USBCTR_b; + }; + __IM uint32_t RESERVED4[60]; + + union + { + __IM uint32_t REVID; /*!< (@ 0x00000300) Revision and Core ID Register */ + + struct + { + __IM uint32_t MINV : 8; /*!< [7..0] Minor Version */ + __IM uint32_t MAJV : 8; /*!< [15..8] Major Version */ + uint32_t : 8; + __IM uint32_t COREID : 8; /*!< [31..24] Core ID */ + } REVID_b; + }; + __IM uint32_t RESERVED5[3]; + + union + { + __IOM uint32_t OCSLPTIMSET; /*!< (@ 0x00000310) Overcurrent Detection/Sleep Timer Setting Register */ + + struct + { + __IOM uint32_t TIMER_OC : 20; /*!< [19..0] Overcurrent Timer setting */ + __IOM uint32_t TIMER_SLEEP : 9; /*!< [28..20] Detection/Sleep Timer Setting */ + uint32_t : 3; + } OCSLPTIMSET_b; + }; + __IM uint32_t RESERVED6[315]; + + union + { + __IOM uint32_t COMMCTRL; /*!< (@ 0x00000800) Common Control Register */ + + struct + { + uint32_t : 31; + __IOM uint32_t PERI : 1; /*!< [31..31] USB mode setting */ + } COMMCTRL_b; + }; + + union + { + __IOM uint32_t OBINTSTA; /*!< (@ 0x00000804) OTG-BC Interrupt Status Register */ + + struct + { + __IOM uint32_t IDCHG_STA : 1; /*!< [0..0] USB_OTGID change status */ + __IOM uint32_t OCINT_STA : 1; /*!< [1..1] USB_OVRCUR assertion status */ + __IOM uint32_t VBSTACHG_STA : 1; /*!< [2..2] VBSTA[3:0] change status */ + __IOM uint32_t VBSTAINT_STA : 1; /*!< [3..3] VBUS voltage status interrupt */ + uint32_t : 12; + __IOM uint32_t DMMONCHG_STA : 1; /*!< [16..16] DMMON change status */ + __IOM uint32_t DPMONCHG_STA : 1; /*!< [17..17] DPMON change status */ + uint32_t : 14; + } OBINTSTA_b; + }; + + union + { + __IOM uint32_t OBINTEN; /*!< (@ 0x00000808) OTG-BC Interrupt Enable Register */ + + struct + { + __IOM uint32_t IDCHG_EN : 1; /*!< [0..0] IDCHG_STA Interrupt enable */ + __IOM uint32_t OCINT_EN : 1; /*!< [1..1] OCINT_STA interrupt enable */ + __IOM uint32_t VBSTACHG_EN : 1; /*!< [2..2] VBSTACHG_STA interrupt enable */ + __IOM uint32_t VBSTAINT_EN : 1; /*!< [3..3] VBSTAINT_STA interrupt enable */ + uint32_t : 12; + __IOM uint32_t DMMONCHG_EN : 1; /*!< [16..16] DMMONCHG_STA interrupt enable */ + __IOM uint32_t DPMONCHG_EN : 1; /*!< [17..17] DPMONCHG_STA interrupt enable */ + uint32_t : 14; + } OBINTEN_b; + }; + + union + { + __IOM uint32_t VBCTRL; /*!< (@ 0x0000080C) VBUS Control Register */ + + struct + { + __IOM uint32_t VBOUT : 1; /*!< [0..0] VBUS drive control (USB_VBUSEN pin) */ + __IOM uint32_t VBUSENSEL : 1; /*!< [1..1] USB_VBUSEN pin control */ + uint32_t : 2; + __IOM uint32_t VGPUO : 1; /*!< [4..4] USB_EXICEN pin control */ + uint32_t : 11; + __IOM uint32_t OCCLRIEN : 1; /*!< [16..16] USB_VBUSEN pin control at occurrence of overcurrent */ + __IOM uint32_t OCISEL : 1; /*!< [17..17] Overcurrent detection */ + uint32_t : 2; + __IOM uint32_t VBLVL : 4; /*!< [23..20] VBUS level detection */ + uint32_t : 4; + __IM uint32_t VBSTA : 4; /*!< [31..28] VBUS indication */ + } VBCTRL_b; + }; + + union + { + __IOM uint32_t LINECTRL1; /*!< (@ 0x00000810) Line Control Port 1 Register */ + + struct + { + __IM uint32_t IDMON : 1; /*!< [0..0] Indicates a value of USB_OTGID input pin. */ + uint32_t : 1; + __IM uint32_t DMMON : 1; /*!< [2..2] Indicates a value of USB bus DM. */ + __IM uint32_t DPMON : 1; /*!< [3..3] Indicates a value of USB bus DP. */ + uint32_t : 12; + __IOM uint32_t DM_RPD : 1; /*!< [16..16] Controls USB bus (DM) 15 kOhm pulldown resistor when + * DMPPD_EN = 1. */ + __IOM uint32_t DMRPD_EN : 1; /*!< [17..17] Enables DM_RPD to control USB bus (DM) 15 kOhm pulldown + * resistor. */ + __IOM uint32_t DP_RPD : 1; /*!< [18..18] Controls USB bus (DP) 15 kOhm pulldown resistor when + * DRPPD_EN = 1. */ + __IOM uint32_t DPRPD_EN : 1; /*!< [19..19] Enables DP_RPD to control USB bus (DP) 15 kOhm pulldown + * resistor. */ + uint32_t : 12; + } LINECTRL1_b; + }; +} R_USBHC_Type; /*!< Size = 2068 (0x814) */ + +/* =========================================================================================================================== */ +/* ================ R_USBF ================ */ +/* =========================================================================================================================== */ + +/** + * @brief USB 2.0 Host and Function Module (R_USBF) + */ + +typedef struct /*!< (@ 0x80201000) R_USBF Structure */ +{ + union + { + __IOM uint16_t SYSCFG0; /*!< (@ 0x00000000) System Configuration Control Register 0 */ + + struct + { + __IOM uint16_t USBE : 1; /*!< [0..0] USB Block Operation Enable */ + uint16_t : 3; + __IOM uint16_t DPRPU : 1; /*!< [4..4] D+ Line Resistor Control */ + __IOM uint16_t DRPD : 1; /*!< [5..5] D+/D- Line Resistor Control */ + uint16_t : 1; + __IOM uint16_t HSE : 1; /*!< [7..7] High-Speed Operation Enable */ + __IOM uint16_t CNEN : 1; /*!< [8..8] Single-End Receiver Operation Enable */ + uint16_t : 7; + } SYSCFG0_b; + }; + + union + { + __IOM uint16_t SYSCFG1; /*!< (@ 0x00000002) System Configuration Control Register 1 */ + + struct + { + __IOM uint16_t BWAIT : 6; /*!< [5..0] CPU Bus Access Wait Specification */ + uint16_t : 2; + __IOM uint16_t AWAIT : 6; /*!< [13..8] AHB-DMA Bridge Bus Access Wait Specification */ + uint16_t : 2; + } SYSCFG1_b; + }; + + union + { + __IM uint16_t SYSSTS0; /*!< (@ 0x00000004) System Configuration Status Register */ + + struct + { + __IM uint16_t LNST : 2; /*!< [1..0] USB Data Line Status Monitor */ + uint16_t : 14; + } SYSSTS0_b; + }; + __IM uint16_t RESERVED; + + union + { + __IOM uint16_t DVSTCTR0; /*!< (@ 0x00000008) Device State Control Register 0 */ + + struct + { + __IM uint16_t RHST : 3; /*!< [2..0] Reset Handshake */ + uint16_t : 5; + __IOM uint16_t WKUP : 1; /*!< [8..8] Wakeup Output */ + uint16_t : 7; + } DVSTCTR0_b; + }; + __IM uint16_t RESERVED1; + + union + { + __IOM uint16_t TESTMODE; /*!< (@ 0x0000000C) USB Test Mode Register */ + + struct + { + __IOM uint16_t UTST : 4; /*!< [3..0] Test Mode */ + uint16_t : 12; + } TESTMODE_b; + }; + __IM uint16_t RESERVED2; + __IM uint32_t RESERVED3; + + union + { + union + { + __IOM uint32_t CFIFO; /*!< (@ 0x00000014) FIFO Port Register */ + + struct + { + __IOM uint32_t FIFOPORT : 32; /*!< [31..0] FIFO Port */ + } CFIFO_b; + }; + + struct + { + union + { + __IOM uint16_t CFIFOL; /*!< (@ 0x00000014) FIFO Port Register */ + __IOM uint8_t CFIFOLL; /*!< (@ 0x00000014) FIFO Port Register */ + }; + + union + { + union + { + __IOM uint16_t CFIFOH; /*!< (@ 0x00000016) FIFO Port Register */ + + struct + { + __IOM uint16_t FIFOPORT : 16; /*!< [15..0] FIFO Port */ + } CFIFOH_b; + }; + + struct + { + __IM uint8_t RESERVED4; + + union + { + __IOM uint8_t CFIFOHH; /*!< (@ 0x00000017) FIFO Port Register */ + + struct + { + __IOM uint8_t FIFOPORT : 8; /*!< [7..0] FIFO Port */ + } CFIFOHH_b; + }; + }; + }; + }; + }; + + union + { + union + { + __IOM uint32_t D0FIFO; /*!< (@ 0x00000018) FIFO Port Register */ + + struct + { + __IOM uint32_t FIFOPORT : 32; /*!< [31..0] FIFO Port */ + } D0FIFO_b; + }; + + struct + { + union + { + __IOM uint16_t D0FIFOL; /*!< (@ 0x00000018) FIFO Port Register */ + __IOM uint8_t D0FIFOLL; /*!< (@ 0x00000018) FIFO Port Register */ + }; + + union + { + union + { + __IOM uint16_t D0FIFOH; /*!< (@ 0x0000001A) FIFO Port Register */ + + struct + { + __IOM uint16_t FIFOPORT : 16; /*!< [15..0] FIFO Port */ + } D0FIFOH_b; + }; + + struct + { + __IM uint8_t RESERVED5; + + union + { + __IOM uint8_t D0FIFOHH; /*!< (@ 0x0000001B) FIFO Port Register */ + + struct + { + __IOM uint8_t FIFOPORT : 8; /*!< [7..0] FIFO Port */ + } D0FIFOHH_b; + }; + }; + }; + }; + }; + + union + { + union + { + __IOM uint32_t D1FIFO; /*!< (@ 0x0000001C) FIFO Port Register */ + + struct + { + __IOM uint32_t FIFOPORT : 32; /*!< [31..0] FIFO Port */ + } D1FIFO_b; + }; + + struct + { + union + { + __IOM uint16_t D1FIFOL; /*!< (@ 0x0000001C) FIFO Port Register */ + __IOM uint8_t D1FIFOLL; /*!< (@ 0x0000001C) FIFO Port Register */ + }; + + union + { + union + { + __IOM uint16_t D1FIFOH; /*!< (@ 0x0000001E) FIFO Port Register */ + + struct + { + __IOM uint16_t FIFOPORT : 16; /*!< [15..0] FIFO Port */ + } D1FIFOH_b; + }; + + struct + { + __IM uint8_t RESERVED6; + + union + { + __IOM uint8_t D1FIFOHH; /*!< (@ 0x0000001F) FIFO Port Register */ + + struct + { + __IOM uint8_t FIFOPORT : 8; /*!< [7..0] FIFO Port */ + } D1FIFOHH_b; + }; + }; + }; + }; + }; + + union + { + __IOM uint16_t CFIFOSEL; /*!< (@ 0x00000020) CFIFO Port Select Register */ + + struct + { + __IOM uint16_t CURPIPE : 4; /*!< [3..0] FIFO Port Access Pipe Specification */ + uint16_t : 1; + __IOM uint16_t ISEL : 1; /*!< [5..5] FIFO Port Access Direction when DCP is Selected */ + uint16_t : 2; + __IOM uint16_t BIGEND : 1; /*!< [8..8] FIFO Port Endian Control */ + uint16_t : 1; + __IOM uint16_t MBW : 2; /*!< [11..10] CFIFO Port Access Bit Width */ + uint16_t : 2; + __IOM uint16_t REW : 1; /*!< [14..14] Buffer Pointer Rewind */ + __IOM uint16_t RCNT : 1; /*!< [15..15] Read Count Mode */ + } CFIFOSEL_b; + }; + + union + { + __IOM uint16_t CFIFOCTR; /*!< (@ 0x00000022) FIFO Port Control Register */ + + struct + { + __IM uint16_t DTLN : 12; /*!< [11..0] Receive Data Length */ + uint16_t : 1; + __IM uint16_t FRDY : 1; /*!< [13..13] FIFO Port Ready */ + __IOM uint16_t BCLR : 1; /*!< [14..14] CPU Buffer Clear */ + __IOM uint16_t BVAL : 1; /*!< [15..15] Buffer Memory Valid Flag */ + } CFIFOCTR_b; + }; + __IM uint32_t RESERVED7; + + union + { + __IOM uint16_t D0FIFOSEL; /*!< (@ 0x00000028) D0FIFO Port Select Register */ + + struct + { + __IOM uint16_t CURPIPE : 4; /*!< [3..0] FIFO Port Access Pipe Specification */ + uint16_t : 4; + __IOM uint16_t BIGEND : 1; /*!< [8..8] FIFO Port Endian Control */ + uint16_t : 1; + __IOM uint16_t MBW : 2; /*!< [11..10] FIFO Port Access Bit Width */ + __IOM uint16_t DREQE : 1; /*!< [12..12] DMA Request Enable */ + __IOM uint16_t DCLRM : 1; /*!< [13..13] Auto Buffer Memory Clear Mode after Specified Pipe + * Data is Read */ + __IOM uint16_t REW : 1; /*!< [14..14] Buffer Pointer Rewind */ + __IOM uint16_t RCNT : 1; /*!< [15..15] Read Count Mode */ + } D0FIFOSEL_b; + }; + + union + { + __IOM uint16_t D0FIFOCTR; /*!< (@ 0x0000002A) FIFO Port Control Register */ + + struct + { + __IM uint16_t DTLN : 12; /*!< [11..0] Receive Data Length */ + uint16_t : 1; + __IM uint16_t FRDY : 1; /*!< [13..13] FIFO Port Ready */ + __IOM uint16_t BCLR : 1; /*!< [14..14] CPU Buffer Clear */ + __IOM uint16_t BVAL : 1; /*!< [15..15] Buffer Memory Valid Flag */ + } D0FIFOCTR_b; + }; + + union + { + __IOM uint16_t D1FIFOSEL; /*!< (@ 0x0000002C) D1FIFO Port Select Register */ + + struct + { + __IOM uint16_t CURPIPE : 4; /*!< [3..0] FIFO Port Access Pipe Specification */ + uint16_t : 4; + __IOM uint16_t BIGEND : 1; /*!< [8..8] FIFO Port Endian Control */ + uint16_t : 1; + __IOM uint16_t MBW : 2; /*!< [11..10] FIFO Port Access Bit Width */ + __IOM uint16_t DREQE : 1; /*!< [12..12] DMA Request Enable */ + __IOM uint16_t DCLRM : 1; /*!< [13..13] Auto Buffer Memory Clear Mode after Specified Pipe + * Data is Read */ + __IOM uint16_t REW : 1; /*!< [14..14] Buffer Pointer Rewind */ + __IOM uint16_t RCNT : 1; /*!< [15..15] Read Count Mode */ + } D1FIFOSEL_b; + }; + + union + { + __IOM uint16_t D1FIFOCTR; /*!< (@ 0x0000002E) FIFO Port Control Register */ + + struct + { + __IM uint16_t DTLN : 12; /*!< [11..0] Receive Data Length */ + uint16_t : 1; + __IM uint16_t FRDY : 1; /*!< [13..13] FIFO Port Ready */ + __IOM uint16_t BCLR : 1; /*!< [14..14] CPU Buffer Clear */ + __IOM uint16_t BVAL : 1; /*!< [15..15] Buffer Memory Valid Flag */ + } D1FIFOCTR_b; + }; + + union + { + __IOM uint16_t INTENB0; /*!< (@ 0x00000030) Interrupt Enable Register 0 */ + + struct + { + uint16_t : 8; + __IOM uint16_t BRDYE : 1; /*!< [8..8] Buffer Ready Interrupt Enable */ + __IOM uint16_t NRDYE : 1; /*!< [9..9] Buffer Not Ready Response Interrupt Enable */ + __IOM uint16_t BEMPE : 1; /*!< [10..10] Buffer Empty Interrupt Enable */ + __IOM uint16_t CTRE : 1; /*!< [11..11] Control Transfer Stage Transition Interrupt Enable */ + __IOM uint16_t DVSE : 1; /*!< [12..12] Device State Transition Interrupt Enable */ + __IOM uint16_t SOFE : 1; /*!< [13..13] Frame Number Update Interrupt Enable */ + __IOM uint16_t RSME : 1; /*!< [14..14] Resume Interrupt Enable */ + __IOM uint16_t VBSE : 1; /*!< [15..15] VBUS Interrupt Enable */ + } INTENB0_b; + }; + + union + { + __IOM uint16_t INTENB1; /*!< (@ 0x00000032) Interrupt Enable Register 1 */ + + struct + { + __IOM uint16_t PDDETINTE : 1; /*!< [0..0] PDDETINT Detection Interrupt Enable */ + uint16_t : 15; + } INTENB1_b; + }; + __IM uint16_t RESERVED8; + + union + { + __IOM uint16_t BRDYENB; /*!< (@ 0x00000036) BRDY Interrupt Enable Register */ + + struct + { + __IOM uint16_t PIPEBRDYE : 10; /*!< [9..0] BRDY Interrupt Enable for Each Pipe */ + uint16_t : 6; + } BRDYENB_b; + }; + + union + { + __IOM uint16_t NRDYENB; /*!< (@ 0x00000038) NRDY Interrupt Enable Register */ + + struct + { + __IOM uint16_t PIPENRDYE : 10; /*!< [9..0] NRDY Interrupt Enable for Each Pipe */ + uint16_t : 6; + } NRDYENB_b; + }; + + union + { + __IOM uint16_t BEMPENB; /*!< (@ 0x0000003A) BEMP Interrupt Enable Register */ + + struct + { + __IOM uint16_t PIPEBEMPE : 10; /*!< [9..0] BEMP Interrupt Enable for Each Pipe */ + uint16_t : 6; + } BEMPENB_b; + }; + + union + { + __IOM uint16_t SOFCFG; /*!< (@ 0x0000003C) SOF Pin Configuration Register */ + + struct + { + uint16_t : 4; + __IM uint16_t EDGESTS : 1; /*!< [4..4] Interrupt Edge Processing Status */ + __IOM uint16_t INTL : 1; /*!< [5..5] Interrupt Output Sense Select */ + __IOM uint16_t BRDYM : 1; /*!< [6..6] PIPEBRDY Interrupt Status Clear Timing */ + uint16_t : 9; + } SOFCFG_b; + }; + __IM uint16_t RESERVED9; + + union + { + __IOM uint16_t INTSTS0; /*!< (@ 0x00000040) Interrupt Status Register 0 */ + + struct + { + __IM uint16_t CTSQ : 3; /*!< [2..0] Control Transfer Stage */ + __IOM uint16_t VALID : 1; /*!< [3..3] USB Request Reception */ + __IM uint16_t DVSQ : 3; /*!< [6..4] Device State */ + __IM uint16_t VBSTS : 1; /*!< [7..7] VBUS Input Status */ + __IM uint16_t BRDY : 1; /*!< [8..8] BRDY Interrupt Status */ + __IM uint16_t NRDY : 1; /*!< [9..9] NRDY Interrupt Status */ + __IM uint16_t BEMP : 1; /*!< [10..10] BEMP Interrupt Status */ + __IOM uint16_t CTRT : 1; /*!< [11..11] Control Transfer Stage Transition Interrupt Status */ + __IOM uint16_t DVST : 1; /*!< [12..12] Device State Transition Interrupt Status */ + __IOM uint16_t SOFR : 1; /*!< [13..13] Frame Number Update Interrupt Status */ + __IOM uint16_t RESM : 1; /*!< [14..14] Resume Interrupt Status */ + __IOM uint16_t VBINT : 1; /*!< [15..15] VBUS Change Detect Interrupt Status */ + } INTSTS0_b; + }; + + union + { + __IOM uint16_t INTSTS1; /*!< (@ 0x00000042) Interrupt Status Register 1 */ + + struct + { + __IOM uint16_t PDDETINT : 1; /*!< [0..0] PDDET Detection Interrupt Status */ + uint16_t : 15; + } INTSTS1_b; + }; + __IM uint16_t RESERVED10; + + union + { + __IOM uint16_t BRDYSTS; /*!< (@ 0x00000046) BRDY Interrupt Status Register */ + + struct + { + __IOM uint16_t PIPEBRDY : 10; /*!< [9..0] BRDY Interrupt Status for Each Pipe */ + uint16_t : 6; + } BRDYSTS_b; + }; + + union + { + __IOM uint16_t NRDYSTS; /*!< (@ 0x00000048) NRDY Interrupt Status Register */ + + struct + { + __IOM uint16_t PIPENRDY : 10; /*!< [9..0] NRDY Interrupt Status for Each Pipe */ + uint16_t : 6; + } NRDYSTS_b; + }; + + union + { + __IOM uint16_t BEMPSTS; /*!< (@ 0x0000004A) BEMP Interrupt Status Register */ + + struct + { + __IOM uint16_t PIPEBEMP : 10; /*!< [9..0] BEMP Interrupt Status for Each Pipe */ + uint16_t : 6; + } BEMPSTS_b; + }; + + union + { + __IOM uint16_t FRMNUM; /*!< (@ 0x0000004C) Frame Number Register */ + + struct + { + __IM uint16_t FRNM : 11; /*!< [10..0] Frame Number */ + uint16_t : 3; + __IOM uint16_t CRCE : 1; /*!< [14..14] CRC Error Detection Status */ + __IOM uint16_t OVRN : 1; /*!< [15..15] Overrun/Underrun Detection Status */ + } FRMNUM_b; + }; + + union + { + __IM uint16_t UFRMNUM; /*!< (@ 0x0000004E) Frame Number Register */ + + struct + { + __IM uint16_t UFRNM : 3; /*!< [2..0] Microframe Number */ + uint16_t : 13; + } UFRMNUM_b; + }; + + union + { + __IM uint16_t USBADDR; /*!< (@ 0x00000050) USB Address Register */ + + struct + { + __IM uint16_t USBADDR : 7; /*!< [6..0] USB Address */ + uint16_t : 9; + } USBADDR_b; + }; + __IM uint16_t RESERVED11; + + union + { + __IM uint16_t USBREQ; /*!< (@ 0x00000054) USB Request Type Register */ + + struct + { + __IM uint16_t BMREQUESTTYPE : 8; /*!< [7..0] Request Type */ + __IM uint16_t BREQUEST : 8; /*!< [15..8] Request */ + } USBREQ_b; + }; + + union + { + __IM uint16_t USBVAL; /*!< (@ 0x00000056) USB Request Value Register */ + + struct + { + __IM uint16_t WVALUE : 16; /*!< [15..0] Value */ + } USBVAL_b; + }; + + union + { + __IM uint16_t USBINDX; /*!< (@ 0x00000058) USB Request Index Register */ + + struct + { + __IM uint16_t WINDEX : 16; /*!< [15..0] Index */ + } USBINDX_b; + }; + + union + { + __IM uint16_t USBLENG; /*!< (@ 0x0000005A) USB Request Length Register */ + + struct + { + __IM uint16_t WLENGTH : 16; /*!< [15..0] Length */ + } USBLENG_b; + }; + + union + { + __IOM uint16_t DCPCFG; /*!< (@ 0x0000005C) DCP Configuration Register */ + + struct + { + uint16_t : 7; + __IOM uint16_t SHTNAK : 1; /*!< [7..7] Disabling PIPE at the End of Transfer */ + __IOM uint16_t CNTMD : 1; /*!< [8..8] Continuous Transfer Mode */ + uint16_t : 7; + } DCPCFG_b; + }; + + union + { + __IOM uint16_t DCPMAXP; /*!< (@ 0x0000005E) DCP Maximum Packet Size Register */ + + struct + { + __IOM uint16_t MXPS : 7; /*!< [6..0] Maximum Packet Size */ + uint16_t : 9; + } DCPMAXP_b; + }; + + union + { + __IOM uint16_t DCPCTR; /*!< (@ 0x00000060) DCP Control Register */ + + struct + { + __IOM uint16_t PID : 2; /*!< [1..0] Response PID */ + __IOM uint16_t CCPL : 1; /*!< [2..2] Control Transfer End Enable */ + uint16_t : 2; + __IM uint16_t PBUSY : 1; /*!< [5..5] PIPE Busy */ + __IM uint16_t SQMON : 1; /*!< [6..6] Sequence Toggle Bit Monitor */ + __IOM uint16_t SQSET : 1; /*!< [7..7] Toggle Bit Set */ + __IOM uint16_t SQCLR : 1; /*!< [8..8] Toggle Bit Clear */ + uint16_t : 6; + __IM uint16_t BSTS : 1; /*!< [15..15] Buffer Status */ + } DCPCTR_b; + }; + __IM uint16_t RESERVED12; + + union + { + __IOM uint16_t PIPESEL; /*!< (@ 0x00000064) Pipe Window Select Register */ + + struct + { + __IOM uint16_t PIPESEL : 4; /*!< [3..0] Pipe Window Select */ + uint16_t : 12; + } PIPESEL_b; + }; + __IM uint16_t RESERVED13; + + union + { + __IOM uint16_t PIPECFG; /*!< (@ 0x00000068) Pipe Configuration Register */ + + struct + { + __IOM uint16_t EPNUM : 4; /*!< [3..0] Endpoint Number */ + __IOM uint16_t DIR : 1; /*!< [4..4] Transfer Direction */ + uint16_t : 2; + __IOM uint16_t SHTNAK : 1; /*!< [7..7] Pipe Disable at the End of Transfer */ + __IOM uint16_t CNTMD : 1; /*!< [8..8] Continuous Transfer Mode */ + __IOM uint16_t DBLB : 1; /*!< [9..9] Double Buffer Mode */ + __IOM uint16_t BFRE : 1; /*!< [10..10] BRDY Interrupt Operation Specification */ + uint16_t : 3; + __IOM uint16_t TYPE : 2; /*!< [15..14] Transfer Type */ + } PIPECFG_b; + }; + + union + { + __IOM uint16_t PIPEBUF; /*!< (@ 0x0000006A) Pipe Buffer Specification Register */ + + struct + { + __IOM uint16_t BUFNMB : 8; /*!< [7..0] Buffer number */ + uint16_t : 2; + __IOM uint16_t BUFSIZE : 5; /*!< [14..10] Buffer size */ + uint16_t : 1; + } PIPEBUF_b; + }; + + union + { + __IOM uint16_t PIPEMAXP; /*!< (@ 0x0000006C) Pipe Maximum Packet Size Register */ + + struct + { + __IOM uint16_t MXPS : 11; /*!< [10..0] Maximum Packet Size */ + uint16_t : 5; + } PIPEMAXP_b; + }; + + union + { + __IOM uint16_t PIPEPERI; /*!< (@ 0x0000006E) Pipe Timing Control Register */ + + struct + { + __IOM uint16_t IITV : 3; /*!< [2..0] Interval Error Detection Spacing */ + uint16_t : 9; + __IOM uint16_t IFIS : 1; /*!< [12..12] Isochronous IN Buffer Flush */ + uint16_t : 3; + } PIPEPERI_b; + }; + + union + { + __IOM uint16_t PIPE_CTR[9]; /*!< (@ 0x00000070) PIPE[0..8] Control Register */ + + struct + { + __IOM uint16_t PID : 2; /*!< [1..0] Response PID */ + uint16_t : 3; + __IM uint16_t PBUSY : 1; /*!< [5..5] PIPE Busy */ + __IM uint16_t SQMON : 1; /*!< [6..6] Toggle Bit Confirm */ + __IOM uint16_t SQSET : 1; /*!< [7..7] Toggle Bit Set */ + __IOM uint16_t SQCLR : 1; /*!< [8..8] Toggle Bit Clear */ + __IOM uint16_t ACLRM : 1; /*!< [9..9] Auto Buffer Clear Mode */ + __IOM uint16_t ATREPM : 1; /*!< [10..10] Auto Response Mode */ + uint16_t : 3; + __IM uint16_t INBUFM : 1; /*!< [14..14] Transfer Buffer Monitor */ + __IM uint16_t BSTS : 1; /*!< [15..15] Buffer Status */ + } PIPE_CTR_b[9]; + }; + __IM uint16_t RESERVED14; + __IM uint32_t RESERVED15[3]; + __IOM R_USBF_PIPE_TR_Type PIPE_TR[5]; /*!< (@ 0x00000090) PIPEn Transaction Counter Registers (n=1-5) */ + __IM uint32_t RESERVED16[23]; + __IM uint16_t RESERVED17; + + union + { + __IOM uint16_t LPSTS; /*!< (@ 0x00000102) Low Power Status Register */ + + struct + { + uint16_t : 14; + __IOM uint16_t SUSPM : 1; /*!< [14..14] UTMI SuspendM Control */ + uint16_t : 1; + } LPSTS_b; + }; + __IM uint32_t RESERVED18[191]; + __IOM R_USBF_CHa_Type CHa[2]; /*!< (@ 0x00000400) Next Register Set */ + __IM uint32_t RESERVED19[96]; + __IOM R_USBF_CHb_Type CHb[2]; /*!< (@ 0x00000600) Skip Register Set */ + __IM uint32_t RESERVED20[48]; + + union + { + __IOM uint32_t DCTRL; /*!< (@ 0x00000700) DMA Control Register */ + + struct + { + __IOM uint32_t PR : 1; /*!< [0..0] Priority */ + uint32_t : 15; + __IOM uint32_t LDPR : 4; /*!< [19..16] Link Descriptor PROT */ + uint32_t : 4; + __IOM uint32_t LWPR : 4; /*!< [27..24] Link WriteBack PROT */ + uint32_t : 4; + } DCTRL_b; + }; + + union + { + __IOM uint32_t DSCITVL; /*!< (@ 0x00000704) Descriptor Interval Register */ + + struct + { + uint32_t : 8; + __IOM uint32_t DITVL : 8; /*!< [15..8] Descriptor Interval */ + uint32_t : 16; + } DSCITVL_b; + }; + __IM uint32_t RESERVED21[2]; + + union + { + __IM uint32_t DSTAT_EN; /*!< (@ 0x00000710) DMA Status EN Register */ + + struct + { + __IM uint32_t EN0 : 1; /*!< [0..0] Channel 0 EN */ + __IM uint32_t EN1 : 1; /*!< [1..1] Channel 1 EN */ + uint32_t : 30; + } DSTAT_EN_b; + }; + + union + { + __IM uint32_t DSTAT_ER; /*!< (@ 0x00000714) DMA Status ER Register */ + + struct + { + __IM uint32_t ER0 : 1; /*!< [0..0] Channel 0 ER */ + __IM uint32_t ER1 : 1; /*!< [1..1] Channel 1 ER */ + uint32_t : 30; + } DSTAT_ER_b; + }; + + union + { + __IM uint32_t DSTAT_END; /*!< (@ 0x00000718) DMA Status END Register */ + + struct + { + __IM uint32_t END0 : 1; /*!< [0..0] Channel 0 END */ + __IM uint32_t END1 : 1; /*!< [1..1] Channel 1 END */ + uint32_t : 30; + } DSTAT_END_b; + }; + + union + { + __IM uint32_t DSTAT_TC; /*!< (@ 0x0000071C) DMA Status TC Register */ + + struct + { + __IM uint32_t TC0 : 1; /*!< [0..0] Channel 0 TC */ + __IM uint32_t TC1 : 1; /*!< [1..1] Channel 1 TC */ + uint32_t : 30; + } DSTAT_TC_b; + }; + + union + { + __IM uint32_t DSTAT_SUS; /*!< (@ 0x00000720) DMA Status SUS Register */ + + struct + { + __IM uint32_t SUS0 : 1; /*!< [0..0] Channel 0 SUS */ + __IM uint32_t SUS1 : 1; /*!< [1..1] Channel 1 SUS */ + uint32_t : 30; + } DSTAT_SUS_b; + }; +} R_USBF_Type; /*!< Size = 1828 (0x724) */ + +/* =========================================================================================================================== */ +/* ================ R_BSC ================ */ +/* =========================================================================================================================== */ + +/** + * @brief Bus State Controller (R_BSC) + */ + +typedef struct /*!< (@ 0x80210000) R_BSC Structure */ +{ + union + { + __IOM uint32_t CMNCR; /*!< (@ 0x00000000) Common Control Register */ + + struct + { + uint32_t : 9; + __IOM uint32_t DPRTY : 2; /*!< [10..9] DMA Burst Transfer Priority */ + uint32_t : 13; + __IOM uint32_t AL : 1; /*!< [24..24] Acknowledge Level */ + uint32_t : 3; + __IOM uint32_t TL : 1; /*!< [28..28] Transfer End Level */ + uint32_t : 3; + } CMNCR_b; + }; + + union + { + __IOM uint32_t CSnBCR[6]; /*!< (@ 0x00000004) CS[0..5] Space Bus Control Register */ + + struct + { + uint32_t : 9; + __IOM uint32_t BSZ : 2; /*!< [10..9] Data Bus Width Specification */ + uint32_t : 1; + __IOM uint32_t TYPE : 3; /*!< [14..12] Memory Connected to a Space */ + uint32_t : 1; + __IOM uint32_t IWRRS : 3; /*!< [18..16] Idle State Insertion between Read-Read Cycles in the + * Same CS Space */ + __IOM uint32_t IWRRD : 3; /*!< [21..19] Idle State Insertion between Read-Read Cycles in Different + * CS Spaces */ + __IOM uint32_t IWRWS : 3; /*!< [24..22] Idle State Insertion between Read-Write Cycles in the + * Same CS Space */ + __IOM uint32_t IWRWD : 3; /*!< [27..25] Idle State Insertion between Read-Write Cycles in Different + * CS Spaces */ + __IOM uint32_t IWW : 3; /*!< [30..28] Idle Cycles between Write-Read Cycles and Write-Write + * Cycles */ + uint32_t : 1; + } CSnBCR_b[6]; + }; + __IM uint32_t RESERVED[3]; + + union + { + union + { + __IOM uint32_t CS0WCR_0; /*!< (@ 0x00000028) CS0 Space Wait Control Register for Normal Space, + * SRAM with Byte Selection */ + + struct + { + __IOM uint32_t HW : 2; /*!< [1..0] Delay States from RD#, WEn# Negation to Address, CS0# + * Negation */ + uint32_t : 4; + __IOM uint32_t WM : 1; /*!< [6..6] External Wait Mask Specification */ + __IOM uint32_t WR : 4; /*!< [10..7] Number of Access Waits */ + __IOM uint32_t SW : 2; /*!< [12..11] Number of Delay Cycles from Address, CSn# Assertion + * to RD#, WEn# Assertion */ + uint32_t : 7; + __IOM uint32_t BAS : 1; /*!< [20..20] SRAM with Byte Selection Byte Access Select */ + uint32_t : 11; + } CS0WCR_0_b; + }; + + union + { + __IOM uint32_t CS0WCR_1; /*!< (@ 0x00000028) CS0 Space Wait Control Register for Burst ROM + * with Clocked Asynchronous */ + + struct + { + uint32_t : 6; + __IOM uint32_t WM : 1; /*!< [6..6] External Wait Mask Specification */ + __IOM uint32_t W : 4; /*!< [10..7] Number of Access Waits */ + uint32_t : 5; + __IOM uint32_t BW : 2; /*!< [17..16] Number of Waits during Burst Access */ + uint32_t : 2; + __IOM uint32_t BST : 2; /*!< [21..20] Burst Count Specification */ + uint32_t : 10; + } CS0WCR_1_b; + }; + + union + { + __IOM uint32_t CS0WCR_2; /*!< (@ 0x00000028) CS0 Space Wait Control Register for Burst ROM + * with Clocked Synchronous */ + + struct + { + uint32_t : 6; + __IOM uint32_t WM : 1; /*!< [6..6] External Wait Mask Specification */ + __IOM uint32_t W : 4; /*!< [10..7] Number of Access Waits */ + uint32_t : 5; + __IOM uint32_t BW : 2; /*!< [17..16] Number of Burst Wait Cycles */ + uint32_t : 14; + } CS0WCR_2_b; + }; + }; + __IM uint32_t RESERVED1; + + union + { + union + { + __IOM uint32_t CS2WCR_0; /*!< (@ 0x00000030) CS2 Space Wait Control Register for Normal Space, + * SRAM with Byte Selection */ + + struct + { + uint32_t : 6; + __IOM uint32_t WM : 1; /*!< [6..6] External Wait Mask Specification */ + __IOM uint32_t WR : 4; /*!< [10..7] Number of Access Waits */ + uint32_t : 9; + __IOM uint32_t BAS : 1; /*!< [20..20] SRAM with Byte Selection Byte Access Select */ + uint32_t : 11; + } CS2WCR_0_b; + }; + + union + { + __IOM uint32_t CS2WCR_1; /*!< (@ 0x00000030) CS2 Space Wait Control Register for SDRAM */ + + struct + { + uint32_t : 7; + __IOM uint32_t A2CL : 2; /*!< [8..7] CAS Latency for Area 2 */ + uint32_t : 23; + } CS2WCR_1_b; + }; + }; + + union + { + union + { + __IOM uint32_t CS3WCR_0; /*!< (@ 0x00000034) CS3 Space Wait Control Register for Normal Space, + * SRAM with Byte Selection */ + + struct + { + uint32_t : 6; + __IOM uint32_t WM : 1; /*!< [6..6] External Wait Mask Specification */ + __IOM uint32_t WR : 4; /*!< [10..7] Number of Access Waits */ + uint32_t : 9; + __IOM uint32_t BAS : 1; /*!< [20..20] SRAM with Byte Selection Byte Access Select */ + uint32_t : 11; + } CS3WCR_0_b; + }; + + union + { + __IOM uint32_t CS3WCR_1; /*!< (@ 0x00000034) CS3 Space Wait Control Register for SDRAM */ + + struct + { + __IOM uint32_t WTRC : 2; /*!< [1..0] Number of Idle States from REF Command/Self-Refresh Release + * to ACTV/REF/MRS Command */ + uint32_t : 1; + __IOM uint32_t TRWL : 2; /*!< [4..3] Number of Auto-Precharge Startup Wait Cycles */ + uint32_t : 2; + __IOM uint32_t A3CL : 2; /*!< [8..7] CAS Latency for Area 3 */ + uint32_t : 1; + __IOM uint32_t WTRCD : 2; /*!< [11..10] Number of Waits between ACTV Command and READ(A)/WRIT(A) + * Command */ + uint32_t : 1; + __IOM uint32_t WTRP : 2; /*!< [14..13] Number of Auto-Precharge Completion Wait States */ + uint32_t : 17; + } CS3WCR_1_b; + }; + }; + __IM uint32_t RESERVED2; + + union + { + __IOM uint32_t CS5WCR; /*!< (@ 0x0000003C) CS5 Space Wait Control Register for Normal Space, + * SRAM with Byte Selection, and MPX-I/O */ + + struct + { + __IOM uint32_t HW : 2; /*!< [1..0] Delay Cycles from RD#, WEn# to Address, CS5# */ + uint32_t : 4; + __IOM uint32_t WM : 1; /*!< [6..6] External Wait Mask Specification */ + __IOM uint32_t WR : 4; /*!< [10..7] Number of Read Access Waits */ + __IOM uint32_t SW : 2; /*!< [12..11] Number of Delay Cycles from Address, CS5# Assertion + * to RD#, WEn# Assertion */ + uint32_t : 3; + __IOM uint32_t WW : 3; /*!< [18..16] Number of Write Access Waits */ + uint32_t : 1; + __IOM uint32_t MPXWSBAS : 1; /*!< [20..20] MPX-I/O Interface Address Cycle Wait and SRAM with + * Byte Selection Byte Access Select */ + __IOM uint32_t SZSEL : 1; /*!< [21..21] MPX-I/O Interface Bus Width Specification */ + uint32_t : 10; + } CS5WCR_b; + }; + __IM uint32_t RESERVED3[3]; + + union + { + __IOM uint32_t SDCR; /*!< (@ 0x0000004C) SDRAM Control Register */ + + struct + { + __IOM uint32_t A3COL : 2; /*!< [1..0] Number of Bits of Column Address for Area 3 */ + uint32_t : 1; + __IOM uint32_t A3ROW : 2; /*!< [4..3] Number of Bits of Row Address for Area 3 */ + uint32_t : 3; + __IOM uint32_t BACTV : 1; /*!< [8..8] Bank Active Mode */ + __IOM uint32_t PDOWN : 1; /*!< [9..9] Power-Down Mode */ + __IOM uint32_t RMODE : 1; /*!< [10..10] Refresh Mode */ + __IOM uint32_t RFSH : 1; /*!< [11..11] Refresh Control */ + uint32_t : 1; + __IOM uint32_t DEEP : 1; /*!< [13..13] Deep Power-Down Mode */ + uint32_t : 2; + __IOM uint32_t A2COL : 2; /*!< [17..16] Number of Bits of Column Address for Area 2 */ + uint32_t : 1; + __IOM uint32_t A2ROW : 2; /*!< [20..19] Number of Bits of Row Address for Area 2 */ + uint32_t : 11; + } SDCR_b; + }; + __IOM uint32_t RTCSR; /*!< (@ 0x00000050) Refresh Timer Control/Status Register */ + __IOM uint32_t RTCNT; /*!< (@ 0x00000054) Refresh Timer Counter */ + __IOM uint32_t RTCOR; /*!< (@ 0x00000058) Refresh Time Constant Register */ + __IM uint32_t RESERVED4; + + union + { + __IOM uint32_t TOSCOR[6]; /*!< (@ 0x00000060) Timeout Cycle Constant Register [0..5] */ + + struct + { + __IOM uint32_t TOCNUM : 16; /*!< [15..0] Timeout Cycle Number */ + uint32_t : 16; + } TOSCOR_b[6]; + }; + __IM uint32_t RESERVED5[2]; + + union + { + __IOM uint32_t TOSTR; /*!< (@ 0x00000080) Timeout Status Register */ + + struct + { + __IOM uint32_t CS0TOSTF : 1; /*!< [0..0] CS0 Space Timeout Status Flag */ + uint32_t : 1; + __IOM uint32_t CS2TOSTF : 1; /*!< [2..2] CS2 Space Timeout Status Flag */ + __IOM uint32_t CS3TOSTF : 1; /*!< [3..3] CS3 Space Timeout Status Flag */ + uint32_t : 1; + __IOM uint32_t CS5TOSTF : 1; /*!< [5..5] CS5 Space Timeout Status Flag */ + uint32_t : 26; + } TOSTR_b; + }; + + union + { + __IOM uint32_t TOENR; /*!< (@ 0x00000084) Timeout Enable Register */ + + struct + { + __IOM uint32_t CS0TOEN : 1; /*!< [0..0] CS0 Space Timeout Detection Enable */ + uint32_t : 1; + __IOM uint32_t CS2TOEN : 1; /*!< [2..2] CS2 Space Timeout Detection Enable */ + __IOM uint32_t CS3TOEN : 1; /*!< [3..3] CS3 Space Timeout Detection Enable */ + uint32_t : 1; + __IOM uint32_t CS5TOEN : 1; /*!< [5..5] CS5 Space Timeout Detection Enable */ + uint32_t : 26; + } TOENR_b; + }; +} R_BSC_Type; /*!< Size = 136 (0x88) */ + +/* =========================================================================================================================== */ +/* ================ R_XSPI0 ================ */ +/* =========================================================================================================================== */ + +/** + * @brief xSPI (R_XSPI0) + */ + +typedef struct /*!< (@ 0x80220000) R_XSPI0 Structure */ +{ + union + { + __IOM uint32_t WRAPCFG; /*!< (@ 0x00000000) xSPI Wrapper Configuration Register */ + + struct + { + uint32_t : 8; + __IOM uint32_t DSSFTCS0 : 5; /*!< [12..8] DS shift for slave0 */ + uint32_t : 11; + __IOM uint32_t DSSFTCS1 : 5; /*!< [28..24] DS shift for slave1 */ + uint32_t : 3; + } WRAPCFG_b; + }; + + union + { + __IOM uint32_t COMCFG; /*!< (@ 0x00000004) xSPI Common Configuration Register */ + + struct + { + uint32_t : 16; + __IOM uint32_t OEASTEX : 1; /*!< [16..16] Output Enable Asserting extension */ + __IOM uint32_t OENEGEX : 1; /*!< [17..17] Output Enable Negating extension */ + uint32_t : 14; + } COMCFG_b; + }; + + union + { + __IOM uint32_t BMCFG; /*!< (@ 0x00000008) xSPI Bridge Map Configuration Register */ + + struct + { + __IOM uint32_t WRMD : 1; /*!< [0..0] AHB Write Response mode */ + uint32_t : 6; + __IOM uint32_t MWRCOMB : 1; /*!< [7..7] Memory Write Combination mode */ + __IOM uint32_t MWRSIZE : 8; /*!< [15..8] Memory Write Size */ + __IOM uint32_t PREEN : 1; /*!< [16..16] Prefetch enable */ + uint32_t : 15; + } BMCFG_b; + }; + __IM uint32_t RESERVED; + __IOM R_XSPI0_CSa_Type CSa[2]; /*!< (@ 0x00000010) xSPI Command Map Configuration Register [0..1] */ + __IM uint32_t RESERVED1[8]; + + union + { + __IOM uint32_t LIOCFGCS[2]; /*!< (@ 0x00000050) xSPI Link I/O Configuration Register CSn */ + + struct + { + __IOM uint32_t PRTMD : 10; /*!< [9..0] Protocol mode */ + __IOM uint32_t LATEMD : 1; /*!< [10..10] Latency mode */ + __IOM uint32_t WRMSKMD : 1; /*!< [11..11] Write mask mode */ + uint32_t : 4; + __IOM uint32_t CSMIN : 4; /*!< [19..16] CS minimum idle term */ + __IOM uint32_t CSASTEX : 1; /*!< [20..20] CS asserting extension */ + __IOM uint32_t CSNEGEX : 1; /*!< [21..21] CS negating extension */ + __IOM uint32_t SDRDRV : 1; /*!< [22..22] SDR driving timing */ + __IOM uint32_t SDRSMPMD : 1; /*!< [23..23] SDR Sampling mode */ + __IOM uint32_t SDRSMPSFT : 4; /*!< [27..24] SDR Sampling window shift */ + __IOM uint32_t DDRSMPEX : 4; /*!< [31..28] DDR sampling window extend */ + } LIOCFGCS_b[2]; + }; + __IM uint32_t RESERVED2[2]; + + union + { + __IOM uint32_t BMCTL0; /*!< (@ 0x00000060) xSPI Bridge Map Control Register 0 */ + + struct + { + __IOM uint32_t CS0ACC : 2; /*!< [1..0] AHB channel to slave0 memory area access enable */ + __IOM uint32_t CS1ACC : 2; /*!< [3..2] AHB channel to slave1 memory area access enable */ + uint32_t : 28; + } BMCTL0_b; + }; + + union + { + __OM uint32_t BMCTL1; /*!< (@ 0x00000064) xSPI Bridge Map Control Register 1 */ + + struct + { + uint32_t : 8; + __OM uint32_t MWRPUSH : 1; /*!< [8..8] Memory Write Data Push */ + uint32_t : 1; + __OM uint32_t PBUFCLR : 1; /*!< [10..10] Prefetch Buffer clear */ + uint32_t : 21; + } BMCTL1_b; + }; + + union + { + __IOM uint32_t CMCTL; /*!< (@ 0x00000068) xSPI Command Map Control Register */ + + struct + { + __IOM uint32_t XIPENCODE : 8; /*!< [7..0] XiP mode enter code */ + __IOM uint32_t XIPEXCODE : 8; /*!< [15..8] XiP mode exit code */ + __IOM uint32_t XIPEN : 1; /*!< [16..16] XiP mode enable */ + uint32_t : 15; + } CMCTL_b; + }; + + union + { + __IOM uint32_t CSSCTL; /*!< (@ 0x0000006C) xSPI CS Size Control Register */ + + struct + { + __IOM uint32_t CS0SIZE : 6; /*!< [5..0] CS0 (slave0) size */ + uint32_t : 2; + __IOM uint32_t CS1SIZE : 6; /*!< [13..8] CS1 (slave1) size */ + uint32_t : 18; + } CSSCTL_b; + }; + + union + { + __IOM uint32_t CDCTL0; /*!< (@ 0x00000070) xSPI Command Manual Control Register 0 */ + + struct + { + __IOM uint32_t TRREQ : 1; /*!< [0..0] Transaction request */ + __IOM uint32_t PERMD : 1; /*!< [1..1] Periodic mode */ + uint32_t : 1; + __IOM uint32_t CSSEL : 1; /*!< [3..3] Chip select */ + __IOM uint32_t TRNUM : 2; /*!< [5..4] Transaction number */ + uint32_t : 10; + __IOM uint32_t PERITV : 5; /*!< [20..16] Periodic transaction interval */ + uint32_t : 3; + __IOM uint32_t PERREP : 4; /*!< [27..24] Periodic transaction repeat */ + uint32_t : 4; + } CDCTL0_b; + }; + + union + { + __IOM uint32_t CDCTL1; /*!< (@ 0x00000074) xSPI Command Manual Control Register 1 */ + + struct + { + __IOM uint32_t PEREXP : 32; /*!< [31..0] Periodic transaction expected value */ + } CDCTL1_b; + }; + + union + { + __IOM uint32_t CDCTL2; /*!< (@ 0x00000078) xSPI Command Manual Control Register 2 */ + + struct + { + __IOM uint32_t PERMSK : 32; /*!< [31..0] Periodic transaction masked value */ + } CDCTL2_b; + }; + __IM uint32_t RESERVED3; + __IOM R_XSPI0_BUF_Type BUF[4]; /*!< (@ 0x00000080) xSPI Command Manual Buf [0..3] */ + __IM uint32_t RESERVED4[16]; + + union + { + __IOM uint32_t LPCTL0; /*!< (@ 0x00000100) xSPI Link Pattern Control Register 0 */ + + struct + { + __IOM uint32_t PATREQ : 1; /*!< [0..0] Pattern request */ + uint32_t : 2; + __IOM uint32_t CSSEL : 1; /*!< [3..3] Chip select */ + __IOM uint32_t XDPIN : 2; /*!< [5..4] XiP Disable pattern pin */ + uint32_t : 10; + __IOM uint32_t XD1LEN : 5; /*!< [20..16] XiP Disable pattern 1st phase length */ + uint32_t : 2; + __IOM uint32_t XD1VAL : 1; /*!< [23..23] XiP Disable pattern 1st phase value */ + __IOM uint32_t XD2LEN : 5; /*!< [28..24] XiP Disable pattern 2nd phase length */ + uint32_t : 2; + __IOM uint32_t XD2VAL : 1; /*!< [31..31] XiP Disable pattern 2nd phase value */ + } LPCTL0_b; + }; + + union + { + __IOM uint32_t LPCTL1; /*!< (@ 0x00000104) xSPI Link Pattern Control Register 1 */ + + struct + { + __IOM uint32_t PATREQ : 2; /*!< [1..0] Pattern request */ + uint32_t : 1; + __IOM uint32_t CSSEL : 1; /*!< [3..3] Chip select */ + __IOM uint32_t RSTREP : 2; /*!< [5..4] Reset pattern repeat */ + uint32_t : 2; + __IOM uint32_t RSTWID : 3; /*!< [10..8] Reset pattern width */ + uint32_t : 1; + __IOM uint32_t RSTSU : 3; /*!< [14..12] Reset pattern data output setup time */ + uint32_t : 17; + } LPCTL1_b; + }; + + union + { + __IOM uint32_t LIOCTL; /*!< (@ 0x00000108) xSPI Link I/O Control Register */ + + struct + { + __IOM uint32_t WPCS0 : 1; /*!< [0..0] WP drive for slave0 */ + __IOM uint32_t WPCS1 : 1; /*!< [1..1] WP drive for slave1 */ + uint32_t : 14; + __IOM uint32_t RSTCS0 : 1; /*!< [16..16] Reset drive for slave0 */ + __IOM uint32_t RSTCS1 : 1; /*!< [17..17] Reset drive for slave1 */ + uint32_t : 14; + } LIOCTL_b; + }; + __IM uint32_t RESERVED5[9]; + __IOM R_XSPI0_CSb_Type CSb[2]; /*!< (@ 0x00000130) xSPI Command Calibration Control register [0..1] */ + __IM uint32_t RESERVED6[4]; + + union + { + __IM uint32_t VERSTT; /*!< (@ 0x00000180) xSPI Version Register */ + + struct + { + __IM uint32_t VER : 32; /*!< [31..0] Version */ + } VERSTT_b; + }; + + union + { + __IM uint32_t COMSTT; /*!< (@ 0x00000184) xSPI Common Status Register */ + + struct + { + __IM uint32_t MEMACC : 1; /*!< [0..0] Memory access ongoing */ + uint32_t : 3; + __IM uint32_t PBUFNE : 1; /*!< [4..4] Prefetch Buffer Not Empty */ + uint32_t : 1; + __IM uint32_t WRBUFNE : 1; /*!< [6..6] Write Buffer Not Empty */ + uint32_t : 9; + __IM uint32_t ECSCS0 : 1; /*!< [16..16] ECS monitor for slave0 */ + __IM uint32_t INTCS0 : 1; /*!< [17..17] INT monitor for slave0 */ + __IM uint32_t RSTOCS0 : 1; /*!< [18..18] RSTO monitor for slave0 */ + uint32_t : 1; + __IM uint32_t ECSCS1 : 1; /*!< [20..20] ECS monitor for slave1 */ + __IM uint32_t INTCS1 : 1; /*!< [21..21] INT monitor for slave1 */ + __IM uint32_t RSTOCS1 : 1; /*!< [22..22] RSTO monitor for slave1 */ + uint32_t : 9; + } COMSTT_b; + }; + + union + { + __IM uint32_t CASTTCS[2]; /*!< (@ 0x00000188) xSPI Calibration Status Register CSn */ + + struct + { + __IM uint32_t CASUC : 32; /*!< [31..0] Calibration Success */ + } CASTTCS_b[2]; + }; + + union + { + __IM uint32_t INTS; /*!< (@ 0x00000190) xSPI Interrupt Status Register */ + + struct + { + __IM uint32_t CMDCMP : 1; /*!< [0..0] Command Completed */ + __IM uint32_t PATCMP : 1; /*!< [1..1] Pattern Completed */ + __IM uint32_t INICMP : 1; /*!< [2..2] Initial Sequence Completed */ + __IM uint32_t PERTO : 1; /*!< [3..3] Periodic transaction timeout */ + __IM uint32_t DSTOCS0 : 1; /*!< [4..4] DS timeout for slave0 */ + __IM uint32_t DSTOCS1 : 1; /*!< [5..5] DS timeout for slave1 */ + uint32_t : 2; + __IM uint32_t ECSCS0 : 1; /*!< [8..8] ECC error detection for slave0 */ + __IM uint32_t ECSCS1 : 1; /*!< [9..9] ECC error detection for slave1 */ + uint32_t : 2; + __IM uint32_t INTCS0 : 1; /*!< [12..12] Interrupt detection for slave0 */ + __IM uint32_t INTCS1 : 1; /*!< [13..13] Interrupt detection for slave1 */ + uint32_t : 2; + __IM uint32_t BRGOF : 1; /*!< [16..16] Bridge Buffer overflow */ + uint32_t : 1; + __IM uint32_t BRGUF : 1; /*!< [18..18] Bridge Buffer underflow */ + uint32_t : 1; + __IM uint32_t BUSERR : 1; /*!< [20..20] AHB bus error */ + uint32_t : 7; + __IM uint32_t CAFAILCS0 : 1; /*!< [28..28] Calibration failed for slave0 */ + __IM uint32_t CAFAILCS1 : 1; /*!< [29..29] Calibration failed for slave1 */ + __IM uint32_t CASUCCS0 : 1; /*!< [30..30] Calibration success for slave0 */ + __IM uint32_t CASUCCS1 : 1; /*!< [31..31] Calibration success for slave1 */ + } INTS_b; + }; + + union + { + __OM uint32_t INTC; /*!< (@ 0x00000194) xSPI Interrupt Clear Register */ + + struct + { + __OM uint32_t CMDCMPC : 1; /*!< [0..0] Command Completed interrupt clear */ + __OM uint32_t PATCMPC : 1; /*!< [1..1] Pattern Completed interrupt clear */ + __OM uint32_t INICMPC : 1; /*!< [2..2] Initial Sequence Completed interrupt clear */ + __OM uint32_t PERTOC : 1; /*!< [3..3] Periodic transaction timeout interrupt clear */ + __OM uint32_t DSTOCS0C : 1; /*!< [4..4] DS timeout for slave0 interrupt clear */ + __OM uint32_t DSTOCS1C : 1; /*!< [5..5] DS timeout for slave1 interrupt clear */ + uint32_t : 2; + __OM uint32_t ECSCS0C : 1; /*!< [8..8] ECC error detection for slave0 interrupt clear */ + __OM uint32_t ECSCS1C : 1; /*!< [9..9] ECC error detection for slave1 interrupt clear */ + uint32_t : 2; + __OM uint32_t INTCS0C : 1; /*!< [12..12] Interrupt detection for slave0 interrupt clear */ + __OM uint32_t INTCS1C : 1; /*!< [13..13] Interrupt detection for slave1 interrupt clear */ + uint32_t : 2; + __OM uint32_t BRGOFC : 1; /*!< [16..16] Bridge Buffer overflow interrupt clear */ + uint32_t : 1; + __OM uint32_t BRGUFC : 1; /*!< [18..18] Bridge Buffer underflow interrupt clear */ + uint32_t : 1; + __OM uint32_t BUSERRC : 1; /*!< [20..20] AHB bus error interrupt clear */ + uint32_t : 7; + __OM uint32_t CAFAILCS0C : 1; /*!< [28..28] Calibration failed for slave0 interrupt clear */ + __OM uint32_t CAFAILCS1C : 1; /*!< [29..29] Calibration failed for slave1 interrupt clear */ + __OM uint32_t CASUCCS0C : 1; /*!< [30..30] Calibration success for slave0 interrupt clear */ + __OM uint32_t CASUCCS1C : 1; /*!< [31..31] Calibration success for slave1 interrupt clear */ + } INTC_b; + }; + + union + { + __IOM uint32_t INTE; /*!< (@ 0x00000198) xSPI Interrupt Enable Register */ + + struct + { + __IOM uint32_t CMDCMPE : 1; /*!< [0..0] Command Completed interrupt enable */ + __IOM uint32_t PATCMPE : 1; /*!< [1..1] Pattern Completed interrupt enable */ + __IOM uint32_t INICMPE : 1; /*!< [2..2] Initial Sequence Completed interrupt enable */ + __IOM uint32_t PERTOE : 1; /*!< [3..3] Periodic transaction timeout interrupt enable */ + __IOM uint32_t DSTOCS0E : 1; /*!< [4..4] DS timeout for slave0 interrupt enable */ + __IOM uint32_t DSTOCS1E : 1; /*!< [5..5] DS timeout for slave1 interrupt enable */ + uint32_t : 2; + __IOM uint32_t ECSCS0E : 1; /*!< [8..8] ECC error detection for slave0 interrupt enable */ + __IOM uint32_t ECSCS1E : 1; /*!< [9..9] ECC error detection for slave1 interrupt enable */ + uint32_t : 2; + __IOM uint32_t INTCS0E : 1; /*!< [12..12] Interrupt detection for slave0 interrupt enable */ + __IOM uint32_t INTCS1E : 1; /*!< [13..13] Interrupt detection for slave1 interrupt enable */ + uint32_t : 2; + __IOM uint32_t BRGOFE : 1; /*!< [16..16] Bridge Buffer overflow interrupt enable */ + uint32_t : 1; + __IOM uint32_t BRGUFE : 1; /*!< [18..18] Bridge Buffer underflow interrupt enable */ + uint32_t : 1; + __IOM uint32_t BUSERRE : 1; /*!< [20..20] AHB bus error interrupt enable */ + uint32_t : 7; + __IOM uint32_t CAFAILCS0E : 1; /*!< [28..28] Calibration failed for slave0 interrupt enable */ + __IOM uint32_t CAFAILCS1E : 1; /*!< [29..29] Calibration failed for slave1 interrupt enable */ + __IOM uint32_t CASUCCS0E : 1; /*!< [30..30] Calibration success for slave0 interrupt enable */ + __IOM uint32_t CASUCCS1E : 1; /*!< [31..31] Calibration success for slave1 interrupt enable */ + } INTE_b; + }; +} R_XSPI0_Type; /*!< Size = 412 (0x19c) */ + +/* =========================================================================================================================== */ +/* ================ R_MBXSEM ================ */ +/* =========================================================================================================================== */ + +/** + * @brief Mailbox and Semaphore (R_MBXSEM) + */ + +typedef struct /*!< (@ 0x80240000) R_MBXSEM Structure */ +{ + union + { + __IOM uint32_t SEM[8]; /*!< (@ 0x00000000) Semaphore Register [0..7] */ + + struct + { + __IOM uint32_t SEM : 1; /*!< [0..0] Semaphore bit */ + uint32_t : 31; + } SEM_b[8]; + }; + + union + { + __IOM uint32_t SEMRCEN; /*!< (@ 0x00000020) Semaphore Read Clear Enable Register */ + + struct + { + __IOM uint32_t SEMRCEN0 : 1; /*!< [0..0] SEMRCEN0 */ + __IOM uint32_t SEMRCEN1 : 1; /*!< [1..1] SEMRCEN1 */ + __IOM uint32_t SEMRCEN2 : 1; /*!< [2..2] SEMRCEN2 */ + __IOM uint32_t SEMRCEN3 : 1; /*!< [3..3] SEMRCEN3 */ + __IOM uint32_t SEMRCEN4 : 1; /*!< [4..4] SEMRCEN4 */ + __IOM uint32_t SEMRCEN5 : 1; /*!< [5..5] SEMRCEN5 */ + __IOM uint32_t SEMRCEN6 : 1; /*!< [6..6] SEMRCEN6 */ + __IOM uint32_t SEMRCEN7 : 1; /*!< [7..7] SEMRCEN7 */ + uint32_t : 24; + } SEMRCEN_b; + }; + __IM uint32_t RESERVED[7]; + + union + { + __IM uint32_t MBXH2C[4]; /*!< (@ 0x00000040) Host to CR52 Mailbox Register [0..3] */ + + struct + { + __IM uint32_t MBX : 32; /*!< [31..0] MBX */ + } MBXH2C_b[4]; + }; + + union + { + __IM uint32_t MBXISETH2C; /*!< (@ 0x00000050) Host to CR52 Mailbox Interrupt Set Register */ + + struct + { + __IM uint32_t MBX_INT0S : 1; /*!< [0..0] Generates or indicates MBX_INT0 interrupt of mailbox + * from external host CPU to internal Cortex-R52. */ + __IM uint32_t MBX_INT1S : 1; /*!< [1..1] Generates or indicates MBX_INT1 interrupt of mailbox + * from external host CPU to internal Cortex-R52. */ + __IM uint32_t MBX_INT2S : 1; /*!< [2..2] Generates or indicates MBX_INT2 interrupt of mailbox + * from external host CPU to internal Cortex-R52. */ + __IM uint32_t MBX_INT3S : 1; /*!< [3..3] Generates or indicates MBX_INT3 interrupt of mailbox + * from external host CPU to internal Cortex-R52. */ + uint32_t : 28; + } MBXISETH2C_b; + }; + + union + { + __IOM uint32_t MBXICLRH2C; /*!< (@ 0x00000054) Host to CR52 Mailbox Interrupt Clear Register */ + + struct + { + __IOM uint32_t MBX_INT0C : 1; /*!< [0..0] Clears or indicates MBX_INT0 interrupt of mailbox from + * external host CPU to internal Cortex-R52. */ + __IOM uint32_t MBX_INT1C : 1; /*!< [1..1] Clears or indicates MBX_INT1 interrupt of mailbox from + * external host CPU to internal Cortex-R52. */ + __IOM uint32_t MBX_INT2C : 1; /*!< [2..2] Clears or indicates MBX_INT2 interrupt of mailbox from + * external host CPU to internal Cortex-R52. */ + __IOM uint32_t MBX_INT3C : 1; /*!< [3..3] Clears or indicates MBX_INT3 interrupt of mailbox from + * external host CPU to internal Cortex-R52. */ + uint32_t : 28; + } MBXICLRH2C_b; + }; + __IM uint32_t RESERVED1[10]; + + union + { + __IOM uint32_t MBXC2H[4]; /*!< (@ 0x00000080) CR52 to Host Mailbox Register [0..3] */ + + struct + { + __IOM uint32_t MBX : 32; /*!< [31..0] MBX */ + } MBXC2H_b[4]; + }; + + union + { + __IOM uint32_t MBXISETC2H; /*!< (@ 0x00000090) CR52 to Host Mailbox Interrupt Set Register */ + + struct + { + __IOM uint32_t MBX_HINT0S : 1; /*!< [0..0] Generates or indicates MBX_HINT0 interrupt of mailbox + * from internal Cortex-R52 to external host CPU. */ + __IOM uint32_t MBX_HINT1S : 1; /*!< [1..1] Generates or indicates MBX_HINT1 interrupt of mailbox + * from internal Cortex-R52 to external host CPU. */ + __IOM uint32_t MBX_HINT2S : 1; /*!< [2..2] Generates or indicates MBX_HINT2 interrupt of mailbox + * from internal Cortex-R52 to external host CPU. */ + __IOM uint32_t MBX_HINT3S : 1; /*!< [3..3] Generates or indicates MBX_HINT3 interrupt of mailbox + * from internal Cortex-R52 to external host CPU. */ + uint32_t : 28; + } MBXISETC2H_b; + }; + + union + { + __IM uint32_t MBXICLRC2H; /*!< (@ 0x00000094) CR52 to Host Mailbox Interrupt Clear Register */ + + struct + { + __IM uint32_t MBX_HINT0C : 1; /*!< [0..0] Clears or indicates MBX_HINT0 interrupt of mailbox from + * internal Cortex-R52 to external host CPU. */ + __IM uint32_t MBX_HINT1C : 1; /*!< [1..1] Clears or indicates MBX_HINT1 interrupt of mailbox from + * internal Cortex-R52 to external host CPU. */ + __IM uint32_t MBX_HINT2C : 1; /*!< [2..2] Clears or indicates MBX_HINT2 interrupt of mailbox from + * internal Cortex-R52 to external host CPU. */ + __IM uint32_t MBX_HINT3C : 1; /*!< [3..3] Clears or indicates MBX_HINT3 interrupt of mailbox from + * internal Cortex-R52 to external host CPU. */ + uint32_t : 28; + } MBXICLRC2H_b; + }; +} R_MBXSEM_Type; /*!< Size = 152 (0x98) */ + +/* =========================================================================================================================== */ +/* ================ R_SHOSTIF ================ */ +/* =========================================================================================================================== */ + +/** + * @brief Serial Host Interface (R_SHOSTIF) + */ + +typedef struct /*!< (@ 0x80241000) R_SHOSTIF Structure */ +{ + union + { + __IOM uint32_t CTRLR0; /*!< (@ 0x00000000) Control Register 0 */ + + struct + { + uint32_t : 8; + __IOM uint32_t SCPH : 1; /*!< [8..8] Serial Clock Phase */ + __IOM uint32_t SCPOL : 1; /*!< [9..9] Serial Clock Polarity */ + uint32_t : 22; + } CTRLR0_b; + }; + __IM uint32_t RESERVED; + + union + { + __IOM uint32_t ENR; /*!< (@ 0x00000008) Enable Register */ + + struct + { + __IOM uint32_t ENABLE : 1; /*!< [0..0] SHOSTIF Enable */ + uint32_t : 31; + } ENR_b; + }; + __IM uint32_t RESERVED1[2]; + + union + { + __IOM uint32_t RXFBTR; /*!< (@ 0x00000014) Receive FIFO Burst Threshold Register */ + + struct + { + __IOM uint32_t RXFBTL : 6; /*!< [5..0] Receive FIFO Burst Threshold */ + uint32_t : 26; + } RXFBTR_b; + }; + + union + { + __IOM uint32_t TXFTLR; /*!< (@ 0x00000018) Transmit FIFO Threshold Level Register */ + + struct + { + __IOM uint32_t TFT : 6; /*!< [5..0] Transmit FIFO Threshold */ + uint32_t : 26; + } TXFTLR_b; + }; + + union + { + __IOM uint32_t RXFTLR; /*!< (@ 0x0000001C) Receive FIFO Threshold Level Register */ + + struct + { + __IOM uint32_t RFT : 6; /*!< [5..0] Receive FIFO Threshold */ + uint32_t : 26; + } RXFTLR_b; + }; + __IM uint32_t RESERVED2[2]; + + union + { + __IM uint32_t SR; /*!< (@ 0x00000028) Status Register */ + + struct + { + __IM uint32_t BUSY : 1; /*!< [0..0] Busy Flag */ + uint32_t : 31; + } SR_b; + }; + + union + { + __IOM uint32_t IMR; /*!< (@ 0x0000002C) Interrupt Mask Register */ + + struct + { + __IOM uint32_t TXEIM : 1; /*!< [0..0] Transmit FIFO Empty Interrupt Mask */ + uint32_t : 2; + __IOM uint32_t RXOIM : 1; /*!< [3..3] Receive FIFO Overflow Interrupt Mask */ + __IOM uint32_t RXFIM : 1; /*!< [4..4] Receive FIFO Full Interrupt Mask */ + uint32_t : 2; + __IOM uint32_t TXUIM : 1; /*!< [7..7] Transmit FIFO Underflow Mask */ + __IOM uint32_t AHBEM : 1; /*!< [8..8] AHB Error Interrupt Mask */ + __IOM uint32_t SPIMEM : 1; /*!< [9..9] SPI Master Error Interrupt Mask */ + uint32_t : 22; + } IMR_b; + }; + + union + { + __IM uint32_t ISR; /*!< (@ 0x00000030) Interrupt Status Register */ + + struct + { + __IM uint32_t TXEIS : 1; /*!< [0..0] Transmit FIFO Empty Interrupt Status */ + uint32_t : 2; + __IM uint32_t RXOIS : 1; /*!< [3..3] Receive FIFO Overflow Interrupt Status */ + __IM uint32_t RXFIS : 1; /*!< [4..4] Receive FIFO Full Interrupt Status */ + uint32_t : 2; + __IM uint32_t TXUIS : 1; /*!< [7..7] Transmit FIFO Underflow Status */ + __IM uint32_t AHBES : 1; /*!< [8..8] AHB Error Interrupt Status */ + __IM uint32_t SPIMES : 1; /*!< [9..9] SPI Master Error Interrupt Status */ + uint32_t : 22; + } ISR_b; + }; + + union + { + __IM uint32_t RISR; /*!< (@ 0x00000034) Raw Interrupt Status Register */ + + struct + { + __IM uint32_t TXEIR : 1; /*!< [0..0] Transmit FIFO Empty Raw Interrupt Status */ + uint32_t : 2; + __IM uint32_t RXOIR : 1; /*!< [3..3] Receive FIFO Overflow Raw Interrupt Status */ + __IM uint32_t RXFIR : 1; /*!< [4..4] Receive FIFO Full Raw Interrupt Status */ + uint32_t : 2; + __IM uint32_t TXUIR : 1; /*!< [7..7] Transmit FIFO Underflow Raw Interrupt Status */ + __IM uint32_t AHBER : 1; /*!< [8..8] AHB Error Raw Interrupt Status */ + __IM uint32_t SPIMER : 1; /*!< [9..9] SPI Master Error Raw Interrupt Status */ + uint32_t : 22; + } RISR_b; + }; + + union + { + __IM uint32_t TXUICR; /*!< (@ 0x00000038) Transmit FIFO Underflow Interrupt Clear Register */ + + struct + { + __IM uint32_t TXUICR : 1; /*!< [0..0] Clear Transmit FIFO Underflow Interrupt */ + uint32_t : 31; + } TXUICR_b; + }; + + union + { + __IM uint32_t RXOICR; /*!< (@ 0x0000003C) Receive FIFO Overflow Interrupt Clear Register */ + + struct + { + __IM uint32_t RXOICR : 1; /*!< [0..0] Clear Receive FIFO Overflow Interrupt */ + uint32_t : 31; + } RXOICR_b; + }; + + union + { + __IM uint32_t SPIMECR; /*!< (@ 0x00000040) SPI Master Interrupt Clear Register */ + + struct + { + __IM uint32_t SPIMECR : 1; /*!< [0..0] Clear SPI Master Error interrupt */ + uint32_t : 31; + } SPIMECR_b; + }; + + union + { + __IM uint32_t AHBECR; /*!< (@ 0x00000044) AHB Error Clear Register */ + + struct + { + __IM uint32_t AHBECR : 1; /*!< [0..0] Clear AHB Error Interrupt */ + uint32_t : 31; + } AHBECR_b; + }; + + union + { + __IM uint32_t ICR; /*!< (@ 0x00000048) Interrupt Clear Register */ + + struct + { + __IM uint32_t ICR : 1; /*!< [0..0] Clear Interrupts */ + uint32_t : 31; + } ICR_b; + }; +} R_SHOSTIF_Type; /*!< Size = 76 (0x4c) */ + +/* =========================================================================================================================== */ +/* ================ R_PHOSTIF ================ */ +/* =========================================================================================================================== */ + +/** + * @brief Parallel Host Interface (R_PHOSTIF) + */ + +typedef struct /*!< (@ 0x80242000) R_PHOSTIF Structure */ +{ + union + { + __IOM uint16_t HIFBCC; /*!< (@ 0x00000000) HOSTIF Bus Control Register */ + + struct + { + __IOM uint16_t RBUFON0 : 1; /*!< [0..0] RBUFON0 */ + __IOM uint16_t RBUFON1 : 1; /*!< [1..1] RBUFON1 */ + __IOM uint16_t RBUFON2 : 1; /*!< [2..2] RBUFON2 */ + __IOM uint16_t RBUFON3 : 1; /*!< [3..3] RBUFON3 */ + __IOM uint16_t RBUFON4 : 1; /*!< [4..4] RBUFON4 */ + __IOM uint16_t RBUFON5 : 1; /*!< [5..5] RBUFON5 */ + uint16_t : 2; + __IOM uint16_t RBUFONX : 1; /*!< [8..8] RBUFONX */ + uint16_t : 3; + __IOM uint16_t BSTON : 1; /*!< [12..12] BSTON */ + __IOM uint16_t WRPON : 1; /*!< [13..13] WRPON */ + uint16_t : 2; + } HIFBCC_b; + }; + __IM uint16_t RESERVED; + + union + { + __IOM uint16_t HIFBTC; /*!< (@ 0x00000004) HOSTIF Timing Control Register */ + + struct + { + __IOM uint16_t WRSTD : 3; /*!< [2..0] Specifies the timing for detecting the start of write + * operation by the HWRSTB# signal. */ + uint16_t : 1; + __IOM uint16_t RDSTD : 2; /*!< [5..4] Specifies the timing for detecting the start of read + * operation by the HRD# signal. */ + uint16_t : 2; + __IOM uint16_t PASTD : 3; /*!< [10..8] PASTD */ + uint16_t : 1; + __IOM uint16_t RDDTS : 2; /*!< [13..12] RDDTS */ + uint16_t : 2; + } HIFBTC_b; + }; + __IM uint16_t RESERVED1; + + union + { + __IOM uint16_t HIFPRC; /*!< (@ 0x00000008) HOSTIF Page ROM Control Register */ + + struct + { + __IOM uint16_t PAGEON0 : 1; /*!< [0..0] PAGEON0 */ + __IOM uint16_t PAGEON1 : 1; /*!< [1..1] PAGEON1 */ + __IOM uint16_t PAGEON2 : 1; /*!< [2..2] PAGEON2 */ + __IOM uint16_t PAGEON3 : 1; /*!< [3..3] PAGEON3 */ + __IOM uint16_t PAGEON4 : 1; /*!< [4..4] PAGEON4 */ + __IOM uint16_t PAGEON5 : 1; /*!< [5..5] PAGEON5 */ + uint16_t : 2; + __IOM uint16_t PAGEONX : 1; /*!< [8..8] PAGEONX */ + uint16_t : 3; + __IOM uint16_t PAGESZ : 1; /*!< [12..12] PAGESZ */ + uint16_t : 3; + } HIFPRC_b; + }; + __IM uint16_t RESERVED2; + + union + { + __IOM uint16_t HIFIRC; /*!< (@ 0x0000000C) HOSTIF Interrupt Request Control Register */ + + struct + { + __IOM uint16_t ERRRSP : 1; /*!< [0..0] This bit is set to 1 on reception of an error response + * from internal slave modules. */ + uint16_t : 15; + } HIFIRC_b; + }; + __IM uint16_t RESERVED3; + + union + { + __IM uint32_t HIFECR0; /*!< (@ 0x00000010) HOSTIF Error Source Register 0 */ + + struct + { + __IM uint32_t ERRADDR : 32; /*!< [31..0] ERRADDR */ + } HIFECR0_b; + }; + + union + { + __IM uint16_t HIFECR1; /*!< (@ 0x00000014) HOSTIF Error Source Register 1 */ + + struct + { + __IM uint16_t ERRSZ : 3; /*!< [2..0] ERRSZ */ + __IM uint16_t ERRWR : 1; /*!< [3..3] ERRWR */ + uint16_t : 12; + } HIFECR1_b; + }; + __IM uint16_t RESERVED4; + __IM uint32_t RESERVED5[2]; + + union + { + __IOM uint16_t HIFMON1; /*!< (@ 0x00000020) HOSTIF Monitor Register 1 */ + + struct + { + __IOM uint16_t HIFRDY : 1; /*!< [0..0] HIFRDY */ + __IM uint16_t BUSSEL : 1; /*!< [1..1] BUSSEL */ + uint16_t : 1; + __IM uint16_t HIFSYNC : 1; /*!< [3..3] HIFSYNC */ + uint16_t : 12; + } HIFMON1_b; + }; + __IM uint16_t RESERVED6; + + union + { + __IM uint16_t HIFMON2; /*!< (@ 0x00000024) HOSTIF Monitor Register 2 */ + + struct + { + __IM uint16_t HIFBCC : 1; /*!< [0..0] HIFBCC */ + __IM uint16_t HIFBTC : 1; /*!< [1..1] HIFBTC */ + __IM uint16_t HIFPRC : 1; /*!< [2..2] HIFPRC */ + __IM uint16_t HIFIRC : 1; /*!< [3..3] HIFIRC */ + __IM uint16_t HIFXAL : 1; /*!< [4..4] HIFXAL */ + __IM uint16_t HIFXAH : 1; /*!< [5..5] HIFXAH */ + uint16_t : 10; + } HIFMON2_b; + }; + __IM uint16_t RESERVED7; + + union + { + __IM uint16_t HIFMON3; /*!< (@ 0x00000028) HOSTIF Monitor Register 3 */ + + struct + { + __IM uint16_t HIFEXT0 : 1; /*!< [0..0] HIFEXT0 */ + __IM uint16_t HIFEXT1 : 1; /*!< [1..1] HIFEXT1 */ + uint16_t : 14; + } HIFMON3_b; + }; + __IM uint16_t RESERVED8; + __IM uint32_t RESERVED9; + + union + { + __IOM uint16_t HIFXAL; /*!< (@ 0x00000030) HOSTIF Specified Area Lower-limit Register */ + + struct + { + __IOM uint16_t XADDRL : 9; /*!< [8..0] Specifies the lower-limit address of the specified area + * to be set in the external bus address space. */ + uint16_t : 7; + } HIFXAL_b; + }; + __IM uint16_t RESERVED10; + + union + { + __IOM uint16_t HIFXAH; /*!< (@ 0x00000034) HOSTIF Specified Area Upper-limit Register */ + + struct + { + __IOM uint16_t XADDRH : 9; /*!< [8..0] Specifies the upper-limit address of the specified area + * to be set in the external bus address space. */ + uint16_t : 7; + } HIFXAH_b; + }; + __IM uint16_t RESERVED11; + __IM uint32_t RESERVED12[18]; + + union + { + __IOM uint16_t HIFEXT0; /*!< (@ 0x00000080) HOSTIF Synchronous Burst Transfer Control Register + * 0 */ + + struct + { + __IOM uint16_t KESSBI : 1; /*!< [0..0] KESSBI */ + uint16_t : 1; + __IOM uint16_t KESDTI : 1; /*!< [2..2] KESDTI */ + __IOM uint16_t KESAVI : 1; /*!< [3..3] KESAVI */ + __IOM uint16_t KESDTO : 1; /*!< [4..4] KESDTO */ + __IOM uint16_t KESWTO : 1; /*!< [5..5] KESWTO */ + uint16_t : 3; + __IOM uint16_t CNDWEO : 1; /*!< [9..9] CNDWEO */ + uint16_t : 5; + __IOM uint16_t MODTRN : 1; /*!< [15..15] MODTRN */ + } HIFEXT0_b; + }; + __IM uint16_t RESERVED13; + + union + { + __IOM uint16_t HIFEXT1; /*!< (@ 0x00000084) HOSTIF Synchronous Burst Transfer Control Register + * 1 */ + + struct + { + __IOM uint16_t DLYWA : 4; /*!< [3..0] Minimum time from the last input of the Low level on + * the HBS# pin to the point where write data is received. + * (twc)DLYWA[3:0]CNDWEO = 0CNDWEO = 0HWRSTB# = 0HWRSTB# = + * 1HWRSTB# = 0HWRSTB# = 10x034450x134450x234450x344450x455550x566660x677770 + * 788880x899990x9101010100xA111111110xB121212120xC131313130xD141414140xE151 + * 15150xF16161616 */ + uint16_t : 4; + __IOM uint16_t DLYRA : 4; /*!< [11..8] Minimum time from the last input of the Low level on + * the HBS# pin to the point where read data can be acquired. + * (trc)DLYRA[3:0]CNDWEO = 0CNDWEO = 10x0450x1450x2550x3660x4770x5880x6990x7 + * 0100x811110x912120xA13130xB14140xC15150xD16160xE17170xF1818 */ + uint16_t : 4; + } HIFEXT1_b; + }; + __IM uint16_t RESERVED14; +} R_PHOSTIF_Type; /*!< Size = 136 (0x88) */ + +/* =========================================================================================================================== */ +/* ================ R_SYSC_NS ================ */ +/* =========================================================================================================================== */ + +/** + * @brief System Control for Non-safety region (R_SYSC_NS) + */ + +typedef struct /*!< (@ 0x80280000) R_SYSC_NS Structure */ +{ + union + { + __IOM uint32_t SCKCR; /*!< (@ 0x00000000) System Clock Control Register */ + + struct + { + __IOM uint32_t FSELXSPI0 : 3; /*!< [2..0] Set the frequency of the clock provided to xSPI Unit + * 0 in combination with bit 6 (DIVSELXSPI0). The combination + * is shown below. */ + uint32_t : 3; + __IOM uint32_t DIVSELXSPI0 : 1; /*!< [6..6] Select the base clock to generate serial clock for xSPI + * Unit 0 */ + uint32_t : 1; + __IOM uint32_t FSELXSPI1 : 3; /*!< [10..8] Set the frequency of the clock provided to xSPI Unit + * 1 in combination with bit 14 (DIVSELXSPI1). */ + uint32_t : 3; + __IOM uint32_t DIVSELXSPI1 : 1; /*!< [14..14] Select the base clock to generate serial clock for + * xSPI Unit 1 */ + uint32_t : 1; + __IOM uint32_t CKIO : 3; /*!< [18..16] Set the frequency of the external bus clock (CKIO) + * and the clock supplied to BSC in combination with the DIVSELSUB + * in the SCKCR2 register. The combination is shown below. */ + uint32_t : 1; + __IOM uint32_t FSELCANFD : 1; /*!< [20..20] Select the frequency of the clock supplied to CANFD */ + __IOM uint32_t PHYSEL : 1; /*!< [21..21] Select the Ethernet PHY reference clock output (ETHn_REFCLK, + * n = 0 to 2) */ + __IOM uint32_t CLMASEL : 1; /*!< [22..22] Select alternative clock when main clock abnormal oscillation + * is detected in CLMA3 */ + uint32_t : 1; + __IOM uint32_t SPI0ASYNCSEL : 1; /*!< [24..24] Select clock frequency when asynchronous serial clock + * is selected in SPI0 */ + __IOM uint32_t SPI1ASYNCSEL : 1; /*!< [25..25] Select clock frequency when asynchronous serial clock + * is selected in SPI1 */ + __IOM uint32_t SPI2ASYNCSEL : 1; /*!< [26..26] Select clock frequency when asynchronous serial clock + * is selected in SPI2 */ + __IOM uint32_t SCI0ASYNCSEL : 1; /*!< [27..27] Select clock frequency when asynchronous serial clock + * is selected in SCI0 */ + __IOM uint32_t SCI1ASYNCSEL : 1; /*!< [28..28] Select clock frequency when asynchronous serial clock + * is selected in SCI1 */ + __IOM uint32_t SCI2ASYNCSEL : 1; /*!< [29..29] Select clock frequency when asynchronous serial clock + * is selected in SCI2 */ + __IOM uint32_t SCI3ASYNCSEL : 1; /*!< [30..30] Select clock frequency when asynchronous serial clock + * is selected in SCI3 */ + __IOM uint32_t SCI4ASYNCSEL : 1; /*!< [31..31] Select clock frequency when asynchronous serial clock + * is selected in SCI4 */ + } SCKCR_b; + }; + __IM uint32_t RESERVED[127]; + + union + { + __IOM uint32_t RSTSR0; /*!< (@ 0x00000200) Reset Status Register 0 */ + + struct + { + uint32_t : 1; + __IOM uint32_t TRF : 1; /*!< [1..1] RES# Pin Reset Detect Flag */ + __IOM uint32_t ERRF : 1; /*!< [2..2] Error Reset Detect Flag */ + __IOM uint32_t SWRSF : 1; /*!< [3..3] System Software Reset Detect Flag */ + __IOM uint32_t SWR0F : 1; /*!< [4..4] CPU0 Software Reset Detect Flag */ + uint32_t : 27; + } RSTSR0_b; + }; + __IM uint32_t RESERVED1[15]; + + union + { + __IOM uint32_t MRCTLA; /*!< (@ 0x00000240) Module Reset Control Register A */ + + struct + { + uint32_t : 4; + __IOM uint32_t MRCTLA04 : 1; /*!< [4..4] xSPI Unit 0 Reset Control */ + __IOM uint32_t MRCTLA05 : 1; /*!< [5..5] xSPI Unit 1 Reset Control */ + uint32_t : 26; + } MRCTLA_b; + }; + __IM uint32_t RESERVED2[3]; + + union + { + __IOM uint32_t MRCTLE; /*!< (@ 0x00000250) Module Reset Control Register E */ + + struct + { + __IOM uint32_t MRCTLE00 : 1; /*!< [0..0] GMAC (PCLKH clock domain) Reset Control */ + __IOM uint32_t MRCTLE01 : 1; /*!< [1..1] GMAC (PCLKM clock domain) Reset Control */ + __IOM uint32_t MRCTLE02 : 1; /*!< [2..2] ETHSW Reset Control */ + __IOM uint32_t MRCTLE03 : 1; /*!< [3..3] ESC (Bus clock domain) Reset Control */ + __IOM uint32_t MRCTLE04 : 1; /*!< [4..4] ESC (IP clock domain) Reset Control */ + __IOM uint32_t MRCTLE05 : 1; /*!< [5..5] Ethernet Subsystem Register Reset Control */ + __IOM uint32_t MRCTLE06 : 1; /*!< [6..6] MII Converter Reset Control */ + uint32_t : 25; + } MRCTLE_b; + }; + __IM uint32_t RESERVED3[43]; + + union + { + __IOM uint32_t MSTPCRA; /*!< (@ 0x00000300) Module Stop Control Register A */ + + struct + { + __IOM uint32_t MSTPCRA00 : 1; /*!< [0..0] BSC Module Stop */ + uint32_t : 3; + __IOM uint32_t MSTPCRA04 : 1; /*!< [4..4] xSPI Unit 0 Module Stop */ + __IOM uint32_t MSTPCRA05 : 1; /*!< [5..5] xSPI Unit 1 Module Stop */ + uint32_t : 2; + __IOM uint32_t MSTPCRA08 : 1; /*!< [8..8] SCI Unit 0 Module Stop */ + __IOM uint32_t MSTPCRA09 : 1; /*!< [9..9] SCI Unit 1 Module Stop */ + __IOM uint32_t MSTPCRA10 : 1; /*!< [10..10] SCI Unit 2 Module Stop */ + __IOM uint32_t MSTPCRA11 : 1; /*!< [11..11] SCI Unit 3 Module Stop */ + __IOM uint32_t MSTPCRA12 : 1; /*!< [12..12] SCI Unit 4 Module Stop */ + uint32_t : 19; + } MSTPCRA_b; + }; + + union + { + __IOM uint32_t MSTPCRB; /*!< (@ 0x00000304) Module Stop Control Register B */ + + struct + { + __IOM uint32_t MSTPCRB00 : 1; /*!< [0..0] IIC Unit 0 Module Stop */ + __IOM uint32_t MSTPCRB01 : 1; /*!< [1..1] IIC Unit 1 Module Stop */ + uint32_t : 2; + __IOM uint32_t MSTPCRB04 : 1; /*!< [4..4] SPI Unit 0 Module Stop */ + __IOM uint32_t MSTPCRB05 : 1; /*!< [5..5] SPI Unit 1 Module Stop */ + __IOM uint32_t MSTPCRB06 : 1; /*!< [6..6] SPI Unit 2 Module Stop */ + uint32_t : 25; + } MSTPCRB_b; + }; + + union + { + __IOM uint32_t MSTPCRC; /*!< (@ 0x00000308) Module Stop Control Register C */ + + struct + { + __IOM uint32_t MSTPCRC00 : 1; /*!< [0..0] MTU3 Module Stop */ + __IOM uint32_t MSTPCRC01 : 1; /*!< [1..1] GPT Unit 0 Module Stop */ + __IOM uint32_t MSTPCRC02 : 1; /*!< [2..2] GPT Unit 1 Module Stop */ + uint32_t : 2; + __IOM uint32_t MSTPCRC05 : 1; /*!< [5..5] TFU Module Stop */ + __IOM uint32_t MSTPCRC06 : 1; /*!< [6..6] ADC12 Unit 0 Module Stop */ + __IOM uint32_t MSTPCRC07 : 1; /*!< [7..7] ADC12 Unit 1 Module Stop */ + uint32_t : 24; + } MSTPCRC_b; + }; + + union + { + __IOM uint32_t MSTPCRD; /*!< (@ 0x0000030C) Module Stop Control Register D */ + + struct + { + __IOM uint32_t MSTPCRD00 : 1; /*!< [0..0] DSMIF Unit 0 Module Stop */ + __IOM uint32_t MSTPCRD01 : 1; /*!< [1..1] DSMIF Unit 1 Module Stop */ + __IOM uint32_t MSTPCRD02 : 1; /*!< [2..2] CMT Unit 0 Module Stop */ + __IOM uint32_t MSTPCRD03 : 1; /*!< [3..3] CMT Unit 1 Module Stop */ + __IOM uint32_t MSTPCRD04 : 1; /*!< [4..4] CMT Unit 2 Module Stop */ + __IOM uint32_t MSTPCRD05 : 1; /*!< [5..5] CMTW Unit 0 Module Stop */ + __IOM uint32_t MSTPCRD06 : 1; /*!< [6..6] CMTW Unit 1 Module Stop */ + __IOM uint32_t MSTPCRD07 : 1; /*!< [7..7] TSU Module Stop */ + __IOM uint32_t MSTPCRD08 : 1; /*!< [8..8] DOC Module Stop */ + __IOM uint32_t MSTPCRD09 : 1; /*!< [9..9] CRC Unit 0 Module Stop */ + __IOM uint32_t MSTPCRD10 : 1; /*!< [10..10] CANFD Module Stop */ + __IOM uint32_t MSTPCRD11 : 1; /*!< [11..11] CKIO Module Stop */ + uint32_t : 20; + } MSTPCRD_b; + }; + + union + { + __IOM uint32_t MSTPCRE; /*!< (@ 0x00000310) Module Stop Control Register E */ + + struct + { + __IOM uint32_t MSTPCRE00 : 1; /*!< [0..0] GMAC Module Stop */ + __IOM uint32_t MSTPCRE01 : 1; /*!< [1..1] ETHSW Module Stop */ + __IOM uint32_t MSTPCRE02 : 1; /*!< [2..2] ESC Module Stop */ + __IOM uint32_t MSTPCRE03 : 1; /*!< [3..3] Ethernet Subsystem Register Module Stop */ + uint32_t : 4; + __IOM uint32_t MSTPCRE08 : 1; /*!< [8..8] USB Module Stop */ + uint32_t : 23; + } MSTPCRE_b; + }; + __IM uint32_t RESERVED4[891]; + + union + { + __IM uint32_t MD_MON; /*!< (@ 0x00001100) Operating Mode Monitor Register */ + + struct + { + __IM uint32_t MDDMON : 1; /*!< [0..0] MDD status flag */ + uint32_t : 7; + __IM uint32_t MDP : 1; /*!< [8..8] Package type */ + uint32_t : 3; + __IM uint32_t MD0MON : 1; /*!< [12..12] MD0 pin status flag */ + __IM uint32_t MD1MON : 1; /*!< [13..13] MD1 pin status flag */ + __IM uint32_t MD2MON : 1; /*!< [14..14] MD2 pin status flag */ + uint32_t : 1; + __IM uint32_t MDV0MON : 1; /*!< [16..16] MDV0 status flag (ETH0 domain) */ + __IM uint32_t MDV1MON : 1; /*!< [17..17] MDV1 status flag (ETH1 domain) */ + __IM uint32_t MDV2MON : 1; /*!< [18..18] MDV2 status flag (ETH2 domain) */ + __IM uint32_t MDV3MON : 1; /*!< [19..19] MDV3 status flag (xSPI0 domain) */ + __IM uint32_t MDV4MON : 1; /*!< [20..20] MDV4 status flag (xSPI1 domain) */ + uint32_t : 11; + } MD_MON_b; + }; +} R_SYSC_NS_Type; /*!< Size = 4356 (0x1104) */ + +/* =========================================================================================================================== */ +/* ================ R_ELO ================ */ +/* =========================================================================================================================== */ + +/** + * @brief Evnet Link Option Setting (R_ELO) + */ + +typedef struct /*!< (@ 0x80281200) R_ELO Structure */ +{ + union + { + __IOM uint32_t ELOPA; /*!< (@ 0x00000000) Event Link Option Setting Register A */ + + struct + { + __IOM uint32_t MTU0MD : 2; /*!< [1..0] MTU0 Operation Select */ + uint32_t : 4; + __IOM uint32_t MTU3MD : 2; /*!< [7..6] MTU3 Operation Select */ + uint32_t : 24; + } ELOPA_b; + }; + + union + { + __IOM uint32_t ELOPB; /*!< (@ 0x00000004) Event Link Option Setting Register B */ + + struct + { + __IOM uint32_t MTU4MD : 2; /*!< [1..0] MTU4 Operation Select */ + uint32_t : 30; + } ELOPB_b; + }; +} R_ELO_Type; /*!< Size = 8 (0x8) */ + +/* =========================================================================================================================== */ +/* ================ R_RWP_NS ================ */ +/* =========================================================================================================================== */ + +/** + * @brief Register Write Protection for Non-safety Area (R_RWP_NS) + */ + +typedef struct /*!< (@ 0x80281A10) R_RWP_NS Structure */ +{ + union + { + __IOM uint32_t PRCRN; /*!< (@ 0x00000000) Non_Safety Area Protect Register */ + + struct + { + __IOM uint32_t PRC0 : 1; /*!< [0..0] Protect 0 */ + __IOM uint32_t PRC1 : 1; /*!< [1..1] Protect 1 */ + __IOM uint32_t PRC2 : 1; /*!< [2..2] Protect 2 */ + uint32_t : 5; + __OM uint32_t PRKEY : 8; /*!< [15..8] PRC Key Code */ + uint32_t : 16; + } PRCRN_b; + }; +} R_RWP_NS_Type; /*!< Size = 4 (0x4) */ + +/* =========================================================================================================================== */ +/* ================ R_RTC ================ */ +/* =========================================================================================================================== */ + +/** + * @brief Real Time Clock (R_RTC) + */ + +typedef struct /*!< (@ 0x81009000) R_RTC Structure */ +{ + union + { + __IOM uint32_t RTCA0CTL0; /*!< (@ 0x00000000) RTC Control Register 0 */ + + struct + { + uint32_t : 4; + __IOM uint32_t RTCA0SLSB : 1; /*!< [4..4] RTCA0SCMP enable/disable setting */ + __IOM uint32_t RTCA0AMPM : 1; /*!< [5..5] RTCA0HOUR, RTCA0ALH display format selection bit */ + __IM uint32_t RTCA0CEST : 1; /*!< [6..6] RTC Controller Enable Status */ + __IOM uint32_t RTCA0CE : 1; /*!< [7..7] RTC Controller Enable Bit */ + uint32_t : 24; + } RTCA0CTL0_b; + }; + + union + { + __IOM uint32_t RTCA0CTL1; /*!< (@ 0x00000004) RTC Control Register 1 */ + + struct + { + __IOM uint32_t RTCA0CT : 3; /*!< [2..0] Fixed interval interrupt (RTC_PRD) output setting bit */ + __IOM uint32_t RTCA01SE : 1; /*!< [3..3] 1 second interrupt (RTC_1S) output enable bit */ + __IOM uint32_t RTCA0ALME : 1; /*!< [4..4] Alarm interrupt (RTC_ALM) output enable bit */ + __IOM uint32_t RTCA01HZE : 1; /*!< [5..5] This bit enables/disables 1 Hz pulse output (RTCAT1HZ). */ + uint32_t : 26; + } RTCA0CTL1_b; + }; + + union + { + __IOM uint32_t RTCA0CTL2; /*!< (@ 0x00000008) RTC Control Register 2 */ + + struct + { + __IOM uint32_t RTCA0WAIT : 1; /*!< [0..0] RTC Controller Counter Wait Control */ + __IM uint32_t RTCA0WST : 1; /*!< [1..1] RTC Controller Counter Wait Status */ + __IOM uint32_t RTCA0RSUB : 1; /*!< [2..2] RTCA0SUBC Data Transfer Control */ + __IM uint32_t RTCA0RSST : 1; /*!< [3..3] RTCA0SRBU Transfer Status */ + __IM uint32_t RTCA0WSST : 1; /*!< [4..4] RTCA0SCMP Write Status */ + uint32_t : 27; + } RTCA0CTL2_b; + }; + + union + { + __IM uint32_t RTCA0SUBC; /*!< (@ 0x0000000C) RTC Sub Count Register */ + + struct + { + __IM uint32_t RTCA0SUBC : 22; /*!< [21..0] Register that counts the 1 second reference time */ + uint32_t : 10; + } RTCA0SUBC_b; + }; + + union + { + __IM uint32_t RTCA0SRBU; /*!< (@ 0x00000010) RTC Sub Count Register Read Buffer */ + + struct + { + __IM uint32_t RTCA0SRBU : 22; /*!< [21..0] Read buffer register of RTCA0SUBC */ + uint32_t : 10; + } RTCA0SRBU_b; + }; + + union + { + __IOM uint32_t RTCA0SEC; /*!< (@ 0x00000014) RTC Sec Count Buffer Register */ + + struct + { + __IOM uint32_t RTCA0SEC : 7; /*!< [6..0] Buffer register to read/write RTC Second Count register + * (RTCA0SECC). */ + uint32_t : 25; + } RTCA0SEC_b; + }; + + union + { + __IOM uint32_t RTCA0MIN; /*!< (@ 0x00000018) RTC Min Count Buffer Register */ + + struct + { + __IOM uint32_t RTCA0MIN : 7; /*!< [6..0] Buffer register to read/write RTC Minute Count register + * (RTCA0MINC). */ + uint32_t : 25; + } RTCA0MIN_b; + }; + + union + { + __IOM uint32_t RTCA0HOUR; /*!< (@ 0x0000001C) RTC Hour Count Buffer Register */ + + struct + { + __IOM uint32_t RTCA0HOUR : 6; /*!< [5..0] Buffer register to read/write RTC Hour Count register + * (RTCA0HOURC). */ + uint32_t : 26; + } RTCA0HOUR_b; + }; + + union + { + __IOM uint32_t RTCA0WEEK; /*!< (@ 0x00000020) RTC Week Count Buffer Register */ + + struct + { + __IOM uint32_t RTCA0WEEK : 3; /*!< [2..0] Buffer register to read/write RTC Week Count register + * (RTCA0WEEKC). */ + uint32_t : 29; + } RTCA0WEEK_b; + }; + + union + { + __IOM uint32_t RTCA0DAY; /*!< (@ 0x00000024) RTC Day Count Buffer Register */ + + struct + { + __IOM uint32_t RTCA0DAY : 6; /*!< [5..0] Buffer register to read/write RTC Day Count register + * (RTCA0DAYC). */ + uint32_t : 26; + } RTCA0DAY_b; + }; + + union + { + __IOM uint32_t RTCA0MONTH; /*!< (@ 0x00000028) RTC Month Count Buffer Register */ + + struct + { + __IOM uint32_t RTCA0MONTH : 5; /*!< [4..0] Buffer register to read/write RTC Month Count register + * (RTCA0MONC). */ + uint32_t : 27; + } RTCA0MONTH_b; + }; + + union + { + __IOM uint32_t RTCA0YEAR; /*!< (@ 0x0000002C) RTC Year Count Buffer Register */ + + struct + { + __IOM uint32_t RTCA0YEAR : 8; /*!< [7..0] Buffer register to read/write RTC Year Count register + * (RTCA0YEARC). */ + uint32_t : 24; + } RTCA0YEAR_b; + }; + + union + { + __IOM uint32_t RTCA0TIME; /*!< (@ 0x00000030) RTC Time Set Register */ + + struct + { + __IOM uint32_t RTCA0SEC : 8; /*!< [7..0] See RTCA0SEC register */ + __IOM uint32_t RTCA0MIN : 8; /*!< [15..8] See RTCA0MIN register */ + __IOM uint32_t RTCA0HOUR : 8; /*!< [23..16] See RTCA0HOUR register */ + uint32_t : 8; + } RTCA0TIME_b; + }; + + union + { + __IOM uint32_t RTCA0CAL; /*!< (@ 0x00000034) RTC Calendar Set Register */ + + struct + { + __IOM uint32_t RTCA0WEEK : 8; /*!< [7..0] See RTCA0WEEK register */ + __IOM uint32_t RTCA0DAY : 8; /*!< [15..8] See RTCA0DAY register */ + __IOM uint32_t RTCA0MONTH : 8; /*!< [23..16] See RTCA0MONTH register */ + __IOM uint32_t RTCA0YEAR : 8; /*!< [31..24] See RTCA0YEAR register */ + } RTCA0CAL_b; + }; + __IM uint32_t RESERVED; + + union + { + __IOM uint32_t RTCA0SCMP; /*!< (@ 0x0000003C) RTC Sub Count Compare Register */ + + struct + { + __IOM uint32_t RTCA0SCMP : 22; /*!< [21..0] Register that sets the compare value of RTCA0SUBC (sub-counter). */ + uint32_t : 10; + } RTCA0SCMP_b; + }; + + union + { + __IOM uint32_t RTCA0ALM; /*!< (@ 0x00000040) RTC Alarm Min Set Register */ + + struct + { + __IOM uint32_t RTCA0ALM : 7; /*!< [6..0] RTCA0ALM is a register that performs the minute setting + * for the alarm interrupt. */ + uint32_t : 25; + } RTCA0ALM_b; + }; + + union + { + __IOM uint32_t RTCA0ALH; /*!< (@ 0x00000044) RTC Alarm Hour Set Register */ + + struct + { + __IOM uint32_t RTCA0ALH : 6; /*!< [5..0] RTCA0ALH is a register that performs the hour setting + * for the alarm interrupt. */ + uint32_t : 26; + } RTCA0ALH_b; + }; + + union + { + __IOM uint32_t RTCA0ALW; /*!< (@ 0x00000048) RTC Alarm Week Set Register */ + + struct + { + __IOM uint32_t RTCA0ALW0 : 1; /*!< [0..0] Alarm interrupt day of the week setting bit 0 */ + __IOM uint32_t RTCA0ALW1 : 1; /*!< [1..1] Alarm interrupt day of the week setting bit 1 */ + __IOM uint32_t RTCA0ALW2 : 1; /*!< [2..2] Alarm interrupt day of the week setting bit 2 */ + __IOM uint32_t RTCA0ALW3 : 1; /*!< [3..3] Alarm interrupt day of the week setting bit 3 */ + __IOM uint32_t RTCA0ALW4 : 1; /*!< [4..4] Alarm interrupt day of the week setting bit 4 */ + __IOM uint32_t RTCA0ALW5 : 1; /*!< [5..5] Alarm interrupt day of the week setting bit 5 */ + __IOM uint32_t RTCA0ALW6 : 1; /*!< [6..6] Alarm interrupt day of the week setting bit 6 */ + uint32_t : 25; + } RTCA0ALW_b; + }; + + union + { + __IM uint32_t RTCA0SECC; /*!< (@ 0x0000004C) RTC Second Count Register */ + + struct + { + __IM uint32_t RTCA0SECC : 7; /*!< [6..0] Counts up the seconds */ + uint32_t : 25; + } RTCA0SECC_b; + }; + + union + { + __IM uint32_t RTCA0MINC; /*!< (@ 0x00000050) RTC Minute Count Register */ + + struct + { + __IM uint32_t RTCA0MINC : 7; /*!< [6..0] Counts up the minutes */ + uint32_t : 25; + } RTCA0MINC_b; + }; + + union + { + __IM uint32_t RTCA0HOURC; /*!< (@ 0x00000054) RTC Hour Count Register */ + + struct + { + __IM uint32_t RTCA0HOURC : 6; /*!< [5..0] Counts up the hours */ + uint32_t : 26; + } RTCA0HOURC_b; + }; + + union + { + __IM uint32_t RTCA0WEEKC; /*!< (@ 0x00000058) RTC Week Count Register */ + + struct + { + __IM uint32_t RTCA0WEEKC : 3; /*!< [2..0] Counts up the weeks */ + uint32_t : 29; + } RTCA0WEEKC_b; + }; + + union + { + __IM uint32_t RTCA0DAYC; /*!< (@ 0x0000005C) RTC Day Count Register */ + + struct + { + __IM uint32_t RTCA0DAYC : 6; /*!< [5..0] Counts up the days */ + uint32_t : 26; + } RTCA0DAYC_b; + }; + + union + { + __IM uint32_t RTCA0MONC; /*!< (@ 0x00000060) RTC Month Count Register */ + + struct + { + __IM uint32_t RTCA0MONC : 5; /*!< [4..0] Counts up the months */ + uint32_t : 27; + } RTCA0MONC_b; + }; + + union + { + __IM uint32_t RTCA0YEARC; /*!< (@ 0x00000064) RTC Year Count Register */ + + struct + { + __IM uint32_t RTCA0YEARC : 8; /*!< [7..0] Counts up the years */ + uint32_t : 24; + } RTCA0YEARC_b; + }; + + union + { + __IM uint32_t RTCA0TIMEC; /*!< (@ 0x00000068) RTC Time Count Register */ + + struct + { + __IM uint32_t RTCA0SECC : 8; /*!< [7..0] See RTCA0SECC register */ + __IM uint32_t RTCA0MINC : 8; /*!< [15..8] See RTCA0MINC register */ + __IM uint32_t RTCA0HOURC : 8; /*!< [23..16] See RTCA0HOURC register */ + uint32_t : 8; + } RTCA0TIMEC_b; + }; + + union + { + __IM uint32_t RTCA0CALC; /*!< (@ 0x0000006C) RTC Calendar Count Register */ + + struct + { + __IM uint32_t RTCA0WEEKC : 8; /*!< [7..0] See RTCA0WEEKC register */ + __IM uint32_t RTCA0DAYC : 8; /*!< [15..8] See RTCA0DAYC register */ + __IM uint32_t RTCA0MONC : 8; /*!< [23..16] See RTCA0MONC register */ + __IM uint32_t RTCA0YEARC : 8; /*!< [31..24] See RTCA0YEARC register */ + } RTCA0CALC_b; + }; +} R_RTC_Type; /*!< Size = 112 (0x70) */ + +/* =========================================================================================================================== */ +/* ================ R_POEG2 ================ */ +/* =========================================================================================================================== */ + +/** + * @brief GPT Port Output Enable 2 (R_POEG2) + */ + +typedef struct /*!< (@ 0x8100A000) R_POEG2 Structure */ +{ + union + { + __IOM uint32_t POEG2GA; /*!< (@ 0x00000000) POEG2 Group A Setting Register */ + + struct + { + __IOM uint32_t PIDF : 1; /*!< [0..0] Port Input Detection Flag */ + __IOM uint32_t IOCF : 1; /*!< [1..1] GPT Output Stop Request Detection Flag */ + __IOM uint32_t OSTPF : 1; /*!< [2..2] Oscillation Stop Detection Flag */ + __IOM uint32_t SSF : 1; /*!< [3..3] Software Stop Flag */ + __IOM uint32_t PIDE : 1; /*!< [4..4] Port Input Detection Enable */ + __IOM uint32_t IOCE : 1; /*!< [5..5] GPT Output Stop Request Enable */ + __IOM uint32_t OSTPE : 1; /*!< [6..6] Enable Stopping Output on Stopping of Oscillation */ + uint32_t : 9; + __IM uint32_t ST : 1; /*!< [16..16] GTETRGn Input Status Flag */ + uint32_t : 11; + __IOM uint32_t INV : 1; /*!< [28..28] GTETRGn Input Inverting */ + __IOM uint32_t NFEN : 1; /*!< [29..29] Noise filter Enable */ + __IOM uint32_t NFCS : 2; /*!< [31..30] Noise filter Clock Select */ + } POEG2GA_b; + }; + __IM uint32_t RESERVED[255]; + + union + { + __IOM uint32_t POEG2GB; /*!< (@ 0x00000400) POEG2 Group B Setting Register */ + + struct + { + __IOM uint32_t PIDF : 1; /*!< [0..0] Port Input Detection Flag */ + __IOM uint32_t IOCF : 1; /*!< [1..1] GPT Output Stop Request Detection Flag */ + __IOM uint32_t OSTPF : 1; /*!< [2..2] Oscillation Stop Detection Flag */ + __IOM uint32_t SSF : 1; /*!< [3..3] Software Stop Flag */ + __IOM uint32_t PIDE : 1; /*!< [4..4] Port Input Detection Enable */ + __IOM uint32_t IOCE : 1; /*!< [5..5] GPT Output Stop Request Enable */ + __IOM uint32_t OSTPE : 1; /*!< [6..6] Enable Stopping Output on Stopping of Oscillation */ + uint32_t : 9; + __IM uint32_t ST : 1; /*!< [16..16] GTETRGn Input Status Flag */ + uint32_t : 11; + __IOM uint32_t INV : 1; /*!< [28..28] GTETRGn Input Inverting */ + __IOM uint32_t NFEN : 1; /*!< [29..29] Noise filter Enable */ + __IOM uint32_t NFCS : 2; /*!< [31..30] Noise filter Clock Select */ + } POEG2GB_b; + }; + __IM uint32_t RESERVED1[255]; + + union + { + __IOM uint32_t POEG2GC; /*!< (@ 0x00000800) POEG2 Group C Setting Register */ + + struct + { + __IOM uint32_t PIDF : 1; /*!< [0..0] Port Input Detection Flag */ + __IOM uint32_t IOCF : 1; /*!< [1..1] GPT Output Stop Request Detection Flag */ + __IOM uint32_t OSTPF : 1; /*!< [2..2] Oscillation Stop Detection Flag */ + __IOM uint32_t SSF : 1; /*!< [3..3] Software Stop Flag */ + __IOM uint32_t PIDE : 1; /*!< [4..4] Port Input Detection Enable */ + __IOM uint32_t IOCE : 1; /*!< [5..5] GPT Output Stop Request Enable */ + __IOM uint32_t OSTPE : 1; /*!< [6..6] Enable Stopping Output on Stopping of Oscillation */ + uint32_t : 9; + __IM uint32_t ST : 1; /*!< [16..16] GTETRGn Input Status Flag */ + uint32_t : 11; + __IOM uint32_t INV : 1; /*!< [28..28] GTETRGn Input Inverting */ + __IOM uint32_t NFEN : 1; /*!< [29..29] Noise filter Enable */ + __IOM uint32_t NFCS : 2; /*!< [31..30] Noise filter Clock Select */ + } POEG2GC_b; + }; + __IM uint32_t RESERVED2[255]; + + union + { + __IOM uint32_t POEG2GD; /*!< (@ 0x00000C00) POEG2 Group D Setting Register */ + + struct + { + __IOM uint32_t PIDF : 1; /*!< [0..0] Port Input Detection Flag */ + __IOM uint32_t IOCF : 1; /*!< [1..1] GPT Output Stop Request Detection Flag */ + __IOM uint32_t OSTPF : 1; /*!< [2..2] Oscillation Stop Detection Flag */ + __IOM uint32_t SSF : 1; /*!< [3..3] Software Stop Flag */ + __IOM uint32_t PIDE : 1; /*!< [4..4] Port Input Detection Enable */ + __IOM uint32_t IOCE : 1; /*!< [5..5] GPT Output Stop Request Enable */ + __IOM uint32_t OSTPE : 1; /*!< [6..6] Enable Stopping Output on Stopping of Oscillation */ + uint32_t : 9; + __IM uint32_t ST : 1; /*!< [16..16] GTETRGn Input Status Flag */ + uint32_t : 11; + __IOM uint32_t INV : 1; /*!< [28..28] GTETRGn Input Inverting */ + __IOM uint32_t NFEN : 1; /*!< [29..29] Noise filter Enable */ + __IOM uint32_t NFCS : 2; /*!< [31..30] Noise filter Clock Select */ + } POEG2GD_b; + }; +} R_POEG2_Type; /*!< Size = 3076 (0xc04) */ + +/* =========================================================================================================================== */ +/* ================ R_OTP ================ */ +/* =========================================================================================================================== */ + +/** + * @brief One-Time Programmable Memory (R_OTP) + */ + +typedef struct /*!< (@ 0x81028000) R_OTP Structure */ +{ + union + { + __IOM uint32_t OTPPWR; /*!< (@ 0x00000000) OTP Power Control Register */ + + struct + { + __IOM uint32_t PWR : 1; /*!< [0..0] OTP power on/off setting */ + uint32_t : 3; + __IOM uint32_t ACCL : 1; /*!< [4..4] Selects OTP access I/F */ + uint32_t : 27; + } OTPPWR_b; + }; + + union + { + __IOM uint32_t OTPSTR; /*!< (@ 0x00000004) OTP Access Status Register */ + + struct + { + __IM uint32_t CMD_RDY : 1; /*!< [0..0] Indicates whether OTP controller is ready to receive + * command or not. */ + __IM uint32_t ERR_WR : 2; /*!< [2..1] OTP write status */ + __IM uint32_t ERR_WP : 1; /*!< [3..3] Write protection error */ + __IM uint32_t ERR_RP : 1; /*!< [4..4] Read protection error */ + uint32_t : 3; + __IOM uint32_t ERR_RDY_WR : 1; /*!< [8..8] OTP write command ready error */ + __IOM uint32_t ERR_RDY_RD : 1; /*!< [9..9] OTP read command ready error */ + uint32_t : 5; + __IM uint32_t CNT_ST_IDLE : 1; /*!< [15..15] Indicates status of OTP controller */ + uint32_t : 16; + } OTPSTR_b; + }; + + union + { + __IOM uint32_t OTPSTAWR; /*!< (@ 0x00000008) OTP Write Command Register */ + + struct + { + __IOM uint32_t STAWR : 1; /*!< [0..0] OTP write start */ + uint32_t : 31; + } OTPSTAWR_b; + }; + + union + { + __IOM uint32_t OTPADRWR; /*!< (@ 0x0000000C) OTP Write Address Register */ + + struct + { + __IOM uint32_t ADRWR : 9; /*!< [8..0] OTP write address */ + uint32_t : 23; + } OTPADRWR_b; + }; + + union + { + __IOM uint32_t OTPDATAWR; /*!< (@ 0x00000010) OTP Write Data Register */ + + struct + { + __IOM uint32_t DATAWR : 16; /*!< [15..0] OTP write data */ + uint32_t : 16; + } OTPDATAWR_b; + }; + + union + { + __IOM uint32_t OTPADRRD; /*!< (@ 0x00000014) OTP Read Address Register */ + + struct + { + __IOM uint32_t ADRRD : 9; /*!< [8..0] OTP read address */ + uint32_t : 23; + } OTPADRRD_b; + }; + + union + { + __IM uint32_t OTPDATARD; /*!< (@ 0x00000018) OTP Read Data Register */ + + struct + { + __IM uint32_t DATARD : 16; /*!< [15..0] OTP read data */ + uint32_t : 16; + } OTPDATARD_b; + }; +} R_OTP_Type; /*!< Size = 28 (0x1c) */ + +/* =========================================================================================================================== */ +/* ================ R_PTADR ================ */ +/* =========================================================================================================================== */ + +/** + * @brief Port Address Selection (R_PTADR) + */ + +typedef struct /*!< (@ 0x81030C00) R_PTADR Structure */ +{ + union + { + __IOM uint8_t RSELP[25]; /*!< (@ 0x00000000) Port [0..24] Region Select Register */ + + struct + { + __IOM uint8_t RS0 : 1; /*!< [0..0] Pm_n pin I/O port registers Region Select (n = bit position) */ + __IOM uint8_t RS1 : 1; /*!< [1..1] Pm_n pin I/O port registers Region Select (n = bit position) */ + __IOM uint8_t RS2 : 1; /*!< [2..2] Pm_n pin I/O port registers Region Select (n = bit position) */ + __IOM uint8_t RS3 : 1; /*!< [3..3] Pm_n pin I/O port registers Region Select (n = bit position) */ + __IOM uint8_t RS4 : 1; /*!< [4..4] Pm_n pin I/O port registers Region Select (n = bit position) */ + __IOM uint8_t RS5 : 1; /*!< [5..5] Pm_n pin I/O port registers Region Select (n = bit position) */ + __IOM uint8_t RS6 : 1; /*!< [6..6] Pm_n pin I/O port registers Region Select (n = bit position) */ + __IOM uint8_t RS7 : 1; /*!< [7..7] Pm_n pin I/O port registers Region Select (n = bit position) */ + } RSELP_b[25]; + }; +} R_PTADR_Type; /*!< Size = 25 (0x19) */ + +/* =========================================================================================================================== */ +/* ================ R_SYSRAM0 ================ */ +/* =========================================================================================================================== */ + +/** + * @brief System SRAM 0 (R_SYSRAM0) + */ + +typedef struct /*!< (@ 0x81040000) R_SYSRAM0 Structure */ +{ + __IOM R_SYSRAM0_W_Type W[4]; /*!< (@ 0x00000000) System SRAM Wn Registers (n = 0 to 3) */ +} R_SYSRAM0_Type; /*!< Size = 256 (0x100) */ + +/* =========================================================================================================================== */ +/* ================ R_ICU ================ */ +/* =========================================================================================================================== */ + +/** + * @brief Interrupt Controller (R_ICU) + */ + +typedef struct /*!< (@ 0x81048000) R_ICU Structure */ +{ + union + { + __OM uint32_t S_SWINT; /*!< (@ 0x00000000) Software Interrupt Register for Safety Register */ + + struct + { + __OM uint32_t IC6 : 1; /*!< [0..0] Software Interrupt register */ + __OM uint32_t IC7 : 1; /*!< [1..1] Software Interrupt register */ + uint32_t : 30; + } S_SWINT_b; + }; + + union + { + __IOM uint32_t S_PORTNF_FLTSEL; /*!< (@ 0x00000004) Interrupt Noise Filter Enable Register for Safety + * Register */ + + struct + { + __IOM uint32_t FLT14 : 1; /*!< [0..0] Noise filter enable for IRQ14 */ + __IOM uint32_t FLT15 : 1; /*!< [1..1] Noise filter enable for IRQ15 */ + __IOM uint32_t FLTNMI : 1; /*!< [2..2] Noise filter enable for NMI */ + uint32_t : 29; + } S_PORTNF_FLTSEL_b; + }; + + union + { + __IOM uint32_t S_PORTNF_CLKSEL; /*!< (@ 0x00000008) Interrupt Noise Filter Setting Register for Safety + * Register */ + + struct + { + __IOM uint32_t CKSEL14 : 2; /*!< [1..0] Select noise filter sampling frequency dividend rate + * for IRQ14. */ + __IOM uint32_t CKSEL15 : 2; /*!< [3..2] Select noise filter sampling frequency dividend rate + * for IRQ15. */ + __IOM uint32_t CKSELNMI : 2; /*!< [5..4] Select noise filter sampling frequency dividend rate + * for NMI. */ + uint32_t : 26; + } S_PORTNF_CLKSEL_b; + }; + + union + { + __IOM uint32_t S_PORTNF_MD; /*!< (@ 0x0000000C) Interrupt Edge Detection Setting Register for + * Safety Register */ + + struct + { + __IOM uint32_t MD14 : 2; /*!< [1..0] Select detection mode for IRQ14 */ + __IOM uint32_t MD15 : 2; /*!< [3..2] Select detection mode for IRQ15 */ + __IOM uint32_t MDNMI : 2; /*!< [5..4] Select detection mode for NMI */ + uint32_t : 26; + } S_PORTNF_MD_b; + }; + __IM uint32_t RESERVED[20]; + + union + { + __IM uint32_t CPU0ERR_STAT; /*!< (@ 0x00000060) CPU0 Error Event Status Register */ + + struct + { + __IM uint32_t ER_ST0 : 1; /*!< [0..0] Indicate captured error status for CPU0_ERREVENT0 */ + __IM uint32_t ER_ST1 : 1; /*!< [1..1] Indicate captured error status for CPU0_ERREVENT1 */ + __IM uint32_t ER_ST2 : 1; /*!< [2..2] Indicate captured error status for CPU0_ERREVENT2 */ + __IM uint32_t ER_ST3 : 1; /*!< [3..3] Indicate captured error status for CPU0_ERREVENT3 */ + __IM uint32_t ER_ST4 : 1; /*!< [4..4] Indicate captured error status for CPU0_ERREVENT4 */ + __IM uint32_t ER_ST5 : 1; /*!< [5..5] Indicate captured error status for CPU0_ERREVENT5 */ + __IM uint32_t ER_ST6 : 1; /*!< [6..6] Indicate captured error status for CPU0_ERREVENT6 */ + __IM uint32_t ER_ST7 : 1; /*!< [7..7] Indicate captured error status for CPU0_ERREVENT7 */ + __IM uint32_t ER_ST8 : 1; /*!< [8..8] Indicate captured error status for CPU0_ERREVENT8 */ + __IM uint32_t ER_ST9 : 1; /*!< [9..9] Indicate captured error status for CPU0_ERREVENT9 */ + __IM uint32_t ER_ST10 : 1; /*!< [10..10] Indicate captured error status for CPU0_ERREVENT10 */ + __IM uint32_t ER_ST11 : 1; /*!< [11..11] Indicate captured error status for CPU0_ERREVENT11 */ + __IM uint32_t ER_ST12 : 1; /*!< [12..12] Indicate captured error status for CPU0_ERREVENT12 */ + __IM uint32_t ER_ST13 : 1; /*!< [13..13] Indicate captured error status for CPU0_ERREVENT13 */ + __IM uint32_t ER_ST14 : 1; /*!< [14..14] Indicate captured error status for CPU0_ERREVENT14 */ + __IM uint32_t ER_ST15 : 1; /*!< [15..15] Indicate captured error status for CPU0_ERREVENT15 */ + __IM uint32_t ER_ST16 : 1; /*!< [16..16] Indicate captured error status for CPU0_ERREVENT16 */ + __IM uint32_t ER_ST17 : 1; /*!< [17..17] Indicate captured error status for CPU0_ERREVENT17 */ + __IM uint32_t ER_ST18 : 1; /*!< [18..18] Indicate captured error status for CPU0_ERREVENT18 */ + __IM uint32_t ER_ST19 : 1; /*!< [19..19] Indicate captured error status for CPU0_ERREVENT19 */ + __IM uint32_t ER_ST20 : 1; /*!< [20..20] Indicate captured error status for CPU0_ERREVENT20 */ + __IM uint32_t ER_ST21 : 1; /*!< [21..21] Indicate captured error status for CPU0_ERREVENT21 */ + __IM uint32_t ER_ST22 : 1; /*!< [22..22] Indicate captured error status for CPU0_ERREVENT22 */ + __IM uint32_t ER_ST23 : 1; /*!< [23..23] Indicate captured error status for CPU0_ERREVENT23 */ + __IM uint32_t ER_ST24 : 1; /*!< [24..24] Indicate captured error status for CPU0_ERREVENT24 */ + __IM uint32_t ER_ST25 : 1; /*!< [25..25] Indicate captured error status for CPU0_ERREVENT25 */ + uint32_t : 6; + } CPU0ERR_STAT_b; + }; + __IM uint32_t RESERVED1; + + union + { + __IM uint32_t PERIERR_STAT0; /*!< (@ 0x00000068) Peripheral Error Event Status Register 0 */ + + struct + { + __IM uint32_t ER_ST0 : 1; /*!< [0..0] Indicate captured error status for CLMA3_INT */ + __IM uint32_t ER_ST1 : 1; /*!< [1..1] Indicate captured error status for CLMA0_INT */ + __IM uint32_t ER_ST2 : 1; /*!< [2..2] Indicate captured error status for CLMA1_INT */ + __IM uint32_t ER_ST3 : 1; /*!< [3..3] Indicate captured error status for CLMA2_INT */ + __IM uint32_t ER_ST4 : 1; /*!< [4..4] Indicate captured error status for BSC_WTO */ + __IM uint32_t ER_ST5 : 1; /*!< [5..5] Indicate captured error status for DMAC0_ERR */ + __IM uint32_t ER_ST6 : 1; /*!< [6..6] Indicate captured error status for DMAC1_ERR */ + __IM uint32_t ER_ST7 : 1; /*!< [7..7] Indicate captured error status for WDT_NMIUNDF0 */ + uint32_t : 1; + __IM uint32_t ER_ST9 : 1; /*!< [9..9] Indicate captured error status for USB_FDMAERR */ + __IM uint32_t ER_ST10 : 1; /*!< [10..10] Indicate captured error status for DSMIF0_LTCSE */ + __IM uint32_t ER_ST11 : 1; /*!< [11..11] Indicate captured error status for DSMIF0_UTCSE */ + __IM uint32_t ER_ST12 : 1; /*!< [12..12] Indicate captured error status for DSMIF0_LTODE0 */ + __IM uint32_t ER_ST13 : 1; /*!< [13..13] Indicate captured error status for DSMIF0_LTODE1 */ + __IM uint32_t ER_ST14 : 1; /*!< [14..14] Indicate captured error status for DSMIF0_LTODE2 */ + __IM uint32_t ER_ST15 : 1; /*!< [15..15] Indicate captured error status for DSMIF0_UTODE0 */ + __IM uint32_t ER_ST16 : 1; /*!< [16..16] Indicate captured error status for DSMIF0_UTODE1 */ + __IM uint32_t ER_ST17 : 1; /*!< [17..17] Indicate captured error status for DSMIF0_UTODE2 */ + __IM uint32_t ER_ST18 : 1; /*!< [18..18] Indicate captured error status for DSMIF0_SCDE0 */ + __IM uint32_t ER_ST19 : 1; /*!< [19..19] Indicate captured error status for DSMIF0_SCDE1 */ + __IM uint32_t ER_ST20 : 1; /*!< [20..20] Indicate captured error status for DSMIF0_SCDE2 */ + __IM uint32_t ER_ST21 : 1; /*!< [21..21] Indicate captured error status for DSMIF1_LTCSE */ + __IM uint32_t ER_ST22 : 1; /*!< [22..22] Indicate captured error status for DSMIF1_UTCSE */ + __IM uint32_t ER_ST23 : 1; /*!< [23..23] Indicate captured error status for DSMIF1_LTODE0 */ + __IM uint32_t ER_ST24 : 1; /*!< [24..24] Indicate captured error status for DSMIF1_LTODE1 */ + __IM uint32_t ER_ST25 : 1; /*!< [25..25] Indicate captured error status for DSMIF1_LTODE2 */ + __IM uint32_t ER_ST26 : 1; /*!< [26..26] Indicate captured error status for DSMIF1_UTODE0 */ + __IM uint32_t ER_ST27 : 1; /*!< [27..27] Indicate captured error status for DSMIF1_UTODE1 */ + __IM uint32_t ER_ST28 : 1; /*!< [28..28] Indicate captured error status for DSMIF1_UTODE2 */ + __IM uint32_t ER_ST29 : 1; /*!< [29..29] Indicate captured error status for DSMIF1_SCDE0 */ + __IM uint32_t ER_ST30 : 1; /*!< [30..30] Indicate captured error status for DSMIF1_SCDE1 */ + __IM uint32_t ER_ST31 : 1; /*!< [31..31] Indicate captured error status for DSMIF1_SCDE2 */ + } PERIERR_STAT0_b; + }; + + union + { + __IM uint32_t PERIERR_STAT1; /*!< (@ 0x0000006C) Peripheral Error Event Status Register 1 */ + + struct + { + __IM uint32_t ER_ST0 : 1; /*!< [0..0] Indicate captured error status for DOC_DOPCI */ + __IM uint32_t ER_ST1 : 1; /*!< [1..1] Indicate captured error status for SRAM0_IE1 */ + __IM uint32_t ER_ST2 : 1; /*!< [2..2] Indicate captured error status for SRAM0_IE2 */ + __IM uint32_t ER_ST3 : 1; /*!< [3..3] Indicate captured error status for SRAM0_OVF */ + __IM uint32_t ER_ST4 : 1; /*!< [4..4] Indicate captured error status for SRAM1_IE1 */ + __IM uint32_t ER_ST5 : 1; /*!< [5..5] Indicate captured error status for SRAM1_IE2 */ + __IM uint32_t ER_ST6 : 1; /*!< [6..6] Indicate captured error status for SRAM1_OVF */ + __IM uint32_t ER_ST7 : 1; /*!< [7..7] Indicate captured error status for SRAM2_IE1 */ + __IM uint32_t ER_ST8 : 1; /*!< [8..8] Indicate captured error status for SRAM2_IE2 */ + __IM uint32_t ER_ST9 : 1; /*!< [9..9] Indicate captured error status for SRAM2_OVF */ + uint32_t : 3; + __IM uint32_t ER_ST13 : 1; /*!< [13..13] Indicate captured error status for BUS_ERRINT */ + uint32_t : 1; + __IM uint32_t ER_ST15 : 1; /*!< [15..15] Indicate captured error status for MPU_SHOSTIF */ + __IM uint32_t ER_ST16 : 1; /*!< [16..16] Indicate captured error status for MPU_PHOSTIF */ + __IM uint32_t ER_ST17 : 1; /*!< [17..17] Indicate captured error status for MPU_DMACR0 */ + __IM uint32_t ER_ST18 : 1; /*!< [18..18] Indicate captured error status for MPU_DMACW0 */ + __IM uint32_t ER_ST19 : 1; /*!< [19..19] Indicate captured error status for MPU_DMACR1 */ + __IM uint32_t ER_ST20 : 1; /*!< [20..20] Indicate captured error status for MPU_DMACW1 */ + __IM uint32_t ER_ST21 : 1; /*!< [21..21] Indicate captured error status for MPU_GMACR */ + __IM uint32_t ER_ST22 : 1; /*!< [22..22] Indicate captured error status for MPU_GMACW */ + __IM uint32_t ER_ST23 : 1; /*!< [23..23] Indicate captured error status for MPU_USBH */ + __IM uint32_t ER_ST24 : 1; /*!< [24..24] Indicate captured error status for MPU_USBF */ + uint32_t : 2; + __IM uint32_t ER_ST27 : 1; /*!< [27..27] Indicate captured error status for MPU_DBGR */ + __IM uint32_t ER_ST28 : 1; /*!< [28..28] Indicate captured error status for MPU_DBGW */ + uint32_t : 3; + } PERIERR_STAT1_b; + }; + + union + { + __OM uint32_t CPU0ERR_CLR; /*!< (@ 0x00000070) CPU0 Error Event Status Clear Register */ + + struct + { + __OM uint32_t ER_CL0 : 1; /*!< [0..0] Clear captured error status for CPU0ERR_STAT register + * by writing 1 */ + __OM uint32_t ER_CL1 : 1; /*!< [1..1] Clear captured error status for CPU0ERR_STAT register + * by writing 1 */ + __OM uint32_t ER_CL2 : 1; /*!< [2..2] Clear captured error status for CPU0ERR_STAT register + * by writing 1 */ + __OM uint32_t ER_CL3 : 1; /*!< [3..3] Clear captured error status for CPU0ERR_STAT register + * by writing 1 */ + __OM uint32_t ER_CL4 : 1; /*!< [4..4] Clear captured error status for CPU0ERR_STAT register + * by writing 1 */ + __OM uint32_t ER_CL5 : 1; /*!< [5..5] Clear captured error status for CPU0ERR_STAT register + * by writing 1 */ + __OM uint32_t ER_CL6 : 1; /*!< [6..6] Clear captured error status for CPU0ERR_STAT register + * by writing 1 */ + __OM uint32_t ER_CL7 : 1; /*!< [7..7] Clear captured error status for CPU0ERR_STAT register + * by writing 1 */ + __OM uint32_t ER_CL8 : 1; /*!< [8..8] Clear captured error status for CPU0ERR_STAT register + * by writing 1 */ + __OM uint32_t ER_CL9 : 1; /*!< [9..9] Clear captured error status for CPU0ERR_STAT register + * by writing 1 */ + __OM uint32_t ER_CL10 : 1; /*!< [10..10] Clear captured error status for CPU0ERR_STAT register + * by writing 1 */ + __OM uint32_t ER_CL11 : 1; /*!< [11..11] Clear captured error status for CPU0ERR_STAT register + * by writing 1 */ + __OM uint32_t ER_CL12 : 1; /*!< [12..12] Clear captured error status for CPU0ERR_STAT register + * by writing 1 */ + __OM uint32_t ER_CL13 : 1; /*!< [13..13] Clear captured error status for CPU0ERR_STAT register + * by writing 1 */ + __OM uint32_t ER_CL14 : 1; /*!< [14..14] Clear captured error status for CPU0ERR_STAT register + * by writing 1 */ + __OM uint32_t ER_CL15 : 1; /*!< [15..15] Clear captured error status for CPU0ERR_STAT register + * by writing 1 */ + __OM uint32_t ER_CL16 : 1; /*!< [16..16] Clear captured error status for CPU0ERR_STAT register + * by writing 1 */ + __OM uint32_t ER_CL17 : 1; /*!< [17..17] Clear captured error status for CPU0ERR_STAT register + * by writing 1 */ + __OM uint32_t ER_CL18 : 1; /*!< [18..18] Clear captured error status for CPU0ERR_STAT register + * by writing 1 */ + __OM uint32_t ER_CL19 : 1; /*!< [19..19] Clear captured error status for CPU0ERR_STAT register + * by writing 1 */ + __OM uint32_t ER_CL20 : 1; /*!< [20..20] Clear captured error status for CPU0ERR_STAT register + * by writing 1 */ + __OM uint32_t ER_CL21 : 1; /*!< [21..21] Clear captured error status for CPU0ERR_STAT register + * by writing 1 */ + __OM uint32_t ER_CL22 : 1; /*!< [22..22] Clear captured error status for CPU0ERR_STAT register + * by writing 1 */ + __OM uint32_t ER_CL23 : 1; /*!< [23..23] Clear captured error status for CPU0ERR_STAT register + * by writing 1 */ + __OM uint32_t ER_CL24 : 1; /*!< [24..24] Clear captured error status for CPU0ERR_STAT register + * by writing 1 */ + __OM uint32_t ER_CL25 : 1; /*!< [25..25] Clear captured error status for CPU0ERR_STAT register + * by writing 1 */ + uint32_t : 6; + } CPU0ERR_CLR_b; + }; + __IM uint32_t RESERVED2; + + union + { + __OM uint32_t PERIERR_CLR0; /*!< (@ 0x00000078) Peripheral Error Event Status Clear Register + * 0 */ + + struct + { + __OM uint32_t ER_CL0 : 1; /*!< [0..0] Clear captured error status for PERIERR_STAT0 register + * by writing 1 */ + __OM uint32_t ER_CL1 : 1; /*!< [1..1] Clear captured error status for PERIERR_STAT0 register + * by writing 1 */ + __OM uint32_t ER_CL2 : 1; /*!< [2..2] Clear captured error status for PERIERR_STAT0 register + * by writing 1 */ + __OM uint32_t ER_CL3 : 1; /*!< [3..3] Clear captured error status for PERIERR_STAT0 register + * by writing 1 */ + __OM uint32_t ER_CL4 : 1; /*!< [4..4] Clear captured error status for PERIERR_STAT0 register + * by writing 1 */ + __OM uint32_t ER_CL5 : 1; /*!< [5..5] Clear captured error status for PERIERR_STAT0 register + * by writing 1 */ + __OM uint32_t ER_CL6 : 1; /*!< [6..6] Clear captured error status for PERIERR_STAT0 register + * by writing 1 */ + __OM uint32_t ER_CL7 : 1; /*!< [7..7] Clear captured error status for PERIERR_STAT0 register + * by writing 1 */ + uint32_t : 1; + __OM uint32_t ER_CL9 : 1; /*!< [9..9] Clear captured error status for PERIERR_STAT0 register + * by writing 1 */ + __OM uint32_t ER_CL10 : 1; /*!< [10..10] Clear captured error status for PERIERR_STAT0 register + * by writing 1 */ + __OM uint32_t ER_CL11 : 1; /*!< [11..11] Clear captured error status for PERIERR_STAT0 register + * by writing 1 */ + __OM uint32_t ER_CL12 : 1; /*!< [12..12] Clear captured error status for PERIERR_STAT0 register + * by writing 1 */ + __OM uint32_t ER_CL13 : 1; /*!< [13..13] Clear captured error status for PERIERR_STAT0 register + * by writing 1 */ + __OM uint32_t ER_CL14 : 1; /*!< [14..14] Clear captured error status for PERIERR_STAT0 register + * by writing 1 */ + __OM uint32_t ER_CL15 : 1; /*!< [15..15] Clear captured error status for PERIERR_STAT0 register + * by writing 1 */ + __OM uint32_t ER_CL16 : 1; /*!< [16..16] Clear captured error status for PERIERR_STAT0 register + * by writing 1 */ + __OM uint32_t ER_CL17 : 1; /*!< [17..17] Clear captured error status for PERIERR_STAT0 register + * by writing 1 */ + __OM uint32_t ER_CL18 : 1; /*!< [18..18] Clear captured error status for PERIERR_STAT0 register + * by writing 1 */ + __OM uint32_t ER_CL19 : 1; /*!< [19..19] Clear captured error status for PERIERR_STAT0 register + * by writing 1 */ + __OM uint32_t ER_CL20 : 1; /*!< [20..20] Clear captured error status for PERIERR_STAT0 register + * by writing 1 */ + __OM uint32_t ER_CL21 : 1; /*!< [21..21] Clear captured error status for PERIERR_STAT0 register + * by writing 1 */ + __OM uint32_t ER_CL22 : 1; /*!< [22..22] Clear captured error status for PERIERR_STAT0 register + * by writing 1 */ + __OM uint32_t ER_CL23 : 1; /*!< [23..23] Clear captured error status for PERIERR_STAT0 register + * by writing 1 */ + __OM uint32_t ER_CL24 : 1; /*!< [24..24] Clear captured error status for PERIERR_STAT0 register + * by writing 1 */ + __OM uint32_t ER_CL25 : 1; /*!< [25..25] Clear captured error status for PERIERR_STAT0 register + * by writing 1 */ + __OM uint32_t ER_CL26 : 1; /*!< [26..26] Clear captured error status for PERIERR_STAT0 register + * by writing 1 */ + __OM uint32_t ER_CL27 : 1; /*!< [27..27] Clear captured error status for PERIERR_STAT0 register + * by writing 1 */ + __OM uint32_t ER_CL28 : 1; /*!< [28..28] Clear captured error status for PERIERR_STAT0 register + * by writing 1 */ + __OM uint32_t ER_CL29 : 1; /*!< [29..29] Clear captured error status for PERIERR_STAT0 register + * by writing 1 */ + __OM uint32_t ER_CL30 : 1; /*!< [30..30] Clear captured error status for PERIERR_STAT0 register + * by writing 1 */ + __OM uint32_t ER_CL31 : 1; /*!< [31..31] Clear captured error status for PERIERR_STAT0 register + * by writing 1 */ + } PERIERR_CLR0_b; + }; + + union + { + __OM uint32_t PERIERR_CLR1; /*!< (@ 0x0000007C) Peripheral Error Event Status Clear Register + * 1 */ + + struct + { + __OM uint32_t ER_CL0 : 1; /*!< [0..0] Clear captured error status for PERIERR_STAT1 register + * by writing 1 */ + __OM uint32_t ER_CL1 : 1; /*!< [1..1] Clear captured error status for PERIERR_STAT1 register + * by writing 1 */ + __OM uint32_t ER_CL2 : 1; /*!< [2..2] Clear captured error status for PERIERR_STAT1 register + * by writing 1 */ + __OM uint32_t ER_CL3 : 1; /*!< [3..3] Clear captured error status for PERIERR_STAT1 register + * by writing 1 */ + __OM uint32_t ER_CL4 : 1; /*!< [4..4] Clear captured error status for PERIERR_STAT1 register + * by writing 1 */ + __OM uint32_t ER_CL5 : 1; /*!< [5..5] Clear captured error status for PERIERR_STAT1 register + * by writing 1 */ + __OM uint32_t ER_CL6 : 1; /*!< [6..6] Clear captured error status for PERIERR_STAT1 register + * by writing 1 */ + __OM uint32_t ER_CL7 : 1; /*!< [7..7] Clear captured error status for PERIERR_STAT1 register + * by writing 1 */ + __OM uint32_t ER_CL8 : 1; /*!< [8..8] Clear captured error status for PERIERR_STAT1 register + * by writing 1 */ + __OM uint32_t ER_CL9 : 1; /*!< [9..9] Clear captured error status for PERIERR_STAT1 register + * by writing 1 */ + uint32_t : 3; + __OM uint32_t ER_CL13 : 1; /*!< [13..13] Clear captured error status for PERIERR_STAT1 register + * by writing 1 */ + uint32_t : 1; + __OM uint32_t ER_CL15 : 1; /*!< [15..15] Clear captured error status for PERIERR_STAT1 register + * by writing 1 */ + __OM uint32_t ER_CL16 : 1; /*!< [16..16] Clear captured error status for PERIERR_STAT1 register + * by writing 1 */ + __OM uint32_t ER_CL17 : 1; /*!< [17..17] Clear captured error status for PERIERR_STAT1 register + * by writing 1 */ + __OM uint32_t ER_CL18 : 1; /*!< [18..18] Clear captured error status for PERIERR_STAT1 register + * by writing 1 */ + __OM uint32_t ER_CL19 : 1; /*!< [19..19] Clear captured error status for PERIERR_STAT1 register + * by writing 1 */ + __OM uint32_t ER_CL20 : 1; /*!< [20..20] Clear captured error status for PERIERR_STAT1 register + * by writing 1 */ + __OM uint32_t ER_CL21 : 1; /*!< [21..21] Clear captured error status for PERIERR_STAT1 register + * by writing 1 */ + __OM uint32_t ER_CL22 : 1; /*!< [22..22] Clear captured error status for PERIERR_STAT1 register + * by writing 1 */ + __OM uint32_t ER_CL23 : 1; /*!< [23..23] Clear captured error status for PERIERR_STAT1 register + * by writing 1 */ + __OM uint32_t ER_CL24 : 1; /*!< [24..24] Clear captured error status for PERIERR_STAT1 register + * by writing 1 */ + uint32_t : 2; + __OM uint32_t ER_CL27 : 1; /*!< [27..27] Clear captured error status for PERIERR_STAT1 register + * by writing 1 */ + __OM uint32_t ER_CL28 : 1; /*!< [28..28] Clear captured error status for PERIERR_STAT1 register + * by writing 1 */ + uint32_t : 3; + } PERIERR_CLR1_b; + }; + + union + { + __IOM uint32_t CPU0ERR_RSTMSK; /*!< (@ 0x00000080) CPU0 Error Event Reset Mask Register */ + + struct + { + __IOM uint32_t RS_MK0 : 1; /*!< [0..0] Mask captured error status as a reset event for CPU0ERR_STAT */ + __IOM uint32_t RS_MK1 : 1; /*!< [1..1] Mask captured error status as a reset event for CPU0ERR_STAT */ + __IOM uint32_t RS_MK2 : 1; /*!< [2..2] Mask captured error status as a reset event for CPU0ERR_STAT */ + __IOM uint32_t RS_MK3 : 1; /*!< [3..3] Mask captured error status as a reset event for CPU0ERR_STAT */ + __IOM uint32_t RS_MK4 : 1; /*!< [4..4] Mask captured error status as a reset event for CPU0ERR_STAT */ + __IOM uint32_t RS_MK5 : 1; /*!< [5..5] Mask captured error status as a reset event for CPU0ERR_STAT */ + __IOM uint32_t RS_MK6 : 1; /*!< [6..6] Mask captured error status as a reset event for CPU0ERR_STAT */ + __IOM uint32_t RS_MK7 : 1; /*!< [7..7] Mask captured error status as a reset event for CPU0ERR_STAT */ + __IOM uint32_t RS_MK8 : 1; /*!< [8..8] Mask captured error status as a reset event for CPU0ERR_STAT */ + __IOM uint32_t RS_MK9 : 1; /*!< [9..9] Mask captured error status as a reset event for CPU0ERR_STAT */ + __IOM uint32_t RS_MK10 : 1; /*!< [10..10] Mask captured error status as a reset event for CPU0ERR_STAT */ + __IOM uint32_t RS_MK11 : 1; /*!< [11..11] Mask captured error status as a reset event for CPU0ERR_STAT */ + __IOM uint32_t RS_MK12 : 1; /*!< [12..12] Mask captured error status as a reset event for CPU0ERR_STAT */ + __IOM uint32_t RS_MK13 : 1; /*!< [13..13] Mask captured error status as a reset event for CPU0ERR_STAT */ + __IOM uint32_t RS_MK14 : 1; /*!< [14..14] Mask captured error status as a reset event for CPU0ERR_STAT */ + __IOM uint32_t RS_MK15 : 1; /*!< [15..15] Mask captured error status as a reset event for CPU0ERR_STAT */ + __IOM uint32_t RS_MK16 : 1; /*!< [16..16] Mask captured error status as a reset event for CPU0ERR_STAT */ + __IOM uint32_t RS_MK17 : 1; /*!< [17..17] Mask captured error status as a reset event for CPU0ERR_STAT */ + __IOM uint32_t RS_MK18 : 1; /*!< [18..18] Mask captured error status as a reset event for CPU0ERR_STAT */ + __IOM uint32_t RS_MK19 : 1; /*!< [19..19] Mask captured error status as a reset event for CPU0ERR_STAT */ + __IOM uint32_t RS_MK20 : 1; /*!< [20..20] Mask captured error status as a reset event for CPU0ERR_STAT */ + __IOM uint32_t RS_MK21 : 1; /*!< [21..21] Mask captured error status as a reset event for CPU0ERR_STAT */ + __IOM uint32_t RS_MK22 : 1; /*!< [22..22] Mask captured error status as a reset event for CPU0ERR_STAT */ + __IOM uint32_t RS_MK23 : 1; /*!< [23..23] Mask captured error status as a reset event for CPU0ERR_STAT */ + __IOM uint32_t RS_MK24 : 1; /*!< [24..24] Mask captured error status as a reset event for CPU0ERR_STAT */ + __IOM uint32_t RS_MK25 : 1; /*!< [25..25] Mask captured error status as a reset event for CPU0ERR_STAT */ + uint32_t : 6; + } CPU0ERR_RSTMSK_b; + }; + __IM uint32_t RESERVED3; + + union + { + __IOM uint32_t PERIERR_RSTMSK0; /*!< (@ 0x00000088) Peripheral Error Event Reset Mask Register 0 */ + + struct + { + __IOM uint32_t RS_MK0 : 1; /*!< [0..0] Mask captured error status as a reset event for PERIERR_STAT0 */ + __IOM uint32_t RS_MK1 : 1; /*!< [1..1] Mask captured error status as a reset event for PERIERR_STAT0 */ + __IOM uint32_t RS_MK2 : 1; /*!< [2..2] Mask captured error status as a reset event for PERIERR_STAT0 */ + __IOM uint32_t RS_MK3 : 1; /*!< [3..3] Mask captured error status as a reset event for PERIERR_STAT0 */ + __IOM uint32_t RS_MK4 : 1; /*!< [4..4] Mask captured error status as a reset event for PERIERR_STAT0 */ + __IOM uint32_t RS_MK5 : 1; /*!< [5..5] Mask captured error status as a reset event for PERIERR_STAT0 */ + __IOM uint32_t RS_MK6 : 1; /*!< [6..6] Mask captured error status as a reset event for PERIERR_STAT0 */ + __IOM uint32_t RS_MK7 : 1; /*!< [7..7] Mask captured error status as a reset event for PERIERR_STAT0 */ + uint32_t : 1; + __IOM uint32_t RS_MK9 : 1; /*!< [9..9] Mask captured error status as a reset event for PERIERR_STAT0 */ + __IOM uint32_t RS_MK10 : 1; /*!< [10..10] Mask captured error status as a reset event for PERIERR_STAT0 */ + __IOM uint32_t RS_MK11 : 1; /*!< [11..11] Mask captured error status as a reset event for PERIERR_STAT0 */ + __IOM uint32_t RS_MK12 : 1; /*!< [12..12] Mask captured error status as a reset event for PERIERR_STAT0 */ + __IOM uint32_t RS_MK13 : 1; /*!< [13..13] Mask captured error status as a reset event for PERIERR_STAT0 */ + __IOM uint32_t RS_MK14 : 1; /*!< [14..14] Mask captured error status as a reset event for PERIERR_STAT0 */ + __IOM uint32_t RS_MK15 : 1; /*!< [15..15] Mask captured error status as a reset event for PERIERR_STAT0 */ + __IOM uint32_t RS_MK16 : 1; /*!< [16..16] Mask captured error status as a reset event for PERIERR_STAT0 */ + __IOM uint32_t RS_MK17 : 1; /*!< [17..17] Mask captured error status as a reset event for PERIERR_STAT0 */ + __IOM uint32_t RS_MK18 : 1; /*!< [18..18] Mask captured error status as a reset event for PERIERR_STAT0 */ + __IOM uint32_t RS_MK19 : 1; /*!< [19..19] Mask captured error status as a reset event for PERIERR_STAT0 */ + __IOM uint32_t RS_MK20 : 1; /*!< [20..20] Mask captured error status as a reset event for PERIERR_STAT0 */ + __IOM uint32_t RS_MK21 : 1; /*!< [21..21] Mask captured error status as a reset event for PERIERR_STAT0 */ + __IOM uint32_t RS_MK22 : 1; /*!< [22..22] Mask captured error status as a reset event for PERIERR_STAT0 */ + __IOM uint32_t RS_MK23 : 1; /*!< [23..23] Mask captured error status as a reset event for PERIERR_STAT0 */ + __IOM uint32_t RS_MK24 : 1; /*!< [24..24] Mask captured error status as a reset event for PERIERR_STAT0 */ + __IOM uint32_t RS_MK25 : 1; /*!< [25..25] Mask captured error status as a reset event for PERIERR_STAT0 */ + __IOM uint32_t RS_MK26 : 1; /*!< [26..26] Mask captured error status as a reset event for PERIERR_STAT0 */ + __IOM uint32_t RS_MK27 : 1; /*!< [27..27] Mask captured error status as a reset event for PERIERR_STAT0 */ + __IOM uint32_t RS_MK28 : 1; /*!< [28..28] Mask captured error status as a reset event for PERIERR_STAT0 */ + __IOM uint32_t RS_MK29 : 1; /*!< [29..29] Mask captured error status as a reset event for PERIERR_STAT0 */ + __IOM uint32_t RS_MK30 : 1; /*!< [30..30] Mask captured error status as a reset event for PERIERR_STAT0 */ + __IOM uint32_t RS_MK31 : 1; /*!< [31..31] Mask captured error status as a reset event for PERIERR_STAT0 */ + } PERIERR_RSTMSK0_b; + }; + + union + { + __IOM uint32_t PERIERR_RSTMSK1; /*!< (@ 0x0000008C) Peripheral Error Event Reset Mask Register 1 */ + + struct + { + __IOM uint32_t RS_MK0 : 1; /*!< [0..0] Mask captured error status as a reset event for PERIERR_STAT1 */ + __IOM uint32_t RS_MK1 : 1; /*!< [1..1] Mask captured error status as a reset event for PERIERR_STAT1 */ + __IOM uint32_t RS_MK2 : 1; /*!< [2..2] Mask captured error status as a reset event for PERIERR_STAT1 */ + __IOM uint32_t RS_MK3 : 1; /*!< [3..3] Mask captured error status as a reset event for PERIERR_STAT1 */ + __IOM uint32_t RS_MK4 : 1; /*!< [4..4] Mask captured error status as a reset event for PERIERR_STAT1 */ + __IOM uint32_t RS_MK5 : 1; /*!< [5..5] Mask captured error status as a reset event for PERIERR_STAT1 */ + __IOM uint32_t RS_MK6 : 1; /*!< [6..6] Mask captured error status as a reset event for PERIERR_STAT1 */ + __IOM uint32_t RS_MK7 : 1; /*!< [7..7] Mask captured error status as a reset event for PERIERR_STAT1 */ + __IOM uint32_t RS_MK8 : 1; /*!< [8..8] Mask captured error status as a reset event for PERIERR_STAT1 */ + __IOM uint32_t RS_MK9 : 1; /*!< [9..9] Mask captured error status as a reset event for PERIERR_STAT1 */ + uint32_t : 3; + __IOM uint32_t RS_MK13 : 1; /*!< [13..13] Mask captured error status as a reset event for PERIERR_STAT1 */ + uint32_t : 1; + __IOM uint32_t RS_MK15 : 1; /*!< [15..15] Mask captured error status as a reset event for PERIERR_STAT1 */ + __IOM uint32_t RS_MK16 : 1; /*!< [16..16] Mask captured error status as a reset event for PERIERR_STAT1 */ + __IOM uint32_t RS_MK17 : 1; /*!< [17..17] Mask captured error status as a reset event for PERIERR_STAT1 */ + __IOM uint32_t RS_MK18 : 1; /*!< [18..18] Mask captured error status as a reset event for PERIERR_STAT1 */ + __IOM uint32_t RS_MK19 : 1; /*!< [19..19] Mask captured error status as a reset event for PERIERR_STAT1 */ + __IOM uint32_t RS_MK20 : 1; /*!< [20..20] Mask captured error status as a reset event for PERIERR_STAT1 */ + __IOM uint32_t RS_MK21 : 1; /*!< [21..21] Mask captured error status as a reset event for PERIERR_STAT1 */ + __IOM uint32_t RS_MK22 : 1; /*!< [22..22] Mask captured error status as a reset event for PERIERR_STAT1 */ + __IOM uint32_t RS_MK23 : 1; /*!< [23..23] Mask captured error status as a reset event for PERIERR_STAT1 */ + __IOM uint32_t RS_MK24 : 1; /*!< [24..24] Mask captured error status as a reset event for PERIERR_STAT1 */ + uint32_t : 2; + __IOM uint32_t RS_MK27 : 1; /*!< [27..27] Mask captured error status as a reset event for PERIERR_STAT1 */ + __IOM uint32_t RS_MK28 : 1; /*!< [28..28] Mask captured error status as a reset event for PERIERR_STAT1 */ + uint32_t : 3; + } PERIERR_RSTMSK1_b; + }; + + union + { + __IOM uint32_t CPU0ERR_E0MSK; /*!< (@ 0x00000090) CPU0 E0 Error Event Mask Register */ + + struct + { + __IOM uint32_t E0_MK0 : 1; /*!< [0..0] Mask captured error status as an CPU0_ERR0 event for + * CPU0ERR_STAT */ + __IOM uint32_t E0_MK1 : 1; /*!< [1..1] Mask captured error status as an CPU0_ERR0 event for + * CPU0ERR_STAT */ + __IOM uint32_t E0_MK2 : 1; /*!< [2..2] Mask captured error status as an CPU0_ERR0 event for + * CPU0ERR_STAT */ + __IOM uint32_t E0_MK3 : 1; /*!< [3..3] Mask captured error status as an CPU0_ERR0 event for + * CPU0ERR_STAT */ + __IOM uint32_t E0_MK4 : 1; /*!< [4..4] Mask captured error status as an CPU0_ERR0 event for + * CPU0ERR_STAT */ + __IOM uint32_t E0_MK5 : 1; /*!< [5..5] Mask captured error status as an CPU0_ERR0 event for + * CPU0ERR_STAT */ + __IOM uint32_t E0_MK6 : 1; /*!< [6..6] Mask captured error status as an CPU0_ERR0 event for + * CPU0ERR_STAT */ + __IOM uint32_t E0_MK7 : 1; /*!< [7..7] Mask captured error status as an CPU0_ERR0 event for + * CPU0ERR_STAT */ + __IOM uint32_t E0_MK8 : 1; /*!< [8..8] Mask captured error status as an CPU0_ERR0 event for + * CPU0ERR_STAT */ + __IOM uint32_t E0_MK9 : 1; /*!< [9..9] Mask captured error status as an CPU0_ERR0 event for + * CPU0ERR_STAT */ + __IOM uint32_t E0_MK10 : 1; /*!< [10..10] Mask captured error status as an CPU0_ERR0 event for + * CPU0ERR_STAT */ + __IOM uint32_t E0_MK11 : 1; /*!< [11..11] Mask captured error status as an CPU0_ERR0 event for + * CPU0ERR_STAT */ + __IOM uint32_t E0_MK12 : 1; /*!< [12..12] Mask captured error status as an CPU0_ERR0 event for + * CPU0ERR_STAT */ + __IOM uint32_t E0_MK13 : 1; /*!< [13..13] Mask captured error status as an CPU0_ERR0 event for + * CPU0ERR_STAT */ + __IOM uint32_t E0_MK14 : 1; /*!< [14..14] Mask captured error status as an CPU0_ERR0 event for + * CPU0ERR_STAT */ + __IOM uint32_t E0_MK15 : 1; /*!< [15..15] Mask captured error status as an CPU0_ERR0 event for + * CPU0ERR_STAT */ + __IOM uint32_t E0_MK16 : 1; /*!< [16..16] Mask captured error status as an CPU0_ERR0 event for + * CPU0ERR_STAT */ + __IOM uint32_t E0_MK17 : 1; /*!< [17..17] Mask captured error status as an CPU0_ERR0 event for + * CPU0ERR_STAT */ + __IOM uint32_t E0_MK18 : 1; /*!< [18..18] Mask captured error status as an CPU0_ERR0 event for + * CPU0ERR_STAT */ + __IOM uint32_t E0_MK19 : 1; /*!< [19..19] Mask captured error status as an CPU0_ERR0 event for + * CPU0ERR_STAT */ + __IOM uint32_t E0_MK20 : 1; /*!< [20..20] Mask captured error status as an CPU0_ERR0 event for + * CPU0ERR_STAT */ + __IOM uint32_t E0_MK21 : 1; /*!< [21..21] Mask captured error status as an CPU0_ERR0 event for + * CPU0ERR_STAT */ + __IOM uint32_t E0_MK22 : 1; /*!< [22..22] Mask captured error status as an CPU0_ERR0 event for + * CPU0ERR_STAT */ + __IOM uint32_t E0_MK23 : 1; /*!< [23..23] Mask captured error status as an CPU0_ERR0 event for + * CPU0ERR_STAT */ + __IOM uint32_t E0_MK24 : 1; /*!< [24..24] Mask captured error status as an CPU0_ERR0 event for + * CPU0ERR_STAT */ + __IOM uint32_t E0_MK25 : 1; /*!< [25..25] Mask captured error status as an CPU0_ERR0 event for + * CPU0ERR_STAT */ + uint32_t : 6; + } CPU0ERR_E0MSK_b; + }; + __IM uint32_t RESERVED4; + + union + { + __IOM uint32_t PERIERR_E0MSK0; /*!< (@ 0x00000098) Peripheral E0 Error Event Mask Register 0 */ + + struct + { + __IOM uint32_t E0_MK0 : 1; /*!< [0..0] Mask captured error status as an PERI_ERR0 event for + * PERIERR_STAT0 */ + __IOM uint32_t E0_MK1 : 1; /*!< [1..1] Mask captured error status as an PERI_ERR0 event for + * PERIERR_STAT0 */ + __IOM uint32_t E0_MK2 : 1; /*!< [2..2] Mask captured error status as an PERI_ERR0 event for + * PERIERR_STAT0 */ + __IOM uint32_t E0_MK3 : 1; /*!< [3..3] Mask captured error status as an PERI_ERR0 event for + * PERIERR_STAT0 */ + __IOM uint32_t E0_MK4 : 1; /*!< [4..4] Mask captured error status as an PERI_ERR0 event for + * PERIERR_STAT0 */ + __IOM uint32_t E0_MK5 : 1; /*!< [5..5] Mask captured error status as an PERI_ERR0 event for + * PERIERR_STAT0 */ + __IOM uint32_t E0_MK6 : 1; /*!< [6..6] Mask captured error status as an PERI_ERR0 event for + * PERIERR_STAT0 */ + __IOM uint32_t E0_MK7 : 1; /*!< [7..7] Mask captured error status as an PERI_ERR0 event for + * PERIERR_STAT0 */ + uint32_t : 1; + __IOM uint32_t E0_MK9 : 1; /*!< [9..9] Mask captured error status as an PERI_ERR0 event for + * PERIERR_STAT0 */ + __IOM uint32_t E0_MK10 : 1; /*!< [10..10] Mask captured error status as an PERI_ERR0 event for + * PERIERR_STAT0 */ + __IOM uint32_t E0_MK11 : 1; /*!< [11..11] Mask captured error status as an PERI_ERR0 event for + * PERIERR_STAT0 */ + __IOM uint32_t E0_MK12 : 1; /*!< [12..12] Mask captured error status as an PERI_ERR0 event for + * PERIERR_STAT0 */ + __IOM uint32_t E0_MK13 : 1; /*!< [13..13] Mask captured error status as an PERI_ERR0 event for + * PERIERR_STAT0 */ + __IOM uint32_t E0_MK14 : 1; /*!< [14..14] Mask captured error status as an PERI_ERR0 event for + * PERIERR_STAT0 */ + __IOM uint32_t E0_MK15 : 1; /*!< [15..15] Mask captured error status as an PERI_ERR0 event for + * PERIERR_STAT0 */ + __IOM uint32_t E0_MK16 : 1; /*!< [16..16] Mask captured error status as an PERI_ERR0 event for + * PERIERR_STAT0 */ + __IOM uint32_t E0_MK17 : 1; /*!< [17..17] Mask captured error status as an PERI_ERR0 event for + * PERIERR_STAT0 */ + __IOM uint32_t E0_MK18 : 1; /*!< [18..18] Mask captured error status as an PERI_ERR0 event for + * PERIERR_STAT0 */ + __IOM uint32_t E0_MK19 : 1; /*!< [19..19] Mask captured error status as an PERI_ERR0 event for + * PERIERR_STAT0 */ + __IOM uint32_t E0_MK20 : 1; /*!< [20..20] Mask captured error status as an PERI_ERR0 event for + * PERIERR_STAT0 */ + __IOM uint32_t E0_MK21 : 1; /*!< [21..21] Mask captured error status as an PERI_ERR0 event for + * PERIERR_STAT0 */ + __IOM uint32_t E0_MK22 : 1; /*!< [22..22] Mask captured error status as an PERI_ERR0 event for + * PERIERR_STAT0 */ + __IOM uint32_t E0_MK23 : 1; /*!< [23..23] Mask captured error status as an PERI_ERR0 event for + * PERIERR_STAT0 */ + __IOM uint32_t E0_MK24 : 1; /*!< [24..24] Mask captured error status as an PERI_ERR0 event for + * PERIERR_STAT0 */ + __IOM uint32_t E0_MK25 : 1; /*!< [25..25] Mask captured error status as an PERI_ERR0 event for + * PERIERR_STAT0 */ + __IOM uint32_t E0_MK26 : 1; /*!< [26..26] Mask captured error status as an PERI_ERR0 event for + * PERIERR_STAT0 */ + __IOM uint32_t E0_MK27 : 1; /*!< [27..27] Mask captured error status as an PERI_ERR0 event for + * PERIERR_STAT0 */ + __IOM uint32_t E0_MK28 : 1; /*!< [28..28] Mask captured error status as an PERI_ERR0 event for + * PERIERR_STAT0 */ + __IOM uint32_t E0_MK29 : 1; /*!< [29..29] Mask captured error status as an PERI_ERR0 event for + * PERIERR_STAT0 */ + __IOM uint32_t E0_MK30 : 1; /*!< [30..30] Mask captured error status as an PERI_ERR0 event for + * PERIERR_STAT0 */ + __IOM uint32_t E0_MK31 : 1; /*!< [31..31] Mask captured error status as an PERI_ERR0 event for + * PERIERR_STAT0 */ + } PERIERR_E0MSK0_b; + }; + + union + { + __IOM uint32_t PERIERR_E0MSK1; /*!< (@ 0x0000009C) Peripheral E0 Error Event Mask Register 1 */ + + struct + { + __IOM uint32_t E0_MK0 : 1; /*!< [0..0] Mask captured error status as an PERI_ERR0 event for + * PERIERR_STAT1 */ + __IOM uint32_t E0_MK1 : 1; /*!< [1..1] Mask captured error status as an PERI_ERR0 event for + * PERIERR_STAT1 */ + __IOM uint32_t E0_MK2 : 1; /*!< [2..2] Mask captured error status as an PERI_ERR0 event for + * PERIERR_STAT1 */ + __IOM uint32_t E0_MK3 : 1; /*!< [3..3] Mask captured error status as an PERI_ERR0 event for + * PERIERR_STAT1 */ + __IOM uint32_t E0_MK4 : 1; /*!< [4..4] Mask captured error status as an PERI_ERR0 event for + * PERIERR_STAT1 */ + __IOM uint32_t E0_MK5 : 1; /*!< [5..5] Mask captured error status as an PERI_ERR0 event for + * PERIERR_STAT1 */ + __IOM uint32_t E0_MK6 : 1; /*!< [6..6] Mask captured error status as an PERI_ERR0 event for + * PERIERR_STAT1 */ + __IOM uint32_t E0_MK7 : 1; /*!< [7..7] Mask captured error status as an PERI_ERR0 event for + * PERIERR_STAT1 */ + __IOM uint32_t E0_MK8 : 1; /*!< [8..8] Mask captured error status as an PERI_ERR0 event for + * PERIERR_STAT1 */ + __IOM uint32_t E0_MK9 : 1; /*!< [9..9] Mask captured error status as an PERI_ERR0 event for + * PERIERR_STAT1 */ + uint32_t : 3; + __IOM uint32_t E0_MK13 : 1; /*!< [13..13] Mask captured error status as an PERI_ERR0 event for + * PERIERR_STAT1 */ + uint32_t : 1; + __IOM uint32_t E0_MK15 : 1; /*!< [15..15] Mask captured error status as an PERI_ERR0 event for + * PERIERR_STAT1 */ + __IOM uint32_t E0_MK16 : 1; /*!< [16..16] Mask captured error status as an PERI_ERR0 event for + * PERIERR_STAT1 */ + __IOM uint32_t E0_MK17 : 1; /*!< [17..17] Mask captured error status as an PERI_ERR0 event for + * PERIERR_STAT1 */ + __IOM uint32_t E0_MK18 : 1; /*!< [18..18] Mask captured error status as an PERI_ERR0 event for + * PERIERR_STAT1 */ + __IOM uint32_t E0_MK19 : 1; /*!< [19..19] Mask captured error status as an PERI_ERR0 event for + * PERIERR_STAT1 */ + __IOM uint32_t E0_MK20 : 1; /*!< [20..20] Mask captured error status as an PERI_ERR0 event for + * PERIERR_STAT1 */ + __IOM uint32_t E0_MK21 : 1; /*!< [21..21] Mask captured error status as an PERI_ERR0 event for + * PERIERR_STAT1 */ + __IOM uint32_t E0_MK22 : 1; /*!< [22..22] Mask captured error status as an PERI_ERR0 event for + * PERIERR_STAT1 */ + __IOM uint32_t E0_MK23 : 1; /*!< [23..23] Mask captured error status as an PERI_ERR0 event for + * PERIERR_STAT1 */ + __IOM uint32_t E0_MK24 : 1; /*!< [24..24] Mask captured error status as an PERI_ERR0 event for + * PERIERR_STAT1 */ + uint32_t : 2; + __IOM uint32_t E0_MK27 : 1; /*!< [27..27] Mask captured error status as an PERI_ERR0 event for + * PERIERR_STAT1 */ + __IOM uint32_t E0_MK28 : 1; /*!< [28..28] Mask captured error status as an PERI_ERR0 event for + * PERIERR_STAT1 */ + uint32_t : 3; + } PERIERR_E0MSK1_b; + }; + __IM uint32_t RESERVED5[24]; + + union + { + __IOM uint32_t CPU0ERR_E1MSK; /*!< (@ 0x00000100) CPU0 E1 Error Event Mask Register */ + + struct + { + __IOM uint32_t E1_MK0 : 1; /*!< [0..0] Mask captured error status as an CPU0_ERR1 event for + * CPU0ERR_STAT */ + __IOM uint32_t E1_MK1 : 1; /*!< [1..1] Mask captured error status as an CPU0_ERR1 event for + * CPU0ERR_STAT */ + __IOM uint32_t E1_MK2 : 1; /*!< [2..2] Mask captured error status as an CPU0_ERR1 event for + * CPU0ERR_STAT */ + __IOM uint32_t E1_MK3 : 1; /*!< [3..3] Mask captured error status as an CPU0_ERR1 event for + * CPU0ERR_STAT */ + __IOM uint32_t E1_MK4 : 1; /*!< [4..4] Mask captured error status as an CPU0_ERR1 event for + * CPU0ERR_STAT */ + __IOM uint32_t E1_MK5 : 1; /*!< [5..5] Mask captured error status as an CPU0_ERR1 event for + * CPU0ERR_STAT */ + __IOM uint32_t E1_MK6 : 1; /*!< [6..6] Mask captured error status as an CPU0_ERR1 event for + * CPU0ERR_STAT */ + __IOM uint32_t E1_MK7 : 1; /*!< [7..7] Mask captured error status as an CPU0_ERR1 event for + * CPU0ERR_STAT */ + __IOM uint32_t E1_MK8 : 1; /*!< [8..8] Mask captured error status as an CPU0_ERR1 event for + * CPU0ERR_STAT */ + __IOM uint32_t E1_MK9 : 1; /*!< [9..9] Mask captured error status as an CPU0_ERR1 event for + * CPU0ERR_STAT */ + __IOM uint32_t E1_MK10 : 1; /*!< [10..10] Mask captured error status as an CPU0_ERR1 event for + * CPU0ERR_STAT */ + __IOM uint32_t E1_MK11 : 1; /*!< [11..11] Mask captured error status as an CPU0_ERR1 event for + * CPU0ERR_STAT */ + __IOM uint32_t E1_MK12 : 1; /*!< [12..12] Mask captured error status as an CPU0_ERR1 event for + * CPU0ERR_STAT */ + __IOM uint32_t E1_MK13 : 1; /*!< [13..13] Mask captured error status as an CPU0_ERR1 event for + * CPU0ERR_STAT */ + __IOM uint32_t E1_MK14 : 1; /*!< [14..14] Mask captured error status as an CPU0_ERR1 event for + * CPU0ERR_STAT */ + __IOM uint32_t E1_MK15 : 1; /*!< [15..15] Mask captured error status as an CPU0_ERR1 event for + * CPU0ERR_STAT */ + __IOM uint32_t E1_MK16 : 1; /*!< [16..16] Mask captured error status as an CPU0_ERR1 event for + * CPU0ERR_STAT */ + __IOM uint32_t E1_MK17 : 1; /*!< [17..17] Mask captured error status as an CPU0_ERR1 event for + * CPU0ERR_STAT */ + __IOM uint32_t E1_MK18 : 1; /*!< [18..18] Mask captured error status as an CPU0_ERR1 event for + * CPU0ERR_STAT */ + __IOM uint32_t E1_MK19 : 1; /*!< [19..19] Mask captured error status as an CPU0_ERR1 event for + * CPU0ERR_STAT */ + __IOM uint32_t E1_MK20 : 1; /*!< [20..20] Mask captured error status as an CPU0_ERR1 event for + * CPU0ERR_STAT */ + __IOM uint32_t E1_MK21 : 1; /*!< [21..21] Mask captured error status as an CPU0_ERR1 event for + * CPU0ERR_STAT */ + __IOM uint32_t E1_MK22 : 1; /*!< [22..22] Mask captured error status as an CPU0_ERR1 event for + * CPU0ERR_STAT */ + __IOM uint32_t E1_MK23 : 1; /*!< [23..23] Mask captured error status as an CPU0_ERR1 event for + * CPU0ERR_STAT */ + __IOM uint32_t E1_MK24 : 1; /*!< [24..24] Mask captured error status as an CPU0_ERR1 event for + * CPU0ERR_STAT */ + __IOM uint32_t E1_MK25 : 1; /*!< [25..25] Mask captured error status as an CPU0_ERR1 event for + * CPU0ERR_STAT */ + uint32_t : 6; + } CPU0ERR_E1MSK_b; + }; + __IM uint32_t RESERVED6; + + union + { + __IOM uint32_t PERIERR_E1MSK0; /*!< (@ 0x00000108) Peripheral E1 Error Event Mask Register 0 */ + + struct + { + __IOM uint32_t E1_MK0 : 1; /*!< [0..0] Mask captured error status as an PERI_ERR1 event for + * PERIERR_STAT0 */ + __IOM uint32_t E1_MK1 : 1; /*!< [1..1] Mask captured error status as an PERI_ERR1 event for + * PERIERR_STAT0 */ + __IOM uint32_t E1_MK2 : 1; /*!< [2..2] Mask captured error status as an PERI_ERR1 event for + * PERIERR_STAT0 */ + __IOM uint32_t E1_MK3 : 1; /*!< [3..3] Mask captured error status as an PERI_ERR1 event for + * PERIERR_STAT0 */ + __IOM uint32_t E1_MK4 : 1; /*!< [4..4] Mask captured error status as an PERI_ERR1 event for + * PERIERR_STAT0 */ + __IOM uint32_t E1_MK5 : 1; /*!< [5..5] Mask captured error status as an PERI_ERR1 event for + * PERIERR_STAT0 */ + __IOM uint32_t E1_MK6 : 1; /*!< [6..6] Mask captured error status as an PERI_ERR1 event for + * PERIERR_STAT0 */ + __IOM uint32_t E1_MK7 : 1; /*!< [7..7] Mask captured error status as an PERI_ERR1 event for + * PERIERR_STAT0 */ + uint32_t : 1; + __IOM uint32_t E1_MK9 : 1; /*!< [9..9] Mask captured error status as an PERI_ERR1 event for + * PERIERR_STAT0 */ + __IOM uint32_t E1_MK10 : 1; /*!< [10..10] Mask captured error status as an PERI_ERR1 event for + * PERIERR_STAT0 */ + __IOM uint32_t E1_MK11 : 1; /*!< [11..11] Mask captured error status as an PERI_ERR1 event for + * PERIERR_STAT0 */ + __IOM uint32_t E1_MK12 : 1; /*!< [12..12] Mask captured error status as an PERI_ERR1 event for + * PERIERR_STAT0 */ + __IOM uint32_t E1_MK13 : 1; /*!< [13..13] Mask captured error status as an PERI_ERR1 event for + * PERIERR_STAT0 */ + __IOM uint32_t E1_MK14 : 1; /*!< [14..14] Mask captured error status as an PERI_ERR1 event for + * PERIERR_STAT0 */ + __IOM uint32_t E1_MK15 : 1; /*!< [15..15] Mask captured error status as an PERI_ERR1 event for + * PERIERR_STAT0 */ + __IOM uint32_t E1_MK16 : 1; /*!< [16..16] Mask captured error status as an PERI_ERR1 event for + * PERIERR_STAT0 */ + __IOM uint32_t E1_MK17 : 1; /*!< [17..17] Mask captured error status as an PERI_ERR1 event for + * PERIERR_STAT0 */ + __IOM uint32_t E1_MK18 : 1; /*!< [18..18] Mask captured error status as an PERI_ERR1 event for + * PERIERR_STAT0 */ + __IOM uint32_t E1_MK19 : 1; /*!< [19..19] Mask captured error status as an PERI_ERR1 event for + * PERIERR_STAT0 */ + __IOM uint32_t E1_MK20 : 1; /*!< [20..20] Mask captured error status as an PERI_ERR1 event for + * PERIERR_STAT0 */ + __IOM uint32_t E1_MK21 : 1; /*!< [21..21] Mask captured error status as an PERI_ERR1 event for + * PERIERR_STAT0 */ + __IOM uint32_t E1_MK22 : 1; /*!< [22..22] Mask captured error status as an PERI_ERR1 event for + * PERIERR_STAT0 */ + __IOM uint32_t E1_MK23 : 1; /*!< [23..23] Mask captured error status as an PERI_ERR1 event for + * PERIERR_STAT0 */ + __IOM uint32_t E1_MK24 : 1; /*!< [24..24] Mask captured error status as an PERI_ERR1 event for + * PERIERR_STAT0 */ + __IOM uint32_t E1_MK25 : 1; /*!< [25..25] Mask captured error status as an PERI_ERR1 event for + * PERIERR_STAT0 */ + __IOM uint32_t E1_MK26 : 1; /*!< [26..26] Mask captured error status as an PERI_ERR1 event for + * PERIERR_STAT0 */ + __IOM uint32_t E1_MK27 : 1; /*!< [27..27] Mask captured error status as an PERI_ERR1 event for + * PERIERR_STAT0 */ + __IOM uint32_t E1_MK28 : 1; /*!< [28..28] Mask captured error status as an PERI_ERR1 event for + * PERIERR_STAT0 */ + __IOM uint32_t E1_MK29 : 1; /*!< [29..29] Mask captured error status as an PERI_ERR1 event for + * PERIERR_STAT0 */ + __IOM uint32_t E1_MK30 : 1; /*!< [30..30] Mask captured error status as an PERI_ERR1 event for + * PERIERR_STAT0 */ + __IOM uint32_t E1_MK31 : 1; /*!< [31..31] Mask captured error status as an PERI_ERR1 event for + * PERIERR_STAT0 */ + } PERIERR_E1MSK0_b; + }; + + union + { + __IOM uint32_t PERIERR_E1MSK1; /*!< (@ 0x0000010C) Peripheral E1 Error Event Mask Register 1 */ + + struct + { + __IOM uint32_t E1_MK0 : 1; /*!< [0..0] Mask captured error status as an PERI_ERR1 event for + * PERIERR_STAT1 */ + __IOM uint32_t E1_MK1 : 1; /*!< [1..1] Mask captured error status as an PERI_ERR1 event for + * PERIERR_STAT1 */ + __IOM uint32_t E1_MK2 : 1; /*!< [2..2] Mask captured error status as an PERI_ERR1 event for + * PERIERR_STAT1 */ + __IOM uint32_t E1_MK3 : 1; /*!< [3..3] Mask captured error status as an PERI_ERR1 event for + * PERIERR_STAT1 */ + __IOM uint32_t E1_MK4 : 1; /*!< [4..4] Mask captured error status as an PERI_ERR1 event for + * PERIERR_STAT1 */ + __IOM uint32_t E1_MK5 : 1; /*!< [5..5] Mask captured error status as an PERI_ERR1 event for + * PERIERR_STAT1 */ + __IOM uint32_t E1_MK6 : 1; /*!< [6..6] Mask captured error status as an PERI_ERR1 event for + * PERIERR_STAT1 */ + __IOM uint32_t E1_MK7 : 1; /*!< [7..7] Mask captured error status as an PERI_ERR1 event for + * PERIERR_STAT1 */ + __IOM uint32_t E1_MK8 : 1; /*!< [8..8] Mask captured error status as an PERI_ERR1 event for + * PERIERR_STAT1 */ + __IOM uint32_t E1_MK9 : 1; /*!< [9..9] Mask captured error status as an PERI_ERR1 event for + * PERIERR_STAT1 */ + uint32_t : 3; + __IOM uint32_t E1_MK13 : 1; /*!< [13..13] Mask captured error status as an PERI_ERR1 event for + * PERIERR_STAT1 */ + uint32_t : 1; + __IOM uint32_t E1_MK15 : 1; /*!< [15..15] Mask captured error status as an PERI_ERR1 event for + * PERIERR_STAT1 */ + __IOM uint32_t E1_MK16 : 1; /*!< [16..16] Mask captured error status as an PERI_ERR1 event for + * PERIERR_STAT1 */ + __IOM uint32_t E1_MK17 : 1; /*!< [17..17] Mask captured error status as an PERI_ERR1 event for + * PERIERR_STAT1 */ + __IOM uint32_t E1_MK18 : 1; /*!< [18..18] Mask captured error status as an PERI_ERR1 event for + * PERIERR_STAT1 */ + __IOM uint32_t E1_MK19 : 1; /*!< [19..19] Mask captured error status as an PERI_ERR1 event for + * PERIERR_STAT1 */ + __IOM uint32_t E1_MK20 : 1; /*!< [20..20] Mask captured error status as an PERI_ERR1 event for + * PERIERR_STAT1 */ + __IOM uint32_t E1_MK21 : 1; /*!< [21..21] Mask captured error status as an PERI_ERR1 event for + * PERIERR_STAT1 */ + __IOM uint32_t E1_MK22 : 1; /*!< [22..22] Mask captured error status as an PERI_ERR1 event for + * PERIERR_STAT1 */ + __IOM uint32_t E1_MK23 : 1; /*!< [23..23] Mask captured error status as an PERI_ERR1 event for + * PERIERR_STAT1 */ + __IOM uint32_t E1_MK24 : 1; /*!< [24..24] Mask captured error status as an PERI_ERR1 event for + * PERIERR_STAT1 */ + uint32_t : 2; + __IOM uint32_t E1_MK27 : 1; /*!< [27..27] Mask captured error status as an PERI_ERR1 event for + * PERIERR_STAT1 */ + __IOM uint32_t E1_MK28 : 1; /*!< [28..28] Mask captured error status as an PERI_ERR1 event for + * PERIERR_STAT1 */ + uint32_t : 3; + } PERIERR_E1MSK1_b; + }; +} R_ICU_Type; /*!< Size = 272 (0x110) */ + +/* =========================================================================================================================== */ +/* ================ R_SYSC_S ================ */ +/* =========================================================================================================================== */ + +/** + * @brief Register Write Protection for Safety Area (R_SYSC_S) + */ + +typedef struct /*!< (@ 0x81280000) R_SYSC_S Structure */ +{ + __IM uint32_t RESERVED; + + union + { + __IOM uint32_t SCKCR2; /*!< (@ 0x00000004) System Clock Control Register 2 */ + + struct + { + __IOM uint32_t FSELCPU0 : 1; /*!< [0..0] Set the frequency of the clock provided to Coretex-R52 + * CPU0 in combination with bit 5 (DIVSELSUB). The combination + * is shown below. */ + uint32_t : 4; + __IOM uint32_t DIVSELSUB : 1; /*!< [5..5] Select the base clock frequency for peripheral module. */ + uint32_t : 18; + __IOM uint32_t SPI3ASYNCSEL : 1; /*!< [24..24] Select clock frequency when asynchronous serial clock + * is selected in SPI3 */ + __IOM uint32_t SCI5ASYNCSEL : 1; /*!< [25..25] Select clock frequency when asynchronous serial clock + * is selected in SCI5 */ + uint32_t : 6; + } SCKCR2_b; + }; + __IM uint32_t RESERVED1[6]; + + union + { + __IM uint32_t PLL0MON; /*!< (@ 0x00000020) PLL0 Monitor Register */ + + struct + { + __IM uint32_t PLL0MON : 1; /*!< [0..0] PLL0 Lock State Monitor */ + uint32_t : 31; + } PLL0MON_b; + }; + __IM uint32_t RESERVED2[7]; + + union + { + __IM uint32_t PLL1MON; /*!< (@ 0x00000040) PLL1 Monitor Register */ + + struct + { + __IM uint32_t PLL1MON : 1; /*!< [0..0] PLL1 Lock State Monitor */ + uint32_t : 31; + } PLL1MON_b; + }; + __IM uint32_t RESERVED3[3]; + + union + { + __IOM uint32_t PLL1EN; /*!< (@ 0x00000050) PLL1 Enable Register */ + + struct + { + __IOM uint32_t PLL1EN : 1; /*!< [0..0] PLL1 Enable */ + uint32_t : 31; + } PLL1EN_b; + }; + __IM uint32_t RESERVED4[7]; + + union + { + __IOM uint32_t LOCOCR; /*!< (@ 0x00000070) Low-Speed On-Chip Oscillator Control Register */ + + struct + { + __IOM uint32_t LCSTP : 1; /*!< [0..0] LOCO Stop */ + uint32_t : 31; + } LOCOCR_b; + }; + __IM uint32_t RESERVED5[3]; + + union + { + __IOM uint32_t HIZCTRLEN; /*!< (@ 0x00000080) High-Impedance Control Enable Register */ + + struct + { + __IOM uint32_t CLMA3MASK : 1; /*!< [0..0] CLMA3 error mask to POE3 and POEG */ + __IOM uint32_t CLMA0MASK : 1; /*!< [1..1] CLMA0 error mask to POE3 and POEG */ + __IOM uint32_t CLMA1MASK : 1; /*!< [2..2] CLMA1 error mask to POE3 and POEG */ + uint32_t : 29; + } HIZCTRLEN_b; + }; + __IM uint32_t RESERVED6[99]; + + union + { + __OM uint32_t SWRSYS; /*!< (@ 0x00000210) System Software Reset Register */ + + struct + { + __OM uint32_t SWR : 32; /*!< [31..0] System Software Reset */ + } SWRSYS_b; + }; + __IM uint32_t RESERVED7[3]; + + union + { + __IOM uint32_t SWRCPU0; /*!< (@ 0x00000220) CPU0 Software Reset Register */ + + struct + { + __IOM uint32_t SWR : 32; /*!< [31..0] CPU0 Software Reset */ + } SWRCPU0_b; + }; + __IM uint32_t RESERVED8[15]; + + union + { + __IOM uint32_t MRCTLI; /*!< (@ 0x00000260) Module Reset Control Register I */ + + struct + { + __IOM uint32_t MRCTLI00 : 1; /*!< [0..0] PHOSTIF Reset Control */ + __IOM uint32_t MRCTLI01 : 1; /*!< [1..1] SHOSTIF (Master bus clock domain) Reset Control */ + __IOM uint32_t MRCTLI02 : 1; /*!< [2..2] SHOSTIF (Slave bus clock domain) Reset Control */ + __IOM uint32_t MRCTLI03 : 1; /*!< [3..3] SHOSTIF (IP clock domain) Reset Control */ + uint32_t : 28; + } MRCTLI_b; + }; + __IM uint32_t RESERVED9[44]; + + union + { + __IOM uint32_t MSTPCRF; /*!< (@ 0x00000314) Module Stop Control Register F */ + + struct + { + __IOM uint32_t MSTPCRF00 : 1; /*!< [0..0] Trace Clock for Debugging Interface Module Stop */ + uint32_t : 31; + } MSTPCRF_b; + }; + + union + { + __IOM uint32_t MSTPCRG; /*!< (@ 0x00000318) Module Stop Control Register G */ + + struct + { + __IOM uint32_t MSTPCRG00 : 1; /*!< [0..0] SCI Unit 5 Module Stop */ + __IOM uint32_t MSTPCRG01 : 1; /*!< [1..1] IIC Unit 2 Module Stop */ + __IOM uint32_t MSTPCRG02 : 1; /*!< [2..2] SPI Unit 3 Module Stop */ + __IOM uint32_t MSTPCRG03 : 1; /*!< [3..3] GPT Unit 2 Module Stop */ + __IOM uint32_t MSTPCRG04 : 1; /*!< [4..4] CRC Unit 1 Module Stop */ + __IOM uint32_t MSTPCRG05 : 1; /*!< [5..5] RTC Module Stop */ + uint32_t : 2; + __IOM uint32_t MSTPCRG08 : 1; /*!< [8..8] CLMA3 Module Stop */ + __IOM uint32_t MSTPCRG09 : 1; /*!< [9..9] CLMA0 Module Stop */ + __IOM uint32_t MSTPCRG10 : 1; /*!< [10..10] CLMA1 Module Stop */ + __IOM uint32_t MSTPCRG11 : 1; /*!< [11..11] CLMA2 Module Stop */ + uint32_t : 20; + } MSTPCRG_b; + }; + __IM uint32_t RESERVED10; + + union + { + __IOM uint32_t MSTPCRI; /*!< (@ 0x00000320) Module Stop Control Register I */ + + struct + { + __IOM uint32_t MSTPCRI00 : 1; /*!< [0..0] PHOSTIF Module Stop */ + __IOM uint32_t MSTPCRI01 : 1; /*!< [1..1] SHOSTIF Module Stop */ + uint32_t : 30; + } MSTPCRI_b; + }; +} R_SYSC_S_Type; /*!< Size = 804 (0x324) */ + +/* =========================================================================================================================== */ +/* ================ R_CLMA0 ================ */ +/* =========================================================================================================================== */ + +/** + * @brief Clock Monitor Circuit 0 (R_CLMA0) + */ + +typedef struct /*!< (@ 0x81280800) R_CLMA0 Structure */ +{ + union + { + __IOM uint8_t CTL0; /*!< (@ 0x00000000) CLMA Control Register 0 */ + + struct + { + __IOM uint8_t CLME : 1; /*!< [0..0] Clock Monitor m Enable (m = 0 to 3) */ + uint8_t : 7; + } CTL0_b; + }; + __IM uint8_t RESERVED; + __IM uint16_t RESERVED1[3]; + + union + { + __IOM uint16_t CMPL; /*!< (@ 0x00000008) CLMA Compare Register L */ + + struct + { + __IOM uint16_t CMPL : 12; /*!< [11..0] Clock Monitor m Compare L (m = 0 to 3) */ + uint16_t : 4; + } CMPL_b; + }; + __IM uint16_t RESERVED2; + + union + { + __IOM uint16_t CMPH; /*!< (@ 0x0000000C) CLMA Compare Register H */ + + struct + { + __IOM uint16_t CMPH : 12; /*!< [11..0] Clock Monitor m Compare H (m = 0 to 3) */ + uint16_t : 4; + } CMPH_b; + }; + __IM uint16_t RESERVED3; + __OM uint8_t PCMD; /*!< (@ 0x00000010) CLMA Command Register */ + __IM uint8_t RESERVED4; + __IM uint16_t RESERVED5; + + union + { + __IM uint8_t PROTSR; /*!< (@ 0x00000014) CLMA Protection Status Register */ + + struct + { + __IM uint8_t PRERR : 1; /*!< [0..0] CLMAm Error (m = 0 to 3) */ + uint8_t : 7; + } PROTSR_b; + }; + __IM uint8_t RESERVED6; + __IM uint16_t RESERVED7; +} R_CLMA0_Type; /*!< Size = 24 (0x18) */ + +/* =========================================================================================================================== */ +/* ================ R_MPU0 ================ */ +/* =========================================================================================================================== */ + +/** + * @brief Master MPU 0 (R_MPU0) + */ + +typedef struct /*!< (@ 0x81281100) R_MPU0 Structure */ +{ + __IOM R_MPU0_RGN_Type RGN[8]; /*!< (@ 0x00000000) Master MPU Safety Region Start Address Register + * [0..7] */ + + union + { + __IOM uint32_t ERRINF_R; /*!< (@ 0x00000080) Master MPU Error Information Register for AXI + * type */ + + struct + { + __IOM uint32_t VALID : 1; /*!< [0..0] Validity of access error information */ + __IM uint32_t RW : 1; /*!< [1..1] Access error type */ + __IM uint32_t ERRADDR : 30; /*!< [31..2] Access error address */ + } ERRINF_R_b; + }; + + union + { + __IOM uint32_t ERRINF_W; /*!< (@ 0x00000084) Master MPU Error Information Register for AXI + * type */ + + struct + { + __IOM uint32_t VALID : 1; /*!< [0..0] Validity of access error information */ + __IM uint32_t RW : 1; /*!< [1..1] Access error type */ + __IM uint32_t ERRADDR : 30; /*!< [31..2] Access error address */ + } ERRINF_W_b; + }; +} R_MPU0_Type; /*!< Size = 136 (0x88) */ + +/* =========================================================================================================================== */ +/* ================ R_MPU3 ================ */ +/* =========================================================================================================================== */ + +/** + * @brief Master MPU 3 (R_MPU3) + */ + +typedef struct /*!< (@ 0x81281400) R_MPU3 Structure */ +{ + __IOM R_MPU0_RGN_Type RGN[8]; /*!< (@ 0x00000000) Master MPU Safety Region Start Address Register + * [0..7] */ + + union + { + __IOM uint32_t ERRINF; /*!< (@ 0x00000080) Master MPU Error Information Register for AHB + * type */ + + struct + { + __IOM uint32_t VALID : 1; /*!< [0..0] Validity of Access Error Information */ + __IM uint32_t RW : 1; /*!< [1..1] Access error type */ + __IM uint32_t ERRADDR : 30; /*!< [31..2] Access Error Address */ + } ERRINF_b; + }; +} R_MPU3_Type; /*!< Size = 132 (0x84) */ + +/* =========================================================================================================================== */ +/* ================ R_SYSRAM_CTL ================ */ +/* =========================================================================================================================== */ + +/** + * @brief System SRAM Control (R_SYSRAM_CTL) + */ + +typedef struct /*!< (@ 0x81281800) R_SYSRAM_CTL Structure */ +{ + union + { + __IOM uint32_t SYSRAM_CTRL0; /*!< (@ 0x00000000) System SRAM Control Register 0 */ + + struct + { + __IOM uint32_t VECEN : 1; /*!< [0..0] Enables or disables error correction with ECC */ + uint32_t : 15; + __IOM uint32_t VRWEN : 4; /*!< [19..16] Enables write for each page of RAM */ + __IOM uint32_t VCEN : 1; /*!< [20..20] Enables access to RAM */ + __IOM uint32_t VLWEN : 1; /*!< [21..21] Enables write for RAM */ + uint32_t : 2; + __IOM uint32_t MKICCAXIERR : 1; /*!< [24..24] Controls AXI-SLVERR issuance for ECC 2-bit errors */ + uint32_t : 7; + } SYSRAM_CTRL0_b; + }; + __IM uint32_t RESERVED[3]; + + union + { + __IOM uint32_t SYSRAM_CTRL1; /*!< (@ 0x00000010) System SRAM Control Register 1 */ + + struct + { + __IOM uint32_t VECEN : 1; /*!< [0..0] Enables or disables error correction with ECC */ + uint32_t : 15; + __IOM uint32_t VRWEN : 4; /*!< [19..16] Enables write for each page of RAM */ + __IOM uint32_t VCEN : 1; /*!< [20..20] Enables access to RAM */ + __IOM uint32_t VLWEN : 1; /*!< [21..21] Enables write for RAM */ + uint32_t : 2; + __IOM uint32_t MKICCAXIERR : 1; /*!< [24..24] Controls AXI-SLVERR issuance for ECC 2-bit errors */ + uint32_t : 7; + } SYSRAM_CTRL1_b; + }; + __IM uint32_t RESERVED1[3]; + + union + { + __IOM uint32_t SYSRAM_CTRL2; /*!< (@ 0x00000020) System SRAM Control Register 2 */ + + struct + { + __IOM uint32_t VECEN : 1; /*!< [0..0] Enables or disables error correction with ECC */ + uint32_t : 15; + __IOM uint32_t VRWEN : 4; /*!< [19..16] Enables write for each page of RAM */ + __IOM uint32_t VCEN : 1; /*!< [20..20] Enables access to RAM */ + __IOM uint32_t VLWEN : 1; /*!< [21..21] Enables write for RAM */ + uint32_t : 2; + __IOM uint32_t MKICCAXIERR : 1; /*!< [24..24] Controls AXI-SLVERR issuance for ECC 2-bit errors */ + uint32_t : 7; + } SYSRAM_CTRL2_b; + }; +} R_SYSRAM_CTL_Type; /*!< Size = 36 (0x24) */ + +/* =========================================================================================================================== */ +/* ================ R_SHOSTIF_CFG ================ */ +/* =========================================================================================================================== */ + +/** + * @brief Serial Host Interface Configuration (R_SHOSTIF_CFG) + */ + +typedef struct /*!< (@ 0x81281920) R_SHOSTIF_CFG Structure */ +{ + union + { + __IOM uint32_t SHCFG; /*!< (@ 0x00000000) SHOSTIF Configuration Register */ + + struct + { + __IOM uint32_t SPIMODE : 2; /*!< [1..0] SPI Frame Format Select */ + __IOM uint32_t BYTESWAP : 1; /*!< [2..2] Byte Swap Mode */ + __IOM uint32_t ADDRESSING : 1; /*!< [3..3] Addressing Mode */ + __IM uint32_t SLEEP : 1; /*!< [4..4] SHOSTIF Enable Flag Monitor */ + uint32_t : 11; + __IOM uint32_t INTMASKI : 6; /*!< [21..16] Interrupt Mask Enable for Internal Interrupt (SHOST_INT) */ + uint32_t : 2; + __IOM uint32_t INTMASKE : 6; /*!< [29..24] Interrupt Mask Enable for External Interrupt (HSPI_INT# + * signal) */ + uint32_t : 2; + } SHCFG_b; + }; +} R_SHOSTIF_CFG_Type; /*!< Size = 4 (0x4) */ + +/* =========================================================================================================================== */ +/* ================ R_PHOSTIF_CFG ================ */ +/* =========================================================================================================================== */ + +/** + * @brief Parallel Host Interface Configuration (R_PHOSTIF_CFG) + */ + +typedef struct /*!< (@ 0x81281930) R_PHOSTIF_CFG Structure */ +{ + union + { + __IOM uint32_t PHCFG; /*!< (@ 0x00000000) PHOSTIF Configureation Register */ + + struct + { + __IOM uint32_t MEMIFSEL : 1; /*!< [0..0] MEMIFSEL */ + uint32_t : 3; + __IOM uint32_t BUSSSEL : 1; /*!< [4..4] BUSSSEL */ + uint32_t : 3; + __IOM uint32_t HIFSYNC : 1; /*!< [8..8] HIFSYNC */ + uint32_t : 3; + __IOM uint32_t MEMCSEL : 1; /*!< [12..12] MEMCSEL */ + uint32_t : 3; + __IOM uint32_t HWRZSEL : 1; /*!< [16..16] HWRZSEL */ + uint32_t : 3; + __IOM uint32_t ADMUXMODE : 1; /*!< [20..20] ADMUXMODE */ + uint32_t : 11; + } PHCFG_b; + }; + + union + { + __IOM uint32_t PHACC; /*!< (@ 0x00000004) PHOSTIF Register Access Control Register */ + + struct + { + __IOM uint32_t HIFRDYSEL : 1; /*!< [0..0] HIFRDYSEL */ + uint32_t : 7; + __IOM uint32_t HIFBCCSEL : 1; /*!< [8..8] HIFBCCSEL */ + __IOM uint32_t HIFBTCSEL : 1; /*!< [9..9] HIFBTCSEL */ + __IOM uint32_t HIFPRCSEL : 1; /*!< [10..10] HIFPRCSEL */ + __IOM uint32_t HIFIRCSEL : 1; /*!< [11..11] HIFIRCSEL */ + __IOM uint32_t HIFXALSEL : 1; /*!< [12..12] HIFXALSEL */ + __IOM uint32_t HIFXAHSEL : 1; /*!< [13..13] HIFXAHSEL */ + __IOM uint32_t HIFEXT0SEL : 1; /*!< [14..14] HIFEXT0SEL */ + __IOM uint32_t HIFEXT1SEL : 1; /*!< [15..15] HIFEXT1SEL */ + __IOM uint32_t CSSWAP : 1; /*!< [16..16] CSSWAP */ + __IOM uint32_t BSCADMUX : 1; /*!< [17..17] BSCADMUX */ + uint32_t : 14; + } PHACC_b; + }; +} R_PHOSTIF_CFG_Type; /*!< Size = 8 (0x8) */ + +/* =========================================================================================================================== */ +/* ================ R_RWP_S ================ */ +/* =========================================================================================================================== */ + +/** + * @brief Register Write Protection for Safety Area (R_RWP_S) + */ + +typedef struct /*!< (@ 0x81281A00) R_RWP_S Structure */ +{ + union + { + __IOM uint32_t PRCRS; /*!< (@ 0x00000000) Safety Area Protect Register */ + + struct + { + __IOM uint32_t PRC0 : 1; /*!< [0..0] Protect 0 */ + __IOM uint32_t PRC1 : 1; /*!< [1..1] Protect 1 */ + __IOM uint32_t PRC2 : 1; /*!< [2..2] Protect 2 */ + __IOM uint32_t PRC3 : 1; /*!< [3..3] Protect 3 */ + uint32_t : 4; + __OM uint32_t PRKEY : 8; /*!< [15..8] PRC Key Code */ + uint32_t : 16; + } PRCRS_b; + }; +} R_RWP_S_Type; /*!< Size = 4 (0x4) */ + +/* =========================================================================================================================== */ +/* ================ R_MTU ================ */ +/* =========================================================================================================================== */ + +/** + * @brief Multi-Function Timer Pulse Unit (R_MTU) + */ + +typedef struct /*!< (@ 0x90001000) R_MTU Structure */ +{ + __IM uint16_t RESERVED[261]; + + union + { + __IOM uint8_t TOERA; /*!< (@ 0x0000020A) Timer Output Master Enable Register A */ + + struct + { + __IOM uint8_t OE3B : 1; /*!< [0..0] Master Enable MTIOC3B */ + __IOM uint8_t OE4A : 1; /*!< [1..1] Master Enable MTIOC4A */ + __IOM uint8_t OE4B : 1; /*!< [2..2] Master Enable MTIOC4B */ + __IOM uint8_t OE3D : 1; /*!< [3..3] Master Enable MTIOC3D */ + __IOM uint8_t OE4C : 1; /*!< [4..4] Master Enable MTIOC4C */ + __IOM uint8_t OE4D : 1; /*!< [5..5] Master Enable MTIOC4D */ + uint8_t : 2; + } TOERA_b; + }; + __IM uint8_t RESERVED1[2]; + + union + { + __IOM uint8_t TGCRA; /*!< (@ 0x0000020D) Timer Gate Control Register A */ + + struct + { + __IOM uint8_t UF : 1; /*!< [0..0] Output Phase Switch */ + __IOM uint8_t VF : 1; /*!< [1..1] Output Phase Switch */ + __IOM uint8_t WF : 1; /*!< [2..2] Output Phase Switch */ + __IOM uint8_t FB : 1; /*!< [3..3] External Feedback Signal Enable */ + __IOM uint8_t P : 1; /*!< [4..4] Positive-Phase Output (P) Control */ + __IOM uint8_t N : 1; /*!< [5..5] Negative-Phase Output (N) Control */ + __IOM uint8_t BDC : 1; /*!< [6..6] Brushless DC Motor */ + uint8_t : 1; + } TGCRA_b; + }; + + union + { + __IOM uint8_t TOCR1A; /*!< (@ 0x0000020E) Timer Output Control Register 1A */ + + struct + { + __IOM uint8_t OLSP : 1; /*!< [0..0] Output Level Select P */ + __IOM uint8_t OLSN : 1; /*!< [1..1] Output Level Select N */ + __IOM uint8_t TOCS : 1; /*!< [2..2] TOC Select */ + __IOM uint8_t TOCL : 1; /*!< [3..3] TOC Register Write Protection */ + uint8_t : 2; + __IOM uint8_t PSYE : 1; /*!< [6..6] PWM Synchronous Output Enable */ + uint8_t : 1; + } TOCR1A_b; + }; + + union + { + __IOM uint8_t TOCR2A; /*!< (@ 0x0000020F) Timer Output Control Register 2A */ + + struct + { + __IOM uint8_t OLS1P : 1; /*!< [0..0] Output Level Select 1P */ + __IOM uint8_t OLS1N : 1; /*!< [1..1] Output Level Select 1N */ + __IOM uint8_t OLS2P : 1; /*!< [2..2] Output Level Select 2P */ + __IOM uint8_t OLS2N : 1; /*!< [3..3] Output Level Select 2N */ + __IOM uint8_t OLS3P : 1; /*!< [4..4] Output Level Select 3P */ + __IOM uint8_t OLS3N : 1; /*!< [5..5] Output Level Select 3N */ + __IOM uint8_t BF : 2; /*!< [7..6] TOLBR Buffer Transfer Timing Select */ + } TOCR2A_b; + }; + __IM uint16_t RESERVED2[2]; + __IOM uint16_t TCDRA; /*!< (@ 0x00000214) Timer Cycle Data Register A */ + __IOM uint16_t TDDRA; /*!< (@ 0x00000216) Timer Dead Time Data Register A */ + __IM uint16_t RESERVED3[4]; + __IM uint16_t TCNTSA; /*!< (@ 0x00000220) Timer Subcounter A */ + __IOM uint16_t TCBRA; /*!< (@ 0x00000222) Timer Cycle Buffer Register A */ + __IM uint16_t RESERVED4[6]; + + union + { + __IOM uint8_t TITCR1A; /*!< (@ 0x00000230) Timer Interrupt Skipping Set Register 1A */ + + struct + { + __IOM uint8_t T4VCOR : 3; /*!< [2..0] TCIV4 Interrupt Skipping Count Setting */ + __IOM uint8_t T4VEN : 1; /*!< [3..3] TCIV4 Interrupt Skipping Enable */ + __IOM uint8_t T3ACOR : 3; /*!< [6..4] TGIA3 Interrupt Skipping Count Setting */ + __IOM uint8_t T3AEN : 1; /*!< [7..7] TGIA3 Interrupt Skipping Enable */ + } TITCR1A_b; + }; + + union + { + __IM uint8_t TITCNT1A; /*!< (@ 0x00000231) Timer Interrupt Skipping Counter 1A */ + + struct + { + __IM uint8_t T4VCNT : 3; /*!< [2..0] TCIV4 Interrupt Counter */ + uint8_t : 1; + __IM uint8_t T3ACNT : 3; /*!< [6..4] TGIA3 Interrupt Counter */ + uint8_t : 1; + } TITCNT1A_b; + }; + + union + { + __IOM uint8_t TBTERA; /*!< (@ 0x00000232) Timer Buffer Transfer Set Register A */ + + struct + { + __IOM uint8_t BTE : 2; /*!< [1..0] Buffer Transfer Disable and Interrupt Skipping Link Setting */ + uint8_t : 6; + } TBTERA_b; + }; + __IM uint8_t RESERVED5; + + union + { + __IOM uint8_t TDERA; /*!< (@ 0x00000234) Timer Dead Time Enable Register A */ + + struct + { + __IOM uint8_t TDER : 1; /*!< [0..0] Dead Time Enable */ + uint8_t : 7; + } TDERA_b; + }; + __IM uint8_t RESERVED6; + + union + { + __IOM uint8_t TOLBRA; /*!< (@ 0x00000236) Timer Output Level Buffer Register A */ + + struct + { + __IOM uint8_t OLS1P : 1; /*!< [0..0] Output Level Select 1P */ + __IOM uint8_t OLS1N : 1; /*!< [1..1] Output Level Select 1N */ + __IOM uint8_t OLS2P : 1; /*!< [2..2] Output Level Select 2P */ + __IOM uint8_t OLS2N : 1; /*!< [3..3] Output Level Select 2N */ + __IOM uint8_t OLS3P : 1; /*!< [4..4] Output Level Select 3P */ + __IOM uint8_t OLS3N : 1; /*!< [5..5] Output Level Select 3N */ + uint8_t : 2; + } TOLBRA_b; + }; + __IM uint8_t RESERVED7; + __IM uint16_t RESERVED8; + + union + { + __IOM uint8_t TITMRA; /*!< (@ 0x0000023A) Timer Interrupt Skipping Mode Register A */ + + struct + { + __IOM uint8_t TITM : 1; /*!< [0..0] Interrupt Skipping Function Select */ + uint8_t : 7; + } TITMRA_b; + }; + + union + { + __IOM uint8_t TITCR2A; /*!< (@ 0x0000023B) Timer Interrupt Skipping Set Register 2A */ + + struct + { + __IOM uint8_t TRG4COR : 3; /*!< [2..0] TRG4AN/TRG4BN Interrupt Skipping Count Setting */ + uint8_t : 5; + } TITCR2A_b; + }; + + union + { + __IM uint8_t TITCNT2A; /*!< (@ 0x0000023C) Timer Interrupt Skipping Counter 2A */ + + struct + { + __IM uint8_t TRG4CNT : 3; /*!< [2..0] TRG4AN/TRG4BN Interrupt Counter */ + uint8_t : 5; + } TITCNT2A_b; + }; + __IM uint8_t RESERVED9; + __IM uint16_t RESERVED10[17]; + + union + { + __IOM uint8_t TWCRA; /*!< (@ 0x00000260) Timer Waveform Control Register A */ + + struct + { + __IOM uint8_t WRE : 1; /*!< [0..0] Waveform Retain Enable */ + __IOM uint8_t SCC : 1; /*!< [1..1] Synchronous Clearing Control (Only valid in TWCRB) */ + uint8_t : 5; + __IOM uint8_t CCE : 1; /*!< [7..7] Compare Match Clear Enable */ + } TWCRA_b; + }; + __IM uint8_t RESERVED11; + __IM uint16_t RESERVED12[7]; + + union + { + __IOM uint8_t TMDR2A; /*!< (@ 0x00000270) Timer Mode Register 2A */ + + struct + { + __IOM uint8_t DRS : 1; /*!< [0..0] Double Buffer Select */ + uint8_t : 7; + } TMDR2A_b; + }; + __IM uint8_t RESERVED13; + __IM uint16_t RESERVED14[7]; + + union + { + __IOM uint8_t TSTRA; /*!< (@ 0x00000280) Timer Start Register A */ + + struct + { + __IOM uint8_t CST0 : 1; /*!< [0..0] Counter Start 0 */ + __IOM uint8_t CST1 : 1; /*!< [1..1] Counter Start 1 */ + __IOM uint8_t CST2 : 1; /*!< [2..2] Counter Start 2 */ + __IOM uint8_t CST8 : 1; /*!< [3..3] Counter Start 8 */ + uint8_t : 2; + __IOM uint8_t CST3 : 1; /*!< [6..6] Counter Start 3 */ + __IOM uint8_t CST4 : 1; /*!< [7..7] Counter Start 4 */ + } TSTRA_b; + }; + + union + { + __IOM uint8_t TSYRA; /*!< (@ 0x00000281) Timer Synchronous Register A */ + + struct + { + __IOM uint8_t SYNC0 : 1; /*!< [0..0] Timer Synchronous Operation 0 */ + __IOM uint8_t SYNC1 : 1; /*!< [1..1] Timer Synchronous Operation 1 */ + __IOM uint8_t SYNC2 : 1; /*!< [2..2] Timer Synchronous Operation 2 */ + uint8_t : 3; + __IOM uint8_t SYNC3 : 1; /*!< [6..6] Timer Synchronous Operation 3 */ + __IOM uint8_t SYNC4 : 1; /*!< [7..7] Timer Synchronous Operation 4 */ + } TSYRA_b; + }; + + union + { + __IOM uint8_t TCSYSTR; /*!< (@ 0x00000282) Timer Counter Synchronous Start Register */ + + struct + { + __IOM uint8_t SCH7 : 1; /*!< [0..0] Synchronous Start 7 */ + __IOM uint8_t SCH6 : 1; /*!< [1..1] Synchronous Start 6 */ + uint8_t : 1; + __IOM uint8_t SCH4 : 1; /*!< [3..3] Synchronous Start 4 */ + __IOM uint8_t SCH3 : 1; /*!< [4..4] Synchronous Start 3 */ + __IOM uint8_t SCH2 : 1; /*!< [5..5] Synchronous Start 2 */ + __IOM uint8_t SCH1 : 1; /*!< [6..6] Synchronous Start 1 */ + __IOM uint8_t SCH0 : 1; /*!< [7..7] Synchronous Start 0 */ + } TCSYSTR_b; + }; + __IM uint8_t RESERVED15; + + union + { + __IOM uint8_t TRWERA; /*!< (@ 0x00000284) Timer Read/Write Enable Register A */ + + struct + { + __IOM uint8_t RWE : 1; /*!< [0..0] Read/Write Enable */ + uint8_t : 7; + } TRWERA_b; + }; + __IM uint8_t RESERVED16; + __IM uint16_t RESERVED17[962]; + + union + { + __IOM uint8_t TOERB; /*!< (@ 0x00000A0A) Timer Output Master Enable Register B */ + + struct + { + __IOM uint8_t OE6B : 1; /*!< [0..0] Master Enable MTIOC6B */ + __IOM uint8_t OE7A : 1; /*!< [1..1] Master Enable MTIOC7A */ + __IOM uint8_t OE7B : 1; /*!< [2..2] Master Enable MTIOC7B */ + __IOM uint8_t OE6D : 1; /*!< [3..3] Master Enable MTIOC6D */ + __IOM uint8_t OE7C : 1; /*!< [4..4] Master Enable MTIOC7C */ + __IOM uint8_t OE7D : 1; /*!< [5..5] Master Enable MTIOC7D */ + uint8_t : 2; + } TOERB_b; + }; + __IM uint8_t RESERVED18; + __IM uint16_t RESERVED19; + + union + { + __IOM uint8_t TOCR1B; /*!< (@ 0x00000A0E) Timer Output Control Register 1B */ + + struct + { + __IOM uint8_t OLSP : 1; /*!< [0..0] Output Level Select P */ + __IOM uint8_t OLSN : 1; /*!< [1..1] Output Level Select N */ + __IOM uint8_t TOCS : 1; /*!< [2..2] TOC Select */ + __IOM uint8_t TOCL : 1; /*!< [3..3] TOC Register Write Protection */ + uint8_t : 2; + __IOM uint8_t PSYE : 1; /*!< [6..6] PWM Synchronous Output Enable */ + uint8_t : 1; + } TOCR1B_b; + }; + + union + { + __IOM uint8_t TOCR2B; /*!< (@ 0x00000A0F) Timer Output Control Register 2B */ + + struct + { + __IOM uint8_t OLS1P : 1; /*!< [0..0] Output Level Select 1P */ + __IOM uint8_t OLS1N : 1; /*!< [1..1] Output Level Select 1N */ + __IOM uint8_t OLS2P : 1; /*!< [2..2] Output Level Select 2P */ + __IOM uint8_t OLS2N : 1; /*!< [3..3] Output Level Select 2N */ + __IOM uint8_t OLS3P : 1; /*!< [4..4] Output Level Select 3P */ + __IOM uint8_t OLS3N : 1; /*!< [5..5] Output Level Select 3N */ + __IOM uint8_t BF : 2; /*!< [7..6] TOLBR Buffer Transfer Timing Select */ + } TOCR2B_b; + }; + __IM uint16_t RESERVED20[2]; + __IOM uint16_t TCDRB; /*!< (@ 0x00000A14) Timer Cycle Data Register B */ + __IOM uint16_t TDDRB; /*!< (@ 0x00000A16) Timer Dead Time Data Register B */ + __IM uint16_t RESERVED21[4]; + __IM uint16_t TCNTSB; /*!< (@ 0x00000A20) Timer Subcounter B */ + __IOM uint16_t TCBRB; /*!< (@ 0x00000A22) Timer Cycle Buffer Register B */ + __IM uint16_t RESERVED22[6]; + + union + { + __IOM uint8_t TITCR1B; /*!< (@ 0x00000A30) Timer Interrupt Skipping Set Register 1B */ + + struct + { + __IOM uint8_t T7VCOR : 3; /*!< [2..0] TCIV7 Interrupt Skipping Count Setting */ + __IOM uint8_t T7VEN : 1; /*!< [3..3] TCIV7 Interrupt Skipping Enable */ + __IOM uint8_t T6ACOR : 3; /*!< [6..4] TGIA6 Interrupt Skipping Count Setting */ + __IOM uint8_t T6AEN : 1; /*!< [7..7] TGIA6 Interrupt Skipping Enable */ + } TITCR1B_b; + }; + + union + { + __IM uint8_t TITCNT1B; /*!< (@ 0x00000A31) Timer Interrupt Skipping Counter 1B */ + + struct + { + __IM uint8_t T7VCNT : 3; /*!< [2..0] TCIV7 Interrupt Counter */ + uint8_t : 1; + __IM uint8_t T6ACNT : 3; /*!< [6..4] TGIA6 Interrupt Counter */ + uint8_t : 1; + } TITCNT1B_b; + }; + + union + { + __IOM uint8_t TBTERB; /*!< (@ 0x00000A32) Timer Buffer Transfer Set Register B */ + + struct + { + __IOM uint8_t BTE : 2; /*!< [1..0] Buffer Transfer Disable and Interrupt Skipping Link Setting */ + uint8_t : 6; + } TBTERB_b; + }; + __IM uint8_t RESERVED23; + + union + { + __IOM uint8_t TDERB; /*!< (@ 0x00000A34) Timer Dead Time Enable Register B */ + + struct + { + __IOM uint8_t TDER : 1; /*!< [0..0] Dead Time Enable */ + uint8_t : 7; + } TDERB_b; + }; + __IM uint8_t RESERVED24; + + union + { + __IOM uint8_t TOLBRB; /*!< (@ 0x00000A36) Timer Output Level Buffer Register B */ + + struct + { + __IOM uint8_t OLS1P : 1; /*!< [0..0] Output Level Select 1P */ + __IOM uint8_t OLS1N : 1; /*!< [1..1] Output Level Select 1N */ + __IOM uint8_t OLS2P : 1; /*!< [2..2] Output Level Select 2P */ + __IOM uint8_t OLS2N : 1; /*!< [3..3] Output Level Select 2N */ + __IOM uint8_t OLS3P : 1; /*!< [4..4] Output Level Select 3P */ + __IOM uint8_t OLS3N : 1; /*!< [5..5] Output Level Select 3N */ + uint8_t : 2; + } TOLBRB_b; + }; + __IM uint8_t RESERVED25; + __IM uint16_t RESERVED26; + + union + { + __IOM uint8_t TITMRB; /*!< (@ 0x00000A3A) Timer Interrupt Skipping Mode Register B */ + + struct + { + __IOM uint8_t TITM : 1; /*!< [0..0] Interrupt Skipping Function Select */ + uint8_t : 7; + } TITMRB_b; + }; + + union + { + __IOM uint8_t TITCR2B; /*!< (@ 0x00000A3B) Timer Interrupt Skipping Set Register 2B */ + + struct + { + __IOM uint8_t TRG7COR : 3; /*!< [2..0] TRG7AN/TRG7BN Interrupt Skipping Count Setting */ + uint8_t : 5; + } TITCR2B_b; + }; + + union + { + __IM uint8_t TITCNT2B; /*!< (@ 0x00000A3C) Timer Interrupt Skipping Counter 2B */ + + struct + { + __IM uint8_t TRG7CNT : 3; /*!< [2..0] TRG7AN/TRG7BN Interrupt Counter */ + uint8_t : 5; + } TITCNT2B_b; + }; + __IM uint8_t RESERVED27; + __IM uint16_t RESERVED28[17]; + + union + { + __IOM uint8_t TWCRB; /*!< (@ 0x00000A60) Timer Waveform Control Register B */ + + struct + { + __IOM uint8_t WRE : 1; /*!< [0..0] Waveform Retain Enable */ + __IOM uint8_t SCC : 1; /*!< [1..1] Synchronous Clearing Control (Only valid in TWCRB) */ + uint8_t : 5; + __IOM uint8_t CCE : 1; /*!< [7..7] Compare Match Clear Enable */ + } TWCRB_b; + }; + __IM uint8_t RESERVED29; + __IM uint16_t RESERVED30[7]; + + union + { + __IOM uint8_t TMDR2B; /*!< (@ 0x00000A70) Timer Mode Register 2B */ + + struct + { + __IOM uint8_t DRS : 1; /*!< [0..0] Double Buffer Select */ + uint8_t : 7; + } TMDR2B_b; + }; + __IM uint8_t RESERVED31; + __IM uint16_t RESERVED32[7]; + + union + { + __IOM uint8_t TSTRB; /*!< (@ 0x00000A80) Timer Start Register B */ + + struct + { + uint8_t : 6; + __IOM uint8_t CST6 : 1; /*!< [6..6] Counter Start 6 */ + __IOM uint8_t CST7 : 1; /*!< [7..7] Counter Start 7 */ + } TSTRB_b; + }; + + union + { + __IOM uint8_t TSYRB; /*!< (@ 0x00000A81) Timer Synchronous Register B */ + + struct + { + uint8_t : 6; + __IOM uint8_t SYNC6 : 1; /*!< [6..6] Timer Synchronous Operation 6 */ + __IOM uint8_t SYNC7 : 1; /*!< [7..7] Timer Synchronous Operation 7 */ + } TSYRB_b; + }; + __IM uint16_t RESERVED33; + + union + { + __IOM uint8_t TRWERB; /*!< (@ 0x00000A84) Timer Read/Write Enable Register B */ + + struct + { + __IOM uint8_t RWE : 1; /*!< [0..0] Read/Write Enable */ + uint8_t : 7; + } TRWERB_b; + }; + __IM uint8_t RESERVED34; + __IM uint16_t RESERVED35; +} R_MTU_Type; /*!< Size = 2696 (0xa88) */ + +/* =========================================================================================================================== */ +/* ================ R_MTU3 ================ */ +/* =========================================================================================================================== */ + +/** + * @brief Multi-Function Timer Pulse Unit Channel 3 (R_MTU3) + */ + +typedef struct /*!< (@ 0x90001100) R_MTU3 Structure */ +{ + __IM uint16_t RESERVED[128]; + + union + { + __IOM uint8_t TCR; /*!< (@ 0x00000100) Timer Control Register */ + + struct + { + __IOM uint8_t TPSC : 3; /*!< [2..0] Time Prescaler Select */ + __IOM uint8_t CKEG : 2; /*!< [4..3] Clock Edge Select */ + __IOM uint8_t CCLR : 3; /*!< [7..5] Counter Clear Source Select */ + } TCR_b; + }; + __IM uint8_t RESERVED1; + + union + { + __IOM uint8_t TMDR1; /*!< (@ 0x00000102) Timer Mode Register 1 */ + + struct + { + __IOM uint8_t MD : 4; /*!< [3..0] Mode Select */ + __IOM uint8_t BFA : 1; /*!< [4..4] Buffer Operation A */ + __IOM uint8_t BFB : 1; /*!< [5..5] Buffer Operation B */ + uint8_t : 2; + } TMDR1_b; + }; + __IM uint8_t RESERVED2; + + union + { + __IOM uint8_t TIORH; /*!< (@ 0x00000104) Timer I/O Control Register H */ + + struct + { + __IOM uint8_t IOA : 4; /*!< [3..0] I/O Control A */ + __IOM uint8_t IOB : 4; /*!< [7..4] I/O Control B */ + } TIORH_b; + }; + + union + { + __IOM uint8_t TIORL; /*!< (@ 0x00000105) Timer I/O Control Register L */ + + struct + { + __IOM uint8_t IOC : 4; /*!< [3..0] I/O Control A */ + __IOM uint8_t IOD : 4; /*!< [7..4] I/O Control B */ + } TIORL_b; + }; + __IM uint16_t RESERVED3; + + union + { + __IOM uint8_t TIER; /*!< (@ 0x00000108) Timer Interrupt Enable Register */ + + struct + { + __IOM uint8_t TGIEA : 1; /*!< [0..0] TGR Interrupt Enable A */ + __IOM uint8_t TGIEB : 1; /*!< [1..1] TGR Interrupt Enable B */ + __IOM uint8_t TGIEC : 1; /*!< [2..2] TGR Interrupt Enable C */ + __IOM uint8_t TGIED : 1; /*!< [3..3] TGR Interrupt Enable D */ + __IOM uint8_t TCIEV : 1; /*!< [4..4] Overflow Interrupt Enable */ + uint8_t : 2; + __IOM uint8_t TTGE : 1; /*!< [7..7] A/D Converter Start Request Enable */ + } TIER_b; + }; + __IM uint8_t RESERVED4; + __IM uint16_t RESERVED5[3]; + __IOM uint16_t TCNT; /*!< (@ 0x00000110) Timer Counter */ + __IM uint16_t RESERVED6[3]; + __IOM uint16_t TGRA; /*!< (@ 0x00000118) Timer General Register A */ + __IOM uint16_t TGRB; /*!< (@ 0x0000011A) Timer General Register B */ + __IM uint16_t RESERVED7[4]; + __IOM uint16_t TGRC; /*!< (@ 0x00000124) Timer General Register C */ + __IOM uint16_t TGRD; /*!< (@ 0x00000126) Timer General Register D */ + __IM uint16_t RESERVED8[2]; + + union + { + __IOM uint8_t TSR; /*!< (@ 0x0000012C) Timer Status Register */ + + struct + { + __IOM uint8_t TGFA : 1; /*!< [0..0] Input Capture/Output Compare Flag A */ + __IOM uint8_t TGFB : 1; /*!< [1..1] Input Capture/Output Compare Flag B */ + __IOM uint8_t TGFC : 1; /*!< [2..2] Input Capture/Output Compare Flag C */ + __IOM uint8_t TGFD : 1; /*!< [3..3] Input Capture/Output Compare Flag D */ + __IOM uint8_t TCFV : 1; /*!< [4..4] Overflow flag */ + __IOM uint8_t TCFU : 1; /*!< [5..5] Underflow flag */ + uint8_t : 1; + __IM uint8_t TCFD : 1; /*!< [7..7] Count Direction Flag */ + } TSR_b; + }; + __IM uint8_t RESERVED9; + __IM uint16_t RESERVED10[5]; + + union + { + __IOM uint8_t TBTM; /*!< (@ 0x00000138) Timer Buffer Operation Transfer Mode Register */ + + struct + { + __IOM uint8_t TTSA : 1; /*!< [0..0] Timing Select A */ + __IOM uint8_t TTSB : 1; /*!< [1..1] Timing Select B */ + uint8_t : 6; + } TBTM_b; + }; + __IM uint8_t RESERVED11; + __IM uint16_t RESERVED12[9]; + + union + { + __IOM uint8_t TCR2; /*!< (@ 0x0000014C) Timer Control Register 2 */ + + struct + { + __IOM uint8_t TPSC2 : 3; /*!< [2..0] Time Prescaler Select */ + uint8_t : 5; + } TCR2_b; + }; + __IM uint8_t RESERVED13; + __IM uint16_t RESERVED14[18]; + __IOM uint16_t TGRE; /*!< (@ 0x00000172) Timer General Register E */ +} R_MTU3_Type; /*!< Size = 372 (0x174) */ + +/* =========================================================================================================================== */ +/* ================ R_MTU4 ================ */ +/* =========================================================================================================================== */ + +/** + * @brief Multi-Function Timer Pulse Unit Channel 4 (R_MTU4) + */ + +typedef struct /*!< (@ 0x90001200) R_MTU4 Structure */ +{ + __IM uint8_t RESERVED; + + union + { + __IOM uint8_t TCR; /*!< (@ 0x00000001) Timer Control Register */ + + struct + { + __IOM uint8_t TPSC : 3; /*!< [2..0] Time Prescaler Select */ + __IOM uint8_t CKEG : 2; /*!< [4..3] Clock Edge Select */ + __IOM uint8_t CCLR : 3; /*!< [7..5] Counter Clear Source Select */ + } TCR_b; + }; + __IM uint8_t RESERVED1; + + union + { + __IOM uint8_t TMDR1; /*!< (@ 0x00000003) Timer Mode Register 1 */ + + struct + { + __IOM uint8_t MD : 4; /*!< [3..0] Mode Select */ + __IOM uint8_t BFA : 1; /*!< [4..4] Buffer Operation A */ + __IOM uint8_t BFB : 1; /*!< [5..5] Buffer Operation B */ + uint8_t : 2; + } TMDR1_b; + }; + __IM uint16_t RESERVED2; + + union + { + __IOM uint8_t TIORH; /*!< (@ 0x00000006) Timer I/O Control Register H */ + + struct + { + __IOM uint8_t IOA : 4; /*!< [3..0] I/O Control A */ + __IOM uint8_t IOB : 4; /*!< [7..4] I/O Control B */ + } TIORH_b; + }; + + union + { + __IOM uint8_t TIORL; /*!< (@ 0x00000007) Timer I/O Control Register L */ + + struct + { + __IOM uint8_t IOC : 4; /*!< [3..0] I/O Control A */ + __IOM uint8_t IOD : 4; /*!< [7..4] I/O Control B */ + } TIORL_b; + }; + __IM uint8_t RESERVED3; + + union + { + __IOM uint8_t TIER; /*!< (@ 0x00000009) Timer Interrupt Enable Register */ + + struct + { + __IOM uint8_t TGIEA : 1; /*!< [0..0] TGR Interrupt Enable A */ + __IOM uint8_t TGIEB : 1; /*!< [1..1] TGR Interrupt Enable B */ + __IOM uint8_t TGIEC : 1; /*!< [2..2] TGR Interrupt Enable C */ + __IOM uint8_t TGIED : 1; /*!< [3..3] TGR Interrupt Enable D */ + __IOM uint8_t TCIEV : 1; /*!< [4..4] Overflow Interrupt Enable */ + uint8_t : 1; + __IOM uint8_t TTGE2 : 1; /*!< [6..6] A/D Converter Start Request Enable 2 */ + __IOM uint8_t TTGE : 1; /*!< [7..7] A/D Converter Start Request Enable */ + } TIER_b; + }; + __IM uint16_t RESERVED4[4]; + __IOM uint16_t TCNT; /*!< (@ 0x00000012) Timer Counter */ + __IM uint16_t RESERVED5[4]; + __IOM uint16_t TGRA; /*!< (@ 0x0000001C) Timer General Register A */ + __IOM uint16_t TGRB; /*!< (@ 0x0000001E) Timer General Register B */ + __IM uint16_t RESERVED6[4]; + __IOM uint16_t TGRC; /*!< (@ 0x00000028) Timer General Register C */ + __IOM uint16_t TGRD; /*!< (@ 0x0000002A) Timer General Register D */ + __IM uint8_t RESERVED7; + + union + { + __IOM uint8_t TSR; /*!< (@ 0x0000002D) Timer Status Register */ + + struct + { + __IOM uint8_t TGFA : 1; /*!< [0..0] Input Capture/Output Compare Flag A */ + __IOM uint8_t TGFB : 1; /*!< [1..1] Input Capture/Output Compare Flag B */ + __IOM uint8_t TGFC : 1; /*!< [2..2] Input Capture/Output Compare Flag C */ + __IOM uint8_t TGFD : 1; /*!< [3..3] Input Capture/Output Compare Flag D */ + __IOM uint8_t TCFV : 1; /*!< [4..4] Overflow flag */ + __IOM uint8_t TCFU : 1; /*!< [5..5] Underflow flag */ + uint8_t : 1; + __IM uint8_t TCFD : 1; /*!< [7..7] Count Direction Flag */ + } TSR_b; + }; + __IM uint16_t RESERVED8[5]; + __IM uint8_t RESERVED9; + + union + { + __IOM uint8_t TBTM; /*!< (@ 0x00000039) Timer Buffer Operation Transfer Mode Register */ + + struct + { + __IOM uint8_t TTSA : 1; /*!< [0..0] Timing Select A */ + __IOM uint8_t TTSB : 1; /*!< [1..1] Timing Select B */ + uint8_t : 6; + } TBTM_b; + }; + __IM uint16_t RESERVED10[3]; + + union + { + __IOM uint16_t TADCR; /*!< (@ 0x00000040) Timer A/D Converter Start Request Control Register */ + + struct + { + __IOM uint16_t ITB4VE : 1; /*!< [0..0] TCIV4 Interrupt Skipping Link Enable */ + __IOM uint16_t ITB3AE : 1; /*!< [1..1] TGIA3 Interrupt Skipping Link Enable */ + __IOM uint16_t ITA4VE : 1; /*!< [2..2] TCIV4 Interrupt Skipping Link Enable */ + __IOM uint16_t ITA3AE : 1; /*!< [3..3] TGIA3 Interrupt Skipping Link Enable */ + __IOM uint16_t DT4BE : 1; /*!< [4..4] Down-Count TRG4BN Enable */ + __IOM uint16_t UT4BE : 1; /*!< [5..5] Up-Count TRG4BN Enable */ + __IOM uint16_t DT4AE : 1; /*!< [6..6] Down-Count TRG4AN Enable */ + __IOM uint16_t UT4AE : 1; /*!< [7..7] Up-Count TRG4AN Enable */ + uint16_t : 6; + __IOM uint16_t BF : 2; /*!< [15..14] MTU4.TADCOBRA/TADCOBRB Transfer Timing Select */ + } TADCR_b; + }; + __IM uint16_t RESERVED11; + __IOM uint16_t TADCORA; /*!< (@ 0x00000044) Timer A/D Converter Start Request Cycle Set Register + * A */ + __IOM uint16_t TADCORB; /*!< (@ 0x00000046) Timer A/D Converter Start Request Cycle Set Register + * B */ + __IOM uint16_t TADCOBRA; /*!< (@ 0x00000048) Timer A/D Converter Start Request Cycle Set Buffer + * Register A */ + __IOM uint16_t TADCOBRB; /*!< (@ 0x0000004A) Timer A/D Converter Start Request Cycle Set Buffer + * Register B */ + __IM uint8_t RESERVED12; + + union + { + __IOM uint8_t TCR2; /*!< (@ 0x0000004D) Timer Control Register 2 */ + + struct + { + __IOM uint8_t TPSC2 : 3; /*!< [2..0] Time Prescaler Select */ + uint8_t : 5; + } TCR2_b; + }; + __IM uint16_t RESERVED13[19]; + __IOM uint16_t TGRE; /*!< (@ 0x00000074) Timer General Register E */ + __IOM uint16_t TGRF; /*!< (@ 0x00000076) Timer General Register F */ +} R_MTU4_Type; /*!< Size = 120 (0x78) */ + +/* =========================================================================================================================== */ +/* ================ R_MTU_NF ================ */ +/* =========================================================================================================================== */ + +/** + * @brief Multi-Function Timer Pulse Unit Noise Filter (R_MTU_NF) + */ + +typedef struct /*!< (@ 0x90001290) R_MTU_NF Structure */ +{ + union + { + __IOM uint8_t NFCR0; /*!< (@ 0x00000000) Noise Filter Control Register 0 */ + + struct + { + __IOM uint8_t NFAEN : 1; /*!< [0..0] Noise Filter A Enable */ + __IOM uint8_t NFBEN : 1; /*!< [1..1] Noise Filter B Enable */ + __IOM uint8_t NFCEN : 1; /*!< [2..2] Noise Filter C Enable */ + __IOM uint8_t NFDEN : 1; /*!< [3..3] Noise Filter D Enable */ + __IOM uint8_t NFCS : 2; /*!< [5..4] Noise Filter Clock Select */ + uint8_t : 2; + } NFCR0_b; + }; + + union + { + __IOM uint8_t NFCR1; /*!< (@ 0x00000001) Noise Filter Control Register 1 */ + + struct + { + __IOM uint8_t NFAEN : 1; /*!< [0..0] Noise Filter A Enable */ + __IOM uint8_t NFBEN : 1; /*!< [1..1] Noise Filter B Enable */ + uint8_t : 2; + __IOM uint8_t NFCS : 2; /*!< [5..4] Noise Filter Clock Select */ + uint8_t : 2; + } NFCR1_b; + }; + + union + { + __IOM uint8_t NFCR2; /*!< (@ 0x00000002) Noise Filter Control Register 2 */ + + struct + { + __IOM uint8_t NFAEN : 1; /*!< [0..0] Noise Filter A Enable */ + __IOM uint8_t NFBEN : 1; /*!< [1..1] Noise Filter B Enable */ + uint8_t : 2; + __IOM uint8_t NFCS : 2; /*!< [5..4] Noise Filter Clock Select */ + uint8_t : 2; + } NFCR2_b; + }; + + union + { + __IOM uint8_t NFCR3; /*!< (@ 0x00000003) Noise Filter Control Register 3 */ + + struct + { + __IOM uint8_t NFAEN : 1; /*!< [0..0] Noise Filter A Enable */ + __IOM uint8_t NFBEN : 1; /*!< [1..1] Noise Filter B Enable */ + __IOM uint8_t NFCEN : 1; /*!< [2..2] Noise Filter C Enable */ + __IOM uint8_t NFDEN : 1; /*!< [3..3] Noise Filter D Enable */ + __IOM uint8_t NFCS : 2; /*!< [5..4] Noise Filter Clock Select */ + uint8_t : 2; + } NFCR3_b; + }; + + union + { + __IOM uint8_t NFCR4; /*!< (@ 0x00000004) Noise Filter Control Register 4 */ + + struct + { + __IOM uint8_t NFAEN : 1; /*!< [0..0] Noise Filter A Enable */ + __IOM uint8_t NFBEN : 1; /*!< [1..1] Noise Filter B Enable */ + __IOM uint8_t NFCEN : 1; /*!< [2..2] Noise Filter C Enable */ + __IOM uint8_t NFDEN : 1; /*!< [3..3] Noise Filter D Enable */ + __IOM uint8_t NFCS : 2; /*!< [5..4] Noise Filter Clock Select */ + uint8_t : 2; + } NFCR4_b; + }; + __IM uint8_t RESERVED[3]; + + union + { + __IOM uint8_t NFCR8; /*!< (@ 0x00000008) Noise Filter Control Register 8 */ + + struct + { + __IOM uint8_t NFAEN : 1; /*!< [0..0] Noise Filter A Enable */ + __IOM uint8_t NFBEN : 1; /*!< [1..1] Noise Filter B Enable */ + __IOM uint8_t NFCEN : 1; /*!< [2..2] Noise Filter C Enable */ + __IOM uint8_t NFDEN : 1; /*!< [3..3] Noise Filter D Enable */ + __IOM uint8_t NFCS : 2; /*!< [5..4] Noise Filter Clock Select */ + uint8_t : 2; + } NFCR8_b; + }; + + union + { + __IOM uint8_t NFCRC; /*!< (@ 0x00000009) Noise Filter Control Register C */ + + struct + { + __IOM uint8_t NFAEN : 1; /*!< [0..0] Noise Filter A Enable */ + __IOM uint8_t NFBEN : 1; /*!< [1..1] Noise Filter B Enable */ + __IOM uint8_t NFCEN : 1; /*!< [2..2] Noise Filter C Enable */ + __IOM uint8_t NFDEN : 1; /*!< [3..3] Noise Filter D Enable */ + __IOM uint8_t NFCS : 2; /*!< [5..4] Noise Filter Clock Select */ + uint8_t : 2; + } NFCRC_b; + }; + __IM uint8_t RESERVED1[2041]; + + union + { + __IOM uint8_t NFCR6; /*!< (@ 0x00000803) Noise Filter Control Register 6 */ + + struct + { + __IOM uint8_t NFAEN : 1; /*!< [0..0] Noise Filter A Enable */ + __IOM uint8_t NFBEN : 1; /*!< [1..1] Noise Filter B Enable */ + __IOM uint8_t NFCEN : 1; /*!< [2..2] Noise Filter C Enable */ + __IOM uint8_t NFDEN : 1; /*!< [3..3] Noise Filter D Enable */ + __IOM uint8_t NFCS : 2; /*!< [5..4] Noise Filter Clock Select */ + uint8_t : 2; + } NFCR6_b; + }; + + union + { + __IOM uint8_t NFCR7; /*!< (@ 0x00000804) Noise Filter Control Register 7 */ + + struct + { + __IOM uint8_t NFAEN : 1; /*!< [0..0] Noise Filter A Enable */ + __IOM uint8_t NFBEN : 1; /*!< [1..1] Noise Filter B Enable */ + __IOM uint8_t NFCEN : 1; /*!< [2..2] Noise Filter C Enable */ + __IOM uint8_t NFDEN : 1; /*!< [3..3] Noise Filter D Enable */ + __IOM uint8_t NFCS : 2; /*!< [5..4] Noise Filter Clock Select */ + uint8_t : 2; + } NFCR7_b; + }; + + union + { + __IOM uint8_t NFCR5; /*!< (@ 0x00000805) Noise Filter Control Register 5 */ + + struct + { + __IOM uint8_t NFUEN : 1; /*!< [0..0] Noise Filter U Enable */ + __IOM uint8_t NFVEN : 1; /*!< [1..1] Noise Filter V Enable */ + __IOM uint8_t NFWEN : 1; /*!< [2..2] Noise Filter W Enable */ + uint8_t : 1; + __IOM uint8_t NFCS : 2; /*!< [5..4] Noise Filter Clock Select */ + uint8_t : 2; + } NFCR5_b; + }; +} R_MTU_NF_Type; /*!< Size = 2054 (0x806) */ + +/* =========================================================================================================================== */ +/* ================ R_MTU0 ================ */ +/* =========================================================================================================================== */ + +/** + * @brief Multi-Function Timer Pulse Unit Channel 0 (R_MTU0) + */ + +typedef struct /*!< (@ 0x90001300) R_MTU0 Structure */ +{ + union + { + __IOM uint8_t TCR; /*!< (@ 0x00000000) Timer Control Register */ + + struct + { + __IOM uint8_t TPSC : 3; /*!< [2..0] Time Prescaler Select */ + __IOM uint8_t CKEG : 2; /*!< [4..3] Clock Edge Select */ + __IOM uint8_t CCLR : 3; /*!< [7..5] Counter Clear Source Select */ + } TCR_b; + }; + + union + { + __IOM uint8_t TMDR1; /*!< (@ 0x00000001) Timer Mode Register 1 */ + + struct + { + __IOM uint8_t MD : 4; /*!< [3..0] Mode Select */ + __IOM uint8_t BFA : 1; /*!< [4..4] Buffer Operation A */ + __IOM uint8_t BFB : 1; /*!< [5..5] Buffer Operation B */ + __IOM uint8_t BFE : 1; /*!< [6..6] Buffer Operation E */ + uint8_t : 1; + } TMDR1_b; + }; + + union + { + __IOM uint8_t TIORH; /*!< (@ 0x00000002) Timer I/O Control Register H */ + + struct + { + __IOM uint8_t IOA : 4; /*!< [3..0] I/O Control A */ + __IOM uint8_t IOB : 4; /*!< [7..4] I/O Control B */ + } TIORH_b; + }; + + union + { + __IOM uint8_t TIORL; /*!< (@ 0x00000003) Timer I/O Control Register L */ + + struct + { + __IOM uint8_t IOC : 4; /*!< [3..0] I/O Control A */ + __IOM uint8_t IOD : 4; /*!< [7..4] I/O Control B */ + } TIORL_b; + }; + + union + { + __IOM uint8_t TIER; /*!< (@ 0x00000004) Timer Interrupt Enable Register */ + + struct + { + __IOM uint8_t TGIEA : 1; /*!< [0..0] TGR Interrupt Enable A */ + __IOM uint8_t TGIEB : 1; /*!< [1..1] TGR Interrupt Enable B */ + __IOM uint8_t TGIEC : 1; /*!< [2..2] TGR Interrupt Enable C */ + __IOM uint8_t TGIED : 1; /*!< [3..3] TGR Interrupt Enable D */ + __IOM uint8_t TCIEV : 1; /*!< [4..4] Overflow Interrupt Enable */ + uint8_t : 2; + __IOM uint8_t TTGE : 1; /*!< [7..7] A/D Converter Start Request Enable */ + } TIER_b; + }; + __IM uint8_t RESERVED; + __IOM uint16_t TCNT; /*!< (@ 0x00000006) Timer Counter */ + __IOM uint16_t TGRA; /*!< (@ 0x00000008) Timer General Register A */ + __IOM uint16_t TGRB; /*!< (@ 0x0000000A) Timer General Register B */ + __IOM uint16_t TGRC; /*!< (@ 0x0000000C) Timer General Register C */ + __IOM uint16_t TGRD; /*!< (@ 0x0000000E) Timer General Register D */ + __IM uint16_t RESERVED1[8]; + __IOM uint16_t TGRE; /*!< (@ 0x00000020) Timer General Register E */ + __IOM uint16_t TGRF; /*!< (@ 0x00000022) Timer General Register F */ + + union + { + __IOM uint8_t TIER2; /*!< (@ 0x00000024) Timer Interrupt Enable Register 2 */ + + struct + { + __IOM uint8_t TGIEE : 1; /*!< [0..0] TGR Interrupt Enable E */ + __IOM uint8_t TGIEF : 1; /*!< [1..1] TGR Interrupt Enable F */ + uint8_t : 5; + __IOM uint8_t TTGE2 : 1; /*!< [7..7] A/D Converter Start Request Enable 2 */ + } TIER2_b; + }; + __IM uint8_t RESERVED2; + + union + { + __IOM uint8_t TBTM; /*!< (@ 0x00000026) Timer Buffer Operation Transfer Mode Register */ + + struct + { + __IOM uint8_t TTSA : 1; /*!< [0..0] Timing Select A */ + __IOM uint8_t TTSB : 1; /*!< [1..1] Timing Select B */ + __IOM uint8_t TTSE : 1; /*!< [2..2] Timing Select E */ + uint8_t : 5; + } TBTM_b; + }; + __IM uint8_t RESERVED3; + + union + { + __IOM uint8_t TCR2; /*!< (@ 0x00000028) Timer Control Register 2 */ + + struct + { + __IOM uint8_t TPSC2 : 3; /*!< [2..0] Time Prescaler Select */ + uint8_t : 5; + } TCR2_b; + }; + __IM uint8_t RESERVED4; + __IM uint16_t RESERVED5; +} R_MTU0_Type; /*!< Size = 44 (0x2c) */ + +/* =========================================================================================================================== */ +/* ================ R_MTU1 ================ */ +/* =========================================================================================================================== */ + +/** + * @brief Multi-Function Timer Pulse Unit Channel 1 (R_MTU1) + */ + +typedef struct /*!< (@ 0x90001380) R_MTU1 Structure */ +{ + union + { + __IOM uint8_t TCR; /*!< (@ 0x00000000) Timer Control Register */ + + struct + { + __IOM uint8_t TPSC : 3; /*!< [2..0] Time Prescaler Select */ + __IOM uint8_t CKEG : 2; /*!< [4..3] Clock Edge Select */ + __IOM uint8_t CCLR : 3; /*!< [7..5] Counter Clear Source Select */ + } TCR_b; + }; + + union + { + __IOM uint8_t TMDR1; /*!< (@ 0x00000001) Timer Mode Register 1 */ + + struct + { + __IOM uint8_t MD : 4; /*!< [3..0] Mode Select */ + uint8_t : 4; + } TMDR1_b; + }; + + union + { + __IOM uint8_t TIOR; /*!< (@ 0x00000002) Timer I/O Control Register */ + + struct + { + __IOM uint8_t IOA : 4; /*!< [3..0] I/O Control A */ + __IOM uint8_t IOB : 4; /*!< [7..4] I/O Control B */ + } TIOR_b; + }; + __IM uint8_t RESERVED; + + union + { + __IOM uint8_t TIER; /*!< (@ 0x00000004) Timer Interrupt Enable Register */ + + struct + { + __IOM uint8_t TGIEA : 1; /*!< [0..0] TGR Interrupt Enable A */ + __IOM uint8_t TGIEB : 1; /*!< [1..1] TGR Interrupt Enable B */ + uint8_t : 2; + __IOM uint8_t TCIEV : 1; /*!< [4..4] Overflow Interrupt Enable */ + __IOM uint8_t TCIEU : 1; /*!< [5..5] Underflow Interrupt Enable */ + uint8_t : 1; + __IOM uint8_t TTGE : 1; /*!< [7..7] A/D Converter Start Request Enable */ + } TIER_b; + }; + + union + { + __IOM uint8_t TSR; /*!< (@ 0x00000005) Timer Status Register */ + + struct + { + __IOM uint8_t TGFA : 1; /*!< [0..0] Input Capture/Output Compare Flag A */ + __IOM uint8_t TGFB : 1; /*!< [1..1] Input Capture/Output Compare Flag B */ + __IOM uint8_t TGFC : 1; /*!< [2..2] Input Capture/Output Compare Flag C */ + __IOM uint8_t TGFD : 1; /*!< [3..3] Input Capture/Output Compare Flag D */ + __IOM uint8_t TCFV : 1; /*!< [4..4] Overflow flag */ + __IOM uint8_t TCFU : 1; /*!< [5..5] Underflow flag */ + uint8_t : 1; + __IM uint8_t TCFD : 1; /*!< [7..7] Count Direction Flag */ + } TSR_b; + }; + __IOM uint16_t TCNT; /*!< (@ 0x00000006) Timer Counter */ + __IOM uint16_t TGRA; /*!< (@ 0x00000008) Timer General Register A */ + __IOM uint16_t TGRB; /*!< (@ 0x0000000A) Timer General Register B */ + __IM uint32_t RESERVED1; + + union + { + __IOM uint8_t TICCR; /*!< (@ 0x00000010) Timer Input Capture Control Register */ + + struct + { + __IOM uint8_t I1AE : 1; /*!< [0..0] Input Capture Enable */ + __IOM uint8_t I1BE : 1; /*!< [1..1] Input Capture Enable */ + __IOM uint8_t I2AE : 1; /*!< [2..2] Input Capture Enable */ + __IOM uint8_t I2BE : 1; /*!< [3..3] Input Capture Enable */ + uint8_t : 4; + } TICCR_b; + }; + + union + { + __IOM uint8_t TMDR3; /*!< (@ 0x00000011) Timer Mode Register 3 */ + + struct + { + __IOM uint8_t LWA : 1; /*!< [0..0] MTU1/MTU2 Combination Longword Access Control */ + __IOM uint8_t PHCKSEL : 1; /*!< [1..1] External Input Phase Clock Select */ + uint8_t : 6; + } TMDR3_b; + }; + __IM uint16_t RESERVED2; + + union + { + __IOM uint8_t TCR2; /*!< (@ 0x00000014) Timer Control Register 2 */ + + struct + { + __IOM uint8_t TPSC2 : 3; /*!< [2..0] Time Prescaler Select */ + __IOM uint8_t PCB : 2; /*!< [4..3] Functional Expansion Control for Phase Counting Modes + * 2, 3, and 5 */ + uint8_t : 3; + } TCR2_b; + }; + __IM uint8_t RESERVED3; + __IM uint16_t RESERVED4; + __IM uint32_t RESERVED5[2]; + __IOM uint32_t TCNTLW; /*!< (@ 0x00000020) Timer Longword Counter */ + __IOM uint32_t TGRALW; /*!< (@ 0x00000024) Timer Longword General Register A */ + __IOM uint32_t TGRBLW; /*!< (@ 0x00000028) Timer Longword General Register B */ +} R_MTU1_Type; /*!< Size = 44 (0x2c) */ + +/* =========================================================================================================================== */ +/* ================ R_MTU2 ================ */ +/* =========================================================================================================================== */ + +/** + * @brief Multi-Function Timer Pulse Unit Channel 2 (R_MTU2) + */ + +typedef struct /*!< (@ 0x90001400) R_MTU2 Structure */ +{ + union + { + __IOM uint8_t TCR; /*!< (@ 0x00000000) Timer Control Register */ + + struct + { + __IOM uint8_t TPSC : 3; /*!< [2..0] Time Prescaler Select */ + __IOM uint8_t CKEG : 2; /*!< [4..3] Clock Edge Select */ + __IOM uint8_t CCLR : 3; /*!< [7..5] Counter Clear Source Select */ + } TCR_b; + }; + + union + { + __IOM uint8_t TMDR1; /*!< (@ 0x00000001) Timer Mode Register 1 */ + + struct + { + __IOM uint8_t MD : 4; /*!< [3..0] Mode Select */ + uint8_t : 4; + } TMDR1_b; + }; + + union + { + __IOM uint8_t TIOR; /*!< (@ 0x00000002) Timer I/O Control Register */ + + struct + { + __IOM uint8_t IOA : 4; /*!< [3..0] I/O Control A */ + __IOM uint8_t IOB : 4; /*!< [7..4] I/O Control B */ + } TIOR_b; + }; + __IM uint8_t RESERVED; + + union + { + __IOM uint8_t TIER; /*!< (@ 0x00000004) Timer Interrupt Enable Register */ + + struct + { + __IOM uint8_t TGIEA : 1; /*!< [0..0] TGR Interrupt Enable A */ + __IOM uint8_t TGIEB : 1; /*!< [1..1] TGR Interrupt Enable B */ + uint8_t : 2; + __IOM uint8_t TCIEV : 1; /*!< [4..4] Overflow Interrupt Enable */ + __IOM uint8_t TCIEU : 1; /*!< [5..5] Underflow Interrupt Enable */ + uint8_t : 1; + __IOM uint8_t TTGE : 1; /*!< [7..7] A/D Converter Start Request Enable */ + } TIER_b; + }; + + union + { + __IOM uint8_t TSR; /*!< (@ 0x00000005) Timer Status Register */ + + struct + { + __IOM uint8_t TGFA : 1; /*!< [0..0] Input Capture/Output Compare Flag A */ + __IOM uint8_t TGFB : 1; /*!< [1..1] Input Capture/Output Compare Flag B */ + __IOM uint8_t TGFC : 1; /*!< [2..2] Input Capture/Output Compare Flag C */ + __IOM uint8_t TGFD : 1; /*!< [3..3] Input Capture/Output Compare Flag D */ + __IOM uint8_t TCFV : 1; /*!< [4..4] Overflow flag */ + __IOM uint8_t TCFU : 1; /*!< [5..5] Underflow flag */ + uint8_t : 1; + __IM uint8_t TCFD : 1; /*!< [7..7] Count Direction Flag */ + } TSR_b; + }; + __IOM uint16_t TCNT; /*!< (@ 0x00000006) Timer Counter */ + __IOM uint16_t TGRA; /*!< (@ 0x00000008) Timer General Register A */ + __IOM uint16_t TGRB; /*!< (@ 0x0000000A) Timer General Register B */ + + union + { + __IOM uint8_t TCR2; /*!< (@ 0x0000000C) Timer Control Register 2 */ + + struct + { + __IOM uint8_t TPSC2 : 3; /*!< [2..0] Time Prescaler Select */ + __IOM uint8_t PCB : 2; /*!< [4..3] Functional Expansion Control for Phase Counting Modes + * 2, 3, and 5 */ + uint8_t : 3; + } TCR2_b; + }; + __IM uint8_t RESERVED1; + __IM uint16_t RESERVED2; +} R_MTU2_Type; /*!< Size = 16 (0x10) */ + +/* =========================================================================================================================== */ +/* ================ R_MTU8 ================ */ +/* =========================================================================================================================== */ + +/** + * @brief Multi-Function Timer Pulse Unit Channel 8 (R_MTU8) + */ + +typedef struct /*!< (@ 0x90001600) R_MTU8 Structure */ +{ + union + { + __IOM uint8_t TCR; /*!< (@ 0x00000000) Timer Control Register */ + + struct + { + __IOM uint8_t TPSC : 3; /*!< [2..0] Time Prescaler Select */ + __IOM uint8_t CKEG : 2; /*!< [4..3] Clock Edge Select */ + __IOM uint8_t CCLR : 3; /*!< [7..5] Counter Clear Source Select */ + } TCR_b; + }; + + union + { + __IOM uint8_t TMDR1; /*!< (@ 0x00000001) Timer Mode Register 1 */ + + struct + { + __IOM uint8_t MD : 4; /*!< [3..0] Mode Select */ + __IOM uint8_t BFA : 1; /*!< [4..4] Buffer Operation A */ + __IOM uint8_t BFB : 1; /*!< [5..5] Buffer Operation B */ + uint8_t : 2; + } TMDR1_b; + }; + + union + { + __IOM uint8_t TIORH; /*!< (@ 0x00000002) Timer I/O Control Register H */ + + struct + { + __IOM uint8_t IOA : 4; /*!< [3..0] I/O Control A */ + __IOM uint8_t IOB : 4; /*!< [7..4] I/O Control B */ + } TIORH_b; + }; + + union + { + __IOM uint8_t TIORL; /*!< (@ 0x00000003) Timer I/O Control Register L */ + + struct + { + __IOM uint8_t IOC : 4; /*!< [3..0] I/O Control A */ + __IOM uint8_t IOD : 4; /*!< [7..4] I/O Control B */ + } TIORL_b; + }; + + union + { + __IOM uint8_t TIER; /*!< (@ 0x00000004) Timer Interrupt Enable Register */ + + struct + { + __IOM uint8_t TGIEA : 1; /*!< [0..0] TGR Interrupt Enable A */ + __IOM uint8_t TGIEB : 1; /*!< [1..1] TGR Interrupt Enable B */ + __IOM uint8_t TGIEC : 1; /*!< [2..2] TGR Interrupt Enable C */ + __IOM uint8_t TGIED : 1; /*!< [3..3] TGR Interrupt Enable D */ + __IOM uint8_t TCIEV : 1; /*!< [4..4] Overflow Interrupt Enable */ + uint8_t : 3; + } TIER_b; + }; + __IM uint8_t RESERVED; + + union + { + __IOM uint8_t TCR2; /*!< (@ 0x00000006) Timer Control Register 2 */ + + struct + { + __IOM uint8_t TPSC2 : 3; /*!< [2..0] Time Prescaler Select */ + uint8_t : 5; + } TCR2_b; + }; + __IM uint8_t RESERVED1; + __IOM uint32_t TCNT; /*!< (@ 0x00000008) Timer Counter */ + __IOM uint32_t TGRA; /*!< (@ 0x0000000C) Timer General Register A */ + __IOM uint32_t TGRB; /*!< (@ 0x00000010) Timer General Register B */ + __IOM uint32_t TGRC; /*!< (@ 0x00000014) Timer General Register C */ + __IOM uint32_t TGRD; /*!< (@ 0x00000018) Timer General Register D */ +} R_MTU8_Type; /*!< Size = 28 (0x1c) */ + +/* =========================================================================================================================== */ +/* ================ R_MTU6 ================ */ +/* =========================================================================================================================== */ + +/** + * @brief Multi-Function Timer Pulse Unit Channel 6 (R_MTU6) + */ + +typedef struct /*!< (@ 0x90001900) R_MTU6 Structure */ +{ + __IM uint16_t RESERVED[128]; + + union + { + __IOM uint8_t TCR; /*!< (@ 0x00000100) Timer Control Register */ + + struct + { + __IOM uint8_t TPSC : 3; /*!< [2..0] Time Prescaler Select */ + __IOM uint8_t CKEG : 2; /*!< [4..3] Clock Edge Select */ + __IOM uint8_t CCLR : 3; /*!< [7..5] Counter Clear Source Select */ + } TCR_b; + }; + __IM uint8_t RESERVED1; + + union + { + __IOM uint8_t TMDR1; /*!< (@ 0x00000102) Timer Mode Register 1 */ + + struct + { + __IOM uint8_t MD : 4; /*!< [3..0] Mode Select */ + __IOM uint8_t BFA : 1; /*!< [4..4] Buffer Operation A */ + __IOM uint8_t BFB : 1; /*!< [5..5] Buffer Operation B */ + uint8_t : 2; + } TMDR1_b; + }; + __IM uint8_t RESERVED2; + + union + { + __IOM uint8_t TIORH; /*!< (@ 0x00000104) Timer I/O Control Register H */ + + struct + { + __IOM uint8_t IOA : 4; /*!< [3..0] I/O Control A */ + __IOM uint8_t IOB : 4; /*!< [7..4] I/O Control B */ + } TIORH_b; + }; + + union + { + __IOM uint8_t TIORL; /*!< (@ 0x00000105) Timer I/O Control Register L */ + + struct + { + __IOM uint8_t IOC : 4; /*!< [3..0] I/O Control A */ + __IOM uint8_t IOD : 4; /*!< [7..4] I/O Control B */ + } TIORL_b; + }; + __IM uint16_t RESERVED3; + + union + { + __IOM uint8_t TIER; /*!< (@ 0x00000108) Timer Interrupt Enable Register */ + + struct + { + __IOM uint8_t TGIEA : 1; /*!< [0..0] TGR Interrupt Enable A */ + __IOM uint8_t TGIEB : 1; /*!< [1..1] TGR Interrupt Enable B */ + __IOM uint8_t TGIEC : 1; /*!< [2..2] TGR Interrupt Enable C */ + __IOM uint8_t TGIED : 1; /*!< [3..3] TGR Interrupt Enable D */ + __IOM uint8_t TCIEV : 1; /*!< [4..4] Overflow Interrupt Enable */ + uint8_t : 2; + __IOM uint8_t TTGE : 1; /*!< [7..7] A/D Converter Start Request Enable */ + } TIER_b; + }; + __IM uint8_t RESERVED4; + __IM uint16_t RESERVED5[3]; + __IOM uint16_t TCNT; /*!< (@ 0x00000110) Timer Counter */ + __IM uint16_t RESERVED6[3]; + __IOM uint16_t TGRA; /*!< (@ 0x00000118) Timer General Register A */ + __IOM uint16_t TGRB; /*!< (@ 0x0000011A) Timer General Register B */ + __IM uint16_t RESERVED7[4]; + __IOM uint16_t TGRC; /*!< (@ 0x00000124) Timer General Register C */ + __IOM uint16_t TGRD; /*!< (@ 0x00000126) Timer General Register D */ + __IM uint16_t RESERVED8[2]; + + union + { + __IOM uint8_t TSR; /*!< (@ 0x0000012C) Timer Status Register */ + + struct + { + __IOM uint8_t TGFA : 1; /*!< [0..0] Input Capture/Output Compare Flag A */ + __IOM uint8_t TGFB : 1; /*!< [1..1] Input Capture/Output Compare Flag B */ + __IOM uint8_t TGFC : 1; /*!< [2..2] Input Capture/Output Compare Flag C */ + __IOM uint8_t TGFD : 1; /*!< [3..3] Input Capture/Output Compare Flag D */ + __IOM uint8_t TCFV : 1; /*!< [4..4] Overflow flag */ + __IOM uint8_t TCFU : 1; /*!< [5..5] Underflow flag */ + uint8_t : 1; + __IM uint8_t TCFD : 1; /*!< [7..7] Count Direction Flag */ + } TSR_b; + }; + __IM uint8_t RESERVED9; + __IM uint16_t RESERVED10[5]; + + union + { + __IOM uint8_t TBTM; /*!< (@ 0x00000138) Timer Buffer Operation Transfer Mode Register */ + + struct + { + __IOM uint8_t TTSA : 1; /*!< [0..0] Timing Select A */ + __IOM uint8_t TTSB : 1; /*!< [1..1] Timing Select B */ + uint8_t : 6; + } TBTM_b; + }; + __IM uint8_t RESERVED11; + __IM uint16_t RESERVED12[9]; + + union + { + __IOM uint8_t TCR2; /*!< (@ 0x0000014C) Timer Control Register 2 */ + + struct + { + __IOM uint8_t TPSC2 : 3; /*!< [2..0] Time Prescaler Select */ + uint8_t : 5; + } TCR2_b; + }; + __IM uint8_t RESERVED13; + __IM uint16_t RESERVED14; + + union + { + __IOM uint8_t TSYCR; /*!< (@ 0x00000150) Timer Synchronous Clear Register */ + + struct + { + __IOM uint8_t CE2B : 1; /*!< [0..0] Clear Enable 2B */ + __IOM uint8_t CE2A : 1; /*!< [1..1] Clear Enable 2A */ + __IOM uint8_t CE1B : 1; /*!< [2..2] Clear Enable 1B */ + __IOM uint8_t CE1A : 1; /*!< [3..3] Clear Enable 1A */ + __IOM uint8_t CE0D : 1; /*!< [4..4] Clear Enable 0D */ + __IOM uint8_t CE0C : 1; /*!< [5..5] Clear Enable 0C */ + __IOM uint8_t CE0B : 1; /*!< [6..6] Clear Enable 0B */ + __IOM uint8_t CE0A : 1; /*!< [7..7] Clear Enable 0A */ + } TSYCR_b; + }; + __IM uint8_t RESERVED15; + __IM uint16_t RESERVED16[16]; + __IOM uint16_t TGRE; /*!< (@ 0x00000172) Timer General Register E */ +} R_MTU6_Type; /*!< Size = 372 (0x174) */ + +/* =========================================================================================================================== */ +/* ================ R_MTU7 ================ */ +/* =========================================================================================================================== */ + +/** + * @brief Multi-Function Timer Pulse Unit Channel 7 (R_MTU7) + */ + +typedef struct /*!< (@ 0x90001A00) R_MTU7 Structure */ +{ + __IM uint8_t RESERVED; + + union + { + __IOM uint8_t TCR; /*!< (@ 0x00000001) Timer Control Register */ + + struct + { + __IOM uint8_t TPSC : 3; /*!< [2..0] Time Prescaler Select */ + __IOM uint8_t CKEG : 2; /*!< [4..3] Clock Edge Select */ + __IOM uint8_t CCLR : 3; /*!< [7..5] Counter Clear Source Select */ + } TCR_b; + }; + __IM uint8_t RESERVED1; + + union + { + __IOM uint8_t TMDR1; /*!< (@ 0x00000003) Timer Mode Register 1 */ + + struct + { + __IOM uint8_t MD : 4; /*!< [3..0] Mode Select */ + __IOM uint8_t BFA : 1; /*!< [4..4] Buffer Operation A */ + __IOM uint8_t BFB : 1; /*!< [5..5] Buffer Operation B */ + uint8_t : 2; + } TMDR1_b; + }; + __IM uint16_t RESERVED2; + + union + { + __IOM uint8_t TIORH; /*!< (@ 0x00000006) Timer I/O Control Register H */ + + struct + { + __IOM uint8_t IOA : 4; /*!< [3..0] I/O Control A */ + __IOM uint8_t IOB : 4; /*!< [7..4] I/O Control B */ + } TIORH_b; + }; + + union + { + __IOM uint8_t TIORL; /*!< (@ 0x00000007) Timer I/O Control Register L */ + + struct + { + __IOM uint8_t IOC : 4; /*!< [3..0] I/O Control A */ + __IOM uint8_t IOD : 4; /*!< [7..4] I/O Control B */ + } TIORL_b; + }; + __IM uint8_t RESERVED3; + + union + { + __IOM uint8_t TIER; /*!< (@ 0x00000009) Timer Interrupt Enable Register */ + + struct + { + __IOM uint8_t TGIEA : 1; /*!< [0..0] TGR Interrupt Enable A */ + __IOM uint8_t TGIEB : 1; /*!< [1..1] TGR Interrupt Enable B */ + __IOM uint8_t TGIEC : 1; /*!< [2..2] TGR Interrupt Enable C */ + __IOM uint8_t TGIED : 1; /*!< [3..3] TGR Interrupt Enable D */ + __IOM uint8_t TCIEV : 1; /*!< [4..4] Overflow Interrupt Enable */ + uint8_t : 1; + __IOM uint8_t TTGE2 : 1; /*!< [6..6] A/D Converter Start Request Enable 2 */ + __IOM uint8_t TTGE : 1; /*!< [7..7] A/D Converter Start Request Enable */ + } TIER_b; + }; + __IM uint16_t RESERVED4[4]; + __IOM uint16_t TCNT; /*!< (@ 0x00000012) Timer Counter */ + __IM uint16_t RESERVED5[4]; + __IOM uint16_t TGRA; /*!< (@ 0x0000001C) Timer General Register A */ + __IOM uint16_t TGRB; /*!< (@ 0x0000001E) Timer General Register B */ + __IM uint16_t RESERVED6[4]; + __IOM uint16_t TGRC; /*!< (@ 0x00000028) Timer General Register C */ + __IOM uint16_t TGRD; /*!< (@ 0x0000002A) Timer General Register D */ + __IM uint8_t RESERVED7; + + union + { + __IOM uint8_t TSR; /*!< (@ 0x0000002D) Timer Status Register */ + + struct + { + __IOM uint8_t TGFA : 1; /*!< [0..0] Input Capture/Output Compare Flag A */ + __IOM uint8_t TGFB : 1; /*!< [1..1] Input Capture/Output Compare Flag B */ + __IOM uint8_t TGFC : 1; /*!< [2..2] Input Capture/Output Compare Flag C */ + __IOM uint8_t TGFD : 1; /*!< [3..3] Input Capture/Output Compare Flag D */ + __IOM uint8_t TCFV : 1; /*!< [4..4] Overflow flag */ + __IOM uint8_t TCFU : 1; /*!< [5..5] Underflow flag */ + uint8_t : 1; + __IM uint8_t TCFD : 1; /*!< [7..7] Count Direction Flag */ + } TSR_b; + }; + __IM uint16_t RESERVED8[5]; + __IM uint8_t RESERVED9; + + union + { + __IOM uint8_t TBTM; /*!< (@ 0x00000039) Timer Buffer Operation Transfer Mode Register */ + + struct + { + __IOM uint8_t TTSA : 1; /*!< [0..0] Timing Select A */ + __IOM uint8_t TTSB : 1; /*!< [1..1] Timing Select B */ + uint8_t : 6; + } TBTM_b; + }; + __IM uint16_t RESERVED10[3]; + + union + { + __IOM uint16_t TADCR; /*!< (@ 0x00000040) Timer A/D Converter Start Request Control Register */ + + struct + { + __IOM uint16_t ITB7VE : 1; /*!< [0..0] TCIV7 Interrupt Skipping Link Enable */ + __IOM uint16_t ITB6AE : 1; /*!< [1..1] TGIA6 Interrupt Skipping Link Enable */ + __IOM uint16_t ITA7VE : 1; /*!< [2..2] TCIV7 Interrupt Skipping Link Enable */ + __IOM uint16_t ITA6AE : 1; /*!< [3..3] TGIA6 Interrupt Skipping Link Enable */ + __IOM uint16_t DT7BE : 1; /*!< [4..4] Down-Count TRG7BN Enable */ + __IOM uint16_t UT7BE : 1; /*!< [5..5] Up-Count TRG7BN Enable */ + __IOM uint16_t DT7AE : 1; /*!< [6..6] Down-Count TRG7AN Enable */ + __IOM uint16_t UT7AE : 1; /*!< [7..7] Up-Count TRG7AN Enable */ + uint16_t : 6; + __IOM uint16_t BF : 2; /*!< [15..14] MTU7.TADCOBRA/TADCOBRB Transfer Timing Select */ + } TADCR_b; + }; + __IM uint16_t RESERVED11; + __IOM uint16_t TADCORA; /*!< (@ 0x00000044) Timer A/D Converter Start Request Cycle Set Register + * A */ + __IOM uint16_t TADCORB; /*!< (@ 0x00000046) Timer A/D Converter Start Request Cycle Set Register + * B */ + __IOM uint16_t TADCOBRA; /*!< (@ 0x00000048) Timer A/D Converter Start Request Cycle Set Buffer + * Register A */ + __IOM uint16_t TADCOBRB; /*!< (@ 0x0000004A) Timer A/D Converter Start Request Cycle Set Buffer + * Register B */ + __IM uint8_t RESERVED12; + + union + { + __IOM uint8_t TCR2; /*!< (@ 0x0000004D) Timer Control Register 2 */ + + struct + { + __IOM uint8_t TPSC2 : 3; /*!< [2..0] Time Prescaler Select */ + uint8_t : 5; + } TCR2_b; + }; + __IM uint16_t RESERVED13[19]; + __IOM uint16_t TGRE; /*!< (@ 0x00000074) Timer General Register E */ + __IOM uint16_t TGRF; /*!< (@ 0x00000076) Timer General Register F */ +} R_MTU7_Type; /*!< Size = 120 (0x78) */ + +/* =========================================================================================================================== */ +/* ================ R_MTU5 ================ */ +/* =========================================================================================================================== */ + +/** + * @brief Multi-Function Timer Pulse Unit Channel 5 (R_MTU5) + */ + +typedef struct /*!< (@ 0x90001C00) R_MTU5 Structure */ +{ + __IM uint16_t RESERVED[64]; + __IOM uint16_t TCNTU; /*!< (@ 0x00000080) Timer Counter U */ + __IOM uint16_t TGRU; /*!< (@ 0x00000082) Timer General Register U */ + + union + { + __IOM uint8_t TCRU; /*!< (@ 0x00000084) Timer Control Register U */ + + struct + { + __IOM uint8_t TPSC : 2; /*!< [1..0] Time Prescaler Select */ + uint8_t : 6; + } TCRU_b; + }; + + union + { + __IOM uint8_t TCR2U; /*!< (@ 0x00000085) Timer Control Register 2U */ + + struct + { + __IOM uint8_t TPSC2 : 3; /*!< [2..0] Time Prescaler Select */ + __IOM uint8_t CKEG : 2; /*!< [4..3] Clock Edge Select */ + uint8_t : 3; + } TCR2U_b; + }; + + union + { + __IOM uint8_t TIORU; /*!< (@ 0x00000086) Timer I/O Control Register U */ + + struct + { + __IOM uint8_t IOC : 5; /*!< [4..0] I/O Control C */ + uint8_t : 3; + } TIORU_b; + }; + __IM uint8_t RESERVED1; + __IM uint16_t RESERVED2[4]; + __IOM uint16_t TCNTV; /*!< (@ 0x00000090) Timer Counter V */ + __IOM uint16_t TGRV; /*!< (@ 0x00000092) Timer General Register V */ + + union + { + __IOM uint8_t TCRV; /*!< (@ 0x00000094) Timer Control Register V */ + + struct + { + __IOM uint8_t TPSC : 2; /*!< [1..0] Time Prescaler Select */ + uint8_t : 6; + } TCRV_b; + }; + + union + { + __IOM uint8_t TCR2V; /*!< (@ 0x00000095) Timer Control Register 2V */ + + struct + { + __IOM uint8_t TPSC2 : 3; /*!< [2..0] Time Prescaler Select */ + __IOM uint8_t CKEG : 2; /*!< [4..3] Clock Edge Select */ + uint8_t : 3; + } TCR2V_b; + }; + + union + { + __IOM uint8_t TIORV; /*!< (@ 0x00000096) Timer I/O Control Register V */ + + struct + { + __IOM uint8_t IOC : 5; /*!< [4..0] I/O Control C */ + uint8_t : 3; + } TIORV_b; + }; + __IM uint8_t RESERVED3; + __IM uint16_t RESERVED4[4]; + __IOM uint16_t TCNTW; /*!< (@ 0x000000A0) Timer Counter W */ + __IOM uint16_t TGRW; /*!< (@ 0x000000A2) Timer General Register W */ + + union + { + __IOM uint8_t TCRW; /*!< (@ 0x000000A4) Timer Control Register W */ + + struct + { + __IOM uint8_t TPSC : 2; /*!< [1..0] Time Prescaler Select */ + uint8_t : 6; + } TCRW_b; + }; + + union + { + __IOM uint8_t TCR2W; /*!< (@ 0x000000A5) Timer Control Register 2W */ + + struct + { + __IOM uint8_t TPSC2 : 3; /*!< [2..0] Time Prescaler Select */ + __IOM uint8_t CKEG : 2; /*!< [4..3] Clock Edge Select */ + uint8_t : 3; + } TCR2W_b; + }; + + union + { + __IOM uint8_t TIORW; /*!< (@ 0x000000A6) Timer I/O Control Register W */ + + struct + { + __IOM uint8_t IOC : 5; /*!< [4..0] I/O Control C */ + uint8_t : 3; + } TIORW_b; + }; + __IM uint8_t RESERVED5; + __IM uint16_t RESERVED6[5]; + + union + { + __IOM uint8_t TIER; /*!< (@ 0x000000B2) Timer Interrupt Enable Register */ + + struct + { + __IOM uint8_t TGIE5W : 1; /*!< [0..0] TGR Interrupt Enable 5W */ + __IOM uint8_t TGIE5V : 1; /*!< [1..1] TGR Interrupt Enable 5V */ + __IOM uint8_t TGIE5U : 1; /*!< [2..2] TGR Interrupt Enable 5U */ + uint8_t : 5; + } TIER_b; + }; + __IM uint8_t RESERVED7; + + union + { + __IOM uint8_t TSTR; /*!< (@ 0x000000B4) Timer Start Register */ + + struct + { + __IOM uint8_t CSTW5 : 1; /*!< [0..0] Counter Start W5 */ + __IOM uint8_t CSTV5 : 1; /*!< [1..1] Counter Start V5 */ + __IOM uint8_t CSTU5 : 1; /*!< [2..2] Counter Start U5 */ + uint8_t : 5; + } TSTR_b; + }; + __IM uint8_t RESERVED8; + + union + { + __IOM uint8_t TCNTCMPCLR; /*!< (@ 0x000000B6) Timer Compare Match Clear Register */ + + struct + { + __IOM uint8_t CMPCLR5W : 1; /*!< [0..0] TCNT Compare Clear 5W */ + __IOM uint8_t CMPCLR5V : 1; /*!< [1..1] TCNT Compare Clear 5V */ + __IOM uint8_t CMPCLR5U : 1; /*!< [2..2] TCNT Compare Clear 5U */ + uint8_t : 5; + } TCNTCMPCLR_b; + }; + __IM uint8_t RESERVED9; + __IM uint16_t RESERVED10; +} R_MTU5_Type; /*!< Size = 186 (0xba) */ + +/* =========================================================================================================================== */ +/* ================ R_TFU ================ */ +/* =========================================================================================================================== */ + +/** + * @brief Trigonometric Function Unit (R_TFU) + */ + +typedef struct /*!< (@ 0x90003000) R_TFU Structure */ +{ + __IM uint32_t RESERVED[2]; + + union + { + __IM uint8_t TRGSTS; /*!< (@ 0x00000008) Trigonometric Status Register */ + + struct + { + __IM uint8_t BSYF : 1; /*!< [0..0] Calculation in progress flag */ + __IM uint8_t ERRF : 1; /*!< [1..1] Input error flag */ + uint8_t : 6; + } TRGSTS_b; + }; + __IM uint8_t RESERVED1; + __IM uint16_t RESERVED2; + __IM uint32_t RESERVED3; + + union + { + __IOM float SCDT0; /*!< (@ 0x00000010) Sine Cosine Data Register 0 */ + + struct + { + __IOM uint32_t SCDT0 : 32; /*!< [31..0] Sine Cosine Data Register 0 (single-precision floating-point) */ + } SCDT0_b; + }; + + union + { + __IOM float SCDT1; /*!< (@ 0x00000014) Sine Cosine Data Register 1 */ + + struct + { + __IOM uint32_t SCDT1 : 32; /*!< [31..0] Sine Cosine Data Register 1 (single-precision floating-point) */ + } SCDT1_b; + }; + + union + { + __IOM float ATDT0; /*!< (@ 0x00000018) Arctangent Data Register 0 */ + + struct + { + __IOM uint32_t ATDT0 : 32; /*!< [31..0] Arctangent Data Register 0 (single-precision floating-point) */ + } ATDT0_b; + }; + + union + { + __IOM float ATDT1; /*!< (@ 0x0000001C) Arctangent Data Register 1 */ + + struct + { + __IOM uint32_t ATDT1 : 32; /*!< [31..0] Arctangent Data Register 1 (single-precision floating-point) */ + } ATDT1_b; + }; +} R_TFU_Type; /*!< Size = 32 (0x20) */ + +/* =========================================================================================================================== */ +/* ================ R_POE3 ================ */ +/* =========================================================================================================================== */ + +/** + * @brief Port Output Enable 3 (R_POE3) + */ + +typedef struct /*!< (@ 0x90005000) R_POE3 Structure */ +{ + union + { + __IOM uint16_t ICSR1; /*!< (@ 0x00000000) Input Level Control/Status Register 1 */ + + struct + { + __IOM uint16_t POE0M : 2; /*!< [1..0] POE0 Mode Select */ + uint16_t : 6; + __IOM uint16_t PIE1 : 1; /*!< [8..8] Port Interrupt Enable 1 */ + uint16_t : 3; + __IOM uint16_t POE0F : 1; /*!< [12..12] POE0 Flag */ + uint16_t : 3; + } ICSR1_b; + }; + + union + { + __IOM uint16_t OCSR1; /*!< (@ 0x00000002) Output Level Control/Status Register 1 */ + + struct + { + uint16_t : 8; + __IOM uint16_t OIE1 : 1; /*!< [8..8] Output Short Circuit Interrupt Enable 1 */ + __IOM uint16_t OCE1 : 1; /*!< [9..9] Output Short Circuit High-Impedance Enable 1 */ + uint16_t : 5; + __IOM uint16_t OSF1 : 1; /*!< [15..15] Output Short Circuit Flag 1 */ + } OCSR1_b; + }; + + union + { + __IOM uint16_t ICSR2; /*!< (@ 0x00000004) Input Level Control/Status Register 2 */ + + struct + { + __IOM uint16_t POE4M : 2; /*!< [1..0] POE4 Mode Select */ + uint16_t : 6; + __IOM uint16_t PIE2 : 1; /*!< [8..8] Port Interrupt Enable 2 */ + uint16_t : 3; + __IOM uint16_t POE4F : 1; /*!< [12..12] POE4 Flag */ + uint16_t : 3; + } ICSR2_b; + }; + + union + { + __IOM uint16_t OCSR2; /*!< (@ 0x00000006) Output Level Control/Status Register 2 */ + + struct + { + uint16_t : 8; + __IOM uint16_t OIE2 : 1; /*!< [8..8] Output Short Circuit Interrupt Enable 2 */ + __IOM uint16_t OCE2 : 1; /*!< [9..9] Output Short Circuit High-Impedance Enable 2 */ + uint16_t : 5; + __IOM uint16_t OSF2 : 1; /*!< [15..15] Output Short Circuit Flag 2 */ + } OCSR2_b; + }; + + union + { + __IOM uint16_t ICSR3; /*!< (@ 0x00000008) Input Level Control/Status Register 3 */ + + struct + { + __IOM uint16_t POE8M : 2; /*!< [1..0] POE8 Mode Select */ + uint16_t : 6; + __IOM uint16_t PIE3 : 1; /*!< [8..8] Port Interrupt Enable 3 */ + __IOM uint16_t POE8E : 1; /*!< [9..9] POE8 High-Impedance Enable */ + uint16_t : 2; + __IOM uint16_t POE8F : 1; /*!< [12..12] POE8 Flag */ + uint16_t : 3; + } ICSR3_b; + }; + + union + { + __IOM uint8_t SPOER; /*!< (@ 0x0000000A) Software Port Output Enable Register */ + + struct + { + __IOM uint8_t MTUCH34HIZ : 1; /*!< [0..0] MTU3 and MTU4 Output High-Impedance Enable */ + __IOM uint8_t MTUCH67HIZ : 1; /*!< [1..1] MTU6 and MTU7 Output High-Impedance Enable */ + __IOM uint8_t MTUCH0HIZ : 1; /*!< [2..2] MTU0 Pin High-Impedance Enable */ + uint8_t : 5; + } SPOER_b; + }; + + union + { + __IOM uint8_t POECR1; /*!< (@ 0x0000000B) Port Output Enable Control Register 1 */ + + struct + { + __IOM uint8_t MTU0AZE : 1; /*!< [0..0] MTIOC0A High-Impedance Enable */ + __IOM uint8_t MTU0BZE : 1; /*!< [1..1] MTIOC0B High-Impedance Enable */ + __IOM uint8_t MTU0CZE : 1; /*!< [2..2] MTIOC0C High-Impedance Enable */ + __IOM uint8_t MTU0DZE : 1; /*!< [3..3] MTIOC0D High-Impedance Enable */ + uint8_t : 4; + } POECR1_b; + }; + + union + { + __IOM uint16_t POECR2; /*!< (@ 0x0000000C) Port Output Enable Control Register 2 */ + + struct + { + __IOM uint16_t MTU7BDZE : 1; /*!< [0..0] MTIOC7B/MTIOC7D High-Impedance Enable */ + __IOM uint16_t MTU7ACZE : 1; /*!< [1..1] MTIOC7A/MTIOC7C High-Impedance Enable */ + __IOM uint16_t MTU6BDZE : 1; /*!< [2..2] MTIOC6B/MTIOC6D High-Impedance Enable */ + uint16_t : 5; + __IOM uint16_t MTU4BDZE : 1; /*!< [8..8] MTIOC4B/MTIOC4D High-Impedance Enable */ + __IOM uint16_t MTU4ACZE : 1; /*!< [9..9] MTIOC4A/MTIOC4C High-Impedance Enable */ + __IOM uint16_t MTU3BDZE : 1; /*!< [10..10] MTIOC3B/MTIOC3D High-Impedance Enable */ + uint16_t : 5; + } POECR2_b; + }; + __IM uint16_t RESERVED; + + union + { + __IOM uint16_t POECR4; /*!< (@ 0x00000010) Port Output Enable Control Register 4 */ + + struct + { + uint16_t : 2; + __IOM uint16_t IC2ADDMT34ZE : 1; /*!< [2..2] MTU3 and MTU4 High-Impedance POE4F Add */ + __IOM uint16_t IC3ADDMT34ZE : 1; /*!< [3..3] MTU3 and MTU4 High-Impedance POE8F Add */ + __IOM uint16_t IC4ADDMT34ZE : 1; /*!< [4..4] MTU3 and MTU4 High-Impedance POE10F Add */ + __IOM uint16_t IC5ADDMT34ZE : 1; /*!< [5..5] MTU3 and MTU4 High-Impedance POE11F Add */ + __IOM uint16_t DE0ADDMT34ZE : 1; /*!< [6..6] MTU3 and MTU4 High-Impedance DERR0ST Add */ + __IOM uint16_t DE1ADDMT34ZE : 1; /*!< [7..7] MTU3 and MTU4 High-Impedance DERR1ST Add */ + uint16_t : 1; + __IOM uint16_t IC1ADDMT67ZE : 1; /*!< [9..9] MTU6 and MTU7 High-Impedance POE0F Add */ + uint16_t : 1; + __IOM uint16_t IC3ADDMT67ZE : 1; /*!< [11..11] MTU6 and MTU7 High-Impedance POE8F Add */ + __IOM uint16_t IC4ADDMT67ZE : 1; /*!< [12..12] MTU6 and MTU7 High-Impedance POE10F Add */ + __IOM uint16_t IC5ADDMT67ZE : 1; /*!< [13..13] MTU6 and MTU7 High-Impedance POE11F Add */ + __IOM uint16_t DE0ADDMT67ZE : 1; /*!< [14..14] MTU6 and MTU7 High-Impedance DERR0ST Add */ + __IOM uint16_t DE1ADDMT67ZE : 1; /*!< [15..15] MTU6 and MTU7 High-Impedance DERR1ST Add */ + } POECR4_b; + }; + + union + { + __IOM uint16_t POECR5; /*!< (@ 0x00000012) Port Output Enable Control Register 5 */ + + struct + { + uint16_t : 1; + __IOM uint16_t IC1ADDMT0ZE : 1; /*!< [1..1] MTU0 High-Impedance POE0F Add */ + __IOM uint16_t IC2ADDMT0ZE : 1; /*!< [2..2] MTU0 High-Impedance POE4F Add */ + uint16_t : 1; + __IOM uint16_t IC4ADDMT0ZE : 1; /*!< [4..4] MTU0 High-Impedance POE10F Add */ + __IOM uint16_t IC5ADDMT0ZE : 1; /*!< [5..5] MTU0 High-Impedance POE11F Add */ + __IOM uint16_t DE0ADDMT0ZE : 1; /*!< [6..6] MTU0 High-Impedance DERR0ST Add */ + __IOM uint16_t DE1ADDMT0ZE : 1; /*!< [7..7] MTU0 High-Impedance DERR1ST Add */ + uint16_t : 8; + } POECR5_b; + }; + __IM uint16_t RESERVED1; + + union + { + __IOM uint16_t ICSR4; /*!< (@ 0x00000016) Input Level Control/Status Register 4 */ + + struct + { + __IOM uint16_t POE10M : 2; /*!< [1..0] POE10 Mode Select */ + uint16_t : 6; + __IOM uint16_t PIE4 : 1; /*!< [8..8] Port Interrupt Enable 4 */ + __IOM uint16_t POE10E : 1; /*!< [9..9] POE10 High-Impedance Enable */ + uint16_t : 2; + __IOM uint16_t POE10F : 1; /*!< [12..12] POE10 Flag */ + uint16_t : 3; + } ICSR4_b; + }; + + union + { + __IOM uint16_t ICSR5; /*!< (@ 0x00000018) Input Level Control/Status Register 5 */ + + struct + { + __IOM uint16_t POE11M : 2; /*!< [1..0] POE11 Mode Select */ + uint16_t : 6; + __IOM uint16_t PIE5 : 1; /*!< [8..8] Port Interrupt Enable 5 */ + __IOM uint16_t POE11E : 1; /*!< [9..9] POE11 High-Impedance Enable */ + uint16_t : 2; + __IOM uint16_t POE11F : 1; /*!< [12..12] POE11 Flag */ + uint16_t : 3; + } ICSR5_b; + }; + + union + { + __IOM uint16_t ALR1; /*!< (@ 0x0000001A) Active Level Setting Register 1 */ + + struct + { + __IOM uint16_t OLSG0A : 1; /*!< [0..0] MTIOC3B Pin Active Level Setting */ + __IOM uint16_t OLSG0B : 1; /*!< [1..1] MTIOC3D Pin Active Level Setting */ + __IOM uint16_t OLSG1A : 1; /*!< [2..2] MTIOC4A Pin Active Level Setting */ + __IOM uint16_t OLSG1B : 1; /*!< [3..3] MTIOC4C Pin Active Level Setting */ + __IOM uint16_t OLSG2A : 1; /*!< [4..4] MTIOC4B Pin Active Level Setting */ + __IOM uint16_t OLSG2B : 1; /*!< [5..5] MTIOC4D Pin Active Level Setting */ + uint16_t : 1; + __IOM uint16_t OLSEN : 1; /*!< [7..7] Active Level Setting Enable */ + uint16_t : 8; + } ALR1_b; + }; + + union + { + __IOM uint16_t ICSR6; /*!< (@ 0x0000001C) Input Level Control/Status Register 6 */ + + struct + { + uint16_t : 9; + __IOM uint16_t OSTSTE : 1; /*!< [9..9] Oscillation Stop High-Impedance Enable */ + uint16_t : 2; + __IOM uint16_t OSTSTF : 1; /*!< [12..12] Oscillation Stop High-Impedance Flag */ + uint16_t : 3; + } ICSR6_b; + }; + + union + { + __IOM uint16_t ICSR7; /*!< (@ 0x0000001E) Input Level Control/Status Register 7 */ + + struct + { + uint16_t : 6; + __IOM uint16_t DERR0IE : 1; /*!< [6..6] DSMIF0 Error Interrupt Enable */ + __IOM uint16_t DERR1IE : 1; /*!< [7..7] DSMIF1 Error Interrupt Enable */ + uint16_t : 5; + __IM uint16_t DERR0ST : 1; /*!< [13..13] DSMIF0 Error Status */ + __IM uint16_t DERR1ST : 1; /*!< [14..14] DSMIF1 Error Status */ + uint16_t : 1; + } ICSR7_b; + }; + __IM uint16_t RESERVED2[2]; + + union + { + __IOM uint8_t M0SELR1; /*!< (@ 0x00000024) MTU0 Pin Select Register 1 */ + + struct + { + __IOM uint8_t M0ASEL : 4; /*!< [3..0] MTU0-A (MTIOC0A) Pin Select */ + __IOM uint8_t M0BSEL : 4; /*!< [7..4] MTU0-B (MTIOC0B) Pin Select */ + } M0SELR1_b; + }; + + union + { + __IOM uint8_t M0SELR2; /*!< (@ 0x00000025) MTU0 Pin Select Register 2 */ + + struct + { + __IOM uint8_t M0CSEL : 4; /*!< [3..0] MTU0-C (MTIOC0C) Pin Select */ + __IOM uint8_t M0DSEL : 4; /*!< [7..4] MTU0-D (MTIOC0D) Pin Select */ + } M0SELR2_b; + }; + + union + { + __IOM uint8_t M3SELR; /*!< (@ 0x00000026) MTU3 Pin Select Register */ + + struct + { + __IOM uint8_t M3BSEL : 4; /*!< [3..0] MTU3-B (MTIOC3B) Pin Select */ + __IOM uint8_t M3DSEL : 4; /*!< [7..4] MTU3-D (MTIOC3D) Pin Select */ + } M3SELR_b; + }; + + union + { + __IOM uint8_t M4SELR1; /*!< (@ 0x00000027) MTU4 Pin Select Register 1 */ + + struct + { + __IOM uint8_t M4ASEL : 4; /*!< [3..0] MTU4-A (MTIOC4A) Pin Select */ + __IOM uint8_t M4CSEL : 4; /*!< [7..4] MTU4-C (MTIOC4C) Pin Select */ + } M4SELR1_b; + }; + + union + { + __IOM uint8_t M4SELR2; /*!< (@ 0x00000028) MTU4 Pin Select Register 2 */ + + struct + { + __IOM uint8_t M4BSEL : 4; /*!< [3..0] MTU4-B (MTIOC4B) Pin Select */ + __IOM uint8_t M4DSEL : 4; /*!< [7..4] MTU4-D (MTIOC4D) Pin Select */ + } M4SELR2_b; + }; + __IM uint8_t RESERVED3; + + union + { + __IOM uint8_t M6SELR; /*!< (@ 0x0000002A) MTU6 Pin Select Register */ + + struct + { + __IOM uint8_t M6BSEL : 4; /*!< [3..0] MTU6-B (MTIOC6B) Pin Select */ + __IOM uint8_t M6DSEL : 4; /*!< [7..4] MTU6-D (MTIOC6D) Pin Select */ + } M6SELR_b; + }; + + union + { + __IOM uint8_t M7SELR1; /*!< (@ 0x0000002B) MTU7 Pin Select Register 1 */ + + struct + { + __IOM uint8_t M7ASEL : 4; /*!< [3..0] MTU7-A (MTIOC7A) Pin Select */ + __IOM uint8_t M7CSEL : 4; /*!< [7..4] MTU7-C (MTIOC7C) Pin Select */ + } M7SELR1_b; + }; + + union + { + __IOM uint8_t M7SELR2; /*!< (@ 0x0000002C) MTU7 Pin Select Register 2 */ + + struct + { + __IOM uint8_t M7BSEL : 4; /*!< [3..0] MTU7-B (MTIOC7B) Pin Select */ + __IOM uint8_t M7DSEL : 4; /*!< [7..4] MTU7-D (MTIOC7D) Pin Select */ + } M7SELR2_b; + }; + __IM uint8_t RESERVED4; + __IM uint16_t RESERVED5; +} R_POE3_Type; /*!< Size = 48 (0x30) */ + +/* =========================================================================================================================== */ +/* ================ R_POEG0 ================ */ +/* =========================================================================================================================== */ + +/** + * @brief GPT Port Output Enable 0 (R_POEG0) + */ + +typedef struct /*!< (@ 0x90006000) R_POEG0 Structure */ +{ + union + { + __IOM uint32_t POEG0GA; /*!< (@ 0x00000000) POEG0 Group A Setting Register */ + + struct + { + __IOM uint32_t PIDF : 1; /*!< [0..0] Port Input Detection Flag */ + __IOM uint32_t IOCF : 1; /*!< [1..1] GPT Output Stop Request Detection Flag */ + __IOM uint32_t OSTPF : 1; /*!< [2..2] Oscillation Stop Detection Flag */ + __IOM uint32_t SSF : 1; /*!< [3..3] Software Stop Flag */ + __IOM uint32_t PIDE : 1; /*!< [4..4] Port Input Detection Enable */ + __IOM uint32_t IOCE : 1; /*!< [5..5] GPT Output Stop Request Enable */ + __IOM uint32_t OSTPE : 1; /*!< [6..6] Enable Stopping Output on Stopping of Oscillation */ + uint32_t : 9; + __IM uint32_t ST : 1; /*!< [16..16] GTETRGn Input Status Flag */ + uint32_t : 7; + __IOM uint32_t DERR0ST : 1; /*!< [24..24] DSMIF0 error status */ + __IOM uint32_t DERR1ST : 1; /*!< [25..25] DSMIF1 error status */ + __IOM uint32_t DERR0E : 1; /*!< [26..26] Permit output disabled by DSMIF0 error detection */ + __IOM uint32_t DERR1E : 1; /*!< [27..27] Permit output disabled by DSMIF1 error detection */ + __IOM uint32_t INV : 1; /*!< [28..28] GTETRGn Input Inverting */ + __IOM uint32_t NFEN : 1; /*!< [29..29] Noise filter Enable */ + __IOM uint32_t NFCS : 2; /*!< [31..30] Noise filter Clock Select */ + } POEG0GA_b; + }; + __IM uint32_t RESERVED[255]; + + union + { + __IOM uint32_t POEG0GB; /*!< (@ 0x00000400) POEG0 Group B Setting Register */ + + struct + { + __IOM uint32_t PIDF : 1; /*!< [0..0] Port Input Detection Flag */ + __IOM uint32_t IOCF : 1; /*!< [1..1] GPT Output Stop Request Detection Flag */ + __IOM uint32_t OSTPF : 1; /*!< [2..2] Oscillation Stop Detection Flag */ + __IOM uint32_t SSF : 1; /*!< [3..3] Software Stop Flag */ + __IOM uint32_t PIDE : 1; /*!< [4..4] Port Input Detection Enable */ + __IOM uint32_t IOCE : 1; /*!< [5..5] GPT Output Stop Request Enable */ + __IOM uint32_t OSTPE : 1; /*!< [6..6] Enable Stopping Output on Stopping of Oscillation */ + uint32_t : 9; + __IM uint32_t ST : 1; /*!< [16..16] GTETRGn Input Status Flag */ + uint32_t : 7; + __IOM uint32_t DERR0ST : 1; /*!< [24..24] DSMIF0 error status */ + __IOM uint32_t DERR1ST : 1; /*!< [25..25] DSMIF1 error status */ + __IOM uint32_t DERR0E : 1; /*!< [26..26] Permit output disabled by DSMIF0 error detection */ + __IOM uint32_t DERR1E : 1; /*!< [27..27] Permit output disabled by DSMIF1 error detection */ + __IOM uint32_t INV : 1; /*!< [28..28] GTETRGn Input Inverting */ + __IOM uint32_t NFEN : 1; /*!< [29..29] Noise filter Enable */ + __IOM uint32_t NFCS : 2; /*!< [31..30] Noise filter Clock Select */ + } POEG0GB_b; + }; + __IM uint32_t RESERVED1[255]; + + union + { + __IOM uint32_t POEG0GC; /*!< (@ 0x00000800) POEG0 Group C Setting Register */ + + struct + { + __IOM uint32_t PIDF : 1; /*!< [0..0] Port Input Detection Flag */ + __IOM uint32_t IOCF : 1; /*!< [1..1] GPT Output Stop Request Detection Flag */ + __IOM uint32_t OSTPF : 1; /*!< [2..2] Oscillation Stop Detection Flag */ + __IOM uint32_t SSF : 1; /*!< [3..3] Software Stop Flag */ + __IOM uint32_t PIDE : 1; /*!< [4..4] Port Input Detection Enable */ + __IOM uint32_t IOCE : 1; /*!< [5..5] GPT Output Stop Request Enable */ + __IOM uint32_t OSTPE : 1; /*!< [6..6] Enable Stopping Output on Stopping of Oscillation */ + uint32_t : 9; + __IM uint32_t ST : 1; /*!< [16..16] GTETRGn Input Status Flag */ + uint32_t : 7; + __IOM uint32_t DERR0ST : 1; /*!< [24..24] DSMIF0 error status */ + __IOM uint32_t DERR1ST : 1; /*!< [25..25] DSMIF1 error status */ + __IOM uint32_t DERR0E : 1; /*!< [26..26] Permit output disabled by DSMIF0 error detection */ + __IOM uint32_t DERR1E : 1; /*!< [27..27] Permit output disabled by DSMIF1 error detection */ + __IOM uint32_t INV : 1; /*!< [28..28] GTETRGn Input Inverting */ + __IOM uint32_t NFEN : 1; /*!< [29..29] Noise filter Enable */ + __IOM uint32_t NFCS : 2; /*!< [31..30] Noise filter Clock Select */ + } POEG0GC_b; + }; + __IM uint32_t RESERVED2[255]; + + union + { + __IOM uint32_t POEG0GD; /*!< (@ 0x00000C00) POEG0 Group D Setting Register */ + + struct + { + __IOM uint32_t PIDF : 1; /*!< [0..0] Port Input Detection Flag */ + __IOM uint32_t IOCF : 1; /*!< [1..1] GPT Output Stop Request Detection Flag */ + __IOM uint32_t OSTPF : 1; /*!< [2..2] Oscillation Stop Detection Flag */ + __IOM uint32_t SSF : 1; /*!< [3..3] Software Stop Flag */ + __IOM uint32_t PIDE : 1; /*!< [4..4] Port Input Detection Enable */ + __IOM uint32_t IOCE : 1; /*!< [5..5] GPT Output Stop Request Enable */ + __IOM uint32_t OSTPE : 1; /*!< [6..6] Enable Stopping Output on Stopping of Oscillation */ + uint32_t : 9; + __IM uint32_t ST : 1; /*!< [16..16] GTETRGn Input Status Flag */ + uint32_t : 7; + __IOM uint32_t DERR0ST : 1; /*!< [24..24] DSMIF0 error status */ + __IOM uint32_t DERR1ST : 1; /*!< [25..25] DSMIF1 error status */ + __IOM uint32_t DERR0E : 1; /*!< [26..26] Permit output disabled by DSMIF0 error detection */ + __IOM uint32_t DERR1E : 1; /*!< [27..27] Permit output disabled by DSMIF1 error detection */ + __IOM uint32_t INV : 1; /*!< [28..28] GTETRGn Input Inverting */ + __IOM uint32_t NFEN : 1; /*!< [29..29] Noise filter Enable */ + __IOM uint32_t NFCS : 2; /*!< [31..30] Noise filter Clock Select */ + } POEG0GD_b; + }; +} R_POEG0_Type; /*!< Size = 3076 (0xc04) */ + +/* =========================================================================================================================== */ +/* ================ R_DSMIF0 ================ */ +/* =========================================================================================================================== */ + +/** + * @brief Delta-sigma Interface 0 (R_DSMIF0) + */ + +typedef struct /*!< (@ 0x90008000) R_DSMIF0 Structure */ +{ + __IM uint32_t RESERVED[16]; + + union + { + __IOM uint32_t DSSEICR; /*!< (@ 0x00000040) Overcurrent Sum Error Detect Interrupt Control + * Register */ + + struct + { + __IOM uint32_t ISEL : 1; /*!< [0..0] Overcurrent sum error lower limit detection interrupt + * enable bit */ + __IOM uint32_t ISEH : 1; /*!< [1..1] Overcurrent sum error upper limit detection interrupt + * enable bit */ + uint32_t : 30; + } DSSEICR_b; + }; + + union + { + __IOM uint32_t DSSECSR; /*!< (@ 0x00000044) Overcurrent Sum Error Detect Channel Setting + * Register */ + + struct + { + __IOM uint32_t SEDM : 3; /*!< [2..0] Overcurrent sum error detect mode setting bit */ + uint32_t : 29; + } DSSECSR_b; + }; + + union + { + __IOM uint32_t DSSELTR; /*!< (@ 0x00000048) Overcurrent Sum Error Detect Low Threshold Register */ + + struct + { + __IOM uint32_t SCMPTBL : 18; /*!< [17..0] Overcurrent sum error detect lower limit */ + uint32_t : 14; + } DSSELTR_b; + }; + + union + { + __IOM uint32_t DSSEHTR; /*!< (@ 0x0000004C) Overcurrent Sum Error Detect High Threshold Register */ + + struct + { + __IOM uint32_t SCMPTBH : 18; /*!< [17..0] Overcurrent sum error detect upper limit */ + uint32_t : 14; + } DSSEHTR_b; + }; + + union + { + __IOM uint32_t DSSECR; /*!< (@ 0x00000050) Overcurrent Sum Error Detect Control Register */ + + struct + { + __IOM uint32_t SEEL : 1; /*!< [0..0] Overcurrent sum error lower limit detection enable bit */ + __IOM uint32_t SEEH : 1; /*!< [1..1] Overcurrent sum error upper limit detection enable bit */ + uint32_t : 30; + } DSSECR_b; + }; + __IM uint32_t RESERVED1[3]; + + union + { + __IOM uint32_t DSSECDR[3]; /*!< (@ 0x00000060) Overcurrent Sum Error Detect Capture Data Register + * [0..2] */ + + struct + { + __IOM uint32_t SECDR : 16; /*!< [15..0] Overcurrent sum error detect capture data n */ + uint32_t : 16; + } DSSECDR_b[3]; + }; + __IM uint32_t RESERVED2[37]; + + union + { + __IOM uint32_t DSCSTRTR; /*!< (@ 0x00000100) Channel Software Start Trigger Register */ + + struct + { + __IOM uint32_t STRTRG0 : 1; /*!< [0..0] Channel 0 start trigger */ + __IOM uint32_t STRTRG1 : 1; /*!< [1..1] Channel 1 start trigger */ + __IOM uint32_t STRTRG2 : 1; /*!< [2..2] Channel 2 start trigger */ + uint32_t : 29; + } DSCSTRTR_b; + }; + + union + { + __IOM uint32_t DSCSTPTR; /*!< (@ 0x00000104) Channel Software Stop Trigger Register */ + + struct + { + __IOM uint32_t STPTRG0 : 1; /*!< [0..0] Channel 0 stop trigger */ + __IOM uint32_t STPTRG1 : 1; /*!< [1..1] Channel 1 stop trigger */ + __IOM uint32_t STPTRG2 : 1; /*!< [2..2] Channel 2 stop trigger */ + uint32_t : 29; + } DSCSTPTR_b; + }; + __IM uint32_t RESERVED3[2]; + + union + { + __IM uint32_t DSCESR; /*!< (@ 0x00000110) Channel Error Status Register */ + + struct + { + __IM uint32_t OCFL0 : 1; /*!< [0..0] Channel 0 overcurrent lower limit detection flag */ + __IM uint32_t OCFL1 : 1; /*!< [1..1] Channel 1 overcurrent lower limit detection flag */ + __IM uint32_t OCFL2 : 1; /*!< [2..2] Channel 2 overcurrent lower limit detection flag */ + uint32_t : 1; + __IM uint32_t OCFH0 : 1; /*!< [4..4] Channel 0 overcurrent upper limit detection flag */ + __IM uint32_t OCFH1 : 1; /*!< [5..5] Channel 1 overcurrent upper limit detection flag */ + __IM uint32_t OCFH2 : 1; /*!< [6..6] Channel 2 overcurrent upper limit detection flag */ + uint32_t : 1; + __IM uint32_t SCF0 : 1; /*!< [8..8] Channel 0 short circuit detection flag */ + __IM uint32_t SCF1 : 1; /*!< [9..9] Channel 1 short circuit detection flag */ + __IM uint32_t SCF2 : 1; /*!< [10..10] Channel 2 short circuit detection flag */ + uint32_t : 5; + __IM uint32_t SUMERRL : 1; /*!< [16..16] Overcurrent sum error lower limit detection flag */ + __IM uint32_t SUMERRH : 1; /*!< [17..17] Overcurrent sum error upper limit detection flag */ + uint32_t : 14; + } DSCESR_b; + }; + __IM uint32_t RESERVED4; + + union + { + __IM uint32_t DSCSR; /*!< (@ 0x00000118) Channel Status Register */ + + struct + { + __IM uint32_t DUF0 : 1; /*!< [0..0] Channel 0 Data Update flag */ + __IM uint32_t DUF1 : 1; /*!< [1..1] Channel 1 Data Update flag */ + __IM uint32_t DUF2 : 1; /*!< [2..2] Channel 2 Data Update flag */ + uint32_t : 29; + } DSCSR_b; + }; + + union + { + __IM uint32_t DSCSSR; /*!< (@ 0x0000011C) Channel State Status Register */ + + struct + { + __IM uint32_t CHSTATE0 : 1; /*!< [0..0] Channel 0 state */ + uint32_t : 3; + __IM uint32_t CHSTATE1 : 1; /*!< [4..4] Channel 1 state */ + uint32_t : 3; + __IM uint32_t CHSTATE2 : 1; /*!< [8..8] Channel 2 state */ + uint32_t : 23; + } DSCSSR_b; + }; + + union + { + __OM uint32_t DSCESCR; /*!< (@ 0x00000120) Channel Error Status Clear Register */ + + struct + { + __OM uint32_t CLROCFL0 : 1; /*!< [0..0] Channel 0 Overcurrent Lower Limit Detection Flag Clear */ + __OM uint32_t CLROCFL1 : 1; /*!< [1..1] Channel 1 Overcurrent Lower Limit Detection Flag Clear */ + __OM uint32_t CLROCFL2 : 1; /*!< [2..2] Channel 2 Overcurrent Lower Limit Detection Flag Clear */ + uint32_t : 1; + __OM uint32_t CLROCFH0 : 1; /*!< [4..4] Channel 0 Overcurrent Upper Limit Detection Flag Clear */ + __OM uint32_t CLROCFH1 : 1; /*!< [5..5] Channel 1 Overcurrent Upper Limit Detection Flag Clear */ + __OM uint32_t CLROCFH2 : 1; /*!< [6..6] Channel 2 Overcurrent Upper Limit Detection Flag Clear */ + uint32_t : 1; + __OM uint32_t CLRSCF0 : 1; /*!< [8..8] Channel 0 Short Circuit Detection Flag Clear */ + __OM uint32_t CLRSCF1 : 1; /*!< [9..9] Channel 1 Short Circuit Detection Flag Clear */ + __OM uint32_t CLRSCF2 : 1; /*!< [10..10] Channel 2 Short Circuit Detection Flag Clear */ + uint32_t : 5; + __OM uint32_t CLRSUMERRL : 1; /*!< [16..16] Overcurrent Sum Error Lower Limit Detection Flag Clear */ + __OM uint32_t CLRSUMERRH : 1; /*!< [17..17] Overcurrent Sum Error Upper Limit Detection Flag Clear */ + uint32_t : 14; + } DSCESCR_b; + }; + __IM uint32_t RESERVED5; + + union + { + __OM uint32_t DSCSCR; /*!< (@ 0x00000128) Channel Status Clear Register */ + + struct + { + __OM uint32_t CLRDUF0 : 1; /*!< [0..0] Channel 0 Data Update Flag Clear */ + __OM uint32_t CLRDUF1 : 1; /*!< [1..1] Channel 1 Data Update Flag Clear */ + __OM uint32_t CLRDUF2 : 1; /*!< [2..2] Channel 2 Data Update Flag Clear */ + uint32_t : 29; + } DSCSCR_b; + }; + __IM uint32_t RESERVED6[21]; + __IOM R_DSMIF0_CH_Type CH[3]; /*!< (@ 0x00000180) Channel Registers [0..2] */ +} R_DSMIF0_Type; /*!< Size = 816 (0x330) */ + +/* =========================================================================================================================== */ +/* ================ R_GSC ================ */ +/* =========================================================================================================================== */ + +/** + * @brief Global System Counter (R_GSC) + */ + +typedef struct /*!< (@ 0xC0060000) R_GSC Structure */ +{ + union + { + __IOM uint32_t CNTCR; /*!< (@ 0x00000000) Global System Counter Control Register */ + + struct + { + __IOM uint32_t EN : 1; /*!< [0..0] Counter Enable */ + __IOM uint32_t HDBG : 1; /*!< [1..1] Halt on Debug */ + uint32_t : 30; + } CNTCR_b; + }; + + union + { + __IM uint32_t CNTSR; /*!< (@ 0x00000004) Global System Counter Status Register */ + + struct + { + uint32_t : 1; + __IM uint32_t DBGH : 1; /*!< [1..1] Debug Halted */ + uint32_t : 30; + } CNTSR_b; + }; + + union + { + __IOM uint32_t CNTCVL; /*!< (@ 0x00000008) Global System Counter Current Value Lower Register */ + + struct + { + __IOM uint32_t CNTCVL_L_32 : 32; /*!< [31..0] Current value of the counter, lower 32 bits */ + } CNTCVL_b; + }; + + union + { + __IOM uint32_t CNTCVU; /*!< (@ 0x0000000C) Global System Counter Current Value Upper Register */ + + struct + { + __IOM uint32_t CNTCVU_U_32 : 32; /*!< [31..0] Current value of the counter, upper 32 bits */ + } CNTCVU_b; + }; + __IM uint32_t RESERVED[4]; + + union + { + __IOM uint32_t CNTFID0; /*!< (@ 0x00000020) Global System Counter Base Frequency ID Register */ + + struct + { + __IOM uint32_t FREQ : 32; /*!< [31..0] Frequency in number of ticks per second */ + } CNTFID0_b; + }; +} R_GSC_Type; /*!< Size = 36 (0x24) */ + +/** @} */ /* End of group Device_Peripheral_peripherals */ + +/* =========================================================================================================================== */ +/* ================ Device Specific Peripheral Address Map ================ */ +/* =========================================================================================================================== */ + +/** @addtogroup Device_Peripheral_peripheralAddr + * @{ + */ + + #define R_GPT7_BASE 0x80000000UL + #define R_GPT8_BASE 0x80000100UL + #define R_GPT9_BASE 0x80000200UL + #define R_GPT10_BASE 0x80000300UL + #define R_GPT11_BASE 0x80000400UL + #define R_GPT12_BASE 0x80000500UL + #define R_GPT13_BASE 0x80000600UL + #define R_SCI0_BASE 0x80001000UL + #define R_SCI1_BASE 0x80001400UL + #define R_SCI2_BASE 0x80001800UL + #define R_SCI3_BASE 0x80001C00UL + #define R_SCI4_BASE 0x80002000UL + #define R_SPI0_BASE 0x80003000UL + #define R_SPI1_BASE 0x80003400UL + #define R_SPI2_BASE 0x80003800UL + #define R_CRC0_BASE 0x80004000UL + #define R_CANFD_BASE 0x80020000UL + #define R_CMT_BASE 0x80040000UL + #define R_CMTW0_BASE 0x80041000UL + #define R_CMTW1_BASE 0x80041400UL + #define R_WDT0_BASE 0x80042000UL + #define R_IIC0_BASE 0x80043000UL + #define R_IIC1_BASE 0x80043400UL + #define R_DOC_BASE 0x80044000UL + #define R_ADC121_BASE 0x80045000UL + #define R_TSU_BASE 0x80046000UL + #define R_POEG1_BASE 0x80047000UL + #define R_DMAC0_BASE 0x80080000UL + #define R_DMAC1_BASE 0x80081000UL + #define R_ICU_NS_BASE 0x80090000UL + #define R_ELC_BASE 0x80090010UL + #define R_DMA_BASE 0x80090060UL + #define R_PORT_NSR_BASE 0x800A0000UL + #define R_GMAC_BASE 0x80100000UL + #define R_ETHSS_BASE 0x80110000UL + #define R_ESC_INI_BASE 0x80110200UL + #define R_ETHSW_PTP_BASE 0x80110400UL + #define R_ETHSW_BASE 0x80120000UL + #define R_ESC_BASE 0x80130000UL + #define R_USBHC_BASE 0x80200000UL + #define R_USBF_BASE 0x80201000UL + #define R_BSC_BASE 0x80210000UL + #define R_XSPI0_BASE 0x80220000UL + #define R_XSPI1_BASE 0x80221000UL + #define R_MBXSEM_BASE 0x80240000UL + #define R_SHOSTIF_BASE 0x80241000UL + #define R_PHOSTIF_BASE 0x80242000UL + #define R_SYSC_NS_BASE 0x80280000UL + #define R_ELO_BASE 0x80281200UL + #define R_RWP_NS_BASE 0x80281A10UL + #define R_GPT14_BASE 0x81000000UL + #define R_GPT15_BASE 0x81000100UL + #define R_GPT16_BASE 0x81000200UL + #define R_GPT17_BASE 0x81000300UL + #define R_SCI5_BASE 0x81001000UL + #define R_SPI3_BASE 0x81002000UL + #define R_CRC1_BASE 0x81003000UL + #define R_IIC2_BASE 0x81008000UL + #define R_RTC_BASE 0x81009000UL + #define R_POEG2_BASE 0x8100A000UL + #define R_OTP_BASE 0x81028000UL + #define R_PORT_SR_BASE 0x81030000UL + #define R_PTADR_BASE 0x81030C00UL + #define R_SYSRAM0_BASE 0x81040000UL + #define R_SYSRAM1_BASE 0x81041000UL + #define R_SYSRAM2_BASE 0x81042000UL + #define R_ICU_BASE 0x81048000UL + #define R_SYSC_S_BASE 0x81280000UL + #define R_CLMA0_BASE 0x81280800UL + #define R_CLMA1_BASE 0x81280820UL + #define R_CLMA2_BASE 0x81280840UL + #define R_CLMA3_BASE 0x81280860UL + #define R_MPU0_BASE 0x81281100UL + #define R_MPU1_BASE 0x81281200UL + #define R_MPU2_BASE 0x81281300UL + #define R_MPU3_BASE 0x81281400UL + #define R_MPU4_BASE 0x81281500UL + #define R_MPU6_BASE 0x81281700UL + #define R_SYSRAM_CTL_BASE 0x81281800UL + #define R_SHOSTIF_CFG_BASE 0x81281920UL + #define R_PHOSTIF_CFG_BASE 0x81281930UL + #define R_RWP_S_BASE 0x81281A00UL + #define R_MPU7_BASE 0x81281C00UL + #define R_MPU8_BASE 0x81281D00UL + #define R_MTU_BASE 0x90001000UL + #define R_MTU3_BASE 0x90001100UL + #define R_MTU4_BASE 0x90001200UL + #define R_MTU_NF_BASE 0x90001290UL + #define R_MTU0_BASE 0x90001300UL + #define R_MTU1_BASE 0x90001380UL + #define R_MTU2_BASE 0x90001400UL + #define R_MTU8_BASE 0x90001600UL + #define R_MTU6_BASE 0x90001900UL + #define R_MTU7_BASE 0x90001A00UL + #define R_MTU5_BASE 0x90001C00UL + #define R_GPT0_BASE 0x90002000UL + #define R_GPT1_BASE 0x90002100UL + #define R_GPT2_BASE 0x90002200UL + #define R_GPT3_BASE 0x90002300UL + #define R_GPT4_BASE 0x90002400UL + #define R_GPT5_BASE 0x90002500UL + #define R_GPT6_BASE 0x90002600UL + #define R_TFU_BASE 0x90003000UL + #define R_ADC120_BASE 0x90004000UL + #define R_POE3_BASE 0x90005000UL + #define R_POEG0_BASE 0x90006000UL + #define R_DSMIF0_BASE 0x90008000UL + #define R_DSMIF1_BASE 0x90008400UL + #define R_GSC_BASE 0xC0060000UL + +/** @} */ /* End of group Device_Peripheral_peripheralAddr */ + +/* =========================================================================================================================== */ +/* ================ Peripheral declaration ================ */ +/* =========================================================================================================================== */ + +/** @addtogroup Device_Peripheral_declaration + * @{ + */ + + #define R_GPT7 ((R_GPT0_Type *) R_GPT7_BASE) + #define R_GPT8 ((R_GPT0_Type *) R_GPT8_BASE) + #define R_GPT9 ((R_GPT0_Type *) R_GPT9_BASE) + #define R_GPT10 ((R_GPT0_Type *) R_GPT10_BASE) + #define R_GPT11 ((R_GPT0_Type *) R_GPT11_BASE) + #define R_GPT12 ((R_GPT0_Type *) R_GPT12_BASE) + #define R_GPT13 ((R_GPT0_Type *) R_GPT13_BASE) + #define R_SCI0 ((R_SCI0_Type *) R_SCI0_BASE) + #define R_SCI1 ((R_SCI0_Type *) R_SCI1_BASE) + #define R_SCI2 ((R_SCI0_Type *) R_SCI2_BASE) + #define R_SCI3 ((R_SCI0_Type *) R_SCI3_BASE) + #define R_SCI4 ((R_SCI0_Type *) R_SCI4_BASE) + #define R_SPI0 ((R_SPI0_Type *) R_SPI0_BASE) + #define R_SPI1 ((R_SPI0_Type *) R_SPI1_BASE) + #define R_SPI2 ((R_SPI0_Type *) R_SPI2_BASE) + #define R_CRC0 ((R_CRC0_Type *) R_CRC0_BASE) + #define R_CANFD ((R_CANFD_Type *) R_CANFD_BASE) + #define R_CMT ((R_CMT_Type *) R_CMT_BASE) + #define R_CMTW0 ((R_CMTW0_Type *) R_CMTW0_BASE) + #define R_CMTW1 ((R_CMTW0_Type *) R_CMTW1_BASE) + #define R_WDT0 ((R_WDT0_Type *) R_WDT0_BASE) + #define R_IIC0 ((R_IIC0_Type *) R_IIC0_BASE) + #define R_IIC1 ((R_IIC0_Type *) R_IIC1_BASE) + #define R_DOC ((R_DOC_Type *) R_DOC_BASE) + #define R_ADC121 ((R_ADC121_Type *) R_ADC121_BASE) + #define R_TSU ((R_TSU_Type *) R_TSU_BASE) + #define R_POEG1 ((R_POEG1_Type *) R_POEG1_BASE) + #define R_DMAC0 ((R_DMAC0_Type *) R_DMAC0_BASE) + #define R_DMAC1 ((R_DMAC0_Type *) R_DMAC1_BASE) + #define R_ICU_NS ((R_ICU_NS_Type *) R_ICU_NS_BASE) + #define R_ELC ((R_ELC_Type *) R_ELC_BASE) + #define R_DMA ((R_DMA_Type *) R_DMA_BASE) + #define R_PORT_NSR ((R_PORT_COMMON_Type *) R_PORT_NSR_BASE) + #define R_GMAC ((R_GMAC_Type *) R_GMAC_BASE) + #define R_ETHSS ((R_ETHSS_Type *) R_ETHSS_BASE) + #define R_ESC_INI ((R_ESC_INI_Type *) R_ESC_INI_BASE) + #define R_ETHSW_PTP ((R_ETHSW_PTP_Type *) R_ETHSW_PTP_BASE) + #define R_ETHSW ((R_ETHSW_Type *) R_ETHSW_BASE) + #define R_ESC ((R_ESC_Type *) R_ESC_BASE) + #define R_USBHC ((R_USBHC_Type *) R_USBHC_BASE) + #define R_USBF ((R_USBF_Type *) R_USBF_BASE) + #define R_BSC ((R_BSC_Type *) R_BSC_BASE) + #define R_XSPI0 ((R_XSPI0_Type *) R_XSPI0_BASE) + #define R_XSPI1 ((R_XSPI0_Type *) R_XSPI1_BASE) + #define R_MBXSEM ((R_MBXSEM_Type *) R_MBXSEM_BASE) + #define R_SHOSTIF ((R_SHOSTIF_Type *) R_SHOSTIF_BASE) + #define R_PHOSTIF ((R_PHOSTIF_Type *) R_PHOSTIF_BASE) + #define R_SYSC_NS ((R_SYSC_NS_Type *) R_SYSC_NS_BASE) + #define R_ELO ((R_ELO_Type *) R_ELO_BASE) + #define R_RWP_NS ((R_RWP_NS_Type *) R_RWP_NS_BASE) + #define R_GPT14 ((R_GPT0_Type *) R_GPT14_BASE) + #define R_GPT15 ((R_GPT0_Type *) R_GPT15_BASE) + #define R_GPT16 ((R_GPT0_Type *) R_GPT16_BASE) + #define R_GPT17 ((R_GPT0_Type *) R_GPT17_BASE) + #define R_SCI5 ((R_SCI0_Type *) R_SCI5_BASE) + #define R_SPI3 ((R_SPI0_Type *) R_SPI3_BASE) + #define R_CRC1 ((R_CRC0_Type *) R_CRC1_BASE) + #define R_IIC2 ((R_IIC0_Type *) R_IIC2_BASE) + #define R_RTC ((R_RTC_Type *) R_RTC_BASE) + #define R_POEG2 ((R_POEG2_Type *) R_POEG2_BASE) + #define R_OTP ((R_OTP_Type *) R_OTP_BASE) + #define R_PORT_SR ((R_PORT_COMMON_Type *) R_PORT_SR_BASE) + #define R_PTADR ((R_PTADR_Type *) R_PTADR_BASE) + #define R_SYSRAM0 ((R_SYSRAM0_Type *) R_SYSRAM0_BASE) + #define R_SYSRAM1 ((R_SYSRAM0_Type *) R_SYSRAM1_BASE) + #define R_SYSRAM2 ((R_SYSRAM0_Type *) R_SYSRAM2_BASE) + #define R_ICU ((R_ICU_Type *) R_ICU_BASE) + #define R_SYSC_S ((R_SYSC_S_Type *) R_SYSC_S_BASE) + #define R_CLMA0 ((R_CLMA0_Type *) R_CLMA0_BASE) + #define R_CLMA1 ((R_CLMA0_Type *) R_CLMA1_BASE) + #define R_CLMA2 ((R_CLMA0_Type *) R_CLMA2_BASE) + #define R_CLMA3 ((R_CLMA0_Type *) R_CLMA3_BASE) + #define R_MPU0 ((R_MPU0_Type *) R_MPU0_BASE) + #define R_MPU1 ((R_MPU0_Type *) R_MPU1_BASE) + #define R_MPU2 ((R_MPU0_Type *) R_MPU2_BASE) + #define R_MPU3 ((R_MPU3_Type *) R_MPU3_BASE) + #define R_MPU4 ((R_MPU3_Type *) R_MPU4_BASE) + #define R_MPU6 ((R_MPU0_Type *) R_MPU6_BASE) + #define R_SYSRAM_CTL ((R_SYSRAM_CTL_Type *) R_SYSRAM_CTL_BASE) + #define R_SHOSTIF_CFG ((R_SHOSTIF_CFG_Type *) R_SHOSTIF_CFG_BASE) + #define R_PHOSTIF_CFG ((R_PHOSTIF_CFG_Type *) R_PHOSTIF_CFG_BASE) + #define R_RWP_S ((R_RWP_S_Type *) R_RWP_S_BASE) + #define R_MPU7 ((R_MPU3_Type *) R_MPU7_BASE) + #define R_MPU8 ((R_MPU3_Type *) R_MPU8_BASE) + #define R_MTU ((R_MTU_Type *) R_MTU_BASE) + #define R_MTU3 ((R_MTU3_Type *) R_MTU3_BASE) + #define R_MTU4 ((R_MTU4_Type *) R_MTU4_BASE) + #define R_MTU_NF ((R_MTU_NF_Type *) R_MTU_NF_BASE) + #define R_MTU0 ((R_MTU0_Type *) R_MTU0_BASE) + #define R_MTU1 ((R_MTU1_Type *) R_MTU1_BASE) + #define R_MTU2 ((R_MTU2_Type *) R_MTU2_BASE) + #define R_MTU8 ((R_MTU8_Type *) R_MTU8_BASE) + #define R_MTU6 ((R_MTU6_Type *) R_MTU6_BASE) + #define R_MTU7 ((R_MTU7_Type *) R_MTU7_BASE) + #define R_MTU5 ((R_MTU5_Type *) R_MTU5_BASE) + #define R_GPT0 ((R_GPT0_Type *) R_GPT0_BASE) + #define R_GPT1 ((R_GPT0_Type *) R_GPT1_BASE) + #define R_GPT2 ((R_GPT0_Type *) R_GPT2_BASE) + #define R_GPT3 ((R_GPT0_Type *) R_GPT3_BASE) + #define R_GPT4 ((R_GPT0_Type *) R_GPT4_BASE) + #define R_GPT5 ((R_GPT0_Type *) R_GPT5_BASE) + #define R_GPT6 ((R_GPT0_Type *) R_GPT6_BASE) + #define R_TFU ((R_TFU_Type *) R_TFU_BASE) + #define R_ADC120 ((R_ADC121_Type *) R_ADC120_BASE) + #define R_POE3 ((R_POE3_Type *) R_POE3_BASE) + #define R_POEG0 ((R_POEG0_Type *) R_POEG0_BASE) + #define R_DSMIF0 ((R_DSMIF0_Type *) R_DSMIF0_BASE) + #define R_DSMIF1 ((R_DSMIF0_Type *) R_DSMIF1_BASE) + #define R_GSC ((R_GSC_Type *) R_GSC_BASE) + +/** @} */ /* End of group Device_Peripheral_declaration */ + +/* ========================================= End of section using anonymous unions ========================================= */ + #if defined(__CC_ARM) + #pragma pop + #elif defined(__ICCARM__) + +/* leave anonymous unions enabled */ + #elif defined(__ARMCC_VERSION) && (__ARMCC_VERSION >= 6010050) + #pragma clang diagnostic pop + #elif defined(__GNUC__) + +/* anonymous unions are enabled by default */ + #elif defined(__TMS470__) + +/* anonymous unions are enabled by default */ + #elif defined(__TASKING__) + #pragma warning restore + #elif defined(__CSMC__) + +/* anonymous unions are enabled by default */ + #endif + +/* =========================================================================================================================== */ +/* ================ Pos/Mask Cluster Section ================ */ +/* =========================================================================================================================== */ + +/** @addtogroup PosMask_clusters + * @{ + */ + +/* =========================================================================================================================== */ +/* ================ CFDC ================ */ +/* =========================================================================================================================== */ + +/* ========================================================= NCFG ========================================================== */ + #define R_CANFD_CFDC_NCFG_NBRP_Pos (0UL) /*!< NBRP (Bit 0) */ + #define R_CANFD_CFDC_NCFG_NBRP_Msk (0x3ffUL) /*!< NBRP (Bitfield-Mask: 0x3ff) */ + #define R_CANFD_CFDC_NCFG_NSJW_Pos (10UL) /*!< NSJW (Bit 10) */ + #define R_CANFD_CFDC_NCFG_NSJW_Msk (0x1fc00UL) /*!< NSJW (Bitfield-Mask: 0x7f) */ + #define R_CANFD_CFDC_NCFG_NTSEG1_Pos (17UL) /*!< NTSEG1 (Bit 17) */ + #define R_CANFD_CFDC_NCFG_NTSEG1_Msk (0x1fe0000UL) /*!< NTSEG1 (Bitfield-Mask: 0xff) */ + #define R_CANFD_CFDC_NCFG_NTSEG2_Pos (25UL) /*!< NTSEG2 (Bit 25) */ + #define R_CANFD_CFDC_NCFG_NTSEG2_Msk (0xfe000000UL) /*!< NTSEG2 (Bitfield-Mask: 0x7f) */ +/* ========================================================== CTR ========================================================== */ + #define R_CANFD_CFDC_CTR_CHMDC_Pos (0UL) /*!< CHMDC (Bit 0) */ + #define R_CANFD_CFDC_CTR_CHMDC_Msk (0x3UL) /*!< CHMDC (Bitfield-Mask: 0x03) */ + #define R_CANFD_CFDC_CTR_CSLPR_Pos (2UL) /*!< CSLPR (Bit 2) */ + #define R_CANFD_CFDC_CTR_CSLPR_Msk (0x4UL) /*!< CSLPR (Bitfield-Mask: 0x01) */ + #define R_CANFD_CFDC_CTR_RTBO_Pos (3UL) /*!< RTBO (Bit 3) */ + #define R_CANFD_CFDC_CTR_RTBO_Msk (0x8UL) /*!< RTBO (Bitfield-Mask: 0x01) */ + #define R_CANFD_CFDC_CTR_BEIE_Pos (8UL) /*!< BEIE (Bit 8) */ + #define R_CANFD_CFDC_CTR_BEIE_Msk (0x100UL) /*!< BEIE (Bitfield-Mask: 0x01) */ + #define R_CANFD_CFDC_CTR_EWIE_Pos (9UL) /*!< EWIE (Bit 9) */ + #define R_CANFD_CFDC_CTR_EWIE_Msk (0x200UL) /*!< EWIE (Bitfield-Mask: 0x01) */ + #define R_CANFD_CFDC_CTR_EPIE_Pos (10UL) /*!< EPIE (Bit 10) */ + #define R_CANFD_CFDC_CTR_EPIE_Msk (0x400UL) /*!< EPIE (Bitfield-Mask: 0x01) */ + #define R_CANFD_CFDC_CTR_BOEIE_Pos (11UL) /*!< BOEIE (Bit 11) */ + #define R_CANFD_CFDC_CTR_BOEIE_Msk (0x800UL) /*!< BOEIE (Bitfield-Mask: 0x01) */ + #define R_CANFD_CFDC_CTR_BORIE_Pos (12UL) /*!< BORIE (Bit 12) */ + #define R_CANFD_CFDC_CTR_BORIE_Msk (0x1000UL) /*!< BORIE (Bitfield-Mask: 0x01) */ + #define R_CANFD_CFDC_CTR_OLIE_Pos (13UL) /*!< OLIE (Bit 13) */ + #define R_CANFD_CFDC_CTR_OLIE_Msk (0x2000UL) /*!< OLIE (Bitfield-Mask: 0x01) */ + #define R_CANFD_CFDC_CTR_BLIE_Pos (14UL) /*!< BLIE (Bit 14) */ + #define R_CANFD_CFDC_CTR_BLIE_Msk (0x4000UL) /*!< BLIE (Bitfield-Mask: 0x01) */ + #define R_CANFD_CFDC_CTR_ALIE_Pos (15UL) /*!< ALIE (Bit 15) */ + #define R_CANFD_CFDC_CTR_ALIE_Msk (0x8000UL) /*!< ALIE (Bitfield-Mask: 0x01) */ + #define R_CANFD_CFDC_CTR_TAIE_Pos (16UL) /*!< TAIE (Bit 16) */ + #define R_CANFD_CFDC_CTR_TAIE_Msk (0x10000UL) /*!< TAIE (Bitfield-Mask: 0x01) */ + #define R_CANFD_CFDC_CTR_EOCOIE_Pos (17UL) /*!< EOCOIE (Bit 17) */ + #define R_CANFD_CFDC_CTR_EOCOIE_Msk (0x20000UL) /*!< EOCOIE (Bitfield-Mask: 0x01) */ + #define R_CANFD_CFDC_CTR_SOCOIE_Pos (18UL) /*!< SOCOIE (Bit 18) */ + #define R_CANFD_CFDC_CTR_SOCOIE_Msk (0x40000UL) /*!< SOCOIE (Bitfield-Mask: 0x01) */ + #define R_CANFD_CFDC_CTR_TDCVFIE_Pos (19UL) /*!< TDCVFIE (Bit 19) */ + #define R_CANFD_CFDC_CTR_TDCVFIE_Msk (0x80000UL) /*!< TDCVFIE (Bitfield-Mask: 0x01) */ + #define R_CANFD_CFDC_CTR_BOM_Pos (21UL) /*!< BOM (Bit 21) */ + #define R_CANFD_CFDC_CTR_BOM_Msk (0x600000UL) /*!< BOM (Bitfield-Mask: 0x03) */ + #define R_CANFD_CFDC_CTR_ERRD_Pos (23UL) /*!< ERRD (Bit 23) */ + #define R_CANFD_CFDC_CTR_ERRD_Msk (0x800000UL) /*!< ERRD (Bitfield-Mask: 0x01) */ + #define R_CANFD_CFDC_CTR_CTME_Pos (24UL) /*!< CTME (Bit 24) */ + #define R_CANFD_CFDC_CTR_CTME_Msk (0x1000000UL) /*!< CTME (Bitfield-Mask: 0x01) */ + #define R_CANFD_CFDC_CTR_CTMS_Pos (25UL) /*!< CTMS (Bit 25) */ + #define R_CANFD_CFDC_CTR_CTMS_Msk (0x6000000UL) /*!< CTMS (Bitfield-Mask: 0x03) */ + #define R_CANFD_CFDC_CTR_CRCT_Pos (30UL) /*!< CRCT (Bit 30) */ + #define R_CANFD_CFDC_CTR_CRCT_Msk (0x40000000UL) /*!< CRCT (Bitfield-Mask: 0x01) */ + #define R_CANFD_CFDC_CTR_ROM_Pos (31UL) /*!< ROM (Bit 31) */ + #define R_CANFD_CFDC_CTR_ROM_Msk (0x80000000UL) /*!< ROM (Bitfield-Mask: 0x01) */ +/* ========================================================== STS ========================================================== */ + #define R_CANFD_CFDC_STS_CRSTSTS_Pos (0UL) /*!< CRSTSTS (Bit 0) */ + #define R_CANFD_CFDC_STS_CRSTSTS_Msk (0x1UL) /*!< CRSTSTS (Bitfield-Mask: 0x01) */ + #define R_CANFD_CFDC_STS_CHLTSTS_Pos (1UL) /*!< CHLTSTS (Bit 1) */ + #define R_CANFD_CFDC_STS_CHLTSTS_Msk (0x2UL) /*!< CHLTSTS (Bitfield-Mask: 0x01) */ + #define R_CANFD_CFDC_STS_CSLPSTS_Pos (2UL) /*!< CSLPSTS (Bit 2) */ + #define R_CANFD_CFDC_STS_CSLPSTS_Msk (0x4UL) /*!< CSLPSTS (Bitfield-Mask: 0x01) */ + #define R_CANFD_CFDC_STS_EPSTS_Pos (3UL) /*!< EPSTS (Bit 3) */ + #define R_CANFD_CFDC_STS_EPSTS_Msk (0x8UL) /*!< EPSTS (Bitfield-Mask: 0x01) */ + #define R_CANFD_CFDC_STS_BOSTS_Pos (4UL) /*!< BOSTS (Bit 4) */ + #define R_CANFD_CFDC_STS_BOSTS_Msk (0x10UL) /*!< BOSTS (Bitfield-Mask: 0x01) */ + #define R_CANFD_CFDC_STS_TRMSTS_Pos (5UL) /*!< TRMSTS (Bit 5) */ + #define R_CANFD_CFDC_STS_TRMSTS_Msk (0x20UL) /*!< TRMSTS (Bitfield-Mask: 0x01) */ + #define R_CANFD_CFDC_STS_RECSTS_Pos (6UL) /*!< RECSTS (Bit 6) */ + #define R_CANFD_CFDC_STS_RECSTS_Msk (0x40UL) /*!< RECSTS (Bitfield-Mask: 0x01) */ + #define R_CANFD_CFDC_STS_COMSTS_Pos (7UL) /*!< COMSTS (Bit 7) */ + #define R_CANFD_CFDC_STS_COMSTS_Msk (0x80UL) /*!< COMSTS (Bitfield-Mask: 0x01) */ + #define R_CANFD_CFDC_STS_ESIF_Pos (8UL) /*!< ESIF (Bit 8) */ + #define R_CANFD_CFDC_STS_ESIF_Msk (0x100UL) /*!< ESIF (Bitfield-Mask: 0x01) */ + #define R_CANFD_CFDC_STS_REC_Pos (16UL) /*!< REC (Bit 16) */ + #define R_CANFD_CFDC_STS_REC_Msk (0xff0000UL) /*!< REC (Bitfield-Mask: 0xff) */ + #define R_CANFD_CFDC_STS_TEC_Pos (24UL) /*!< TEC (Bit 24) */ + #define R_CANFD_CFDC_STS_TEC_Msk (0xff000000UL) /*!< TEC (Bitfield-Mask: 0xff) */ +/* ========================================================= ERFL ========================================================== */ + #define R_CANFD_CFDC_ERFL_BEF_Pos (0UL) /*!< BEF (Bit 0) */ + #define R_CANFD_CFDC_ERFL_BEF_Msk (0x1UL) /*!< BEF (Bitfield-Mask: 0x01) */ + #define R_CANFD_CFDC_ERFL_EWF_Pos (1UL) /*!< EWF (Bit 1) */ + #define R_CANFD_CFDC_ERFL_EWF_Msk (0x2UL) /*!< EWF (Bitfield-Mask: 0x01) */ + #define R_CANFD_CFDC_ERFL_EPF_Pos (2UL) /*!< EPF (Bit 2) */ + #define R_CANFD_CFDC_ERFL_EPF_Msk (0x4UL) /*!< EPF (Bitfield-Mask: 0x01) */ + #define R_CANFD_CFDC_ERFL_BOEF_Pos (3UL) /*!< BOEF (Bit 3) */ + #define R_CANFD_CFDC_ERFL_BOEF_Msk (0x8UL) /*!< BOEF (Bitfield-Mask: 0x01) */ + #define R_CANFD_CFDC_ERFL_BORF_Pos (4UL) /*!< BORF (Bit 4) */ + #define R_CANFD_CFDC_ERFL_BORF_Msk (0x10UL) /*!< BORF (Bitfield-Mask: 0x01) */ + #define R_CANFD_CFDC_ERFL_OVLF_Pos (5UL) /*!< OVLF (Bit 5) */ + #define R_CANFD_CFDC_ERFL_OVLF_Msk (0x20UL) /*!< OVLF (Bitfield-Mask: 0x01) */ + #define R_CANFD_CFDC_ERFL_BLF_Pos (6UL) /*!< BLF (Bit 6) */ + #define R_CANFD_CFDC_ERFL_BLF_Msk (0x40UL) /*!< BLF (Bitfield-Mask: 0x01) */ + #define R_CANFD_CFDC_ERFL_ALF_Pos (7UL) /*!< ALF (Bit 7) */ + #define R_CANFD_CFDC_ERFL_ALF_Msk (0x80UL) /*!< ALF (Bitfield-Mask: 0x01) */ + #define R_CANFD_CFDC_ERFL_SERR_Pos (8UL) /*!< SERR (Bit 8) */ + #define R_CANFD_CFDC_ERFL_SERR_Msk (0x100UL) /*!< SERR (Bitfield-Mask: 0x01) */ + #define R_CANFD_CFDC_ERFL_FERR_Pos (9UL) /*!< FERR (Bit 9) */ + #define R_CANFD_CFDC_ERFL_FERR_Msk (0x200UL) /*!< FERR (Bitfield-Mask: 0x01) */ + #define R_CANFD_CFDC_ERFL_AERR_Pos (10UL) /*!< AERR (Bit 10) */ + #define R_CANFD_CFDC_ERFL_AERR_Msk (0x400UL) /*!< AERR (Bitfield-Mask: 0x01) */ + #define R_CANFD_CFDC_ERFL_CERR_Pos (11UL) /*!< CERR (Bit 11) */ + #define R_CANFD_CFDC_ERFL_CERR_Msk (0x800UL) /*!< CERR (Bitfield-Mask: 0x01) */ + #define R_CANFD_CFDC_ERFL_B1ERR_Pos (12UL) /*!< B1ERR (Bit 12) */ + #define R_CANFD_CFDC_ERFL_B1ERR_Msk (0x1000UL) /*!< B1ERR (Bitfield-Mask: 0x01) */ + #define R_CANFD_CFDC_ERFL_B0ERR_Pos (13UL) /*!< B0ERR (Bit 13) */ + #define R_CANFD_CFDC_ERFL_B0ERR_Msk (0x2000UL) /*!< B0ERR (Bitfield-Mask: 0x01) */ + #define R_CANFD_CFDC_ERFL_ADERR_Pos (14UL) /*!< ADERR (Bit 14) */ + #define R_CANFD_CFDC_ERFL_ADERR_Msk (0x4000UL) /*!< ADERR (Bitfield-Mask: 0x01) */ + #define R_CANFD_CFDC_ERFL_CRCREG_Pos (16UL) /*!< CRCREG (Bit 16) */ + #define R_CANFD_CFDC_ERFL_CRCREG_Msk (0x7fff0000UL) /*!< CRCREG (Bitfield-Mask: 0x7fff) */ + +/* =========================================================================================================================== */ +/* ================ CFDC2 ================ */ +/* =========================================================================================================================== */ + +/* ========================================================= DCFG ========================================================== */ + #define R_CANFD_CFDC2_DCFG_DBRP_Pos (0UL) /*!< DBRP (Bit 0) */ + #define R_CANFD_CFDC2_DCFG_DBRP_Msk (0xffUL) /*!< DBRP (Bitfield-Mask: 0xff) */ + #define R_CANFD_CFDC2_DCFG_DTSEG1_Pos (8UL) /*!< DTSEG1 (Bit 8) */ + #define R_CANFD_CFDC2_DCFG_DTSEG1_Msk (0x1f00UL) /*!< DTSEG1 (Bitfield-Mask: 0x1f) */ + #define R_CANFD_CFDC2_DCFG_DTSEG2_Pos (16UL) /*!< DTSEG2 (Bit 16) */ + #define R_CANFD_CFDC2_DCFG_DTSEG2_Msk (0xf0000UL) /*!< DTSEG2 (Bitfield-Mask: 0x0f) */ + #define R_CANFD_CFDC2_DCFG_DSJW_Pos (24UL) /*!< DSJW (Bit 24) */ + #define R_CANFD_CFDC2_DCFG_DSJW_Msk (0xf000000UL) /*!< DSJW (Bitfield-Mask: 0x0f) */ +/* ========================================================= FDCFG ========================================================= */ + #define R_CANFD_CFDC2_FDCFG_EOCCFG_Pos (0UL) /*!< EOCCFG (Bit 0) */ + #define R_CANFD_CFDC2_FDCFG_EOCCFG_Msk (0x7UL) /*!< EOCCFG (Bitfield-Mask: 0x07) */ + #define R_CANFD_CFDC2_FDCFG_TDCOC_Pos (8UL) /*!< TDCOC (Bit 8) */ + #define R_CANFD_CFDC2_FDCFG_TDCOC_Msk (0x100UL) /*!< TDCOC (Bitfield-Mask: 0x01) */ + #define R_CANFD_CFDC2_FDCFG_TDCE_Pos (9UL) /*!< TDCE (Bit 9) */ + #define R_CANFD_CFDC2_FDCFG_TDCE_Msk (0x200UL) /*!< TDCE (Bitfield-Mask: 0x01) */ + #define R_CANFD_CFDC2_FDCFG_ESIC_Pos (10UL) /*!< ESIC (Bit 10) */ + #define R_CANFD_CFDC2_FDCFG_ESIC_Msk (0x400UL) /*!< ESIC (Bitfield-Mask: 0x01) */ + #define R_CANFD_CFDC2_FDCFG_TDCO_Pos (16UL) /*!< TDCO (Bit 16) */ + #define R_CANFD_CFDC2_FDCFG_TDCO_Msk (0xff0000UL) /*!< TDCO (Bitfield-Mask: 0xff) */ + #define R_CANFD_CFDC2_FDCFG_GWEN_Pos (24UL) /*!< GWEN (Bit 24) */ + #define R_CANFD_CFDC2_FDCFG_GWEN_Msk (0x1000000UL) /*!< GWEN (Bitfield-Mask: 0x01) */ + #define R_CANFD_CFDC2_FDCFG_GWFDF_Pos (25UL) /*!< GWFDF (Bit 25) */ + #define R_CANFD_CFDC2_FDCFG_GWFDF_Msk (0x2000000UL) /*!< GWFDF (Bitfield-Mask: 0x01) */ + #define R_CANFD_CFDC2_FDCFG_GWBRS_Pos (26UL) /*!< GWBRS (Bit 26) */ + #define R_CANFD_CFDC2_FDCFG_GWBRS_Msk (0x4000000UL) /*!< GWBRS (Bitfield-Mask: 0x01) */ + #define R_CANFD_CFDC2_FDCFG_FDOE_Pos (28UL) /*!< FDOE (Bit 28) */ + #define R_CANFD_CFDC2_FDCFG_FDOE_Msk (0x10000000UL) /*!< FDOE (Bitfield-Mask: 0x01) */ + #define R_CANFD_CFDC2_FDCFG_REFE_Pos (29UL) /*!< REFE (Bit 29) */ + #define R_CANFD_CFDC2_FDCFG_REFE_Msk (0x20000000UL) /*!< REFE (Bitfield-Mask: 0x01) */ + #define R_CANFD_CFDC2_FDCFG_CLOE_Pos (30UL) /*!< CLOE (Bit 30) */ + #define R_CANFD_CFDC2_FDCFG_CLOE_Msk (0x40000000UL) /*!< CLOE (Bitfield-Mask: 0x01) */ + #define R_CANFD_CFDC2_FDCFG_CFDTE_Pos (31UL) /*!< CFDTE (Bit 31) */ + #define R_CANFD_CFDC2_FDCFG_CFDTE_Msk (0x80000000UL) /*!< CFDTE (Bitfield-Mask: 0x01) */ +/* ========================================================= FDCTR ========================================================= */ + #define R_CANFD_CFDC2_FDCTR_EOCCLR_Pos (0UL) /*!< EOCCLR (Bit 0) */ + #define R_CANFD_CFDC2_FDCTR_EOCCLR_Msk (0x1UL) /*!< EOCCLR (Bitfield-Mask: 0x01) */ + #define R_CANFD_CFDC2_FDCTR_SOCCLR_Pos (1UL) /*!< SOCCLR (Bit 1) */ + #define R_CANFD_CFDC2_FDCTR_SOCCLR_Msk (0x2UL) /*!< SOCCLR (Bitfield-Mask: 0x01) */ +/* ========================================================= FDSTS ========================================================= */ + #define R_CANFD_CFDC2_FDSTS_TDCR_Pos (0UL) /*!< TDCR (Bit 0) */ + #define R_CANFD_CFDC2_FDSTS_TDCR_Msk (0xffUL) /*!< TDCR (Bitfield-Mask: 0xff) */ + #define R_CANFD_CFDC2_FDSTS_EOCO_Pos (8UL) /*!< EOCO (Bit 8) */ + #define R_CANFD_CFDC2_FDSTS_EOCO_Msk (0x100UL) /*!< EOCO (Bitfield-Mask: 0x01) */ + #define R_CANFD_CFDC2_FDSTS_SOCO_Pos (9UL) /*!< SOCO (Bit 9) */ + #define R_CANFD_CFDC2_FDSTS_SOCO_Msk (0x200UL) /*!< SOCO (Bitfield-Mask: 0x01) */ + #define R_CANFD_CFDC2_FDSTS_TDCVF_Pos (15UL) /*!< TDCVF (Bit 15) */ + #define R_CANFD_CFDC2_FDSTS_TDCVF_Msk (0x8000UL) /*!< TDCVF (Bitfield-Mask: 0x01) */ + #define R_CANFD_CFDC2_FDSTS_EOC_Pos (16UL) /*!< EOC (Bit 16) */ + #define R_CANFD_CFDC2_FDSTS_EOC_Msk (0xff0000UL) /*!< EOC (Bitfield-Mask: 0xff) */ + #define R_CANFD_CFDC2_FDSTS_SOC_Pos (24UL) /*!< SOC (Bit 24) */ + #define R_CANFD_CFDC2_FDSTS_SOC_Msk (0xff000000UL) /*!< SOC (Bitfield-Mask: 0xff) */ +/* ========================================================= FDCRC ========================================================= */ + #define R_CANFD_CFDC2_FDCRC_CRCREG_Pos (0UL) /*!< CRCREG (Bit 0) */ + #define R_CANFD_CFDC2_FDCRC_CRCREG_Msk (0x1fffffUL) /*!< CRCREG (Bitfield-Mask: 0x1fffff) */ + #define R_CANFD_CFDC2_FDCRC_SCNT_Pos (25UL) /*!< SCNT (Bit 25) */ + #define R_CANFD_CFDC2_FDCRC_SCNT_Msk (0x1e000000UL) /*!< SCNT (Bitfield-Mask: 0x0f) */ +/* ========================================================= BLCT ========================================================== */ + #define R_CANFD_CFDC2_BLCT_BLCE_Pos (0UL) /*!< BLCE (Bit 0) */ + #define R_CANFD_CFDC2_BLCT_BLCE_Msk (0x1UL) /*!< BLCE (Bitfield-Mask: 0x01) */ + #define R_CANFD_CFDC2_BLCT_BLCLD_Pos (8UL) /*!< BLCLD (Bit 8) */ + #define R_CANFD_CFDC2_BLCT_BLCLD_Msk (0x100UL) /*!< BLCLD (Bitfield-Mask: 0x01) */ +/* ========================================================= BLSTS ========================================================= */ + #define R_CANFD_CFDC2_BLSTS_BLC_Pos (3UL) /*!< BLC (Bit 3) */ + #define R_CANFD_CFDC2_BLSTS_BLC_Msk (0xfffffff8UL) /*!< BLC (Bitfield-Mask: 0x1fffffff) */ + +/* =========================================================================================================================== */ +/* ================ CFDGAFL ================ */ +/* =========================================================================================================================== */ + +/* ========================================================== ID =========================================================== */ + #define R_CANFD_CFDGAFL_ID_GAFLID_Pos (0UL) /*!< GAFLID (Bit 0) */ + #define R_CANFD_CFDGAFL_ID_GAFLID_Msk (0x1fffffffUL) /*!< GAFLID (Bitfield-Mask: 0x1fffffff) */ + #define R_CANFD_CFDGAFL_ID_GAFLLB_Pos (29UL) /*!< GAFLLB (Bit 29) */ + #define R_CANFD_CFDGAFL_ID_GAFLLB_Msk (0x20000000UL) /*!< GAFLLB (Bitfield-Mask: 0x01) */ + #define R_CANFD_CFDGAFL_ID_GAFLRTR_Pos (30UL) /*!< GAFLRTR (Bit 30) */ + #define R_CANFD_CFDGAFL_ID_GAFLRTR_Msk (0x40000000UL) /*!< GAFLRTR (Bitfield-Mask: 0x01) */ + #define R_CANFD_CFDGAFL_ID_GAFLIDE_Pos (31UL) /*!< GAFLIDE (Bit 31) */ + #define R_CANFD_CFDGAFL_ID_GAFLIDE_Msk (0x80000000UL) /*!< GAFLIDE (Bitfield-Mask: 0x01) */ +/* =========================================================== M =========================================================== */ + #define R_CANFD_CFDGAFL_M_GAFLIDM_Pos (0UL) /*!< GAFLIDM (Bit 0) */ + #define R_CANFD_CFDGAFL_M_GAFLIDM_Msk (0x1fffffffUL) /*!< GAFLIDM (Bitfield-Mask: 0x1fffffff) */ + #define R_CANFD_CFDGAFL_M_GAFLIFL1_Pos (29UL) /*!< GAFLIFL1 (Bit 29) */ + #define R_CANFD_CFDGAFL_M_GAFLIFL1_Msk (0x20000000UL) /*!< GAFLIFL1 (Bitfield-Mask: 0x01) */ + #define R_CANFD_CFDGAFL_M_GAFLRTRM_Pos (30UL) /*!< GAFLRTRM (Bit 30) */ + #define R_CANFD_CFDGAFL_M_GAFLRTRM_Msk (0x40000000UL) /*!< GAFLRTRM (Bitfield-Mask: 0x01) */ + #define R_CANFD_CFDGAFL_M_GAFLIDEM_Pos (31UL) /*!< GAFLIDEM (Bit 31) */ + #define R_CANFD_CFDGAFL_M_GAFLIDEM_Msk (0x80000000UL) /*!< GAFLIDEM (Bitfield-Mask: 0x01) */ +/* ========================================================== P0 =========================================================== */ + #define R_CANFD_CFDGAFL_P0_GAFLDLC_Pos (0UL) /*!< GAFLDLC (Bit 0) */ + #define R_CANFD_CFDGAFL_P0_GAFLDLC_Msk (0xfUL) /*!< GAFLDLC (Bitfield-Mask: 0x0f) */ + #define R_CANFD_CFDGAFL_P0_GAFLSRD0_Pos (4UL) /*!< GAFLSRD0 (Bit 4) */ + #define R_CANFD_CFDGAFL_P0_GAFLSRD0_Msk (0x10UL) /*!< GAFLSRD0 (Bitfield-Mask: 0x01) */ + #define R_CANFD_CFDGAFL_P0_GAFLSRD1_Pos (5UL) /*!< GAFLSRD1 (Bit 5) */ + #define R_CANFD_CFDGAFL_P0_GAFLSRD1_Msk (0x20UL) /*!< GAFLSRD1 (Bitfield-Mask: 0x01) */ + #define R_CANFD_CFDGAFL_P0_GAFLSRD2_Pos (6UL) /*!< GAFLSRD2 (Bit 6) */ + #define R_CANFD_CFDGAFL_P0_GAFLSRD2_Msk (0x40UL) /*!< GAFLSRD2 (Bitfield-Mask: 0x01) */ + #define R_CANFD_CFDGAFL_P0_GAFLIFL0_Pos (7UL) /*!< GAFLIFL0 (Bit 7) */ + #define R_CANFD_CFDGAFL_P0_GAFLIFL0_Msk (0x80UL) /*!< GAFLIFL0 (Bitfield-Mask: 0x01) */ + #define R_CANFD_CFDGAFL_P0_GAFLRMDP_Pos (8UL) /*!< GAFLRMDP (Bit 8) */ + #define R_CANFD_CFDGAFL_P0_GAFLRMDP_Msk (0x1f00UL) /*!< GAFLRMDP (Bitfield-Mask: 0x1f) */ + #define R_CANFD_CFDGAFL_P0_GAFLRMV_Pos (15UL) /*!< GAFLRMV (Bit 15) */ + #define R_CANFD_CFDGAFL_P0_GAFLRMV_Msk (0x8000UL) /*!< GAFLRMV (Bitfield-Mask: 0x01) */ + #define R_CANFD_CFDGAFL_P0_GAFLPTR_Pos (16UL) /*!< GAFLPTR (Bit 16) */ + #define R_CANFD_CFDGAFL_P0_GAFLPTR_Msk (0xffff0000UL) /*!< GAFLPTR (Bitfield-Mask: 0xffff) */ +/* ========================================================== P1 =========================================================== */ + #define R_CANFD_CFDGAFL_P1_GAFLFDP_Pos (0UL) /*!< GAFLFDP (Bit 0) */ + #define R_CANFD_CFDGAFL_P1_GAFLFDP_Msk (0x3fffUL) /*!< GAFLFDP (Bitfield-Mask: 0x3fff) */ + +/* =========================================================================================================================== */ +/* ================ CFDRM ================ */ +/* =========================================================================================================================== */ + +/* ========================================================== ID =========================================================== */ + #define R_CANFD_CFDRM_ID_RMID_Pos (0UL) /*!< RMID (Bit 0) */ + #define R_CANFD_CFDRM_ID_RMID_Msk (0x1fffffffUL) /*!< RMID (Bitfield-Mask: 0x1fffffff) */ + #define R_CANFD_CFDRM_ID_RMRTR_Pos (30UL) /*!< RMRTR (Bit 30) */ + #define R_CANFD_CFDRM_ID_RMRTR_Msk (0x40000000UL) /*!< RMRTR (Bitfield-Mask: 0x01) */ + #define R_CANFD_CFDRM_ID_RMIDE_Pos (31UL) /*!< RMIDE (Bit 31) */ + #define R_CANFD_CFDRM_ID_RMIDE_Msk (0x80000000UL) /*!< RMIDE (Bitfield-Mask: 0x01) */ +/* ========================================================== PTR ========================================================== */ + #define R_CANFD_CFDRM_PTR_RMTS_Pos (0UL) /*!< RMTS (Bit 0) */ + #define R_CANFD_CFDRM_PTR_RMTS_Msk (0xffffUL) /*!< RMTS (Bitfield-Mask: 0xffff) */ + #define R_CANFD_CFDRM_PTR_RMDLC_Pos (28UL) /*!< RMDLC (Bit 28) */ + #define R_CANFD_CFDRM_PTR_RMDLC_Msk (0xf0000000UL) /*!< RMDLC (Bitfield-Mask: 0x0f) */ +/* ========================================================= FDSTS ========================================================= */ + #define R_CANFD_CFDRM_FDSTS_RMESI_Pos (0UL) /*!< RMESI (Bit 0) */ + #define R_CANFD_CFDRM_FDSTS_RMESI_Msk (0x1UL) /*!< RMESI (Bitfield-Mask: 0x01) */ + #define R_CANFD_CFDRM_FDSTS_RMBRS_Pos (1UL) /*!< RMBRS (Bit 1) */ + #define R_CANFD_CFDRM_FDSTS_RMBRS_Msk (0x2UL) /*!< RMBRS (Bitfield-Mask: 0x01) */ + #define R_CANFD_CFDRM_FDSTS_RMFDF_Pos (2UL) /*!< RMFDF (Bit 2) */ + #define R_CANFD_CFDRM_FDSTS_RMFDF_Msk (0x4UL) /*!< RMFDF (Bitfield-Mask: 0x01) */ + #define R_CANFD_CFDRM_FDSTS_RMIFL_Pos (8UL) /*!< RMIFL (Bit 8) */ + #define R_CANFD_CFDRM_FDSTS_RMIFL_Msk (0x300UL) /*!< RMIFL (Bitfield-Mask: 0x03) */ + #define R_CANFD_CFDRM_FDSTS_RMPTR_Pos (16UL) /*!< RMPTR (Bit 16) */ + #define R_CANFD_CFDRM_FDSTS_RMPTR_Msk (0xffff0000UL) /*!< RMPTR (Bitfield-Mask: 0xffff) */ +/* ========================================================= DF_WD ========================================================= */ + #define R_CANFD_CFDRM_DF_WD_RMDB_LL_Pos (0UL) /*!< RMDB_LL (Bit 0) */ + #define R_CANFD_CFDRM_DF_WD_RMDB_LL_Msk (0xffUL) /*!< RMDB_LL (Bitfield-Mask: 0xff) */ + #define R_CANFD_CFDRM_DF_WD_RMDB_LH_Pos (8UL) /*!< RMDB_LH (Bit 8) */ + #define R_CANFD_CFDRM_DF_WD_RMDB_LH_Msk (0xff00UL) /*!< RMDB_LH (Bitfield-Mask: 0xff) */ + #define R_CANFD_CFDRM_DF_WD_RMDB_HL_Pos (16UL) /*!< RMDB_HL (Bit 16) */ + #define R_CANFD_CFDRM_DF_WD_RMDB_HL_Msk (0xff0000UL) /*!< RMDB_HL (Bitfield-Mask: 0xff) */ + #define R_CANFD_CFDRM_DF_WD_RMDB_HH_Pos (24UL) /*!< RMDB_HH (Bit 24) */ + #define R_CANFD_CFDRM_DF_WD_RMDB_HH_Msk (0xff000000UL) /*!< RMDB_HH (Bitfield-Mask: 0xff) */ +/* ========================================================== DF =========================================================== */ + #define R_CANFD_CFDRM_DF_RMDB_Pos (0UL) /*!< RMDB (Bit 0) */ + #define R_CANFD_CFDRM_DF_RMDB_Msk (0xffUL) /*!< RMDB (Bitfield-Mask: 0xff) */ + +/* =========================================================================================================================== */ +/* ================ CFDRF ================ */ +/* =========================================================================================================================== */ + +/* ========================================================== ID =========================================================== */ + #define R_CANFD_CFDRF_ID_RFID_Pos (0UL) /*!< RFID (Bit 0) */ + #define R_CANFD_CFDRF_ID_RFID_Msk (0x1fffffffUL) /*!< RFID (Bitfield-Mask: 0x1fffffff) */ + #define R_CANFD_CFDRF_ID_RFRTR_Pos (30UL) /*!< RFRTR (Bit 30) */ + #define R_CANFD_CFDRF_ID_RFRTR_Msk (0x40000000UL) /*!< RFRTR (Bitfield-Mask: 0x01) */ + #define R_CANFD_CFDRF_ID_RFIDE_Pos (31UL) /*!< RFIDE (Bit 31) */ + #define R_CANFD_CFDRF_ID_RFIDE_Msk (0x80000000UL) /*!< RFIDE (Bitfield-Mask: 0x01) */ +/* ========================================================== PTR ========================================================== */ + #define R_CANFD_CFDRF_PTR_RFTS_Pos (0UL) /*!< RFTS (Bit 0) */ + #define R_CANFD_CFDRF_PTR_RFTS_Msk (0xffffUL) /*!< RFTS (Bitfield-Mask: 0xffff) */ + #define R_CANFD_CFDRF_PTR_RFDLC_Pos (28UL) /*!< RFDLC (Bit 28) */ + #define R_CANFD_CFDRF_PTR_RFDLC_Msk (0xf0000000UL) /*!< RFDLC (Bitfield-Mask: 0x0f) */ +/* ========================================================= FDSTS ========================================================= */ + #define R_CANFD_CFDRF_FDSTS_RFESI_Pos (0UL) /*!< RFESI (Bit 0) */ + #define R_CANFD_CFDRF_FDSTS_RFESI_Msk (0x1UL) /*!< RFESI (Bitfield-Mask: 0x01) */ + #define R_CANFD_CFDRF_FDSTS_RFBRS_Pos (1UL) /*!< RFBRS (Bit 1) */ + #define R_CANFD_CFDRF_FDSTS_RFBRS_Msk (0x2UL) /*!< RFBRS (Bitfield-Mask: 0x01) */ + #define R_CANFD_CFDRF_FDSTS_RFFDF_Pos (2UL) /*!< RFFDF (Bit 2) */ + #define R_CANFD_CFDRF_FDSTS_RFFDF_Msk (0x4UL) /*!< RFFDF (Bitfield-Mask: 0x01) */ + #define R_CANFD_CFDRF_FDSTS_RFIFL_Pos (8UL) /*!< RFIFL (Bit 8) */ + #define R_CANFD_CFDRF_FDSTS_RFIFL_Msk (0x300UL) /*!< RFIFL (Bitfield-Mask: 0x03) */ + #define R_CANFD_CFDRF_FDSTS_CFDRFPTR_Pos (16UL) /*!< CFDRFPTR (Bit 16) */ + #define R_CANFD_CFDRF_FDSTS_CFDRFPTR_Msk (0xffff0000UL) /*!< CFDRFPTR (Bitfield-Mask: 0xffff) */ +/* ========================================================= DF_WD ========================================================= */ + #define R_CANFD_CFDRF_DF_WD_RFDB_LL_Pos (0UL) /*!< RFDB_LL (Bit 0) */ + #define R_CANFD_CFDRF_DF_WD_RFDB_LL_Msk (0xffUL) /*!< RFDB_LL (Bitfield-Mask: 0xff) */ + #define R_CANFD_CFDRF_DF_WD_RFDB_LH_Pos (8UL) /*!< RFDB_LH (Bit 8) */ + #define R_CANFD_CFDRF_DF_WD_RFDB_LH_Msk (0xff00UL) /*!< RFDB_LH (Bitfield-Mask: 0xff) */ + #define R_CANFD_CFDRF_DF_WD_RFDB_HL_Pos (16UL) /*!< RFDB_HL (Bit 16) */ + #define R_CANFD_CFDRF_DF_WD_RFDB_HL_Msk (0xff0000UL) /*!< RFDB_HL (Bitfield-Mask: 0xff) */ + #define R_CANFD_CFDRF_DF_WD_RFDB_HH_Pos (24UL) /*!< RFDB_HH (Bit 24) */ + #define R_CANFD_CFDRF_DF_WD_RFDB_HH_Msk (0xff000000UL) /*!< RFDB_HH (Bitfield-Mask: 0xff) */ +/* ========================================================== DF =========================================================== */ + #define R_CANFD_CFDRF_DF_RFDB_Pos (0UL) /*!< RFDB (Bit 0) */ + #define R_CANFD_CFDRF_DF_RFDB_Msk (0xffUL) /*!< RFDB (Bitfield-Mask: 0xff) */ + +/* =========================================================================================================================== */ +/* ================ CFDCF ================ */ +/* =========================================================================================================================== */ + +/* ========================================================== ID =========================================================== */ + #define R_CANFD_CFDCF_ID_CFID_Pos (0UL) /*!< CFID (Bit 0) */ + #define R_CANFD_CFDCF_ID_CFID_Msk (0x1fffffffUL) /*!< CFID (Bitfield-Mask: 0x1fffffff) */ + #define R_CANFD_CFDCF_ID_THLEN_Pos (29UL) /*!< THLEN (Bit 29) */ + #define R_CANFD_CFDCF_ID_THLEN_Msk (0x20000000UL) /*!< THLEN (Bitfield-Mask: 0x01) */ + #define R_CANFD_CFDCF_ID_CFRTR_Pos (30UL) /*!< CFRTR (Bit 30) */ + #define R_CANFD_CFDCF_ID_CFRTR_Msk (0x40000000UL) /*!< CFRTR (Bitfield-Mask: 0x01) */ + #define R_CANFD_CFDCF_ID_CFIDE_Pos (31UL) /*!< CFIDE (Bit 31) */ + #define R_CANFD_CFDCF_ID_CFIDE_Msk (0x80000000UL) /*!< CFIDE (Bitfield-Mask: 0x01) */ +/* ========================================================== PTR ========================================================== */ + #define R_CANFD_CFDCF_PTR_CFTS_Pos (0UL) /*!< CFTS (Bit 0) */ + #define R_CANFD_CFDCF_PTR_CFTS_Msk (0xffffUL) /*!< CFTS (Bitfield-Mask: 0xffff) */ + #define R_CANFD_CFDCF_PTR_CFDLC_Pos (28UL) /*!< CFDLC (Bit 28) */ + #define R_CANFD_CFDCF_PTR_CFDLC_Msk (0xf0000000UL) /*!< CFDLC (Bitfield-Mask: 0x0f) */ +/* ======================================================== FDCSTS ========================================================= */ + #define R_CANFD_CFDCF_FDCSTS_CFESI_Pos (0UL) /*!< CFESI (Bit 0) */ + #define R_CANFD_CFDCF_FDCSTS_CFESI_Msk (0x1UL) /*!< CFESI (Bitfield-Mask: 0x01) */ + #define R_CANFD_CFDCF_FDCSTS_CFBRS_Pos (1UL) /*!< CFBRS (Bit 1) */ + #define R_CANFD_CFDCF_FDCSTS_CFBRS_Msk (0x2UL) /*!< CFBRS (Bitfield-Mask: 0x01) */ + #define R_CANFD_CFDCF_FDCSTS_CFFDF_Pos (2UL) /*!< CFFDF (Bit 2) */ + #define R_CANFD_CFDCF_FDCSTS_CFFDF_Msk (0x4UL) /*!< CFFDF (Bitfield-Mask: 0x01) */ + #define R_CANFD_CFDCF_FDCSTS_CFIFL_Pos (8UL) /*!< CFIFL (Bit 8) */ + #define R_CANFD_CFDCF_FDCSTS_CFIFL_Msk (0x300UL) /*!< CFIFL (Bitfield-Mask: 0x03) */ + #define R_CANFD_CFDCF_FDCSTS_CFPTR_Pos (16UL) /*!< CFPTR (Bit 16) */ + #define R_CANFD_CFDCF_FDCSTS_CFPTR_Msk (0xffff0000UL) /*!< CFPTR (Bitfield-Mask: 0xffff) */ +/* ========================================================= DF_WD ========================================================= */ + #define R_CANFD_CFDCF_DF_WD_CFDB_LL_Pos (0UL) /*!< CFDB_LL (Bit 0) */ + #define R_CANFD_CFDCF_DF_WD_CFDB_LL_Msk (0xffUL) /*!< CFDB_LL (Bitfield-Mask: 0xff) */ + #define R_CANFD_CFDCF_DF_WD_CFDB_LH_Pos (8UL) /*!< CFDB_LH (Bit 8) */ + #define R_CANFD_CFDCF_DF_WD_CFDB_LH_Msk (0xff00UL) /*!< CFDB_LH (Bitfield-Mask: 0xff) */ + #define R_CANFD_CFDCF_DF_WD_CFDB_HL_Pos (16UL) /*!< CFDB_HL (Bit 16) */ + #define R_CANFD_CFDCF_DF_WD_CFDB_HL_Msk (0xff0000UL) /*!< CFDB_HL (Bitfield-Mask: 0xff) */ + #define R_CANFD_CFDCF_DF_WD_CFDB_HH_Pos (24UL) /*!< CFDB_HH (Bit 24) */ + #define R_CANFD_CFDCF_DF_WD_CFDB_HH_Msk (0xff000000UL) /*!< CFDB_HH (Bitfield-Mask: 0xff) */ +/* ========================================================== DF =========================================================== */ + #define R_CANFD_CFDCF_DF_CFDB_Pos (0UL) /*!< CFDB (Bit 0) */ + #define R_CANFD_CFDCF_DF_CFDB_Msk (0xffUL) /*!< CFDB (Bitfield-Mask: 0xff) */ + +/* =========================================================================================================================== */ +/* ================ CFDTHL ================ */ +/* =========================================================================================================================== */ + +/* ========================================================= ACC0 ========================================================== */ + #define R_CANFD_CFDTHL_ACC0_BT_Pos (0UL) /*!< BT (Bit 0) */ + #define R_CANFD_CFDTHL_ACC0_BT_Msk (0x7UL) /*!< BT (Bitfield-Mask: 0x07) */ + #define R_CANFD_CFDTHL_ACC0_BN_Pos (3UL) /*!< BN (Bit 3) */ + #define R_CANFD_CFDTHL_ACC0_BN_Msk (0x3f8UL) /*!< BN (Bitfield-Mask: 0x7f) */ + #define R_CANFD_CFDTHL_ACC0_TGW_Pos (15UL) /*!< TGW (Bit 15) */ + #define R_CANFD_CFDTHL_ACC0_TGW_Msk (0x8000UL) /*!< TGW (Bitfield-Mask: 0x01) */ + #define R_CANFD_CFDTHL_ACC0_TMTS_Pos (16UL) /*!< TMTS (Bit 16) */ + #define R_CANFD_CFDTHL_ACC0_TMTS_Msk (0xffff0000UL) /*!< TMTS (Bitfield-Mask: 0xffff) */ +/* ========================================================= ACC1 ========================================================== */ + #define R_CANFD_CFDTHL_ACC1_TID_Pos (0UL) /*!< TID (Bit 0) */ + #define R_CANFD_CFDTHL_ACC1_TID_Msk (0xffffUL) /*!< TID (Bitfield-Mask: 0xffff) */ + #define R_CANFD_CFDTHL_ACC1_TIFL_Pos (16UL) /*!< TIFL (Bit 16) */ + #define R_CANFD_CFDTHL_ACC1_TIFL_Msk (0x30000UL) /*!< TIFL (Bitfield-Mask: 0x03) */ + +/* =========================================================================================================================== */ +/* ================ CFDTM ================ */ +/* =========================================================================================================================== */ + +/* ========================================================== ID =========================================================== */ + #define R_CANFD_CFDTM_ID_TMID_Pos (0UL) /*!< TMID (Bit 0) */ + #define R_CANFD_CFDTM_ID_TMID_Msk (0x1fffffffUL) /*!< TMID (Bitfield-Mask: 0x1fffffff) */ + #define R_CANFD_CFDTM_ID_THLEN_Pos (29UL) /*!< THLEN (Bit 29) */ + #define R_CANFD_CFDTM_ID_THLEN_Msk (0x20000000UL) /*!< THLEN (Bitfield-Mask: 0x01) */ + #define R_CANFD_CFDTM_ID_TMRTR_Pos (30UL) /*!< TMRTR (Bit 30) */ + #define R_CANFD_CFDTM_ID_TMRTR_Msk (0x40000000UL) /*!< TMRTR (Bitfield-Mask: 0x01) */ + #define R_CANFD_CFDTM_ID_TMIDE_Pos (31UL) /*!< TMIDE (Bit 31) */ + #define R_CANFD_CFDTM_ID_TMIDE_Msk (0x80000000UL) /*!< TMIDE (Bitfield-Mask: 0x01) */ +/* ========================================================== PTR ========================================================== */ + #define R_CANFD_CFDTM_PTR_TMDLC_Pos (28UL) /*!< TMDLC (Bit 28) */ + #define R_CANFD_CFDTM_PTR_TMDLC_Msk (0xf0000000UL) /*!< TMDLC (Bitfield-Mask: 0x0f) */ +/* ========================================================= FDCTR ========================================================= */ + #define R_CANFD_CFDTM_FDCTR_TMESI_Pos (0UL) /*!< TMESI (Bit 0) */ + #define R_CANFD_CFDTM_FDCTR_TMESI_Msk (0x1UL) /*!< TMESI (Bitfield-Mask: 0x01) */ + #define R_CANFD_CFDTM_FDCTR_TMBRS_Pos (1UL) /*!< TMBRS (Bit 1) */ + #define R_CANFD_CFDTM_FDCTR_TMBRS_Msk (0x2UL) /*!< TMBRS (Bitfield-Mask: 0x01) */ + #define R_CANFD_CFDTM_FDCTR_TMFDF_Pos (2UL) /*!< TMFDF (Bit 2) */ + #define R_CANFD_CFDTM_FDCTR_TMFDF_Msk (0x4UL) /*!< TMFDF (Bitfield-Mask: 0x01) */ + #define R_CANFD_CFDTM_FDCTR_TMIFL_Pos (8UL) /*!< TMIFL (Bit 8) */ + #define R_CANFD_CFDTM_FDCTR_TMIFL_Msk (0x300UL) /*!< TMIFL (Bitfield-Mask: 0x03) */ + #define R_CANFD_CFDTM_FDCTR_TMPTR_Pos (16UL) /*!< TMPTR (Bit 16) */ + #define R_CANFD_CFDTM_FDCTR_TMPTR_Msk (0xffff0000UL) /*!< TMPTR (Bitfield-Mask: 0xffff) */ +/* ========================================================= DF_WD ========================================================= */ + #define R_CANFD_CFDTM_DF_WD_TMDB_LL_Pos (0UL) /*!< TMDB_LL (Bit 0) */ + #define R_CANFD_CFDTM_DF_WD_TMDB_LL_Msk (0xffUL) /*!< TMDB_LL (Bitfield-Mask: 0xff) */ + #define R_CANFD_CFDTM_DF_WD_TMDB_LH_Pos (8UL) /*!< TMDB_LH (Bit 8) */ + #define R_CANFD_CFDTM_DF_WD_TMDB_LH_Msk (0xff00UL) /*!< TMDB_LH (Bitfield-Mask: 0xff) */ + #define R_CANFD_CFDTM_DF_WD_TMDB_HL_Pos (16UL) /*!< TMDB_HL (Bit 16) */ + #define R_CANFD_CFDTM_DF_WD_TMDB_HL_Msk (0xff0000UL) /*!< TMDB_HL (Bitfield-Mask: 0xff) */ + #define R_CANFD_CFDTM_DF_WD_TMDB_HH_Pos (24UL) /*!< TMDB_HH (Bit 24) */ + #define R_CANFD_CFDTM_DF_WD_TMDB_HH_Msk (0xff000000UL) /*!< TMDB_HH (Bitfield-Mask: 0xff) */ +/* ========================================================== DF =========================================================== */ + #define R_CANFD_CFDTM_DF_TMDB_Pos (0UL) /*!< TMDB (Bit 0) */ + #define R_CANFD_CFDTM_DF_TMDB_Msk (0xffUL) /*!< TMDB (Bitfield-Mask: 0xff) */ + +/* =========================================================================================================================== */ +/* ================ CM ================ */ +/* =========================================================================================================================== */ + +/* ========================================================== CR =========================================================== */ + #define R_CMT_UNT_CM_CR_CKS_Pos (0UL) /*!< CKS (Bit 0) */ + #define R_CMT_UNT_CM_CR_CKS_Msk (0x3UL) /*!< CKS (Bitfield-Mask: 0x03) */ + #define R_CMT_UNT_CM_CR_CMIE_Pos (6UL) /*!< CMIE (Bit 6) */ + #define R_CMT_UNT_CM_CR_CMIE_Msk (0x40UL) /*!< CMIE (Bitfield-Mask: 0x01) */ +/* ========================================================== CNT ========================================================== */ +/* ========================================================== COR ========================================================== */ + +/* =========================================================================================================================== */ +/* ================ UNT ================ */ +/* =========================================================================================================================== */ + +/* ======================================================== CMSTR0 ========================================================= */ + #define R_CMT_UNT_CMSTR0_STR0_Pos (0UL) /*!< STR0 (Bit 0) */ + #define R_CMT_UNT_CMSTR0_STR0_Msk (0x1UL) /*!< STR0 (Bitfield-Mask: 0x01) */ + #define R_CMT_UNT_CMSTR0_STR1_Pos (1UL) /*!< STR1 (Bit 1) */ + #define R_CMT_UNT_CMSTR0_STR1_Msk (0x2UL) /*!< STR1 (Bitfield-Mask: 0x01) */ + +/* =========================================================================================================================== */ +/* ================ SAR ================ */ +/* =========================================================================================================================== */ + +/* =========================================================== L =========================================================== */ + #define R_IIC0_SAR_L_SVA0_Pos (0UL) /*!< SVA0 (Bit 0) */ + #define R_IIC0_SAR_L_SVA0_Msk (0x1UL) /*!< SVA0 (Bitfield-Mask: 0x01) */ + #define R_IIC0_SAR_L_SVA_Pos (1UL) /*!< SVA (Bit 1) */ + #define R_IIC0_SAR_L_SVA_Msk (0xfeUL) /*!< SVA (Bitfield-Mask: 0x7f) */ +/* =========================================================== U =========================================================== */ + #define R_IIC0_SAR_U_FS_Pos (0UL) /*!< FS (Bit 0) */ + #define R_IIC0_SAR_U_FS_Msk (0x1UL) /*!< FS (Bitfield-Mask: 0x01) */ + #define R_IIC0_SAR_U_SVA_Pos (1UL) /*!< SVA (Bit 1) */ + #define R_IIC0_SAR_U_SVA_Msk (0x6UL) /*!< SVA (Bitfield-Mask: 0x03) */ + +/* =========================================================================================================================== */ +/* ================ N ================ */ +/* =========================================================================================================================== */ + +/* ========================================================== SA =========================================================== */ +/* ========================================================== DA =========================================================== */ +/* ========================================================== TB =========================================================== */ + +/* =========================================================================================================================== */ +/* ================ CH ================ */ +/* =========================================================================================================================== */ + +/* ========================================================= CRSA ========================================================== */ +/* ========================================================= CRDA ========================================================== */ +/* ========================================================= CRTB ========================================================== */ +/* ======================================================== CHSTAT ========================================================= */ + #define R_DMAC0_GRP_CH_CHSTAT_EN_Pos (0UL) /*!< EN (Bit 0) */ + #define R_DMAC0_GRP_CH_CHSTAT_EN_Msk (0x1UL) /*!< EN (Bitfield-Mask: 0x01) */ + #define R_DMAC0_GRP_CH_CHSTAT_RQST_Pos (1UL) /*!< RQST (Bit 1) */ + #define R_DMAC0_GRP_CH_CHSTAT_RQST_Msk (0x2UL) /*!< RQST (Bitfield-Mask: 0x01) */ + #define R_DMAC0_GRP_CH_CHSTAT_TACT_Pos (2UL) /*!< TACT (Bit 2) */ + #define R_DMAC0_GRP_CH_CHSTAT_TACT_Msk (0x4UL) /*!< TACT (Bitfield-Mask: 0x01) */ + #define R_DMAC0_GRP_CH_CHSTAT_SUS_Pos (3UL) /*!< SUS (Bit 3) */ + #define R_DMAC0_GRP_CH_CHSTAT_SUS_Msk (0x8UL) /*!< SUS (Bitfield-Mask: 0x01) */ + #define R_DMAC0_GRP_CH_CHSTAT_ER_Pos (4UL) /*!< ER (Bit 4) */ + #define R_DMAC0_GRP_CH_CHSTAT_ER_Msk (0x10UL) /*!< ER (Bitfield-Mask: 0x01) */ + #define R_DMAC0_GRP_CH_CHSTAT_END_Pos (5UL) /*!< END (Bit 5) */ + #define R_DMAC0_GRP_CH_CHSTAT_END_Msk (0x20UL) /*!< END (Bitfield-Mask: 0x01) */ + #define R_DMAC0_GRP_CH_CHSTAT_TC_Pos (6UL) /*!< TC (Bit 6) */ + #define R_DMAC0_GRP_CH_CHSTAT_TC_Msk (0x40UL) /*!< TC (Bitfield-Mask: 0x01) */ + #define R_DMAC0_GRP_CH_CHSTAT_SR_Pos (7UL) /*!< SR (Bit 7) */ + #define R_DMAC0_GRP_CH_CHSTAT_SR_Msk (0x80UL) /*!< SR (Bitfield-Mask: 0x01) */ + #define R_DMAC0_GRP_CH_CHSTAT_DL_Pos (8UL) /*!< DL (Bit 8) */ + #define R_DMAC0_GRP_CH_CHSTAT_DL_Msk (0x100UL) /*!< DL (Bitfield-Mask: 0x01) */ + #define R_DMAC0_GRP_CH_CHSTAT_DW_Pos (9UL) /*!< DW (Bit 9) */ + #define R_DMAC0_GRP_CH_CHSTAT_DW_Msk (0x200UL) /*!< DW (Bitfield-Mask: 0x01) */ + #define R_DMAC0_GRP_CH_CHSTAT_DER_Pos (10UL) /*!< DER (Bit 10) */ + #define R_DMAC0_GRP_CH_CHSTAT_DER_Msk (0x400UL) /*!< DER (Bitfield-Mask: 0x01) */ + #define R_DMAC0_GRP_CH_CHSTAT_MODE_Pos (11UL) /*!< MODE (Bit 11) */ + #define R_DMAC0_GRP_CH_CHSTAT_MODE_Msk (0x800UL) /*!< MODE (Bitfield-Mask: 0x01) */ + #define R_DMAC0_GRP_CH_CHSTAT_INTM_Pos (16UL) /*!< INTM (Bit 16) */ + #define R_DMAC0_GRP_CH_CHSTAT_INTM_Msk (0x10000UL) /*!< INTM (Bitfield-Mask: 0x01) */ +/* ======================================================== CHCTRL ========================================================= */ + #define R_DMAC0_GRP_CH_CHCTRL_SETEN_Pos (0UL) /*!< SETEN (Bit 0) */ + #define R_DMAC0_GRP_CH_CHCTRL_SETEN_Msk (0x1UL) /*!< SETEN (Bitfield-Mask: 0x01) */ + #define R_DMAC0_GRP_CH_CHCTRL_CLREN_Pos (1UL) /*!< CLREN (Bit 1) */ + #define R_DMAC0_GRP_CH_CHCTRL_CLREN_Msk (0x2UL) /*!< CLREN (Bitfield-Mask: 0x01) */ + #define R_DMAC0_GRP_CH_CHCTRL_STG_Pos (2UL) /*!< STG (Bit 2) */ + #define R_DMAC0_GRP_CH_CHCTRL_STG_Msk (0x4UL) /*!< STG (Bitfield-Mask: 0x01) */ + #define R_DMAC0_GRP_CH_CHCTRL_SWRST_Pos (3UL) /*!< SWRST (Bit 3) */ + #define R_DMAC0_GRP_CH_CHCTRL_SWRST_Msk (0x8UL) /*!< SWRST (Bitfield-Mask: 0x01) */ + #define R_DMAC0_GRP_CH_CHCTRL_CLRRQ_Pos (4UL) /*!< CLRRQ (Bit 4) */ + #define R_DMAC0_GRP_CH_CHCTRL_CLRRQ_Msk (0x10UL) /*!< CLRRQ (Bitfield-Mask: 0x01) */ + #define R_DMAC0_GRP_CH_CHCTRL_CLREND_Pos (5UL) /*!< CLREND (Bit 5) */ + #define R_DMAC0_GRP_CH_CHCTRL_CLREND_Msk (0x20UL) /*!< CLREND (Bitfield-Mask: 0x01) */ + #define R_DMAC0_GRP_CH_CHCTRL_CLRTC_Pos (6UL) /*!< CLRTC (Bit 6) */ + #define R_DMAC0_GRP_CH_CHCTRL_CLRTC_Msk (0x40UL) /*!< CLRTC (Bitfield-Mask: 0x01) */ + #define R_DMAC0_GRP_CH_CHCTRL_SETSUS_Pos (8UL) /*!< SETSUS (Bit 8) */ + #define R_DMAC0_GRP_CH_CHCTRL_SETSUS_Msk (0x100UL) /*!< SETSUS (Bitfield-Mask: 0x01) */ + #define R_DMAC0_GRP_CH_CHCTRL_CLRSUS_Pos (9UL) /*!< CLRSUS (Bit 9) */ + #define R_DMAC0_GRP_CH_CHCTRL_CLRSUS_Msk (0x200UL) /*!< CLRSUS (Bitfield-Mask: 0x01) */ + #define R_DMAC0_GRP_CH_CHCTRL_SETINTM_Pos (16UL) /*!< SETINTM (Bit 16) */ + #define R_DMAC0_GRP_CH_CHCTRL_SETINTM_Msk (0x10000UL) /*!< SETINTM (Bitfield-Mask: 0x01) */ + #define R_DMAC0_GRP_CH_CHCTRL_CLRINTM_Pos (17UL) /*!< CLRINTM (Bit 17) */ + #define R_DMAC0_GRP_CH_CHCTRL_CLRINTM_Msk (0x20000UL) /*!< CLRINTM (Bitfield-Mask: 0x01) */ +/* ========================================================= CHCFG ========================================================= */ + #define R_DMAC0_GRP_CH_CHCFG_SEL_Pos (0UL) /*!< SEL (Bit 0) */ + #define R_DMAC0_GRP_CH_CHCFG_SEL_Msk (0x7UL) /*!< SEL (Bitfield-Mask: 0x07) */ + #define R_DMAC0_GRP_CH_CHCFG_REQD_Pos (3UL) /*!< REQD (Bit 3) */ + #define R_DMAC0_GRP_CH_CHCFG_REQD_Msk (0x8UL) /*!< REQD (Bitfield-Mask: 0x01) */ + #define R_DMAC0_GRP_CH_CHCFG_LOEN_Pos (4UL) /*!< LOEN (Bit 4) */ + #define R_DMAC0_GRP_CH_CHCFG_LOEN_Msk (0x10UL) /*!< LOEN (Bitfield-Mask: 0x01) */ + #define R_DMAC0_GRP_CH_CHCFG_HIEN_Pos (5UL) /*!< HIEN (Bit 5) */ + #define R_DMAC0_GRP_CH_CHCFG_HIEN_Msk (0x20UL) /*!< HIEN (Bitfield-Mask: 0x01) */ + #define R_DMAC0_GRP_CH_CHCFG_LVL_Pos (6UL) /*!< LVL (Bit 6) */ + #define R_DMAC0_GRP_CH_CHCFG_LVL_Msk (0x40UL) /*!< LVL (Bitfield-Mask: 0x01) */ + #define R_DMAC0_GRP_CH_CHCFG_AM_Pos (8UL) /*!< AM (Bit 8) */ + #define R_DMAC0_GRP_CH_CHCFG_AM_Msk (0x700UL) /*!< AM (Bitfield-Mask: 0x07) */ + #define R_DMAC0_GRP_CH_CHCFG_SDS_Pos (12UL) /*!< SDS (Bit 12) */ + #define R_DMAC0_GRP_CH_CHCFG_SDS_Msk (0xf000UL) /*!< SDS (Bitfield-Mask: 0x0f) */ + #define R_DMAC0_GRP_CH_CHCFG_DDS_Pos (16UL) /*!< DDS (Bit 16) */ + #define R_DMAC0_GRP_CH_CHCFG_DDS_Msk (0xf0000UL) /*!< DDS (Bitfield-Mask: 0x0f) */ + #define R_DMAC0_GRP_CH_CHCFG_SAD_Pos (20UL) /*!< SAD (Bit 20) */ + #define R_DMAC0_GRP_CH_CHCFG_SAD_Msk (0x100000UL) /*!< SAD (Bitfield-Mask: 0x01) */ + #define R_DMAC0_GRP_CH_CHCFG_DAD_Pos (21UL) /*!< DAD (Bit 21) */ + #define R_DMAC0_GRP_CH_CHCFG_DAD_Msk (0x200000UL) /*!< DAD (Bitfield-Mask: 0x01) */ + #define R_DMAC0_GRP_CH_CHCFG_TM_Pos (22UL) /*!< TM (Bit 22) */ + #define R_DMAC0_GRP_CH_CHCFG_TM_Msk (0x400000UL) /*!< TM (Bitfield-Mask: 0x01) */ + #define R_DMAC0_GRP_CH_CHCFG_DEM_Pos (24UL) /*!< DEM (Bit 24) */ + #define R_DMAC0_GRP_CH_CHCFG_DEM_Msk (0x1000000UL) /*!< DEM (Bitfield-Mask: 0x01) */ + #define R_DMAC0_GRP_CH_CHCFG_TCM_Pos (25UL) /*!< TCM (Bit 25) */ + #define R_DMAC0_GRP_CH_CHCFG_TCM_Msk (0x2000000UL) /*!< TCM (Bitfield-Mask: 0x01) */ + #define R_DMAC0_GRP_CH_CHCFG_SBE_Pos (27UL) /*!< SBE (Bit 27) */ + #define R_DMAC0_GRP_CH_CHCFG_SBE_Msk (0x8000000UL) /*!< SBE (Bitfield-Mask: 0x01) */ + #define R_DMAC0_GRP_CH_CHCFG_RSEL_Pos (28UL) /*!< RSEL (Bit 28) */ + #define R_DMAC0_GRP_CH_CHCFG_RSEL_Msk (0x10000000UL) /*!< RSEL (Bitfield-Mask: 0x01) */ + #define R_DMAC0_GRP_CH_CHCFG_RSW_Pos (29UL) /*!< RSW (Bit 29) */ + #define R_DMAC0_GRP_CH_CHCFG_RSW_Msk (0x20000000UL) /*!< RSW (Bitfield-Mask: 0x01) */ + #define R_DMAC0_GRP_CH_CHCFG_REN_Pos (30UL) /*!< REN (Bit 30) */ + #define R_DMAC0_GRP_CH_CHCFG_REN_Msk (0x40000000UL) /*!< REN (Bitfield-Mask: 0x01) */ + #define R_DMAC0_GRP_CH_CHCFG_DMS_Pos (31UL) /*!< DMS (Bit 31) */ + #define R_DMAC0_GRP_CH_CHCFG_DMS_Msk (0x80000000UL) /*!< DMS (Bitfield-Mask: 0x01) */ +/* ======================================================== CHITVL ========================================================= */ + #define R_DMAC0_GRP_CH_CHITVL_ITVL_Pos (0UL) /*!< ITVL (Bit 0) */ + #define R_DMAC0_GRP_CH_CHITVL_ITVL_Msk (0xffffUL) /*!< ITVL (Bitfield-Mask: 0xffff) */ +/* ========================================================= CHEXT ========================================================= */ + #define R_DMAC0_GRP_CH_CHEXT_SPR_Pos (0UL) /*!< SPR (Bit 0) */ + #define R_DMAC0_GRP_CH_CHEXT_SPR_Msk (0x7UL) /*!< SPR (Bitfield-Mask: 0x07) */ + #define R_DMAC0_GRP_CH_CHEXT_SCA_Pos (4UL) /*!< SCA (Bit 4) */ + #define R_DMAC0_GRP_CH_CHEXT_SCA_Msk (0xf0UL) /*!< SCA (Bitfield-Mask: 0x0f) */ + #define R_DMAC0_GRP_CH_CHEXT_DPR_Pos (8UL) /*!< DPR (Bit 8) */ + #define R_DMAC0_GRP_CH_CHEXT_DPR_Msk (0x700UL) /*!< DPR (Bitfield-Mask: 0x07) */ + #define R_DMAC0_GRP_CH_CHEXT_DCA_Pos (12UL) /*!< DCA (Bit 12) */ + #define R_DMAC0_GRP_CH_CHEXT_DCA_Msk (0xf000UL) /*!< DCA (Bitfield-Mask: 0x0f) */ +/* ========================================================= NXLA ========================================================== */ +/* ========================================================= CRLA ========================================================== */ + +/* =========================================================================================================================== */ +/* ================ GRP ================ */ +/* =========================================================================================================================== */ + +/* ========================================================= DCTRL ========================================================= */ + #define R_DMAC0_GRP_DCTRL_PR_Pos (0UL) /*!< PR (Bit 0) */ + #define R_DMAC0_GRP_DCTRL_PR_Msk (0x1UL) /*!< PR (Bitfield-Mask: 0x01) */ + #define R_DMAC0_GRP_DCTRL_LVINT_Pos (1UL) /*!< LVINT (Bit 1) */ + #define R_DMAC0_GRP_DCTRL_LVINT_Msk (0x2UL) /*!< LVINT (Bitfield-Mask: 0x01) */ +/* ======================================================= DSTAT_EN ======================================================== */ + #define R_DMAC0_GRP_DSTAT_EN_EN00_Pos (0UL) /*!< EN00 (Bit 0) */ + #define R_DMAC0_GRP_DSTAT_EN_EN00_Msk (0x1UL) /*!< EN00 (Bitfield-Mask: 0x01) */ + #define R_DMAC0_GRP_DSTAT_EN_EN01_Pos (1UL) /*!< EN01 (Bit 1) */ + #define R_DMAC0_GRP_DSTAT_EN_EN01_Msk (0x2UL) /*!< EN01 (Bitfield-Mask: 0x01) */ + #define R_DMAC0_GRP_DSTAT_EN_EN02_Pos (2UL) /*!< EN02 (Bit 2) */ + #define R_DMAC0_GRP_DSTAT_EN_EN02_Msk (0x4UL) /*!< EN02 (Bitfield-Mask: 0x01) */ + #define R_DMAC0_GRP_DSTAT_EN_EN03_Pos (3UL) /*!< EN03 (Bit 3) */ + #define R_DMAC0_GRP_DSTAT_EN_EN03_Msk (0x8UL) /*!< EN03 (Bitfield-Mask: 0x01) */ + #define R_DMAC0_GRP_DSTAT_EN_EN04_Pos (4UL) /*!< EN04 (Bit 4) */ + #define R_DMAC0_GRP_DSTAT_EN_EN04_Msk (0x10UL) /*!< EN04 (Bitfield-Mask: 0x01) */ + #define R_DMAC0_GRP_DSTAT_EN_EN05_Pos (5UL) /*!< EN05 (Bit 5) */ + #define R_DMAC0_GRP_DSTAT_EN_EN05_Msk (0x20UL) /*!< EN05 (Bitfield-Mask: 0x01) */ + #define R_DMAC0_GRP_DSTAT_EN_EN06_Pos (6UL) /*!< EN06 (Bit 6) */ + #define R_DMAC0_GRP_DSTAT_EN_EN06_Msk (0x40UL) /*!< EN06 (Bitfield-Mask: 0x01) */ + #define R_DMAC0_GRP_DSTAT_EN_EN07_Pos (7UL) /*!< EN07 (Bit 7) */ + #define R_DMAC0_GRP_DSTAT_EN_EN07_Msk (0x80UL) /*!< EN07 (Bitfield-Mask: 0x01) */ +/* ======================================================= DSTAT_ER ======================================================== */ + #define R_DMAC0_GRP_DSTAT_ER_ER00_Pos (0UL) /*!< ER00 (Bit 0) */ + #define R_DMAC0_GRP_DSTAT_ER_ER00_Msk (0x1UL) /*!< ER00 (Bitfield-Mask: 0x01) */ + #define R_DMAC0_GRP_DSTAT_ER_ER01_Pos (1UL) /*!< ER01 (Bit 1) */ + #define R_DMAC0_GRP_DSTAT_ER_ER01_Msk (0x2UL) /*!< ER01 (Bitfield-Mask: 0x01) */ + #define R_DMAC0_GRP_DSTAT_ER_ER02_Pos (2UL) /*!< ER02 (Bit 2) */ + #define R_DMAC0_GRP_DSTAT_ER_ER02_Msk (0x4UL) /*!< ER02 (Bitfield-Mask: 0x01) */ + #define R_DMAC0_GRP_DSTAT_ER_ER03_Pos (3UL) /*!< ER03 (Bit 3) */ + #define R_DMAC0_GRP_DSTAT_ER_ER03_Msk (0x8UL) /*!< ER03 (Bitfield-Mask: 0x01) */ + #define R_DMAC0_GRP_DSTAT_ER_ER04_Pos (4UL) /*!< ER04 (Bit 4) */ + #define R_DMAC0_GRP_DSTAT_ER_ER04_Msk (0x10UL) /*!< ER04 (Bitfield-Mask: 0x01) */ + #define R_DMAC0_GRP_DSTAT_ER_ER05_Pos (5UL) /*!< ER05 (Bit 5) */ + #define R_DMAC0_GRP_DSTAT_ER_ER05_Msk (0x20UL) /*!< ER05 (Bitfield-Mask: 0x01) */ + #define R_DMAC0_GRP_DSTAT_ER_ER06_Pos (6UL) /*!< ER06 (Bit 6) */ + #define R_DMAC0_GRP_DSTAT_ER_ER06_Msk (0x40UL) /*!< ER06 (Bitfield-Mask: 0x01) */ + #define R_DMAC0_GRP_DSTAT_ER_ER07_Pos (7UL) /*!< ER07 (Bit 7) */ + #define R_DMAC0_GRP_DSTAT_ER_ER07_Msk (0x80UL) /*!< ER07 (Bitfield-Mask: 0x01) */ +/* ======================================================= DSTAT_END ======================================================= */ + #define R_DMAC0_GRP_DSTAT_END_END00_Pos (0UL) /*!< END00 (Bit 0) */ + #define R_DMAC0_GRP_DSTAT_END_END00_Msk (0x1UL) /*!< END00 (Bitfield-Mask: 0x01) */ + #define R_DMAC0_GRP_DSTAT_END_END01_Pos (1UL) /*!< END01 (Bit 1) */ + #define R_DMAC0_GRP_DSTAT_END_END01_Msk (0x2UL) /*!< END01 (Bitfield-Mask: 0x01) */ + #define R_DMAC0_GRP_DSTAT_END_END02_Pos (2UL) /*!< END02 (Bit 2) */ + #define R_DMAC0_GRP_DSTAT_END_END02_Msk (0x4UL) /*!< END02 (Bitfield-Mask: 0x01) */ + #define R_DMAC0_GRP_DSTAT_END_END03_Pos (3UL) /*!< END03 (Bit 3) */ + #define R_DMAC0_GRP_DSTAT_END_END03_Msk (0x8UL) /*!< END03 (Bitfield-Mask: 0x01) */ + #define R_DMAC0_GRP_DSTAT_END_END04_Pos (4UL) /*!< END04 (Bit 4) */ + #define R_DMAC0_GRP_DSTAT_END_END04_Msk (0x10UL) /*!< END04 (Bitfield-Mask: 0x01) */ + #define R_DMAC0_GRP_DSTAT_END_END05_Pos (5UL) /*!< END05 (Bit 5) */ + #define R_DMAC0_GRP_DSTAT_END_END05_Msk (0x20UL) /*!< END05 (Bitfield-Mask: 0x01) */ + #define R_DMAC0_GRP_DSTAT_END_END06_Pos (6UL) /*!< END06 (Bit 6) */ + #define R_DMAC0_GRP_DSTAT_END_END06_Msk (0x40UL) /*!< END06 (Bitfield-Mask: 0x01) */ + #define R_DMAC0_GRP_DSTAT_END_END07_Pos (7UL) /*!< END07 (Bit 7) */ + #define R_DMAC0_GRP_DSTAT_END_END07_Msk (0x80UL) /*!< END07 (Bitfield-Mask: 0x01) */ +/* ======================================================= DSTAT_SUS ======================================================= */ + #define R_DMAC0_GRP_DSTAT_SUS_SUS00_Pos (0UL) /*!< SUS00 (Bit 0) */ + #define R_DMAC0_GRP_DSTAT_SUS_SUS00_Msk (0x1UL) /*!< SUS00 (Bitfield-Mask: 0x01) */ + #define R_DMAC0_GRP_DSTAT_SUS_SUS01_Pos (1UL) /*!< SUS01 (Bit 1) */ + #define R_DMAC0_GRP_DSTAT_SUS_SUS01_Msk (0x2UL) /*!< SUS01 (Bitfield-Mask: 0x01) */ + #define R_DMAC0_GRP_DSTAT_SUS_SUS02_Pos (2UL) /*!< SUS02 (Bit 2) */ + #define R_DMAC0_GRP_DSTAT_SUS_SUS02_Msk (0x4UL) /*!< SUS02 (Bitfield-Mask: 0x01) */ + #define R_DMAC0_GRP_DSTAT_SUS_SUS03_Pos (3UL) /*!< SUS03 (Bit 3) */ + #define R_DMAC0_GRP_DSTAT_SUS_SUS03_Msk (0x8UL) /*!< SUS03 (Bitfield-Mask: 0x01) */ + #define R_DMAC0_GRP_DSTAT_SUS_SUS04_Pos (4UL) /*!< SUS04 (Bit 4) */ + #define R_DMAC0_GRP_DSTAT_SUS_SUS04_Msk (0x10UL) /*!< SUS04 (Bitfield-Mask: 0x01) */ + #define R_DMAC0_GRP_DSTAT_SUS_SUS05_Pos (5UL) /*!< SUS05 (Bit 5) */ + #define R_DMAC0_GRP_DSTAT_SUS_SUS05_Msk (0x20UL) /*!< SUS05 (Bitfield-Mask: 0x01) */ + #define R_DMAC0_GRP_DSTAT_SUS_SUS06_Pos (6UL) /*!< SUS06 (Bit 6) */ + #define R_DMAC0_GRP_DSTAT_SUS_SUS06_Msk (0x40UL) /*!< SUS06 (Bitfield-Mask: 0x01) */ + #define R_DMAC0_GRP_DSTAT_SUS_SUS07_Pos (7UL) /*!< SUS07 (Bit 7) */ + #define R_DMAC0_GRP_DSTAT_SUS_SUS07_Msk (0x80UL) /*!< SUS07 (Bitfield-Mask: 0x01) */ + +/* =========================================================================================================================== */ +/* ================ DRCTL ================ */ +/* =========================================================================================================================== */ + +/* =========================================================== L =========================================================== */ + #define R_PORT_NSR_DRCTL_L_DRV0_Pos (0UL) /*!< DRV0 (Bit 0) */ + #define R_PORT_NSR_DRCTL_L_DRV0_Msk (0x3UL) /*!< DRV0 (Bitfield-Mask: 0x03) */ + #define R_PORT_NSR_DRCTL_L_PUD0_Pos (2UL) /*!< PUD0 (Bit 2) */ + #define R_PORT_NSR_DRCTL_L_PUD0_Msk (0xcUL) /*!< PUD0 (Bitfield-Mask: 0x03) */ + #define R_PORT_NSR_DRCTL_L_SMT0_Pos (4UL) /*!< SMT0 (Bit 4) */ + #define R_PORT_NSR_DRCTL_L_SMT0_Msk (0x10UL) /*!< SMT0 (Bitfield-Mask: 0x01) */ + #define R_PORT_NSR_DRCTL_L_SR0_Pos (5UL) /*!< SR0 (Bit 5) */ + #define R_PORT_NSR_DRCTL_L_SR0_Msk (0x20UL) /*!< SR0 (Bitfield-Mask: 0x01) */ + #define R_PORT_NSR_DRCTL_L_DRV1_Pos (8UL) /*!< DRV1 (Bit 8) */ + #define R_PORT_NSR_DRCTL_L_DRV1_Msk (0x300UL) /*!< DRV1 (Bitfield-Mask: 0x03) */ + #define R_PORT_NSR_DRCTL_L_PUD1_Pos (10UL) /*!< PUD1 (Bit 10) */ + #define R_PORT_NSR_DRCTL_L_PUD1_Msk (0xc00UL) /*!< PUD1 (Bitfield-Mask: 0x03) */ + #define R_PORT_NSR_DRCTL_L_SMT1_Pos (12UL) /*!< SMT1 (Bit 12) */ + #define R_PORT_NSR_DRCTL_L_SMT1_Msk (0x1000UL) /*!< SMT1 (Bitfield-Mask: 0x01) */ + #define R_PORT_NSR_DRCTL_L_SR1_Pos (13UL) /*!< SR1 (Bit 13) */ + #define R_PORT_NSR_DRCTL_L_SR1_Msk (0x2000UL) /*!< SR1 (Bitfield-Mask: 0x01) */ + #define R_PORT_NSR_DRCTL_L_DRV2_Pos (16UL) /*!< DRV2 (Bit 16) */ + #define R_PORT_NSR_DRCTL_L_DRV2_Msk (0x30000UL) /*!< DRV2 (Bitfield-Mask: 0x03) */ + #define R_PORT_NSR_DRCTL_L_PUD2_Pos (18UL) /*!< PUD2 (Bit 18) */ + #define R_PORT_NSR_DRCTL_L_PUD2_Msk (0xc0000UL) /*!< PUD2 (Bitfield-Mask: 0x03) */ + #define R_PORT_NSR_DRCTL_L_SMT2_Pos (20UL) /*!< SMT2 (Bit 20) */ + #define R_PORT_NSR_DRCTL_L_SMT2_Msk (0x100000UL) /*!< SMT2 (Bitfield-Mask: 0x01) */ + #define R_PORT_NSR_DRCTL_L_SR2_Pos (21UL) /*!< SR2 (Bit 21) */ + #define R_PORT_NSR_DRCTL_L_SR2_Msk (0x200000UL) /*!< SR2 (Bitfield-Mask: 0x01) */ + #define R_PORT_NSR_DRCTL_L_DRV3_Pos (24UL) /*!< DRV3 (Bit 24) */ + #define R_PORT_NSR_DRCTL_L_DRV3_Msk (0x3000000UL) /*!< DRV3 (Bitfield-Mask: 0x03) */ + #define R_PORT_NSR_DRCTL_L_PUD3_Pos (26UL) /*!< PUD3 (Bit 26) */ + #define R_PORT_NSR_DRCTL_L_PUD3_Msk (0xc000000UL) /*!< PUD3 (Bitfield-Mask: 0x03) */ + #define R_PORT_NSR_DRCTL_L_SMT3_Pos (28UL) /*!< SMT3 (Bit 28) */ + #define R_PORT_NSR_DRCTL_L_SMT3_Msk (0x10000000UL) /*!< SMT3 (Bitfield-Mask: 0x01) */ + #define R_PORT_NSR_DRCTL_L_SR3_Pos (29UL) /*!< SR3 (Bit 29) */ + #define R_PORT_NSR_DRCTL_L_SR3_Msk (0x20000000UL) /*!< SR3 (Bitfield-Mask: 0x01) */ +/* =========================================================== H =========================================================== */ + #define R_PORT_NSR_DRCTL_H_DRV4_Pos (0UL) /*!< DRV4 (Bit 0) */ + #define R_PORT_NSR_DRCTL_H_DRV4_Msk (0x3UL) /*!< DRV4 (Bitfield-Mask: 0x03) */ + #define R_PORT_NSR_DRCTL_H_PUD4_Pos (2UL) /*!< PUD4 (Bit 2) */ + #define R_PORT_NSR_DRCTL_H_PUD4_Msk (0xcUL) /*!< PUD4 (Bitfield-Mask: 0x03) */ + #define R_PORT_NSR_DRCTL_H_SMT4_Pos (4UL) /*!< SMT4 (Bit 4) */ + #define R_PORT_NSR_DRCTL_H_SMT4_Msk (0x10UL) /*!< SMT4 (Bitfield-Mask: 0x01) */ + #define R_PORT_NSR_DRCTL_H_SR4_Pos (5UL) /*!< SR4 (Bit 5) */ + #define R_PORT_NSR_DRCTL_H_SR4_Msk (0x20UL) /*!< SR4 (Bitfield-Mask: 0x01) */ + #define R_PORT_NSR_DRCTL_H_DRV5_Pos (8UL) /*!< DRV5 (Bit 8) */ + #define R_PORT_NSR_DRCTL_H_DRV5_Msk (0x300UL) /*!< DRV5 (Bitfield-Mask: 0x03) */ + #define R_PORT_NSR_DRCTL_H_PUD5_Pos (10UL) /*!< PUD5 (Bit 10) */ + #define R_PORT_NSR_DRCTL_H_PUD5_Msk (0xc00UL) /*!< PUD5 (Bitfield-Mask: 0x03) */ + #define R_PORT_NSR_DRCTL_H_SMT5_Pos (12UL) /*!< SMT5 (Bit 12) */ + #define R_PORT_NSR_DRCTL_H_SMT5_Msk (0x1000UL) /*!< SMT5 (Bitfield-Mask: 0x01) */ + #define R_PORT_NSR_DRCTL_H_SR5_Pos (13UL) /*!< SR5 (Bit 13) */ + #define R_PORT_NSR_DRCTL_H_SR5_Msk (0x2000UL) /*!< SR5 (Bitfield-Mask: 0x01) */ + #define R_PORT_NSR_DRCTL_H_DRV6_Pos (16UL) /*!< DRV6 (Bit 16) */ + #define R_PORT_NSR_DRCTL_H_DRV6_Msk (0x30000UL) /*!< DRV6 (Bitfield-Mask: 0x03) */ + #define R_PORT_NSR_DRCTL_H_PUD6_Pos (18UL) /*!< PUD6 (Bit 18) */ + #define R_PORT_NSR_DRCTL_H_PUD6_Msk (0xc0000UL) /*!< PUD6 (Bitfield-Mask: 0x03) */ + #define R_PORT_NSR_DRCTL_H_SMT6_Pos (20UL) /*!< SMT6 (Bit 20) */ + #define R_PORT_NSR_DRCTL_H_SMT6_Msk (0x100000UL) /*!< SMT6 (Bitfield-Mask: 0x01) */ + #define R_PORT_NSR_DRCTL_H_SR6_Pos (21UL) /*!< SR6 (Bit 21) */ + #define R_PORT_NSR_DRCTL_H_SR6_Msk (0x200000UL) /*!< SR6 (Bitfield-Mask: 0x01) */ + #define R_PORT_NSR_DRCTL_H_DRV7_Pos (24UL) /*!< DRV7 (Bit 24) */ + #define R_PORT_NSR_DRCTL_H_DRV7_Msk (0x3000000UL) /*!< DRV7 (Bitfield-Mask: 0x03) */ + #define R_PORT_NSR_DRCTL_H_PUD7_Pos (26UL) /*!< PUD7 (Bit 26) */ + #define R_PORT_NSR_DRCTL_H_PUD7_Msk (0xc000000UL) /*!< PUD7 (Bitfield-Mask: 0x03) */ + #define R_PORT_NSR_DRCTL_H_SMT7_Pos (28UL) /*!< SMT7 (Bit 28) */ + #define R_PORT_NSR_DRCTL_H_SMT7_Msk (0x10000000UL) /*!< SMT7 (Bitfield-Mask: 0x01) */ + #define R_PORT_NSR_DRCTL_H_SR7_Pos (29UL) /*!< SR7 (Bit 29) */ + #define R_PORT_NSR_DRCTL_H_SR7_Msk (0x20000000UL) /*!< SR7 (Bitfield-Mask: 0x01) */ + +/* =========================================================================================================================== */ +/* ================ ELC_PDBF ================ */ +/* =========================================================================================================================== */ + +/* ========================================================== BY =========================================================== */ + #define R_PORT_NSR_ELC_PDBF_BY_PB0_Pos (0UL) /*!< PB0 (Bit 0) */ + #define R_PORT_NSR_ELC_PDBF_BY_PB0_Msk (0x1UL) /*!< PB0 (Bitfield-Mask: 0x01) */ + #define R_PORT_NSR_ELC_PDBF_BY_PB1_Pos (1UL) /*!< PB1 (Bit 1) */ + #define R_PORT_NSR_ELC_PDBF_BY_PB1_Msk (0x2UL) /*!< PB1 (Bitfield-Mask: 0x01) */ + #define R_PORT_NSR_ELC_PDBF_BY_PB2_Pos (2UL) /*!< PB2 (Bit 2) */ + #define R_PORT_NSR_ELC_PDBF_BY_PB2_Msk (0x4UL) /*!< PB2 (Bitfield-Mask: 0x01) */ + #define R_PORT_NSR_ELC_PDBF_BY_PB3_Pos (3UL) /*!< PB3 (Bit 3) */ + #define R_PORT_NSR_ELC_PDBF_BY_PB3_Msk (0x8UL) /*!< PB3 (Bitfield-Mask: 0x01) */ + #define R_PORT_NSR_ELC_PDBF_BY_PB4_Pos (4UL) /*!< PB4 (Bit 4) */ + #define R_PORT_NSR_ELC_PDBF_BY_PB4_Msk (0x10UL) /*!< PB4 (Bitfield-Mask: 0x01) */ + #define R_PORT_NSR_ELC_PDBF_BY_PB5_Pos (5UL) /*!< PB5 (Bit 5) */ + #define R_PORT_NSR_ELC_PDBF_BY_PB5_Msk (0x20UL) /*!< PB5 (Bitfield-Mask: 0x01) */ + #define R_PORT_NSR_ELC_PDBF_BY_PB6_Pos (6UL) /*!< PB6 (Bit 6) */ + #define R_PORT_NSR_ELC_PDBF_BY_PB6_Msk (0x40UL) /*!< PB6 (Bitfield-Mask: 0x01) */ + #define R_PORT_NSR_ELC_PDBF_BY_PB7_Pos (7UL) /*!< PB7 (Bit 7) */ + #define R_PORT_NSR_ELC_PDBF_BY_PB7_Msk (0x80UL) /*!< PB7 (Bitfield-Mask: 0x01) */ + +/* =========================================================================================================================== */ +/* ================ SWTM ================ */ +/* =========================================================================================================================== */ + +/* ========================================================== EN =========================================================== */ + #define R_ETHSW_PTP_SWTM_EN_OUTEN_Pos (0UL) /*!< OUTEN (Bit 0) */ + #define R_ETHSW_PTP_SWTM_EN_OUTEN_Msk (0x1UL) /*!< OUTEN (Bitfield-Mask: 0x01) */ +/* ========================================================= STSEC ========================================================= */ + #define R_ETHSW_PTP_SWTM_STSEC_STSEC_Pos (0UL) /*!< STSEC (Bit 0) */ + #define R_ETHSW_PTP_SWTM_STSEC_STSEC_Msk (0xffffffffUL) /*!< STSEC (Bitfield-Mask: 0xffffffff) */ +/* ========================================================= STNS ========================================================== */ + #define R_ETHSW_PTP_SWTM_STNS_STNS_Pos (0UL) /*!< STNS (Bit 0) */ + #define R_ETHSW_PTP_SWTM_STNS_STNS_Msk (0xffffffffUL) /*!< STNS (Bitfield-Mask: 0xffffffff) */ +/* ========================================================= PSEC ========================================================== */ + #define R_ETHSW_PTP_SWTM_PSEC_PSEC_Pos (0UL) /*!< PSEC (Bit 0) */ + #define R_ETHSW_PTP_SWTM_PSEC_PSEC_Msk (0xffffffffUL) /*!< PSEC (Bitfield-Mask: 0xffffffff) */ +/* ========================================================== PNS ========================================================== */ + #define R_ETHSW_PTP_SWTM_PNS_PNS_Pos (0UL) /*!< PNS (Bit 0) */ + #define R_ETHSW_PTP_SWTM_PNS_PNS_Msk (0xffffffffUL) /*!< PNS (Bitfield-Mask: 0xffffffff) */ +/* ========================================================== WTH ========================================================== */ + #define R_ETHSW_PTP_SWTM_WTH_WIDTH_Pos (0UL) /*!< WIDTH (Bit 0) */ + #define R_ETHSW_PTP_SWTM_WTH_WIDTH_Msk (0xffffUL) /*!< WIDTH (Bitfield-Mask: 0xffff) */ +/* ========================================================= MAXP ========================================================== */ + #define R_ETHSW_PTP_SWTM_MAXP_MAXP_Pos (0UL) /*!< MAXP (Bit 0) */ + #define R_ETHSW_PTP_SWTM_MAXP_MAXP_Msk (0xffffffffUL) /*!< MAXP (Bitfield-Mask: 0xffffffff) */ +/* ======================================================== LATSEC ========================================================= */ + #define R_ETHSW_PTP_SWTM_LATSEC_LATSEC_Pos (0UL) /*!< LATSEC (Bit 0) */ + #define R_ETHSW_PTP_SWTM_LATSEC_LATSEC_Msk (0xffffffffUL) /*!< LATSEC (Bitfield-Mask: 0xffffffff) */ +/* ========================================================= LATNS ========================================================= */ + #define R_ETHSW_PTP_SWTM_LATNS_LATNS_Pos (0UL) /*!< LATNS (Bit 0) */ + #define R_ETHSW_PTP_SWTM_LATNS_LATNS_Msk (0xffffffffUL) /*!< LATNS (Bitfield-Mask: 0xffffffff) */ + +/* =========================================================================================================================== */ +/* ================ MGMT_ADDR ================ */ +/* =========================================================================================================================== */ + +/* ========================================================== lo =========================================================== */ + #define R_ETHSW_MGMT_ADDR_lo_BPDU_DST_Pos (0UL) /*!< BPDU_DST (Bit 0) */ + #define R_ETHSW_MGMT_ADDR_lo_BPDU_DST_Msk (0xffffffffUL) /*!< BPDU_DST (Bitfield-Mask: 0xffffffff) */ +/* ========================================================== hi =========================================================== */ + #define R_ETHSW_MGMT_ADDR_hi_BPDU_DST_Pos (0UL) /*!< BPDU_DST (Bit 0) */ + #define R_ETHSW_MGMT_ADDR_hi_BPDU_DST_Msk (0xffffUL) /*!< BPDU_DST (Bitfield-Mask: 0xffff) */ + #define R_ETHSW_MGMT_ADDR_hi_MASK_Pos (16UL) /*!< MASK (Bit 16) */ + #define R_ETHSW_MGMT_ADDR_hi_MASK_Msk (0xff0000UL) /*!< MASK (Bitfield-Mask: 0xff) */ + +/* =========================================================================================================================== */ +/* ================ FMMU ================ */ +/* =========================================================================================================================== */ + +/* ====================================================== L_START_ADR ====================================================== */ + #define R_ESC_FMMU_L_START_ADR_LSTAADR_Pos (0UL) /*!< LSTAADR (Bit 0) */ + #define R_ESC_FMMU_L_START_ADR_LSTAADR_Msk (0xffffffffUL) /*!< LSTAADR (Bitfield-Mask: 0xffffffff) */ +/* ========================================================== LEN ========================================================== */ + #define R_ESC_FMMU_LEN_FMMULEN_Pos (0UL) /*!< FMMULEN (Bit 0) */ + #define R_ESC_FMMU_LEN_FMMULEN_Msk (0xffffUL) /*!< FMMULEN (Bitfield-Mask: 0xffff) */ +/* ====================================================== L_START_BIT ====================================================== */ + #define R_ESC_FMMU_L_START_BIT_LSTABIT_Pos (0UL) /*!< LSTABIT (Bit 0) */ + #define R_ESC_FMMU_L_START_BIT_LSTABIT_Msk (0x7UL) /*!< LSTABIT (Bitfield-Mask: 0x07) */ +/* ====================================================== L_STOP_BIT ======================================================= */ + #define R_ESC_FMMU_L_STOP_BIT_LSTPBIT_Pos (0UL) /*!< LSTPBIT (Bit 0) */ + #define R_ESC_FMMU_L_STOP_BIT_LSTPBIT_Msk (0x7UL) /*!< LSTPBIT (Bitfield-Mask: 0x07) */ +/* ====================================================== P_START_ADR ====================================================== */ + #define R_ESC_FMMU_P_START_ADR_PHYSTAADR_Pos (0UL) /*!< PHYSTAADR (Bit 0) */ + #define R_ESC_FMMU_P_START_ADR_PHYSTAADR_Msk (0xffffUL) /*!< PHYSTAADR (Bitfield-Mask: 0xffff) */ +/* ====================================================== P_START_BIT ====================================================== */ + #define R_ESC_FMMU_P_START_BIT_PHYSTABIT_Pos (0UL) /*!< PHYSTABIT (Bit 0) */ + #define R_ESC_FMMU_P_START_BIT_PHYSTABIT_Msk (0x7UL) /*!< PHYSTABIT (Bitfield-Mask: 0x07) */ +/* ========================================================= TYPE ========================================================== */ + #define R_ESC_FMMU_TYPE_READ_Pos (0UL) /*!< READ (Bit 0) */ + #define R_ESC_FMMU_TYPE_READ_Msk (0x1UL) /*!< READ (Bitfield-Mask: 0x01) */ + #define R_ESC_FMMU_TYPE_WRITE_Pos (1UL) /*!< WRITE (Bit 1) */ + #define R_ESC_FMMU_TYPE_WRITE_Msk (0x2UL) /*!< WRITE (Bitfield-Mask: 0x01) */ +/* ========================================================== ACT ========================================================== */ + #define R_ESC_FMMU_ACT_ACTIVATE_Pos (0UL) /*!< ACTIVATE (Bit 0) */ + #define R_ESC_FMMU_ACT_ACTIVATE_Msk (0x1UL) /*!< ACTIVATE (Bitfield-Mask: 0x01) */ + +/* =========================================================================================================================== */ +/* ================ SM ================ */ +/* =========================================================================================================================== */ + +/* ====================================================== P_START_ADR ====================================================== */ + #define R_ESC_SM_P_START_ADR_SMSTAADDR_Pos (0UL) /*!< SMSTAADDR (Bit 0) */ + #define R_ESC_SM_P_START_ADR_SMSTAADDR_Msk (0xffffUL) /*!< SMSTAADDR (Bitfield-Mask: 0xffff) */ +/* ========================================================== LEN ========================================================== */ + #define R_ESC_SM_LEN_SMLEN_Pos (0UL) /*!< SMLEN (Bit 0) */ + #define R_ESC_SM_LEN_SMLEN_Msk (0xffffUL) /*!< SMLEN (Bitfield-Mask: 0xffff) */ +/* ======================================================== CONTROL ======================================================== */ + #define R_ESC_SM_CONTROL_OPEMODE_Pos (0UL) /*!< OPEMODE (Bit 0) */ + #define R_ESC_SM_CONTROL_OPEMODE_Msk (0x3UL) /*!< OPEMODE (Bitfield-Mask: 0x03) */ + #define R_ESC_SM_CONTROL_DIR_Pos (2UL) /*!< DIR (Bit 2) */ + #define R_ESC_SM_CONTROL_DIR_Msk (0xcUL) /*!< DIR (Bitfield-Mask: 0x03) */ + #define R_ESC_SM_CONTROL_IRQECAT_Pos (4UL) /*!< IRQECAT (Bit 4) */ + #define R_ESC_SM_CONTROL_IRQECAT_Msk (0x10UL) /*!< IRQECAT (Bitfield-Mask: 0x01) */ + #define R_ESC_SM_CONTROL_IRQPDI_Pos (5UL) /*!< IRQPDI (Bit 5) */ + #define R_ESC_SM_CONTROL_IRQPDI_Msk (0x20UL) /*!< IRQPDI (Bitfield-Mask: 0x01) */ + #define R_ESC_SM_CONTROL_WDTRGEN_Pos (6UL) /*!< WDTRGEN (Bit 6) */ + #define R_ESC_SM_CONTROL_WDTRGEN_Msk (0x40UL) /*!< WDTRGEN (Bitfield-Mask: 0x01) */ +/* ======================================================== STATUS ========================================================= */ + #define R_ESC_SM_STATUS_INTWR_Pos (0UL) /*!< INTWR (Bit 0) */ + #define R_ESC_SM_STATUS_INTWR_Msk (0x1UL) /*!< INTWR (Bitfield-Mask: 0x01) */ + #define R_ESC_SM_STATUS_INTRD_Pos (1UL) /*!< INTRD (Bit 1) */ + #define R_ESC_SM_STATUS_INTRD_Msk (0x2UL) /*!< INTRD (Bitfield-Mask: 0x01) */ + #define R_ESC_SM_STATUS_MAILBOX_Pos (3UL) /*!< MAILBOX (Bit 3) */ + #define R_ESC_SM_STATUS_MAILBOX_Msk (0x8UL) /*!< MAILBOX (Bitfield-Mask: 0x01) */ + #define R_ESC_SM_STATUS_BUFFERED_Pos (4UL) /*!< BUFFERED (Bit 4) */ + #define R_ESC_SM_STATUS_BUFFERED_Msk (0x30UL) /*!< BUFFERED (Bitfield-Mask: 0x03) */ + #define R_ESC_SM_STATUS_RDBUF_Pos (6UL) /*!< RDBUF (Bit 6) */ + #define R_ESC_SM_STATUS_RDBUF_Msk (0x40UL) /*!< RDBUF (Bitfield-Mask: 0x01) */ + #define R_ESC_SM_STATUS_WRBUF_Pos (7UL) /*!< WRBUF (Bit 7) */ + #define R_ESC_SM_STATUS_WRBUF_Msk (0x80UL) /*!< WRBUF (Bitfield-Mask: 0x01) */ +/* ========================================================== ACT ========================================================== */ + #define R_ESC_SM_ACT_SMEN_Pos (0UL) /*!< SMEN (Bit 0) */ + #define R_ESC_SM_ACT_SMEN_Msk (0x1UL) /*!< SMEN (Bitfield-Mask: 0x01) */ + #define R_ESC_SM_ACT_REPEATREQ_Pos (1UL) /*!< REPEATREQ (Bit 1) */ + #define R_ESC_SM_ACT_REPEATREQ_Msk (0x2UL) /*!< REPEATREQ (Bitfield-Mask: 0x01) */ + #define R_ESC_SM_ACT_LATCHECAT_Pos (6UL) /*!< LATCHECAT (Bit 6) */ + #define R_ESC_SM_ACT_LATCHECAT_Msk (0x40UL) /*!< LATCHECAT (Bitfield-Mask: 0x01) */ + #define R_ESC_SM_ACT_LATCHPDI_Pos (7UL) /*!< LATCHPDI (Bit 7) */ + #define R_ESC_SM_ACT_LATCHPDI_Msk (0x80UL) /*!< LATCHPDI (Bitfield-Mask: 0x01) */ +/* ======================================================= PDI_CONT ======================================================== */ + #define R_ESC_SM_PDI_CONT_DEACTIVE_Pos (0UL) /*!< DEACTIVE (Bit 0) */ + #define R_ESC_SM_PDI_CONT_DEACTIVE_Msk (0x1UL) /*!< DEACTIVE (Bitfield-Mask: 0x01) */ + #define R_ESC_SM_PDI_CONT_REPEATACK_Pos (1UL) /*!< REPEATACK (Bit 1) */ + #define R_ESC_SM_PDI_CONT_REPEATACK_Msk (0x2UL) /*!< REPEATACK (Bitfield-Mask: 0x01) */ + +/* =========================================================================================================================== */ +/* ================ PIPE_TR ================ */ +/* =========================================================================================================================== */ + +/* =========================================================== E =========================================================== */ + #define R_USBF_PIPE_TR_E_TRCLR_Pos (8UL) /*!< TRCLR (Bit 8) */ + #define R_USBF_PIPE_TR_E_TRCLR_Msk (0x100UL) /*!< TRCLR (Bitfield-Mask: 0x01) */ + #define R_USBF_PIPE_TR_E_TRENB_Pos (9UL) /*!< TRENB (Bit 9) */ + #define R_USBF_PIPE_TR_E_TRENB_Msk (0x200UL) /*!< TRENB (Bitfield-Mask: 0x01) */ +/* =========================================================== N =========================================================== */ + #define R_USBF_PIPE_TR_N_TRNCNT_Pos (0UL) /*!< TRNCNT (Bit 0) */ + #define R_USBF_PIPE_TR_N_TRNCNT_Msk (0xffffUL) /*!< TRNCNT (Bitfield-Mask: 0xffff) */ + +/* =========================================================================================================================== */ +/* ================ N ================ */ +/* =========================================================================================================================== */ + +/* ========================================================== SA =========================================================== */ + #define R_USBF_CHa_N_SA_SAWD_Pos (0UL) /*!< SAWD (Bit 0) */ + #define R_USBF_CHa_N_SA_SAWD_Msk (0xffffffffUL) /*!< SAWD (Bitfield-Mask: 0xffffffff) */ +/* ========================================================== DA =========================================================== */ + #define R_USBF_CHa_N_DA_DA_Pos (0UL) /*!< DA (Bit 0) */ + #define R_USBF_CHa_N_DA_DA_Msk (0xffffffffUL) /*!< DA (Bitfield-Mask: 0xffffffff) */ +/* ========================================================== TB =========================================================== */ + #define R_USBF_CHa_N_TB_TB_Pos (0UL) /*!< TB (Bit 0) */ + #define R_USBF_CHa_N_TB_TB_Msk (0xffffffffUL) /*!< TB (Bitfield-Mask: 0xffffffff) */ + +/* =========================================================================================================================== */ +/* ================ CHa ================ */ +/* =========================================================================================================================== */ + +/* ========================================================= CRSA ========================================================== */ + #define R_USBF_CHa_CRSA_CRSA_Pos (0UL) /*!< CRSA (Bit 0) */ + #define R_USBF_CHa_CRSA_CRSA_Msk (0xffffffffUL) /*!< CRSA (Bitfield-Mask: 0xffffffff) */ +/* ========================================================= CRDA ========================================================== */ + #define R_USBF_CHa_CRDA_CRDA_Pos (0UL) /*!< CRDA (Bit 0) */ + #define R_USBF_CHa_CRDA_CRDA_Msk (0xffffffffUL) /*!< CRDA (Bitfield-Mask: 0xffffffff) */ +/* ========================================================= CRTB ========================================================== */ + #define R_USBF_CHa_CRTB_CRTB_Pos (0UL) /*!< CRTB (Bit 0) */ + #define R_USBF_CHa_CRTB_CRTB_Msk (0xffffffffUL) /*!< CRTB (Bitfield-Mask: 0xffffffff) */ +/* ======================================================== CHSTAT ========================================================= */ + #define R_USBF_CHa_CHSTAT_EN_Pos (0UL) /*!< EN (Bit 0) */ + #define R_USBF_CHa_CHSTAT_EN_Msk (0x1UL) /*!< EN (Bitfield-Mask: 0x01) */ + #define R_USBF_CHa_CHSTAT_RQST_Pos (1UL) /*!< RQST (Bit 1) */ + #define R_USBF_CHa_CHSTAT_RQST_Msk (0x2UL) /*!< RQST (Bitfield-Mask: 0x01) */ + #define R_USBF_CHa_CHSTAT_TACT_Pos (2UL) /*!< TACT (Bit 2) */ + #define R_USBF_CHa_CHSTAT_TACT_Msk (0x4UL) /*!< TACT (Bitfield-Mask: 0x01) */ + #define R_USBF_CHa_CHSTAT_SUS_Pos (3UL) /*!< SUS (Bit 3) */ + #define R_USBF_CHa_CHSTAT_SUS_Msk (0x8UL) /*!< SUS (Bitfield-Mask: 0x01) */ + #define R_USBF_CHa_CHSTAT_ER_Pos (4UL) /*!< ER (Bit 4) */ + #define R_USBF_CHa_CHSTAT_ER_Msk (0x10UL) /*!< ER (Bitfield-Mask: 0x01) */ + #define R_USBF_CHa_CHSTAT_END_Pos (5UL) /*!< END (Bit 5) */ + #define R_USBF_CHa_CHSTAT_END_Msk (0x20UL) /*!< END (Bitfield-Mask: 0x01) */ + #define R_USBF_CHa_CHSTAT_TC_Pos (6UL) /*!< TC (Bit 6) */ + #define R_USBF_CHa_CHSTAT_TC_Msk (0x40UL) /*!< TC (Bitfield-Mask: 0x01) */ + #define R_USBF_CHa_CHSTAT_SR_Pos (7UL) /*!< SR (Bit 7) */ + #define R_USBF_CHa_CHSTAT_SR_Msk (0x80UL) /*!< SR (Bitfield-Mask: 0x01) */ + #define R_USBF_CHa_CHSTAT_DL_Pos (8UL) /*!< DL (Bit 8) */ + #define R_USBF_CHa_CHSTAT_DL_Msk (0x100UL) /*!< DL (Bitfield-Mask: 0x01) */ + #define R_USBF_CHa_CHSTAT_DW_Pos (9UL) /*!< DW (Bit 9) */ + #define R_USBF_CHa_CHSTAT_DW_Msk (0x200UL) /*!< DW (Bitfield-Mask: 0x01) */ + #define R_USBF_CHa_CHSTAT_DER_Pos (10UL) /*!< DER (Bit 10) */ + #define R_USBF_CHa_CHSTAT_DER_Msk (0x400UL) /*!< DER (Bitfield-Mask: 0x01) */ + #define R_USBF_CHa_CHSTAT_MODE_Pos (11UL) /*!< MODE (Bit 11) */ + #define R_USBF_CHa_CHSTAT_MODE_Msk (0x800UL) /*!< MODE (Bitfield-Mask: 0x01) */ + #define R_USBF_CHa_CHSTAT_INTM_Pos (16UL) /*!< INTM (Bit 16) */ + #define R_USBF_CHa_CHSTAT_INTM_Msk (0x10000UL) /*!< INTM (Bitfield-Mask: 0x01) */ + #define R_USBF_CHa_CHSTAT_DMARQM_Pos (17UL) /*!< DMARQM (Bit 17) */ + #define R_USBF_CHa_CHSTAT_DMARQM_Msk (0x20000UL) /*!< DMARQM (Bitfield-Mask: 0x01) */ + #define R_USBF_CHa_CHSTAT_SWPRQ_Pos (18UL) /*!< SWPRQ (Bit 18) */ + #define R_USBF_CHa_CHSTAT_SWPRQ_Msk (0x40000UL) /*!< SWPRQ (Bitfield-Mask: 0x01) */ + #define R_USBF_CHa_CHSTAT_DNUM_Pos (24UL) /*!< DNUM (Bit 24) */ + #define R_USBF_CHa_CHSTAT_DNUM_Msk (0xff000000UL) /*!< DNUM (Bitfield-Mask: 0xff) */ +/* ======================================================== CHCTRL ========================================================= */ + #define R_USBF_CHa_CHCTRL_SETEN_Pos (0UL) /*!< SETEN (Bit 0) */ + #define R_USBF_CHa_CHCTRL_SETEN_Msk (0x1UL) /*!< SETEN (Bitfield-Mask: 0x01) */ + #define R_USBF_CHa_CHCTRL_CLREN_Pos (1UL) /*!< CLREN (Bit 1) */ + #define R_USBF_CHa_CHCTRL_CLREN_Msk (0x2UL) /*!< CLREN (Bitfield-Mask: 0x01) */ + #define R_USBF_CHa_CHCTRL_STG_Pos (2UL) /*!< STG (Bit 2) */ + #define R_USBF_CHa_CHCTRL_STG_Msk (0x4UL) /*!< STG (Bitfield-Mask: 0x01) */ + #define R_USBF_CHa_CHCTRL_SWRST_Pos (3UL) /*!< SWRST (Bit 3) */ + #define R_USBF_CHa_CHCTRL_SWRST_Msk (0x8UL) /*!< SWRST (Bitfield-Mask: 0x01) */ + #define R_USBF_CHa_CHCTRL_CLRRQ_Pos (4UL) /*!< CLRRQ (Bit 4) */ + #define R_USBF_CHa_CHCTRL_CLRRQ_Msk (0x10UL) /*!< CLRRQ (Bitfield-Mask: 0x01) */ + #define R_USBF_CHa_CHCTRL_CLREND_Pos (5UL) /*!< CLREND (Bit 5) */ + #define R_USBF_CHa_CHCTRL_CLREND_Msk (0x20UL) /*!< CLREND (Bitfield-Mask: 0x01) */ + #define R_USBF_CHa_CHCTRL_CLRTC_Pos (6UL) /*!< CLRTC (Bit 6) */ + #define R_USBF_CHa_CHCTRL_CLRTC_Msk (0x40UL) /*!< CLRTC (Bitfield-Mask: 0x01) */ + #define R_USBF_CHa_CHCTRL_CLRDER_Pos (7UL) /*!< CLRDER (Bit 7) */ + #define R_USBF_CHa_CHCTRL_CLRDER_Msk (0x80UL) /*!< CLRDER (Bitfield-Mask: 0x01) */ + #define R_USBF_CHa_CHCTRL_SETSUS_Pos (8UL) /*!< SETSUS (Bit 8) */ + #define R_USBF_CHa_CHCTRL_SETSUS_Msk (0x100UL) /*!< SETSUS (Bitfield-Mask: 0x01) */ + #define R_USBF_CHa_CHCTRL_CLRSUS_Pos (9UL) /*!< CLRSUS (Bit 9) */ + #define R_USBF_CHa_CHCTRL_CLRSUS_Msk (0x200UL) /*!< CLRSUS (Bitfield-Mask: 0x01) */ + #define R_USBF_CHa_CHCTRL_SETREN_Pos (12UL) /*!< SETREN (Bit 12) */ + #define R_USBF_CHa_CHCTRL_SETREN_Msk (0x1000UL) /*!< SETREN (Bitfield-Mask: 0x01) */ + #define R_USBF_CHa_CHCTRL_SETSSWPRQ_Pos (14UL) /*!< SETSSWPRQ (Bit 14) */ + #define R_USBF_CHa_CHCTRL_SETSSWPRQ_Msk (0x4000UL) /*!< SETSSWPRQ (Bitfield-Mask: 0x01) */ + #define R_USBF_CHa_CHCTRL_SETINTM_Pos (16UL) /*!< SETINTM (Bit 16) */ + #define R_USBF_CHa_CHCTRL_SETINTM_Msk (0x10000UL) /*!< SETINTM (Bitfield-Mask: 0x01) */ + #define R_USBF_CHa_CHCTRL_CLRINTM_Pos (17UL) /*!< CLRINTM (Bit 17) */ + #define R_USBF_CHa_CHCTRL_CLRINTM_Msk (0x20000UL) /*!< CLRINTM (Bitfield-Mask: 0x01) */ + #define R_USBF_CHa_CHCTRL_SETDMARQM_Pos (18UL) /*!< SETDMARQM (Bit 18) */ + #define R_USBF_CHa_CHCTRL_SETDMARQM_Msk (0x40000UL) /*!< SETDMARQM (Bitfield-Mask: 0x01) */ + #define R_USBF_CHa_CHCTRL_CLRDMARQM_Pos (19UL) /*!< CLRDMARQM (Bit 19) */ + #define R_USBF_CHa_CHCTRL_CLRDMARQM_Msk (0x80000UL) /*!< CLRDMARQM (Bitfield-Mask: 0x01) */ +/* ========================================================= CHCFG ========================================================= */ + #define R_USBF_CHa_CHCFG_SEL_Pos (0UL) /*!< SEL (Bit 0) */ + #define R_USBF_CHa_CHCFG_SEL_Msk (0x1UL) /*!< SEL (Bitfield-Mask: 0x01) */ + #define R_USBF_CHa_CHCFG_REQD_Pos (3UL) /*!< REQD (Bit 3) */ + #define R_USBF_CHa_CHCFG_REQD_Msk (0x8UL) /*!< REQD (Bitfield-Mask: 0x01) */ + #define R_USBF_CHa_CHCFG_LOEN_Pos (4UL) /*!< LOEN (Bit 4) */ + #define R_USBF_CHa_CHCFG_LOEN_Msk (0x10UL) /*!< LOEN (Bitfield-Mask: 0x01) */ + #define R_USBF_CHa_CHCFG_HIEN_Pos (5UL) /*!< HIEN (Bit 5) */ + #define R_USBF_CHa_CHCFG_HIEN_Msk (0x20UL) /*!< HIEN (Bitfield-Mask: 0x01) */ + #define R_USBF_CHa_CHCFG_LVL_Pos (6UL) /*!< LVL (Bit 6) */ + #define R_USBF_CHa_CHCFG_LVL_Msk (0x40UL) /*!< LVL (Bitfield-Mask: 0x01) */ + #define R_USBF_CHa_CHCFG_AM_Pos (8UL) /*!< AM (Bit 8) */ + #define R_USBF_CHa_CHCFG_AM_Msk (0x700UL) /*!< AM (Bitfield-Mask: 0x07) */ + #define R_USBF_CHa_CHCFG_DRRP_Pos (11UL) /*!< DRRP (Bit 11) */ + #define R_USBF_CHa_CHCFG_DRRP_Msk (0x800UL) /*!< DRRP (Bitfield-Mask: 0x01) */ + #define R_USBF_CHa_CHCFG_SDS_Pos (12UL) /*!< SDS (Bit 12) */ + #define R_USBF_CHa_CHCFG_SDS_Msk (0xf000UL) /*!< SDS (Bitfield-Mask: 0x0f) */ + #define R_USBF_CHa_CHCFG_DDS_Pos (16UL) /*!< DDS (Bit 16) */ + #define R_USBF_CHa_CHCFG_DDS_Msk (0xf0000UL) /*!< DDS (Bitfield-Mask: 0x0f) */ + #define R_USBF_CHa_CHCFG_SAD_Pos (20UL) /*!< SAD (Bit 20) */ + #define R_USBF_CHa_CHCFG_SAD_Msk (0x100000UL) /*!< SAD (Bitfield-Mask: 0x01) */ + #define R_USBF_CHa_CHCFG_DAD_Pos (21UL) /*!< DAD (Bit 21) */ + #define R_USBF_CHa_CHCFG_DAD_Msk (0x200000UL) /*!< DAD (Bitfield-Mask: 0x01) */ + #define R_USBF_CHa_CHCFG_TM_Pos (22UL) /*!< TM (Bit 22) */ + #define R_USBF_CHa_CHCFG_TM_Msk (0x400000UL) /*!< TM (Bitfield-Mask: 0x01) */ + #define R_USBF_CHa_CHCFG_WONLY_Pos (23UL) /*!< WONLY (Bit 23) */ + #define R_USBF_CHa_CHCFG_WONLY_Msk (0x800000UL) /*!< WONLY (Bitfield-Mask: 0x01) */ + #define R_USBF_CHa_CHCFG_DEM_Pos (24UL) /*!< DEM (Bit 24) */ + #define R_USBF_CHa_CHCFG_DEM_Msk (0x1000000UL) /*!< DEM (Bitfield-Mask: 0x01) */ + #define R_USBF_CHa_CHCFG_DIM_Pos (26UL) /*!< DIM (Bit 26) */ + #define R_USBF_CHa_CHCFG_DIM_Msk (0x4000000UL) /*!< DIM (Bitfield-Mask: 0x01) */ + #define R_USBF_CHa_CHCFG_SBE_Pos (27UL) /*!< SBE (Bit 27) */ + #define R_USBF_CHa_CHCFG_SBE_Msk (0x8000000UL) /*!< SBE (Bitfield-Mask: 0x01) */ + #define R_USBF_CHa_CHCFG_RSEL_Pos (28UL) /*!< RSEL (Bit 28) */ + #define R_USBF_CHa_CHCFG_RSEL_Msk (0x10000000UL) /*!< RSEL (Bitfield-Mask: 0x01) */ + #define R_USBF_CHa_CHCFG_RSW_Pos (29UL) /*!< RSW (Bit 29) */ + #define R_USBF_CHa_CHCFG_RSW_Msk (0x20000000UL) /*!< RSW (Bitfield-Mask: 0x01) */ + #define R_USBF_CHa_CHCFG_REN_Pos (30UL) /*!< REN (Bit 30) */ + #define R_USBF_CHa_CHCFG_REN_Msk (0x40000000UL) /*!< REN (Bitfield-Mask: 0x01) */ + #define R_USBF_CHa_CHCFG_DMS_Pos (31UL) /*!< DMS (Bit 31) */ + #define R_USBF_CHa_CHCFG_DMS_Msk (0x80000000UL) /*!< DMS (Bitfield-Mask: 0x01) */ +/* ======================================================== CHITVL ========================================================= */ + #define R_USBF_CHa_CHITVL_ITVL_Pos (0UL) /*!< ITVL (Bit 0) */ + #define R_USBF_CHa_CHITVL_ITVL_Msk (0xffffUL) /*!< ITVL (Bitfield-Mask: 0xffff) */ +/* ========================================================= CHEXT ========================================================= */ + #define R_USBF_CHa_CHEXT_SPR_Pos (0UL) /*!< SPR (Bit 0) */ + #define R_USBF_CHa_CHEXT_SPR_Msk (0xfUL) /*!< SPR (Bitfield-Mask: 0x0f) */ + #define R_USBF_CHa_CHEXT_DPR_Pos (8UL) /*!< DPR (Bit 8) */ + #define R_USBF_CHa_CHEXT_DPR_Msk (0xf00UL) /*!< DPR (Bitfield-Mask: 0x0f) */ +/* ========================================================= NXLA ========================================================== */ + #define R_USBF_CHa_NXLA_NXLA_Pos (0UL) /*!< NXLA (Bit 0) */ + #define R_USBF_CHa_NXLA_NXLA_Msk (0xffffffffUL) /*!< NXLA (Bitfield-Mask: 0xffffffff) */ +/* ========================================================= CRLA ========================================================== */ + #define R_USBF_CHa_CRLA_CRLA_Pos (0UL) /*!< CRLA (Bit 0) */ + #define R_USBF_CHa_CRLA_CRLA_Msk (0xffffffffUL) /*!< CRLA (Bitfield-Mask: 0xffffffff) */ + +/* =========================================================================================================================== */ +/* ================ CHb ================ */ +/* =========================================================================================================================== */ + +/* ========================================================= SCNT ========================================================== */ + #define R_USBF_CHb_SCNT_SCNT_Pos (0UL) /*!< SCNT (Bit 0) */ + #define R_USBF_CHb_SCNT_SCNT_Msk (0xffffffffUL) /*!< SCNT (Bitfield-Mask: 0xffffffff) */ +/* ========================================================= SSKP ========================================================== */ + #define R_USBF_CHb_SSKP_SSKP_Pos (0UL) /*!< SSKP (Bit 0) */ + #define R_USBF_CHb_SSKP_SSKP_Msk (0xffffffffUL) /*!< SSKP (Bitfield-Mask: 0xffffffff) */ +/* ========================================================= DCNT ========================================================== */ + #define R_USBF_CHb_DCNT_DCNT_Pos (0UL) /*!< DCNT (Bit 0) */ + #define R_USBF_CHb_DCNT_DCNT_Msk (0xffffffffUL) /*!< DCNT (Bitfield-Mask: 0xffffffff) */ +/* ========================================================= DSKP ========================================================== */ + #define R_USBF_CHb_DSKP_DSKP_Pos (0UL) /*!< DSKP (Bit 0) */ + #define R_USBF_CHb_DSKP_DSKP_Msk (0xffffffffUL) /*!< DSKP (Bitfield-Mask: 0xffffffff) */ + +/* =========================================================================================================================== */ +/* ================ CSa ================ */ +/* =========================================================================================================================== */ + +/* ======================================================== CMCFG0 ========================================================= */ + #define R_XSPI0_CSa_CMCFG0_FFMT_Pos (0UL) /*!< FFMT (Bit 0) */ + #define R_XSPI0_CSa_CMCFG0_FFMT_Msk (0x3UL) /*!< FFMT (Bitfield-Mask: 0x03) */ + #define R_XSPI0_CSa_CMCFG0_ADDSIZE_Pos (2UL) /*!< ADDSIZE (Bit 2) */ + #define R_XSPI0_CSa_CMCFG0_ADDSIZE_Msk (0xcUL) /*!< ADDSIZE (Bitfield-Mask: 0x03) */ + #define R_XSPI0_CSa_CMCFG0_ADDRPEN_Pos (16UL) /*!< ADDRPEN (Bit 16) */ + #define R_XSPI0_CSa_CMCFG0_ADDRPEN_Msk (0xff0000UL) /*!< ADDRPEN (Bitfield-Mask: 0xff) */ + #define R_XSPI0_CSa_CMCFG0_ADDRPCD_Pos (24UL) /*!< ADDRPCD (Bit 24) */ + #define R_XSPI0_CSa_CMCFG0_ADDRPCD_Msk (0xff000000UL) /*!< ADDRPCD (Bitfield-Mask: 0xff) */ +/* ======================================================== CMCFG1 ========================================================= */ + #define R_XSPI0_CSa_CMCFG1_RDCMD_Pos (0UL) /*!< RDCMD (Bit 0) */ + #define R_XSPI0_CSa_CMCFG1_RDCMD_Msk (0xffffUL) /*!< RDCMD (Bitfield-Mask: 0xffff) */ + #define R_XSPI0_CSa_CMCFG1_RDLATE_Pos (16UL) /*!< RDLATE (Bit 16) */ + #define R_XSPI0_CSa_CMCFG1_RDLATE_Msk (0x1f0000UL) /*!< RDLATE (Bitfield-Mask: 0x1f) */ +/* ======================================================== CMCFG2 ========================================================= */ + #define R_XSPI0_CSa_CMCFG2_WRCMD_Pos (0UL) /*!< WRCMD (Bit 0) */ + #define R_XSPI0_CSa_CMCFG2_WRCMD_Msk (0xffffUL) /*!< WRCMD (Bitfield-Mask: 0xffff) */ + #define R_XSPI0_CSa_CMCFG2_WRLATE_Pos (16UL) /*!< WRLATE (Bit 16) */ + #define R_XSPI0_CSa_CMCFG2_WRLATE_Msk (0x1f0000UL) /*!< WRLATE (Bitfield-Mask: 0x1f) */ + +/* =========================================================================================================================== */ +/* ================ BUF ================ */ +/* =========================================================================================================================== */ + +/* ========================================================== CDT ========================================================== */ + #define R_XSPI0_BUF_CDT_CMDSIZE_Pos (0UL) /*!< CMDSIZE (Bit 0) */ + #define R_XSPI0_BUF_CDT_CMDSIZE_Msk (0x3UL) /*!< CMDSIZE (Bitfield-Mask: 0x03) */ + #define R_XSPI0_BUF_CDT_ADDSIZE_Pos (2UL) /*!< ADDSIZE (Bit 2) */ + #define R_XSPI0_BUF_CDT_ADDSIZE_Msk (0x1cUL) /*!< ADDSIZE (Bitfield-Mask: 0x07) */ + #define R_XSPI0_BUF_CDT_DATASIZE_Pos (5UL) /*!< DATASIZE (Bit 5) */ + #define R_XSPI0_BUF_CDT_DATASIZE_Msk (0x1e0UL) /*!< DATASIZE (Bitfield-Mask: 0x0f) */ + #define R_XSPI0_BUF_CDT_LATE_Pos (9UL) /*!< LATE (Bit 9) */ + #define R_XSPI0_BUF_CDT_LATE_Msk (0x3e00UL) /*!< LATE (Bitfield-Mask: 0x1f) */ + #define R_XSPI0_BUF_CDT_TRTYPE_Pos (15UL) /*!< TRTYPE (Bit 15) */ + #define R_XSPI0_BUF_CDT_TRTYPE_Msk (0x8000UL) /*!< TRTYPE (Bitfield-Mask: 0x01) */ + #define R_XSPI0_BUF_CDT_CMD_Pos (16UL) /*!< CMD (Bit 16) */ + #define R_XSPI0_BUF_CDT_CMD_Msk (0xffff0000UL) /*!< CMD (Bitfield-Mask: 0xffff) */ +/* ========================================================== CDA ========================================================== */ + #define R_XSPI0_BUF_CDA_ADD_Pos (0UL) /*!< ADD (Bit 0) */ + #define R_XSPI0_BUF_CDA_ADD_Msk (0xffffffffUL) /*!< ADD (Bitfield-Mask: 0xffffffff) */ +/* ========================================================= CDD0 ========================================================== */ + #define R_XSPI0_BUF_CDD0_DATA_Pos (0UL) /*!< DATA (Bit 0) */ + #define R_XSPI0_BUF_CDD0_DATA_Msk (0xffffffffUL) /*!< DATA (Bitfield-Mask: 0xffffffff) */ +/* ========================================================= CDD1 ========================================================== */ + #define R_XSPI0_BUF_CDD1_DATA_Pos (0UL) /*!< DATA (Bit 0) */ + #define R_XSPI0_BUF_CDD1_DATA_Msk (0xffffffffUL) /*!< DATA (Bitfield-Mask: 0xffffffff) */ + +/* =========================================================================================================================== */ +/* ================ CSb ================ */ +/* =========================================================================================================================== */ + +/* ======================================================== CCCTL0 ========================================================= */ + #define R_XSPI0_CSb_CCCTL0_CAEN_Pos (0UL) /*!< CAEN (Bit 0) */ + #define R_XSPI0_CSb_CCCTL0_CAEN_Msk (0x1UL) /*!< CAEN (Bitfield-Mask: 0x01) */ + #define R_XSPI0_CSb_CCCTL0_CANOWR_Pos (1UL) /*!< CANOWR (Bit 1) */ + #define R_XSPI0_CSb_CCCTL0_CANOWR_Msk (0x2UL) /*!< CANOWR (Bitfield-Mask: 0x01) */ + #define R_XSPI0_CSb_CCCTL0_CAITV_Pos (8UL) /*!< CAITV (Bit 8) */ + #define R_XSPI0_CSb_CCCTL0_CAITV_Msk (0x1f00UL) /*!< CAITV (Bitfield-Mask: 0x1f) */ + #define R_XSPI0_CSb_CCCTL0_CASFTSTA_Pos (16UL) /*!< CASFTSTA (Bit 16) */ + #define R_XSPI0_CSb_CCCTL0_CASFTSTA_Msk (0x1f0000UL) /*!< CASFTSTA (Bitfield-Mask: 0x1f) */ + #define R_XSPI0_CSb_CCCTL0_CASFTEND_Pos (24UL) /*!< CASFTEND (Bit 24) */ + #define R_XSPI0_CSb_CCCTL0_CASFTEND_Msk (0x1f000000UL) /*!< CASFTEND (Bitfield-Mask: 0x1f) */ +/* ======================================================== CCCTL1 ========================================================= */ + #define R_XSPI0_CSb_CCCTL1_CACMDSIZE_Pos (0UL) /*!< CACMDSIZE (Bit 0) */ + #define R_XSPI0_CSb_CCCTL1_CACMDSIZE_Msk (0x3UL) /*!< CACMDSIZE (Bitfield-Mask: 0x03) */ + #define R_XSPI0_CSb_CCCTL1_CAADDSIZE_Pos (2UL) /*!< CAADDSIZE (Bit 2) */ + #define R_XSPI0_CSb_CCCTL1_CAADDSIZE_Msk (0x1cUL) /*!< CAADDSIZE (Bitfield-Mask: 0x07) */ + #define R_XSPI0_CSb_CCCTL1_CADATASIZE_Pos (5UL) /*!< CADATASIZE (Bit 5) */ + #define R_XSPI0_CSb_CCCTL1_CADATASIZE_Msk (0x1e0UL) /*!< CADATASIZE (Bitfield-Mask: 0x0f) */ + #define R_XSPI0_CSb_CCCTL1_CAWRLATE_Pos (16UL) /*!< CAWRLATE (Bit 16) */ + #define R_XSPI0_CSb_CCCTL1_CAWRLATE_Msk (0x1f0000UL) /*!< CAWRLATE (Bitfield-Mask: 0x1f) */ + #define R_XSPI0_CSb_CCCTL1_CARDLATE_Pos (24UL) /*!< CARDLATE (Bit 24) */ + #define R_XSPI0_CSb_CCCTL1_CARDLATE_Msk (0x1f000000UL) /*!< CARDLATE (Bitfield-Mask: 0x1f) */ +/* ======================================================== CCCTL2 ========================================================= */ + #define R_XSPI0_CSb_CCCTL2_CAWRCMD_Pos (0UL) /*!< CAWRCMD (Bit 0) */ + #define R_XSPI0_CSb_CCCTL2_CAWRCMD_Msk (0xffffUL) /*!< CAWRCMD (Bitfield-Mask: 0xffff) */ + #define R_XSPI0_CSb_CCCTL2_CARDCMD_Pos (16UL) /*!< CARDCMD (Bit 16) */ + #define R_XSPI0_CSb_CCCTL2_CARDCMD_Msk (0xffff0000UL) /*!< CARDCMD (Bitfield-Mask: 0xffff) */ +/* ======================================================== CCCTL3 ========================================================= */ + #define R_XSPI0_CSb_CCCTL3_CAADD_Pos (0UL) /*!< CAADD (Bit 0) */ + #define R_XSPI0_CSb_CCCTL3_CAADD_Msk (0xffffffffUL) /*!< CAADD (Bitfield-Mask: 0xffffffff) */ +/* ======================================================== CCCTL4 ========================================================= */ + #define R_XSPI0_CSb_CCCTL4_CADATA_Pos (0UL) /*!< CADATA (Bit 0) */ + #define R_XSPI0_CSb_CCCTL4_CADATA_Msk (0xffffffffUL) /*!< CADATA (Bitfield-Mask: 0xffffffff) */ +/* ======================================================== CCCTL5 ========================================================= */ + #define R_XSPI0_CSb_CCCTL5_CADATA_Pos (0UL) /*!< CADATA (Bit 0) */ + #define R_XSPI0_CSb_CCCTL5_CADATA_Msk (0xffffffffUL) /*!< CADATA (Bitfield-Mask: 0xffffffff) */ +/* ======================================================== CCCTL6 ========================================================= */ + #define R_XSPI0_CSb_CCCTL6_CADATA_Pos (0UL) /*!< CADATA (Bit 0) */ + #define R_XSPI0_CSb_CCCTL6_CADATA_Msk (0xffffffffUL) /*!< CADATA (Bitfield-Mask: 0xffffffff) */ +/* ======================================================== CCCTL7 ========================================================= */ + #define R_XSPI0_CSb_CCCTL7_CADATA_Pos (0UL) /*!< CADATA (Bit 0) */ + #define R_XSPI0_CSb_CCCTL7_CADATA_Msk (0xffffffffUL) /*!< CADATA (Bitfield-Mask: 0xffffffff) */ + +/* =========================================================================================================================== */ +/* ================ W ================ */ +/* =========================================================================================================================== */ + +/* ======================================================= EC710CTL ======================================================== */ + #define R_SYSRAM0_W_EC710CTL_ECEMF_Pos (0UL) /*!< ECEMF (Bit 0) */ + #define R_SYSRAM0_W_EC710CTL_ECEMF_Msk (0x1UL) /*!< ECEMF (Bitfield-Mask: 0x01) */ + #define R_SYSRAM0_W_EC710CTL_ECER1F_Pos (1UL) /*!< ECER1F (Bit 1) */ + #define R_SYSRAM0_W_EC710CTL_ECER1F_Msk (0x2UL) /*!< ECER1F (Bitfield-Mask: 0x01) */ + #define R_SYSRAM0_W_EC710CTL_ECER2F_Pos (2UL) /*!< ECER2F (Bit 2) */ + #define R_SYSRAM0_W_EC710CTL_ECER2F_Msk (0x4UL) /*!< ECER2F (Bitfield-Mask: 0x01) */ + #define R_SYSRAM0_W_EC710CTL_EC1EDIC_Pos (3UL) /*!< EC1EDIC (Bit 3) */ + #define R_SYSRAM0_W_EC710CTL_EC1EDIC_Msk (0x8UL) /*!< EC1EDIC (Bitfield-Mask: 0x01) */ + #define R_SYSRAM0_W_EC710CTL_EC2EDIC_Pos (4UL) /*!< EC2EDIC (Bit 4) */ + #define R_SYSRAM0_W_EC710CTL_EC2EDIC_Msk (0x10UL) /*!< EC2EDIC (Bitfield-Mask: 0x01) */ + #define R_SYSRAM0_W_EC710CTL_EC1ECP_Pos (5UL) /*!< EC1ECP (Bit 5) */ + #define R_SYSRAM0_W_EC710CTL_EC1ECP_Msk (0x20UL) /*!< EC1ECP (Bitfield-Mask: 0x01) */ + #define R_SYSRAM0_W_EC710CTL_ECERVF_Pos (6UL) /*!< ECERVF (Bit 6) */ + #define R_SYSRAM0_W_EC710CTL_ECERVF_Msk (0x40UL) /*!< ECERVF (Bitfield-Mask: 0x01) */ + #define R_SYSRAM0_W_EC710CTL_ECTHM_Pos (7UL) /*!< ECTHM (Bit 7) */ + #define R_SYSRAM0_W_EC710CTL_ECTHM_Msk (0x80UL) /*!< ECTHM (Bitfield-Mask: 0x01) */ + #define R_SYSRAM0_W_EC710CTL_ECER1C_Pos (9UL) /*!< ECER1C (Bit 9) */ + #define R_SYSRAM0_W_EC710CTL_ECER1C_Msk (0x200UL) /*!< ECER1C (Bitfield-Mask: 0x01) */ + #define R_SYSRAM0_W_EC710CTL_ECER2C_Pos (10UL) /*!< ECER2C (Bit 10) */ + #define R_SYSRAM0_W_EC710CTL_ECER2C_Msk (0x400UL) /*!< ECER2C (Bitfield-Mask: 0x01) */ + #define R_SYSRAM0_W_EC710CTL_ECOVFF_Pos (11UL) /*!< ECOVFF (Bit 11) */ + #define R_SYSRAM0_W_EC710CTL_ECOVFF_Msk (0x800UL) /*!< ECOVFF (Bitfield-Mask: 0x01) */ + #define R_SYSRAM0_W_EC710CTL_EMCA_Pos (14UL) /*!< EMCA (Bit 14) */ + #define R_SYSRAM0_W_EC710CTL_EMCA_Msk (0xc000UL) /*!< EMCA (Bitfield-Mask: 0x03) */ + #define R_SYSRAM0_W_EC710CTL_ECEDF0_Pos (16UL) /*!< ECEDF0 (Bit 16) */ + #define R_SYSRAM0_W_EC710CTL_ECEDF0_Msk (0x30000UL) /*!< ECEDF0 (Bitfield-Mask: 0x03) */ + #define R_SYSRAM0_W_EC710CTL_ECEDF1_Pos (18UL) /*!< ECEDF1 (Bit 18) */ + #define R_SYSRAM0_W_EC710CTL_ECEDF1_Msk (0xc0000UL) /*!< ECEDF1 (Bitfield-Mask: 0x03) */ + #define R_SYSRAM0_W_EC710CTL_ECEDF2_Pos (20UL) /*!< ECEDF2 (Bit 20) */ + #define R_SYSRAM0_W_EC710CTL_ECEDF2_Msk (0x300000UL) /*!< ECEDF2 (Bitfield-Mask: 0x03) */ + #define R_SYSRAM0_W_EC710CTL_ECEDF3_Pos (22UL) /*!< ECEDF3 (Bit 22) */ + #define R_SYSRAM0_W_EC710CTL_ECEDF3_Msk (0xc00000UL) /*!< ECEDF3 (Bitfield-Mask: 0x03) */ + #define R_SYSRAM0_W_EC710CTL_ECEDF4_Pos (24UL) /*!< ECEDF4 (Bit 24) */ + #define R_SYSRAM0_W_EC710CTL_ECEDF4_Msk (0x3000000UL) /*!< ECEDF4 (Bitfield-Mask: 0x03) */ + #define R_SYSRAM0_W_EC710CTL_ECEDF5_Pos (26UL) /*!< ECEDF5 (Bit 26) */ + #define R_SYSRAM0_W_EC710CTL_ECEDF5_Msk (0xc000000UL) /*!< ECEDF5 (Bitfield-Mask: 0x03) */ + #define R_SYSRAM0_W_EC710CTL_ECEDF6_Pos (28UL) /*!< ECEDF6 (Bit 28) */ + #define R_SYSRAM0_W_EC710CTL_ECEDF6_Msk (0x30000000UL) /*!< ECEDF6 (Bitfield-Mask: 0x03) */ + #define R_SYSRAM0_W_EC710CTL_ECEDF7_Pos (30UL) /*!< ECEDF7 (Bit 30) */ + #define R_SYSRAM0_W_EC710CTL_ECEDF7_Msk (0xc0000000UL) /*!< ECEDF7 (Bitfield-Mask: 0x03) */ +/* ======================================================= EC710TMC ======================================================== */ + #define R_SYSRAM0_W_EC710TMC_ECREIS_Pos (0UL) /*!< ECREIS (Bit 0) */ + #define R_SYSRAM0_W_EC710TMC_ECREIS_Msk (0x1UL) /*!< ECREIS (Bitfield-Mask: 0x01) */ + #define R_SYSRAM0_W_EC710TMC_ECDCS_Pos (1UL) /*!< ECDCS (Bit 1) */ + #define R_SYSRAM0_W_EC710TMC_ECDCS_Msk (0x2UL) /*!< ECDCS (Bitfield-Mask: 0x01) */ + #define R_SYSRAM0_W_EC710TMC_ECENS_Pos (2UL) /*!< ECENS (Bit 2) */ + #define R_SYSRAM0_W_EC710TMC_ECENS_Msk (0x4UL) /*!< ECENS (Bitfield-Mask: 0x01) */ + #define R_SYSRAM0_W_EC710TMC_ECREOS_Pos (3UL) /*!< ECREOS (Bit 3) */ + #define R_SYSRAM0_W_EC710TMC_ECREOS_Msk (0x8UL) /*!< ECREOS (Bitfield-Mask: 0x01) */ + #define R_SYSRAM0_W_EC710TMC_ECTRRS_Pos (4UL) /*!< ECTRRS (Bit 4) */ + #define R_SYSRAM0_W_EC710TMC_ECTRRS_Msk (0x10UL) /*!< ECTRRS (Bitfield-Mask: 0x01) */ + #define R_SYSRAM0_W_EC710TMC_ECTMCE_Pos (7UL) /*!< ECTMCE (Bit 7) */ + #define R_SYSRAM0_W_EC710TMC_ECTMCE_Msk (0x80UL) /*!< ECTMCE (Bitfield-Mask: 0x01) */ + #define R_SYSRAM0_W_EC710TMC_ETMA_Pos (14UL) /*!< ETMA (Bit 14) */ + #define R_SYSRAM0_W_EC710TMC_ETMA_Msk (0xc000UL) /*!< ETMA (Bitfield-Mask: 0x03) */ +/* ======================================================= EC710TRC ======================================================== */ + #define R_SYSRAM0_W_EC710TRC_ECERDB_Pos (0UL) /*!< ECERDB (Bit 0) */ + #define R_SYSRAM0_W_EC710TRC_ECERDB_Msk (0x7fUL) /*!< ECERDB (Bitfield-Mask: 0x7f) */ + #define R_SYSRAM0_W_EC710TRC_ECECRD_Pos (8UL) /*!< ECECRD (Bit 8) */ + #define R_SYSRAM0_W_EC710TRC_ECECRD_Msk (0x7f00UL) /*!< ECECRD (Bitfield-Mask: 0x7f) */ + #define R_SYSRAM0_W_EC710TRC_ECHORD_Pos (16UL) /*!< ECHORD (Bit 16) */ + #define R_SYSRAM0_W_EC710TRC_ECHORD_Msk (0x7f0000UL) /*!< ECHORD (Bitfield-Mask: 0x7f) */ + #define R_SYSRAM0_W_EC710TRC_ECSYND_Pos (24UL) /*!< ECSYND (Bit 24) */ + #define R_SYSRAM0_W_EC710TRC_ECSYND_Msk (0x7f000000UL) /*!< ECSYND (Bitfield-Mask: 0x7f) */ +/* ======================================================= EC710TED ======================================================== */ + #define R_SYSRAM0_W_EC710TED_ECEDB_Pos (0UL) /*!< ECEDB (Bit 0) */ + #define R_SYSRAM0_W_EC710TED_ECEDB_Msk (0xffffffffUL) /*!< ECEDB (Bitfield-Mask: 0xffffffff) */ +/* ======================================================= EC710EAD ======================================================== */ + #define R_SYSRAM0_W_EC710EAD_ECEAD_Pos (0UL) /*!< ECEAD (Bit 0) */ + #define R_SYSRAM0_W_EC710EAD_ECEAD_Msk (0x7fffUL) /*!< ECEAD (Bitfield-Mask: 0x7fff) */ + +/* =========================================================================================================================== */ +/* ================ RGN ================ */ +/* =========================================================================================================================== */ + +/* ========================================================= STADD ========================================================= */ + #define R_MPU0_RGN_STADD_RDPR_Pos (0UL) /*!< RDPR (Bit 0) */ + #define R_MPU0_RGN_STADD_RDPR_Msk (0x1UL) /*!< RDPR (Bitfield-Mask: 0x01) */ + #define R_MPU0_RGN_STADD_WRPR_Pos (1UL) /*!< WRPR (Bit 1) */ + #define R_MPU0_RGN_STADD_WRPR_Msk (0x2UL) /*!< WRPR (Bitfield-Mask: 0x01) */ + #define R_MPU0_RGN_STADD_STADDR_Pos (10UL) /*!< STADDR (Bit 10) */ + #define R_MPU0_RGN_STADD_STADDR_Msk (0xfffffc00UL) /*!< STADDR (Bitfield-Mask: 0x3fffff) */ +/* ======================================================== ENDADD ========================================================= */ + #define R_MPU0_RGN_ENDADD_ENDADDR_Pos (10UL) /*!< ENDADDR (Bit 10) */ + #define R_MPU0_RGN_ENDADD_ENDADDR_Msk (0xfffffc00UL) /*!< ENDADDR (Bitfield-Mask: 0x3fffff) */ + +/* =========================================================================================================================== */ +/* ================ CH ================ */ +/* =========================================================================================================================== */ + +/* ========================================================= DSICR ========================================================= */ + #define R_DSMIF0_CH_DSICR_IOEL_Pos (0UL) /*!< IOEL (Bit 0) */ + #define R_DSMIF0_CH_DSICR_IOEL_Msk (0x1UL) /*!< IOEL (Bitfield-Mask: 0x01) */ + #define R_DSMIF0_CH_DSICR_IOEH_Pos (1UL) /*!< IOEH (Bit 1) */ + #define R_DSMIF0_CH_DSICR_IOEH_Msk (0x2UL) /*!< IOEH (Bitfield-Mask: 0x01) */ + #define R_DSMIF0_CH_DSICR_ISE_Pos (2UL) /*!< ISE (Bit 2) */ + #define R_DSMIF0_CH_DSICR_ISE_Msk (0x4UL) /*!< ISE (Bitfield-Mask: 0x01) */ + #define R_DSMIF0_CH_DSICR_IUE_Pos (3UL) /*!< IUE (Bit 3) */ + #define R_DSMIF0_CH_DSICR_IUE_Msk (0x8UL) /*!< IUE (Bitfield-Mask: 0x01) */ +/* ======================================================== DSCMCCR ======================================================== */ + #define R_DSMIF0_CH_DSCMCCR_CKDIR_Pos (0UL) /*!< CKDIR (Bit 0) */ + #define R_DSMIF0_CH_DSCMCCR_CKDIR_Msk (0x1UL) /*!< CKDIR (Bitfield-Mask: 0x01) */ + #define R_DSMIF0_CH_DSCMCCR_SEDGE_Pos (7UL) /*!< SEDGE (Bit 7) */ + #define R_DSMIF0_CH_DSCMCCR_SEDGE_Msk (0x80UL) /*!< SEDGE (Bitfield-Mask: 0x01) */ + #define R_DSMIF0_CH_DSCMCCR_CKDIV_Pos (8UL) /*!< CKDIV (Bit 8) */ + #define R_DSMIF0_CH_DSCMCCR_CKDIV_Msk (0x3f00UL) /*!< CKDIV (Bitfield-Mask: 0x3f) */ +/* ======================================================== DSCMFCR ======================================================== */ + #define R_DSMIF0_CH_DSCMFCR_CMSINC_Pos (0UL) /*!< CMSINC (Bit 0) */ + #define R_DSMIF0_CH_DSCMFCR_CMSINC_Msk (0x3UL) /*!< CMSINC (Bitfield-Mask: 0x03) */ + #define R_DSMIF0_CH_DSCMFCR_CMDEC_Pos (8UL) /*!< CMDEC (Bit 8) */ + #define R_DSMIF0_CH_DSCMFCR_CMDEC_Msk (0xff00UL) /*!< CMDEC (Bitfield-Mask: 0xff) */ + #define R_DSMIF0_CH_DSCMFCR_CMSH_Pos (16UL) /*!< CMSH (Bit 16) */ + #define R_DSMIF0_CH_DSCMFCR_CMSH_Msk (0x1f0000UL) /*!< CMSH (Bitfield-Mask: 0x1f) */ +/* ======================================================= DSCMCTCR ======================================================== */ + #define R_DSMIF0_CH_DSCMCTCR_CTSELA_Pos (0UL) /*!< CTSELA (Bit 0) */ + #define R_DSMIF0_CH_DSCMCTCR_CTSELA_Msk (0x7UL) /*!< CTSELA (Bitfield-Mask: 0x07) */ + #define R_DSMIF0_CH_DSCMCTCR_CTSELB_Pos (8UL) /*!< CTSELB (Bit 8) */ + #define R_DSMIF0_CH_DSCMCTCR_CTSELB_Msk (0x700UL) /*!< CTSELB (Bitfield-Mask: 0x07) */ + #define R_DSMIF0_CH_DSCMCTCR_DITSEL_Pos (16UL) /*!< DITSEL (Bit 16) */ + #define R_DSMIF0_CH_DSCMCTCR_DITSEL_Msk (0x30000UL) /*!< DITSEL (Bitfield-Mask: 0x03) */ + #define R_DSMIF0_CH_DSCMCTCR_DEDGE_Pos (23UL) /*!< DEDGE (Bit 23) */ + #define R_DSMIF0_CH_DSCMCTCR_DEDGE_Msk (0x800000UL) /*!< DEDGE (Bitfield-Mask: 0x01) */ +/* ======================================================== DSEDCR ========================================================= */ + #define R_DSMIF0_CH_DSEDCR_SDE_Pos (0UL) /*!< SDE (Bit 0) */ + #define R_DSMIF0_CH_DSEDCR_SDE_Msk (0x1UL) /*!< SDE (Bitfield-Mask: 0x01) */ +/* ======================================================== DSOCFCR ======================================================== */ + #define R_DSMIF0_CH_DSOCFCR_OCSINC_Pos (0UL) /*!< OCSINC (Bit 0) */ + #define R_DSMIF0_CH_DSOCFCR_OCSINC_Msk (0x3UL) /*!< OCSINC (Bitfield-Mask: 0x03) */ + #define R_DSMIF0_CH_DSOCFCR_OCDEC_Pos (8UL) /*!< OCDEC (Bit 8) */ + #define R_DSMIF0_CH_DSOCFCR_OCDEC_Msk (0xff00UL) /*!< OCDEC (Bitfield-Mask: 0xff) */ + #define R_DSMIF0_CH_DSOCFCR_OCSH_Pos (16UL) /*!< OCSH (Bit 16) */ + #define R_DSMIF0_CH_DSOCFCR_OCSH_Msk (0x1f0000UL) /*!< OCSH (Bitfield-Mask: 0x1f) */ +/* ======================================================== DSOCLTR ======================================================== */ + #define R_DSMIF0_CH_DSOCLTR_OCMPTBL_Pos (0UL) /*!< OCMPTBL (Bit 0) */ + #define R_DSMIF0_CH_DSOCLTR_OCMPTBL_Msk (0xffffUL) /*!< OCMPTBL (Bitfield-Mask: 0xffff) */ +/* ======================================================== DSOCHTR ======================================================== */ + #define R_DSMIF0_CH_DSOCHTR_OCMPTBH_Pos (0UL) /*!< OCMPTBH (Bit 0) */ + #define R_DSMIF0_CH_DSOCHTR_OCMPTBH_Msk (0xffffUL) /*!< OCMPTBH (Bitfield-Mask: 0xffff) */ +/* ======================================================== DSSCTSR ======================================================== */ + #define R_DSMIF0_CH_DSSCTSR_SCNTL_Pos (0UL) /*!< SCNTL (Bit 0) */ + #define R_DSMIF0_CH_DSSCTSR_SCNTL_Msk (0x1fffUL) /*!< SCNTL (Bitfield-Mask: 0x1fff) */ + #define R_DSMIF0_CH_DSSCTSR_SCNTH_Pos (16UL) /*!< SCNTH (Bit 16) */ + #define R_DSMIF0_CH_DSSCTSR_SCNTH_Msk (0x1fff0000UL) /*!< SCNTH (Bitfield-Mask: 0x1fff) */ +/* ======================================================== DSODCR ========================================================= */ + #define R_DSMIF0_CH_DSODCR_ODEL_Pos (0UL) /*!< ODEL (Bit 0) */ + #define R_DSMIF0_CH_DSODCR_ODEL_Msk (0x1UL) /*!< ODEL (Bitfield-Mask: 0x01) */ + #define R_DSMIF0_CH_DSODCR_ODEH_Pos (1UL) /*!< ODEH (Bit 1) */ + #define R_DSMIF0_CH_DSODCR_ODEH_Msk (0x2UL) /*!< ODEH (Bitfield-Mask: 0x01) */ +/* ======================================================= DSCSTRTR ======================================================== */ + #define R_DSMIF0_CH_DSCSTRTR_STRTRG_Pos (0UL) /*!< STRTRG (Bit 0) */ + #define R_DSMIF0_CH_DSCSTRTR_STRTRG_Msk (0x1UL) /*!< STRTRG (Bitfield-Mask: 0x01) */ +/* ======================================================= DSCSTPTR ======================================================== */ + #define R_DSMIF0_CH_DSCSTPTR_STPTRG_Pos (0UL) /*!< STPTRG (Bit 0) */ + #define R_DSMIF0_CH_DSCSTPTR_STPTRG_Msk (0x1UL) /*!< STPTRG (Bitfield-Mask: 0x01) */ +/* ========================================================= DSCDR ========================================================= */ + #define R_DSMIF0_CH_DSCDR_ADDR_Pos (0UL) /*!< ADDR (Bit 0) */ + #define R_DSMIF0_CH_DSCDR_ADDR_Msk (0xffffUL) /*!< ADDR (Bitfield-Mask: 0xffff) */ +/* ======================================================== DSCCDRA ======================================================== */ + #define R_DSMIF0_CH_DSCCDRA_CDRA_Pos (0UL) /*!< CDRA (Bit 0) */ + #define R_DSMIF0_CH_DSCCDRA_CDRA_Msk (0xffffUL) /*!< CDRA (Bitfield-Mask: 0xffff) */ +/* ======================================================== DSCCDRB ======================================================== */ + #define R_DSMIF0_CH_DSCCDRB_CDRB_Pos (0UL) /*!< CDRB (Bit 0) */ + #define R_DSMIF0_CH_DSCCDRB_CDRB_Msk (0xffffUL) /*!< CDRB (Bitfield-Mask: 0xffff) */ +/* ======================================================== DSOCDR ========================================================= */ + #define R_DSMIF0_CH_DSOCDR_ODR_Pos (0UL) /*!< ODR (Bit 0) */ + #define R_DSMIF0_CH_DSOCDR_ODR_Msk (0xffffUL) /*!< ODR (Bitfield-Mask: 0xffff) */ +/* ======================================================== DSCOCDR ======================================================== */ + #define R_DSMIF0_CH_DSCOCDR_CODR_Pos (0UL) /*!< CODR (Bit 0) */ + #define R_DSMIF0_CH_DSCOCDR_CODR_Msk (0xffffUL) /*!< CODR (Bitfield-Mask: 0xffff) */ +/* ========================================================= DSCSR ========================================================= */ + #define R_DSMIF0_CH_DSCSR_DUF_Pos (0UL) /*!< DUF (Bit 0) */ + #define R_DSMIF0_CH_DSCSR_DUF_Msk (0x1UL) /*!< DUF (Bitfield-Mask: 0x01) */ + #define R_DSMIF0_CH_DSCSR_OCFL_Pos (1UL) /*!< OCFL (Bit 1) */ + #define R_DSMIF0_CH_DSCSR_OCFL_Msk (0x2UL) /*!< OCFL (Bitfield-Mask: 0x01) */ + #define R_DSMIF0_CH_DSCSR_OCFH_Pos (2UL) /*!< OCFH (Bit 2) */ + #define R_DSMIF0_CH_DSCSR_OCFH_Msk (0x4UL) /*!< OCFH (Bitfield-Mask: 0x01) */ + #define R_DSMIF0_CH_DSCSR_SCF_Pos (3UL) /*!< SCF (Bit 3) */ + #define R_DSMIF0_CH_DSCSR_SCF_Msk (0x8UL) /*!< SCF (Bitfield-Mask: 0x01) */ + #define R_DSMIF0_CH_DSCSR_CHSTATE_Pos (16UL) /*!< CHSTATE (Bit 16) */ + #define R_DSMIF0_CH_DSCSR_CHSTATE_Msk (0x10000UL) /*!< CHSTATE (Bitfield-Mask: 0x01) */ +/* ======================================================== DSCSCR ========================================================= */ + #define R_DSMIF0_CH_DSCSCR_CLRDUF_Pos (0UL) /*!< CLRDUF (Bit 0) */ + #define R_DSMIF0_CH_DSCSCR_CLRDUF_Msk (0x1UL) /*!< CLRDUF (Bitfield-Mask: 0x01) */ + #define R_DSMIF0_CH_DSCSCR_CLROCFL_Pos (1UL) /*!< CLROCFL (Bit 1) */ + #define R_DSMIF0_CH_DSCSCR_CLROCFL_Msk (0x2UL) /*!< CLROCFL (Bitfield-Mask: 0x01) */ + #define R_DSMIF0_CH_DSCSCR_CLROCFH_Pos (2UL) /*!< CLROCFH (Bit 2) */ + #define R_DSMIF0_CH_DSCSCR_CLROCFH_Msk (0x4UL) /*!< CLROCFH (Bitfield-Mask: 0x01) */ + #define R_DSMIF0_CH_DSCSCR_CLRSCF_Pos (3UL) /*!< CLRSCF (Bit 3) */ + #define R_DSMIF0_CH_DSCSCR_CLRSCF_Msk (0x8UL) /*!< CLRSCF (Bitfield-Mask: 0x01) */ + +/** @} */ /* End of group PosMask_clusters */ + +/* =========================================================================================================================== */ +/* ================ Pos/Mask Peripheral Section ================ */ +/* =========================================================================================================================== */ + +/** @addtogroup PosMask_peripherals + * @{ + */ + +/* =========================================================================================================================== */ +/* ================ R_GPT0 ================ */ +/* =========================================================================================================================== */ + +/* ========================================================= GTWP ========================================================== */ + #define R_GPT7_GTWP_WP_Pos (0UL) /*!< WP (Bit 0) */ + #define R_GPT7_GTWP_WP_Msk (0x1UL) /*!< WP (Bitfield-Mask: 0x01) */ + #define R_GPT7_GTWP_STRWP_Pos (1UL) /*!< STRWP (Bit 1) */ + #define R_GPT7_GTWP_STRWP_Msk (0x2UL) /*!< STRWP (Bitfield-Mask: 0x01) */ + #define R_GPT7_GTWP_STPWP_Pos (2UL) /*!< STPWP (Bit 2) */ + #define R_GPT7_GTWP_STPWP_Msk (0x4UL) /*!< STPWP (Bitfield-Mask: 0x01) */ + #define R_GPT7_GTWP_CLRWP_Pos (3UL) /*!< CLRWP (Bit 3) */ + #define R_GPT7_GTWP_CLRWP_Msk (0x8UL) /*!< CLRWP (Bitfield-Mask: 0x01) */ + #define R_GPT7_GTWP_CMNWP_Pos (4UL) /*!< CMNWP (Bit 4) */ + #define R_GPT7_GTWP_CMNWP_Msk (0x10UL) /*!< CMNWP (Bitfield-Mask: 0x01) */ + #define R_GPT7_GTWP_PRKEY_Pos (8UL) /*!< PRKEY (Bit 8) */ + #define R_GPT7_GTWP_PRKEY_Msk (0xff00UL) /*!< PRKEY (Bitfield-Mask: 0xff) */ +/* ========================================================= GTSTR ========================================================= */ + #define R_GPT7_GTSTR_CSTRT0_Pos (0UL) /*!< CSTRT0 (Bit 0) */ + #define R_GPT7_GTSTR_CSTRT0_Msk (0x1UL) /*!< CSTRT0 (Bitfield-Mask: 0x01) */ + #define R_GPT7_GTSTR_CSTRT1_Pos (1UL) /*!< CSTRT1 (Bit 1) */ + #define R_GPT7_GTSTR_CSTRT1_Msk (0x2UL) /*!< CSTRT1 (Bitfield-Mask: 0x01) */ + #define R_GPT7_GTSTR_CSTRT2_Pos (2UL) /*!< CSTRT2 (Bit 2) */ + #define R_GPT7_GTSTR_CSTRT2_Msk (0x4UL) /*!< CSTRT2 (Bitfield-Mask: 0x01) */ + #define R_GPT7_GTSTR_CSTRT3_Pos (3UL) /*!< CSTRT3 (Bit 3) */ + #define R_GPT7_GTSTR_CSTRT3_Msk (0x8UL) /*!< CSTRT3 (Bitfield-Mask: 0x01) */ + #define R_GPT7_GTSTR_CSTRT4_Pos (4UL) /*!< CSTRT4 (Bit 4) */ + #define R_GPT7_GTSTR_CSTRT4_Msk (0x10UL) /*!< CSTRT4 (Bitfield-Mask: 0x01) */ + #define R_GPT7_GTSTR_CSTRT5_Pos (5UL) /*!< CSTRT5 (Bit 5) */ + #define R_GPT7_GTSTR_CSTRT5_Msk (0x20UL) /*!< CSTRT5 (Bitfield-Mask: 0x01) */ + #define R_GPT7_GTSTR_CSTRT6_Pos (6UL) /*!< CSTRT6 (Bit 6) */ + #define R_GPT7_GTSTR_CSTRT6_Msk (0x40UL) /*!< CSTRT6 (Bitfield-Mask: 0x01) */ +/* ========================================================= GTSTP ========================================================= */ + #define R_GPT7_GTSTP_CSTOP0_Pos (0UL) /*!< CSTOP0 (Bit 0) */ + #define R_GPT7_GTSTP_CSTOP0_Msk (0x1UL) /*!< CSTOP0 (Bitfield-Mask: 0x01) */ + #define R_GPT7_GTSTP_CSTOP1_Pos (1UL) /*!< CSTOP1 (Bit 1) */ + #define R_GPT7_GTSTP_CSTOP1_Msk (0x2UL) /*!< CSTOP1 (Bitfield-Mask: 0x01) */ + #define R_GPT7_GTSTP_CSTOP2_Pos (2UL) /*!< CSTOP2 (Bit 2) */ + #define R_GPT7_GTSTP_CSTOP2_Msk (0x4UL) /*!< CSTOP2 (Bitfield-Mask: 0x01) */ + #define R_GPT7_GTSTP_CSTOP3_Pos (3UL) /*!< CSTOP3 (Bit 3) */ + #define R_GPT7_GTSTP_CSTOP3_Msk (0x8UL) /*!< CSTOP3 (Bitfield-Mask: 0x01) */ + #define R_GPT7_GTSTP_CSTOP4_Pos (4UL) /*!< CSTOP4 (Bit 4) */ + #define R_GPT7_GTSTP_CSTOP4_Msk (0x10UL) /*!< CSTOP4 (Bitfield-Mask: 0x01) */ + #define R_GPT7_GTSTP_CSTOP5_Pos (5UL) /*!< CSTOP5 (Bit 5) */ + #define R_GPT7_GTSTP_CSTOP5_Msk (0x20UL) /*!< CSTOP5 (Bitfield-Mask: 0x01) */ + #define R_GPT7_GTSTP_CSTOP6_Pos (6UL) /*!< CSTOP6 (Bit 6) */ + #define R_GPT7_GTSTP_CSTOP6_Msk (0x40UL) /*!< CSTOP6 (Bitfield-Mask: 0x01) */ +/* ========================================================= GTCLR ========================================================= */ + #define R_GPT7_GTCLR_CCLR0_Pos (0UL) /*!< CCLR0 (Bit 0) */ + #define R_GPT7_GTCLR_CCLR0_Msk (0x1UL) /*!< CCLR0 (Bitfield-Mask: 0x01) */ + #define R_GPT7_GTCLR_CCLR1_Pos (1UL) /*!< CCLR1 (Bit 1) */ + #define R_GPT7_GTCLR_CCLR1_Msk (0x2UL) /*!< CCLR1 (Bitfield-Mask: 0x01) */ + #define R_GPT7_GTCLR_CCLR2_Pos (2UL) /*!< CCLR2 (Bit 2) */ + #define R_GPT7_GTCLR_CCLR2_Msk (0x4UL) /*!< CCLR2 (Bitfield-Mask: 0x01) */ + #define R_GPT7_GTCLR_CCLR3_Pos (3UL) /*!< CCLR3 (Bit 3) */ + #define R_GPT7_GTCLR_CCLR3_Msk (0x8UL) /*!< CCLR3 (Bitfield-Mask: 0x01) */ + #define R_GPT7_GTCLR_CCLR4_Pos (4UL) /*!< CCLR4 (Bit 4) */ + #define R_GPT7_GTCLR_CCLR4_Msk (0x10UL) /*!< CCLR4 (Bitfield-Mask: 0x01) */ + #define R_GPT7_GTCLR_CCLR5_Pos (5UL) /*!< CCLR5 (Bit 5) */ + #define R_GPT7_GTCLR_CCLR5_Msk (0x20UL) /*!< CCLR5 (Bitfield-Mask: 0x01) */ + #define R_GPT7_GTCLR_CCLR6_Pos (6UL) /*!< CCLR6 (Bit 6) */ + #define R_GPT7_GTCLR_CCLR6_Msk (0x40UL) /*!< CCLR6 (Bitfield-Mask: 0x01) */ +/* ========================================================= GTSSR ========================================================= */ + #define R_GPT7_GTSSR_SSGTRGAFR_Pos (0UL) /*!< SSGTRGAFR (Bit 0) */ + #define R_GPT7_GTSSR_SSGTRGAFR_Msk (0x3UL) /*!< SSGTRGAFR (Bitfield-Mask: 0x03) */ + #define R_GPT7_GTSSR_SSGTRGBFR_Pos (2UL) /*!< SSGTRGBFR (Bit 2) */ + #define R_GPT7_GTSSR_SSGTRGBFR_Msk (0xcUL) /*!< SSGTRGBFR (Bitfield-Mask: 0x03) */ + #define R_GPT7_GTSSR_SSGTRGCFR_Pos (4UL) /*!< SSGTRGCFR (Bit 4) */ + #define R_GPT7_GTSSR_SSGTRGCFR_Msk (0x30UL) /*!< SSGTRGCFR (Bitfield-Mask: 0x03) */ + #define R_GPT7_GTSSR_SSGTRGDFR_Pos (6UL) /*!< SSGTRGDFR (Bit 6) */ + #define R_GPT7_GTSSR_SSGTRGDFR_Msk (0xc0UL) /*!< SSGTRGDFR (Bitfield-Mask: 0x03) */ + #define R_GPT7_GTSSR_SSCARBHL_Pos (8UL) /*!< SSCARBHL (Bit 8) */ + #define R_GPT7_GTSSR_SSCARBHL_Msk (0x300UL) /*!< SSCARBHL (Bitfield-Mask: 0x03) */ + #define R_GPT7_GTSSR_SSCAFBHL_Pos (10UL) /*!< SSCAFBHL (Bit 10) */ + #define R_GPT7_GTSSR_SSCAFBHL_Msk (0xc00UL) /*!< SSCAFBHL (Bitfield-Mask: 0x03) */ + #define R_GPT7_GTSSR_SSCBRAHL_Pos (12UL) /*!< SSCBRAHL (Bit 12) */ + #define R_GPT7_GTSSR_SSCBRAHL_Msk (0x3000UL) /*!< SSCBRAHL (Bitfield-Mask: 0x03) */ + #define R_GPT7_GTSSR_SSCBFAHL_Pos (14UL) /*!< SSCBFAHL (Bit 14) */ + #define R_GPT7_GTSSR_SSCBFAHL_Msk (0xc000UL) /*!< SSCBFAHL (Bitfield-Mask: 0x03) */ + #define R_GPT7_GTSSR_SSELCA_Pos (16UL) /*!< SSELCA (Bit 16) */ + #define R_GPT7_GTSSR_SSELCA_Msk (0x10000UL) /*!< SSELCA (Bitfield-Mask: 0x01) */ + #define R_GPT7_GTSSR_SSELCB_Pos (17UL) /*!< SSELCB (Bit 17) */ + #define R_GPT7_GTSSR_SSELCB_Msk (0x20000UL) /*!< SSELCB (Bitfield-Mask: 0x01) */ + #define R_GPT7_GTSSR_SSELCC_Pos (18UL) /*!< SSELCC (Bit 18) */ + #define R_GPT7_GTSSR_SSELCC_Msk (0x40000UL) /*!< SSELCC (Bitfield-Mask: 0x01) */ + #define R_GPT7_GTSSR_SSELCD_Pos (19UL) /*!< SSELCD (Bit 19) */ + #define R_GPT7_GTSSR_SSELCD_Msk (0x80000UL) /*!< SSELCD (Bitfield-Mask: 0x01) */ + #define R_GPT7_GTSSR_SSELCE_Pos (20UL) /*!< SSELCE (Bit 20) */ + #define R_GPT7_GTSSR_SSELCE_Msk (0x100000UL) /*!< SSELCE (Bitfield-Mask: 0x01) */ + #define R_GPT7_GTSSR_SSELCF_Pos (21UL) /*!< SSELCF (Bit 21) */ + #define R_GPT7_GTSSR_SSELCF_Msk (0x200000UL) /*!< SSELCF (Bitfield-Mask: 0x01) */ + #define R_GPT7_GTSSR_SSELCG_Pos (22UL) /*!< SSELCG (Bit 22) */ + #define R_GPT7_GTSSR_SSELCG_Msk (0x400000UL) /*!< SSELCG (Bitfield-Mask: 0x01) */ + #define R_GPT7_GTSSR_SSELCH_Pos (23UL) /*!< SSELCH (Bit 23) */ + #define R_GPT7_GTSSR_SSELCH_Msk (0x800000UL) /*!< SSELCH (Bitfield-Mask: 0x01) */ + #define R_GPT7_GTSSR_CSTRT_Pos (31UL) /*!< CSTRT (Bit 31) */ + #define R_GPT7_GTSSR_CSTRT_Msk (0x80000000UL) /*!< CSTRT (Bitfield-Mask: 0x01) */ +/* ========================================================= GTPSR ========================================================= */ + #define R_GPT7_GTPSR_PSGTRGAFR_Pos (0UL) /*!< PSGTRGAFR (Bit 0) */ + #define R_GPT7_GTPSR_PSGTRGAFR_Msk (0x3UL) /*!< PSGTRGAFR (Bitfield-Mask: 0x03) */ + #define R_GPT7_GTPSR_PSGTRGBFR_Pos (2UL) /*!< PSGTRGBFR (Bit 2) */ + #define R_GPT7_GTPSR_PSGTRGBFR_Msk (0xcUL) /*!< PSGTRGBFR (Bitfield-Mask: 0x03) */ + #define R_GPT7_GTPSR_PSGTRGCFR_Pos (4UL) /*!< PSGTRGCFR (Bit 4) */ + #define R_GPT7_GTPSR_PSGTRGCFR_Msk (0x30UL) /*!< PSGTRGCFR (Bitfield-Mask: 0x03) */ + #define R_GPT7_GTPSR_PSGTRGDFR_Pos (6UL) /*!< PSGTRGDFR (Bit 6) */ + #define R_GPT7_GTPSR_PSGTRGDFR_Msk (0xc0UL) /*!< PSGTRGDFR (Bitfield-Mask: 0x03) */ + #define R_GPT7_GTPSR_PSCARBHL_Pos (8UL) /*!< PSCARBHL (Bit 8) */ + #define R_GPT7_GTPSR_PSCARBHL_Msk (0x300UL) /*!< PSCARBHL (Bitfield-Mask: 0x03) */ + #define R_GPT7_GTPSR_PSCAFBHL_Pos (10UL) /*!< PSCAFBHL (Bit 10) */ + #define R_GPT7_GTPSR_PSCAFBHL_Msk (0xc00UL) /*!< PSCAFBHL (Bitfield-Mask: 0x03) */ + #define R_GPT7_GTPSR_PSCBRAHL_Pos (12UL) /*!< PSCBRAHL (Bit 12) */ + #define R_GPT7_GTPSR_PSCBRAHL_Msk (0x3000UL) /*!< PSCBRAHL (Bitfield-Mask: 0x03) */ + #define R_GPT7_GTPSR_PSCBFAHL_Pos (14UL) /*!< PSCBFAHL (Bit 14) */ + #define R_GPT7_GTPSR_PSCBFAHL_Msk (0xc000UL) /*!< PSCBFAHL (Bitfield-Mask: 0x03) */ + #define R_GPT7_GTPSR_PSELCA_Pos (16UL) /*!< PSELCA (Bit 16) */ + #define R_GPT7_GTPSR_PSELCA_Msk (0x10000UL) /*!< PSELCA (Bitfield-Mask: 0x01) */ + #define R_GPT7_GTPSR_PSELCB_Pos (17UL) /*!< PSELCB (Bit 17) */ + #define R_GPT7_GTPSR_PSELCB_Msk (0x20000UL) /*!< PSELCB (Bitfield-Mask: 0x01) */ + #define R_GPT7_GTPSR_PSELCC_Pos (18UL) /*!< PSELCC (Bit 18) */ + #define R_GPT7_GTPSR_PSELCC_Msk (0x40000UL) /*!< PSELCC (Bitfield-Mask: 0x01) */ + #define R_GPT7_GTPSR_PSELCD_Pos (19UL) /*!< PSELCD (Bit 19) */ + #define R_GPT7_GTPSR_PSELCD_Msk (0x80000UL) /*!< PSELCD (Bitfield-Mask: 0x01) */ + #define R_GPT7_GTPSR_PSELCE_Pos (20UL) /*!< PSELCE (Bit 20) */ + #define R_GPT7_GTPSR_PSELCE_Msk (0x100000UL) /*!< PSELCE (Bitfield-Mask: 0x01) */ + #define R_GPT7_GTPSR_PSELCF_Pos (21UL) /*!< PSELCF (Bit 21) */ + #define R_GPT7_GTPSR_PSELCF_Msk (0x200000UL) /*!< PSELCF (Bitfield-Mask: 0x01) */ + #define R_GPT7_GTPSR_PSELCG_Pos (22UL) /*!< PSELCG (Bit 22) */ + #define R_GPT7_GTPSR_PSELCG_Msk (0x400000UL) /*!< PSELCG (Bitfield-Mask: 0x01) */ + #define R_GPT7_GTPSR_PSELCH_Pos (23UL) /*!< PSELCH (Bit 23) */ + #define R_GPT7_GTPSR_PSELCH_Msk (0x800000UL) /*!< PSELCH (Bitfield-Mask: 0x01) */ + #define R_GPT7_GTPSR_CSTOP_Pos (31UL) /*!< CSTOP (Bit 31) */ + #define R_GPT7_GTPSR_CSTOP_Msk (0x80000000UL) /*!< CSTOP (Bitfield-Mask: 0x01) */ +/* ========================================================= GTCSR ========================================================= */ + #define R_GPT7_GTCSR_CSGTRGAFR_Pos (0UL) /*!< CSGTRGAFR (Bit 0) */ + #define R_GPT7_GTCSR_CSGTRGAFR_Msk (0x3UL) /*!< CSGTRGAFR (Bitfield-Mask: 0x03) */ + #define R_GPT7_GTCSR_CSGTRGBFR_Pos (2UL) /*!< CSGTRGBFR (Bit 2) */ + #define R_GPT7_GTCSR_CSGTRGBFR_Msk (0xcUL) /*!< CSGTRGBFR (Bitfield-Mask: 0x03) */ + #define R_GPT7_GTCSR_CSGTRGCFR_Pos (4UL) /*!< CSGTRGCFR (Bit 4) */ + #define R_GPT7_GTCSR_CSGTRGCFR_Msk (0x30UL) /*!< CSGTRGCFR (Bitfield-Mask: 0x03) */ + #define R_GPT7_GTCSR_CSGTRGDFR_Pos (6UL) /*!< CSGTRGDFR (Bit 6) */ + #define R_GPT7_GTCSR_CSGTRGDFR_Msk (0xc0UL) /*!< CSGTRGDFR (Bitfield-Mask: 0x03) */ + #define R_GPT7_GTCSR_CSCARBHL_Pos (8UL) /*!< CSCARBHL (Bit 8) */ + #define R_GPT7_GTCSR_CSCARBHL_Msk (0x300UL) /*!< CSCARBHL (Bitfield-Mask: 0x03) */ + #define R_GPT7_GTCSR_CSCAFBHL_Pos (10UL) /*!< CSCAFBHL (Bit 10) */ + #define R_GPT7_GTCSR_CSCAFBHL_Msk (0xc00UL) /*!< CSCAFBHL (Bitfield-Mask: 0x03) */ + #define R_GPT7_GTCSR_CSCBRAHL_Pos (12UL) /*!< CSCBRAHL (Bit 12) */ + #define R_GPT7_GTCSR_CSCBRAHL_Msk (0x3000UL) /*!< CSCBRAHL (Bitfield-Mask: 0x03) */ + #define R_GPT7_GTCSR_CSCBFAHL_Pos (14UL) /*!< CSCBFAHL (Bit 14) */ + #define R_GPT7_GTCSR_CSCBFAHL_Msk (0xc000UL) /*!< CSCBFAHL (Bitfield-Mask: 0x03) */ + #define R_GPT7_GTCSR_CSELCA_Pos (16UL) /*!< CSELCA (Bit 16) */ + #define R_GPT7_GTCSR_CSELCA_Msk (0x10000UL) /*!< CSELCA (Bitfield-Mask: 0x01) */ + #define R_GPT7_GTCSR_CSELCB_Pos (17UL) /*!< CSELCB (Bit 17) */ + #define R_GPT7_GTCSR_CSELCB_Msk (0x20000UL) /*!< CSELCB (Bitfield-Mask: 0x01) */ + #define R_GPT7_GTCSR_CSELCC_Pos (18UL) /*!< CSELCC (Bit 18) */ + #define R_GPT7_GTCSR_CSELCC_Msk (0x40000UL) /*!< CSELCC (Bitfield-Mask: 0x01) */ + #define R_GPT7_GTCSR_CSELCD_Pos (19UL) /*!< CSELCD (Bit 19) */ + #define R_GPT7_GTCSR_CSELCD_Msk (0x80000UL) /*!< CSELCD (Bitfield-Mask: 0x01) */ + #define R_GPT7_GTCSR_CSELCE_Pos (20UL) /*!< CSELCE (Bit 20) */ + #define R_GPT7_GTCSR_CSELCE_Msk (0x100000UL) /*!< CSELCE (Bitfield-Mask: 0x01) */ + #define R_GPT7_GTCSR_CSELCF_Pos (21UL) /*!< CSELCF (Bit 21) */ + #define R_GPT7_GTCSR_CSELCF_Msk (0x200000UL) /*!< CSELCF (Bitfield-Mask: 0x01) */ + #define R_GPT7_GTCSR_CSELCG_Pos (22UL) /*!< CSELCG (Bit 22) */ + #define R_GPT7_GTCSR_CSELCG_Msk (0x400000UL) /*!< CSELCG (Bitfield-Mask: 0x01) */ + #define R_GPT7_GTCSR_CSELCH_Pos (23UL) /*!< CSELCH (Bit 23) */ + #define R_GPT7_GTCSR_CSELCH_Msk (0x800000UL) /*!< CSELCH (Bitfield-Mask: 0x01) */ + #define R_GPT7_GTCSR_CCLR_Pos (31UL) /*!< CCLR (Bit 31) */ + #define R_GPT7_GTCSR_CCLR_Msk (0x80000000UL) /*!< CCLR (Bitfield-Mask: 0x01) */ +/* ======================================================== GTUPSR ========================================================= */ + #define R_GPT7_GTUPSR_USGTRGAFR_Pos (0UL) /*!< USGTRGAFR (Bit 0) */ + #define R_GPT7_GTUPSR_USGTRGAFR_Msk (0x3UL) /*!< USGTRGAFR (Bitfield-Mask: 0x03) */ + #define R_GPT7_GTUPSR_USGTRGBFR_Pos (2UL) /*!< USGTRGBFR (Bit 2) */ + #define R_GPT7_GTUPSR_USGTRGBFR_Msk (0xcUL) /*!< USGTRGBFR (Bitfield-Mask: 0x03) */ + #define R_GPT7_GTUPSR_USGTRGCFR_Pos (4UL) /*!< USGTRGCFR (Bit 4) */ + #define R_GPT7_GTUPSR_USGTRGCFR_Msk (0x30UL) /*!< USGTRGCFR (Bitfield-Mask: 0x03) */ + #define R_GPT7_GTUPSR_USGTRGDFR_Pos (6UL) /*!< USGTRGDFR (Bit 6) */ + #define R_GPT7_GTUPSR_USGTRGDFR_Msk (0xc0UL) /*!< USGTRGDFR (Bitfield-Mask: 0x03) */ + #define R_GPT7_GTUPSR_USCARBHL_Pos (8UL) /*!< USCARBHL (Bit 8) */ + #define R_GPT7_GTUPSR_USCARBHL_Msk (0x300UL) /*!< USCARBHL (Bitfield-Mask: 0x03) */ + #define R_GPT7_GTUPSR_USCAFBHL_Pos (10UL) /*!< USCAFBHL (Bit 10) */ + #define R_GPT7_GTUPSR_USCAFBHL_Msk (0xc00UL) /*!< USCAFBHL (Bitfield-Mask: 0x03) */ + #define R_GPT7_GTUPSR_USCBRAHL_Pos (12UL) /*!< USCBRAHL (Bit 12) */ + #define R_GPT7_GTUPSR_USCBRAHL_Msk (0x3000UL) /*!< USCBRAHL (Bitfield-Mask: 0x03) */ + #define R_GPT7_GTUPSR_USCBFAHL_Pos (14UL) /*!< USCBFAHL (Bit 14) */ + #define R_GPT7_GTUPSR_USCBFAHL_Msk (0xc000UL) /*!< USCBFAHL (Bitfield-Mask: 0x03) */ + #define R_GPT7_GTUPSR_USELCA_Pos (16UL) /*!< USELCA (Bit 16) */ + #define R_GPT7_GTUPSR_USELCA_Msk (0x10000UL) /*!< USELCA (Bitfield-Mask: 0x01) */ + #define R_GPT7_GTUPSR_USELCB_Pos (17UL) /*!< USELCB (Bit 17) */ + #define R_GPT7_GTUPSR_USELCB_Msk (0x20000UL) /*!< USELCB (Bitfield-Mask: 0x01) */ + #define R_GPT7_GTUPSR_USELCC_Pos (18UL) /*!< USELCC (Bit 18) */ + #define R_GPT7_GTUPSR_USELCC_Msk (0x40000UL) /*!< USELCC (Bitfield-Mask: 0x01) */ + #define R_GPT7_GTUPSR_USELCD_Pos (19UL) /*!< USELCD (Bit 19) */ + #define R_GPT7_GTUPSR_USELCD_Msk (0x80000UL) /*!< USELCD (Bitfield-Mask: 0x01) */ + #define R_GPT7_GTUPSR_USELCE_Pos (20UL) /*!< USELCE (Bit 20) */ + #define R_GPT7_GTUPSR_USELCE_Msk (0x100000UL) /*!< USELCE (Bitfield-Mask: 0x01) */ + #define R_GPT7_GTUPSR_USELCF_Pos (21UL) /*!< USELCF (Bit 21) */ + #define R_GPT7_GTUPSR_USELCF_Msk (0x200000UL) /*!< USELCF (Bitfield-Mask: 0x01) */ + #define R_GPT7_GTUPSR_USELCG_Pos (22UL) /*!< USELCG (Bit 22) */ + #define R_GPT7_GTUPSR_USELCG_Msk (0x400000UL) /*!< USELCG (Bitfield-Mask: 0x01) */ + #define R_GPT7_GTUPSR_USELCH_Pos (23UL) /*!< USELCH (Bit 23) */ + #define R_GPT7_GTUPSR_USELCH_Msk (0x800000UL) /*!< USELCH (Bitfield-Mask: 0x01) */ +/* ======================================================== GTDNSR ========================================================= */ + #define R_GPT7_GTDNSR_DSGTRGAFR_Pos (0UL) /*!< DSGTRGAFR (Bit 0) */ + #define R_GPT7_GTDNSR_DSGTRGAFR_Msk (0x3UL) /*!< DSGTRGAFR (Bitfield-Mask: 0x03) */ + #define R_GPT7_GTDNSR_DSGTRGBFR_Pos (2UL) /*!< DSGTRGBFR (Bit 2) */ + #define R_GPT7_GTDNSR_DSGTRGBFR_Msk (0xcUL) /*!< DSGTRGBFR (Bitfield-Mask: 0x03) */ + #define R_GPT7_GTDNSR_DSGTRGCFR_Pos (4UL) /*!< DSGTRGCFR (Bit 4) */ + #define R_GPT7_GTDNSR_DSGTRGCFR_Msk (0x30UL) /*!< DSGTRGCFR (Bitfield-Mask: 0x03) */ + #define R_GPT7_GTDNSR_DSGTRGDFR_Pos (6UL) /*!< DSGTRGDFR (Bit 6) */ + #define R_GPT7_GTDNSR_DSGTRGDFR_Msk (0xc0UL) /*!< DSGTRGDFR (Bitfield-Mask: 0x03) */ + #define R_GPT7_GTDNSR_DSCARBHL_Pos (8UL) /*!< DSCARBHL (Bit 8) */ + #define R_GPT7_GTDNSR_DSCARBHL_Msk (0x300UL) /*!< DSCARBHL (Bitfield-Mask: 0x03) */ + #define R_GPT7_GTDNSR_DSCAFBHL_Pos (10UL) /*!< DSCAFBHL (Bit 10) */ + #define R_GPT7_GTDNSR_DSCAFBHL_Msk (0xc00UL) /*!< DSCAFBHL (Bitfield-Mask: 0x03) */ + #define R_GPT7_GTDNSR_DSCBRAHL_Pos (12UL) /*!< DSCBRAHL (Bit 12) */ + #define R_GPT7_GTDNSR_DSCBRAHL_Msk (0x3000UL) /*!< DSCBRAHL (Bitfield-Mask: 0x03) */ + #define R_GPT7_GTDNSR_DSCBFAHL_Pos (14UL) /*!< DSCBFAHL (Bit 14) */ + #define R_GPT7_GTDNSR_DSCBFAHL_Msk (0xc000UL) /*!< DSCBFAHL (Bitfield-Mask: 0x03) */ + #define R_GPT7_GTDNSR_DSELCA_Pos (16UL) /*!< DSELCA (Bit 16) */ + #define R_GPT7_GTDNSR_DSELCA_Msk (0x10000UL) /*!< DSELCA (Bitfield-Mask: 0x01) */ + #define R_GPT7_GTDNSR_DSELCB_Pos (17UL) /*!< DSELCB (Bit 17) */ + #define R_GPT7_GTDNSR_DSELCB_Msk (0x20000UL) /*!< DSELCB (Bitfield-Mask: 0x01) */ + #define R_GPT7_GTDNSR_DSELCC_Pos (18UL) /*!< DSELCC (Bit 18) */ + #define R_GPT7_GTDNSR_DSELCC_Msk (0x40000UL) /*!< DSELCC (Bitfield-Mask: 0x01) */ + #define R_GPT7_GTDNSR_DSELCD_Pos (19UL) /*!< DSELCD (Bit 19) */ + #define R_GPT7_GTDNSR_DSELCD_Msk (0x80000UL) /*!< DSELCD (Bitfield-Mask: 0x01) */ + #define R_GPT7_GTDNSR_DSELCE_Pos (20UL) /*!< DSELCE (Bit 20) */ + #define R_GPT7_GTDNSR_DSELCE_Msk (0x100000UL) /*!< DSELCE (Bitfield-Mask: 0x01) */ + #define R_GPT7_GTDNSR_DSELCF_Pos (21UL) /*!< DSELCF (Bit 21) */ + #define R_GPT7_GTDNSR_DSELCF_Msk (0x200000UL) /*!< DSELCF (Bitfield-Mask: 0x01) */ + #define R_GPT7_GTDNSR_DSELCG_Pos (22UL) /*!< DSELCG (Bit 22) */ + #define R_GPT7_GTDNSR_DSELCG_Msk (0x400000UL) /*!< DSELCG (Bitfield-Mask: 0x01) */ + #define R_GPT7_GTDNSR_DSELCH_Pos (23UL) /*!< DSELCH (Bit 23) */ + #define R_GPT7_GTDNSR_DSELCH_Msk (0x800000UL) /*!< DSELCH (Bitfield-Mask: 0x01) */ +/* ======================================================== GTICASR ======================================================== */ + #define R_GPT7_GTICASR_ASGTRGAFR_Pos (0UL) /*!< ASGTRGAFR (Bit 0) */ + #define R_GPT7_GTICASR_ASGTRGAFR_Msk (0x3UL) /*!< ASGTRGAFR (Bitfield-Mask: 0x03) */ + #define R_GPT7_GTICASR_ASGTRGBFR_Pos (2UL) /*!< ASGTRGBFR (Bit 2) */ + #define R_GPT7_GTICASR_ASGTRGBFR_Msk (0xcUL) /*!< ASGTRGBFR (Bitfield-Mask: 0x03) */ + #define R_GPT7_GTICASR_ASGTRGCFR_Pos (4UL) /*!< ASGTRGCFR (Bit 4) */ + #define R_GPT7_GTICASR_ASGTRGCFR_Msk (0x30UL) /*!< ASGTRGCFR (Bitfield-Mask: 0x03) */ + #define R_GPT7_GTICASR_ASGTRGDFR_Pos (6UL) /*!< ASGTRGDFR (Bit 6) */ + #define R_GPT7_GTICASR_ASGTRGDFR_Msk (0xc0UL) /*!< ASGTRGDFR (Bitfield-Mask: 0x03) */ + #define R_GPT7_GTICASR_ASCARBHL_Pos (8UL) /*!< ASCARBHL (Bit 8) */ + #define R_GPT7_GTICASR_ASCARBHL_Msk (0x300UL) /*!< ASCARBHL (Bitfield-Mask: 0x03) */ + #define R_GPT7_GTICASR_ASCAFBHL_Pos (10UL) /*!< ASCAFBHL (Bit 10) */ + #define R_GPT7_GTICASR_ASCAFBHL_Msk (0xc00UL) /*!< ASCAFBHL (Bitfield-Mask: 0x03) */ + #define R_GPT7_GTICASR_ASCBRAHL_Pos (12UL) /*!< ASCBRAHL (Bit 12) */ + #define R_GPT7_GTICASR_ASCBRAHL_Msk (0x3000UL) /*!< ASCBRAHL (Bitfield-Mask: 0x03) */ + #define R_GPT7_GTICASR_ASCBFAHL_Pos (14UL) /*!< ASCBFAHL (Bit 14) */ + #define R_GPT7_GTICASR_ASCBFAHL_Msk (0xc000UL) /*!< ASCBFAHL (Bitfield-Mask: 0x03) */ + #define R_GPT7_GTICASR_ASELCA_Pos (16UL) /*!< ASELCA (Bit 16) */ + #define R_GPT7_GTICASR_ASELCA_Msk (0x10000UL) /*!< ASELCA (Bitfield-Mask: 0x01) */ + #define R_GPT7_GTICASR_ASELCB_Pos (17UL) /*!< ASELCB (Bit 17) */ + #define R_GPT7_GTICASR_ASELCB_Msk (0x20000UL) /*!< ASELCB (Bitfield-Mask: 0x01) */ + #define R_GPT7_GTICASR_ASELCC_Pos (18UL) /*!< ASELCC (Bit 18) */ + #define R_GPT7_GTICASR_ASELCC_Msk (0x40000UL) /*!< ASELCC (Bitfield-Mask: 0x01) */ + #define R_GPT7_GTICASR_ASELCD_Pos (19UL) /*!< ASELCD (Bit 19) */ + #define R_GPT7_GTICASR_ASELCD_Msk (0x80000UL) /*!< ASELCD (Bitfield-Mask: 0x01) */ + #define R_GPT7_GTICASR_ASELCE_Pos (20UL) /*!< ASELCE (Bit 20) */ + #define R_GPT7_GTICASR_ASELCE_Msk (0x100000UL) /*!< ASELCE (Bitfield-Mask: 0x01) */ + #define R_GPT7_GTICASR_ASELCF_Pos (21UL) /*!< ASELCF (Bit 21) */ + #define R_GPT7_GTICASR_ASELCF_Msk (0x200000UL) /*!< ASELCF (Bitfield-Mask: 0x01) */ + #define R_GPT7_GTICASR_ASELCG_Pos (22UL) /*!< ASELCG (Bit 22) */ + #define R_GPT7_GTICASR_ASELCG_Msk (0x400000UL) /*!< ASELCG (Bitfield-Mask: 0x01) */ + #define R_GPT7_GTICASR_ASELCH_Pos (23UL) /*!< ASELCH (Bit 23) */ + #define R_GPT7_GTICASR_ASELCH_Msk (0x800000UL) /*!< ASELCH (Bitfield-Mask: 0x01) */ +/* ======================================================== GTICBSR ======================================================== */ + #define R_GPT7_GTICBSR_BSGTRGAFR_Pos (0UL) /*!< BSGTRGAFR (Bit 0) */ + #define R_GPT7_GTICBSR_BSGTRGAFR_Msk (0x3UL) /*!< BSGTRGAFR (Bitfield-Mask: 0x03) */ + #define R_GPT7_GTICBSR_BSGTRGBFR_Pos (2UL) /*!< BSGTRGBFR (Bit 2) */ + #define R_GPT7_GTICBSR_BSGTRGBFR_Msk (0xcUL) /*!< BSGTRGBFR (Bitfield-Mask: 0x03) */ + #define R_GPT7_GTICBSR_BSGTRGCFR_Pos (4UL) /*!< BSGTRGCFR (Bit 4) */ + #define R_GPT7_GTICBSR_BSGTRGCFR_Msk (0x30UL) /*!< BSGTRGCFR (Bitfield-Mask: 0x03) */ + #define R_GPT7_GTICBSR_BSGTRGDFR_Pos (6UL) /*!< BSGTRGDFR (Bit 6) */ + #define R_GPT7_GTICBSR_BSGTRGDFR_Msk (0xc0UL) /*!< BSGTRGDFR (Bitfield-Mask: 0x03) */ + #define R_GPT7_GTICBSR_BSCARBHL_Pos (8UL) /*!< BSCARBHL (Bit 8) */ + #define R_GPT7_GTICBSR_BSCARBHL_Msk (0x300UL) /*!< BSCARBHL (Bitfield-Mask: 0x03) */ + #define R_GPT7_GTICBSR_BSCAFBHL_Pos (10UL) /*!< BSCAFBHL (Bit 10) */ + #define R_GPT7_GTICBSR_BSCAFBHL_Msk (0xc00UL) /*!< BSCAFBHL (Bitfield-Mask: 0x03) */ + #define R_GPT7_GTICBSR_BSCBRAHL_Pos (12UL) /*!< BSCBRAHL (Bit 12) */ + #define R_GPT7_GTICBSR_BSCBRAHL_Msk (0x3000UL) /*!< BSCBRAHL (Bitfield-Mask: 0x03) */ + #define R_GPT7_GTICBSR_BSCBFAHL_Pos (14UL) /*!< BSCBFAHL (Bit 14) */ + #define R_GPT7_GTICBSR_BSCBFAHL_Msk (0xc000UL) /*!< BSCBFAHL (Bitfield-Mask: 0x03) */ + #define R_GPT7_GTICBSR_BSELCA_Pos (16UL) /*!< BSELCA (Bit 16) */ + #define R_GPT7_GTICBSR_BSELCA_Msk (0x10000UL) /*!< BSELCA (Bitfield-Mask: 0x01) */ + #define R_GPT7_GTICBSR_BSELCB_Pos (17UL) /*!< BSELCB (Bit 17) */ + #define R_GPT7_GTICBSR_BSELCB_Msk (0x20000UL) /*!< BSELCB (Bitfield-Mask: 0x01) */ + #define R_GPT7_GTICBSR_BSELCC_Pos (18UL) /*!< BSELCC (Bit 18) */ + #define R_GPT7_GTICBSR_BSELCC_Msk (0x40000UL) /*!< BSELCC (Bitfield-Mask: 0x01) */ + #define R_GPT7_GTICBSR_BSELCD_Pos (19UL) /*!< BSELCD (Bit 19) */ + #define R_GPT7_GTICBSR_BSELCD_Msk (0x80000UL) /*!< BSELCD (Bitfield-Mask: 0x01) */ + #define R_GPT7_GTICBSR_BSELCE_Pos (20UL) /*!< BSELCE (Bit 20) */ + #define R_GPT7_GTICBSR_BSELCE_Msk (0x100000UL) /*!< BSELCE (Bitfield-Mask: 0x01) */ + #define R_GPT7_GTICBSR_BSELCF_Pos (21UL) /*!< BSELCF (Bit 21) */ + #define R_GPT7_GTICBSR_BSELCF_Msk (0x200000UL) /*!< BSELCF (Bitfield-Mask: 0x01) */ + #define R_GPT7_GTICBSR_BSELCG_Pos (22UL) /*!< BSELCG (Bit 22) */ + #define R_GPT7_GTICBSR_BSELCG_Msk (0x400000UL) /*!< BSELCG (Bitfield-Mask: 0x01) */ + #define R_GPT7_GTICBSR_BSELCH_Pos (23UL) /*!< BSELCH (Bit 23) */ + #define R_GPT7_GTICBSR_BSELCH_Msk (0x800000UL) /*!< BSELCH (Bitfield-Mask: 0x01) */ +/* ========================================================= GTCR ========================================================== */ + #define R_GPT7_GTCR_CST_Pos (0UL) /*!< CST (Bit 0) */ + #define R_GPT7_GTCR_CST_Msk (0x1UL) /*!< CST (Bitfield-Mask: 0x01) */ + #define R_GPT7_GTCR_ICDS_Pos (8UL) /*!< ICDS (Bit 8) */ + #define R_GPT7_GTCR_ICDS_Msk (0x100UL) /*!< ICDS (Bitfield-Mask: 0x01) */ + #define R_GPT7_GTCR_MD_Pos (16UL) /*!< MD (Bit 16) */ + #define R_GPT7_GTCR_MD_Msk (0x70000UL) /*!< MD (Bitfield-Mask: 0x07) */ + #define R_GPT7_GTCR_TPCS_Pos (23UL) /*!< TPCS (Bit 23) */ + #define R_GPT7_GTCR_TPCS_Msk (0x7800000UL) /*!< TPCS (Bitfield-Mask: 0x0f) */ + #define R_GPT7_GTCR_SWMD_Pos (29UL) /*!< SWMD (Bit 29) */ + #define R_GPT7_GTCR_SWMD_Msk (0xe0000000UL) /*!< SWMD (Bitfield-Mask: 0x07) */ +/* ======================================================= GTUDDTYC ======================================================== */ + #define R_GPT7_GTUDDTYC_UD_Pos (0UL) /*!< UD (Bit 0) */ + #define R_GPT7_GTUDDTYC_UD_Msk (0x1UL) /*!< UD (Bitfield-Mask: 0x01) */ + #define R_GPT7_GTUDDTYC_UDF_Pos (1UL) /*!< UDF (Bit 1) */ + #define R_GPT7_GTUDDTYC_UDF_Msk (0x2UL) /*!< UDF (Bitfield-Mask: 0x01) */ + #define R_GPT7_GTUDDTYC_OADTY_Pos (16UL) /*!< OADTY (Bit 16) */ + #define R_GPT7_GTUDDTYC_OADTY_Msk (0x30000UL) /*!< OADTY (Bitfield-Mask: 0x03) */ + #define R_GPT7_GTUDDTYC_OADTYF_Pos (18UL) /*!< OADTYF (Bit 18) */ + #define R_GPT7_GTUDDTYC_OADTYF_Msk (0x40000UL) /*!< OADTYF (Bitfield-Mask: 0x01) */ + #define R_GPT7_GTUDDTYC_OADTYR_Pos (19UL) /*!< OADTYR (Bit 19) */ + #define R_GPT7_GTUDDTYC_OADTYR_Msk (0x80000UL) /*!< OADTYR (Bitfield-Mask: 0x01) */ + #define R_GPT7_GTUDDTYC_OBDTY_Pos (24UL) /*!< OBDTY (Bit 24) */ + #define R_GPT7_GTUDDTYC_OBDTY_Msk (0x3000000UL) /*!< OBDTY (Bitfield-Mask: 0x03) */ + #define R_GPT7_GTUDDTYC_OBDTYF_Pos (26UL) /*!< OBDTYF (Bit 26) */ + #define R_GPT7_GTUDDTYC_OBDTYF_Msk (0x4000000UL) /*!< OBDTYF (Bitfield-Mask: 0x01) */ + #define R_GPT7_GTUDDTYC_OBDTYR_Pos (27UL) /*!< OBDTYR (Bit 27) */ + #define R_GPT7_GTUDDTYC_OBDTYR_Msk (0x8000000UL) /*!< OBDTYR (Bitfield-Mask: 0x01) */ +/* ========================================================= GTIOR ========================================================= */ + #define R_GPT7_GTIOR_GTIOA_Pos (0UL) /*!< GTIOA (Bit 0) */ + #define R_GPT7_GTIOR_GTIOA_Msk (0x1fUL) /*!< GTIOA (Bitfield-Mask: 0x1f) */ + #define R_GPT7_GTIOR_OADFLT_Pos (6UL) /*!< OADFLT (Bit 6) */ + #define R_GPT7_GTIOR_OADFLT_Msk (0x40UL) /*!< OADFLT (Bitfield-Mask: 0x01) */ + #define R_GPT7_GTIOR_OAHLD_Pos (7UL) /*!< OAHLD (Bit 7) */ + #define R_GPT7_GTIOR_OAHLD_Msk (0x80UL) /*!< OAHLD (Bitfield-Mask: 0x01) */ + #define R_GPT7_GTIOR_OAE_Pos (8UL) /*!< OAE (Bit 8) */ + #define R_GPT7_GTIOR_OAE_Msk (0x100UL) /*!< OAE (Bitfield-Mask: 0x01) */ + #define R_GPT7_GTIOR_OADF_Pos (9UL) /*!< OADF (Bit 9) */ + #define R_GPT7_GTIOR_OADF_Msk (0x600UL) /*!< OADF (Bitfield-Mask: 0x03) */ + #define R_GPT7_GTIOR_NFAEN_Pos (13UL) /*!< NFAEN (Bit 13) */ + #define R_GPT7_GTIOR_NFAEN_Msk (0x2000UL) /*!< NFAEN (Bitfield-Mask: 0x01) */ + #define R_GPT7_GTIOR_NFCSA_Pos (14UL) /*!< NFCSA (Bit 14) */ + #define R_GPT7_GTIOR_NFCSA_Msk (0xc000UL) /*!< NFCSA (Bitfield-Mask: 0x03) */ + #define R_GPT7_GTIOR_GTIOB_Pos (16UL) /*!< GTIOB (Bit 16) */ + #define R_GPT7_GTIOR_GTIOB_Msk (0x1f0000UL) /*!< GTIOB (Bitfield-Mask: 0x1f) */ + #define R_GPT7_GTIOR_OBDFLT_Pos (22UL) /*!< OBDFLT (Bit 22) */ + #define R_GPT7_GTIOR_OBDFLT_Msk (0x400000UL) /*!< OBDFLT (Bitfield-Mask: 0x01) */ + #define R_GPT7_GTIOR_OBHLD_Pos (23UL) /*!< OBHLD (Bit 23) */ + #define R_GPT7_GTIOR_OBHLD_Msk (0x800000UL) /*!< OBHLD (Bitfield-Mask: 0x01) */ + #define R_GPT7_GTIOR_OBE_Pos (24UL) /*!< OBE (Bit 24) */ + #define R_GPT7_GTIOR_OBE_Msk (0x1000000UL) /*!< OBE (Bitfield-Mask: 0x01) */ + #define R_GPT7_GTIOR_OBDF_Pos (25UL) /*!< OBDF (Bit 25) */ + #define R_GPT7_GTIOR_OBDF_Msk (0x6000000UL) /*!< OBDF (Bitfield-Mask: 0x03) */ + #define R_GPT7_GTIOR_NFBEN_Pos (29UL) /*!< NFBEN (Bit 29) */ + #define R_GPT7_GTIOR_NFBEN_Msk (0x20000000UL) /*!< NFBEN (Bitfield-Mask: 0x01) */ + #define R_GPT7_GTIOR_NFCSB_Pos (30UL) /*!< NFCSB (Bit 30) */ + #define R_GPT7_GTIOR_NFCSB_Msk (0xc0000000UL) /*!< NFCSB (Bitfield-Mask: 0x03) */ +/* ======================================================== GTINTAD ======================================================== */ + #define R_GPT7_GTINTAD_GTINTA_Pos (0UL) /*!< GTINTA (Bit 0) */ + #define R_GPT7_GTINTAD_GTINTA_Msk (0x1UL) /*!< GTINTA (Bitfield-Mask: 0x01) */ + #define R_GPT7_GTINTAD_GTINTB_Pos (1UL) /*!< GTINTB (Bit 1) */ + #define R_GPT7_GTINTAD_GTINTB_Msk (0x2UL) /*!< GTINTB (Bitfield-Mask: 0x01) */ + #define R_GPT7_GTINTAD_GTINTC_Pos (2UL) /*!< GTINTC (Bit 2) */ + #define R_GPT7_GTINTAD_GTINTC_Msk (0x4UL) /*!< GTINTC (Bitfield-Mask: 0x01) */ + #define R_GPT7_GTINTAD_GTINTD_Pos (3UL) /*!< GTINTD (Bit 3) */ + #define R_GPT7_GTINTAD_GTINTD_Msk (0x8UL) /*!< GTINTD (Bitfield-Mask: 0x01) */ + #define R_GPT7_GTINTAD_GTINTE_Pos (4UL) /*!< GTINTE (Bit 4) */ + #define R_GPT7_GTINTAD_GTINTE_Msk (0x10UL) /*!< GTINTE (Bitfield-Mask: 0x01) */ + #define R_GPT7_GTINTAD_GTINTF_Pos (5UL) /*!< GTINTF (Bit 5) */ + #define R_GPT7_GTINTAD_GTINTF_Msk (0x20UL) /*!< GTINTF (Bitfield-Mask: 0x01) */ + #define R_GPT7_GTINTAD_GTINTPR_Pos (6UL) /*!< GTINTPR (Bit 6) */ + #define R_GPT7_GTINTAD_GTINTPR_Msk (0xc0UL) /*!< GTINTPR (Bitfield-Mask: 0x03) */ + #define R_GPT7_GTINTAD_ADTRAUEN_Pos (16UL) /*!< ADTRAUEN (Bit 16) */ + #define R_GPT7_GTINTAD_ADTRAUEN_Msk (0x10000UL) /*!< ADTRAUEN (Bitfield-Mask: 0x01) */ + #define R_GPT7_GTINTAD_ADTRADEN_Pos (17UL) /*!< ADTRADEN (Bit 17) */ + #define R_GPT7_GTINTAD_ADTRADEN_Msk (0x20000UL) /*!< ADTRADEN (Bitfield-Mask: 0x01) */ + #define R_GPT7_GTINTAD_ADTRBUEN_Pos (18UL) /*!< ADTRBUEN (Bit 18) */ + #define R_GPT7_GTINTAD_ADTRBUEN_Msk (0x40000UL) /*!< ADTRBUEN (Bitfield-Mask: 0x01) */ + #define R_GPT7_GTINTAD_ADTRBDEN_Pos (19UL) /*!< ADTRBDEN (Bit 19) */ + #define R_GPT7_GTINTAD_ADTRBDEN_Msk (0x80000UL) /*!< ADTRBDEN (Bitfield-Mask: 0x01) */ + #define R_GPT7_GTINTAD_GRP_Pos (24UL) /*!< GRP (Bit 24) */ + #define R_GPT7_GTINTAD_GRP_Msk (0x3000000UL) /*!< GRP (Bitfield-Mask: 0x03) */ + #define R_GPT7_GTINTAD_GRPDTE_Pos (28UL) /*!< GRPDTE (Bit 28) */ + #define R_GPT7_GTINTAD_GRPDTE_Msk (0x10000000UL) /*!< GRPDTE (Bitfield-Mask: 0x01) */ + #define R_GPT7_GTINTAD_GRPABH_Pos (29UL) /*!< GRPABH (Bit 29) */ + #define R_GPT7_GTINTAD_GRPABH_Msk (0x20000000UL) /*!< GRPABH (Bitfield-Mask: 0x01) */ + #define R_GPT7_GTINTAD_GRPABL_Pos (30UL) /*!< GRPABL (Bit 30) */ + #define R_GPT7_GTINTAD_GRPABL_Msk (0x40000000UL) /*!< GRPABL (Bitfield-Mask: 0x01) */ +/* ========================================================= GTST ========================================================== */ + #define R_GPT7_GTST_ITCNT_Pos (8UL) /*!< ITCNT (Bit 8) */ + #define R_GPT7_GTST_ITCNT_Msk (0x700UL) /*!< ITCNT (Bitfield-Mask: 0x07) */ + #define R_GPT7_GTST_TUCF_Pos (15UL) /*!< TUCF (Bit 15) */ + #define R_GPT7_GTST_TUCF_Msk (0x8000UL) /*!< TUCF (Bitfield-Mask: 0x01) */ + #define R_GPT7_GTST_ADTRAUF_Pos (16UL) /*!< ADTRAUF (Bit 16) */ + #define R_GPT7_GTST_ADTRAUF_Msk (0x10000UL) /*!< ADTRAUF (Bitfield-Mask: 0x01) */ + #define R_GPT7_GTST_ADTRADF_Pos (17UL) /*!< ADTRADF (Bit 17) */ + #define R_GPT7_GTST_ADTRADF_Msk (0x20000UL) /*!< ADTRADF (Bitfield-Mask: 0x01) */ + #define R_GPT7_GTST_ADTRBUF_Pos (18UL) /*!< ADTRBUF (Bit 18) */ + #define R_GPT7_GTST_ADTRBUF_Msk (0x40000UL) /*!< ADTRBUF (Bitfield-Mask: 0x01) */ + #define R_GPT7_GTST_ADTRBDF_Pos (19UL) /*!< ADTRBDF (Bit 19) */ + #define R_GPT7_GTST_ADTRBDF_Msk (0x80000UL) /*!< ADTRBDF (Bitfield-Mask: 0x01) */ + #define R_GPT7_GTST_ODF_Pos (24UL) /*!< ODF (Bit 24) */ + #define R_GPT7_GTST_ODF_Msk (0x1000000UL) /*!< ODF (Bitfield-Mask: 0x01) */ + #define R_GPT7_GTST_DTEF_Pos (28UL) /*!< DTEF (Bit 28) */ + #define R_GPT7_GTST_DTEF_Msk (0x10000000UL) /*!< DTEF (Bitfield-Mask: 0x01) */ + #define R_GPT7_GTST_OABHF_Pos (29UL) /*!< OABHF (Bit 29) */ + #define R_GPT7_GTST_OABHF_Msk (0x20000000UL) /*!< OABHF (Bitfield-Mask: 0x01) */ + #define R_GPT7_GTST_OABLF_Pos (30UL) /*!< OABLF (Bit 30) */ + #define R_GPT7_GTST_OABLF_Msk (0x40000000UL) /*!< OABLF (Bitfield-Mask: 0x01) */ +/* ========================================================= GTBER ========================================================= */ + #define R_GPT7_GTBER_BD0_Pos (0UL) /*!< BD0 (Bit 0) */ + #define R_GPT7_GTBER_BD0_Msk (0x1UL) /*!< BD0 (Bitfield-Mask: 0x01) */ + #define R_GPT7_GTBER_BD1_Pos (1UL) /*!< BD1 (Bit 1) */ + #define R_GPT7_GTBER_BD1_Msk (0x2UL) /*!< BD1 (Bitfield-Mask: 0x01) */ + #define R_GPT7_GTBER_BD2_Pos (2UL) /*!< BD2 (Bit 2) */ + #define R_GPT7_GTBER_BD2_Msk (0x4UL) /*!< BD2 (Bitfield-Mask: 0x01) */ + #define R_GPT7_GTBER_BD3_Pos (3UL) /*!< BD3 (Bit 3) */ + #define R_GPT7_GTBER_BD3_Msk (0x8UL) /*!< BD3 (Bitfield-Mask: 0x01) */ + #define R_GPT7_GTBER_DBRTECA_Pos (8UL) /*!< DBRTECA (Bit 8) */ + #define R_GPT7_GTBER_DBRTECA_Msk (0x100UL) /*!< DBRTECA (Bitfield-Mask: 0x01) */ + #define R_GPT7_GTBER_DBRTECB_Pos (10UL) /*!< DBRTECB (Bit 10) */ + #define R_GPT7_GTBER_DBRTECB_Msk (0x400UL) /*!< DBRTECB (Bitfield-Mask: 0x01) */ + #define R_GPT7_GTBER_CCRA_Pos (16UL) /*!< CCRA (Bit 16) */ + #define R_GPT7_GTBER_CCRA_Msk (0x30000UL) /*!< CCRA (Bitfield-Mask: 0x03) */ + #define R_GPT7_GTBER_CCRB_Pos (18UL) /*!< CCRB (Bit 18) */ + #define R_GPT7_GTBER_CCRB_Msk (0xc0000UL) /*!< CCRB (Bitfield-Mask: 0x03) */ + #define R_GPT7_GTBER_PR_Pos (20UL) /*!< PR (Bit 20) */ + #define R_GPT7_GTBER_PR_Msk (0x300000UL) /*!< PR (Bitfield-Mask: 0x03) */ + #define R_GPT7_GTBER_CCRSWT_Pos (22UL) /*!< CCRSWT (Bit 22) */ + #define R_GPT7_GTBER_CCRSWT_Msk (0x400000UL) /*!< CCRSWT (Bitfield-Mask: 0x01) */ + #define R_GPT7_GTBER_ADTTA_Pos (24UL) /*!< ADTTA (Bit 24) */ + #define R_GPT7_GTBER_ADTTA_Msk (0x3000000UL) /*!< ADTTA (Bitfield-Mask: 0x03) */ + #define R_GPT7_GTBER_ADTDA_Pos (26UL) /*!< ADTDA (Bit 26) */ + #define R_GPT7_GTBER_ADTDA_Msk (0x4000000UL) /*!< ADTDA (Bitfield-Mask: 0x01) */ + #define R_GPT7_GTBER_ADTTB_Pos (28UL) /*!< ADTTB (Bit 28) */ + #define R_GPT7_GTBER_ADTTB_Msk (0x30000000UL) /*!< ADTTB (Bitfield-Mask: 0x03) */ + #define R_GPT7_GTBER_ADTDB_Pos (30UL) /*!< ADTDB (Bit 30) */ + #define R_GPT7_GTBER_ADTDB_Msk (0x40000000UL) /*!< ADTDB (Bitfield-Mask: 0x01) */ +/* ========================================================= GTITC ========================================================= */ + #define R_GPT7_GTITC_ITLA_Pos (0UL) /*!< ITLA (Bit 0) */ + #define R_GPT7_GTITC_ITLA_Msk (0x1UL) /*!< ITLA (Bitfield-Mask: 0x01) */ + #define R_GPT7_GTITC_ITLB_Pos (1UL) /*!< ITLB (Bit 1) */ + #define R_GPT7_GTITC_ITLB_Msk (0x2UL) /*!< ITLB (Bitfield-Mask: 0x01) */ + #define R_GPT7_GTITC_ITLC_Pos (2UL) /*!< ITLC (Bit 2) */ + #define R_GPT7_GTITC_ITLC_Msk (0x4UL) /*!< ITLC (Bitfield-Mask: 0x01) */ + #define R_GPT7_GTITC_ITLD_Pos (3UL) /*!< ITLD (Bit 3) */ + #define R_GPT7_GTITC_ITLD_Msk (0x8UL) /*!< ITLD (Bitfield-Mask: 0x01) */ + #define R_GPT7_GTITC_ITLE_Pos (4UL) /*!< ITLE (Bit 4) */ + #define R_GPT7_GTITC_ITLE_Msk (0x10UL) /*!< ITLE (Bitfield-Mask: 0x01) */ + #define R_GPT7_GTITC_ITLF_Pos (5UL) /*!< ITLF (Bit 5) */ + #define R_GPT7_GTITC_ITLF_Msk (0x20UL) /*!< ITLF (Bitfield-Mask: 0x01) */ + #define R_GPT7_GTITC_IVTC_Pos (6UL) /*!< IVTC (Bit 6) */ + #define R_GPT7_GTITC_IVTC_Msk (0xc0UL) /*!< IVTC (Bitfield-Mask: 0x03) */ + #define R_GPT7_GTITC_IVTT_Pos (8UL) /*!< IVTT (Bit 8) */ + #define R_GPT7_GTITC_IVTT_Msk (0x700UL) /*!< IVTT (Bitfield-Mask: 0x07) */ + #define R_GPT7_GTITC_ADTAL_Pos (12UL) /*!< ADTAL (Bit 12) */ + #define R_GPT7_GTITC_ADTAL_Msk (0x1000UL) /*!< ADTAL (Bitfield-Mask: 0x01) */ + #define R_GPT7_GTITC_ADTBL_Pos (14UL) /*!< ADTBL (Bit 14) */ + #define R_GPT7_GTITC_ADTBL_Msk (0x4000UL) /*!< ADTBL (Bitfield-Mask: 0x01) */ +/* ========================================================= GTCNT ========================================================= */ +/* ========================================================= GTCCR ========================================================= */ +/* ========================================================= GTPR ========================================================== */ +/* ========================================================= GTPBR ========================================================= */ +/* ======================================================== GTPDBR ========================================================= */ +/* ======================================================== GTADTRA ======================================================== */ +/* ======================================================= GTADTBRA ======================================================== */ +/* ======================================================= GTADTDBRA ======================================================= */ +/* ======================================================== GTADTRB ======================================================== */ +/* ======================================================= GTADTBRB ======================================================== */ +/* ======================================================= GTADTDBRB ======================================================= */ +/* ======================================================== GTDTCR ========================================================= */ + #define R_GPT7_GTDTCR_TDE_Pos (0UL) /*!< TDE (Bit 0) */ + #define R_GPT7_GTDTCR_TDE_Msk (0x1UL) /*!< TDE (Bitfield-Mask: 0x01) */ + #define R_GPT7_GTDTCR_TDBUE_Pos (4UL) /*!< TDBUE (Bit 4) */ + #define R_GPT7_GTDTCR_TDBUE_Msk (0x10UL) /*!< TDBUE (Bitfield-Mask: 0x01) */ + #define R_GPT7_GTDTCR_TDBDE_Pos (5UL) /*!< TDBDE (Bit 5) */ + #define R_GPT7_GTDTCR_TDBDE_Msk (0x20UL) /*!< TDBDE (Bitfield-Mask: 0x01) */ + #define R_GPT7_GTDTCR_TDFER_Pos (8UL) /*!< TDFER (Bit 8) */ + #define R_GPT7_GTDTCR_TDFER_Msk (0x100UL) /*!< TDFER (Bitfield-Mask: 0x01) */ +/* ========================================================= GTDVU ========================================================= */ +/* ========================================================= GTDVD ========================================================= */ +/* ========================================================= GTDBU ========================================================= */ +/* ========================================================= GTDBD ========================================================= */ +/* ========================================================= GTSOS ========================================================= */ + #define R_GPT7_GTSOS_SOS_Pos (0UL) /*!< SOS (Bit 0) */ + #define R_GPT7_GTSOS_SOS_Msk (0x3UL) /*!< SOS (Bitfield-Mask: 0x03) */ +/* ======================================================== GTSOTR ========================================================= */ + #define R_GPT7_GTSOTR_SOTR_Pos (0UL) /*!< SOTR (Bit 0) */ + #define R_GPT7_GTSOTR_SOTR_Msk (0x1UL) /*!< SOTR (Bitfield-Mask: 0x01) */ +/* ======================================================== GTADSMR ======================================================== */ + #define R_GPT7_GTADSMR_ADSMS0_Pos (0UL) /*!< ADSMS0 (Bit 0) */ + #define R_GPT7_GTADSMR_ADSMS0_Msk (0x3UL) /*!< ADSMS0 (Bitfield-Mask: 0x03) */ + #define R_GPT7_GTADSMR_ADSMEN0_Pos (8UL) /*!< ADSMEN0 (Bit 8) */ + #define R_GPT7_GTADSMR_ADSMEN0_Msk (0x100UL) /*!< ADSMEN0 (Bitfield-Mask: 0x01) */ + #define R_GPT7_GTADSMR_ADSMS1_Pos (16UL) /*!< ADSMS1 (Bit 16) */ + #define R_GPT7_GTADSMR_ADSMS1_Msk (0x30000UL) /*!< ADSMS1 (Bitfield-Mask: 0x03) */ + #define R_GPT7_GTADSMR_ADSMEN1_Pos (24UL) /*!< ADSMEN1 (Bit 24) */ + #define R_GPT7_GTADSMR_ADSMEN1_Msk (0x1000000UL) /*!< ADSMEN1 (Bitfield-Mask: 0x01) */ +/* ======================================================== GTEITC ========================================================= */ + #define R_GPT7_GTEITC_EIVTC1_Pos (0UL) /*!< EIVTC1 (Bit 0) */ + #define R_GPT7_GTEITC_EIVTC1_Msk (0x3UL) /*!< EIVTC1 (Bitfield-Mask: 0x03) */ + #define R_GPT7_GTEITC_EIVTT1_Pos (4UL) /*!< EIVTT1 (Bit 4) */ + #define R_GPT7_GTEITC_EIVTT1_Msk (0xf0UL) /*!< EIVTT1 (Bitfield-Mask: 0x0f) */ + #define R_GPT7_GTEITC_EITCNT1_Pos (12UL) /*!< EITCNT1 (Bit 12) */ + #define R_GPT7_GTEITC_EITCNT1_Msk (0xf000UL) /*!< EITCNT1 (Bitfield-Mask: 0x0f) */ + #define R_GPT7_GTEITC_EIVTC2_Pos (16UL) /*!< EIVTC2 (Bit 16) */ + #define R_GPT7_GTEITC_EIVTC2_Msk (0x30000UL) /*!< EIVTC2 (Bitfield-Mask: 0x03) */ + #define R_GPT7_GTEITC_EIVTT2_Pos (20UL) /*!< EIVTT2 (Bit 20) */ + #define R_GPT7_GTEITC_EIVTT2_Msk (0xf00000UL) /*!< EIVTT2 (Bitfield-Mask: 0x0f) */ + #define R_GPT7_GTEITC_EITCNT2IV_Pos (24UL) /*!< EITCNT2IV (Bit 24) */ + #define R_GPT7_GTEITC_EITCNT2IV_Msk (0xf000000UL) /*!< EITCNT2IV (Bitfield-Mask: 0x0f) */ + #define R_GPT7_GTEITC_EITCNT2_Pos (28UL) /*!< EITCNT2 (Bit 28) */ + #define R_GPT7_GTEITC_EITCNT2_Msk (0xf0000000UL) /*!< EITCNT2 (Bitfield-Mask: 0x0f) */ +/* ======================================================= GTEITLI1 ======================================================== */ + #define R_GPT7_GTEITLI1_EITLA_Pos (0UL) /*!< EITLA (Bit 0) */ + #define R_GPT7_GTEITLI1_EITLA_Msk (0x7UL) /*!< EITLA (Bitfield-Mask: 0x07) */ + #define R_GPT7_GTEITLI1_EITLB_Pos (4UL) /*!< EITLB (Bit 4) */ + #define R_GPT7_GTEITLI1_EITLB_Msk (0x70UL) /*!< EITLB (Bitfield-Mask: 0x07) */ + #define R_GPT7_GTEITLI1_EITLC_Pos (8UL) /*!< EITLC (Bit 8) */ + #define R_GPT7_GTEITLI1_EITLC_Msk (0x700UL) /*!< EITLC (Bitfield-Mask: 0x07) */ + #define R_GPT7_GTEITLI1_EITLD_Pos (12UL) /*!< EITLD (Bit 12) */ + #define R_GPT7_GTEITLI1_EITLD_Msk (0x7000UL) /*!< EITLD (Bitfield-Mask: 0x07) */ + #define R_GPT7_GTEITLI1_EITLE_Pos (16UL) /*!< EITLE (Bit 16) */ + #define R_GPT7_GTEITLI1_EITLE_Msk (0x70000UL) /*!< EITLE (Bitfield-Mask: 0x07) */ + #define R_GPT7_GTEITLI1_EITLF_Pos (20UL) /*!< EITLF (Bit 20) */ + #define R_GPT7_GTEITLI1_EITLF_Msk (0x700000UL) /*!< EITLF (Bitfield-Mask: 0x07) */ + #define R_GPT7_GTEITLI1_EITLV_Pos (24UL) /*!< EITLV (Bit 24) */ + #define R_GPT7_GTEITLI1_EITLV_Msk (0x7000000UL) /*!< EITLV (Bitfield-Mask: 0x07) */ + #define R_GPT7_GTEITLI1_EITLU_Pos (28UL) /*!< EITLU (Bit 28) */ + #define R_GPT7_GTEITLI1_EITLU_Msk (0x70000000UL) /*!< EITLU (Bitfield-Mask: 0x07) */ +/* ======================================================= GTEITLI2 ======================================================== */ + #define R_GPT7_GTEITLI2_EADTAL_Pos (0UL) /*!< EADTAL (Bit 0) */ + #define R_GPT7_GTEITLI2_EADTAL_Msk (0x7UL) /*!< EADTAL (Bitfield-Mask: 0x07) */ + #define R_GPT7_GTEITLI2_EADTBL_Pos (4UL) /*!< EADTBL (Bit 4) */ + #define R_GPT7_GTEITLI2_EADTBL_Msk (0x70UL) /*!< EADTBL (Bitfield-Mask: 0x07) */ +/* ======================================================== GTEITLB ======================================================== */ + #define R_GPT7_GTEITLB_EBTLCA_Pos (0UL) /*!< EBTLCA (Bit 0) */ + #define R_GPT7_GTEITLB_EBTLCA_Msk (0x7UL) /*!< EBTLCA (Bitfield-Mask: 0x07) */ + #define R_GPT7_GTEITLB_EBTLCB_Pos (4UL) /*!< EBTLCB (Bit 4) */ + #define R_GPT7_GTEITLB_EBTLCB_Msk (0x70UL) /*!< EBTLCB (Bitfield-Mask: 0x07) */ + #define R_GPT7_GTEITLB_EBTLPR_Pos (8UL) /*!< EBTLPR (Bit 8) */ + #define R_GPT7_GTEITLB_EBTLPR_Msk (0x700UL) /*!< EBTLPR (Bitfield-Mask: 0x07) */ + #define R_GPT7_GTEITLB_EBTLADA_Pos (16UL) /*!< EBTLADA (Bit 16) */ + #define R_GPT7_GTEITLB_EBTLADA_Msk (0x70000UL) /*!< EBTLADA (Bitfield-Mask: 0x07) */ + #define R_GPT7_GTEITLB_EBTLADB_Pos (20UL) /*!< EBTLADB (Bit 20) */ + #define R_GPT7_GTEITLB_EBTLADB_Msk (0x700000UL) /*!< EBTLADB (Bitfield-Mask: 0x07) */ + #define R_GPT7_GTEITLB_EBTLDVU_Pos (24UL) /*!< EBTLDVU (Bit 24) */ + #define R_GPT7_GTEITLB_EBTLDVU_Msk (0x7000000UL) /*!< EBTLDVU (Bitfield-Mask: 0x07) */ + #define R_GPT7_GTEITLB_EBTLDVD_Pos (28UL) /*!< EBTLDVD (Bit 28) */ + #define R_GPT7_GTEITLB_EBTLDVD_Msk (0x70000000UL) /*!< EBTLDVD (Bitfield-Mask: 0x07) */ +/* ======================================================== GTSECSR ======================================================== */ + #define R_GPT7_GTSECSR_SECSEL0_Pos (0UL) /*!< SECSEL0 (Bit 0) */ + #define R_GPT7_GTSECSR_SECSEL0_Msk (0x1UL) /*!< SECSEL0 (Bitfield-Mask: 0x01) */ + #define R_GPT7_GTSECSR_SECSEL1_Pos (1UL) /*!< SECSEL1 (Bit 1) */ + #define R_GPT7_GTSECSR_SECSEL1_Msk (0x2UL) /*!< SECSEL1 (Bitfield-Mask: 0x01) */ + #define R_GPT7_GTSECSR_SECSEL2_Pos (2UL) /*!< SECSEL2 (Bit 2) */ + #define R_GPT7_GTSECSR_SECSEL2_Msk (0x4UL) /*!< SECSEL2 (Bitfield-Mask: 0x01) */ + #define R_GPT7_GTSECSR_SECSEL3_Pos (3UL) /*!< SECSEL3 (Bit 3) */ + #define R_GPT7_GTSECSR_SECSEL3_Msk (0x8UL) /*!< SECSEL3 (Bitfield-Mask: 0x01) */ + #define R_GPT7_GTSECSR_SECSEL4_Pos (4UL) /*!< SECSEL4 (Bit 4) */ + #define R_GPT7_GTSECSR_SECSEL4_Msk (0x10UL) /*!< SECSEL4 (Bitfield-Mask: 0x01) */ + #define R_GPT7_GTSECSR_SECSEL5_Pos (5UL) /*!< SECSEL5 (Bit 5) */ + #define R_GPT7_GTSECSR_SECSEL5_Msk (0x20UL) /*!< SECSEL5 (Bitfield-Mask: 0x01) */ + #define R_GPT7_GTSECSR_SECSEL6_Pos (6UL) /*!< SECSEL6 (Bit 6) */ + #define R_GPT7_GTSECSR_SECSEL6_Msk (0x40UL) /*!< SECSEL6 (Bitfield-Mask: 0x01) */ +/* ======================================================== GTSECR ========================================================= */ + #define R_GPT7_GTSECR_SBDCE_Pos (0UL) /*!< SBDCE (Bit 0) */ + #define R_GPT7_GTSECR_SBDCE_Msk (0x1UL) /*!< SBDCE (Bitfield-Mask: 0x01) */ + #define R_GPT7_GTSECR_SBDPE_Pos (1UL) /*!< SBDPE (Bit 1) */ + #define R_GPT7_GTSECR_SBDPE_Msk (0x2UL) /*!< SBDPE (Bitfield-Mask: 0x01) */ + #define R_GPT7_GTSECR_SBDAE_Pos (2UL) /*!< SBDAE (Bit 2) */ + #define R_GPT7_GTSECR_SBDAE_Msk (0x4UL) /*!< SBDAE (Bitfield-Mask: 0x01) */ + #define R_GPT7_GTSECR_SBDDE_Pos (3UL) /*!< SBDDE (Bit 3) */ + #define R_GPT7_GTSECR_SBDDE_Msk (0x8UL) /*!< SBDDE (Bitfield-Mask: 0x01) */ + #define R_GPT7_GTSECR_SBDCD_Pos (8UL) /*!< SBDCD (Bit 8) */ + #define R_GPT7_GTSECR_SBDCD_Msk (0x100UL) /*!< SBDCD (Bitfield-Mask: 0x01) */ + #define R_GPT7_GTSECR_SBDPD_Pos (9UL) /*!< SBDPD (Bit 9) */ + #define R_GPT7_GTSECR_SBDPD_Msk (0x200UL) /*!< SBDPD (Bitfield-Mask: 0x01) */ + #define R_GPT7_GTSECR_SBDAD_Pos (10UL) /*!< SBDAD (Bit 10) */ + #define R_GPT7_GTSECR_SBDAD_Msk (0x400UL) /*!< SBDAD (Bitfield-Mask: 0x01) */ + #define R_GPT7_GTSECR_SBDDD_Pos (11UL) /*!< SBDDD (Bit 11) */ + #define R_GPT7_GTSECR_SBDDD_Msk (0x800UL) /*!< SBDDD (Bitfield-Mask: 0x01) */ +/* ======================================================== GTSWSR ========================================================= */ + #define R_GPT7_GTSWSR_WSGTRGA_Pos (0UL) /*!< WSGTRGA (Bit 0) */ + #define R_GPT7_GTSWSR_WSGTRGA_Msk (0x3UL) /*!< WSGTRGA (Bitfield-Mask: 0x03) */ + #define R_GPT7_GTSWSR_WSGTRGB_Pos (2UL) /*!< WSGTRGB (Bit 2) */ + #define R_GPT7_GTSWSR_WSGTRGB_Msk (0xcUL) /*!< WSGTRGB (Bitfield-Mask: 0x03) */ + #define R_GPT7_GTSWSR_WSGTRGC_Pos (4UL) /*!< WSGTRGC (Bit 4) */ + #define R_GPT7_GTSWSR_WSGTRGC_Msk (0x30UL) /*!< WSGTRGC (Bitfield-Mask: 0x03) */ + #define R_GPT7_GTSWSR_WSGTRGD_Pos (6UL) /*!< WSGTRGD (Bit 6) */ + #define R_GPT7_GTSWSR_WSGTRGD_Msk (0xc0UL) /*!< WSGTRGD (Bitfield-Mask: 0x03) */ + #define R_GPT7_GTSWSR_WSELCA_Pos (16UL) /*!< WSELCA (Bit 16) */ + #define R_GPT7_GTSWSR_WSELCA_Msk (0x10000UL) /*!< WSELCA (Bitfield-Mask: 0x01) */ + #define R_GPT7_GTSWSR_WSELCB_Pos (17UL) /*!< WSELCB (Bit 17) */ + #define R_GPT7_GTSWSR_WSELCB_Msk (0x20000UL) /*!< WSELCB (Bitfield-Mask: 0x01) */ + #define R_GPT7_GTSWSR_WSELCC_Pos (18UL) /*!< WSELCC (Bit 18) */ + #define R_GPT7_GTSWSR_WSELCC_Msk (0x40000UL) /*!< WSELCC (Bitfield-Mask: 0x01) */ + #define R_GPT7_GTSWSR_WSELCD_Pos (19UL) /*!< WSELCD (Bit 19) */ + #define R_GPT7_GTSWSR_WSELCD_Msk (0x80000UL) /*!< WSELCD (Bitfield-Mask: 0x01) */ + #define R_GPT7_GTSWSR_WSELCE_Pos (20UL) /*!< WSELCE (Bit 20) */ + #define R_GPT7_GTSWSR_WSELCE_Msk (0x100000UL) /*!< WSELCE (Bitfield-Mask: 0x01) */ + #define R_GPT7_GTSWSR_WSELCF_Pos (21UL) /*!< WSELCF (Bit 21) */ + #define R_GPT7_GTSWSR_WSELCF_Msk (0x200000UL) /*!< WSELCF (Bitfield-Mask: 0x01) */ + #define R_GPT7_GTSWSR_WSELCG_Pos (22UL) /*!< WSELCG (Bit 22) */ + #define R_GPT7_GTSWSR_WSELCG_Msk (0x400000UL) /*!< WSELCG (Bitfield-Mask: 0x01) */ + #define R_GPT7_GTSWSR_CSELCH_Pos (23UL) /*!< CSELCH (Bit 23) */ + #define R_GPT7_GTSWSR_CSELCH_Msk (0x800000UL) /*!< CSELCH (Bitfield-Mask: 0x01) */ +/* ======================================================== GTSWOS ========================================================= */ + +/* =========================================================================================================================== */ +/* ================ R_SCI0 ================ */ +/* =========================================================================================================================== */ + +/* ========================================================== RDR ========================================================== */ + #define R_SCI0_RDR_RDAT_Pos (0UL) /*!< RDAT (Bit 0) */ + #define R_SCI0_RDR_RDAT_Msk (0x1ffUL) /*!< RDAT (Bitfield-Mask: 0x1ff) */ + #define R_SCI0_RDR_MPB_Pos (9UL) /*!< MPB (Bit 9) */ + #define R_SCI0_RDR_MPB_Msk (0x200UL) /*!< MPB (Bitfield-Mask: 0x01) */ + #define R_SCI0_RDR_DR_Pos (10UL) /*!< DR (Bit 10) */ + #define R_SCI0_RDR_DR_Msk (0x400UL) /*!< DR (Bitfield-Mask: 0x01) */ + #define R_SCI0_RDR_FPER_Pos (11UL) /*!< FPER (Bit 11) */ + #define R_SCI0_RDR_FPER_Msk (0x800UL) /*!< FPER (Bitfield-Mask: 0x01) */ + #define R_SCI0_RDR_FFER_Pos (12UL) /*!< FFER (Bit 12) */ + #define R_SCI0_RDR_FFER_Msk (0x1000UL) /*!< FFER (Bitfield-Mask: 0x01) */ + #define R_SCI0_RDR_ORER_Pos (24UL) /*!< ORER (Bit 24) */ + #define R_SCI0_RDR_ORER_Msk (0x1000000UL) /*!< ORER (Bitfield-Mask: 0x01) */ + #define R_SCI0_RDR_PER_Pos (27UL) /*!< PER (Bit 27) */ + #define R_SCI0_RDR_PER_Msk (0x8000000UL) /*!< PER (Bitfield-Mask: 0x01) */ + #define R_SCI0_RDR_FER_Pos (28UL) /*!< FER (Bit 28) */ + #define R_SCI0_RDR_FER_Msk (0x10000000UL) /*!< FER (Bitfield-Mask: 0x01) */ +/* ========================================================== TDR ========================================================== */ + #define R_SCI0_TDR_TDAT_Pos (0UL) /*!< TDAT (Bit 0) */ + #define R_SCI0_TDR_TDAT_Msk (0x1ffUL) /*!< TDAT (Bitfield-Mask: 0x1ff) */ + #define R_SCI0_TDR_MPBT_Pos (9UL) /*!< MPBT (Bit 9) */ + #define R_SCI0_TDR_MPBT_Msk (0x200UL) /*!< MPBT (Bitfield-Mask: 0x01) */ +/* ========================================================= CCR0 ========================================================== */ + #define R_SCI0_CCR0_RE_Pos (0UL) /*!< RE (Bit 0) */ + #define R_SCI0_CCR0_RE_Msk (0x1UL) /*!< RE (Bitfield-Mask: 0x01) */ + #define R_SCI0_CCR0_TE_Pos (4UL) /*!< TE (Bit 4) */ + #define R_SCI0_CCR0_TE_Msk (0x10UL) /*!< TE (Bitfield-Mask: 0x01) */ + #define R_SCI0_CCR0_MPIE_Pos (8UL) /*!< MPIE (Bit 8) */ + #define R_SCI0_CCR0_MPIE_Msk (0x100UL) /*!< MPIE (Bitfield-Mask: 0x01) */ + #define R_SCI0_CCR0_DCME_Pos (9UL) /*!< DCME (Bit 9) */ + #define R_SCI0_CCR0_DCME_Msk (0x200UL) /*!< DCME (Bitfield-Mask: 0x01) */ + #define R_SCI0_CCR0_IDSEL_Pos (10UL) /*!< IDSEL (Bit 10) */ + #define R_SCI0_CCR0_IDSEL_Msk (0x400UL) /*!< IDSEL (Bitfield-Mask: 0x01) */ + #define R_SCI0_CCR0_RIE_Pos (16UL) /*!< RIE (Bit 16) */ + #define R_SCI0_CCR0_RIE_Msk (0x10000UL) /*!< RIE (Bitfield-Mask: 0x01) */ + #define R_SCI0_CCR0_TIE_Pos (20UL) /*!< TIE (Bit 20) */ + #define R_SCI0_CCR0_TIE_Msk (0x100000UL) /*!< TIE (Bitfield-Mask: 0x01) */ + #define R_SCI0_CCR0_TEIE_Pos (21UL) /*!< TEIE (Bit 21) */ + #define R_SCI0_CCR0_TEIE_Msk (0x200000UL) /*!< TEIE (Bitfield-Mask: 0x01) */ + #define R_SCI0_CCR0_SSE_Pos (24UL) /*!< SSE (Bit 24) */ + #define R_SCI0_CCR0_SSE_Msk (0x1000000UL) /*!< SSE (Bitfield-Mask: 0x01) */ +/* ========================================================= CCR1 ========================================================== */ + #define R_SCI0_CCR1_CTSE_Pos (0UL) /*!< CTSE (Bit 0) */ + #define R_SCI0_CCR1_CTSE_Msk (0x1UL) /*!< CTSE (Bitfield-Mask: 0x01) */ + #define R_SCI0_CCR1_CTSPEN_Pos (1UL) /*!< CTSPEN (Bit 1) */ + #define R_SCI0_CCR1_CTSPEN_Msk (0x2UL) /*!< CTSPEN (Bitfield-Mask: 0x01) */ + #define R_SCI0_CCR1_SPB2DT_Pos (4UL) /*!< SPB2DT (Bit 4) */ + #define R_SCI0_CCR1_SPB2DT_Msk (0x10UL) /*!< SPB2DT (Bitfield-Mask: 0x01) */ + #define R_SCI0_CCR1_SPB2IO_Pos (5UL) /*!< SPB2IO (Bit 5) */ + #define R_SCI0_CCR1_SPB2IO_Msk (0x20UL) /*!< SPB2IO (Bitfield-Mask: 0x01) */ + #define R_SCI0_CCR1_PE_Pos (8UL) /*!< PE (Bit 8) */ + #define R_SCI0_CCR1_PE_Msk (0x100UL) /*!< PE (Bitfield-Mask: 0x01) */ + #define R_SCI0_CCR1_PM_Pos (9UL) /*!< PM (Bit 9) */ + #define R_SCI0_CCR1_PM_Msk (0x200UL) /*!< PM (Bitfield-Mask: 0x01) */ + #define R_SCI0_CCR1_TINV_Pos (12UL) /*!< TINV (Bit 12) */ + #define R_SCI0_CCR1_TINV_Msk (0x1000UL) /*!< TINV (Bitfield-Mask: 0x01) */ + #define R_SCI0_CCR1_RINV_Pos (13UL) /*!< RINV (Bit 13) */ + #define R_SCI0_CCR1_RINV_Msk (0x2000UL) /*!< RINV (Bitfield-Mask: 0x01) */ + #define R_SCI0_CCR1_SPLP_Pos (16UL) /*!< SPLP (Bit 16) */ + #define R_SCI0_CCR1_SPLP_Msk (0x10000UL) /*!< SPLP (Bitfield-Mask: 0x01) */ + #define R_SCI0_CCR1_SHARPS_Pos (20UL) /*!< SHARPS (Bit 20) */ + #define R_SCI0_CCR1_SHARPS_Msk (0x100000UL) /*!< SHARPS (Bitfield-Mask: 0x01) */ + #define R_SCI0_CCR1_NFCS_Pos (24UL) /*!< NFCS (Bit 24) */ + #define R_SCI0_CCR1_NFCS_Msk (0x7000000UL) /*!< NFCS (Bitfield-Mask: 0x07) */ + #define R_SCI0_CCR1_NFEN_Pos (28UL) /*!< NFEN (Bit 28) */ + #define R_SCI0_CCR1_NFEN_Msk (0x10000000UL) /*!< NFEN (Bitfield-Mask: 0x01) */ +/* ========================================================= CCR2 ========================================================== */ + #define R_SCI0_CCR2_BCP_Pos (0UL) /*!< BCP (Bit 0) */ + #define R_SCI0_CCR2_BCP_Msk (0x7UL) /*!< BCP (Bitfield-Mask: 0x07) */ + #define R_SCI0_CCR2_BGDM_Pos (4UL) /*!< BGDM (Bit 4) */ + #define R_SCI0_CCR2_BGDM_Msk (0x10UL) /*!< BGDM (Bitfield-Mask: 0x01) */ + #define R_SCI0_CCR2_ABCS_Pos (5UL) /*!< ABCS (Bit 5) */ + #define R_SCI0_CCR2_ABCS_Msk (0x20UL) /*!< ABCS (Bitfield-Mask: 0x01) */ + #define R_SCI0_CCR2_ABCSE_Pos (6UL) /*!< ABCSE (Bit 6) */ + #define R_SCI0_CCR2_ABCSE_Msk (0x40UL) /*!< ABCSE (Bitfield-Mask: 0x01) */ + #define R_SCI0_CCR2_BRR_Pos (8UL) /*!< BRR (Bit 8) */ + #define R_SCI0_CCR2_BRR_Msk (0xff00UL) /*!< BRR (Bitfield-Mask: 0xff) */ + #define R_SCI0_CCR2_BRME_Pos (16UL) /*!< BRME (Bit 16) */ + #define R_SCI0_CCR2_BRME_Msk (0x10000UL) /*!< BRME (Bitfield-Mask: 0x01) */ + #define R_SCI0_CCR2_CKS_Pos (20UL) /*!< CKS (Bit 20) */ + #define R_SCI0_CCR2_CKS_Msk (0x300000UL) /*!< CKS (Bitfield-Mask: 0x03) */ + #define R_SCI0_CCR2_MDDR_Pos (24UL) /*!< MDDR (Bit 24) */ + #define R_SCI0_CCR2_MDDR_Msk (0xff000000UL) /*!< MDDR (Bitfield-Mask: 0xff) */ +/* ========================================================= CCR3 ========================================================== */ + #define R_SCI0_CCR3_CPHA_Pos (0UL) /*!< CPHA (Bit 0) */ + #define R_SCI0_CCR3_CPHA_Msk (0x1UL) /*!< CPHA (Bitfield-Mask: 0x01) */ + #define R_SCI0_CCR3_CPOL_Pos (1UL) /*!< CPOL (Bit 1) */ + #define R_SCI0_CCR3_CPOL_Msk (0x2UL) /*!< CPOL (Bitfield-Mask: 0x01) */ + #define R_SCI0_CCR3_BPEN_Pos (7UL) /*!< BPEN (Bit 7) */ + #define R_SCI0_CCR3_BPEN_Msk (0x80UL) /*!< BPEN (Bitfield-Mask: 0x01) */ + #define R_SCI0_CCR3_CHR_Pos (8UL) /*!< CHR (Bit 8) */ + #define R_SCI0_CCR3_CHR_Msk (0x300UL) /*!< CHR (Bitfield-Mask: 0x03) */ + #define R_SCI0_CCR3_LSBF_Pos (12UL) /*!< LSBF (Bit 12) */ + #define R_SCI0_CCR3_LSBF_Msk (0x1000UL) /*!< LSBF (Bitfield-Mask: 0x01) */ + #define R_SCI0_CCR3_SINV_Pos (13UL) /*!< SINV (Bit 13) */ + #define R_SCI0_CCR3_SINV_Msk (0x2000UL) /*!< SINV (Bitfield-Mask: 0x01) */ + #define R_SCI0_CCR3_STP_Pos (14UL) /*!< STP (Bit 14) */ + #define R_SCI0_CCR3_STP_Msk (0x4000UL) /*!< STP (Bitfield-Mask: 0x01) */ + #define R_SCI0_CCR3_RXDESEL_Pos (15UL) /*!< RXDESEL (Bit 15) */ + #define R_SCI0_CCR3_RXDESEL_Msk (0x8000UL) /*!< RXDESEL (Bitfield-Mask: 0x01) */ + #define R_SCI0_CCR3_MOD_Pos (16UL) /*!< MOD (Bit 16) */ + #define R_SCI0_CCR3_MOD_Msk (0x70000UL) /*!< MOD (Bitfield-Mask: 0x07) */ + #define R_SCI0_CCR3_MP_Pos (19UL) /*!< MP (Bit 19) */ + #define R_SCI0_CCR3_MP_Msk (0x80000UL) /*!< MP (Bitfield-Mask: 0x01) */ + #define R_SCI0_CCR3_FM_Pos (20UL) /*!< FM (Bit 20) */ + #define R_SCI0_CCR3_FM_Msk (0x100000UL) /*!< FM (Bitfield-Mask: 0x01) */ + #define R_SCI0_CCR3_DEN_Pos (21UL) /*!< DEN (Bit 21) */ + #define R_SCI0_CCR3_DEN_Msk (0x200000UL) /*!< DEN (Bitfield-Mask: 0x01) */ + #define R_SCI0_CCR3_CKE_Pos (24UL) /*!< CKE (Bit 24) */ + #define R_SCI0_CCR3_CKE_Msk (0x3000000UL) /*!< CKE (Bitfield-Mask: 0x03) */ + #define R_SCI0_CCR3_GM_Pos (28UL) /*!< GM (Bit 28) */ + #define R_SCI0_CCR3_GM_Msk (0x10000000UL) /*!< GM (Bitfield-Mask: 0x01) */ + #define R_SCI0_CCR3_BLK_Pos (29UL) /*!< BLK (Bit 29) */ + #define R_SCI0_CCR3_BLK_Msk (0x20000000UL) /*!< BLK (Bitfield-Mask: 0x01) */ +/* ========================================================= CCR4 ========================================================== */ + #define R_SCI0_CCR4_CMPD_Pos (0UL) /*!< CMPD (Bit 0) */ + #define R_SCI0_CCR4_CMPD_Msk (0x1ffUL) /*!< CMPD (Bitfield-Mask: 0x1ff) */ + #define R_SCI0_CCR4_ASEN_Pos (16UL) /*!< ASEN (Bit 16) */ + #define R_SCI0_CCR4_ASEN_Msk (0x10000UL) /*!< ASEN (Bitfield-Mask: 0x01) */ + #define R_SCI0_CCR4_ATEN_Pos (17UL) /*!< ATEN (Bit 17) */ + #define R_SCI0_CCR4_ATEN_Msk (0x20000UL) /*!< ATEN (Bitfield-Mask: 0x01) */ + #define R_SCI0_CCR4_AST_Pos (24UL) /*!< AST (Bit 24) */ + #define R_SCI0_CCR4_AST_Msk (0x7000000UL) /*!< AST (Bitfield-Mask: 0x07) */ + #define R_SCI0_CCR4_AJD_Pos (27UL) /*!< AJD (Bit 27) */ + #define R_SCI0_CCR4_AJD_Msk (0x8000000UL) /*!< AJD (Bitfield-Mask: 0x01) */ + #define R_SCI0_CCR4_ATT_Pos (28UL) /*!< ATT (Bit 28) */ + #define R_SCI0_CCR4_ATT_Msk (0x70000000UL) /*!< ATT (Bitfield-Mask: 0x07) */ + #define R_SCI0_CCR4_AET_Pos (31UL) /*!< AET (Bit 31) */ + #define R_SCI0_CCR4_AET_Msk (0x80000000UL) /*!< AET (Bitfield-Mask: 0x01) */ +/* ========================================================== ICR ========================================================== */ + #define R_SCI0_ICR_IICDL_Pos (0UL) /*!< IICDL (Bit 0) */ + #define R_SCI0_ICR_IICDL_Msk (0x1fUL) /*!< IICDL (Bitfield-Mask: 0x1f) */ + #define R_SCI0_ICR_IICINTM_Pos (8UL) /*!< IICINTM (Bit 8) */ + #define R_SCI0_ICR_IICINTM_Msk (0x100UL) /*!< IICINTM (Bitfield-Mask: 0x01) */ + #define R_SCI0_ICR_IICCSC_Pos (9UL) /*!< IICCSC (Bit 9) */ + #define R_SCI0_ICR_IICCSC_Msk (0x200UL) /*!< IICCSC (Bitfield-Mask: 0x01) */ + #define R_SCI0_ICR_IICACKT_Pos (13UL) /*!< IICACKT (Bit 13) */ + #define R_SCI0_ICR_IICACKT_Msk (0x2000UL) /*!< IICACKT (Bitfield-Mask: 0x01) */ + #define R_SCI0_ICR_IICSTAREQ_Pos (16UL) /*!< IICSTAREQ (Bit 16) */ + #define R_SCI0_ICR_IICSTAREQ_Msk (0x10000UL) /*!< IICSTAREQ (Bitfield-Mask: 0x01) */ + #define R_SCI0_ICR_IICRSTAREQ_Pos (17UL) /*!< IICRSTAREQ (Bit 17) */ + #define R_SCI0_ICR_IICRSTAREQ_Msk (0x20000UL) /*!< IICRSTAREQ (Bitfield-Mask: 0x01) */ + #define R_SCI0_ICR_IICSTPREQ_Pos (18UL) /*!< IICSTPREQ (Bit 18) */ + #define R_SCI0_ICR_IICSTPREQ_Msk (0x40000UL) /*!< IICSTPREQ (Bitfield-Mask: 0x01) */ + #define R_SCI0_ICR_IICSDAS_Pos (20UL) /*!< IICSDAS (Bit 20) */ + #define R_SCI0_ICR_IICSDAS_Msk (0x300000UL) /*!< IICSDAS (Bitfield-Mask: 0x03) */ + #define R_SCI0_ICR_IICSCLS_Pos (22UL) /*!< IICSCLS (Bit 22) */ + #define R_SCI0_ICR_IICSCLS_Msk (0xc00000UL) /*!< IICSCLS (Bitfield-Mask: 0x03) */ +/* ========================================================== FCR ========================================================== */ + #define R_SCI0_FCR_DRES_Pos (0UL) /*!< DRES (Bit 0) */ + #define R_SCI0_FCR_DRES_Msk (0x1UL) /*!< DRES (Bitfield-Mask: 0x01) */ + #define R_SCI0_FCR_TTRG_Pos (8UL) /*!< TTRG (Bit 8) */ + #define R_SCI0_FCR_TTRG_Msk (0x1f00UL) /*!< TTRG (Bitfield-Mask: 0x1f) */ + #define R_SCI0_FCR_TFRST_Pos (15UL) /*!< TFRST (Bit 15) */ + #define R_SCI0_FCR_TFRST_Msk (0x8000UL) /*!< TFRST (Bitfield-Mask: 0x01) */ + #define R_SCI0_FCR_RTRG_Pos (16UL) /*!< RTRG (Bit 16) */ + #define R_SCI0_FCR_RTRG_Msk (0x1f0000UL) /*!< RTRG (Bitfield-Mask: 0x1f) */ + #define R_SCI0_FCR_RFRST_Pos (23UL) /*!< RFRST (Bit 23) */ + #define R_SCI0_FCR_RFRST_Msk (0x800000UL) /*!< RFRST (Bitfield-Mask: 0x01) */ + #define R_SCI0_FCR_RSTRG_Pos (24UL) /*!< RSTRG (Bit 24) */ + #define R_SCI0_FCR_RSTRG_Msk (0x1f000000UL) /*!< RSTRG (Bitfield-Mask: 0x1f) */ +/* ========================================================== DCR ========================================================== */ + #define R_SCI0_DCR_DEPOL_Pos (0UL) /*!< DEPOL (Bit 0) */ + #define R_SCI0_DCR_DEPOL_Msk (0x1UL) /*!< DEPOL (Bitfield-Mask: 0x01) */ + #define R_SCI0_DCR_DEAST_Pos (8UL) /*!< DEAST (Bit 8) */ + #define R_SCI0_DCR_DEAST_Msk (0x1f00UL) /*!< DEAST (Bitfield-Mask: 0x1f) */ + #define R_SCI0_DCR_DENGT_Pos (16UL) /*!< DENGT (Bit 16) */ + #define R_SCI0_DCR_DENGT_Msk (0x1f0000UL) /*!< DENGT (Bitfield-Mask: 0x1f) */ +/* ========================================================== CSR ========================================================== */ + #define R_SCI0_CSR_ERS_Pos (4UL) /*!< ERS (Bit 4) */ + #define R_SCI0_CSR_ERS_Msk (0x10UL) /*!< ERS (Bitfield-Mask: 0x01) */ + #define R_SCI0_CSR_RXDMON_Pos (15UL) /*!< RXDMON (Bit 15) */ + #define R_SCI0_CSR_RXDMON_Msk (0x8000UL) /*!< RXDMON (Bitfield-Mask: 0x01) */ + #define R_SCI0_CSR_DCMF_Pos (16UL) /*!< DCMF (Bit 16) */ + #define R_SCI0_CSR_DCMF_Msk (0x10000UL) /*!< DCMF (Bitfield-Mask: 0x01) */ + #define R_SCI0_CSR_DPER_Pos (17UL) /*!< DPER (Bit 17) */ + #define R_SCI0_CSR_DPER_Msk (0x20000UL) /*!< DPER (Bitfield-Mask: 0x01) */ + #define R_SCI0_CSR_DFER_Pos (18UL) /*!< DFER (Bit 18) */ + #define R_SCI0_CSR_DFER_Msk (0x40000UL) /*!< DFER (Bitfield-Mask: 0x01) */ + #define R_SCI0_CSR_ORER_Pos (24UL) /*!< ORER (Bit 24) */ + #define R_SCI0_CSR_ORER_Msk (0x1000000UL) /*!< ORER (Bitfield-Mask: 0x01) */ + #define R_SCI0_CSR_MFF_Pos (26UL) /*!< MFF (Bit 26) */ + #define R_SCI0_CSR_MFF_Msk (0x4000000UL) /*!< MFF (Bitfield-Mask: 0x01) */ + #define R_SCI0_CSR_PER_Pos (27UL) /*!< PER (Bit 27) */ + #define R_SCI0_CSR_PER_Msk (0x8000000UL) /*!< PER (Bitfield-Mask: 0x01) */ + #define R_SCI0_CSR_FER_Pos (28UL) /*!< FER (Bit 28) */ + #define R_SCI0_CSR_FER_Msk (0x10000000UL) /*!< FER (Bitfield-Mask: 0x01) */ + #define R_SCI0_CSR_TDRE_Pos (29UL) /*!< TDRE (Bit 29) */ + #define R_SCI0_CSR_TDRE_Msk (0x20000000UL) /*!< TDRE (Bitfield-Mask: 0x01) */ + #define R_SCI0_CSR_TEND_Pos (30UL) /*!< TEND (Bit 30) */ + #define R_SCI0_CSR_TEND_Msk (0x40000000UL) /*!< TEND (Bitfield-Mask: 0x01) */ + #define R_SCI0_CSR_RDRF_Pos (31UL) /*!< RDRF (Bit 31) */ + #define R_SCI0_CSR_RDRF_Msk (0x80000000UL) /*!< RDRF (Bitfield-Mask: 0x01) */ +/* ========================================================== ISR ========================================================== */ + #define R_SCI0_ISR_IICACKR_Pos (0UL) /*!< IICACKR (Bit 0) */ + #define R_SCI0_ISR_IICACKR_Msk (0x1UL) /*!< IICACKR (Bitfield-Mask: 0x01) */ + #define R_SCI0_ISR_IICSTIF_Pos (3UL) /*!< IICSTIF (Bit 3) */ + #define R_SCI0_ISR_IICSTIF_Msk (0x8UL) /*!< IICSTIF (Bitfield-Mask: 0x01) */ +/* ========================================================= FRSR ========================================================== */ + #define R_SCI0_FRSR_DR_Pos (0UL) /*!< DR (Bit 0) */ + #define R_SCI0_FRSR_DR_Msk (0x1UL) /*!< DR (Bitfield-Mask: 0x01) */ + #define R_SCI0_FRSR_R_Pos (8UL) /*!< R (Bit 8) */ + #define R_SCI0_FRSR_R_Msk (0x3f00UL) /*!< R (Bitfield-Mask: 0x3f) */ + #define R_SCI0_FRSR_PNUM_Pos (16UL) /*!< PNUM (Bit 16) */ + #define R_SCI0_FRSR_PNUM_Msk (0x3f0000UL) /*!< PNUM (Bitfield-Mask: 0x3f) */ + #define R_SCI0_FRSR_FNUM_Pos (24UL) /*!< FNUM (Bit 24) */ + #define R_SCI0_FRSR_FNUM_Msk (0x3f000000UL) /*!< FNUM (Bitfield-Mask: 0x3f) */ +/* ========================================================= FTSR ========================================================== */ + #define R_SCI0_FTSR_T_Pos (0UL) /*!< T (Bit 0) */ + #define R_SCI0_FTSR_T_Msk (0x3fUL) /*!< T (Bitfield-Mask: 0x3f) */ +/* ========================================================= CFCLR ========================================================= */ + #define R_SCI0_CFCLR_ERSC_Pos (4UL) /*!< ERSC (Bit 4) */ + #define R_SCI0_CFCLR_ERSC_Msk (0x10UL) /*!< ERSC (Bitfield-Mask: 0x01) */ + #define R_SCI0_CFCLR_DCMFC_Pos (16UL) /*!< DCMFC (Bit 16) */ + #define R_SCI0_CFCLR_DCMFC_Msk (0x10000UL) /*!< DCMFC (Bitfield-Mask: 0x01) */ + #define R_SCI0_CFCLR_DPERC_Pos (17UL) /*!< DPERC (Bit 17) */ + #define R_SCI0_CFCLR_DPERC_Msk (0x20000UL) /*!< DPERC (Bitfield-Mask: 0x01) */ + #define R_SCI0_CFCLR_DFERC_Pos (18UL) /*!< DFERC (Bit 18) */ + #define R_SCI0_CFCLR_DFERC_Msk (0x40000UL) /*!< DFERC (Bitfield-Mask: 0x01) */ + #define R_SCI0_CFCLR_ORERC_Pos (24UL) /*!< ORERC (Bit 24) */ + #define R_SCI0_CFCLR_ORERC_Msk (0x1000000UL) /*!< ORERC (Bitfield-Mask: 0x01) */ + #define R_SCI0_CFCLR_MFFC_Pos (26UL) /*!< MFFC (Bit 26) */ + #define R_SCI0_CFCLR_MFFC_Msk (0x4000000UL) /*!< MFFC (Bitfield-Mask: 0x01) */ + #define R_SCI0_CFCLR_PERC_Pos (27UL) /*!< PERC (Bit 27) */ + #define R_SCI0_CFCLR_PERC_Msk (0x8000000UL) /*!< PERC (Bitfield-Mask: 0x01) */ + #define R_SCI0_CFCLR_FERC_Pos (28UL) /*!< FERC (Bit 28) */ + #define R_SCI0_CFCLR_FERC_Msk (0x10000000UL) /*!< FERC (Bitfield-Mask: 0x01) */ + #define R_SCI0_CFCLR_TDREC_Pos (29UL) /*!< TDREC (Bit 29) */ + #define R_SCI0_CFCLR_TDREC_Msk (0x20000000UL) /*!< TDREC (Bitfield-Mask: 0x01) */ + #define R_SCI0_CFCLR_RDRFC_Pos (31UL) /*!< RDRFC (Bit 31) */ + #define R_SCI0_CFCLR_RDRFC_Msk (0x80000000UL) /*!< RDRFC (Bitfield-Mask: 0x01) */ +/* ======================================================== ICFCLR ========================================================= */ + #define R_SCI0_ICFCLR_IICSTIFC_Pos (3UL) /*!< IICSTIFC (Bit 3) */ + #define R_SCI0_ICFCLR_IICSTIFC_Msk (0x8UL) /*!< IICSTIFC (Bitfield-Mask: 0x01) */ +/* ========================================================= FFCLR ========================================================= */ + #define R_SCI0_FFCLR_DRC_Pos (0UL) /*!< DRC (Bit 0) */ + #define R_SCI0_FFCLR_DRC_Msk (0x1UL) /*!< DRC (Bitfield-Mask: 0x01) */ + +/* =========================================================================================================================== */ +/* ================ R_SPI0 ================ */ +/* =========================================================================================================================== */ + +/* ========================================================= SPDR ========================================================== */ + #define R_SPI0_SPDR_SPD_Pos (0UL) /*!< SPD (Bit 0) */ + #define R_SPI0_SPDR_SPD_Msk (0xffffffffUL) /*!< SPD (Bitfield-Mask: 0xffffffff) */ +/* ======================================================== SPDR_HA ======================================================== */ +/* ======================================================== SPDR_BY ======================================================== */ +/* ========================================================= SPCKD ========================================================= */ + #define R_SPI0_SPCKD_SCKDL_Pos (0UL) /*!< SCKDL (Bit 0) */ + #define R_SPI0_SPCKD_SCKDL_Msk (0x7UL) /*!< SCKDL (Bitfield-Mask: 0x07) */ +/* ========================================================= SSLND ========================================================= */ + #define R_SPI0_SSLND_SLNDL_Pos (0UL) /*!< SLNDL (Bit 0) */ + #define R_SPI0_SSLND_SLNDL_Msk (0x7UL) /*!< SLNDL (Bitfield-Mask: 0x07) */ +/* ========================================================= SPND ========================================================== */ + #define R_SPI0_SPND_SPNDL_Pos (0UL) /*!< SPNDL (Bit 0) */ + #define R_SPI0_SPND_SPNDL_Msk (0x7UL) /*!< SPNDL (Bitfield-Mask: 0x07) */ +/* ========================================================= MRCKD ========================================================= */ + #define R_SPI0_MRCKD_ARST_Pos (0UL) /*!< ARST (Bit 0) */ + #define R_SPI0_MRCKD_ARST_Msk (0x7UL) /*!< ARST (Bitfield-Mask: 0x07) */ +/* ========================================================= SPCR ========================================================== */ + #define R_SPI0_SPCR_SPE_Pos (0UL) /*!< SPE (Bit 0) */ + #define R_SPI0_SPCR_SPE_Msk (0x1UL) /*!< SPE (Bitfield-Mask: 0x01) */ + #define R_SPI0_SPCR_SPSCKSEL_Pos (7UL) /*!< SPSCKSEL (Bit 7) */ + #define R_SPI0_SPCR_SPSCKSEL_Msk (0x80UL) /*!< SPSCKSEL (Bitfield-Mask: 0x01) */ + #define R_SPI0_SPCR_SPPE_Pos (8UL) /*!< SPPE (Bit 8) */ + #define R_SPI0_SPCR_SPPE_Msk (0x100UL) /*!< SPPE (Bitfield-Mask: 0x01) */ + #define R_SPI0_SPCR_SPOE_Pos (9UL) /*!< SPOE (Bit 9) */ + #define R_SPI0_SPCR_SPOE_Msk (0x200UL) /*!< SPOE (Bitfield-Mask: 0x01) */ + #define R_SPI0_SPCR_PTE_Pos (11UL) /*!< PTE (Bit 11) */ + #define R_SPI0_SPCR_PTE_Msk (0x800UL) /*!< PTE (Bitfield-Mask: 0x01) */ + #define R_SPI0_SPCR_SCKASE_Pos (12UL) /*!< SCKASE (Bit 12) */ + #define R_SPI0_SPCR_SCKASE_Msk (0x1000UL) /*!< SCKASE (Bitfield-Mask: 0x01) */ + #define R_SPI0_SPCR_BFDS_Pos (13UL) /*!< BFDS (Bit 13) */ + #define R_SPI0_SPCR_BFDS_Msk (0x2000UL) /*!< BFDS (Bitfield-Mask: 0x01) */ + #define R_SPI0_SPCR_MODFEN_Pos (14UL) /*!< MODFEN (Bit 14) */ + #define R_SPI0_SPCR_MODFEN_Msk (0x4000UL) /*!< MODFEN (Bitfield-Mask: 0x01) */ + #define R_SPI0_SPCR_SPEIE_Pos (16UL) /*!< SPEIE (Bit 16) */ + #define R_SPI0_SPCR_SPEIE_Msk (0x10000UL) /*!< SPEIE (Bitfield-Mask: 0x01) */ + #define R_SPI0_SPCR_SPRIE_Pos (17UL) /*!< SPRIE (Bit 17) */ + #define R_SPI0_SPCR_SPRIE_Msk (0x20000UL) /*!< SPRIE (Bitfield-Mask: 0x01) */ + #define R_SPI0_SPCR_SPIIE_Pos (18UL) /*!< SPIIE (Bit 18) */ + #define R_SPI0_SPCR_SPIIE_Msk (0x40000UL) /*!< SPIIE (Bitfield-Mask: 0x01) */ + #define R_SPI0_SPCR_SPDRES_Pos (19UL) /*!< SPDRES (Bit 19) */ + #define R_SPI0_SPCR_SPDRES_Msk (0x80000UL) /*!< SPDRES (Bitfield-Mask: 0x01) */ + #define R_SPI0_SPCR_SPTIE_Pos (20UL) /*!< SPTIE (Bit 20) */ + #define R_SPI0_SPCR_SPTIE_Msk (0x100000UL) /*!< SPTIE (Bitfield-Mask: 0x01) */ + #define R_SPI0_SPCR_CENDIE_Pos (21UL) /*!< CENDIE (Bit 21) */ + #define R_SPI0_SPCR_CENDIE_Msk (0x200000UL) /*!< CENDIE (Bitfield-Mask: 0x01) */ + #define R_SPI0_SPCR_SPMS_Pos (24UL) /*!< SPMS (Bit 24) */ + #define R_SPI0_SPCR_SPMS_Msk (0x1000000UL) /*!< SPMS (Bitfield-Mask: 0x01) */ + #define R_SPI0_SPCR_SPFRF_Pos (25UL) /*!< SPFRF (Bit 25) */ + #define R_SPI0_SPCR_SPFRF_Msk (0x2000000UL) /*!< SPFRF (Bitfield-Mask: 0x01) */ + #define R_SPI0_SPCR_TXMD_Pos (28UL) /*!< TXMD (Bit 28) */ + #define R_SPI0_SPCR_TXMD_Msk (0x30000000UL) /*!< TXMD (Bitfield-Mask: 0x03) */ + #define R_SPI0_SPCR_MSTR_Pos (30UL) /*!< MSTR (Bit 30) */ + #define R_SPI0_SPCR_MSTR_Msk (0x40000000UL) /*!< MSTR (Bitfield-Mask: 0x01) */ + #define R_SPI0_SPCR_BPEN_Pos (31UL) /*!< BPEN (Bit 31) */ + #define R_SPI0_SPCR_BPEN_Msk (0x80000000UL) /*!< BPEN (Bitfield-Mask: 0x01) */ +/* ======================================================== SPCRRM ========================================================= */ + #define R_SPI0_SPCRRM_RMFM_Pos (0UL) /*!< RMFM (Bit 0) */ + #define R_SPI0_SPCRRM_RMFM_Msk (0x1fUL) /*!< RMFM (Bitfield-Mask: 0x1f) */ + #define R_SPI0_SPCRRM_RMEDTG_Pos (6UL) /*!< RMEDTG (Bit 6) */ + #define R_SPI0_SPCRRM_RMEDTG_Msk (0x40UL) /*!< RMEDTG (Bitfield-Mask: 0x01) */ + #define R_SPI0_SPCRRM_RMSTTG_Pos (7UL) /*!< RMSTTG (Bit 7) */ + #define R_SPI0_SPCRRM_RMSTTG_Msk (0x80UL) /*!< RMSTTG (Bitfield-Mask: 0x01) */ +/* ======================================================== SPDRCR ========================================================= */ + #define R_SPI0_SPDRCR_SPDRC_Pos (0UL) /*!< SPDRC (Bit 0) */ + #define R_SPI0_SPDRCR_SPDRC_Msk (0xffUL) /*!< SPDRC (Bitfield-Mask: 0xff) */ +/* ========================================================= SPPCR ========================================================= */ + #define R_SPI0_SPPCR_SPLP_Pos (0UL) /*!< SPLP (Bit 0) */ + #define R_SPI0_SPPCR_SPLP_Msk (0x1UL) /*!< SPLP (Bitfield-Mask: 0x01) */ + #define R_SPI0_SPPCR_SPLP2_Pos (1UL) /*!< SPLP2 (Bit 1) */ + #define R_SPI0_SPPCR_SPLP2_Msk (0x2UL) /*!< SPLP2 (Bitfield-Mask: 0x01) */ + #define R_SPI0_SPPCR_SPOM_Pos (2UL) /*!< SPOM (Bit 2) */ + #define R_SPI0_SPPCR_SPOM_Msk (0x4UL) /*!< SPOM (Bitfield-Mask: 0x01) */ + #define R_SPI0_SPPCR_MOIFV_Pos (4UL) /*!< MOIFV (Bit 4) */ + #define R_SPI0_SPPCR_MOIFV_Msk (0x10UL) /*!< MOIFV (Bitfield-Mask: 0x01) */ + #define R_SPI0_SPPCR_MOIFE_Pos (5UL) /*!< MOIFE (Bit 5) */ + #define R_SPI0_SPPCR_MOIFE_Msk (0x20UL) /*!< MOIFE (Bitfield-Mask: 0x01) */ +/* ========================================================= SPCR2 ========================================================= */ + #define R_SPI0_SPCR2_SPSCKDL_Pos (0UL) /*!< SPSCKDL (Bit 0) */ + #define R_SPI0_SPCR2_SPSCKDL_Msk (0x7UL) /*!< SPSCKDL (Bitfield-Mask: 0x07) */ +/* ========================================================= SSLP ========================================================== */ + #define R_SPI0_SSLP_SSL0P_Pos (0UL) /*!< SSL0P (Bit 0) */ + #define R_SPI0_SSLP_SSL0P_Msk (0x1UL) /*!< SSL0P (Bitfield-Mask: 0x01) */ + #define R_SPI0_SSLP_SSL1P_Pos (1UL) /*!< SSL1P (Bit 1) */ + #define R_SPI0_SSLP_SSL1P_Msk (0x2UL) /*!< SSL1P (Bitfield-Mask: 0x01) */ + #define R_SPI0_SSLP_SSL2P_Pos (2UL) /*!< SSL2P (Bit 2) */ + #define R_SPI0_SSLP_SSL2P_Msk (0x4UL) /*!< SSL2P (Bitfield-Mask: 0x01) */ + #define R_SPI0_SSLP_SSL3P_Pos (3UL) /*!< SSL3P (Bit 3) */ + #define R_SPI0_SSLP_SSL3P_Msk (0x8UL) /*!< SSL3P (Bitfield-Mask: 0x01) */ +/* ========================================================= SPBR ========================================================== */ + #define R_SPI0_SPBR_SPR_Pos (0UL) /*!< SPR (Bit 0) */ + #define R_SPI0_SPBR_SPR_Msk (0xffUL) /*!< SPR (Bitfield-Mask: 0xff) */ +/* ========================================================= SPSCR ========================================================= */ + #define R_SPI0_SPSCR_SPSLN_Pos (0UL) /*!< SPSLN (Bit 0) */ + #define R_SPI0_SPSCR_SPSLN_Msk (0x7UL) /*!< SPSLN (Bitfield-Mask: 0x07) */ +/* ========================================================= SPCMD ========================================================= */ + #define R_SPI0_SPCMD_CPHA_Pos (0UL) /*!< CPHA (Bit 0) */ + #define R_SPI0_SPCMD_CPHA_Msk (0x1UL) /*!< CPHA (Bitfield-Mask: 0x01) */ + #define R_SPI0_SPCMD_CPOL_Pos (1UL) /*!< CPOL (Bit 1) */ + #define R_SPI0_SPCMD_CPOL_Msk (0x2UL) /*!< CPOL (Bitfield-Mask: 0x01) */ + #define R_SPI0_SPCMD_BRDV_Pos (2UL) /*!< BRDV (Bit 2) */ + #define R_SPI0_SPCMD_BRDV_Msk (0xcUL) /*!< BRDV (Bitfield-Mask: 0x03) */ + #define R_SPI0_SPCMD_SSLKP_Pos (7UL) /*!< SSLKP (Bit 7) */ + #define R_SPI0_SPCMD_SSLKP_Msk (0x80UL) /*!< SSLKP (Bitfield-Mask: 0x01) */ + #define R_SPI0_SPCMD_LSBF_Pos (12UL) /*!< LSBF (Bit 12) */ + #define R_SPI0_SPCMD_LSBF_Msk (0x1000UL) /*!< LSBF (Bitfield-Mask: 0x01) */ + #define R_SPI0_SPCMD_SPNDEN_Pos (13UL) /*!< SPNDEN (Bit 13) */ + #define R_SPI0_SPCMD_SPNDEN_Msk (0x2000UL) /*!< SPNDEN (Bitfield-Mask: 0x01) */ + #define R_SPI0_SPCMD_SLNDEN_Pos (14UL) /*!< SLNDEN (Bit 14) */ + #define R_SPI0_SPCMD_SLNDEN_Msk (0x4000UL) /*!< SLNDEN (Bitfield-Mask: 0x01) */ + #define R_SPI0_SPCMD_SCKDEN_Pos (15UL) /*!< SCKDEN (Bit 15) */ + #define R_SPI0_SPCMD_SCKDEN_Msk (0x8000UL) /*!< SCKDEN (Bitfield-Mask: 0x01) */ + #define R_SPI0_SPCMD_SPB_Pos (16UL) /*!< SPB (Bit 16) */ + #define R_SPI0_SPCMD_SPB_Msk (0x1f0000UL) /*!< SPB (Bitfield-Mask: 0x1f) */ + #define R_SPI0_SPCMD_SSLA_Pos (24UL) /*!< SSLA (Bit 24) */ + #define R_SPI0_SPCMD_SSLA_Msk (0x3000000UL) /*!< SSLA (Bitfield-Mask: 0x03) */ +/* ========================================================= SPDCR ========================================================= */ + #define R_SPI0_SPDCR_BYSW_Pos (0UL) /*!< BYSW (Bit 0) */ + #define R_SPI0_SPDCR_BYSW_Msk (0x1UL) /*!< BYSW (Bitfield-Mask: 0x01) */ + #define R_SPI0_SPDCR_SLSEL_Pos (1UL) /*!< SLSEL (Bit 1) */ + #define R_SPI0_SPDCR_SLSEL_Msk (0x6UL) /*!< SLSEL (Bitfield-Mask: 0x03) */ + #define R_SPI0_SPDCR_SPRDTD_Pos (3UL) /*!< SPRDTD (Bit 3) */ + #define R_SPI0_SPDCR_SPRDTD_Msk (0x8UL) /*!< SPRDTD (Bitfield-Mask: 0x01) */ + #define R_SPI0_SPDCR_SINV_Pos (4UL) /*!< SINV (Bit 4) */ + #define R_SPI0_SPDCR_SINV_Msk (0x10UL) /*!< SINV (Bitfield-Mask: 0x01) */ + #define R_SPI0_SPDCR_SPFC_Pos (8UL) /*!< SPFC (Bit 8) */ + #define R_SPI0_SPDCR_SPFC_Msk (0x300UL) /*!< SPFC (Bitfield-Mask: 0x03) */ +/* ======================================================== SPDCR2 ========================================================= */ + #define R_SPI0_SPDCR2_RTRG_Pos (0UL) /*!< RTRG (Bit 0) */ + #define R_SPI0_SPDCR2_RTRG_Msk (0x3UL) /*!< RTRG (Bitfield-Mask: 0x03) */ + #define R_SPI0_SPDCR2_TTRG_Pos (8UL) /*!< TTRG (Bit 8) */ + #define R_SPI0_SPDCR2_TTRG_Msk (0x300UL) /*!< TTRG (Bitfield-Mask: 0x03) */ +/* ========================================================= SPSSR ========================================================= */ + #define R_SPI0_SPSSR_SPCP_Pos (0UL) /*!< SPCP (Bit 0) */ + #define R_SPI0_SPSSR_SPCP_Msk (0x7UL) /*!< SPCP (Bitfield-Mask: 0x07) */ + #define R_SPI0_SPSSR_SPECM_Pos (4UL) /*!< SPECM (Bit 4) */ + #define R_SPI0_SPSSR_SPECM_Msk (0x70UL) /*!< SPECM (Bitfield-Mask: 0x07) */ +/* ========================================================= SPSR ========================================================== */ + #define R_SPI0_SPSR_SPDRF_Pos (7UL) /*!< SPDRF (Bit 7) */ + #define R_SPI0_SPSR_SPDRF_Msk (0x80UL) /*!< SPDRF (Bitfield-Mask: 0x01) */ + #define R_SPI0_SPSR_OVRF_Pos (8UL) /*!< OVRF (Bit 8) */ + #define R_SPI0_SPSR_OVRF_Msk (0x100UL) /*!< OVRF (Bitfield-Mask: 0x01) */ + #define R_SPI0_SPSR_IDLNF_Pos (9UL) /*!< IDLNF (Bit 9) */ + #define R_SPI0_SPSR_IDLNF_Msk (0x200UL) /*!< IDLNF (Bitfield-Mask: 0x01) */ + #define R_SPI0_SPSR_MODF_Pos (10UL) /*!< MODF (Bit 10) */ + #define R_SPI0_SPSR_MODF_Msk (0x400UL) /*!< MODF (Bitfield-Mask: 0x01) */ + #define R_SPI0_SPSR_PERF_Pos (11UL) /*!< PERF (Bit 11) */ + #define R_SPI0_SPSR_PERF_Msk (0x800UL) /*!< PERF (Bitfield-Mask: 0x01) */ + #define R_SPI0_SPSR_UDRF_Pos (12UL) /*!< UDRF (Bit 12) */ + #define R_SPI0_SPSR_UDRF_Msk (0x1000UL) /*!< UDRF (Bitfield-Mask: 0x01) */ + #define R_SPI0_SPSR_SPTEF_Pos (13UL) /*!< SPTEF (Bit 13) */ + #define R_SPI0_SPSR_SPTEF_Msk (0x2000UL) /*!< SPTEF (Bitfield-Mask: 0x01) */ + #define R_SPI0_SPSR_CENDF_Pos (14UL) /*!< CENDF (Bit 14) */ + #define R_SPI0_SPSR_CENDF_Msk (0x4000UL) /*!< CENDF (Bitfield-Mask: 0x01) */ + #define R_SPI0_SPSR_SPRF_Pos (15UL) /*!< SPRF (Bit 15) */ + #define R_SPI0_SPSR_SPRF_Msk (0x8000UL) /*!< SPRF (Bitfield-Mask: 0x01) */ +/* ======================================================== SPTFSR ========================================================= */ + #define R_SPI0_SPTFSR_TFDN_Pos (0UL) /*!< TFDN (Bit 0) */ + #define R_SPI0_SPTFSR_TFDN_Msk (0x7UL) /*!< TFDN (Bitfield-Mask: 0x07) */ +/* ======================================================== SPRFSR ========================================================= */ + #define R_SPI0_SPRFSR_RFDN_Pos (0UL) /*!< RFDN (Bit 0) */ + #define R_SPI0_SPRFSR_RFDN_Msk (0x7UL) /*!< RFDN (Bitfield-Mask: 0x07) */ +/* ========================================================= SPPSR ========================================================= */ + #define R_SPI0_SPPSR_SPEPS_Pos (0UL) /*!< SPEPS (Bit 0) */ + #define R_SPI0_SPPSR_SPEPS_Msk (0x1UL) /*!< SPEPS (Bitfield-Mask: 0x01) */ +/* ========================================================= SPSRC ========================================================= */ + #define R_SPI0_SPSRC_SPDRFC_Pos (7UL) /*!< SPDRFC (Bit 7) */ + #define R_SPI0_SPSRC_SPDRFC_Msk (0x80UL) /*!< SPDRFC (Bitfield-Mask: 0x01) */ + #define R_SPI0_SPSRC_OVRFC_Pos (8UL) /*!< OVRFC (Bit 8) */ + #define R_SPI0_SPSRC_OVRFC_Msk (0x100UL) /*!< OVRFC (Bitfield-Mask: 0x01) */ + #define R_SPI0_SPSRC_MODFC_Pos (10UL) /*!< MODFC (Bit 10) */ + #define R_SPI0_SPSRC_MODFC_Msk (0x400UL) /*!< MODFC (Bitfield-Mask: 0x01) */ + #define R_SPI0_SPSRC_PERFC_Pos (11UL) /*!< PERFC (Bit 11) */ + #define R_SPI0_SPSRC_PERFC_Msk (0x800UL) /*!< PERFC (Bitfield-Mask: 0x01) */ + #define R_SPI0_SPSRC_UDRFC_Pos (12UL) /*!< UDRFC (Bit 12) */ + #define R_SPI0_SPSRC_UDRFC_Msk (0x1000UL) /*!< UDRFC (Bitfield-Mask: 0x01) */ + #define R_SPI0_SPSRC_SPTEFC_Pos (13UL) /*!< SPTEFC (Bit 13) */ + #define R_SPI0_SPSRC_SPTEFC_Msk (0x2000UL) /*!< SPTEFC (Bitfield-Mask: 0x01) */ + #define R_SPI0_SPSRC_CENDFC_Pos (14UL) /*!< CENDFC (Bit 14) */ + #define R_SPI0_SPSRC_CENDFC_Msk (0x4000UL) /*!< CENDFC (Bitfield-Mask: 0x01) */ + #define R_SPI0_SPSRC_SPRFC_Pos (15UL) /*!< SPRFC (Bit 15) */ + #define R_SPI0_SPSRC_SPRFC_Msk (0x8000UL) /*!< SPRFC (Bitfield-Mask: 0x01) */ +/* ========================================================= SPFCR ========================================================= */ + #define R_SPI0_SPFCR_SPFRST_Pos (0UL) /*!< SPFRST (Bit 0) */ + #define R_SPI0_SPFCR_SPFRST_Msk (0x1UL) /*!< SPFRST (Bitfield-Mask: 0x01) */ + +/* =========================================================================================================================== */ +/* ================ R_CRC0 ================ */ +/* =========================================================================================================================== */ + +/* ======================================================== CRCCR0 ========================================================= */ + #define R_CRC0_CRCCR0_GPS_Pos (0UL) /*!< GPS (Bit 0) */ + #define R_CRC0_CRCCR0_GPS_Msk (0x7UL) /*!< GPS (Bitfield-Mask: 0x07) */ + #define R_CRC0_CRCCR0_LMS_Pos (6UL) /*!< LMS (Bit 6) */ + #define R_CRC0_CRCCR0_LMS_Msk (0x40UL) /*!< LMS (Bitfield-Mask: 0x01) */ + #define R_CRC0_CRCCR0_DORCLR_Pos (7UL) /*!< DORCLR (Bit 7) */ + #define R_CRC0_CRCCR0_DORCLR_Msk (0x80UL) /*!< DORCLR (Bitfield-Mask: 0x01) */ +/* ======================================================== CRCDIR ========================================================= */ +/* ======================================================= CRCDIR_BY ======================================================= */ +/* ======================================================== CRCDOR ========================================================= */ +/* ======================================================= CRCDOR_HA ======================================================= */ +/* ======================================================= CRCDOR_BY ======================================================= */ + +/* =========================================================================================================================== */ +/* ================ R_CANFD ================ */ +/* =========================================================================================================================== */ + +/* ======================================================== CFDGIPV ======================================================== */ + #define R_CANFD_CFDGIPV_IPV_Pos (0UL) /*!< IPV (Bit 0) */ + #define R_CANFD_CFDGIPV_IPV_Msk (0xffUL) /*!< IPV (Bitfield-Mask: 0xff) */ + #define R_CANFD_CFDGIPV_IPT_Pos (8UL) /*!< IPT (Bit 8) */ + #define R_CANFD_CFDGIPV_IPT_Msk (0x300UL) /*!< IPT (Bitfield-Mask: 0x03) */ + #define R_CANFD_CFDGIPV_PSI_Pos (16UL) /*!< PSI (Bit 16) */ + #define R_CANFD_CFDGIPV_PSI_Msk (0x3fff0000UL) /*!< PSI (Bitfield-Mask: 0x3fff) */ +/* ======================================================== CFDGCFG ======================================================== */ + #define R_CANFD_CFDGCFG_TPRI_Pos (0UL) /*!< TPRI (Bit 0) */ + #define R_CANFD_CFDGCFG_TPRI_Msk (0x1UL) /*!< TPRI (Bitfield-Mask: 0x01) */ + #define R_CANFD_CFDGCFG_DCE_Pos (1UL) /*!< DCE (Bit 1) */ + #define R_CANFD_CFDGCFG_DCE_Msk (0x2UL) /*!< DCE (Bitfield-Mask: 0x01) */ + #define R_CANFD_CFDGCFG_DRE_Pos (2UL) /*!< DRE (Bit 2) */ + #define R_CANFD_CFDGCFG_DRE_Msk (0x4UL) /*!< DRE (Bitfield-Mask: 0x01) */ + #define R_CANFD_CFDGCFG_MME_Pos (3UL) /*!< MME (Bit 3) */ + #define R_CANFD_CFDGCFG_MME_Msk (0x8UL) /*!< MME (Bitfield-Mask: 0x01) */ + #define R_CANFD_CFDGCFG_DCS_Pos (4UL) /*!< DCS (Bit 4) */ + #define R_CANFD_CFDGCFG_DCS_Msk (0x10UL) /*!< DCS (Bitfield-Mask: 0x01) */ + #define R_CANFD_CFDGCFG_CMPOC_Pos (5UL) /*!< CMPOC (Bit 5) */ + #define R_CANFD_CFDGCFG_CMPOC_Msk (0x20UL) /*!< CMPOC (Bitfield-Mask: 0x01) */ + #define R_CANFD_CFDGCFG_TSP_Pos (8UL) /*!< TSP (Bit 8) */ + #define R_CANFD_CFDGCFG_TSP_Msk (0xf00UL) /*!< TSP (Bitfield-Mask: 0x0f) */ + #define R_CANFD_CFDGCFG_TSSS_Pos (12UL) /*!< TSSS (Bit 12) */ + #define R_CANFD_CFDGCFG_TSSS_Msk (0x1000UL) /*!< TSSS (Bitfield-Mask: 0x01) */ + #define R_CANFD_CFDGCFG_TSBTCS_Pos (13UL) /*!< TSBTCS (Bit 13) */ + #define R_CANFD_CFDGCFG_TSBTCS_Msk (0xe000UL) /*!< TSBTCS (Bitfield-Mask: 0x07) */ + #define R_CANFD_CFDGCFG_ITRCP_Pos (16UL) /*!< ITRCP (Bit 16) */ + #define R_CANFD_CFDGCFG_ITRCP_Msk (0xffff0000UL) /*!< ITRCP (Bitfield-Mask: 0xffff) */ +/* ======================================================== CFDGCTR ======================================================== */ + #define R_CANFD_CFDGCTR_GMDC_Pos (0UL) /*!< GMDC (Bit 0) */ + #define R_CANFD_CFDGCTR_GMDC_Msk (0x3UL) /*!< GMDC (Bitfield-Mask: 0x03) */ + #define R_CANFD_CFDGCTR_GSLPR_Pos (2UL) /*!< GSLPR (Bit 2) */ + #define R_CANFD_CFDGCTR_GSLPR_Msk (0x4UL) /*!< GSLPR (Bitfield-Mask: 0x01) */ + #define R_CANFD_CFDGCTR_DEIE_Pos (8UL) /*!< DEIE (Bit 8) */ + #define R_CANFD_CFDGCTR_DEIE_Msk (0x100UL) /*!< DEIE (Bitfield-Mask: 0x01) */ + #define R_CANFD_CFDGCTR_MEIE_Pos (9UL) /*!< MEIE (Bit 9) */ + #define R_CANFD_CFDGCTR_MEIE_Msk (0x200UL) /*!< MEIE (Bitfield-Mask: 0x01) */ + #define R_CANFD_CFDGCTR_THLEIE_Pos (10UL) /*!< THLEIE (Bit 10) */ + #define R_CANFD_CFDGCTR_THLEIE_Msk (0x400UL) /*!< THLEIE (Bitfield-Mask: 0x01) */ + #define R_CANFD_CFDGCTR_CMPOFIE_Pos (11UL) /*!< CMPOFIE (Bit 11) */ + #define R_CANFD_CFDGCTR_CMPOFIE_Msk (0x800UL) /*!< CMPOFIE (Bitfield-Mask: 0x01) */ + #define R_CANFD_CFDGCTR_QOWEIE_Pos (12UL) /*!< QOWEIE (Bit 12) */ + #define R_CANFD_CFDGCTR_QOWEIE_Msk (0x1000UL) /*!< QOWEIE (Bitfield-Mask: 0x01) */ + #define R_CANFD_CFDGCTR_QMEIE_Pos (14UL) /*!< QMEIE (Bit 14) */ + #define R_CANFD_CFDGCTR_QMEIE_Msk (0x4000UL) /*!< QMEIE (Bitfield-Mask: 0x01) */ + #define R_CANFD_CFDGCTR_MOWEIE_Pos (15UL) /*!< MOWEIE (Bit 15) */ + #define R_CANFD_CFDGCTR_MOWEIE_Msk (0x8000UL) /*!< MOWEIE (Bitfield-Mask: 0x01) */ + #define R_CANFD_CFDGCTR_TSRST_Pos (16UL) /*!< TSRST (Bit 16) */ + #define R_CANFD_CFDGCTR_TSRST_Msk (0x10000UL) /*!< TSRST (Bitfield-Mask: 0x01) */ +/* ======================================================== CFDGSTS ======================================================== */ + #define R_CANFD_CFDGSTS_GRSTSTS_Pos (0UL) /*!< GRSTSTS (Bit 0) */ + #define R_CANFD_CFDGSTS_GRSTSTS_Msk (0x1UL) /*!< GRSTSTS (Bitfield-Mask: 0x01) */ + #define R_CANFD_CFDGSTS_GHLTSTS_Pos (1UL) /*!< GHLTSTS (Bit 1) */ + #define R_CANFD_CFDGSTS_GHLTSTS_Msk (0x2UL) /*!< GHLTSTS (Bitfield-Mask: 0x01) */ + #define R_CANFD_CFDGSTS_GSLPSTS_Pos (2UL) /*!< GSLPSTS (Bit 2) */ + #define R_CANFD_CFDGSTS_GSLPSTS_Msk (0x4UL) /*!< GSLPSTS (Bitfield-Mask: 0x01) */ + #define R_CANFD_CFDGSTS_GRAMINIT_Pos (3UL) /*!< GRAMINIT (Bit 3) */ + #define R_CANFD_CFDGSTS_GRAMINIT_Msk (0x8UL) /*!< GRAMINIT (Bitfield-Mask: 0x01) */ +/* ======================================================= CFDGERFL ======================================================== */ + #define R_CANFD_CFDGERFL_DEF_Pos (0UL) /*!< DEF (Bit 0) */ + #define R_CANFD_CFDGERFL_DEF_Msk (0x1UL) /*!< DEF (Bitfield-Mask: 0x01) */ + #define R_CANFD_CFDGERFL_MES_Pos (1UL) /*!< MES (Bit 1) */ + #define R_CANFD_CFDGERFL_MES_Msk (0x2UL) /*!< MES (Bitfield-Mask: 0x01) */ + #define R_CANFD_CFDGERFL_THLES_Pos (2UL) /*!< THLES (Bit 2) */ + #define R_CANFD_CFDGERFL_THLES_Msk (0x4UL) /*!< THLES (Bitfield-Mask: 0x01) */ + #define R_CANFD_CFDGERFL_CMPOF_Pos (3UL) /*!< CMPOF (Bit 3) */ + #define R_CANFD_CFDGERFL_CMPOF_Msk (0x8UL) /*!< CMPOF (Bitfield-Mask: 0x01) */ + #define R_CANFD_CFDGERFL_QOWES_Pos (4UL) /*!< QOWES (Bit 4) */ + #define R_CANFD_CFDGERFL_QOWES_Msk (0x10UL) /*!< QOWES (Bitfield-Mask: 0x01) */ + #define R_CANFD_CFDGERFL_QMES_Pos (6UL) /*!< QMES (Bit 6) */ + #define R_CANFD_CFDGERFL_QMES_Msk (0x40UL) /*!< QMES (Bitfield-Mask: 0x01) */ + #define R_CANFD_CFDGERFL_MOWES_Pos (7UL) /*!< MOWES (Bit 7) */ + #define R_CANFD_CFDGERFL_MOWES_Msk (0x80UL) /*!< MOWES (Bitfield-Mask: 0x01) */ + #define R_CANFD_CFDGERFL_EEF0_Pos (16UL) /*!< EEF0 (Bit 16) */ + #define R_CANFD_CFDGERFL_EEF0_Msk (0x10000UL) /*!< EEF0 (Bitfield-Mask: 0x01) */ + #define R_CANFD_CFDGERFL_EEF1_Pos (17UL) /*!< EEF1 (Bit 17) */ + #define R_CANFD_CFDGERFL_EEF1_Msk (0x20000UL) /*!< EEF1 (Bitfield-Mask: 0x01) */ +/* ======================================================== CFDGTSC ======================================================== */ + #define R_CANFD_CFDGTSC_TS_Pos (0UL) /*!< TS (Bit 0) */ + #define R_CANFD_CFDGTSC_TS_Msk (0xffffUL) /*!< TS (Bitfield-Mask: 0xffff) */ +/* ====================================================== CFDGAFLECTR ====================================================== */ + #define R_CANFD_CFDGAFLECTR_AFLPN_Pos (0UL) /*!< AFLPN (Bit 0) */ + #define R_CANFD_CFDGAFLECTR_AFLPN_Msk (0xfUL) /*!< AFLPN (Bitfield-Mask: 0x0f) */ + #define R_CANFD_CFDGAFLECTR_AFLDAE_Pos (8UL) /*!< AFLDAE (Bit 8) */ + #define R_CANFD_CFDGAFLECTR_AFLDAE_Msk (0x100UL) /*!< AFLDAE (Bitfield-Mask: 0x01) */ +/* ====================================================== CFDGAFLCFG0 ====================================================== */ + #define R_CANFD_CFDGAFLCFG0_RNC1_Pos (0UL) /*!< RNC1 (Bit 0) */ + #define R_CANFD_CFDGAFLCFG0_RNC1_Msk (0x1ffUL) /*!< RNC1 (Bitfield-Mask: 0x1ff) */ + #define R_CANFD_CFDGAFLCFG0_RNC0_Pos (16UL) /*!< RNC0 (Bit 16) */ + #define R_CANFD_CFDGAFLCFG0_RNC0_Msk (0x1ff0000UL) /*!< RNC0 (Bitfield-Mask: 0x1ff) */ +/* ======================================================== CFDRMNB ======================================================== */ + #define R_CANFD_CFDRMNB_NRXMB_Pos (0UL) /*!< NRXMB (Bit 0) */ + #define R_CANFD_CFDRMNB_NRXMB_Msk (0xffUL) /*!< NRXMB (Bitfield-Mask: 0xff) */ + #define R_CANFD_CFDRMNB_RMPLS_Pos (8UL) /*!< RMPLS (Bit 8) */ + #define R_CANFD_CFDRMNB_RMPLS_Msk (0x700UL) /*!< RMPLS (Bitfield-Mask: 0x07) */ +/* ======================================================= CFDRMND0 ======================================================== */ + #define R_CANFD_CFDRMND0_RMNS_Pos (0UL) /*!< RMNS (Bit 0) */ + #define R_CANFD_CFDRMND0_RMNS_Msk (0xffffffffUL) /*!< RMNS (Bitfield-Mask: 0xffffffff) */ +/* ======================================================== CFDRFCC ======================================================== */ + #define R_CANFD_CFDRFCC_RFE_Pos (0UL) /*!< RFE (Bit 0) */ + #define R_CANFD_CFDRFCC_RFE_Msk (0x1UL) /*!< RFE (Bitfield-Mask: 0x01) */ + #define R_CANFD_CFDRFCC_RFIE_Pos (1UL) /*!< RFIE (Bit 1) */ + #define R_CANFD_CFDRFCC_RFIE_Msk (0x2UL) /*!< RFIE (Bitfield-Mask: 0x01) */ + #define R_CANFD_CFDRFCC_RFPLS_Pos (4UL) /*!< RFPLS (Bit 4) */ + #define R_CANFD_CFDRFCC_RFPLS_Msk (0x70UL) /*!< RFPLS (Bitfield-Mask: 0x07) */ + #define R_CANFD_CFDRFCC_RFDC_Pos (8UL) /*!< RFDC (Bit 8) */ + #define R_CANFD_CFDRFCC_RFDC_Msk (0x700UL) /*!< RFDC (Bitfield-Mask: 0x07) */ + #define R_CANFD_CFDRFCC_RFIM_Pos (12UL) /*!< RFIM (Bit 12) */ + #define R_CANFD_CFDRFCC_RFIM_Msk (0x1000UL) /*!< RFIM (Bitfield-Mask: 0x01) */ + #define R_CANFD_CFDRFCC_RFIGCV_Pos (13UL) /*!< RFIGCV (Bit 13) */ + #define R_CANFD_CFDRFCC_RFIGCV_Msk (0xe000UL) /*!< RFIGCV (Bitfield-Mask: 0x07) */ + #define R_CANFD_CFDRFCC_RFFIE_Pos (16UL) /*!< RFFIE (Bit 16) */ + #define R_CANFD_CFDRFCC_RFFIE_Msk (0x10000UL) /*!< RFFIE (Bitfield-Mask: 0x01) */ +/* ======================================================= CFDRFSTS ======================================================== */ + #define R_CANFD_CFDRFSTS_RFEMP_Pos (0UL) /*!< RFEMP (Bit 0) */ + #define R_CANFD_CFDRFSTS_RFEMP_Msk (0x1UL) /*!< RFEMP (Bitfield-Mask: 0x01) */ + #define R_CANFD_CFDRFSTS_RFFLL_Pos (1UL) /*!< RFFLL (Bit 1) */ + #define R_CANFD_CFDRFSTS_RFFLL_Msk (0x2UL) /*!< RFFLL (Bitfield-Mask: 0x01) */ + #define R_CANFD_CFDRFSTS_RFMLT_Pos (2UL) /*!< RFMLT (Bit 2) */ + #define R_CANFD_CFDRFSTS_RFMLT_Msk (0x4UL) /*!< RFMLT (Bitfield-Mask: 0x01) */ + #define R_CANFD_CFDRFSTS_RFIF_Pos (3UL) /*!< RFIF (Bit 3) */ + #define R_CANFD_CFDRFSTS_RFIF_Msk (0x8UL) /*!< RFIF (Bitfield-Mask: 0x01) */ + #define R_CANFD_CFDRFSTS_RFMC_Pos (8UL) /*!< RFMC (Bit 8) */ + #define R_CANFD_CFDRFSTS_RFMC_Msk (0xff00UL) /*!< RFMC (Bitfield-Mask: 0xff) */ + #define R_CANFD_CFDRFSTS_RFFIF_Pos (16UL) /*!< RFFIF (Bit 16) */ + #define R_CANFD_CFDRFSTS_RFFIF_Msk (0x10000UL) /*!< RFFIF (Bitfield-Mask: 0x01) */ +/* ======================================================= CFDRFPCTR ======================================================= */ + #define R_CANFD_CFDRFPCTR_RFPC_Pos (0UL) /*!< RFPC (Bit 0) */ + #define R_CANFD_CFDRFPCTR_RFPC_Msk (0xffUL) /*!< RFPC (Bitfield-Mask: 0xff) */ +/* ======================================================== CFDCFCC ======================================================== */ + #define R_CANFD_CFDCFCC_CFE_Pos (0UL) /*!< CFE (Bit 0) */ + #define R_CANFD_CFDCFCC_CFE_Msk (0x1UL) /*!< CFE (Bitfield-Mask: 0x01) */ + #define R_CANFD_CFDCFCC_CFRXIE_Pos (1UL) /*!< CFRXIE (Bit 1) */ + #define R_CANFD_CFDCFCC_CFRXIE_Msk (0x2UL) /*!< CFRXIE (Bitfield-Mask: 0x01) */ + #define R_CANFD_CFDCFCC_CFTXIE_Pos (2UL) /*!< CFTXIE (Bit 2) */ + #define R_CANFD_CFDCFCC_CFTXIE_Msk (0x4UL) /*!< CFTXIE (Bitfield-Mask: 0x01) */ + #define R_CANFD_CFDCFCC_CFPLS_Pos (4UL) /*!< CFPLS (Bit 4) */ + #define R_CANFD_CFDCFCC_CFPLS_Msk (0x70UL) /*!< CFPLS (Bitfield-Mask: 0x07) */ + #define R_CANFD_CFDCFCC_CFM_Pos (8UL) /*!< CFM (Bit 8) */ + #define R_CANFD_CFDCFCC_CFM_Msk (0x300UL) /*!< CFM (Bitfield-Mask: 0x03) */ + #define R_CANFD_CFDCFCC_CFITSS_Pos (10UL) /*!< CFITSS (Bit 10) */ + #define R_CANFD_CFDCFCC_CFITSS_Msk (0x400UL) /*!< CFITSS (Bitfield-Mask: 0x01) */ + #define R_CANFD_CFDCFCC_CFITR_Pos (11UL) /*!< CFITR (Bit 11) */ + #define R_CANFD_CFDCFCC_CFITR_Msk (0x800UL) /*!< CFITR (Bitfield-Mask: 0x01) */ + #define R_CANFD_CFDCFCC_CFIM_Pos (12UL) /*!< CFIM (Bit 12) */ + #define R_CANFD_CFDCFCC_CFIM_Msk (0x1000UL) /*!< CFIM (Bitfield-Mask: 0x01) */ + #define R_CANFD_CFDCFCC_CFIGCV_Pos (13UL) /*!< CFIGCV (Bit 13) */ + #define R_CANFD_CFDCFCC_CFIGCV_Msk (0xe000UL) /*!< CFIGCV (Bitfield-Mask: 0x07) */ + #define R_CANFD_CFDCFCC_CFTML_Pos (16UL) /*!< CFTML (Bit 16) */ + #define R_CANFD_CFDCFCC_CFTML_Msk (0x1f0000UL) /*!< CFTML (Bitfield-Mask: 0x1f) */ + #define R_CANFD_CFDCFCC_CFDC_Pos (21UL) /*!< CFDC (Bit 21) */ + #define R_CANFD_CFDCFCC_CFDC_Msk (0xe00000UL) /*!< CFDC (Bitfield-Mask: 0x07) */ + #define R_CANFD_CFDCFCC_CFITT_Pos (24UL) /*!< CFITT (Bit 24) */ + #define R_CANFD_CFDCFCC_CFITT_Msk (0xff000000UL) /*!< CFITT (Bitfield-Mask: 0xff) */ +/* ======================================================= CFDCFCCE ======================================================== */ + #define R_CANFD_CFDCFCCE_CFFIE_Pos (0UL) /*!< CFFIE (Bit 0) */ + #define R_CANFD_CFDCFCCE_CFFIE_Msk (0x1UL) /*!< CFFIE (Bitfield-Mask: 0x01) */ + #define R_CANFD_CFDCFCCE_CFOFRXIE_Pos (1UL) /*!< CFOFRXIE (Bit 1) */ + #define R_CANFD_CFDCFCCE_CFOFRXIE_Msk (0x2UL) /*!< CFOFRXIE (Bitfield-Mask: 0x01) */ + #define R_CANFD_CFDCFCCE_CFOFTXIE_Pos (2UL) /*!< CFOFTXIE (Bit 2) */ + #define R_CANFD_CFDCFCCE_CFOFTXIE_Msk (0x4UL) /*!< CFOFTXIE (Bitfield-Mask: 0x01) */ + #define R_CANFD_CFDCFCCE_CFMOWM_Pos (8UL) /*!< CFMOWM (Bit 8) */ + #define R_CANFD_CFDCFCCE_CFMOWM_Msk (0x100UL) /*!< CFMOWM (Bitfield-Mask: 0x01) */ + #define R_CANFD_CFDCFCCE_CFBME_Pos (16UL) /*!< CFBME (Bit 16) */ + #define R_CANFD_CFDCFCCE_CFBME_Msk (0x10000UL) /*!< CFBME (Bitfield-Mask: 0x01) */ +/* ======================================================= CFDCFSTS ======================================================== */ + #define R_CANFD_CFDCFSTS_CFEMP_Pos (0UL) /*!< CFEMP (Bit 0) */ + #define R_CANFD_CFDCFSTS_CFEMP_Msk (0x1UL) /*!< CFEMP (Bitfield-Mask: 0x01) */ + #define R_CANFD_CFDCFSTS_CFFLL_Pos (1UL) /*!< CFFLL (Bit 1) */ + #define R_CANFD_CFDCFSTS_CFFLL_Msk (0x2UL) /*!< CFFLL (Bitfield-Mask: 0x01) */ + #define R_CANFD_CFDCFSTS_CFMLT_Pos (2UL) /*!< CFMLT (Bit 2) */ + #define R_CANFD_CFDCFSTS_CFMLT_Msk (0x4UL) /*!< CFMLT (Bitfield-Mask: 0x01) */ + #define R_CANFD_CFDCFSTS_CFRXIF_Pos (3UL) /*!< CFRXIF (Bit 3) */ + #define R_CANFD_CFDCFSTS_CFRXIF_Msk (0x8UL) /*!< CFRXIF (Bitfield-Mask: 0x01) */ + #define R_CANFD_CFDCFSTS_CFTXIF_Pos (4UL) /*!< CFTXIF (Bit 4) */ + #define R_CANFD_CFDCFSTS_CFTXIF_Msk (0x10UL) /*!< CFTXIF (Bitfield-Mask: 0x01) */ + #define R_CANFD_CFDCFSTS_CFMC_Pos (8UL) /*!< CFMC (Bit 8) */ + #define R_CANFD_CFDCFSTS_CFMC_Msk (0xff00UL) /*!< CFMC (Bitfield-Mask: 0xff) */ + #define R_CANFD_CFDCFSTS_CFFIF_Pos (16UL) /*!< CFFIF (Bit 16) */ + #define R_CANFD_CFDCFSTS_CFFIF_Msk (0x10000UL) /*!< CFFIF (Bitfield-Mask: 0x01) */ + #define R_CANFD_CFDCFSTS_CFOFRXIF_Pos (17UL) /*!< CFOFRXIF (Bit 17) */ + #define R_CANFD_CFDCFSTS_CFOFRXIF_Msk (0x20000UL) /*!< CFOFRXIF (Bitfield-Mask: 0x01) */ + #define R_CANFD_CFDCFSTS_CFOFTXIF_Pos (18UL) /*!< CFOFTXIF (Bit 18) */ + #define R_CANFD_CFDCFSTS_CFOFTXIF_Msk (0x40000UL) /*!< CFOFTXIF (Bitfield-Mask: 0x01) */ + #define R_CANFD_CFDCFSTS_CFMOW_Pos (24UL) /*!< CFMOW (Bit 24) */ + #define R_CANFD_CFDCFSTS_CFMOW_Msk (0x1000000UL) /*!< CFMOW (Bitfield-Mask: 0x01) */ +/* ======================================================= CFDCFPCTR ======================================================= */ + #define R_CANFD_CFDCFPCTR_CFPC_Pos (0UL) /*!< CFPC (Bit 0) */ + #define R_CANFD_CFDCFPCTR_CFPC_Msk (0xffUL) /*!< CFPC (Bitfield-Mask: 0xff) */ +/* ======================================================= CFDFESTS ======================================================== */ + #define R_CANFD_CFDFESTS_RFXEMP_Pos (0UL) /*!< RFXEMP (Bit 0) */ + #define R_CANFD_CFDFESTS_RFXEMP_Msk (0xffUL) /*!< RFXEMP (Bitfield-Mask: 0xff) */ + #define R_CANFD_CFDFESTS_CFXEMP_Pos (8UL) /*!< CFXEMP (Bit 8) */ + #define R_CANFD_CFDFESTS_CFXEMP_Msk (0x3f00UL) /*!< CFXEMP (Bitfield-Mask: 0x3f) */ +/* ======================================================= CFDFFSTS ======================================================== */ + #define R_CANFD_CFDFFSTS_RFXFLL_Pos (0UL) /*!< RFXFLL (Bit 0) */ + #define R_CANFD_CFDFFSTS_RFXFLL_Msk (0xffUL) /*!< RFXFLL (Bitfield-Mask: 0xff) */ + #define R_CANFD_CFDFFSTS_CFXFLL_Pos (8UL) /*!< CFXFLL (Bit 8) */ + #define R_CANFD_CFDFFSTS_CFXFLL_Msk (0x3f00UL) /*!< CFXFLL (Bitfield-Mask: 0x3f) */ +/* ======================================================= CFDFMSTS ======================================================== */ + #define R_CANFD_CFDFMSTS_RFXMLT_Pos (0UL) /*!< RFXMLT (Bit 0) */ + #define R_CANFD_CFDFMSTS_RFXMLT_Msk (0xffUL) /*!< RFXMLT (Bitfield-Mask: 0xff) */ + #define R_CANFD_CFDFMSTS_CFXMLT_Pos (8UL) /*!< CFXMLT (Bit 8) */ + #define R_CANFD_CFDFMSTS_CFXMLT_Msk (0x3f00UL) /*!< CFXMLT (Bitfield-Mask: 0x3f) */ +/* ======================================================= CFDRFISTS ======================================================= */ + #define R_CANFD_CFDRFISTS_RFXIF_Pos (0UL) /*!< RFXIF (Bit 0) */ + #define R_CANFD_CFDRFISTS_RFXIF_Msk (0xffUL) /*!< RFXIF (Bitfield-Mask: 0xff) */ + #define R_CANFD_CFDRFISTS_RFXFFLL_Pos (16UL) /*!< RFXFFLL (Bit 16) */ + #define R_CANFD_CFDRFISTS_RFXFFLL_Msk (0xff0000UL) /*!< RFXFFLL (Bitfield-Mask: 0xff) */ +/* ====================================================== CFDCFRISTS ======================================================= */ + #define R_CANFD_CFDCFRISTS_CFXRXIF_Pos (0UL) /*!< CFXRXIF (Bit 0) */ + #define R_CANFD_CFDCFRISTS_CFXRXIF_Msk (0x3fUL) /*!< CFXRXIF (Bitfield-Mask: 0x3f) */ +/* ====================================================== CFDCFTISTS ======================================================= */ + #define R_CANFD_CFDCFTISTS_CFXTXIF_Pos (0UL) /*!< CFXTXIF (Bit 0) */ + #define R_CANFD_CFDCFTISTS_CFXTXIF_Msk (0x3fUL) /*!< CFXTXIF (Bitfield-Mask: 0x3f) */ +/* ===================================================== CFDCFOFRISTS ====================================================== */ + #define R_CANFD_CFDCFOFRISTS_CFXOFRXIF_Pos (0UL) /*!< CFXOFRXIF (Bit 0) */ + #define R_CANFD_CFDCFOFRISTS_CFXOFRXIF_Msk (0x3fUL) /*!< CFXOFRXIF (Bitfield-Mask: 0x3f) */ +/* ===================================================== CFDCFOFTISTS ====================================================== */ + #define R_CANFD_CFDCFOFTISTS_CFXOFTXIF_Pos (0UL) /*!< CFXOFTXIF (Bit 0) */ + #define R_CANFD_CFDCFOFTISTS_CFXOFTXIF_Msk (0x3fUL) /*!< CFXOFTXIF (Bitfield-Mask: 0x3f) */ +/* ====================================================== CFDCFMOWSTS ====================================================== */ + #define R_CANFD_CFDCFMOWSTS_CFXMOW_Pos (0UL) /*!< CFXMOW (Bit 0) */ + #define R_CANFD_CFDCFMOWSTS_CFXMOW_Msk (0x3fUL) /*!< CFXMOW (Bitfield-Mask: 0x3f) */ +/* ======================================================= CFDFFFSTS ======================================================= */ + #define R_CANFD_CFDFFFSTS_RFXFFLL_Pos (0UL) /*!< RFXFFLL (Bit 0) */ + #define R_CANFD_CFDFFFSTS_RFXFFLL_Msk (0xffUL) /*!< RFXFFLL (Bitfield-Mask: 0xff) */ + #define R_CANFD_CFDFFFSTS_CFXFFLL_Pos (8UL) /*!< CFXFFLL (Bit 8) */ + #define R_CANFD_CFDFFFSTS_CFXFFLL_Msk (0x3f00UL) /*!< CFXFFLL (Bitfield-Mask: 0x3f) */ +/* ======================================================== CFDTMC ========================================================= */ + #define R_CANFD_CFDTMC_TMTR_Pos (0UL) /*!< TMTR (Bit 0) */ + #define R_CANFD_CFDTMC_TMTR_Msk (0x1UL) /*!< TMTR (Bitfield-Mask: 0x01) */ + #define R_CANFD_CFDTMC_TMTAR_Pos (1UL) /*!< TMTAR (Bit 1) */ + #define R_CANFD_CFDTMC_TMTAR_Msk (0x2UL) /*!< TMTAR (Bitfield-Mask: 0x01) */ + #define R_CANFD_CFDTMC_TMOM_Pos (2UL) /*!< TMOM (Bit 2) */ + #define R_CANFD_CFDTMC_TMOM_Msk (0x4UL) /*!< TMOM (Bitfield-Mask: 0x01) */ +/* ======================================================= CFDTMSTS ======================================================== */ + #define R_CANFD_CFDTMSTS_TMTSTS_Pos (0UL) /*!< TMTSTS (Bit 0) */ + #define R_CANFD_CFDTMSTS_TMTSTS_Msk (0x1UL) /*!< TMTSTS (Bitfield-Mask: 0x01) */ + #define R_CANFD_CFDTMSTS_TMTRF_Pos (1UL) /*!< TMTRF (Bit 1) */ + #define R_CANFD_CFDTMSTS_TMTRF_Msk (0x6UL) /*!< TMTRF (Bitfield-Mask: 0x03) */ + #define R_CANFD_CFDTMSTS_TMTRM_Pos (3UL) /*!< TMTRM (Bit 3) */ + #define R_CANFD_CFDTMSTS_TMTRM_Msk (0x8UL) /*!< TMTRM (Bitfield-Mask: 0x01) */ + #define R_CANFD_CFDTMSTS_TMTARM_Pos (4UL) /*!< TMTARM (Bit 4) */ + #define R_CANFD_CFDTMSTS_TMTARM_Msk (0x10UL) /*!< TMTARM (Bitfield-Mask: 0x01) */ +/* ====================================================== CFDTMTRSTS ======================================================= */ + #define R_CANFD_CFDTMTRSTS_TMTRSTS_Pos (0UL) /*!< TMTRSTS (Bit 0) */ + #define R_CANFD_CFDTMTRSTS_TMTRSTS_Msk (0xffffUL) /*!< TMTRSTS (Bitfield-Mask: 0xffff) */ +/* ====================================================== CFDTMTARSTS ====================================================== */ + #define R_CANFD_CFDTMTARSTS_TMTARSTS_Pos (0UL) /*!< TMTARSTS (Bit 0) */ + #define R_CANFD_CFDTMTARSTS_TMTARSTS_Msk (0xffffUL) /*!< TMTARSTS (Bitfield-Mask: 0xffff) */ +/* ====================================================== CFDTMTCSTS ======================================================= */ + #define R_CANFD_CFDTMTCSTS_TMTCSTS_Pos (0UL) /*!< TMTCSTS (Bit 0) */ + #define R_CANFD_CFDTMTCSTS_TMTCSTS_Msk (0xffffUL) /*!< TMTCSTS (Bitfield-Mask: 0xffff) */ +/* ====================================================== CFDTMTASTS ======================================================= */ + #define R_CANFD_CFDTMTASTS_TMTASTS_Pos (0UL) /*!< TMTASTS (Bit 0) */ + #define R_CANFD_CFDTMTASTS_TMTASTS_Msk (0xffffUL) /*!< TMTASTS (Bitfield-Mask: 0xffff) */ +/* ======================================================= CFDTMIEC ======================================================== */ + #define R_CANFD_CFDTMIEC_TMIE_Pos (0UL) /*!< TMIE (Bit 0) */ + #define R_CANFD_CFDTMIEC_TMIE_Msk (0xffffUL) /*!< TMIE (Bitfield-Mask: 0xffff) */ +/* ======================================================= CFDTXQCC0 ======================================================= */ + #define R_CANFD_CFDTXQCC0_TXQE_Pos (0UL) /*!< TXQE (Bit 0) */ + #define R_CANFD_CFDTXQCC0_TXQE_Msk (0x1UL) /*!< TXQE (Bitfield-Mask: 0x01) */ + #define R_CANFD_CFDTXQCC0_TXQGWE_Pos (1UL) /*!< TXQGWE (Bit 1) */ + #define R_CANFD_CFDTXQCC0_TXQGWE_Msk (0x2UL) /*!< TXQGWE (Bitfield-Mask: 0x01) */ + #define R_CANFD_CFDTXQCC0_TXQOWE_Pos (2UL) /*!< TXQOWE (Bit 2) */ + #define R_CANFD_CFDTXQCC0_TXQOWE_Msk (0x4UL) /*!< TXQOWE (Bitfield-Mask: 0x01) */ + #define R_CANFD_CFDTXQCC0_TXQTXIE_Pos (5UL) /*!< TXQTXIE (Bit 5) */ + #define R_CANFD_CFDTXQCC0_TXQTXIE_Msk (0x20UL) /*!< TXQTXIE (Bitfield-Mask: 0x01) */ + #define R_CANFD_CFDTXQCC0_TXQIM_Pos (7UL) /*!< TXQIM (Bit 7) */ + #define R_CANFD_CFDTXQCC0_TXQIM_Msk (0x80UL) /*!< TXQIM (Bitfield-Mask: 0x01) */ + #define R_CANFD_CFDTXQCC0_TXQDC_Pos (8UL) /*!< TXQDC (Bit 8) */ + #define R_CANFD_CFDTXQCC0_TXQDC_Msk (0x1f00UL) /*!< TXQDC (Bitfield-Mask: 0x1f) */ + #define R_CANFD_CFDTXQCC0_TXQFIE_Pos (16UL) /*!< TXQFIE (Bit 16) */ + #define R_CANFD_CFDTXQCC0_TXQFIE_Msk (0x10000UL) /*!< TXQFIE (Bitfield-Mask: 0x01) */ + #define R_CANFD_CFDTXQCC0_TXQOFRXIE_Pos (17UL) /*!< TXQOFRXIE (Bit 17) */ + #define R_CANFD_CFDTXQCC0_TXQOFRXIE_Msk (0x20000UL) /*!< TXQOFRXIE (Bitfield-Mask: 0x01) */ + #define R_CANFD_CFDTXQCC0_TXQOFTXIE_Pos (18UL) /*!< TXQOFTXIE (Bit 18) */ + #define R_CANFD_CFDTXQCC0_TXQOFTXIE_Msk (0x40000UL) /*!< TXQOFTXIE (Bitfield-Mask: 0x01) */ +/* ====================================================== CFDTXQSTS0 ======================================================= */ + #define R_CANFD_CFDTXQSTS0_TXQEMP_Pos (0UL) /*!< TXQEMP (Bit 0) */ + #define R_CANFD_CFDTXQSTS0_TXQEMP_Msk (0x1UL) /*!< TXQEMP (Bitfield-Mask: 0x01) */ + #define R_CANFD_CFDTXQSTS0_TXQFLL_Pos (1UL) /*!< TXQFLL (Bit 1) */ + #define R_CANFD_CFDTXQSTS0_TXQFLL_Msk (0x2UL) /*!< TXQFLL (Bitfield-Mask: 0x01) */ + #define R_CANFD_CFDTXQSTS0_TXQTXIF_Pos (2UL) /*!< TXQTXIF (Bit 2) */ + #define R_CANFD_CFDTXQSTS0_TXQTXIF_Msk (0x4UL) /*!< TXQTXIF (Bitfield-Mask: 0x01) */ + #define R_CANFD_CFDTXQSTS0_TXQMC_Pos (8UL) /*!< TXQMC (Bit 8) */ + #define R_CANFD_CFDTXQSTS0_TXQMC_Msk (0x3f00UL) /*!< TXQMC (Bitfield-Mask: 0x3f) */ + #define R_CANFD_CFDTXQSTS0_TXQFIF_Pos (16UL) /*!< TXQFIF (Bit 16) */ + #define R_CANFD_CFDTXQSTS0_TXQFIF_Msk (0x10000UL) /*!< TXQFIF (Bitfield-Mask: 0x01) */ + #define R_CANFD_CFDTXQSTS0_TXQOFRXIF_Pos (17UL) /*!< TXQOFRXIF (Bit 17) */ + #define R_CANFD_CFDTXQSTS0_TXQOFRXIF_Msk (0x20000UL) /*!< TXQOFRXIF (Bitfield-Mask: 0x01) */ + #define R_CANFD_CFDTXQSTS0_TXQOFTXIF_Pos (18UL) /*!< TXQOFTXIF (Bit 18) */ + #define R_CANFD_CFDTXQSTS0_TXQOFTXIF_Msk (0x40000UL) /*!< TXQOFTXIF (Bitfield-Mask: 0x01) */ + #define R_CANFD_CFDTXQSTS0_TXQMLT_Pos (19UL) /*!< TXQMLT (Bit 19) */ + #define R_CANFD_CFDTXQSTS0_TXQMLT_Msk (0x80000UL) /*!< TXQMLT (Bitfield-Mask: 0x01) */ + #define R_CANFD_CFDTXQSTS0_TXQMOW_Pos (20UL) /*!< TXQMOW (Bit 20) */ + #define R_CANFD_CFDTXQSTS0_TXQMOW_Msk (0x100000UL) /*!< TXQMOW (Bitfield-Mask: 0x01) */ +/* ====================================================== CFDTXQPCTR0 ====================================================== */ + #define R_CANFD_CFDTXQPCTR0_TXQPC_Pos (0UL) /*!< TXQPC (Bit 0) */ + #define R_CANFD_CFDTXQPCTR0_TXQPC_Msk (0xffUL) /*!< TXQPC (Bitfield-Mask: 0xff) */ +/* ======================================================= CFDTXQCC1 ======================================================= */ + #define R_CANFD_CFDTXQCC1_TXQE_Pos (0UL) /*!< TXQE (Bit 0) */ + #define R_CANFD_CFDTXQCC1_TXQE_Msk (0x1UL) /*!< TXQE (Bitfield-Mask: 0x01) */ + #define R_CANFD_CFDTXQCC1_TXQGWE_Pos (1UL) /*!< TXQGWE (Bit 1) */ + #define R_CANFD_CFDTXQCC1_TXQGWE_Msk (0x2UL) /*!< TXQGWE (Bitfield-Mask: 0x01) */ + #define R_CANFD_CFDTXQCC1_TXQOWE_Pos (2UL) /*!< TXQOWE (Bit 2) */ + #define R_CANFD_CFDTXQCC1_TXQOWE_Msk (0x4UL) /*!< TXQOWE (Bitfield-Mask: 0x01) */ + #define R_CANFD_CFDTXQCC1_TXQTXIE_Pos (5UL) /*!< TXQTXIE (Bit 5) */ + #define R_CANFD_CFDTXQCC1_TXQTXIE_Msk (0x20UL) /*!< TXQTXIE (Bitfield-Mask: 0x01) */ + #define R_CANFD_CFDTXQCC1_TXQIM_Pos (7UL) /*!< TXQIM (Bit 7) */ + #define R_CANFD_CFDTXQCC1_TXQIM_Msk (0x80UL) /*!< TXQIM (Bitfield-Mask: 0x01) */ + #define R_CANFD_CFDTXQCC1_TXQDC_Pos (8UL) /*!< TXQDC (Bit 8) */ + #define R_CANFD_CFDTXQCC1_TXQDC_Msk (0x1f00UL) /*!< TXQDC (Bitfield-Mask: 0x1f) */ + #define R_CANFD_CFDTXQCC1_TXQFIE_Pos (16UL) /*!< TXQFIE (Bit 16) */ + #define R_CANFD_CFDTXQCC1_TXQFIE_Msk (0x10000UL) /*!< TXQFIE (Bitfield-Mask: 0x01) */ + #define R_CANFD_CFDTXQCC1_TXQOFRXIE_Pos (17UL) /*!< TXQOFRXIE (Bit 17) */ + #define R_CANFD_CFDTXQCC1_TXQOFRXIE_Msk (0x20000UL) /*!< TXQOFRXIE (Bitfield-Mask: 0x01) */ + #define R_CANFD_CFDTXQCC1_TXQOFTXIE_Pos (18UL) /*!< TXQOFTXIE (Bit 18) */ + #define R_CANFD_CFDTXQCC1_TXQOFTXIE_Msk (0x40000UL) /*!< TXQOFTXIE (Bitfield-Mask: 0x01) */ +/* ====================================================== CFDTXQSTS1 ======================================================= */ + #define R_CANFD_CFDTXQSTS1_TXQEMP_Pos (0UL) /*!< TXQEMP (Bit 0) */ + #define R_CANFD_CFDTXQSTS1_TXQEMP_Msk (0x1UL) /*!< TXQEMP (Bitfield-Mask: 0x01) */ + #define R_CANFD_CFDTXQSTS1_TXQFLL_Pos (1UL) /*!< TXQFLL (Bit 1) */ + #define R_CANFD_CFDTXQSTS1_TXQFLL_Msk (0x2UL) /*!< TXQFLL (Bitfield-Mask: 0x01) */ + #define R_CANFD_CFDTXQSTS1_TXQTXIF_Pos (2UL) /*!< TXQTXIF (Bit 2) */ + #define R_CANFD_CFDTXQSTS1_TXQTXIF_Msk (0x4UL) /*!< TXQTXIF (Bitfield-Mask: 0x01) */ + #define R_CANFD_CFDTXQSTS1_TXQMC_Pos (8UL) /*!< TXQMC (Bit 8) */ + #define R_CANFD_CFDTXQSTS1_TXQMC_Msk (0x3f00UL) /*!< TXQMC (Bitfield-Mask: 0x3f) */ + #define R_CANFD_CFDTXQSTS1_TXQFIF_Pos (16UL) /*!< TXQFIF (Bit 16) */ + #define R_CANFD_CFDTXQSTS1_TXQFIF_Msk (0x10000UL) /*!< TXQFIF (Bitfield-Mask: 0x01) */ + #define R_CANFD_CFDTXQSTS1_TXQOFRXIF_Pos (17UL) /*!< TXQOFRXIF (Bit 17) */ + #define R_CANFD_CFDTXQSTS1_TXQOFRXIF_Msk (0x20000UL) /*!< TXQOFRXIF (Bitfield-Mask: 0x01) */ + #define R_CANFD_CFDTXQSTS1_TXQOFTXIF_Pos (18UL) /*!< TXQOFTXIF (Bit 18) */ + #define R_CANFD_CFDTXQSTS1_TXQOFTXIF_Msk (0x40000UL) /*!< TXQOFTXIF (Bitfield-Mask: 0x01) */ + #define R_CANFD_CFDTXQSTS1_TXQMLT_Pos (19UL) /*!< TXQMLT (Bit 19) */ + #define R_CANFD_CFDTXQSTS1_TXQMLT_Msk (0x80000UL) /*!< TXQMLT (Bitfield-Mask: 0x01) */ + #define R_CANFD_CFDTXQSTS1_TXQMOW_Pos (20UL) /*!< TXQMOW (Bit 20) */ + #define R_CANFD_CFDTXQSTS1_TXQMOW_Msk (0x100000UL) /*!< TXQMOW (Bitfield-Mask: 0x01) */ +/* ====================================================== CFDTXQPCTR1 ====================================================== */ + #define R_CANFD_CFDTXQPCTR1_TXQPC_Pos (0UL) /*!< TXQPC (Bit 0) */ + #define R_CANFD_CFDTXQPCTR1_TXQPC_Msk (0xffUL) /*!< TXQPC (Bitfield-Mask: 0xff) */ +/* ======================================================= CFDTXQCC2 ======================================================= */ + #define R_CANFD_CFDTXQCC2_TXQE_Pos (0UL) /*!< TXQE (Bit 0) */ + #define R_CANFD_CFDTXQCC2_TXQE_Msk (0x1UL) /*!< TXQE (Bitfield-Mask: 0x01) */ + #define R_CANFD_CFDTXQCC2_TXQGWE_Pos (1UL) /*!< TXQGWE (Bit 1) */ + #define R_CANFD_CFDTXQCC2_TXQGWE_Msk (0x2UL) /*!< TXQGWE (Bitfield-Mask: 0x01) */ + #define R_CANFD_CFDTXQCC2_TXQOWE_Pos (2UL) /*!< TXQOWE (Bit 2) */ + #define R_CANFD_CFDTXQCC2_TXQOWE_Msk (0x4UL) /*!< TXQOWE (Bitfield-Mask: 0x01) */ + #define R_CANFD_CFDTXQCC2_TXQTXIE_Pos (5UL) /*!< TXQTXIE (Bit 5) */ + #define R_CANFD_CFDTXQCC2_TXQTXIE_Msk (0x20UL) /*!< TXQTXIE (Bitfield-Mask: 0x01) */ + #define R_CANFD_CFDTXQCC2_TXQIM_Pos (7UL) /*!< TXQIM (Bit 7) */ + #define R_CANFD_CFDTXQCC2_TXQIM_Msk (0x80UL) /*!< TXQIM (Bitfield-Mask: 0x01) */ + #define R_CANFD_CFDTXQCC2_TXQDC_Pos (8UL) /*!< TXQDC (Bit 8) */ + #define R_CANFD_CFDTXQCC2_TXQDC_Msk (0x1f00UL) /*!< TXQDC (Bitfield-Mask: 0x1f) */ + #define R_CANFD_CFDTXQCC2_TXQFIE_Pos (16UL) /*!< TXQFIE (Bit 16) */ + #define R_CANFD_CFDTXQCC2_TXQFIE_Msk (0x10000UL) /*!< TXQFIE (Bitfield-Mask: 0x01) */ + #define R_CANFD_CFDTXQCC2_TXQOFRXIE_Pos (17UL) /*!< TXQOFRXIE (Bit 17) */ + #define R_CANFD_CFDTXQCC2_TXQOFRXIE_Msk (0x20000UL) /*!< TXQOFRXIE (Bitfield-Mask: 0x01) */ + #define R_CANFD_CFDTXQCC2_TXQOFTXIE_Pos (18UL) /*!< TXQOFTXIE (Bit 18) */ + #define R_CANFD_CFDTXQCC2_TXQOFTXIE_Msk (0x40000UL) /*!< TXQOFTXIE (Bitfield-Mask: 0x01) */ +/* ====================================================== CFDTXQSTS2 ======================================================= */ + #define R_CANFD_CFDTXQSTS2_TXQEMP_Pos (0UL) /*!< TXQEMP (Bit 0) */ + #define R_CANFD_CFDTXQSTS2_TXQEMP_Msk (0x1UL) /*!< TXQEMP (Bitfield-Mask: 0x01) */ + #define R_CANFD_CFDTXQSTS2_TXQFLL_Pos (1UL) /*!< TXQFLL (Bit 1) */ + #define R_CANFD_CFDTXQSTS2_TXQFLL_Msk (0x2UL) /*!< TXQFLL (Bitfield-Mask: 0x01) */ + #define R_CANFD_CFDTXQSTS2_TXQTXIF_Pos (2UL) /*!< TXQTXIF (Bit 2) */ + #define R_CANFD_CFDTXQSTS2_TXQTXIF_Msk (0x4UL) /*!< TXQTXIF (Bitfield-Mask: 0x01) */ + #define R_CANFD_CFDTXQSTS2_TXQMC_Pos (8UL) /*!< TXQMC (Bit 8) */ + #define R_CANFD_CFDTXQSTS2_TXQMC_Msk (0x3f00UL) /*!< TXQMC (Bitfield-Mask: 0x3f) */ + #define R_CANFD_CFDTXQSTS2_TXQFIF_Pos (16UL) /*!< TXQFIF (Bit 16) */ + #define R_CANFD_CFDTXQSTS2_TXQFIF_Msk (0x10000UL) /*!< TXQFIF (Bitfield-Mask: 0x01) */ + #define R_CANFD_CFDTXQSTS2_TXQOFRXIF_Pos (17UL) /*!< TXQOFRXIF (Bit 17) */ + #define R_CANFD_CFDTXQSTS2_TXQOFRXIF_Msk (0x20000UL) /*!< TXQOFRXIF (Bitfield-Mask: 0x01) */ + #define R_CANFD_CFDTXQSTS2_TXQOFTXIF_Pos (18UL) /*!< TXQOFTXIF (Bit 18) */ + #define R_CANFD_CFDTXQSTS2_TXQOFTXIF_Msk (0x40000UL) /*!< TXQOFTXIF (Bitfield-Mask: 0x01) */ + #define R_CANFD_CFDTXQSTS2_TXQMLT_Pos (19UL) /*!< TXQMLT (Bit 19) */ + #define R_CANFD_CFDTXQSTS2_TXQMLT_Msk (0x80000UL) /*!< TXQMLT (Bitfield-Mask: 0x01) */ + #define R_CANFD_CFDTXQSTS2_TXQMOW_Pos (20UL) /*!< TXQMOW (Bit 20) */ + #define R_CANFD_CFDTXQSTS2_TXQMOW_Msk (0x100000UL) /*!< TXQMOW (Bitfield-Mask: 0x01) */ +/* ====================================================== CFDTXQPCTR2 ====================================================== */ + #define R_CANFD_CFDTXQPCTR2_TXQPC_Pos (0UL) /*!< TXQPC (Bit 0) */ + #define R_CANFD_CFDTXQPCTR2_TXQPC_Msk (0xffUL) /*!< TXQPC (Bitfield-Mask: 0xff) */ +/* ======================================================= CFDTXQCC3 ======================================================= */ + #define R_CANFD_CFDTXQCC3_TXQE_Pos (0UL) /*!< TXQE (Bit 0) */ + #define R_CANFD_CFDTXQCC3_TXQE_Msk (0x1UL) /*!< TXQE (Bitfield-Mask: 0x01) */ + #define R_CANFD_CFDTXQCC3_TXQOWE_Pos (2UL) /*!< TXQOWE (Bit 2) */ + #define R_CANFD_CFDTXQCC3_TXQOWE_Msk (0x4UL) /*!< TXQOWE (Bitfield-Mask: 0x01) */ + #define R_CANFD_CFDTXQCC3_TXQTXIE_Pos (5UL) /*!< TXQTXIE (Bit 5) */ + #define R_CANFD_CFDTXQCC3_TXQTXIE_Msk (0x20UL) /*!< TXQTXIE (Bitfield-Mask: 0x01) */ + #define R_CANFD_CFDTXQCC3_TXQIM_Pos (7UL) /*!< TXQIM (Bit 7) */ + #define R_CANFD_CFDTXQCC3_TXQIM_Msk (0x80UL) /*!< TXQIM (Bitfield-Mask: 0x01) */ + #define R_CANFD_CFDTXQCC3_TXQDC_Pos (8UL) /*!< TXQDC (Bit 8) */ + #define R_CANFD_CFDTXQCC3_TXQDC_Msk (0x1f00UL) /*!< TXQDC (Bitfield-Mask: 0x1f) */ + #define R_CANFD_CFDTXQCC3_TXQOFTXIE_Pos (18UL) /*!< TXQOFTXIE (Bit 18) */ + #define R_CANFD_CFDTXQCC3_TXQOFTXIE_Msk (0x40000UL) /*!< TXQOFTXIE (Bitfield-Mask: 0x01) */ +/* ====================================================== CFDTXQSTS3 ======================================================= */ + #define R_CANFD_CFDTXQSTS3_TXQEMP_Pos (0UL) /*!< TXQEMP (Bit 0) */ + #define R_CANFD_CFDTXQSTS3_TXQEMP_Msk (0x1UL) /*!< TXQEMP (Bitfield-Mask: 0x01) */ + #define R_CANFD_CFDTXQSTS3_TXQFLL_Pos (1UL) /*!< TXQFLL (Bit 1) */ + #define R_CANFD_CFDTXQSTS3_TXQFLL_Msk (0x2UL) /*!< TXQFLL (Bitfield-Mask: 0x01) */ + #define R_CANFD_CFDTXQSTS3_TXQTXIF_Pos (2UL) /*!< TXQTXIF (Bit 2) */ + #define R_CANFD_CFDTXQSTS3_TXQTXIF_Msk (0x4UL) /*!< TXQTXIF (Bitfield-Mask: 0x01) */ + #define R_CANFD_CFDTXQSTS3_TXQMC_Pos (8UL) /*!< TXQMC (Bit 8) */ + #define R_CANFD_CFDTXQSTS3_TXQMC_Msk (0x3f00UL) /*!< TXQMC (Bitfield-Mask: 0x3f) */ + #define R_CANFD_CFDTXQSTS3_TXQOFTXIF_Pos (18UL) /*!< TXQOFTXIF (Bit 18) */ + #define R_CANFD_CFDTXQSTS3_TXQOFTXIF_Msk (0x40000UL) /*!< TXQOFTXIF (Bitfield-Mask: 0x01) */ + #define R_CANFD_CFDTXQSTS3_TXQMOW_Pos (20UL) /*!< TXQMOW (Bit 20) */ + #define R_CANFD_CFDTXQSTS3_TXQMOW_Msk (0x100000UL) /*!< TXQMOW (Bitfield-Mask: 0x01) */ +/* ====================================================== CFDTXQPCTR3 ====================================================== */ + #define R_CANFD_CFDTXQPCTR3_TXQPC_Pos (0UL) /*!< TXQPC (Bit 0) */ + #define R_CANFD_CFDTXQPCTR3_TXQPC_Msk (0xffUL) /*!< TXQPC (Bitfield-Mask: 0xff) */ +/* ====================================================== CFDTXQESTS ======================================================= */ + #define R_CANFD_CFDTXQESTS_TXQxEMP_Pos (0UL) /*!< TXQxEMP (Bit 0) */ + #define R_CANFD_CFDTXQESTS_TXQxEMP_Msk (0xffUL) /*!< TXQxEMP (Bitfield-Mask: 0xff) */ +/* ====================================================== CFDTXQFISTS ====================================================== */ + #define R_CANFD_CFDTXQFISTS_TXQ0FULL_Pos (0UL) /*!< TXQ0FULL (Bit 0) */ + #define R_CANFD_CFDTXQFISTS_TXQ0FULL_Msk (0x7UL) /*!< TXQ0FULL (Bitfield-Mask: 0x07) */ + #define R_CANFD_CFDTXQFISTS_TXQ1FULL_Pos (4UL) /*!< TXQ1FULL (Bit 4) */ + #define R_CANFD_CFDTXQFISTS_TXQ1FULL_Msk (0x70UL) /*!< TXQ1FULL (Bitfield-Mask: 0x07) */ +/* ====================================================== CFDTXQMSTS ======================================================= */ + #define R_CANFD_CFDTXQMSTS_TXQ0ML_Pos (0UL) /*!< TXQ0ML (Bit 0) */ + #define R_CANFD_CFDTXQMSTS_TXQ0ML_Msk (0x7UL) /*!< TXQ0ML (Bitfield-Mask: 0x07) */ + #define R_CANFD_CFDTXQMSTS_TXQ1ML_Pos (4UL) /*!< TXQ1ML (Bit 4) */ + #define R_CANFD_CFDTXQMSTS_TXQ1ML_Msk (0x70UL) /*!< TXQ1ML (Bitfield-Mask: 0x07) */ +/* ====================================================== CFDTXQISTS ======================================================= */ + #define R_CANFD_CFDTXQISTS_TXQ0ISF_Pos (0UL) /*!< TXQ0ISF (Bit 0) */ + #define R_CANFD_CFDTXQISTS_TXQ0ISF_Msk (0xfUL) /*!< TXQ0ISF (Bitfield-Mask: 0x0f) */ + #define R_CANFD_CFDTXQISTS_TXQ1ISF_Pos (4UL) /*!< TXQ1ISF (Bit 4) */ + #define R_CANFD_CFDTXQISTS_TXQ1ISF_Msk (0xf0UL) /*!< TXQ1ISF (Bitfield-Mask: 0x0f) */ +/* ===================================================== CFDTXQOFTISTS ===================================================== */ + #define R_CANFD_CFDTXQOFTISTS_TXQ0OFTISF_Pos (0UL) /*!< TXQ0OFTISF (Bit 0) */ + #define R_CANFD_CFDTXQOFTISTS_TXQ0OFTISF_Msk (0xfUL) /*!< TXQ0OFTISF (Bitfield-Mask: 0x0f) */ + #define R_CANFD_CFDTXQOFTISTS_TXQ1OFTISF_Pos (4UL) /*!< TXQ1OFTISF (Bit 4) */ + #define R_CANFD_CFDTXQOFTISTS_TXQ1OFTISF_Msk (0xf0UL) /*!< TXQ1OFTISF (Bitfield-Mask: 0x0f) */ +/* ===================================================== CFDTXQOFRISTS ===================================================== */ + #define R_CANFD_CFDTXQOFRISTS_TXQ0OFRISF_Pos (0UL) /*!< TXQ0OFRISF (Bit 0) */ + #define R_CANFD_CFDTXQOFRISTS_TXQ0OFRISF_Msk (0x7UL) /*!< TXQ0OFRISF (Bitfield-Mask: 0x07) */ + #define R_CANFD_CFDTXQOFRISTS_TXQ1OFRISF_Pos (4UL) /*!< TXQ1OFRISF (Bit 4) */ + #define R_CANFD_CFDTXQOFRISTS_TXQ1OFRISF_Msk (0x70UL) /*!< TXQ1OFRISF (Bitfield-Mask: 0x07) */ +/* ====================================================== CFDTXQFSTS ======================================================= */ + #define R_CANFD_CFDTXQFSTS_TXQ0FSF_Pos (0UL) /*!< TXQ0FSF (Bit 0) */ + #define R_CANFD_CFDTXQFSTS_TXQ0FSF_Msk (0xfUL) /*!< TXQ0FSF (Bitfield-Mask: 0x0f) */ + #define R_CANFD_CFDTXQFSTS_TXQ1FSF_Pos (4UL) /*!< TXQ1FSF (Bit 4) */ + #define R_CANFD_CFDTXQFSTS_TXQ1FSF_Msk (0xf0UL) /*!< TXQ1FSF (Bitfield-Mask: 0x0f) */ +/* ======================================================= CFDTHLCC ======================================================== */ + #define R_CANFD_CFDTHLCC_THLE_Pos (0UL) /*!< THLE (Bit 0) */ + #define R_CANFD_CFDTHLCC_THLE_Msk (0x1UL) /*!< THLE (Bitfield-Mask: 0x01) */ + #define R_CANFD_CFDTHLCC_THLIE_Pos (8UL) /*!< THLIE (Bit 8) */ + #define R_CANFD_CFDTHLCC_THLIE_Msk (0x100UL) /*!< THLIE (Bitfield-Mask: 0x01) */ + #define R_CANFD_CFDTHLCC_THLIM_Pos (9UL) /*!< THLIM (Bit 9) */ + #define R_CANFD_CFDTHLCC_THLIM_Msk (0x200UL) /*!< THLIM (Bitfield-Mask: 0x01) */ + #define R_CANFD_CFDTHLCC_THLDTE_Pos (10UL) /*!< THLDTE (Bit 10) */ + #define R_CANFD_CFDTHLCC_THLDTE_Msk (0x400UL) /*!< THLDTE (Bitfield-Mask: 0x01) */ + #define R_CANFD_CFDTHLCC_THLDGE_Pos (11UL) /*!< THLDGE (Bit 11) */ + #define R_CANFD_CFDTHLCC_THLDGE_Msk (0x800UL) /*!< THLDGE (Bitfield-Mask: 0x01) */ +/* ======================================================= CFDTHLSTS ======================================================= */ + #define R_CANFD_CFDTHLSTS_THLEMP_Pos (0UL) /*!< THLEMP (Bit 0) */ + #define R_CANFD_CFDTHLSTS_THLEMP_Msk (0x1UL) /*!< THLEMP (Bitfield-Mask: 0x01) */ + #define R_CANFD_CFDTHLSTS_THLFLL_Pos (1UL) /*!< THLFLL (Bit 1) */ + #define R_CANFD_CFDTHLSTS_THLFLL_Msk (0x2UL) /*!< THLFLL (Bitfield-Mask: 0x01) */ + #define R_CANFD_CFDTHLSTS_THLELT_Pos (2UL) /*!< THLELT (Bit 2) */ + #define R_CANFD_CFDTHLSTS_THLELT_Msk (0x4UL) /*!< THLELT (Bitfield-Mask: 0x01) */ + #define R_CANFD_CFDTHLSTS_THLIF_Pos (3UL) /*!< THLIF (Bit 3) */ + #define R_CANFD_CFDTHLSTS_THLIF_Msk (0x8UL) /*!< THLIF (Bitfield-Mask: 0x01) */ + #define R_CANFD_CFDTHLSTS_THLMC_Pos (8UL) /*!< THLMC (Bit 8) */ + #define R_CANFD_CFDTHLSTS_THLMC_Msk (0x3f00UL) /*!< THLMC (Bitfield-Mask: 0x3f) */ +/* ====================================================== CFDTHLPCTR ======================================================= */ + #define R_CANFD_CFDTHLPCTR_THLPC_Pos (0UL) /*!< THLPC (Bit 0) */ + #define R_CANFD_CFDTHLPCTR_THLPC_Msk (0xffUL) /*!< THLPC (Bitfield-Mask: 0xff) */ +/* ===================================================== CFDGTINTSTS0 ====================================================== */ + #define R_CANFD_CFDGTINTSTS0_TSIF0_Pos (0UL) /*!< TSIF0 (Bit 0) */ + #define R_CANFD_CFDGTINTSTS0_TSIF0_Msk (0x1UL) /*!< TSIF0 (Bitfield-Mask: 0x01) */ + #define R_CANFD_CFDGTINTSTS0_TAIF0_Pos (1UL) /*!< TAIF0 (Bit 1) */ + #define R_CANFD_CFDGTINTSTS0_TAIF0_Msk (0x2UL) /*!< TAIF0 (Bitfield-Mask: 0x01) */ + #define R_CANFD_CFDGTINTSTS0_TQIF0_Pos (2UL) /*!< TQIF0 (Bit 2) */ + #define R_CANFD_CFDGTINTSTS0_TQIF0_Msk (0x4UL) /*!< TQIF0 (Bitfield-Mask: 0x01) */ + #define R_CANFD_CFDGTINTSTS0_CFTIF0_Pos (3UL) /*!< CFTIF0 (Bit 3) */ + #define R_CANFD_CFDGTINTSTS0_CFTIF0_Msk (0x8UL) /*!< CFTIF0 (Bitfield-Mask: 0x01) */ + #define R_CANFD_CFDGTINTSTS0_THIF0_Pos (4UL) /*!< THIF0 (Bit 4) */ + #define R_CANFD_CFDGTINTSTS0_THIF0_Msk (0x10UL) /*!< THIF0 (Bitfield-Mask: 0x01) */ + #define R_CANFD_CFDGTINTSTS0_TQOFIF0_Pos (5UL) /*!< TQOFIF0 (Bit 5) */ + #define R_CANFD_CFDGTINTSTS0_TQOFIF0_Msk (0x20UL) /*!< TQOFIF0 (Bitfield-Mask: 0x01) */ + #define R_CANFD_CFDGTINTSTS0_CFOTIF0_Pos (6UL) /*!< CFOTIF0 (Bit 6) */ + #define R_CANFD_CFDGTINTSTS0_CFOTIF0_Msk (0x40UL) /*!< CFOTIF0 (Bitfield-Mask: 0x01) */ + #define R_CANFD_CFDGTINTSTS0_TSIF1_Pos (8UL) /*!< TSIF1 (Bit 8) */ + #define R_CANFD_CFDGTINTSTS0_TSIF1_Msk (0x100UL) /*!< TSIF1 (Bitfield-Mask: 0x01) */ + #define R_CANFD_CFDGTINTSTS0_TAIF1_Pos (9UL) /*!< TAIF1 (Bit 9) */ + #define R_CANFD_CFDGTINTSTS0_TAIF1_Msk (0x200UL) /*!< TAIF1 (Bitfield-Mask: 0x01) */ + #define R_CANFD_CFDGTINTSTS0_TQIF1_Pos (10UL) /*!< TQIF1 (Bit 10) */ + #define R_CANFD_CFDGTINTSTS0_TQIF1_Msk (0x400UL) /*!< TQIF1 (Bitfield-Mask: 0x01) */ + #define R_CANFD_CFDGTINTSTS0_CFTIF1_Pos (11UL) /*!< CFTIF1 (Bit 11) */ + #define R_CANFD_CFDGTINTSTS0_CFTIF1_Msk (0x800UL) /*!< CFTIF1 (Bitfield-Mask: 0x01) */ + #define R_CANFD_CFDGTINTSTS0_THIF1_Pos (12UL) /*!< THIF1 (Bit 12) */ + #define R_CANFD_CFDGTINTSTS0_THIF1_Msk (0x1000UL) /*!< THIF1 (Bitfield-Mask: 0x01) */ + #define R_CANFD_CFDGTINTSTS0_TQOFIF1_Pos (13UL) /*!< TQOFIF1 (Bit 13) */ + #define R_CANFD_CFDGTINTSTS0_TQOFIF1_Msk (0x2000UL) /*!< TQOFIF1 (Bitfield-Mask: 0x01) */ + #define R_CANFD_CFDGTINTSTS0_CFOTIF1_Pos (14UL) /*!< CFOTIF1 (Bit 14) */ + #define R_CANFD_CFDGTINTSTS0_CFOTIF1_Msk (0x4000UL) /*!< CFOTIF1 (Bitfield-Mask: 0x01) */ +/* ====================================================== CFDGTSTCFG ======================================================= */ + #define R_CANFD_CFDGTSTCFG_C0ICBCE_Pos (0UL) /*!< C0ICBCE (Bit 0) */ + #define R_CANFD_CFDGTSTCFG_C0ICBCE_Msk (0x1UL) /*!< C0ICBCE (Bitfield-Mask: 0x01) */ + #define R_CANFD_CFDGTSTCFG_C1ICBCE_Pos (1UL) /*!< C1ICBCE (Bit 1) */ + #define R_CANFD_CFDGTSTCFG_C1ICBCE_Msk (0x2UL) /*!< C1ICBCE (Bitfield-Mask: 0x01) */ + #define R_CANFD_CFDGTSTCFG_RTMPS_Pos (16UL) /*!< RTMPS (Bit 16) */ + #define R_CANFD_CFDGTSTCFG_RTMPS_Msk (0x3ff0000UL) /*!< RTMPS (Bitfield-Mask: 0x3ff) */ +/* ====================================================== CFDGTSTCTR ======================================================= */ + #define R_CANFD_CFDGTSTCTR_ICBCTME_Pos (0UL) /*!< ICBCTME (Bit 0) */ + #define R_CANFD_CFDGTSTCTR_ICBCTME_Msk (0x1UL) /*!< ICBCTME (Bitfield-Mask: 0x01) */ + #define R_CANFD_CFDGTSTCTR_RTME_Pos (2UL) /*!< RTME (Bit 2) */ + #define R_CANFD_CFDGTSTCTR_RTME_Msk (0x4UL) /*!< RTME (Bitfield-Mask: 0x01) */ +/* ======================================================= CFDGFDCFG ======================================================= */ + #define R_CANFD_CFDGFDCFG_RPED_Pos (0UL) /*!< RPED (Bit 0) */ + #define R_CANFD_CFDGFDCFG_RPED_Msk (0x1UL) /*!< RPED (Bitfield-Mask: 0x01) */ + #define R_CANFD_CFDGFDCFG_TSCCFG_Pos (8UL) /*!< TSCCFG (Bit 8) */ + #define R_CANFD_CFDGFDCFG_TSCCFG_Msk (0x300UL) /*!< TSCCFG (Bitfield-Mask: 0x03) */ +/* ======================================================= CFDGLOCKK ======================================================= */ + #define R_CANFD_CFDGLOCKK_LOCK_Pos (0UL) /*!< LOCK (Bit 0) */ + #define R_CANFD_CFDGLOCKK_LOCK_Msk (0xffffUL) /*!< LOCK (Bitfield-Mask: 0xffff) */ +/* ======================================================= CFDCDTCT ======================================================== */ + #define R_CANFD_CFDCDTCT_RFDMAE0_Pos (0UL) /*!< RFDMAE0 (Bit 0) */ + #define R_CANFD_CFDCDTCT_RFDMAE0_Msk (0x1UL) /*!< RFDMAE0 (Bitfield-Mask: 0x01) */ + #define R_CANFD_CFDCDTCT_RFDMAE1_Pos (1UL) /*!< RFDMAE1 (Bit 1) */ + #define R_CANFD_CFDCDTCT_RFDMAE1_Msk (0x2UL) /*!< RFDMAE1 (Bitfield-Mask: 0x01) */ + #define R_CANFD_CFDCDTCT_RFDMAE2_Pos (2UL) /*!< RFDMAE2 (Bit 2) */ + #define R_CANFD_CFDCDTCT_RFDMAE2_Msk (0x4UL) /*!< RFDMAE2 (Bitfield-Mask: 0x01) */ + #define R_CANFD_CFDCDTCT_RFDMAE3_Pos (3UL) /*!< RFDMAE3 (Bit 3) */ + #define R_CANFD_CFDCDTCT_RFDMAE3_Msk (0x8UL) /*!< RFDMAE3 (Bitfield-Mask: 0x01) */ + #define R_CANFD_CFDCDTCT_RFDMAE4_Pos (4UL) /*!< RFDMAE4 (Bit 4) */ + #define R_CANFD_CFDCDTCT_RFDMAE4_Msk (0x10UL) /*!< RFDMAE4 (Bitfield-Mask: 0x01) */ + #define R_CANFD_CFDCDTCT_RFDMAE5_Pos (5UL) /*!< RFDMAE5 (Bit 5) */ + #define R_CANFD_CFDCDTCT_RFDMAE5_Msk (0x20UL) /*!< RFDMAE5 (Bitfield-Mask: 0x01) */ + #define R_CANFD_CFDCDTCT_RFDMAE6_Pos (6UL) /*!< RFDMAE6 (Bit 6) */ + #define R_CANFD_CFDCDTCT_RFDMAE6_Msk (0x40UL) /*!< RFDMAE6 (Bitfield-Mask: 0x01) */ + #define R_CANFD_CFDCDTCT_RFDMAE7_Pos (7UL) /*!< RFDMAE7 (Bit 7) */ + #define R_CANFD_CFDCDTCT_RFDMAE7_Msk (0x80UL) /*!< RFDMAE7 (Bitfield-Mask: 0x01) */ + #define R_CANFD_CFDCDTCT_CFDMAE0_Pos (8UL) /*!< CFDMAE0 (Bit 8) */ + #define R_CANFD_CFDCDTCT_CFDMAE0_Msk (0x100UL) /*!< CFDMAE0 (Bitfield-Mask: 0x01) */ + #define R_CANFD_CFDCDTCT_CFDMAE1_Pos (9UL) /*!< CFDMAE1 (Bit 9) */ + #define R_CANFD_CFDCDTCT_CFDMAE1_Msk (0x200UL) /*!< CFDMAE1 (Bitfield-Mask: 0x01) */ +/* ======================================================= CFDCDTSTS ======================================================= */ + #define R_CANFD_CFDCDTSTS_RFDMASTS0_Pos (0UL) /*!< RFDMASTS0 (Bit 0) */ + #define R_CANFD_CFDCDTSTS_RFDMASTS0_Msk (0x1UL) /*!< RFDMASTS0 (Bitfield-Mask: 0x01) */ + #define R_CANFD_CFDCDTSTS_RFDMASTS1_Pos (1UL) /*!< RFDMASTS1 (Bit 1) */ + #define R_CANFD_CFDCDTSTS_RFDMASTS1_Msk (0x2UL) /*!< RFDMASTS1 (Bitfield-Mask: 0x01) */ + #define R_CANFD_CFDCDTSTS_RFDMASTS2_Pos (2UL) /*!< RFDMASTS2 (Bit 2) */ + #define R_CANFD_CFDCDTSTS_RFDMASTS2_Msk (0x4UL) /*!< RFDMASTS2 (Bitfield-Mask: 0x01) */ + #define R_CANFD_CFDCDTSTS_RFDMASTS3_Pos (3UL) /*!< RFDMASTS3 (Bit 3) */ + #define R_CANFD_CFDCDTSTS_RFDMASTS3_Msk (0x8UL) /*!< RFDMASTS3 (Bitfield-Mask: 0x01) */ + #define R_CANFD_CFDCDTSTS_RFDMASTS4_Pos (4UL) /*!< RFDMASTS4 (Bit 4) */ + #define R_CANFD_CFDCDTSTS_RFDMASTS4_Msk (0x10UL) /*!< RFDMASTS4 (Bitfield-Mask: 0x01) */ + #define R_CANFD_CFDCDTSTS_RFDMASTS5_Pos (5UL) /*!< RFDMASTS5 (Bit 5) */ + #define R_CANFD_CFDCDTSTS_RFDMASTS5_Msk (0x20UL) /*!< RFDMASTS5 (Bitfield-Mask: 0x01) */ + #define R_CANFD_CFDCDTSTS_RFDMASTS6_Pos (6UL) /*!< RFDMASTS6 (Bit 6) */ + #define R_CANFD_CFDCDTSTS_RFDMASTS6_Msk (0x40UL) /*!< RFDMASTS6 (Bitfield-Mask: 0x01) */ + #define R_CANFD_CFDCDTSTS_RFDMASTS7_Pos (7UL) /*!< RFDMASTS7 (Bit 7) */ + #define R_CANFD_CFDCDTSTS_RFDMASTS7_Msk (0x80UL) /*!< RFDMASTS7 (Bitfield-Mask: 0x01) */ + #define R_CANFD_CFDCDTSTS_CFDMASTS0_Pos (8UL) /*!< CFDMASTS0 (Bit 8) */ + #define R_CANFD_CFDCDTSTS_CFDMASTS0_Msk (0x100UL) /*!< CFDMASTS0 (Bitfield-Mask: 0x01) */ + #define R_CANFD_CFDCDTSTS_CFDMASTS1_Pos (9UL) /*!< CFDMASTS1 (Bit 9) */ + #define R_CANFD_CFDCDTSTS_CFDMASTS1_Msk (0x200UL) /*!< CFDMASTS1 (Bitfield-Mask: 0x01) */ +/* ======================================================= CFDCDTTCT ======================================================= */ + #define R_CANFD_CFDCDTTCT_TQ0DMAE0_Pos (0UL) /*!< TQ0DMAE0 (Bit 0) */ + #define R_CANFD_CFDCDTTCT_TQ0DMAE0_Msk (0x1UL) /*!< TQ0DMAE0 (Bitfield-Mask: 0x01) */ + #define R_CANFD_CFDCDTTCT_TQ0DMAE1_Pos (1UL) /*!< TQ0DMAE1 (Bit 1) */ + #define R_CANFD_CFDCDTTCT_TQ0DMAE1_Msk (0x2UL) /*!< TQ0DMAE1 (Bitfield-Mask: 0x01) */ + #define R_CANFD_CFDCDTTCT_TQ3DMAE0_Pos (8UL) /*!< TQ3DMAE0 (Bit 8) */ + #define R_CANFD_CFDCDTTCT_TQ3DMAE0_Msk (0x100UL) /*!< TQ3DMAE0 (Bitfield-Mask: 0x01) */ + #define R_CANFD_CFDCDTTCT_TQ3DMAE1_Pos (9UL) /*!< TQ3DMAE1 (Bit 9) */ + #define R_CANFD_CFDCDTTCT_TQ3DMAE1_Msk (0x200UL) /*!< TQ3DMAE1 (Bitfield-Mask: 0x01) */ + #define R_CANFD_CFDCDTTCT_CFDMAE0_Pos (16UL) /*!< CFDMAE0 (Bit 16) */ + #define R_CANFD_CFDCDTTCT_CFDMAE0_Msk (0x10000UL) /*!< CFDMAE0 (Bitfield-Mask: 0x01) */ + #define R_CANFD_CFDCDTTCT_CFDMAE1_Pos (17UL) /*!< CFDMAE1 (Bit 17) */ + #define R_CANFD_CFDCDTTCT_CFDMAE1_Msk (0x20000UL) /*!< CFDMAE1 (Bitfield-Mask: 0x01) */ +/* ====================================================== CFDCDTTSTS ======================================================= */ + #define R_CANFD_CFDCDTTSTS_TQ0DMASTS0_Pos (0UL) /*!< TQ0DMASTS0 (Bit 0) */ + #define R_CANFD_CFDCDTTSTS_TQ0DMASTS0_Msk (0x1UL) /*!< TQ0DMASTS0 (Bitfield-Mask: 0x01) */ + #define R_CANFD_CFDCDTTSTS_TQ0DMASTS1_Pos (1UL) /*!< TQ0DMASTS1 (Bit 1) */ + #define R_CANFD_CFDCDTTSTS_TQ0DMASTS1_Msk (0x2UL) /*!< TQ0DMASTS1 (Bitfield-Mask: 0x01) */ + #define R_CANFD_CFDCDTTSTS_TQ3DMASTS0_Pos (8UL) /*!< TQ3DMASTS0 (Bit 8) */ + #define R_CANFD_CFDCDTTSTS_TQ3DMASTS0_Msk (0x100UL) /*!< TQ3DMASTS0 (Bitfield-Mask: 0x01) */ + #define R_CANFD_CFDCDTTSTS_TQ3DMASTS1_Pos (9UL) /*!< TQ3DMASTS1 (Bit 9) */ + #define R_CANFD_CFDCDTTSTS_TQ3DMASTS1_Msk (0x200UL) /*!< TQ3DMASTS1 (Bitfield-Mask: 0x01) */ + #define R_CANFD_CFDCDTTSTS_CFDMASTS0_Pos (16UL) /*!< CFDMASTS0 (Bit 16) */ + #define R_CANFD_CFDCDTTSTS_CFDMASTS0_Msk (0x10000UL) /*!< CFDMASTS0 (Bitfield-Mask: 0x01) */ + #define R_CANFD_CFDCDTTSTS_CFDMASTS1_Pos (17UL) /*!< CFDMASTS1 (Bit 17) */ + #define R_CANFD_CFDCDTTSTS_CFDMASTS1_Msk (0x20000UL) /*!< CFDMASTS1 (Bitfield-Mask: 0x01) */ +/* ====================================================== CFDGRINTSTS ====================================================== */ + #define R_CANFD_CFDGRINTSTS_QFIF_Pos (0UL) /*!< QFIF (Bit 0) */ + #define R_CANFD_CFDGRINTSTS_QFIF_Msk (0x7UL) /*!< QFIF (Bitfield-Mask: 0x07) */ + #define R_CANFD_CFDGRINTSTS_BQFIF_Pos (4UL) /*!< BQFIF (Bit 4) */ + #define R_CANFD_CFDGRINTSTS_BQFIF_Msk (0x30UL) /*!< BQFIF (Bitfield-Mask: 0x03) */ + #define R_CANFD_CFDGRINTSTS_QOFRIF_Pos (8UL) /*!< QOFRIF (Bit 8) */ + #define R_CANFD_CFDGRINTSTS_QOFRIF_Msk (0x700UL) /*!< QOFRIF (Bitfield-Mask: 0x07) */ + #define R_CANFD_CFDGRINTSTS_BQOFRIF_Pos (12UL) /*!< BQOFRIF (Bit 12) */ + #define R_CANFD_CFDGRINTSTS_BQOFRIF_Msk (0x3000UL) /*!< BQOFRIF (Bitfield-Mask: 0x03) */ + #define R_CANFD_CFDGRINTSTS_CFRIF_Pos (16UL) /*!< CFRIF (Bit 16) */ + #define R_CANFD_CFDGRINTSTS_CFRIF_Msk (0x70000UL) /*!< CFRIF (Bitfield-Mask: 0x07) */ + #define R_CANFD_CFDGRINTSTS_CFRFIF_Pos (24UL) /*!< CFRFIF (Bit 24) */ + #define R_CANFD_CFDGRINTSTS_CFRFIF_Msk (0x7000000UL) /*!< CFRFIF (Bitfield-Mask: 0x07) */ + #define R_CANFD_CFDGRINTSTS_CFOFRIF_Pos (28UL) /*!< CFOFRIF (Bit 28) */ + #define R_CANFD_CFDGRINTSTS_CFOFRIF_Msk (0x70000000UL) /*!< CFOFRIF (Bitfield-Mask: 0x07) */ +/* ======================================================= CFDGRSTC ======================================================== */ + #define R_CANFD_CFDGRSTC_SRST_Pos (0UL) /*!< SRST (Bit 0) */ + #define R_CANFD_CFDGRSTC_SRST_Msk (0x1UL) /*!< SRST (Bitfield-Mask: 0x01) */ + #define R_CANFD_CFDGRSTC_KEY_Pos (8UL) /*!< KEY (Bit 8) */ + #define R_CANFD_CFDGRSTC_KEY_Msk (0xff00UL) /*!< KEY (Bitfield-Mask: 0xff) */ +/* ======================================================= CFDGFCMC ======================================================== */ + #define R_CANFD_CFDGFCMC_FLXC0_Pos (0UL) /*!< FLXC0 (Bit 0) */ + #define R_CANFD_CFDGFCMC_FLXC0_Msk (0x1UL) /*!< FLXC0 (Bitfield-Mask: 0x01) */ +/* ======================================================= CFDGFTBAC ======================================================= */ + #define R_CANFD_CFDGFTBAC_FLXMB0_Pos (0UL) /*!< FLXMB0 (Bit 0) */ + #define R_CANFD_CFDGFTBAC_FLXMB0_Msk (0xfUL) /*!< FLXMB0 (Bitfield-Mask: 0x0f) */ +/* ======================================================= CFDRPGACC ======================================================= */ + #define R_CANFD_CFDRPGACC_RDTA_Pos (0UL) /*!< RDTA (Bit 0) */ + #define R_CANFD_CFDRPGACC_RDTA_Msk (0xffffffffUL) /*!< RDTA (Bitfield-Mask: 0xffffffff) */ + +/* =========================================================================================================================== */ +/* ================ R_CMT ================ */ +/* =========================================================================================================================== */ + +/* =========================================================================================================================== */ +/* ================ R_CMTW0 ================ */ +/* =========================================================================================================================== */ + +/* ======================================================== CMWSTR ========================================================= */ + #define R_CMTW0_CMWSTR_STR_Pos (0UL) /*!< STR (Bit 0) */ + #define R_CMTW0_CMWSTR_STR_Msk (0x1UL) /*!< STR (Bitfield-Mask: 0x01) */ +/* ========================================================= CMWCR ========================================================= */ + #define R_CMTW0_CMWCR_CKS_Pos (0UL) /*!< CKS (Bit 0) */ + #define R_CMTW0_CMWCR_CKS_Msk (0x3UL) /*!< CKS (Bitfield-Mask: 0x03) */ + #define R_CMTW0_CMWCR_CMWIE_Pos (3UL) /*!< CMWIE (Bit 3) */ + #define R_CMTW0_CMWCR_CMWIE_Msk (0x8UL) /*!< CMWIE (Bitfield-Mask: 0x01) */ + #define R_CMTW0_CMWCR_IC0IE_Pos (4UL) /*!< IC0IE (Bit 4) */ + #define R_CMTW0_CMWCR_IC0IE_Msk (0x10UL) /*!< IC0IE (Bitfield-Mask: 0x01) */ + #define R_CMTW0_CMWCR_IC1IE_Pos (5UL) /*!< IC1IE (Bit 5) */ + #define R_CMTW0_CMWCR_IC1IE_Msk (0x20UL) /*!< IC1IE (Bitfield-Mask: 0x01) */ + #define R_CMTW0_CMWCR_OC0IE_Pos (6UL) /*!< OC0IE (Bit 6) */ + #define R_CMTW0_CMWCR_OC0IE_Msk (0x40UL) /*!< OC0IE (Bitfield-Mask: 0x01) */ + #define R_CMTW0_CMWCR_OC1IE_Pos (7UL) /*!< OC1IE (Bit 7) */ + #define R_CMTW0_CMWCR_OC1IE_Msk (0x80UL) /*!< OC1IE (Bitfield-Mask: 0x01) */ + #define R_CMTW0_CMWCR_CMS_Pos (9UL) /*!< CMS (Bit 9) */ + #define R_CMTW0_CMWCR_CMS_Msk (0x200UL) /*!< CMS (Bitfield-Mask: 0x01) */ + #define R_CMTW0_CMWCR_CCLR_Pos (13UL) /*!< CCLR (Bit 13) */ + #define R_CMTW0_CMWCR_CCLR_Msk (0xe000UL) /*!< CCLR (Bitfield-Mask: 0x07) */ +/* ======================================================== CMWIOR ========================================================= */ + #define R_CMTW0_CMWIOR_IC0_Pos (0UL) /*!< IC0 (Bit 0) */ + #define R_CMTW0_CMWIOR_IC0_Msk (0x3UL) /*!< IC0 (Bitfield-Mask: 0x03) */ + #define R_CMTW0_CMWIOR_IC1_Pos (2UL) /*!< IC1 (Bit 2) */ + #define R_CMTW0_CMWIOR_IC1_Msk (0xcUL) /*!< IC1 (Bitfield-Mask: 0x03) */ + #define R_CMTW0_CMWIOR_IC0E_Pos (4UL) /*!< IC0E (Bit 4) */ + #define R_CMTW0_CMWIOR_IC0E_Msk (0x10UL) /*!< IC0E (Bitfield-Mask: 0x01) */ + #define R_CMTW0_CMWIOR_IC1E_Pos (5UL) /*!< IC1E (Bit 5) */ + #define R_CMTW0_CMWIOR_IC1E_Msk (0x20UL) /*!< IC1E (Bitfield-Mask: 0x01) */ + #define R_CMTW0_CMWIOR_OC0_Pos (8UL) /*!< OC0 (Bit 8) */ + #define R_CMTW0_CMWIOR_OC0_Msk (0x300UL) /*!< OC0 (Bitfield-Mask: 0x03) */ + #define R_CMTW0_CMWIOR_OC1_Pos (10UL) /*!< OC1 (Bit 10) */ + #define R_CMTW0_CMWIOR_OC1_Msk (0xc00UL) /*!< OC1 (Bitfield-Mask: 0x03) */ + #define R_CMTW0_CMWIOR_OC0E_Pos (12UL) /*!< OC0E (Bit 12) */ + #define R_CMTW0_CMWIOR_OC0E_Msk (0x1000UL) /*!< OC0E (Bitfield-Mask: 0x01) */ + #define R_CMTW0_CMWIOR_OC1E_Pos (13UL) /*!< OC1E (Bit 13) */ + #define R_CMTW0_CMWIOR_OC1E_Msk (0x2000UL) /*!< OC1E (Bitfield-Mask: 0x01) */ + #define R_CMTW0_CMWIOR_CMWE_Pos (15UL) /*!< CMWE (Bit 15) */ + #define R_CMTW0_CMWIOR_CMWE_Msk (0x8000UL) /*!< CMWE (Bitfield-Mask: 0x01) */ +/* ======================================================== CMWCNT ========================================================= */ +/* ======================================================== CMWCOR ========================================================= */ +/* ======================================================== CMWICR0 ======================================================== */ +/* ======================================================== CMWICR1 ======================================================== */ +/* ======================================================== CMWOCR0 ======================================================== */ +/* ======================================================== CMWOCR1 ======================================================== */ + +/* =========================================================================================================================== */ +/* ================ R_WDT0 ================ */ +/* =========================================================================================================================== */ + +/* ========================================================= WDTRR ========================================================= */ +/* ========================================================= WDTCR ========================================================= */ + #define R_WDT0_WDTCR_TOPS_Pos (0UL) /*!< TOPS (Bit 0) */ + #define R_WDT0_WDTCR_TOPS_Msk (0x3UL) /*!< TOPS (Bitfield-Mask: 0x03) */ + #define R_WDT0_WDTCR_CKS_Pos (4UL) /*!< CKS (Bit 4) */ + #define R_WDT0_WDTCR_CKS_Msk (0xf0UL) /*!< CKS (Bitfield-Mask: 0x0f) */ + #define R_WDT0_WDTCR_RPES_Pos (8UL) /*!< RPES (Bit 8) */ + #define R_WDT0_WDTCR_RPES_Msk (0x300UL) /*!< RPES (Bitfield-Mask: 0x03) */ + #define R_WDT0_WDTCR_RPSS_Pos (12UL) /*!< RPSS (Bit 12) */ + #define R_WDT0_WDTCR_RPSS_Msk (0x3000UL) /*!< RPSS (Bitfield-Mask: 0x03) */ +/* ========================================================= WDTSR ========================================================= */ + #define R_WDT0_WDTSR_CNTVAL_Pos (0UL) /*!< CNTVAL (Bit 0) */ + #define R_WDT0_WDTSR_CNTVAL_Msk (0x3fffUL) /*!< CNTVAL (Bitfield-Mask: 0x3fff) */ + #define R_WDT0_WDTSR_UNDFF_Pos (14UL) /*!< UNDFF (Bit 14) */ + #define R_WDT0_WDTSR_UNDFF_Msk (0x4000UL) /*!< UNDFF (Bitfield-Mask: 0x01) */ + #define R_WDT0_WDTSR_REFEF_Pos (15UL) /*!< REFEF (Bit 15) */ + #define R_WDT0_WDTSR_REFEF_Msk (0x8000UL) /*!< REFEF (Bitfield-Mask: 0x01) */ +/* ======================================================== WDTRCR ========================================================= */ + #define R_WDT0_WDTRCR_RSTIRQS_Pos (7UL) /*!< RSTIRQS (Bit 7) */ + #define R_WDT0_WDTRCR_RSTIRQS_Msk (0x80UL) /*!< RSTIRQS (Bitfield-Mask: 0x01) */ + +/* =========================================================================================================================== */ +/* ================ R_IIC0 ================ */ +/* =========================================================================================================================== */ + +/* ========================================================= ICCR1 ========================================================= */ + #define R_IIC0_ICCR1_SDAI_Pos (0UL) /*!< SDAI (Bit 0) */ + #define R_IIC0_ICCR1_SDAI_Msk (0x1UL) /*!< SDAI (Bitfield-Mask: 0x01) */ + #define R_IIC0_ICCR1_SCLI_Pos (1UL) /*!< SCLI (Bit 1) */ + #define R_IIC0_ICCR1_SCLI_Msk (0x2UL) /*!< SCLI (Bitfield-Mask: 0x01) */ + #define R_IIC0_ICCR1_SDAO_Pos (2UL) /*!< SDAO (Bit 2) */ + #define R_IIC0_ICCR1_SDAO_Msk (0x4UL) /*!< SDAO (Bitfield-Mask: 0x01) */ + #define R_IIC0_ICCR1_SCLO_Pos (3UL) /*!< SCLO (Bit 3) */ + #define R_IIC0_ICCR1_SCLO_Msk (0x8UL) /*!< SCLO (Bitfield-Mask: 0x01) */ + #define R_IIC0_ICCR1_SOWP_Pos (4UL) /*!< SOWP (Bit 4) */ + #define R_IIC0_ICCR1_SOWP_Msk (0x10UL) /*!< SOWP (Bitfield-Mask: 0x01) */ + #define R_IIC0_ICCR1_CLO_Pos (5UL) /*!< CLO (Bit 5) */ + #define R_IIC0_ICCR1_CLO_Msk (0x20UL) /*!< CLO (Bitfield-Mask: 0x01) */ + #define R_IIC0_ICCR1_IICRST_Pos (6UL) /*!< IICRST (Bit 6) */ + #define R_IIC0_ICCR1_IICRST_Msk (0x40UL) /*!< IICRST (Bitfield-Mask: 0x01) */ + #define R_IIC0_ICCR1_ICE_Pos (7UL) /*!< ICE (Bit 7) */ + #define R_IIC0_ICCR1_ICE_Msk (0x80UL) /*!< ICE (Bitfield-Mask: 0x01) */ +/* ========================================================= ICCR2 ========================================================= */ + #define R_IIC0_ICCR2_ST_Pos (1UL) /*!< ST (Bit 1) */ + #define R_IIC0_ICCR2_ST_Msk (0x2UL) /*!< ST (Bitfield-Mask: 0x01) */ + #define R_IIC0_ICCR2_RS_Pos (2UL) /*!< RS (Bit 2) */ + #define R_IIC0_ICCR2_RS_Msk (0x4UL) /*!< RS (Bitfield-Mask: 0x01) */ + #define R_IIC0_ICCR2_SP_Pos (3UL) /*!< SP (Bit 3) */ + #define R_IIC0_ICCR2_SP_Msk (0x8UL) /*!< SP (Bitfield-Mask: 0x01) */ + #define R_IIC0_ICCR2_TRS_Pos (5UL) /*!< TRS (Bit 5) */ + #define R_IIC0_ICCR2_TRS_Msk (0x20UL) /*!< TRS (Bitfield-Mask: 0x01) */ + #define R_IIC0_ICCR2_MST_Pos (6UL) /*!< MST (Bit 6) */ + #define R_IIC0_ICCR2_MST_Msk (0x40UL) /*!< MST (Bitfield-Mask: 0x01) */ + #define R_IIC0_ICCR2_BBSY_Pos (7UL) /*!< BBSY (Bit 7) */ + #define R_IIC0_ICCR2_BBSY_Msk (0x80UL) /*!< BBSY (Bitfield-Mask: 0x01) */ +/* ========================================================= ICMR1 ========================================================= */ + #define R_IIC0_ICMR1_BC_Pos (0UL) /*!< BC (Bit 0) */ + #define R_IIC0_ICMR1_BC_Msk (0x7UL) /*!< BC (Bitfield-Mask: 0x07) */ + #define R_IIC0_ICMR1_BCWP_Pos (3UL) /*!< BCWP (Bit 3) */ + #define R_IIC0_ICMR1_BCWP_Msk (0x8UL) /*!< BCWP (Bitfield-Mask: 0x01) */ + #define R_IIC0_ICMR1_CKS_Pos (4UL) /*!< CKS (Bit 4) */ + #define R_IIC0_ICMR1_CKS_Msk (0x70UL) /*!< CKS (Bitfield-Mask: 0x07) */ + #define R_IIC0_ICMR1_MTWP_Pos (7UL) /*!< MTWP (Bit 7) */ + #define R_IIC0_ICMR1_MTWP_Msk (0x80UL) /*!< MTWP (Bitfield-Mask: 0x01) */ +/* ========================================================= ICMR2 ========================================================= */ + #define R_IIC0_ICMR2_TMOS_Pos (0UL) /*!< TMOS (Bit 0) */ + #define R_IIC0_ICMR2_TMOS_Msk (0x1UL) /*!< TMOS (Bitfield-Mask: 0x01) */ + #define R_IIC0_ICMR2_TMOL_Pos (1UL) /*!< TMOL (Bit 1) */ + #define R_IIC0_ICMR2_TMOL_Msk (0x2UL) /*!< TMOL (Bitfield-Mask: 0x01) */ + #define R_IIC0_ICMR2_TMOH_Pos (2UL) /*!< TMOH (Bit 2) */ + #define R_IIC0_ICMR2_TMOH_Msk (0x4UL) /*!< TMOH (Bitfield-Mask: 0x01) */ + #define R_IIC0_ICMR2_SDDL_Pos (4UL) /*!< SDDL (Bit 4) */ + #define R_IIC0_ICMR2_SDDL_Msk (0x70UL) /*!< SDDL (Bitfield-Mask: 0x07) */ + #define R_IIC0_ICMR2_DLCS_Pos (7UL) /*!< DLCS (Bit 7) */ + #define R_IIC0_ICMR2_DLCS_Msk (0x80UL) /*!< DLCS (Bitfield-Mask: 0x01) */ +/* ========================================================= ICMR3 ========================================================= */ + #define R_IIC0_ICMR3_NF_Pos (0UL) /*!< NF (Bit 0) */ + #define R_IIC0_ICMR3_NF_Msk (0x3UL) /*!< NF (Bitfield-Mask: 0x03) */ + #define R_IIC0_ICMR3_ACKBR_Pos (2UL) /*!< ACKBR (Bit 2) */ + #define R_IIC0_ICMR3_ACKBR_Msk (0x4UL) /*!< ACKBR (Bitfield-Mask: 0x01) */ + #define R_IIC0_ICMR3_ACKBT_Pos (3UL) /*!< ACKBT (Bit 3) */ + #define R_IIC0_ICMR3_ACKBT_Msk (0x8UL) /*!< ACKBT (Bitfield-Mask: 0x01) */ + #define R_IIC0_ICMR3_ACKWP_Pos (4UL) /*!< ACKWP (Bit 4) */ + #define R_IIC0_ICMR3_ACKWP_Msk (0x10UL) /*!< ACKWP (Bitfield-Mask: 0x01) */ + #define R_IIC0_ICMR3_RDRFS_Pos (5UL) /*!< RDRFS (Bit 5) */ + #define R_IIC0_ICMR3_RDRFS_Msk (0x20UL) /*!< RDRFS (Bitfield-Mask: 0x01) */ + #define R_IIC0_ICMR3_WAIT_Pos (6UL) /*!< WAIT (Bit 6) */ + #define R_IIC0_ICMR3_WAIT_Msk (0x40UL) /*!< WAIT (Bitfield-Mask: 0x01) */ + #define R_IIC0_ICMR3_SMBS_Pos (7UL) /*!< SMBS (Bit 7) */ + #define R_IIC0_ICMR3_SMBS_Msk (0x80UL) /*!< SMBS (Bitfield-Mask: 0x01) */ +/* ========================================================= ICFER ========================================================= */ + #define R_IIC0_ICFER_TMOE_Pos (0UL) /*!< TMOE (Bit 0) */ + #define R_IIC0_ICFER_TMOE_Msk (0x1UL) /*!< TMOE (Bitfield-Mask: 0x01) */ + #define R_IIC0_ICFER_MALE_Pos (1UL) /*!< MALE (Bit 1) */ + #define R_IIC0_ICFER_MALE_Msk (0x2UL) /*!< MALE (Bitfield-Mask: 0x01) */ + #define R_IIC0_ICFER_NALE_Pos (2UL) /*!< NALE (Bit 2) */ + #define R_IIC0_ICFER_NALE_Msk (0x4UL) /*!< NALE (Bitfield-Mask: 0x01) */ + #define R_IIC0_ICFER_SALE_Pos (3UL) /*!< SALE (Bit 3) */ + #define R_IIC0_ICFER_SALE_Msk (0x8UL) /*!< SALE (Bitfield-Mask: 0x01) */ + #define R_IIC0_ICFER_NACKE_Pos (4UL) /*!< NACKE (Bit 4) */ + #define R_IIC0_ICFER_NACKE_Msk (0x10UL) /*!< NACKE (Bitfield-Mask: 0x01) */ + #define R_IIC0_ICFER_NFE_Pos (5UL) /*!< NFE (Bit 5) */ + #define R_IIC0_ICFER_NFE_Msk (0x20UL) /*!< NFE (Bitfield-Mask: 0x01) */ + #define R_IIC0_ICFER_SCLE_Pos (6UL) /*!< SCLE (Bit 6) */ + #define R_IIC0_ICFER_SCLE_Msk (0x40UL) /*!< SCLE (Bitfield-Mask: 0x01) */ +/* ========================================================= ICSER ========================================================= */ + #define R_IIC0_ICSER_SAR0E_Pos (0UL) /*!< SAR0E (Bit 0) */ + #define R_IIC0_ICSER_SAR0E_Msk (0x1UL) /*!< SAR0E (Bitfield-Mask: 0x01) */ + #define R_IIC0_ICSER_SAR1E_Pos (1UL) /*!< SAR1E (Bit 1) */ + #define R_IIC0_ICSER_SAR1E_Msk (0x2UL) /*!< SAR1E (Bitfield-Mask: 0x01) */ + #define R_IIC0_ICSER_SAR2E_Pos (2UL) /*!< SAR2E (Bit 2) */ + #define R_IIC0_ICSER_SAR2E_Msk (0x4UL) /*!< SAR2E (Bitfield-Mask: 0x01) */ + #define R_IIC0_ICSER_GCAE_Pos (3UL) /*!< GCAE (Bit 3) */ + #define R_IIC0_ICSER_GCAE_Msk (0x8UL) /*!< GCAE (Bitfield-Mask: 0x01) */ + #define R_IIC0_ICSER_DIDE_Pos (5UL) /*!< DIDE (Bit 5) */ + #define R_IIC0_ICSER_DIDE_Msk (0x20UL) /*!< DIDE (Bitfield-Mask: 0x01) */ + #define R_IIC0_ICSER_HOAE_Pos (7UL) /*!< HOAE (Bit 7) */ + #define R_IIC0_ICSER_HOAE_Msk (0x80UL) /*!< HOAE (Bitfield-Mask: 0x01) */ +/* ========================================================= ICIER ========================================================= */ + #define R_IIC0_ICIER_TMOIE_Pos (0UL) /*!< TMOIE (Bit 0) */ + #define R_IIC0_ICIER_TMOIE_Msk (0x1UL) /*!< TMOIE (Bitfield-Mask: 0x01) */ + #define R_IIC0_ICIER_ALIE_Pos (1UL) /*!< ALIE (Bit 1) */ + #define R_IIC0_ICIER_ALIE_Msk (0x2UL) /*!< ALIE (Bitfield-Mask: 0x01) */ + #define R_IIC0_ICIER_STIE_Pos (2UL) /*!< STIE (Bit 2) */ + #define R_IIC0_ICIER_STIE_Msk (0x4UL) /*!< STIE (Bitfield-Mask: 0x01) */ + #define R_IIC0_ICIER_SPIE_Pos (3UL) /*!< SPIE (Bit 3) */ + #define R_IIC0_ICIER_SPIE_Msk (0x8UL) /*!< SPIE (Bitfield-Mask: 0x01) */ + #define R_IIC0_ICIER_NAKIE_Pos (4UL) /*!< NAKIE (Bit 4) */ + #define R_IIC0_ICIER_NAKIE_Msk (0x10UL) /*!< NAKIE (Bitfield-Mask: 0x01) */ + #define R_IIC0_ICIER_RIE_Pos (5UL) /*!< RIE (Bit 5) */ + #define R_IIC0_ICIER_RIE_Msk (0x20UL) /*!< RIE (Bitfield-Mask: 0x01) */ + #define R_IIC0_ICIER_TEIE_Pos (6UL) /*!< TEIE (Bit 6) */ + #define R_IIC0_ICIER_TEIE_Msk (0x40UL) /*!< TEIE (Bitfield-Mask: 0x01) */ + #define R_IIC0_ICIER_TIE_Pos (7UL) /*!< TIE (Bit 7) */ + #define R_IIC0_ICIER_TIE_Msk (0x80UL) /*!< TIE (Bitfield-Mask: 0x01) */ +/* ========================================================= ICSR1 ========================================================= */ + #define R_IIC0_ICSR1_AAS0_Pos (0UL) /*!< AAS0 (Bit 0) */ + #define R_IIC0_ICSR1_AAS0_Msk (0x1UL) /*!< AAS0 (Bitfield-Mask: 0x01) */ + #define R_IIC0_ICSR1_AAS1_Pos (1UL) /*!< AAS1 (Bit 1) */ + #define R_IIC0_ICSR1_AAS1_Msk (0x2UL) /*!< AAS1 (Bitfield-Mask: 0x01) */ + #define R_IIC0_ICSR1_AAS2_Pos (2UL) /*!< AAS2 (Bit 2) */ + #define R_IIC0_ICSR1_AAS2_Msk (0x4UL) /*!< AAS2 (Bitfield-Mask: 0x01) */ + #define R_IIC0_ICSR1_GCA_Pos (3UL) /*!< GCA (Bit 3) */ + #define R_IIC0_ICSR1_GCA_Msk (0x8UL) /*!< GCA (Bitfield-Mask: 0x01) */ + #define R_IIC0_ICSR1_DID_Pos (5UL) /*!< DID (Bit 5) */ + #define R_IIC0_ICSR1_DID_Msk (0x20UL) /*!< DID (Bitfield-Mask: 0x01) */ + #define R_IIC0_ICSR1_HOA_Pos (7UL) /*!< HOA (Bit 7) */ + #define R_IIC0_ICSR1_HOA_Msk (0x80UL) /*!< HOA (Bitfield-Mask: 0x01) */ +/* ========================================================= ICSR2 ========================================================= */ + #define R_IIC0_ICSR2_TMOF_Pos (0UL) /*!< TMOF (Bit 0) */ + #define R_IIC0_ICSR2_TMOF_Msk (0x1UL) /*!< TMOF (Bitfield-Mask: 0x01) */ + #define R_IIC0_ICSR2_AL_Pos (1UL) /*!< AL (Bit 1) */ + #define R_IIC0_ICSR2_AL_Msk (0x2UL) /*!< AL (Bitfield-Mask: 0x01) */ + #define R_IIC0_ICSR2_START_Pos (2UL) /*!< START (Bit 2) */ + #define R_IIC0_ICSR2_START_Msk (0x4UL) /*!< START (Bitfield-Mask: 0x01) */ + #define R_IIC0_ICSR2_STOP_Pos (3UL) /*!< STOP (Bit 3) */ + #define R_IIC0_ICSR2_STOP_Msk (0x8UL) /*!< STOP (Bitfield-Mask: 0x01) */ + #define R_IIC0_ICSR2_NACKF_Pos (4UL) /*!< NACKF (Bit 4) */ + #define R_IIC0_ICSR2_NACKF_Msk (0x10UL) /*!< NACKF (Bitfield-Mask: 0x01) */ + #define R_IIC0_ICSR2_RDRF_Pos (5UL) /*!< RDRF (Bit 5) */ + #define R_IIC0_ICSR2_RDRF_Msk (0x20UL) /*!< RDRF (Bitfield-Mask: 0x01) */ + #define R_IIC0_ICSR2_TEND_Pos (6UL) /*!< TEND (Bit 6) */ + #define R_IIC0_ICSR2_TEND_Msk (0x40UL) /*!< TEND (Bitfield-Mask: 0x01) */ + #define R_IIC0_ICSR2_TDRE_Pos (7UL) /*!< TDRE (Bit 7) */ + #define R_IIC0_ICSR2_TDRE_Msk (0x80UL) /*!< TDRE (Bitfield-Mask: 0x01) */ +/* ========================================================= ICBRL ========================================================= */ + #define R_IIC0_ICBRL_BRL_Pos (0UL) /*!< BRL (Bit 0) */ + #define R_IIC0_ICBRL_BRL_Msk (0x1fUL) /*!< BRL (Bitfield-Mask: 0x1f) */ +/* ========================================================= ICBRH ========================================================= */ + #define R_IIC0_ICBRH_BRH_Pos (0UL) /*!< BRH (Bit 0) */ + #define R_IIC0_ICBRH_BRH_Msk (0x1fUL) /*!< BRH (Bitfield-Mask: 0x1f) */ +/* ========================================================= ICDRT ========================================================= */ +/* ========================================================= ICDRR ========================================================= */ + +/* =========================================================================================================================== */ +/* ================ R_DOC ================ */ +/* =========================================================================================================================== */ + +/* ========================================================= DOCR ========================================================== */ + #define R_DOC_DOCR_OMS_Pos (0UL) /*!< OMS (Bit 0) */ + #define R_DOC_DOCR_OMS_Msk (0x3UL) /*!< OMS (Bitfield-Mask: 0x03) */ + #define R_DOC_DOCR_DCSEL_Pos (2UL) /*!< DCSEL (Bit 2) */ + #define R_DOC_DOCR_DCSEL_Msk (0x4UL) /*!< DCSEL (Bitfield-Mask: 0x01) */ + #define R_DOC_DOCR_DOPCIE_Pos (4UL) /*!< DOPCIE (Bit 4) */ + #define R_DOC_DOCR_DOPCIE_Msk (0x10UL) /*!< DOPCIE (Bitfield-Mask: 0x01) */ + #define R_DOC_DOCR_DOPCF_Pos (5UL) /*!< DOPCF (Bit 5) */ + #define R_DOC_DOCR_DOPCF_Msk (0x20UL) /*!< DOPCF (Bitfield-Mask: 0x01) */ + #define R_DOC_DOCR_DOPCFCL_Pos (6UL) /*!< DOPCFCL (Bit 6) */ + #define R_DOC_DOCR_DOPCFCL_Msk (0x40UL) /*!< DOPCFCL (Bitfield-Mask: 0x01) */ +/* ========================================================= DODIR ========================================================= */ +/* ========================================================= DODSR ========================================================= */ + +/* =========================================================================================================================== */ +/* ================ R_ADC121 ================ */ +/* =========================================================================================================================== */ + +/* ========================================================= ADCSR ========================================================= */ + #define R_ADC121_ADCSR_DBLANS_Pos (0UL) /*!< DBLANS (Bit 0) */ + #define R_ADC121_ADCSR_DBLANS_Msk (0x1fUL) /*!< DBLANS (Bitfield-Mask: 0x1f) */ + #define R_ADC121_ADCSR_GBADIE_Pos (6UL) /*!< GBADIE (Bit 6) */ + #define R_ADC121_ADCSR_GBADIE_Msk (0x40UL) /*!< GBADIE (Bitfield-Mask: 0x01) */ + #define R_ADC121_ADCSR_DBLE_Pos (7UL) /*!< DBLE (Bit 7) */ + #define R_ADC121_ADCSR_DBLE_Msk (0x80UL) /*!< DBLE (Bitfield-Mask: 0x01) */ + #define R_ADC121_ADCSR_EXTRG_Pos (8UL) /*!< EXTRG (Bit 8) */ + #define R_ADC121_ADCSR_EXTRG_Msk (0x100UL) /*!< EXTRG (Bitfield-Mask: 0x01) */ + #define R_ADC121_ADCSR_TRGE_Pos (9UL) /*!< TRGE (Bit 9) */ + #define R_ADC121_ADCSR_TRGE_Msk (0x200UL) /*!< TRGE (Bitfield-Mask: 0x01) */ + #define R_ADC121_ADCSR_ADIE_Pos (12UL) /*!< ADIE (Bit 12) */ + #define R_ADC121_ADCSR_ADIE_Msk (0x1000UL) /*!< ADIE (Bitfield-Mask: 0x01) */ + #define R_ADC121_ADCSR_ADCS_Pos (13UL) /*!< ADCS (Bit 13) */ + #define R_ADC121_ADCSR_ADCS_Msk (0x6000UL) /*!< ADCS (Bitfield-Mask: 0x03) */ + #define R_ADC121_ADCSR_ADST_Pos (15UL) /*!< ADST (Bit 15) */ + #define R_ADC121_ADCSR_ADST_Msk (0x8000UL) /*!< ADST (Bitfield-Mask: 0x01) */ +/* ======================================================== ADANSA0 ======================================================== */ + #define R_ADC121_ADANSA0_ANSA0_Pos (0UL) /*!< ANSA0 (Bit 0) */ + #define R_ADC121_ADANSA0_ANSA0_Msk (0xffUL) /*!< ANSA0 (Bitfield-Mask: 0xff) */ +/* ======================================================== ADADS0 ========================================================= */ + #define R_ADC121_ADADS0_ADS0_Pos (0UL) /*!< ADS0 (Bit 0) */ + #define R_ADC121_ADADS0_ADS0_Msk (0xffUL) /*!< ADS0 (Bitfield-Mask: 0xff) */ +/* ========================================================= ADADC ========================================================= */ + #define R_ADC121_ADADC_ADC_Pos (0UL) /*!< ADC (Bit 0) */ + #define R_ADC121_ADADC_ADC_Msk (0x7UL) /*!< ADC (Bitfield-Mask: 0x07) */ + #define R_ADC121_ADADC_AVEE_Pos (7UL) /*!< AVEE (Bit 7) */ + #define R_ADC121_ADADC_AVEE_Msk (0x80UL) /*!< AVEE (Bitfield-Mask: 0x01) */ +/* ========================================================= ADCER ========================================================= */ + #define R_ADC121_ADCER_ADPRC_Pos (1UL) /*!< ADPRC (Bit 1) */ + #define R_ADC121_ADCER_ADPRC_Msk (0x6UL) /*!< ADPRC (Bitfield-Mask: 0x03) */ + #define R_ADC121_ADCER_ACE_Pos (5UL) /*!< ACE (Bit 5) */ + #define R_ADC121_ADCER_ACE_Msk (0x20UL) /*!< ACE (Bitfield-Mask: 0x01) */ + #define R_ADC121_ADCER_ADRFMT_Pos (15UL) /*!< ADRFMT (Bit 15) */ + #define R_ADC121_ADCER_ADRFMT_Msk (0x8000UL) /*!< ADRFMT (Bitfield-Mask: 0x01) */ +/* ======================================================== ADSTRGR ======================================================== */ + #define R_ADC121_ADSTRGR_TRSB_Pos (0UL) /*!< TRSB (Bit 0) */ + #define R_ADC121_ADSTRGR_TRSB_Msk (0x3fUL) /*!< TRSB (Bitfield-Mask: 0x3f) */ + #define R_ADC121_ADSTRGR_TRSA_Pos (8UL) /*!< TRSA (Bit 8) */ + #define R_ADC121_ADSTRGR_TRSA_Msk (0x3f00UL) /*!< TRSA (Bitfield-Mask: 0x3f) */ +/* ======================================================== ADANSB0 ======================================================== */ + #define R_ADC121_ADANSB0_ANSB0_Pos (0UL) /*!< ANSB0 (Bit 0) */ + #define R_ADC121_ADANSB0_ANSB0_Msk (0xffUL) /*!< ANSB0 (Bitfield-Mask: 0xff) */ +/* ======================================================== ADDBLDR ======================================================== */ + #define R_ADC121_ADDBLDR_DBLDR_Pos (0UL) /*!< DBLDR (Bit 0) */ + #define R_ADC121_ADDBLDR_DBLDR_Msk (0xffffUL) /*!< DBLDR (Bitfield-Mask: 0xffff) */ +/* ========================================================= ADDR ========================================================== */ + #define R_ADC121_ADDR_DR_Pos (0UL) /*!< DR (Bit 0) */ + #define R_ADC121_ADDR_DR_Msk (0xffffUL) /*!< DR (Bitfield-Mask: 0xffff) */ +/* ======================================================== ADSHCR ========================================================= */ + #define R_ADC121_ADSHCR_SSTSH_Pos (0UL) /*!< SSTSH (Bit 0) */ + #define R_ADC121_ADSHCR_SSTSH_Msk (0xffUL) /*!< SSTSH (Bitfield-Mask: 0xff) */ + #define R_ADC121_ADSHCR_SHANS_Pos (8UL) /*!< SHANS (Bit 8) */ + #define R_ADC121_ADSHCR_SHANS_Msk (0x700UL) /*!< SHANS (Bitfield-Mask: 0x07) */ +/* ======================================================== ADELCCR ======================================================== */ + #define R_ADC121_ADELCCR_ELCC_Pos (0UL) /*!< ELCC (Bit 0) */ + #define R_ADC121_ADELCCR_ELCC_Msk (0x3UL) /*!< ELCC (Bitfield-Mask: 0x03) */ + #define R_ADC121_ADELCCR_GCELC_Pos (2UL) /*!< GCELC (Bit 2) */ + #define R_ADC121_ADELCCR_GCELC_Msk (0x4UL) /*!< GCELC (Bitfield-Mask: 0x01) */ +/* ======================================================== ADGSPCR ======================================================== */ + #define R_ADC121_ADGSPCR_PGS_Pos (0UL) /*!< PGS (Bit 0) */ + #define R_ADC121_ADGSPCR_PGS_Msk (0x1UL) /*!< PGS (Bitfield-Mask: 0x01) */ + #define R_ADC121_ADGSPCR_GBRSCN_Pos (1UL) /*!< GBRSCN (Bit 1) */ + #define R_ADC121_ADGSPCR_GBRSCN_Msk (0x2UL) /*!< GBRSCN (Bitfield-Mask: 0x01) */ + #define R_ADC121_ADGSPCR_LGRRS_Pos (14UL) /*!< LGRRS (Bit 14) */ + #define R_ADC121_ADGSPCR_LGRRS_Msk (0x4000UL) /*!< LGRRS (Bitfield-Mask: 0x01) */ + #define R_ADC121_ADGSPCR_GBRP_Pos (15UL) /*!< GBRP (Bit 15) */ + #define R_ADC121_ADGSPCR_GBRP_Msk (0x8000UL) /*!< GBRP (Bitfield-Mask: 0x01) */ +/* ======================================================= ADDBLDRA ======================================================== */ + #define R_ADC121_ADDBLDRA_DBLDRA_Pos (0UL) /*!< DBLDRA (Bit 0) */ + #define R_ADC121_ADDBLDRA_DBLDRA_Msk (0xffffUL) /*!< DBLDRA (Bitfield-Mask: 0xffff) */ +/* ======================================================= ADDBLDRB ======================================================== */ + #define R_ADC121_ADDBLDRB_DBLDRB_Pos (0UL) /*!< DBLDRB (Bit 0) */ + #define R_ADC121_ADDBLDRB_DBLDRB_Msk (0xffffUL) /*!< DBLDRB (Bitfield-Mask: 0xffff) */ +/* ======================================================= ADWINMON ======================================================== */ + #define R_ADC121_ADWINMON_MONCOMB_Pos (0UL) /*!< MONCOMB (Bit 0) */ + #define R_ADC121_ADWINMON_MONCOMB_Msk (0x1UL) /*!< MONCOMB (Bitfield-Mask: 0x01) */ + #define R_ADC121_ADWINMON_MONCMPA_Pos (4UL) /*!< MONCMPA (Bit 4) */ + #define R_ADC121_ADWINMON_MONCMPA_Msk (0x10UL) /*!< MONCMPA (Bitfield-Mask: 0x01) */ + #define R_ADC121_ADWINMON_MONCMPB_Pos (5UL) /*!< MONCMPB (Bit 5) */ + #define R_ADC121_ADWINMON_MONCMPB_Msk (0x20UL) /*!< MONCMPB (Bitfield-Mask: 0x01) */ +/* ======================================================== ADCMPCR ======================================================== */ + #define R_ADC121_ADCMPCR_CMPAB_Pos (0UL) /*!< CMPAB (Bit 0) */ + #define R_ADC121_ADCMPCR_CMPAB_Msk (0x3UL) /*!< CMPAB (Bitfield-Mask: 0x03) */ + #define R_ADC121_ADCMPCR_CMPBE_Pos (9UL) /*!< CMPBE (Bit 9) */ + #define R_ADC121_ADCMPCR_CMPBE_Msk (0x200UL) /*!< CMPBE (Bitfield-Mask: 0x01) */ + #define R_ADC121_ADCMPCR_CMPAE_Pos (11UL) /*!< CMPAE (Bit 11) */ + #define R_ADC121_ADCMPCR_CMPAE_Msk (0x800UL) /*!< CMPAE (Bitfield-Mask: 0x01) */ + #define R_ADC121_ADCMPCR_CMPBIE_Pos (13UL) /*!< CMPBIE (Bit 13) */ + #define R_ADC121_ADCMPCR_CMPBIE_Msk (0x2000UL) /*!< CMPBIE (Bitfield-Mask: 0x01) */ + #define R_ADC121_ADCMPCR_WCMPE_Pos (14UL) /*!< WCMPE (Bit 14) */ + #define R_ADC121_ADCMPCR_WCMPE_Msk (0x4000UL) /*!< WCMPE (Bitfield-Mask: 0x01) */ + #define R_ADC121_ADCMPCR_CMPAIE_Pos (15UL) /*!< CMPAIE (Bit 15) */ + #define R_ADC121_ADCMPCR_CMPAIE_Msk (0x8000UL) /*!< CMPAIE (Bitfield-Mask: 0x01) */ +/* ====================================================== ADCMPANSR0 ======================================================= */ + #define R_ADC121_ADCMPANSR0_CMPCHA0_Pos (0UL) /*!< CMPCHA0 (Bit 0) */ + #define R_ADC121_ADCMPANSR0_CMPCHA0_Msk (0xffUL) /*!< CMPCHA0 (Bitfield-Mask: 0xff) */ +/* ======================================================= ADCMPLR0 ======================================================== */ + #define R_ADC121_ADCMPLR0_CMPLCHA0_Pos (0UL) /*!< CMPLCHA0 (Bit 0) */ + #define R_ADC121_ADCMPLR0_CMPLCHA0_Msk (0xffUL) /*!< CMPLCHA0 (Bitfield-Mask: 0xff) */ +/* ======================================================= ADCMPDR0 ======================================================== */ + #define R_ADC121_ADCMPDR0_CMPLLA_Pos (0UL) /*!< CMPLLA (Bit 0) */ + #define R_ADC121_ADCMPDR0_CMPLLA_Msk (0xffffUL) /*!< CMPLLA (Bitfield-Mask: 0xffff) */ +/* ======================================================= ADCMPDR1 ======================================================== */ + #define R_ADC121_ADCMPDR1_CMPULA_Pos (0UL) /*!< CMPULA (Bit 0) */ + #define R_ADC121_ADCMPDR1_CMPULA_Msk (0xffffUL) /*!< CMPULA (Bitfield-Mask: 0xffff) */ +/* ======================================================= ADCMPSR0 ======================================================== */ + #define R_ADC121_ADCMPSR0_CMPSTCHA0_Pos (0UL) /*!< CMPSTCHA0 (Bit 0) */ + #define R_ADC121_ADCMPSR0_CMPSTCHA0_Msk (0xffUL) /*!< CMPSTCHA0 (Bitfield-Mask: 0xff) */ +/* ======================================================= ADCMPBNSR ======================================================= */ + #define R_ADC121_ADCMPBNSR_CMPCHB_Pos (0UL) /*!< CMPCHB (Bit 0) */ + #define R_ADC121_ADCMPBNSR_CMPCHB_Msk (0x3fUL) /*!< CMPCHB (Bitfield-Mask: 0x3f) */ + #define R_ADC121_ADCMPBNSR_CMPLB_Pos (7UL) /*!< CMPLB (Bit 7) */ + #define R_ADC121_ADCMPBNSR_CMPLB_Msk (0x80UL) /*!< CMPLB (Bitfield-Mask: 0x01) */ +/* ======================================================= ADWINLLB ======================================================== */ + #define R_ADC121_ADWINLLB_CMPLLB_Pos (0UL) /*!< CMPLLB (Bit 0) */ + #define R_ADC121_ADWINLLB_CMPLLB_Msk (0xffffUL) /*!< CMPLLB (Bitfield-Mask: 0xffff) */ +/* ======================================================= ADWINULB ======================================================== */ + #define R_ADC121_ADWINULB_CMPULB_Pos (0UL) /*!< CMPULB (Bit 0) */ + #define R_ADC121_ADWINULB_CMPULB_Msk (0xffffUL) /*!< CMPULB (Bitfield-Mask: 0xffff) */ +/* ======================================================= ADCMPBSR ======================================================== */ + #define R_ADC121_ADCMPBSR_CMPSTB_Pos (0UL) /*!< CMPSTB (Bit 0) */ + #define R_ADC121_ADCMPBSR_CMPSTB_Msk (0x1UL) /*!< CMPSTB (Bitfield-Mask: 0x01) */ +/* ======================================================== ADANSC0 ======================================================== */ + #define R_ADC121_ADANSC0_ANSC0_Pos (0UL) /*!< ANSC0 (Bit 0) */ + #define R_ADC121_ADANSC0_ANSC0_Msk (0xffUL) /*!< ANSC0 (Bitfield-Mask: 0xff) */ +/* ======================================================= ADGCTRGR ======================================================== */ + #define R_ADC121_ADGCTRGR_TRSC_Pos (0UL) /*!< TRSC (Bit 0) */ + #define R_ADC121_ADGCTRGR_TRSC_Msk (0x3fUL) /*!< TRSC (Bitfield-Mask: 0x3f) */ + #define R_ADC121_ADGCTRGR_GCADIE_Pos (6UL) /*!< GCADIE (Bit 6) */ + #define R_ADC121_ADGCTRGR_GCADIE_Msk (0x40UL) /*!< GCADIE (Bitfield-Mask: 0x01) */ + #define R_ADC121_ADGCTRGR_GRCE_Pos (7UL) /*!< GRCE (Bit 7) */ + #define R_ADC121_ADGCTRGR_GRCE_Msk (0x80UL) /*!< GRCE (Bitfield-Mask: 0x01) */ +/* ======================================================== ADSSTR ========================================================= */ + #define R_ADC121_ADSSTR_SST_Pos (0UL) /*!< SST (Bit 0) */ + #define R_ADC121_ADSSTR_SST_Msk (0xffUL) /*!< SST (Bitfield-Mask: 0xff) */ + +/* =========================================================================================================================== */ +/* ================ R_TSU ================ */ +/* =========================================================================================================================== */ + +/* ========================================================= TSUSM ========================================================= */ + #define R_TSU_TSUSM_TSEN_Pos (0UL) /*!< TSEN (Bit 0) */ + #define R_TSU_TSUSM_TSEN_Msk (0x1UL) /*!< TSEN (Bitfield-Mask: 0x01) */ + #define R_TSU_TSUSM_ADCEN_Pos (1UL) /*!< ADCEN (Bit 1) */ + #define R_TSU_TSUSM_ADCEN_Msk (0x2UL) /*!< ADCEN (Bitfield-Mask: 0x01) */ +/* ========================================================= TSUST ========================================================= */ + #define R_TSU_TSUST_START_Pos (0UL) /*!< START (Bit 0) */ + #define R_TSU_TSUST_START_Msk (0x1UL) /*!< START (Bitfield-Mask: 0x01) */ +/* ======================================================== TSUSCS ========================================================= */ + #define R_TSU_TSUSCS_CKDIV_Pos (3UL) /*!< CKDIV (Bit 3) */ + #define R_TSU_TSUSCS_CKDIV_Msk (0x8UL) /*!< CKDIV (Bitfield-Mask: 0x01) */ +/* ======================================================== TSUSAD ========================================================= */ + #define R_TSU_TSUSAD_DOUT_Pos (0UL) /*!< DOUT (Bit 0) */ + #define R_TSU_TSUSAD_DOUT_Msk (0xfffUL) /*!< DOUT (Bitfield-Mask: 0xfff) */ +/* ========================================================= TSUSS ========================================================= */ + #define R_TSU_TSUSS_CONV_Pos (0UL) /*!< CONV (Bit 0) */ + #define R_TSU_TSUSS_CONV_Msk (0x1UL) /*!< CONV (Bitfield-Mask: 0x01) */ + +/* =========================================================================================================================== */ +/* ================ R_POEG1 ================ */ +/* =========================================================================================================================== */ + +/* ======================================================== POEG1GA ======================================================== */ + #define R_POEG1_POEG1GA_PIDF_Pos (0UL) /*!< PIDF (Bit 0) */ + #define R_POEG1_POEG1GA_PIDF_Msk (0x1UL) /*!< PIDF (Bitfield-Mask: 0x01) */ + #define R_POEG1_POEG1GA_IOCF_Pos (1UL) /*!< IOCF (Bit 1) */ + #define R_POEG1_POEG1GA_IOCF_Msk (0x2UL) /*!< IOCF (Bitfield-Mask: 0x01) */ + #define R_POEG1_POEG1GA_OSTPF_Pos (2UL) /*!< OSTPF (Bit 2) */ + #define R_POEG1_POEG1GA_OSTPF_Msk (0x4UL) /*!< OSTPF (Bitfield-Mask: 0x01) */ + #define R_POEG1_POEG1GA_SSF_Pos (3UL) /*!< SSF (Bit 3) */ + #define R_POEG1_POEG1GA_SSF_Msk (0x8UL) /*!< SSF (Bitfield-Mask: 0x01) */ + #define R_POEG1_POEG1GA_PIDE_Pos (4UL) /*!< PIDE (Bit 4) */ + #define R_POEG1_POEG1GA_PIDE_Msk (0x10UL) /*!< PIDE (Bitfield-Mask: 0x01) */ + #define R_POEG1_POEG1GA_IOCE_Pos (5UL) /*!< IOCE (Bit 5) */ + #define R_POEG1_POEG1GA_IOCE_Msk (0x20UL) /*!< IOCE (Bitfield-Mask: 0x01) */ + #define R_POEG1_POEG1GA_OSTPE_Pos (6UL) /*!< OSTPE (Bit 6) */ + #define R_POEG1_POEG1GA_OSTPE_Msk (0x40UL) /*!< OSTPE (Bitfield-Mask: 0x01) */ + #define R_POEG1_POEG1GA_ST_Pos (16UL) /*!< ST (Bit 16) */ + #define R_POEG1_POEG1GA_ST_Msk (0x10000UL) /*!< ST (Bitfield-Mask: 0x01) */ + #define R_POEG1_POEG1GA_INV_Pos (28UL) /*!< INV (Bit 28) */ + #define R_POEG1_POEG1GA_INV_Msk (0x10000000UL) /*!< INV (Bitfield-Mask: 0x01) */ + #define R_POEG1_POEG1GA_NFEN_Pos (29UL) /*!< NFEN (Bit 29) */ + #define R_POEG1_POEG1GA_NFEN_Msk (0x20000000UL) /*!< NFEN (Bitfield-Mask: 0x01) */ + #define R_POEG1_POEG1GA_NFCS_Pos (30UL) /*!< NFCS (Bit 30) */ + #define R_POEG1_POEG1GA_NFCS_Msk (0xc0000000UL) /*!< NFCS (Bitfield-Mask: 0x03) */ +/* ======================================================== POEG1GB ======================================================== */ + #define R_POEG1_POEG1GB_PIDF_Pos (0UL) /*!< PIDF (Bit 0) */ + #define R_POEG1_POEG1GB_PIDF_Msk (0x1UL) /*!< PIDF (Bitfield-Mask: 0x01) */ + #define R_POEG1_POEG1GB_IOCF_Pos (1UL) /*!< IOCF (Bit 1) */ + #define R_POEG1_POEG1GB_IOCF_Msk (0x2UL) /*!< IOCF (Bitfield-Mask: 0x01) */ + #define R_POEG1_POEG1GB_OSTPF_Pos (2UL) /*!< OSTPF (Bit 2) */ + #define R_POEG1_POEG1GB_OSTPF_Msk (0x4UL) /*!< OSTPF (Bitfield-Mask: 0x01) */ + #define R_POEG1_POEG1GB_SSF_Pos (3UL) /*!< SSF (Bit 3) */ + #define R_POEG1_POEG1GB_SSF_Msk (0x8UL) /*!< SSF (Bitfield-Mask: 0x01) */ + #define R_POEG1_POEG1GB_PIDE_Pos (4UL) /*!< PIDE (Bit 4) */ + #define R_POEG1_POEG1GB_PIDE_Msk (0x10UL) /*!< PIDE (Bitfield-Mask: 0x01) */ + #define R_POEG1_POEG1GB_IOCE_Pos (5UL) /*!< IOCE (Bit 5) */ + #define R_POEG1_POEG1GB_IOCE_Msk (0x20UL) /*!< IOCE (Bitfield-Mask: 0x01) */ + #define R_POEG1_POEG1GB_OSTPE_Pos (6UL) /*!< OSTPE (Bit 6) */ + #define R_POEG1_POEG1GB_OSTPE_Msk (0x40UL) /*!< OSTPE (Bitfield-Mask: 0x01) */ + #define R_POEG1_POEG1GB_ST_Pos (16UL) /*!< ST (Bit 16) */ + #define R_POEG1_POEG1GB_ST_Msk (0x10000UL) /*!< ST (Bitfield-Mask: 0x01) */ + #define R_POEG1_POEG1GB_INV_Pos (28UL) /*!< INV (Bit 28) */ + #define R_POEG1_POEG1GB_INV_Msk (0x10000000UL) /*!< INV (Bitfield-Mask: 0x01) */ + #define R_POEG1_POEG1GB_NFEN_Pos (29UL) /*!< NFEN (Bit 29) */ + #define R_POEG1_POEG1GB_NFEN_Msk (0x20000000UL) /*!< NFEN (Bitfield-Mask: 0x01) */ + #define R_POEG1_POEG1GB_NFCS_Pos (30UL) /*!< NFCS (Bit 30) */ + #define R_POEG1_POEG1GB_NFCS_Msk (0xc0000000UL) /*!< NFCS (Bitfield-Mask: 0x03) */ +/* ======================================================== POEG1GC ======================================================== */ + #define R_POEG1_POEG1GC_PIDF_Pos (0UL) /*!< PIDF (Bit 0) */ + #define R_POEG1_POEG1GC_PIDF_Msk (0x1UL) /*!< PIDF (Bitfield-Mask: 0x01) */ + #define R_POEG1_POEG1GC_IOCF_Pos (1UL) /*!< IOCF (Bit 1) */ + #define R_POEG1_POEG1GC_IOCF_Msk (0x2UL) /*!< IOCF (Bitfield-Mask: 0x01) */ + #define R_POEG1_POEG1GC_OSTPF_Pos (2UL) /*!< OSTPF (Bit 2) */ + #define R_POEG1_POEG1GC_OSTPF_Msk (0x4UL) /*!< OSTPF (Bitfield-Mask: 0x01) */ + #define R_POEG1_POEG1GC_SSF_Pos (3UL) /*!< SSF (Bit 3) */ + #define R_POEG1_POEG1GC_SSF_Msk (0x8UL) /*!< SSF (Bitfield-Mask: 0x01) */ + #define R_POEG1_POEG1GC_PIDE_Pos (4UL) /*!< PIDE (Bit 4) */ + #define R_POEG1_POEG1GC_PIDE_Msk (0x10UL) /*!< PIDE (Bitfield-Mask: 0x01) */ + #define R_POEG1_POEG1GC_IOCE_Pos (5UL) /*!< IOCE (Bit 5) */ + #define R_POEG1_POEG1GC_IOCE_Msk (0x20UL) /*!< IOCE (Bitfield-Mask: 0x01) */ + #define R_POEG1_POEG1GC_OSTPE_Pos (6UL) /*!< OSTPE (Bit 6) */ + #define R_POEG1_POEG1GC_OSTPE_Msk (0x40UL) /*!< OSTPE (Bitfield-Mask: 0x01) */ + #define R_POEG1_POEG1GC_ST_Pos (16UL) /*!< ST (Bit 16) */ + #define R_POEG1_POEG1GC_ST_Msk (0x10000UL) /*!< ST (Bitfield-Mask: 0x01) */ + #define R_POEG1_POEG1GC_INV_Pos (28UL) /*!< INV (Bit 28) */ + #define R_POEG1_POEG1GC_INV_Msk (0x10000000UL) /*!< INV (Bitfield-Mask: 0x01) */ + #define R_POEG1_POEG1GC_NFEN_Pos (29UL) /*!< NFEN (Bit 29) */ + #define R_POEG1_POEG1GC_NFEN_Msk (0x20000000UL) /*!< NFEN (Bitfield-Mask: 0x01) */ + #define R_POEG1_POEG1GC_NFCS_Pos (30UL) /*!< NFCS (Bit 30) */ + #define R_POEG1_POEG1GC_NFCS_Msk (0xc0000000UL) /*!< NFCS (Bitfield-Mask: 0x03) */ +/* ======================================================== POEG1GD ======================================================== */ + #define R_POEG1_POEG1GD_PIDF_Pos (0UL) /*!< PIDF (Bit 0) */ + #define R_POEG1_POEG1GD_PIDF_Msk (0x1UL) /*!< PIDF (Bitfield-Mask: 0x01) */ + #define R_POEG1_POEG1GD_IOCF_Pos (1UL) /*!< IOCF (Bit 1) */ + #define R_POEG1_POEG1GD_IOCF_Msk (0x2UL) /*!< IOCF (Bitfield-Mask: 0x01) */ + #define R_POEG1_POEG1GD_OSTPF_Pos (2UL) /*!< OSTPF (Bit 2) */ + #define R_POEG1_POEG1GD_OSTPF_Msk (0x4UL) /*!< OSTPF (Bitfield-Mask: 0x01) */ + #define R_POEG1_POEG1GD_SSF_Pos (3UL) /*!< SSF (Bit 3) */ + #define R_POEG1_POEG1GD_SSF_Msk (0x8UL) /*!< SSF (Bitfield-Mask: 0x01) */ + #define R_POEG1_POEG1GD_PIDE_Pos (4UL) /*!< PIDE (Bit 4) */ + #define R_POEG1_POEG1GD_PIDE_Msk (0x10UL) /*!< PIDE (Bitfield-Mask: 0x01) */ + #define R_POEG1_POEG1GD_IOCE_Pos (5UL) /*!< IOCE (Bit 5) */ + #define R_POEG1_POEG1GD_IOCE_Msk (0x20UL) /*!< IOCE (Bitfield-Mask: 0x01) */ + #define R_POEG1_POEG1GD_OSTPE_Pos (6UL) /*!< OSTPE (Bit 6) */ + #define R_POEG1_POEG1GD_OSTPE_Msk (0x40UL) /*!< OSTPE (Bitfield-Mask: 0x01) */ + #define R_POEG1_POEG1GD_ST_Pos (16UL) /*!< ST (Bit 16) */ + #define R_POEG1_POEG1GD_ST_Msk (0x10000UL) /*!< ST (Bitfield-Mask: 0x01) */ + #define R_POEG1_POEG1GD_INV_Pos (28UL) /*!< INV (Bit 28) */ + #define R_POEG1_POEG1GD_INV_Msk (0x10000000UL) /*!< INV (Bitfield-Mask: 0x01) */ + #define R_POEG1_POEG1GD_NFEN_Pos (29UL) /*!< NFEN (Bit 29) */ + #define R_POEG1_POEG1GD_NFEN_Msk (0x20000000UL) /*!< NFEN (Bitfield-Mask: 0x01) */ + #define R_POEG1_POEG1GD_NFCS_Pos (30UL) /*!< NFCS (Bit 30) */ + #define R_POEG1_POEG1GD_NFCS_Msk (0xc0000000UL) /*!< NFCS (Bitfield-Mask: 0x03) */ + +/* =========================================================================================================================== */ +/* ================ R_DMAC0 ================ */ +/* =========================================================================================================================== */ + +/* =========================================================================================================================== */ +/* ================ R_ICU_NS ================ */ +/* =========================================================================================================================== */ + +/* ======================================================= NS_SWINT ======================================================== */ + #define R_ICU_NS_NS_SWINT_IC0_Pos (0UL) /*!< IC0 (Bit 0) */ + #define R_ICU_NS_NS_SWINT_IC0_Msk (0x1UL) /*!< IC0 (Bitfield-Mask: 0x01) */ + #define R_ICU_NS_NS_SWINT_IC1_Pos (1UL) /*!< IC1 (Bit 1) */ + #define R_ICU_NS_NS_SWINT_IC1_Msk (0x2UL) /*!< IC1 (Bitfield-Mask: 0x01) */ + #define R_ICU_NS_NS_SWINT_IC2_Pos (2UL) /*!< IC2 (Bit 2) */ + #define R_ICU_NS_NS_SWINT_IC2_Msk (0x4UL) /*!< IC2 (Bitfield-Mask: 0x01) */ + #define R_ICU_NS_NS_SWINT_IC3_Pos (3UL) /*!< IC3 (Bit 3) */ + #define R_ICU_NS_NS_SWINT_IC3_Msk (0x8UL) /*!< IC3 (Bitfield-Mask: 0x01) */ + #define R_ICU_NS_NS_SWINT_IC4_Pos (4UL) /*!< IC4 (Bit 4) */ + #define R_ICU_NS_NS_SWINT_IC4_Msk (0x10UL) /*!< IC4 (Bitfield-Mask: 0x01) */ + #define R_ICU_NS_NS_SWINT_IC5_Pos (5UL) /*!< IC5 (Bit 5) */ + #define R_ICU_NS_NS_SWINT_IC5_Msk (0x20UL) /*!< IC5 (Bitfield-Mask: 0x01) */ +/* =================================================== NS_PORTNF_FLTSEL ==================================================== */ + #define R_ICU_NS_NS_PORTNF_FLTSEL_FLT0_Pos (0UL) /*!< FLT0 (Bit 0) */ + #define R_ICU_NS_NS_PORTNF_FLTSEL_FLT0_Msk (0x1UL) /*!< FLT0 (Bitfield-Mask: 0x01) */ + #define R_ICU_NS_NS_PORTNF_FLTSEL_FLT1_Pos (1UL) /*!< FLT1 (Bit 1) */ + #define R_ICU_NS_NS_PORTNF_FLTSEL_FLT1_Msk (0x2UL) /*!< FLT1 (Bitfield-Mask: 0x01) */ + #define R_ICU_NS_NS_PORTNF_FLTSEL_FLT2_Pos (2UL) /*!< FLT2 (Bit 2) */ + #define R_ICU_NS_NS_PORTNF_FLTSEL_FLT2_Msk (0x4UL) /*!< FLT2 (Bitfield-Mask: 0x01) */ + #define R_ICU_NS_NS_PORTNF_FLTSEL_FLT3_Pos (3UL) /*!< FLT3 (Bit 3) */ + #define R_ICU_NS_NS_PORTNF_FLTSEL_FLT3_Msk (0x8UL) /*!< FLT3 (Bitfield-Mask: 0x01) */ + #define R_ICU_NS_NS_PORTNF_FLTSEL_FLT4_Pos (4UL) /*!< FLT4 (Bit 4) */ + #define R_ICU_NS_NS_PORTNF_FLTSEL_FLT4_Msk (0x10UL) /*!< FLT4 (Bitfield-Mask: 0x01) */ + #define R_ICU_NS_NS_PORTNF_FLTSEL_FLT5_Pos (5UL) /*!< FLT5 (Bit 5) */ + #define R_ICU_NS_NS_PORTNF_FLTSEL_FLT5_Msk (0x20UL) /*!< FLT5 (Bitfield-Mask: 0x01) */ + #define R_ICU_NS_NS_PORTNF_FLTSEL_FLT6_Pos (6UL) /*!< FLT6 (Bit 6) */ + #define R_ICU_NS_NS_PORTNF_FLTSEL_FLT6_Msk (0x40UL) /*!< FLT6 (Bitfield-Mask: 0x01) */ + #define R_ICU_NS_NS_PORTNF_FLTSEL_FLT7_Pos (7UL) /*!< FLT7 (Bit 7) */ + #define R_ICU_NS_NS_PORTNF_FLTSEL_FLT7_Msk (0x80UL) /*!< FLT7 (Bitfield-Mask: 0x01) */ + #define R_ICU_NS_NS_PORTNF_FLTSEL_FLT8_Pos (8UL) /*!< FLT8 (Bit 8) */ + #define R_ICU_NS_NS_PORTNF_FLTSEL_FLT8_Msk (0x100UL) /*!< FLT8 (Bitfield-Mask: 0x01) */ + #define R_ICU_NS_NS_PORTNF_FLTSEL_FLT9_Pos (9UL) /*!< FLT9 (Bit 9) */ + #define R_ICU_NS_NS_PORTNF_FLTSEL_FLT9_Msk (0x200UL) /*!< FLT9 (Bitfield-Mask: 0x01) */ + #define R_ICU_NS_NS_PORTNF_FLTSEL_FLT10_Pos (10UL) /*!< FLT10 (Bit 10) */ + #define R_ICU_NS_NS_PORTNF_FLTSEL_FLT10_Msk (0x400UL) /*!< FLT10 (Bitfield-Mask: 0x01) */ + #define R_ICU_NS_NS_PORTNF_FLTSEL_FLT11_Pos (11UL) /*!< FLT11 (Bit 11) */ + #define R_ICU_NS_NS_PORTNF_FLTSEL_FLT11_Msk (0x800UL) /*!< FLT11 (Bitfield-Mask: 0x01) */ + #define R_ICU_NS_NS_PORTNF_FLTSEL_FLT12_Pos (12UL) /*!< FLT12 (Bit 12) */ + #define R_ICU_NS_NS_PORTNF_FLTSEL_FLT12_Msk (0x1000UL) /*!< FLT12 (Bitfield-Mask: 0x01) */ + #define R_ICU_NS_NS_PORTNF_FLTSEL_FLT13_Pos (13UL) /*!< FLT13 (Bit 13) */ + #define R_ICU_NS_NS_PORTNF_FLTSEL_FLT13_Msk (0x2000UL) /*!< FLT13 (Bitfield-Mask: 0x01) */ + #define R_ICU_NS_NS_PORTNF_FLTSEL_FLTDRQ_Pos (14UL) /*!< FLTDRQ (Bit 14) */ + #define R_ICU_NS_NS_PORTNF_FLTSEL_FLTDRQ_Msk (0x4000UL) /*!< FLTDRQ (Bitfield-Mask: 0x01) */ +/* =================================================== NS_PORTNF_CLKSEL ==================================================== */ + #define R_ICU_NS_NS_PORTNF_CLKSEL_CKSEL0_Pos (0UL) /*!< CKSEL0 (Bit 0) */ + #define R_ICU_NS_NS_PORTNF_CLKSEL_CKSEL0_Msk (0x3UL) /*!< CKSEL0 (Bitfield-Mask: 0x03) */ + #define R_ICU_NS_NS_PORTNF_CLKSEL_CKSEL1_Pos (2UL) /*!< CKSEL1 (Bit 2) */ + #define R_ICU_NS_NS_PORTNF_CLKSEL_CKSEL1_Msk (0xcUL) /*!< CKSEL1 (Bitfield-Mask: 0x03) */ + #define R_ICU_NS_NS_PORTNF_CLKSEL_CKSEL2_Pos (4UL) /*!< CKSEL2 (Bit 4) */ + #define R_ICU_NS_NS_PORTNF_CLKSEL_CKSEL2_Msk (0x30UL) /*!< CKSEL2 (Bitfield-Mask: 0x03) */ + #define R_ICU_NS_NS_PORTNF_CLKSEL_CKSEL3_Pos (6UL) /*!< CKSEL3 (Bit 6) */ + #define R_ICU_NS_NS_PORTNF_CLKSEL_CKSEL3_Msk (0xc0UL) /*!< CKSEL3 (Bitfield-Mask: 0x03) */ + #define R_ICU_NS_NS_PORTNF_CLKSEL_CKSEL4_Pos (8UL) /*!< CKSEL4 (Bit 8) */ + #define R_ICU_NS_NS_PORTNF_CLKSEL_CKSEL4_Msk (0x300UL) /*!< CKSEL4 (Bitfield-Mask: 0x03) */ + #define R_ICU_NS_NS_PORTNF_CLKSEL_CKSEL5_Pos (10UL) /*!< CKSEL5 (Bit 10) */ + #define R_ICU_NS_NS_PORTNF_CLKSEL_CKSEL5_Msk (0xc00UL) /*!< CKSEL5 (Bitfield-Mask: 0x03) */ + #define R_ICU_NS_NS_PORTNF_CLKSEL_CKSEL6_Pos (12UL) /*!< CKSEL6 (Bit 12) */ + #define R_ICU_NS_NS_PORTNF_CLKSEL_CKSEL6_Msk (0x3000UL) /*!< CKSEL6 (Bitfield-Mask: 0x03) */ + #define R_ICU_NS_NS_PORTNF_CLKSEL_CKSEL7_Pos (14UL) /*!< CKSEL7 (Bit 14) */ + #define R_ICU_NS_NS_PORTNF_CLKSEL_CKSEL7_Msk (0xc000UL) /*!< CKSEL7 (Bitfield-Mask: 0x03) */ + #define R_ICU_NS_NS_PORTNF_CLKSEL_CKSEL8_Pos (16UL) /*!< CKSEL8 (Bit 16) */ + #define R_ICU_NS_NS_PORTNF_CLKSEL_CKSEL8_Msk (0x30000UL) /*!< CKSEL8 (Bitfield-Mask: 0x03) */ + #define R_ICU_NS_NS_PORTNF_CLKSEL_CKSEL9_Pos (18UL) /*!< CKSEL9 (Bit 18) */ + #define R_ICU_NS_NS_PORTNF_CLKSEL_CKSEL9_Msk (0xc0000UL) /*!< CKSEL9 (Bitfield-Mask: 0x03) */ + #define R_ICU_NS_NS_PORTNF_CLKSEL_CKSEL10_Pos (20UL) /*!< CKSEL10 (Bit 20) */ + #define R_ICU_NS_NS_PORTNF_CLKSEL_CKSEL10_Msk (0x300000UL) /*!< CKSEL10 (Bitfield-Mask: 0x03) */ + #define R_ICU_NS_NS_PORTNF_CLKSEL_CKSEL11_Pos (22UL) /*!< CKSEL11 (Bit 22) */ + #define R_ICU_NS_NS_PORTNF_CLKSEL_CKSEL11_Msk (0xc00000UL) /*!< CKSEL11 (Bitfield-Mask: 0x03) */ + #define R_ICU_NS_NS_PORTNF_CLKSEL_CKSEL12_Pos (24UL) /*!< CKSEL12 (Bit 24) */ + #define R_ICU_NS_NS_PORTNF_CLKSEL_CKSEL12_Msk (0x3000000UL) /*!< CKSEL12 (Bitfield-Mask: 0x03) */ + #define R_ICU_NS_NS_PORTNF_CLKSEL_CKSEL13_Pos (26UL) /*!< CKSEL13 (Bit 26) */ + #define R_ICU_NS_NS_PORTNF_CLKSEL_CKSEL13_Msk (0xc000000UL) /*!< CKSEL13 (Bitfield-Mask: 0x03) */ + #define R_ICU_NS_NS_PORTNF_CLKSEL_CKSELDREQ_Pos (28UL) /*!< CKSELDREQ (Bit 28) */ + #define R_ICU_NS_NS_PORTNF_CLKSEL_CKSELDREQ_Msk (0x30000000UL) /*!< CKSELDREQ (Bitfield-Mask: 0x03) */ +/* ===================================================== NS_PORTNF_MD ====================================================== */ + #define R_ICU_NS_NS_PORTNF_MD_MD0_Pos (0UL) /*!< MD0 (Bit 0) */ + #define R_ICU_NS_NS_PORTNF_MD_MD0_Msk (0x3UL) /*!< MD0 (Bitfield-Mask: 0x03) */ + #define R_ICU_NS_NS_PORTNF_MD_MD1_Pos (2UL) /*!< MD1 (Bit 2) */ + #define R_ICU_NS_NS_PORTNF_MD_MD1_Msk (0xcUL) /*!< MD1 (Bitfield-Mask: 0x03) */ + #define R_ICU_NS_NS_PORTNF_MD_MD2_Pos (4UL) /*!< MD2 (Bit 4) */ + #define R_ICU_NS_NS_PORTNF_MD_MD2_Msk (0x30UL) /*!< MD2 (Bitfield-Mask: 0x03) */ + #define R_ICU_NS_NS_PORTNF_MD_MD3_Pos (6UL) /*!< MD3 (Bit 6) */ + #define R_ICU_NS_NS_PORTNF_MD_MD3_Msk (0xc0UL) /*!< MD3 (Bitfield-Mask: 0x03) */ + #define R_ICU_NS_NS_PORTNF_MD_MD4_Pos (8UL) /*!< MD4 (Bit 8) */ + #define R_ICU_NS_NS_PORTNF_MD_MD4_Msk (0x300UL) /*!< MD4 (Bitfield-Mask: 0x03) */ + #define R_ICU_NS_NS_PORTNF_MD_MD5_Pos (10UL) /*!< MD5 (Bit 10) */ + #define R_ICU_NS_NS_PORTNF_MD_MD5_Msk (0xc00UL) /*!< MD5 (Bitfield-Mask: 0x03) */ + #define R_ICU_NS_NS_PORTNF_MD_MD6_Pos (12UL) /*!< MD6 (Bit 12) */ + #define R_ICU_NS_NS_PORTNF_MD_MD6_Msk (0x3000UL) /*!< MD6 (Bitfield-Mask: 0x03) */ + #define R_ICU_NS_NS_PORTNF_MD_MD7_Pos (14UL) /*!< MD7 (Bit 14) */ + #define R_ICU_NS_NS_PORTNF_MD_MD7_Msk (0xc000UL) /*!< MD7 (Bitfield-Mask: 0x03) */ + #define R_ICU_NS_NS_PORTNF_MD_MD8_Pos (16UL) /*!< MD8 (Bit 16) */ + #define R_ICU_NS_NS_PORTNF_MD_MD8_Msk (0x30000UL) /*!< MD8 (Bitfield-Mask: 0x03) */ + #define R_ICU_NS_NS_PORTNF_MD_MD9_Pos (18UL) /*!< MD9 (Bit 18) */ + #define R_ICU_NS_NS_PORTNF_MD_MD9_Msk (0xc0000UL) /*!< MD9 (Bitfield-Mask: 0x03) */ + #define R_ICU_NS_NS_PORTNF_MD_MD10_Pos (20UL) /*!< MD10 (Bit 20) */ + #define R_ICU_NS_NS_PORTNF_MD_MD10_Msk (0x300000UL) /*!< MD10 (Bitfield-Mask: 0x03) */ + #define R_ICU_NS_NS_PORTNF_MD_MD11_Pos (22UL) /*!< MD11 (Bit 22) */ + #define R_ICU_NS_NS_PORTNF_MD_MD11_Msk (0xc00000UL) /*!< MD11 (Bitfield-Mask: 0x03) */ + #define R_ICU_NS_NS_PORTNF_MD_MD12_Pos (24UL) /*!< MD12 (Bit 24) */ + #define R_ICU_NS_NS_PORTNF_MD_MD12_Msk (0x3000000UL) /*!< MD12 (Bitfield-Mask: 0x03) */ + #define R_ICU_NS_NS_PORTNF_MD_MD13_Pos (26UL) /*!< MD13 (Bit 26) */ + #define R_ICU_NS_NS_PORTNF_MD_MD13_Msk (0xc000000UL) /*!< MD13 (Bitfield-Mask: 0x03) */ + #define R_ICU_NS_NS_PORTNF_MD_MDDRQ_Pos (28UL) /*!< MDDRQ (Bit 28) */ + #define R_ICU_NS_NS_PORTNF_MD_MDDRQ_Msk (0x30000000UL) /*!< MDDRQ (Bitfield-Mask: 0x03) */ + +/* =========================================================================================================================== */ +/* ================ R_ELC ================ */ +/* =========================================================================================================================== */ + +/* ======================================================= ELC_SSEL ======================================================== */ + #define R_ELC_ELC_SSEL_ELC_SEL0_Pos (0UL) /*!< ELC_SEL0 (Bit 0) */ + #define R_ELC_ELC_SSEL_ELC_SEL0_Msk (0x3ffUL) /*!< ELC_SEL0 (Bitfield-Mask: 0x3ff) */ + #define R_ELC_ELC_SSEL_ELC_SEL1_Pos (10UL) /*!< ELC_SEL1 (Bit 10) */ + #define R_ELC_ELC_SSEL_ELC_SEL1_Msk (0xffc00UL) /*!< ELC_SEL1 (Bitfield-Mask: 0x3ff) */ + #define R_ELC_ELC_SSEL_ELC_SEL2_Pos (20UL) /*!< ELC_SEL2 (Bit 20) */ + #define R_ELC_ELC_SSEL_ELC_SEL2_Msk (0x3ff00000UL) /*!< ELC_SEL2 (Bitfield-Mask: 0x3ff) */ + +/* =========================================================================================================================== */ +/* ================ R_DMA ================ */ +/* =========================================================================================================================== */ + +/* ====================================================== DMAC0_RSSEL ====================================================== */ + #define R_DMA_DMAC0_RSSEL_REQ_SELA_Pos (0UL) /*!< REQ_SELA (Bit 0) */ + #define R_DMA_DMAC0_RSSEL_REQ_SELA_Msk (0x1ffUL) /*!< REQ_SELA (Bitfield-Mask: 0x1ff) */ + #define R_DMA_DMAC0_RSSEL_REQ_SELB_Pos (10UL) /*!< REQ_SELB (Bit 10) */ + #define R_DMA_DMAC0_RSSEL_REQ_SELB_Msk (0x7fc00UL) /*!< REQ_SELB (Bitfield-Mask: 0x1ff) */ + #define R_DMA_DMAC0_RSSEL_REQ_SELC_Pos (20UL) /*!< REQ_SELC (Bit 20) */ + #define R_DMA_DMAC0_RSSEL_REQ_SELC_Msk (0x1ff00000UL) /*!< REQ_SELC (Bitfield-Mask: 0x1ff) */ +/* ====================================================== DMAC1_RSSEL ====================================================== */ + #define R_DMA_DMAC1_RSSEL_REQ_SELA_Pos (0UL) /*!< REQ_SELA (Bit 0) */ + #define R_DMA_DMAC1_RSSEL_REQ_SELA_Msk (0x1ffUL) /*!< REQ_SELA (Bitfield-Mask: 0x1ff) */ + #define R_DMA_DMAC1_RSSEL_REQ_SELB_Pos (10UL) /*!< REQ_SELB (Bit 10) */ + #define R_DMA_DMAC1_RSSEL_REQ_SELB_Msk (0x7fc00UL) /*!< REQ_SELB (Bitfield-Mask: 0x1ff) */ + #define R_DMA_DMAC1_RSSEL_REQ_SELC_Pos (20UL) /*!< REQ_SELC (Bit 20) */ + #define R_DMA_DMAC1_RSSEL_REQ_SELC_Msk (0x1ff00000UL) /*!< REQ_SELC (Bitfield-Mask: 0x1ff) */ + +/* =========================================================================================================================== */ +/* ================ R_PORT_COMMON ================ */ +/* =========================================================================================================================== */ + +/* =========================================================== P =========================================================== */ + #define R_PORT_NSR_P_POUT_0_Pos (0UL) /*!< POUT_0 (Bit 0) */ + #define R_PORT_NSR_P_POUT_0_Msk (0x1UL) /*!< POUT_0 (Bitfield-Mask: 0x01) */ + #define R_PORT_NSR_P_POUT_1_Pos (1UL) /*!< POUT_1 (Bit 1) */ + #define R_PORT_NSR_P_POUT_1_Msk (0x2UL) /*!< POUT_1 (Bitfield-Mask: 0x01) */ + #define R_PORT_NSR_P_POUT_2_Pos (2UL) /*!< POUT_2 (Bit 2) */ + #define R_PORT_NSR_P_POUT_2_Msk (0x4UL) /*!< POUT_2 (Bitfield-Mask: 0x01) */ + #define R_PORT_NSR_P_POUT_3_Pos (3UL) /*!< POUT_3 (Bit 3) */ + #define R_PORT_NSR_P_POUT_3_Msk (0x8UL) /*!< POUT_3 (Bitfield-Mask: 0x01) */ + #define R_PORT_NSR_P_POUT_4_Pos (4UL) /*!< POUT_4 (Bit 4) */ + #define R_PORT_NSR_P_POUT_4_Msk (0x10UL) /*!< POUT_4 (Bitfield-Mask: 0x01) */ + #define R_PORT_NSR_P_POUT_5_Pos (5UL) /*!< POUT_5 (Bit 5) */ + #define R_PORT_NSR_P_POUT_5_Msk (0x20UL) /*!< POUT_5 (Bitfield-Mask: 0x01) */ + #define R_PORT_NSR_P_POUT_6_Pos (6UL) /*!< POUT_6 (Bit 6) */ + #define R_PORT_NSR_P_POUT_6_Msk (0x40UL) /*!< POUT_6 (Bitfield-Mask: 0x01) */ + #define R_PORT_NSR_P_POUT_7_Pos (7UL) /*!< POUT_7 (Bit 7) */ + #define R_PORT_NSR_P_POUT_7_Msk (0x80UL) /*!< POUT_7 (Bitfield-Mask: 0x01) */ +/* ========================================================== PM =========================================================== */ + #define R_PORT_NSR_PM_PM0_Pos (0UL) /*!< PM0 (Bit 0) */ + #define R_PORT_NSR_PM_PM0_Msk (0x3UL) /*!< PM0 (Bitfield-Mask: 0x03) */ + #define R_PORT_NSR_PM_PM1_Pos (2UL) /*!< PM1 (Bit 2) */ + #define R_PORT_NSR_PM_PM1_Msk (0xcUL) /*!< PM1 (Bitfield-Mask: 0x03) */ + #define R_PORT_NSR_PM_PM2_Pos (4UL) /*!< PM2 (Bit 4) */ + #define R_PORT_NSR_PM_PM2_Msk (0x30UL) /*!< PM2 (Bitfield-Mask: 0x03) */ + #define R_PORT_NSR_PM_PM3_Pos (6UL) /*!< PM3 (Bit 6) */ + #define R_PORT_NSR_PM_PM3_Msk (0xc0UL) /*!< PM3 (Bitfield-Mask: 0x03) */ + #define R_PORT_NSR_PM_PM4_Pos (8UL) /*!< PM4 (Bit 8) */ + #define R_PORT_NSR_PM_PM4_Msk (0x300UL) /*!< PM4 (Bitfield-Mask: 0x03) */ + #define R_PORT_NSR_PM_PM5_Pos (10UL) /*!< PM5 (Bit 10) */ + #define R_PORT_NSR_PM_PM5_Msk (0xc00UL) /*!< PM5 (Bitfield-Mask: 0x03) */ + #define R_PORT_NSR_PM_PM6_Pos (12UL) /*!< PM6 (Bit 12) */ + #define R_PORT_NSR_PM_PM6_Msk (0x3000UL) /*!< PM6 (Bitfield-Mask: 0x03) */ + #define R_PORT_NSR_PM_PM7_Pos (14UL) /*!< PM7 (Bit 14) */ + #define R_PORT_NSR_PM_PM7_Msk (0xc000UL) /*!< PM7 (Bitfield-Mask: 0x03) */ +/* ========================================================== PMC ========================================================== */ + #define R_PORT_NSR_PMC_PMC0_Pos (0UL) /*!< PMC0 (Bit 0) */ + #define R_PORT_NSR_PMC_PMC0_Msk (0x1UL) /*!< PMC0 (Bitfield-Mask: 0x01) */ + #define R_PORT_NSR_PMC_PMC1_Pos (1UL) /*!< PMC1 (Bit 1) */ + #define R_PORT_NSR_PMC_PMC1_Msk (0x2UL) /*!< PMC1 (Bitfield-Mask: 0x01) */ + #define R_PORT_NSR_PMC_PMC2_Pos (2UL) /*!< PMC2 (Bit 2) */ + #define R_PORT_NSR_PMC_PMC2_Msk (0x4UL) /*!< PMC2 (Bitfield-Mask: 0x01) */ + #define R_PORT_NSR_PMC_PMC3_Pos (3UL) /*!< PMC3 (Bit 3) */ + #define R_PORT_NSR_PMC_PMC3_Msk (0x8UL) /*!< PMC3 (Bitfield-Mask: 0x01) */ + #define R_PORT_NSR_PMC_PMC4_Pos (4UL) /*!< PMC4 (Bit 4) */ + #define R_PORT_NSR_PMC_PMC4_Msk (0x10UL) /*!< PMC4 (Bitfield-Mask: 0x01) */ + #define R_PORT_NSR_PMC_PMC5_Pos (5UL) /*!< PMC5 (Bit 5) */ + #define R_PORT_NSR_PMC_PMC5_Msk (0x20UL) /*!< PMC5 (Bitfield-Mask: 0x01) */ + #define R_PORT_NSR_PMC_PMC6_Pos (6UL) /*!< PMC6 (Bit 6) */ + #define R_PORT_NSR_PMC_PMC6_Msk (0x40UL) /*!< PMC6 (Bitfield-Mask: 0x01) */ + #define R_PORT_NSR_PMC_PMC7_Pos (7UL) /*!< PMC7 (Bit 7) */ + #define R_PORT_NSR_PMC_PMC7_Msk (0x80UL) /*!< PMC7 (Bitfield-Mask: 0x01) */ +/* ========================================================== PFC ========================================================== */ + #define R_PORT_NSR_PFC_PFC0_Pos (0UL) /*!< PFC0 (Bit 0) */ + #define R_PORT_NSR_PFC_PFC0_Msk (0xfUL) /*!< PFC0 (Bitfield-Mask: 0x0f) */ + #define R_PORT_NSR_PFC_PFC1_Pos (4UL) /*!< PFC1 (Bit 4) */ + #define R_PORT_NSR_PFC_PFC1_Msk (0xf0UL) /*!< PFC1 (Bitfield-Mask: 0x0f) */ + #define R_PORT_NSR_PFC_PFC2_Pos (8UL) /*!< PFC2 (Bit 8) */ + #define R_PORT_NSR_PFC_PFC2_Msk (0xf00UL) /*!< PFC2 (Bitfield-Mask: 0x0f) */ + #define R_PORT_NSR_PFC_PFC3_Pos (12UL) /*!< PFC3 (Bit 12) */ + #define R_PORT_NSR_PFC_PFC3_Msk (0xf000UL) /*!< PFC3 (Bitfield-Mask: 0x0f) */ + #define R_PORT_NSR_PFC_PFC4_Pos (16UL) /*!< PFC4 (Bit 16) */ + #define R_PORT_NSR_PFC_PFC4_Msk (0xf0000UL) /*!< PFC4 (Bitfield-Mask: 0x0f) */ + #define R_PORT_NSR_PFC_PFC5_Pos (20UL) /*!< PFC5 (Bit 20) */ + #define R_PORT_NSR_PFC_PFC5_Msk (0xf00000UL) /*!< PFC5 (Bitfield-Mask: 0x0f) */ + #define R_PORT_NSR_PFC_PFC6_Pos (24UL) /*!< PFC6 (Bit 24) */ + #define R_PORT_NSR_PFC_PFC6_Msk (0xf000000UL) /*!< PFC6 (Bitfield-Mask: 0x0f) */ + #define R_PORT_NSR_PFC_PFC7_Pos (28UL) /*!< PFC7 (Bit 28) */ + #define R_PORT_NSR_PFC_PFC7_Msk (0xf0000000UL) /*!< PFC7 (Bitfield-Mask: 0x0f) */ +/* ========================================================== PIN ========================================================== */ + #define R_PORT_NSR_PIN_PIN0_Pos (0UL) /*!< PIN0 (Bit 0) */ + #define R_PORT_NSR_PIN_PIN0_Msk (0x1UL) /*!< PIN0 (Bitfield-Mask: 0x01) */ + #define R_PORT_NSR_PIN_PIN1_Pos (1UL) /*!< PIN1 (Bit 1) */ + #define R_PORT_NSR_PIN_PIN1_Msk (0x2UL) /*!< PIN1 (Bitfield-Mask: 0x01) */ + #define R_PORT_NSR_PIN_PIN2_Pos (2UL) /*!< PIN2 (Bit 2) */ + #define R_PORT_NSR_PIN_PIN2_Msk (0x4UL) /*!< PIN2 (Bitfield-Mask: 0x01) */ + #define R_PORT_NSR_PIN_PIN3_Pos (3UL) /*!< PIN3 (Bit 3) */ + #define R_PORT_NSR_PIN_PIN3_Msk (0x8UL) /*!< PIN3 (Bitfield-Mask: 0x01) */ + #define R_PORT_NSR_PIN_PIN4_Pos (4UL) /*!< PIN4 (Bit 4) */ + #define R_PORT_NSR_PIN_PIN4_Msk (0x10UL) /*!< PIN4 (Bitfield-Mask: 0x01) */ + #define R_PORT_NSR_PIN_PIN5_Pos (5UL) /*!< PIN5 (Bit 5) */ + #define R_PORT_NSR_PIN_PIN5_Msk (0x20UL) /*!< PIN5 (Bitfield-Mask: 0x01) */ + #define R_PORT_NSR_PIN_PIN6_Pos (6UL) /*!< PIN6 (Bit 6) */ + #define R_PORT_NSR_PIN_PIN6_Msk (0x40UL) /*!< PIN6 (Bitfield-Mask: 0x01) */ + #define R_PORT_NSR_PIN_PIN7_Pos (7UL) /*!< PIN7 (Bit 7) */ + #define R_PORT_NSR_PIN_PIN7_Msk (0x80UL) /*!< PIN7 (Bitfield-Mask: 0x01) */ +/* ======================================================== ELC_PGR ======================================================== */ + #define R_PORT_NSR_ELC_PGR_PG0_Pos (0UL) /*!< PG0 (Bit 0) */ + #define R_PORT_NSR_ELC_PGR_PG0_Msk (0x1UL) /*!< PG0 (Bitfield-Mask: 0x01) */ + #define R_PORT_NSR_ELC_PGR_PG1_Pos (1UL) /*!< PG1 (Bit 1) */ + #define R_PORT_NSR_ELC_PGR_PG1_Msk (0x2UL) /*!< PG1 (Bitfield-Mask: 0x01) */ + #define R_PORT_NSR_ELC_PGR_PG2_Pos (2UL) /*!< PG2 (Bit 2) */ + #define R_PORT_NSR_ELC_PGR_PG2_Msk (0x4UL) /*!< PG2 (Bitfield-Mask: 0x01) */ + #define R_PORT_NSR_ELC_PGR_PG3_Pos (3UL) /*!< PG3 (Bit 3) */ + #define R_PORT_NSR_ELC_PGR_PG3_Msk (0x8UL) /*!< PG3 (Bitfield-Mask: 0x01) */ + #define R_PORT_NSR_ELC_PGR_PG4_Pos (4UL) /*!< PG4 (Bit 4) */ + #define R_PORT_NSR_ELC_PGR_PG4_Msk (0x10UL) /*!< PG4 (Bitfield-Mask: 0x01) */ + #define R_PORT_NSR_ELC_PGR_PG5_Pos (5UL) /*!< PG5 (Bit 5) */ + #define R_PORT_NSR_ELC_PGR_PG5_Msk (0x20UL) /*!< PG5 (Bitfield-Mask: 0x01) */ + #define R_PORT_NSR_ELC_PGR_PG6_Pos (6UL) /*!< PG6 (Bit 6) */ + #define R_PORT_NSR_ELC_PGR_PG6_Msk (0x40UL) /*!< PG6 (Bitfield-Mask: 0x01) */ + #define R_PORT_NSR_ELC_PGR_PG7_Pos (7UL) /*!< PG7 (Bit 7) */ + #define R_PORT_NSR_ELC_PGR_PG7_Msk (0x80UL) /*!< PG7 (Bitfield-Mask: 0x01) */ +/* ======================================================== ELC_PGC ======================================================== */ + #define R_PORT_NSR_ELC_PGC_PGCI_Pos (0UL) /*!< PGCI (Bit 0) */ + #define R_PORT_NSR_ELC_PGC_PGCI_Msk (0x3UL) /*!< PGCI (Bitfield-Mask: 0x03) */ + #define R_PORT_NSR_ELC_PGC_PGCOVE_Pos (2UL) /*!< PGCOVE (Bit 2) */ + #define R_PORT_NSR_ELC_PGC_PGCOVE_Msk (0x4UL) /*!< PGCOVE (Bitfield-Mask: 0x01) */ + #define R_PORT_NSR_ELC_PGC_PGCO_Pos (4UL) /*!< PGCO (Bit 4) */ + #define R_PORT_NSR_ELC_PGC_PGCO_Msk (0x70UL) /*!< PGCO (Bitfield-Mask: 0x07) */ +/* ======================================================== ELC_PEL ======================================================== */ + #define R_PORT_NSR_ELC_PEL_PSB_Pos (0UL) /*!< PSB (Bit 0) */ + #define R_PORT_NSR_ELC_PEL_PSB_Msk (0x7UL) /*!< PSB (Bitfield-Mask: 0x07) */ + #define R_PORT_NSR_ELC_PEL_PSP_Pos (3UL) /*!< PSP (Bit 3) */ + #define R_PORT_NSR_ELC_PEL_PSP_Msk (0x18UL) /*!< PSP (Bitfield-Mask: 0x03) */ + #define R_PORT_NSR_ELC_PEL_PSM_Pos (5UL) /*!< PSM (Bit 5) */ + #define R_PORT_NSR_ELC_PEL_PSM_Msk (0x60UL) /*!< PSM (Bitfield-Mask: 0x03) */ +/* ======================================================= ELC_DPTC ======================================================== */ + #define R_PORT_NSR_ELC_DPTC_PTC0_Pos (0UL) /*!< PTC0 (Bit 0) */ + #define R_PORT_NSR_ELC_DPTC_PTC0_Msk (0x1UL) /*!< PTC0 (Bitfield-Mask: 0x01) */ + #define R_PORT_NSR_ELC_DPTC_PTC1_Pos (1UL) /*!< PTC1 (Bit 1) */ + #define R_PORT_NSR_ELC_DPTC_PTC1_Msk (0x2UL) /*!< PTC1 (Bitfield-Mask: 0x01) */ + #define R_PORT_NSR_ELC_DPTC_PTC2_Pos (2UL) /*!< PTC2 (Bit 2) */ + #define R_PORT_NSR_ELC_DPTC_PTC2_Msk (0x4UL) /*!< PTC2 (Bitfield-Mask: 0x01) */ + #define R_PORT_NSR_ELC_DPTC_PTC3_Pos (3UL) /*!< PTC3 (Bit 3) */ + #define R_PORT_NSR_ELC_DPTC_PTC3_Msk (0x8UL) /*!< PTC3 (Bitfield-Mask: 0x01) */ +/* ======================================================= ELC_ELSR2 ======================================================= */ + #define R_PORT_NSR_ELC_ELSR2_PEG1_Pos (2UL) /*!< PEG1 (Bit 2) */ + #define R_PORT_NSR_ELC_ELSR2_PEG1_Msk (0x4UL) /*!< PEG1 (Bitfield-Mask: 0x01) */ + #define R_PORT_NSR_ELC_ELSR2_PEG2_Pos (3UL) /*!< PEG2 (Bit 3) */ + #define R_PORT_NSR_ELC_ELSR2_PEG2_Msk (0x8UL) /*!< PEG2 (Bitfield-Mask: 0x01) */ + #define R_PORT_NSR_ELC_ELSR2_PES0_Pos (4UL) /*!< PES0 (Bit 4) */ + #define R_PORT_NSR_ELC_ELSR2_PES0_Msk (0x10UL) /*!< PES0 (Bitfield-Mask: 0x01) */ + #define R_PORT_NSR_ELC_ELSR2_PES1_Pos (5UL) /*!< PES1 (Bit 5) */ + #define R_PORT_NSR_ELC_ELSR2_PES1_Msk (0x20UL) /*!< PES1 (Bitfield-Mask: 0x01) */ + #define R_PORT_NSR_ELC_ELSR2_PES2_Pos (6UL) /*!< PES2 (Bit 6) */ + #define R_PORT_NSR_ELC_ELSR2_PES2_Msk (0x40UL) /*!< PES2 (Bitfield-Mask: 0x01) */ + #define R_PORT_NSR_ELC_ELSR2_PES3_Pos (7UL) /*!< PES3 (Bit 7) */ + #define R_PORT_NSR_ELC_ELSR2_PES3_Msk (0x80UL) /*!< PES3 (Bitfield-Mask: 0x01) */ + +/* =========================================================================================================================== */ +/* ================ R_GMAC ================ */ +/* =========================================================================================================================== */ + +/* =================================================== MAC_Configuration =================================================== */ + #define R_GMAC_MAC_Configuration_PRELEN_Pos (0UL) /*!< PRELEN (Bit 0) */ + #define R_GMAC_MAC_Configuration_PRELEN_Msk (0x3UL) /*!< PRELEN (Bitfield-Mask: 0x03) */ + #define R_GMAC_MAC_Configuration_RE_Pos (2UL) /*!< RE (Bit 2) */ + #define R_GMAC_MAC_Configuration_RE_Msk (0x4UL) /*!< RE (Bitfield-Mask: 0x01) */ + #define R_GMAC_MAC_Configuration_TE_Pos (3UL) /*!< TE (Bit 3) */ + #define R_GMAC_MAC_Configuration_TE_Msk (0x8UL) /*!< TE (Bitfield-Mask: 0x01) */ + #define R_GMAC_MAC_Configuration_DC_Pos (4UL) /*!< DC (Bit 4) */ + #define R_GMAC_MAC_Configuration_DC_Msk (0x10UL) /*!< DC (Bitfield-Mask: 0x01) */ + #define R_GMAC_MAC_Configuration_BL_Pos (5UL) /*!< BL (Bit 5) */ + #define R_GMAC_MAC_Configuration_BL_Msk (0x60UL) /*!< BL (Bitfield-Mask: 0x03) */ + #define R_GMAC_MAC_Configuration_ACS_Pos (7UL) /*!< ACS (Bit 7) */ + #define R_GMAC_MAC_Configuration_ACS_Msk (0x80UL) /*!< ACS (Bitfield-Mask: 0x01) */ + #define R_GMAC_MAC_Configuration_DR_Pos (9UL) /*!< DR (Bit 9) */ + #define R_GMAC_MAC_Configuration_DR_Msk (0x200UL) /*!< DR (Bitfield-Mask: 0x01) */ + #define R_GMAC_MAC_Configuration_IPC_Pos (10UL) /*!< IPC (Bit 10) */ + #define R_GMAC_MAC_Configuration_IPC_Msk (0x400UL) /*!< IPC (Bitfield-Mask: 0x01) */ + #define R_GMAC_MAC_Configuration_DM_Pos (11UL) /*!< DM (Bit 11) */ + #define R_GMAC_MAC_Configuration_DM_Msk (0x800UL) /*!< DM (Bitfield-Mask: 0x01) */ + #define R_GMAC_MAC_Configuration_LM_Pos (12UL) /*!< LM (Bit 12) */ + #define R_GMAC_MAC_Configuration_LM_Msk (0x1000UL) /*!< LM (Bitfield-Mask: 0x01) */ + #define R_GMAC_MAC_Configuration_DO_Pos (13UL) /*!< DO (Bit 13) */ + #define R_GMAC_MAC_Configuration_DO_Msk (0x2000UL) /*!< DO (Bitfield-Mask: 0x01) */ + #define R_GMAC_MAC_Configuration_FES_Pos (14UL) /*!< FES (Bit 14) */ + #define R_GMAC_MAC_Configuration_FES_Msk (0x4000UL) /*!< FES (Bitfield-Mask: 0x01) */ + #define R_GMAC_MAC_Configuration_PS_Pos (15UL) /*!< PS (Bit 15) */ + #define R_GMAC_MAC_Configuration_PS_Msk (0x8000UL) /*!< PS (Bitfield-Mask: 0x01) */ + #define R_GMAC_MAC_Configuration_DCRS_Pos (16UL) /*!< DCRS (Bit 16) */ + #define R_GMAC_MAC_Configuration_DCRS_Msk (0x10000UL) /*!< DCRS (Bitfield-Mask: 0x01) */ + #define R_GMAC_MAC_Configuration_IFG_Pos (17UL) /*!< IFG (Bit 17) */ + #define R_GMAC_MAC_Configuration_IFG_Msk (0xe0000UL) /*!< IFG (Bitfield-Mask: 0x07) */ + #define R_GMAC_MAC_Configuration_JE_Pos (20UL) /*!< JE (Bit 20) */ + #define R_GMAC_MAC_Configuration_JE_Msk (0x100000UL) /*!< JE (Bitfield-Mask: 0x01) */ + #define R_GMAC_MAC_Configuration_BE_Pos (21UL) /*!< BE (Bit 21) */ + #define R_GMAC_MAC_Configuration_BE_Msk (0x200000UL) /*!< BE (Bitfield-Mask: 0x01) */ + #define R_GMAC_MAC_Configuration_JD_Pos (22UL) /*!< JD (Bit 22) */ + #define R_GMAC_MAC_Configuration_JD_Msk (0x400000UL) /*!< JD (Bitfield-Mask: 0x01) */ + #define R_GMAC_MAC_Configuration_WD_Pos (23UL) /*!< WD (Bit 23) */ + #define R_GMAC_MAC_Configuration_WD_Msk (0x800000UL) /*!< WD (Bitfield-Mask: 0x01) */ + #define R_GMAC_MAC_Configuration_CST_Pos (25UL) /*!< CST (Bit 25) */ + #define R_GMAC_MAC_Configuration_CST_Msk (0x2000000UL) /*!< CST (Bitfield-Mask: 0x01) */ + #define R_GMAC_MAC_Configuration_TWOKPE_Pos (27UL) /*!< TWOKPE (Bit 27) */ + #define R_GMAC_MAC_Configuration_TWOKPE_Msk (0x8000000UL) /*!< TWOKPE (Bitfield-Mask: 0x01) */ +/* =================================================== MAC_Frame_Filter ==================================================== */ + #define R_GMAC_MAC_Frame_Filter_PR_Pos (0UL) /*!< PR (Bit 0) */ + #define R_GMAC_MAC_Frame_Filter_PR_Msk (0x1UL) /*!< PR (Bitfield-Mask: 0x01) */ + #define R_GMAC_MAC_Frame_Filter_HUC_Pos (1UL) /*!< HUC (Bit 1) */ + #define R_GMAC_MAC_Frame_Filter_HUC_Msk (0x2UL) /*!< HUC (Bitfield-Mask: 0x01) */ + #define R_GMAC_MAC_Frame_Filter_HMC_Pos (2UL) /*!< HMC (Bit 2) */ + #define R_GMAC_MAC_Frame_Filter_HMC_Msk (0x4UL) /*!< HMC (Bitfield-Mask: 0x01) */ + #define R_GMAC_MAC_Frame_Filter_DAIF_Pos (3UL) /*!< DAIF (Bit 3) */ + #define R_GMAC_MAC_Frame_Filter_DAIF_Msk (0x8UL) /*!< DAIF (Bitfield-Mask: 0x01) */ + #define R_GMAC_MAC_Frame_Filter_PM_Pos (4UL) /*!< PM (Bit 4) */ + #define R_GMAC_MAC_Frame_Filter_PM_Msk (0x10UL) /*!< PM (Bitfield-Mask: 0x01) */ + #define R_GMAC_MAC_Frame_Filter_DBF_Pos (5UL) /*!< DBF (Bit 5) */ + #define R_GMAC_MAC_Frame_Filter_DBF_Msk (0x20UL) /*!< DBF (Bitfield-Mask: 0x01) */ + #define R_GMAC_MAC_Frame_Filter_PCF_Pos (6UL) /*!< PCF (Bit 6) */ + #define R_GMAC_MAC_Frame_Filter_PCF_Msk (0xc0UL) /*!< PCF (Bitfield-Mask: 0x03) */ + #define R_GMAC_MAC_Frame_Filter_SAIF_Pos (8UL) /*!< SAIF (Bit 8) */ + #define R_GMAC_MAC_Frame_Filter_SAIF_Msk (0x100UL) /*!< SAIF (Bitfield-Mask: 0x01) */ + #define R_GMAC_MAC_Frame_Filter_SAF_Pos (9UL) /*!< SAF (Bit 9) */ + #define R_GMAC_MAC_Frame_Filter_SAF_Msk (0x200UL) /*!< SAF (Bitfield-Mask: 0x01) */ + #define R_GMAC_MAC_Frame_Filter_HPF_Pos (10UL) /*!< HPF (Bit 10) */ + #define R_GMAC_MAC_Frame_Filter_HPF_Msk (0x400UL) /*!< HPF (Bitfield-Mask: 0x01) */ + #define R_GMAC_MAC_Frame_Filter_VTFE_Pos (16UL) /*!< VTFE (Bit 16) */ + #define R_GMAC_MAC_Frame_Filter_VTFE_Msk (0x10000UL) /*!< VTFE (Bitfield-Mask: 0x01) */ + #define R_GMAC_MAC_Frame_Filter_RA_Pos (31UL) /*!< RA (Bit 31) */ + #define R_GMAC_MAC_Frame_Filter_RA_Msk (0x80000000UL) /*!< RA (Bitfield-Mask: 0x01) */ +/* ===================================================== GMII_Address ====================================================== */ + #define R_GMAC_GMII_Address_GB_Pos (0UL) /*!< GB (Bit 0) */ + #define R_GMAC_GMII_Address_GB_Msk (0x1UL) /*!< GB (Bitfield-Mask: 0x01) */ + #define R_GMAC_GMII_Address_GW_Pos (1UL) /*!< GW (Bit 1) */ + #define R_GMAC_GMII_Address_GW_Msk (0x2UL) /*!< GW (Bitfield-Mask: 0x01) */ + #define R_GMAC_GMII_Address_CR_Pos (2UL) /*!< CR (Bit 2) */ + #define R_GMAC_GMII_Address_CR_Msk (0x3cUL) /*!< CR (Bitfield-Mask: 0x0f) */ + #define R_GMAC_GMII_Address_GR_Pos (6UL) /*!< GR (Bit 6) */ + #define R_GMAC_GMII_Address_GR_Msk (0x7c0UL) /*!< GR (Bitfield-Mask: 0x1f) */ + #define R_GMAC_GMII_Address_PA_Pos (11UL) /*!< PA (Bit 11) */ + #define R_GMAC_GMII_Address_PA_Msk (0xf800UL) /*!< PA (Bitfield-Mask: 0x1f) */ +/* ======================================================= GMII_Data ======================================================= */ + #define R_GMAC_GMII_Data_GD_Pos (0UL) /*!< GD (Bit 0) */ + #define R_GMAC_GMII_Data_GD_Msk (0xffffUL) /*!< GD (Bitfield-Mask: 0xffff) */ +/* ===================================================== Flow_Control ====================================================== */ + #define R_GMAC_Flow_Control_FCA_BPA_Pos (0UL) /*!< FCA_BPA (Bit 0) */ + #define R_GMAC_Flow_Control_FCA_BPA_Msk (0x1UL) /*!< FCA_BPA (Bitfield-Mask: 0x01) */ + #define R_GMAC_Flow_Control_TFE_Pos (1UL) /*!< TFE (Bit 1) */ + #define R_GMAC_Flow_Control_TFE_Msk (0x2UL) /*!< TFE (Bitfield-Mask: 0x01) */ + #define R_GMAC_Flow_Control_RFE_Pos (2UL) /*!< RFE (Bit 2) */ + #define R_GMAC_Flow_Control_RFE_Msk (0x4UL) /*!< RFE (Bitfield-Mask: 0x01) */ + #define R_GMAC_Flow_Control_UP_Pos (3UL) /*!< UP (Bit 3) */ + #define R_GMAC_Flow_Control_UP_Msk (0x8UL) /*!< UP (Bitfield-Mask: 0x01) */ + #define R_GMAC_Flow_Control_PLT_Pos (4UL) /*!< PLT (Bit 4) */ + #define R_GMAC_Flow_Control_PLT_Msk (0x30UL) /*!< PLT (Bitfield-Mask: 0x03) */ + #define R_GMAC_Flow_Control_DZPQ_Pos (7UL) /*!< DZPQ (Bit 7) */ + #define R_GMAC_Flow_Control_DZPQ_Msk (0x80UL) /*!< DZPQ (Bitfield-Mask: 0x01) */ + #define R_GMAC_Flow_Control_PT_Pos (16UL) /*!< PT (Bit 16) */ + #define R_GMAC_Flow_Control_PT_Msk (0xffff0000UL) /*!< PT (Bitfield-Mask: 0xffff) */ +/* ======================================================= VLAN_Tag ======================================================== */ + #define R_GMAC_VLAN_Tag_VL_Pos (0UL) /*!< VL (Bit 0) */ + #define R_GMAC_VLAN_Tag_VL_Msk (0xffffUL) /*!< VL (Bitfield-Mask: 0xffff) */ + #define R_GMAC_VLAN_Tag_ETV_Pos (16UL) /*!< ETV (Bit 16) */ + #define R_GMAC_VLAN_Tag_ETV_Msk (0x10000UL) /*!< ETV (Bitfield-Mask: 0x01) */ + #define R_GMAC_VLAN_Tag_VTIM_Pos (17UL) /*!< VTIM (Bit 17) */ + #define R_GMAC_VLAN_Tag_VTIM_Msk (0x20000UL) /*!< VTIM (Bitfield-Mask: 0x01) */ + #define R_GMAC_VLAN_Tag_ESVL_Pos (18UL) /*!< ESVL (Bit 18) */ + #define R_GMAC_VLAN_Tag_ESVL_Msk (0x40000UL) /*!< ESVL (Bitfield-Mask: 0x01) */ + #define R_GMAC_VLAN_Tag_VTHM_Pos (19UL) /*!< VTHM (Bit 19) */ + #define R_GMAC_VLAN_Tag_VTHM_Msk (0x80000UL) /*!< VTHM (Bitfield-Mask: 0x01) */ +/* ======================================================== Version ======================================================== */ + #define R_GMAC_Version_VER_Pos (0UL) /*!< VER (Bit 0) */ + #define R_GMAC_Version_VER_Msk (0xffffUL) /*!< VER (Bitfield-Mask: 0xffff) */ +/* ========================================================= Debug ========================================================= */ + #define R_GMAC_Debug_RPESTS_Pos (0UL) /*!< RPESTS (Bit 0) */ + #define R_GMAC_Debug_RPESTS_Msk (0x1UL) /*!< RPESTS (Bitfield-Mask: 0x01) */ + #define R_GMAC_Debug_RFCFCSTS_Pos (1UL) /*!< RFCFCSTS (Bit 1) */ + #define R_GMAC_Debug_RFCFCSTS_Msk (0x6UL) /*!< RFCFCSTS (Bitfield-Mask: 0x03) */ + #define R_GMAC_Debug_RWCSTS_Pos (4UL) /*!< RWCSTS (Bit 4) */ + #define R_GMAC_Debug_RWCSTS_Msk (0x10UL) /*!< RWCSTS (Bitfield-Mask: 0x01) */ + #define R_GMAC_Debug_RRCSTS_Pos (5UL) /*!< RRCSTS (Bit 5) */ + #define R_GMAC_Debug_RRCSTS_Msk (0x60UL) /*!< RRCSTS (Bitfield-Mask: 0x03) */ + #define R_GMAC_Debug_RXFSTS_Pos (8UL) /*!< RXFSTS (Bit 8) */ + #define R_GMAC_Debug_RXFSTS_Msk (0x300UL) /*!< RXFSTS (Bitfield-Mask: 0x03) */ + #define R_GMAC_Debug_TPESTS_Pos (16UL) /*!< TPESTS (Bit 16) */ + #define R_GMAC_Debug_TPESTS_Msk (0x10000UL) /*!< TPESTS (Bitfield-Mask: 0x01) */ + #define R_GMAC_Debug_TFCSTS_Pos (17UL) /*!< TFCSTS (Bit 17) */ + #define R_GMAC_Debug_TFCSTS_Msk (0x60000UL) /*!< TFCSTS (Bitfield-Mask: 0x03) */ + #define R_GMAC_Debug_TXPAUSED_Pos (19UL) /*!< TXPAUSED (Bit 19) */ + #define R_GMAC_Debug_TXPAUSED_Msk (0x80000UL) /*!< TXPAUSED (Bitfield-Mask: 0x01) */ + #define R_GMAC_Debug_TRCSTS_Pos (20UL) /*!< TRCSTS (Bit 20) */ + #define R_GMAC_Debug_TRCSTS_Msk (0x300000UL) /*!< TRCSTS (Bitfield-Mask: 0x03) */ + #define R_GMAC_Debug_TWCSTS_Pos (22UL) /*!< TWCSTS (Bit 22) */ + #define R_GMAC_Debug_TWCSTS_Msk (0x400000UL) /*!< TWCSTS (Bitfield-Mask: 0x01) */ + #define R_GMAC_Debug_TXFSTS_Pos (24UL) /*!< TXFSTS (Bit 24) */ + #define R_GMAC_Debug_TXFSTS_Msk (0x1000000UL) /*!< TXFSTS (Bitfield-Mask: 0x01) */ + #define R_GMAC_Debug_TXSTSFSTS_Pos (25UL) /*!< TXSTSFSTS (Bit 25) */ + #define R_GMAC_Debug_TXSTSFSTS_Msk (0x2000000UL) /*!< TXSTSFSTS (Bitfield-Mask: 0x01) */ +/* ============================================== Remote_Wake_Up_Frame_Filter ============================================== */ + #define R_GMAC_Remote_Wake_Up_Frame_Filter_WKUPFRMFTR_Pos (0UL) /*!< WKUPFRMFTR (Bit 0) */ + #define R_GMAC_Remote_Wake_Up_Frame_Filter_WKUPFRMFTR_Msk (0xffffffffUL) /*!< WKUPFRMFTR (Bitfield-Mask: 0xffffffff) */ +/* ================================================== PMT_Control_Status =================================================== */ + #define R_GMAC_PMT_Control_Status_PWRDWN_Pos (0UL) /*!< PWRDWN (Bit 0) */ + #define R_GMAC_PMT_Control_Status_PWRDWN_Msk (0x1UL) /*!< PWRDWN (Bitfield-Mask: 0x01) */ + #define R_GMAC_PMT_Control_Status_MGKPKTEN_Pos (1UL) /*!< MGKPKTEN (Bit 1) */ + #define R_GMAC_PMT_Control_Status_MGKPKTEN_Msk (0x2UL) /*!< MGKPKTEN (Bitfield-Mask: 0x01) */ + #define R_GMAC_PMT_Control_Status_RWKPKTEN_Pos (2UL) /*!< RWKPKTEN (Bit 2) */ + #define R_GMAC_PMT_Control_Status_RWKPKTEN_Msk (0x4UL) /*!< RWKPKTEN (Bitfield-Mask: 0x01) */ + #define R_GMAC_PMT_Control_Status_MGKPRCVD_Pos (5UL) /*!< MGKPRCVD (Bit 5) */ + #define R_GMAC_PMT_Control_Status_MGKPRCVD_Msk (0x20UL) /*!< MGKPRCVD (Bitfield-Mask: 0x01) */ + #define R_GMAC_PMT_Control_Status_RWKPRCVD_Pos (6UL) /*!< RWKPRCVD (Bit 6) */ + #define R_GMAC_PMT_Control_Status_RWKPRCVD_Msk (0x40UL) /*!< RWKPRCVD (Bitfield-Mask: 0x01) */ + #define R_GMAC_PMT_Control_Status_GLBLUCAST_Pos (9UL) /*!< GLBLUCAST (Bit 9) */ + #define R_GMAC_PMT_Control_Status_GLBLUCAST_Msk (0x200UL) /*!< GLBLUCAST (Bitfield-Mask: 0x01) */ + #define R_GMAC_PMT_Control_Status_RWKPTR_Pos (24UL) /*!< RWKPTR (Bit 24) */ + #define R_GMAC_PMT_Control_Status_RWKPTR_Msk (0x7000000UL) /*!< RWKPTR (Bitfield-Mask: 0x07) */ + #define R_GMAC_PMT_Control_Status_RWKFILTRST_Pos (31UL) /*!< RWKFILTRST (Bit 31) */ + #define R_GMAC_PMT_Control_Status_RWKFILTRST_Msk (0x80000000UL) /*!< RWKFILTRST (Bitfield-Mask: 0x01) */ +/* ================================================== LPI_Control_Status =================================================== */ + #define R_GMAC_LPI_Control_Status_TLPIEN_Pos (0UL) /*!< TLPIEN (Bit 0) */ + #define R_GMAC_LPI_Control_Status_TLPIEN_Msk (0x1UL) /*!< TLPIEN (Bitfield-Mask: 0x01) */ + #define R_GMAC_LPI_Control_Status_TLPIEX_Pos (1UL) /*!< TLPIEX (Bit 1) */ + #define R_GMAC_LPI_Control_Status_TLPIEX_Msk (0x2UL) /*!< TLPIEX (Bitfield-Mask: 0x01) */ + #define R_GMAC_LPI_Control_Status_RLPIEN_Pos (2UL) /*!< RLPIEN (Bit 2) */ + #define R_GMAC_LPI_Control_Status_RLPIEN_Msk (0x4UL) /*!< RLPIEN (Bitfield-Mask: 0x01) */ + #define R_GMAC_LPI_Control_Status_RLPIEX_Pos (3UL) /*!< RLPIEX (Bit 3) */ + #define R_GMAC_LPI_Control_Status_RLPIEX_Msk (0x8UL) /*!< RLPIEX (Bitfield-Mask: 0x01) */ + #define R_GMAC_LPI_Control_Status_TLPIST_Pos (8UL) /*!< TLPIST (Bit 8) */ + #define R_GMAC_LPI_Control_Status_TLPIST_Msk (0x100UL) /*!< TLPIST (Bitfield-Mask: 0x01) */ + #define R_GMAC_LPI_Control_Status_RLPIST_Pos (9UL) /*!< RLPIST (Bit 9) */ + #define R_GMAC_LPI_Control_Status_RLPIST_Msk (0x200UL) /*!< RLPIST (Bitfield-Mask: 0x01) */ + #define R_GMAC_LPI_Control_Status_LPIEN_Pos (16UL) /*!< LPIEN (Bit 16) */ + #define R_GMAC_LPI_Control_Status_LPIEN_Msk (0x10000UL) /*!< LPIEN (Bitfield-Mask: 0x01) */ + #define R_GMAC_LPI_Control_Status_PLS_Pos (17UL) /*!< PLS (Bit 17) */ + #define R_GMAC_LPI_Control_Status_PLS_Msk (0x20000UL) /*!< PLS (Bitfield-Mask: 0x01) */ + #define R_GMAC_LPI_Control_Status_LPITXA_Pos (19UL) /*!< LPITXA (Bit 19) */ + #define R_GMAC_LPI_Control_Status_LPITXA_Msk (0x80000UL) /*!< LPITXA (Bitfield-Mask: 0x01) */ +/* ================================================== LPI_Timers_Control =================================================== */ + #define R_GMAC_LPI_Timers_Control_TWT_Pos (0UL) /*!< TWT (Bit 0) */ + #define R_GMAC_LPI_Timers_Control_TWT_Msk (0xffffUL) /*!< TWT (Bitfield-Mask: 0xffff) */ + #define R_GMAC_LPI_Timers_Control_LST_Pos (16UL) /*!< LST (Bit 16) */ + #define R_GMAC_LPI_Timers_Control_LST_Msk (0x3ff0000UL) /*!< LST (Bitfield-Mask: 0x3ff) */ +/* =================================================== Interrupt_Status ==================================================== */ + #define R_GMAC_Interrupt_Status_PMTIS_Pos (3UL) /*!< PMTIS (Bit 3) */ + #define R_GMAC_Interrupt_Status_PMTIS_Msk (0x8UL) /*!< PMTIS (Bitfield-Mask: 0x01) */ + #define R_GMAC_Interrupt_Status_MMCIS_Pos (4UL) /*!< MMCIS (Bit 4) */ + #define R_GMAC_Interrupt_Status_MMCIS_Msk (0x10UL) /*!< MMCIS (Bitfield-Mask: 0x01) */ + #define R_GMAC_Interrupt_Status_MMCRXIS_Pos (5UL) /*!< MMCRXIS (Bit 5) */ + #define R_GMAC_Interrupt_Status_MMCRXIS_Msk (0x20UL) /*!< MMCRXIS (Bitfield-Mask: 0x01) */ + #define R_GMAC_Interrupt_Status_MMCTXIS_Pos (6UL) /*!< MMCTXIS (Bit 6) */ + #define R_GMAC_Interrupt_Status_MMCTXIS_Msk (0x40UL) /*!< MMCTXIS (Bitfield-Mask: 0x01) */ + #define R_GMAC_Interrupt_Status_MMCRXIPIS_Pos (7UL) /*!< MMCRXIPIS (Bit 7) */ + #define R_GMAC_Interrupt_Status_MMCRXIPIS_Msk (0x80UL) /*!< MMCRXIPIS (Bitfield-Mask: 0x01) */ + #define R_GMAC_Interrupt_Status_TSIS_Pos (9UL) /*!< TSIS (Bit 9) */ + #define R_GMAC_Interrupt_Status_TSIS_Msk (0x200UL) /*!< TSIS (Bitfield-Mask: 0x01) */ + #define R_GMAC_Interrupt_Status_LPIIS_Pos (10UL) /*!< LPIIS (Bit 10) */ + #define R_GMAC_Interrupt_Status_LPIIS_Msk (0x400UL) /*!< LPIIS (Bitfield-Mask: 0x01) */ +/* ==================================================== Interrupt_Mask ===================================================== */ + #define R_GMAC_Interrupt_Mask_PMTIM_Pos (3UL) /*!< PMTIM (Bit 3) */ + #define R_GMAC_Interrupt_Mask_PMTIM_Msk (0x8UL) /*!< PMTIM (Bitfield-Mask: 0x01) */ + #define R_GMAC_Interrupt_Mask_TSIM_Pos (9UL) /*!< TSIM (Bit 9) */ + #define R_GMAC_Interrupt_Mask_TSIM_Msk (0x200UL) /*!< TSIM (Bitfield-Mask: 0x01) */ + #define R_GMAC_Interrupt_Mask_LPIIM_Pos (10UL) /*!< LPIIM (Bit 10) */ + #define R_GMAC_Interrupt_Mask_LPIIM_Msk (0x400UL) /*!< LPIIM (Bitfield-Mask: 0x01) */ +/* ======================================================== MAR0_H ========================================================= */ + #define R_GMAC_MAR0_H_ADDRHI_Pos (0UL) /*!< ADDRHI (Bit 0) */ + #define R_GMAC_MAR0_H_ADDRHI_Msk (0xffffUL) /*!< ADDRHI (Bitfield-Mask: 0xffff) */ + #define R_GMAC_MAR0_H_AE_Pos (31UL) /*!< AE (Bit 31) */ + #define R_GMAC_MAR0_H_AE_Msk (0x80000000UL) /*!< AE (Bitfield-Mask: 0x01) */ +/* ======================================================== MAR0_L ========================================================= */ + #define R_GMAC_MAR0_L_ADDRLO_Pos (0UL) /*!< ADDRLO (Bit 0) */ + #define R_GMAC_MAR0_L_ADDRLO_Msk (0xffffffffUL) /*!< ADDRLO (Bitfield-Mask: 0xffffffff) */ +/* ======================================================== MAR1_H ========================================================= */ + #define R_GMAC_MAR1_H_ADDRHI_Pos (0UL) /*!< ADDRHI (Bit 0) */ + #define R_GMAC_MAR1_H_ADDRHI_Msk (0xffffUL) /*!< ADDRHI (Bitfield-Mask: 0xffff) */ + #define R_GMAC_MAR1_H_MBC_Pos (24UL) /*!< MBC (Bit 24) */ + #define R_GMAC_MAR1_H_MBC_Msk (0x3f000000UL) /*!< MBC (Bitfield-Mask: 0x3f) */ + #define R_GMAC_MAR1_H_SA_Pos (30UL) /*!< SA (Bit 30) */ + #define R_GMAC_MAR1_H_SA_Msk (0x40000000UL) /*!< SA (Bitfield-Mask: 0x01) */ + #define R_GMAC_MAR1_H_AE_Pos (31UL) /*!< AE (Bit 31) */ + #define R_GMAC_MAR1_H_AE_Msk (0x80000000UL) /*!< AE (Bitfield-Mask: 0x01) */ +/* ======================================================== MAR2_H ========================================================= */ + #define R_GMAC_MAR2_H_ADDRHI_Pos (0UL) /*!< ADDRHI (Bit 0) */ + #define R_GMAC_MAR2_H_ADDRHI_Msk (0xffffUL) /*!< ADDRHI (Bitfield-Mask: 0xffff) */ + #define R_GMAC_MAR2_H_MBC_Pos (24UL) /*!< MBC (Bit 24) */ + #define R_GMAC_MAR2_H_MBC_Msk (0x3f000000UL) /*!< MBC (Bitfield-Mask: 0x3f) */ + #define R_GMAC_MAR2_H_SA_Pos (30UL) /*!< SA (Bit 30) */ + #define R_GMAC_MAR2_H_SA_Msk (0x40000000UL) /*!< SA (Bitfield-Mask: 0x01) */ + #define R_GMAC_MAR2_H_AE_Pos (31UL) /*!< AE (Bit 31) */ + #define R_GMAC_MAR2_H_AE_Msk (0x80000000UL) /*!< AE (Bitfield-Mask: 0x01) */ +/* ======================================================== MAR3_H ========================================================= */ + #define R_GMAC_MAR3_H_ADDRHI_Pos (0UL) /*!< ADDRHI (Bit 0) */ + #define R_GMAC_MAR3_H_ADDRHI_Msk (0xffffUL) /*!< ADDRHI (Bitfield-Mask: 0xffff) */ + #define R_GMAC_MAR3_H_MBC_Pos (24UL) /*!< MBC (Bit 24) */ + #define R_GMAC_MAR3_H_MBC_Msk (0x3f000000UL) /*!< MBC (Bitfield-Mask: 0x3f) */ + #define R_GMAC_MAR3_H_SA_Pos (30UL) /*!< SA (Bit 30) */ + #define R_GMAC_MAR3_H_SA_Msk (0x40000000UL) /*!< SA (Bitfield-Mask: 0x01) */ + #define R_GMAC_MAR3_H_AE_Pos (31UL) /*!< AE (Bit 31) */ + #define R_GMAC_MAR3_H_AE_Msk (0x80000000UL) /*!< AE (Bitfield-Mask: 0x01) */ +/* ======================================================== MAR4_H ========================================================= */ + #define R_GMAC_MAR4_H_ADDRHI_Pos (0UL) /*!< ADDRHI (Bit 0) */ + #define R_GMAC_MAR4_H_ADDRHI_Msk (0xffffUL) /*!< ADDRHI (Bitfield-Mask: 0xffff) */ + #define R_GMAC_MAR4_H_MBC_Pos (24UL) /*!< MBC (Bit 24) */ + #define R_GMAC_MAR4_H_MBC_Msk (0x3f000000UL) /*!< MBC (Bitfield-Mask: 0x3f) */ + #define R_GMAC_MAR4_H_SA_Pos (30UL) /*!< SA (Bit 30) */ + #define R_GMAC_MAR4_H_SA_Msk (0x40000000UL) /*!< SA (Bitfield-Mask: 0x01) */ + #define R_GMAC_MAR4_H_AE_Pos (31UL) /*!< AE (Bit 31) */ + #define R_GMAC_MAR4_H_AE_Msk (0x80000000UL) /*!< AE (Bitfield-Mask: 0x01) */ +/* ======================================================== MAR5_H ========================================================= */ + #define R_GMAC_MAR5_H_ADDRHI_Pos (0UL) /*!< ADDRHI (Bit 0) */ + #define R_GMAC_MAR5_H_ADDRHI_Msk (0xffffUL) /*!< ADDRHI (Bitfield-Mask: 0xffff) */ + #define R_GMAC_MAR5_H_MBC_Pos (24UL) /*!< MBC (Bit 24) */ + #define R_GMAC_MAR5_H_MBC_Msk (0x3f000000UL) /*!< MBC (Bitfield-Mask: 0x3f) */ + #define R_GMAC_MAR5_H_SA_Pos (30UL) /*!< SA (Bit 30) */ + #define R_GMAC_MAR5_H_SA_Msk (0x40000000UL) /*!< SA (Bitfield-Mask: 0x01) */ + #define R_GMAC_MAR5_H_AE_Pos (31UL) /*!< AE (Bit 31) */ + #define R_GMAC_MAR5_H_AE_Msk (0x80000000UL) /*!< AE (Bitfield-Mask: 0x01) */ +/* ======================================================== MAR6_H ========================================================= */ + #define R_GMAC_MAR6_H_ADDRHI_Pos (0UL) /*!< ADDRHI (Bit 0) */ + #define R_GMAC_MAR6_H_ADDRHI_Msk (0xffffUL) /*!< ADDRHI (Bitfield-Mask: 0xffff) */ + #define R_GMAC_MAR6_H_MBC_Pos (24UL) /*!< MBC (Bit 24) */ + #define R_GMAC_MAR6_H_MBC_Msk (0x3f000000UL) /*!< MBC (Bitfield-Mask: 0x3f) */ + #define R_GMAC_MAR6_H_SA_Pos (30UL) /*!< SA (Bit 30) */ + #define R_GMAC_MAR6_H_SA_Msk (0x40000000UL) /*!< SA (Bitfield-Mask: 0x01) */ + #define R_GMAC_MAR6_H_AE_Pos (31UL) /*!< AE (Bit 31) */ + #define R_GMAC_MAR6_H_AE_Msk (0x80000000UL) /*!< AE (Bitfield-Mask: 0x01) */ +/* ======================================================== MAR7_H ========================================================= */ + #define R_GMAC_MAR7_H_ADDRHI_Pos (0UL) /*!< ADDRHI (Bit 0) */ + #define R_GMAC_MAR7_H_ADDRHI_Msk (0xffffUL) /*!< ADDRHI (Bitfield-Mask: 0xffff) */ + #define R_GMAC_MAR7_H_MBC_Pos (24UL) /*!< MBC (Bit 24) */ + #define R_GMAC_MAR7_H_MBC_Msk (0x3f000000UL) /*!< MBC (Bitfield-Mask: 0x3f) */ + #define R_GMAC_MAR7_H_SA_Pos (30UL) /*!< SA (Bit 30) */ + #define R_GMAC_MAR7_H_SA_Msk (0x40000000UL) /*!< SA (Bitfield-Mask: 0x01) */ + #define R_GMAC_MAR7_H_AE_Pos (31UL) /*!< AE (Bit 31) */ + #define R_GMAC_MAR7_H_AE_Msk (0x80000000UL) /*!< AE (Bitfield-Mask: 0x01) */ +/* ======================================================== MAR8_H ========================================================= */ + #define R_GMAC_MAR8_H_ADDRHI_Pos (0UL) /*!< ADDRHI (Bit 0) */ + #define R_GMAC_MAR8_H_ADDRHI_Msk (0xffffUL) /*!< ADDRHI (Bitfield-Mask: 0xffff) */ + #define R_GMAC_MAR8_H_MBC_Pos (24UL) /*!< MBC (Bit 24) */ + #define R_GMAC_MAR8_H_MBC_Msk (0x3f000000UL) /*!< MBC (Bitfield-Mask: 0x3f) */ + #define R_GMAC_MAR8_H_SA_Pos (30UL) /*!< SA (Bit 30) */ + #define R_GMAC_MAR8_H_SA_Msk (0x40000000UL) /*!< SA (Bitfield-Mask: 0x01) */ + #define R_GMAC_MAR8_H_AE_Pos (31UL) /*!< AE (Bit 31) */ + #define R_GMAC_MAR8_H_AE_Msk (0x80000000UL) /*!< AE (Bitfield-Mask: 0x01) */ +/* ======================================================== MAR9_H ========================================================= */ + #define R_GMAC_MAR9_H_ADDRHI_Pos (0UL) /*!< ADDRHI (Bit 0) */ + #define R_GMAC_MAR9_H_ADDRHI_Msk (0xffffUL) /*!< ADDRHI (Bitfield-Mask: 0xffff) */ + #define R_GMAC_MAR9_H_MBC_Pos (24UL) /*!< MBC (Bit 24) */ + #define R_GMAC_MAR9_H_MBC_Msk (0x3f000000UL) /*!< MBC (Bitfield-Mask: 0x3f) */ + #define R_GMAC_MAR9_H_SA_Pos (30UL) /*!< SA (Bit 30) */ + #define R_GMAC_MAR9_H_SA_Msk (0x40000000UL) /*!< SA (Bitfield-Mask: 0x01) */ + #define R_GMAC_MAR9_H_AE_Pos (31UL) /*!< AE (Bit 31) */ + #define R_GMAC_MAR9_H_AE_Msk (0x80000000UL) /*!< AE (Bitfield-Mask: 0x01) */ +/* ======================================================== MAR10_H ======================================================== */ + #define R_GMAC_MAR10_H_ADDRHI_Pos (0UL) /*!< ADDRHI (Bit 0) */ + #define R_GMAC_MAR10_H_ADDRHI_Msk (0xffffUL) /*!< ADDRHI (Bitfield-Mask: 0xffff) */ + #define R_GMAC_MAR10_H_MBC_Pos (24UL) /*!< MBC (Bit 24) */ + #define R_GMAC_MAR10_H_MBC_Msk (0x3f000000UL) /*!< MBC (Bitfield-Mask: 0x3f) */ + #define R_GMAC_MAR10_H_SA_Pos (30UL) /*!< SA (Bit 30) */ + #define R_GMAC_MAR10_H_SA_Msk (0x40000000UL) /*!< SA (Bitfield-Mask: 0x01) */ + #define R_GMAC_MAR10_H_AE_Pos (31UL) /*!< AE (Bit 31) */ + #define R_GMAC_MAR10_H_AE_Msk (0x80000000UL) /*!< AE (Bitfield-Mask: 0x01) */ +/* ======================================================== MAR11_H ======================================================== */ + #define R_GMAC_MAR11_H_ADDRHI_Pos (0UL) /*!< ADDRHI (Bit 0) */ + #define R_GMAC_MAR11_H_ADDRHI_Msk (0xffffUL) /*!< ADDRHI (Bitfield-Mask: 0xffff) */ + #define R_GMAC_MAR11_H_MBC_Pos (24UL) /*!< MBC (Bit 24) */ + #define R_GMAC_MAR11_H_MBC_Msk (0x3f000000UL) /*!< MBC (Bitfield-Mask: 0x3f) */ + #define R_GMAC_MAR11_H_SA_Pos (30UL) /*!< SA (Bit 30) */ + #define R_GMAC_MAR11_H_SA_Msk (0x40000000UL) /*!< SA (Bitfield-Mask: 0x01) */ + #define R_GMAC_MAR11_H_AE_Pos (31UL) /*!< AE (Bit 31) */ + #define R_GMAC_MAR11_H_AE_Msk (0x80000000UL) /*!< AE (Bitfield-Mask: 0x01) */ +/* ======================================================== MAR12_H ======================================================== */ + #define R_GMAC_MAR12_H_ADDRHI_Pos (0UL) /*!< ADDRHI (Bit 0) */ + #define R_GMAC_MAR12_H_ADDRHI_Msk (0xffffUL) /*!< ADDRHI (Bitfield-Mask: 0xffff) */ + #define R_GMAC_MAR12_H_MBC_Pos (24UL) /*!< MBC (Bit 24) */ + #define R_GMAC_MAR12_H_MBC_Msk (0x3f000000UL) /*!< MBC (Bitfield-Mask: 0x3f) */ + #define R_GMAC_MAR12_H_SA_Pos (30UL) /*!< SA (Bit 30) */ + #define R_GMAC_MAR12_H_SA_Msk (0x40000000UL) /*!< SA (Bitfield-Mask: 0x01) */ + #define R_GMAC_MAR12_H_AE_Pos (31UL) /*!< AE (Bit 31) */ + #define R_GMAC_MAR12_H_AE_Msk (0x80000000UL) /*!< AE (Bitfield-Mask: 0x01) */ +/* ======================================================== MAR13_H ======================================================== */ + #define R_GMAC_MAR13_H_ADDRHI_Pos (0UL) /*!< ADDRHI (Bit 0) */ + #define R_GMAC_MAR13_H_ADDRHI_Msk (0xffffUL) /*!< ADDRHI (Bitfield-Mask: 0xffff) */ + #define R_GMAC_MAR13_H_MBC_Pos (24UL) /*!< MBC (Bit 24) */ + #define R_GMAC_MAR13_H_MBC_Msk (0x3f000000UL) /*!< MBC (Bitfield-Mask: 0x3f) */ + #define R_GMAC_MAR13_H_SA_Pos (30UL) /*!< SA (Bit 30) */ + #define R_GMAC_MAR13_H_SA_Msk (0x40000000UL) /*!< SA (Bitfield-Mask: 0x01) */ + #define R_GMAC_MAR13_H_AE_Pos (31UL) /*!< AE (Bit 31) */ + #define R_GMAC_MAR13_H_AE_Msk (0x80000000UL) /*!< AE (Bitfield-Mask: 0x01) */ +/* ======================================================== MAR14_H ======================================================== */ + #define R_GMAC_MAR14_H_ADDRHI_Pos (0UL) /*!< ADDRHI (Bit 0) */ + #define R_GMAC_MAR14_H_ADDRHI_Msk (0xffffUL) /*!< ADDRHI (Bitfield-Mask: 0xffff) */ + #define R_GMAC_MAR14_H_MBC_Pos (24UL) /*!< MBC (Bit 24) */ + #define R_GMAC_MAR14_H_MBC_Msk (0x3f000000UL) /*!< MBC (Bitfield-Mask: 0x3f) */ + #define R_GMAC_MAR14_H_SA_Pos (30UL) /*!< SA (Bit 30) */ + #define R_GMAC_MAR14_H_SA_Msk (0x40000000UL) /*!< SA (Bitfield-Mask: 0x01) */ + #define R_GMAC_MAR14_H_AE_Pos (31UL) /*!< AE (Bit 31) */ + #define R_GMAC_MAR14_H_AE_Msk (0x80000000UL) /*!< AE (Bitfield-Mask: 0x01) */ +/* ======================================================== MAR15_H ======================================================== */ + #define R_GMAC_MAR15_H_ADDRHI_Pos (0UL) /*!< ADDRHI (Bit 0) */ + #define R_GMAC_MAR15_H_ADDRHI_Msk (0xffffUL) /*!< ADDRHI (Bitfield-Mask: 0xffff) */ + #define R_GMAC_MAR15_H_MBC_Pos (24UL) /*!< MBC (Bit 24) */ + #define R_GMAC_MAR15_H_MBC_Msk (0x3f000000UL) /*!< MBC (Bitfield-Mask: 0x3f) */ + #define R_GMAC_MAR15_H_SA_Pos (30UL) /*!< SA (Bit 30) */ + #define R_GMAC_MAR15_H_SA_Msk (0x40000000UL) /*!< SA (Bitfield-Mask: 0x01) */ + #define R_GMAC_MAR15_H_AE_Pos (31UL) /*!< AE (Bit 31) */ + #define R_GMAC_MAR15_H_AE_Msk (0x80000000UL) /*!< AE (Bitfield-Mask: 0x01) */ +/* ======================================================== MAR1_L ========================================================= */ + #define R_GMAC_MAR1_L_ADDRLO_Pos (0UL) /*!< ADDRLO (Bit 0) */ + #define R_GMAC_MAR1_L_ADDRLO_Msk (0xffffffffUL) /*!< ADDRLO (Bitfield-Mask: 0xffffffff) */ +/* ======================================================== MAR2_L ========================================================= */ + #define R_GMAC_MAR2_L_ADDRLO_Pos (0UL) /*!< ADDRLO (Bit 0) */ + #define R_GMAC_MAR2_L_ADDRLO_Msk (0xffffffffUL) /*!< ADDRLO (Bitfield-Mask: 0xffffffff) */ +/* ======================================================== MAR3_L ========================================================= */ + #define R_GMAC_MAR3_L_ADDRLO_Pos (0UL) /*!< ADDRLO (Bit 0) */ + #define R_GMAC_MAR3_L_ADDRLO_Msk (0xffffffffUL) /*!< ADDRLO (Bitfield-Mask: 0xffffffff) */ +/* ======================================================== MAR4_L ========================================================= */ + #define R_GMAC_MAR4_L_ADDRLO_Pos (0UL) /*!< ADDRLO (Bit 0) */ + #define R_GMAC_MAR4_L_ADDRLO_Msk (0xffffffffUL) /*!< ADDRLO (Bitfield-Mask: 0xffffffff) */ +/* ======================================================== MAR5_L ========================================================= */ + #define R_GMAC_MAR5_L_ADDRLO_Pos (0UL) /*!< ADDRLO (Bit 0) */ + #define R_GMAC_MAR5_L_ADDRLO_Msk (0xffffffffUL) /*!< ADDRLO (Bitfield-Mask: 0xffffffff) */ +/* ======================================================== MAR6_L ========================================================= */ + #define R_GMAC_MAR6_L_ADDRLO_Pos (0UL) /*!< ADDRLO (Bit 0) */ + #define R_GMAC_MAR6_L_ADDRLO_Msk (0xffffffffUL) /*!< ADDRLO (Bitfield-Mask: 0xffffffff) */ +/* ======================================================== MAR7_L ========================================================= */ + #define R_GMAC_MAR7_L_ADDRLO_Pos (0UL) /*!< ADDRLO (Bit 0) */ + #define R_GMAC_MAR7_L_ADDRLO_Msk (0xffffffffUL) /*!< ADDRLO (Bitfield-Mask: 0xffffffff) */ +/* ======================================================== MAR8_L ========================================================= */ + #define R_GMAC_MAR8_L_ADDRLO_Pos (0UL) /*!< ADDRLO (Bit 0) */ + #define R_GMAC_MAR8_L_ADDRLO_Msk (0xffffffffUL) /*!< ADDRLO (Bitfield-Mask: 0xffffffff) */ +/* ======================================================== MAR9_L ========================================================= */ + #define R_GMAC_MAR9_L_ADDRLO_Pos (0UL) /*!< ADDRLO (Bit 0) */ + #define R_GMAC_MAR9_L_ADDRLO_Msk (0xffffffffUL) /*!< ADDRLO (Bitfield-Mask: 0xffffffff) */ +/* ======================================================== MAR10_L ======================================================== */ + #define R_GMAC_MAR10_L_ADDRLO_Pos (0UL) /*!< ADDRLO (Bit 0) */ + #define R_GMAC_MAR10_L_ADDRLO_Msk (0xffffffffUL) /*!< ADDRLO (Bitfield-Mask: 0xffffffff) */ +/* ======================================================== MAR11_L ======================================================== */ + #define R_GMAC_MAR11_L_ADDRLO_Pos (0UL) /*!< ADDRLO (Bit 0) */ + #define R_GMAC_MAR11_L_ADDRLO_Msk (0xffffffffUL) /*!< ADDRLO (Bitfield-Mask: 0xffffffff) */ +/* ======================================================== MAR12_L ======================================================== */ + #define R_GMAC_MAR12_L_ADDRLO_Pos (0UL) /*!< ADDRLO (Bit 0) */ + #define R_GMAC_MAR12_L_ADDRLO_Msk (0xffffffffUL) /*!< ADDRLO (Bitfield-Mask: 0xffffffff) */ +/* ======================================================== MAR13_L ======================================================== */ + #define R_GMAC_MAR13_L_ADDRLO_Pos (0UL) /*!< ADDRLO (Bit 0) */ + #define R_GMAC_MAR13_L_ADDRLO_Msk (0xffffffffUL) /*!< ADDRLO (Bitfield-Mask: 0xffffffff) */ +/* ======================================================== MAR14_L ======================================================== */ + #define R_GMAC_MAR14_L_ADDRLO_Pos (0UL) /*!< ADDRLO (Bit 0) */ + #define R_GMAC_MAR14_L_ADDRLO_Msk (0xffffffffUL) /*!< ADDRLO (Bitfield-Mask: 0xffffffff) */ +/* ======================================================== MAR15_L ======================================================== */ + #define R_GMAC_MAR15_L_ADDRLO_Pos (0UL) /*!< ADDRLO (Bit 0) */ + #define R_GMAC_MAR15_L_ADDRLO_Msk (0xffffffffUL) /*!< ADDRLO (Bitfield-Mask: 0xffffffff) */ +/* ===================================================== WDog_Timeout ====================================================== */ + #define R_GMAC_WDog_Timeout_WTO_Pos (0UL) /*!< WTO (Bit 0) */ + #define R_GMAC_WDog_Timeout_WTO_Msk (0x3fffUL) /*!< WTO (Bitfield-Mask: 0x3fff) */ + #define R_GMAC_WDog_Timeout_PWE_Pos (16UL) /*!< PWE (Bit 16) */ + #define R_GMAC_WDog_Timeout_PWE_Msk (0x10000UL) /*!< PWE (Bitfield-Mask: 0x01) */ +/* ====================================================== MMC_Control ====================================================== */ + #define R_GMAC_MMC_Control_CNTRST_Pos (0UL) /*!< CNTRST (Bit 0) */ + #define R_GMAC_MMC_Control_CNTRST_Msk (0x1UL) /*!< CNTRST (Bitfield-Mask: 0x01) */ + #define R_GMAC_MMC_Control_CNTSTOPRO_Pos (1UL) /*!< CNTSTOPRO (Bit 1) */ + #define R_GMAC_MMC_Control_CNTSTOPRO_Msk (0x2UL) /*!< CNTSTOPRO (Bitfield-Mask: 0x01) */ + #define R_GMAC_MMC_Control_RSTONRD_Pos (2UL) /*!< RSTONRD (Bit 2) */ + #define R_GMAC_MMC_Control_RSTONRD_Msk (0x4UL) /*!< RSTONRD (Bitfield-Mask: 0x01) */ + #define R_GMAC_MMC_Control_CNTFREEZ_Pos (3UL) /*!< CNTFREEZ (Bit 3) */ + #define R_GMAC_MMC_Control_CNTFREEZ_Msk (0x8UL) /*!< CNTFREEZ (Bitfield-Mask: 0x01) */ + #define R_GMAC_MMC_Control_CNTPRST_Pos (4UL) /*!< CNTPRST (Bit 4) */ + #define R_GMAC_MMC_Control_CNTPRST_Msk (0x10UL) /*!< CNTPRST (Bitfield-Mask: 0x01) */ + #define R_GMAC_MMC_Control_CNTPRSTLVL_Pos (5UL) /*!< CNTPRSTLVL (Bit 5) */ + #define R_GMAC_MMC_Control_CNTPRSTLVL_Msk (0x20UL) /*!< CNTPRSTLVL (Bitfield-Mask: 0x01) */ + #define R_GMAC_MMC_Control_UCDBC_Pos (8UL) /*!< UCDBC (Bit 8) */ + #define R_GMAC_MMC_Control_UCDBC_Msk (0x100UL) /*!< UCDBC (Bitfield-Mask: 0x01) */ +/* ================================================= MMC_Receive_Interrupt ================================================= */ + #define R_GMAC_MMC_Receive_Interrupt_RXGBFRMIS_Pos (0UL) /*!< RXGBFRMIS (Bit 0) */ + #define R_GMAC_MMC_Receive_Interrupt_RXGBFRMIS_Msk (0x1UL) /*!< RXGBFRMIS (Bitfield-Mask: 0x01) */ + #define R_GMAC_MMC_Receive_Interrupt_RXGBOCTIS_Pos (1UL) /*!< RXGBOCTIS (Bit 1) */ + #define R_GMAC_MMC_Receive_Interrupt_RXGBOCTIS_Msk (0x2UL) /*!< RXGBOCTIS (Bitfield-Mask: 0x01) */ + #define R_GMAC_MMC_Receive_Interrupt_RXGOCTIS_Pos (2UL) /*!< RXGOCTIS (Bit 2) */ + #define R_GMAC_MMC_Receive_Interrupt_RXGOCTIS_Msk (0x4UL) /*!< RXGOCTIS (Bitfield-Mask: 0x01) */ + #define R_GMAC_MMC_Receive_Interrupt_RXBCGFIS_Pos (3UL) /*!< RXBCGFIS (Bit 3) */ + #define R_GMAC_MMC_Receive_Interrupt_RXBCGFIS_Msk (0x8UL) /*!< RXBCGFIS (Bitfield-Mask: 0x01) */ + #define R_GMAC_MMC_Receive_Interrupt_RXMCGFIS_Pos (4UL) /*!< RXMCGFIS (Bit 4) */ + #define R_GMAC_MMC_Receive_Interrupt_RXMCGFIS_Msk (0x10UL) /*!< RXMCGFIS (Bitfield-Mask: 0x01) */ + #define R_GMAC_MMC_Receive_Interrupt_RXCRCERFIS_Pos (5UL) /*!< RXCRCERFIS (Bit 5) */ + #define R_GMAC_MMC_Receive_Interrupt_RXCRCERFIS_Msk (0x20UL) /*!< RXCRCERFIS (Bitfield-Mask: 0x01) */ + #define R_GMAC_MMC_Receive_Interrupt_RXALGNERFIS_Pos (6UL) /*!< RXALGNERFIS (Bit 6) */ + #define R_GMAC_MMC_Receive_Interrupt_RXALGNERFIS_Msk (0x40UL) /*!< RXALGNERFIS (Bitfield-Mask: 0x01) */ + #define R_GMAC_MMC_Receive_Interrupt_RXRUNTFIS_Pos (7UL) /*!< RXRUNTFIS (Bit 7) */ + #define R_GMAC_MMC_Receive_Interrupt_RXRUNTFIS_Msk (0x80UL) /*!< RXRUNTFIS (Bitfield-Mask: 0x01) */ + #define R_GMAC_MMC_Receive_Interrupt_RXJABERFIS_Pos (8UL) /*!< RXJABERFIS (Bit 8) */ + #define R_GMAC_MMC_Receive_Interrupt_RXJABERFIS_Msk (0x100UL) /*!< RXJABERFIS (Bitfield-Mask: 0x01) */ + #define R_GMAC_MMC_Receive_Interrupt_RXUSIZEGFIS_Pos (9UL) /*!< RXUSIZEGFIS (Bit 9) */ + #define R_GMAC_MMC_Receive_Interrupt_RXUSIZEGFIS_Msk (0x200UL) /*!< RXUSIZEGFIS (Bitfield-Mask: 0x01) */ + #define R_GMAC_MMC_Receive_Interrupt_RXOSIZEGFIS_Pos (10UL) /*!< RXOSIZEGFIS (Bit 10) */ + #define R_GMAC_MMC_Receive_Interrupt_RXOSIZEGFIS_Msk (0x400UL) /*!< RXOSIZEGFIS (Bitfield-Mask: 0x01) */ + #define R_GMAC_MMC_Receive_Interrupt_RX64OCTGBFIS_Pos (11UL) /*!< RX64OCTGBFIS (Bit 11) */ + #define R_GMAC_MMC_Receive_Interrupt_RX64OCTGBFIS_Msk (0x800UL) /*!< RX64OCTGBFIS (Bitfield-Mask: 0x01) */ + #define R_GMAC_MMC_Receive_Interrupt_RX65T127OCTGBFIS_Pos (12UL) /*!< RX65T127OCTGBFIS (Bit 12) */ + #define R_GMAC_MMC_Receive_Interrupt_RX65T127OCTGBFIS_Msk (0x1000UL) /*!< RX65T127OCTGBFIS (Bitfield-Mask: 0x01) */ + #define R_GMAC_MMC_Receive_Interrupt_RX128T255OCTGBFIS_Pos (13UL) /*!< RX128T255OCTGBFIS (Bit 13) */ + #define R_GMAC_MMC_Receive_Interrupt_RX128T255OCTGBFIS_Msk (0x2000UL) /*!< RX128T255OCTGBFIS (Bitfield-Mask: 0x01) */ + #define R_GMAC_MMC_Receive_Interrupt_RX256T511OCTGBFIS_Pos (14UL) /*!< RX256T511OCTGBFIS (Bit 14) */ + #define R_GMAC_MMC_Receive_Interrupt_RX256T511OCTGBFIS_Msk (0x4000UL) /*!< RX256T511OCTGBFIS (Bitfield-Mask: 0x01) */ + #define R_GMAC_MMC_Receive_Interrupt_RX512T1023OCTGBFIS_Pos (15UL) /*!< RX512T1023OCTGBFIS (Bit 15) */ + #define R_GMAC_MMC_Receive_Interrupt_RX512T1023OCTGBFIS_Msk (0x8000UL) /*!< RX512T1023OCTGBFIS (Bitfield-Mask: 0x01) */ + #define R_GMAC_MMC_Receive_Interrupt_RX1024TMAXOCTGBFIS_Pos (16UL) /*!< RX1024TMAXOCTGBFIS (Bit 16) */ + #define R_GMAC_MMC_Receive_Interrupt_RX1024TMAXOCTGBFIS_Msk (0x10000UL) /*!< RX1024TMAXOCTGBFIS (Bitfield-Mask: 0x01) */ + #define R_GMAC_MMC_Receive_Interrupt_RXUCGFIS_Pos (17UL) /*!< RXUCGFIS (Bit 17) */ + #define R_GMAC_MMC_Receive_Interrupt_RXUCGFIS_Msk (0x20000UL) /*!< RXUCGFIS (Bitfield-Mask: 0x01) */ + #define R_GMAC_MMC_Receive_Interrupt_RXLENERFIS_Pos (18UL) /*!< RXLENERFIS (Bit 18) */ + #define R_GMAC_MMC_Receive_Interrupt_RXLENERFIS_Msk (0x40000UL) /*!< RXLENERFIS (Bitfield-Mask: 0x01) */ + #define R_GMAC_MMC_Receive_Interrupt_RXORANGEFIS_Pos (19UL) /*!< RXORANGEFIS (Bit 19) */ + #define R_GMAC_MMC_Receive_Interrupt_RXORANGEFIS_Msk (0x80000UL) /*!< RXORANGEFIS (Bitfield-Mask: 0x01) */ + #define R_GMAC_MMC_Receive_Interrupt_RXPAUSFIS_Pos (20UL) /*!< RXPAUSFIS (Bit 20) */ + #define R_GMAC_MMC_Receive_Interrupt_RXPAUSFIS_Msk (0x100000UL) /*!< RXPAUSFIS (Bitfield-Mask: 0x01) */ + #define R_GMAC_MMC_Receive_Interrupt_RXFOVFIS_Pos (21UL) /*!< RXFOVFIS (Bit 21) */ + #define R_GMAC_MMC_Receive_Interrupt_RXFOVFIS_Msk (0x200000UL) /*!< RXFOVFIS (Bitfield-Mask: 0x01) */ + #define R_GMAC_MMC_Receive_Interrupt_RXVLANGBFIS_Pos (22UL) /*!< RXVLANGBFIS (Bit 22) */ + #define R_GMAC_MMC_Receive_Interrupt_RXVLANGBFIS_Msk (0x400000UL) /*!< RXVLANGBFIS (Bitfield-Mask: 0x01) */ + #define R_GMAC_MMC_Receive_Interrupt_RXWDOGFIS_Pos (23UL) /*!< RXWDOGFIS (Bit 23) */ + #define R_GMAC_MMC_Receive_Interrupt_RXWDOGFIS_Msk (0x800000UL) /*!< RXWDOGFIS (Bitfield-Mask: 0x01) */ + #define R_GMAC_MMC_Receive_Interrupt_RXRCVERRFIS_Pos (24UL) /*!< RXRCVERRFIS (Bit 24) */ + #define R_GMAC_MMC_Receive_Interrupt_RXRCVERRFIS_Msk (0x1000000UL) /*!< RXRCVERRFIS (Bitfield-Mask: 0x01) */ + #define R_GMAC_MMC_Receive_Interrupt_RXCTRLFIS_Pos (25UL) /*!< RXCTRLFIS (Bit 25) */ + #define R_GMAC_MMC_Receive_Interrupt_RXCTRLFIS_Msk (0x2000000UL) /*!< RXCTRLFIS (Bitfield-Mask: 0x01) */ +/* ================================================ MMC_Transmit_Interrupt ================================================= */ + #define R_GMAC_MMC_Transmit_Interrupt_TXGBOCTIS_Pos (0UL) /*!< TXGBOCTIS (Bit 0) */ + #define R_GMAC_MMC_Transmit_Interrupt_TXGBOCTIS_Msk (0x1UL) /*!< TXGBOCTIS (Bitfield-Mask: 0x01) */ + #define R_GMAC_MMC_Transmit_Interrupt_TXGBFRMIS_Pos (1UL) /*!< TXGBFRMIS (Bit 1) */ + #define R_GMAC_MMC_Transmit_Interrupt_TXGBFRMIS_Msk (0x2UL) /*!< TXGBFRMIS (Bitfield-Mask: 0x01) */ + #define R_GMAC_MMC_Transmit_Interrupt_TXBCGFIS_Pos (2UL) /*!< TXBCGFIS (Bit 2) */ + #define R_GMAC_MMC_Transmit_Interrupt_TXBCGFIS_Msk (0x4UL) /*!< TXBCGFIS (Bitfield-Mask: 0x01) */ + #define R_GMAC_MMC_Transmit_Interrupt_TXMCGFIS_Pos (3UL) /*!< TXMCGFIS (Bit 3) */ + #define R_GMAC_MMC_Transmit_Interrupt_TXMCGFIS_Msk (0x8UL) /*!< TXMCGFIS (Bitfield-Mask: 0x01) */ + #define R_GMAC_MMC_Transmit_Interrupt_TX64OCTGBFIS_Pos (4UL) /*!< TX64OCTGBFIS (Bit 4) */ + #define R_GMAC_MMC_Transmit_Interrupt_TX64OCTGBFIS_Msk (0x10UL) /*!< TX64OCTGBFIS (Bitfield-Mask: 0x01) */ + #define R_GMAC_MMC_Transmit_Interrupt_TX65T127OCTGBFIS_Pos (5UL) /*!< TX65T127OCTGBFIS (Bit 5) */ + #define R_GMAC_MMC_Transmit_Interrupt_TX65T127OCTGBFIS_Msk (0x20UL) /*!< TX65T127OCTGBFIS (Bitfield-Mask: 0x01) */ + #define R_GMAC_MMC_Transmit_Interrupt_TX128T255OCTGBFIS_Pos (6UL) /*!< TX128T255OCTGBFIS (Bit 6) */ + #define R_GMAC_MMC_Transmit_Interrupt_TX128T255OCTGBFIS_Msk (0x40UL) /*!< TX128T255OCTGBFIS (Bitfield-Mask: 0x01) */ + #define R_GMAC_MMC_Transmit_Interrupt_TX256T511OCTGBFIS_Pos (7UL) /*!< TX256T511OCTGBFIS (Bit 7) */ + #define R_GMAC_MMC_Transmit_Interrupt_TX256T511OCTGBFIS_Msk (0x80UL) /*!< TX256T511OCTGBFIS (Bitfield-Mask: 0x01) */ + #define R_GMAC_MMC_Transmit_Interrupt_TX512T1023OCTGBFIS_Pos (8UL) /*!< TX512T1023OCTGBFIS (Bit 8) */ + #define R_GMAC_MMC_Transmit_Interrupt_TX512T1023OCTGBFIS_Msk (0x100UL) /*!< TX512T1023OCTGBFIS (Bitfield-Mask: 0x01) */ + #define R_GMAC_MMC_Transmit_Interrupt_TX1024TMAXOCTGBFIS_Pos (9UL) /*!< TX1024TMAXOCTGBFIS (Bit 9) */ + #define R_GMAC_MMC_Transmit_Interrupt_TX1024TMAXOCTGBFIS_Msk (0x200UL) /*!< TX1024TMAXOCTGBFIS (Bitfield-Mask: 0x01) */ + #define R_GMAC_MMC_Transmit_Interrupt_TXUCGBFIS_Pos (10UL) /*!< TXUCGBFIS (Bit 10) */ + #define R_GMAC_MMC_Transmit_Interrupt_TXUCGBFIS_Msk (0x400UL) /*!< TXUCGBFIS (Bitfield-Mask: 0x01) */ + #define R_GMAC_MMC_Transmit_Interrupt_TXMCGBFIS_Pos (11UL) /*!< TXMCGBFIS (Bit 11) */ + #define R_GMAC_MMC_Transmit_Interrupt_TXMCGBFIS_Msk (0x800UL) /*!< TXMCGBFIS (Bitfield-Mask: 0x01) */ + #define R_GMAC_MMC_Transmit_Interrupt_TXBCGBFIS_Pos (12UL) /*!< TXBCGBFIS (Bit 12) */ + #define R_GMAC_MMC_Transmit_Interrupt_TXBCGBFIS_Msk (0x1000UL) /*!< TXBCGBFIS (Bitfield-Mask: 0x01) */ + #define R_GMAC_MMC_Transmit_Interrupt_TXUFLOWERFIS_Pos (13UL) /*!< TXUFLOWERFIS (Bit 13) */ + #define R_GMAC_MMC_Transmit_Interrupt_TXUFLOWERFIS_Msk (0x2000UL) /*!< TXUFLOWERFIS (Bitfield-Mask: 0x01) */ + #define R_GMAC_MMC_Transmit_Interrupt_TXSCOLGFIS_Pos (14UL) /*!< TXSCOLGFIS (Bit 14) */ + #define R_GMAC_MMC_Transmit_Interrupt_TXSCOLGFIS_Msk (0x4000UL) /*!< TXSCOLGFIS (Bitfield-Mask: 0x01) */ + #define R_GMAC_MMC_Transmit_Interrupt_TXMCOLGFIS_Pos (15UL) /*!< TXMCOLGFIS (Bit 15) */ + #define R_GMAC_MMC_Transmit_Interrupt_TXMCOLGFIS_Msk (0x8000UL) /*!< TXMCOLGFIS (Bitfield-Mask: 0x01) */ + #define R_GMAC_MMC_Transmit_Interrupt_TXDEFFIS_Pos (16UL) /*!< TXDEFFIS (Bit 16) */ + #define R_GMAC_MMC_Transmit_Interrupt_TXDEFFIS_Msk (0x10000UL) /*!< TXDEFFIS (Bitfield-Mask: 0x01) */ + #define R_GMAC_MMC_Transmit_Interrupt_TXLATCOLFIS_Pos (17UL) /*!< TXLATCOLFIS (Bit 17) */ + #define R_GMAC_MMC_Transmit_Interrupt_TXLATCOLFIS_Msk (0x20000UL) /*!< TXLATCOLFIS (Bitfield-Mask: 0x01) */ + #define R_GMAC_MMC_Transmit_Interrupt_TXEXCOLFIS_Pos (18UL) /*!< TXEXCOLFIS (Bit 18) */ + #define R_GMAC_MMC_Transmit_Interrupt_TXEXCOLFIS_Msk (0x40000UL) /*!< TXEXCOLFIS (Bitfield-Mask: 0x01) */ + #define R_GMAC_MMC_Transmit_Interrupt_TXCARERFIS_Pos (19UL) /*!< TXCARERFIS (Bit 19) */ + #define R_GMAC_MMC_Transmit_Interrupt_TXCARERFIS_Msk (0x80000UL) /*!< TXCARERFIS (Bitfield-Mask: 0x01) */ + #define R_GMAC_MMC_Transmit_Interrupt_TXGOCTIS_Pos (20UL) /*!< TXGOCTIS (Bit 20) */ + #define R_GMAC_MMC_Transmit_Interrupt_TXGOCTIS_Msk (0x100000UL) /*!< TXGOCTIS (Bitfield-Mask: 0x01) */ + #define R_GMAC_MMC_Transmit_Interrupt_TXGFRMIS_Pos (21UL) /*!< TXGFRMIS (Bit 21) */ + #define R_GMAC_MMC_Transmit_Interrupt_TXGFRMIS_Msk (0x200000UL) /*!< TXGFRMIS (Bitfield-Mask: 0x01) */ + #define R_GMAC_MMC_Transmit_Interrupt_TXEXDEFFIS_Pos (22UL) /*!< TXEXDEFFIS (Bit 22) */ + #define R_GMAC_MMC_Transmit_Interrupt_TXEXDEFFIS_Msk (0x400000UL) /*!< TXEXDEFFIS (Bitfield-Mask: 0x01) */ + #define R_GMAC_MMC_Transmit_Interrupt_TXPAUSFIS_Pos (23UL) /*!< TXPAUSFIS (Bit 23) */ + #define R_GMAC_MMC_Transmit_Interrupt_TXPAUSFIS_Msk (0x800000UL) /*!< TXPAUSFIS (Bitfield-Mask: 0x01) */ + #define R_GMAC_MMC_Transmit_Interrupt_TXVLANGFIS_Pos (24UL) /*!< TXVLANGFIS (Bit 24) */ + #define R_GMAC_MMC_Transmit_Interrupt_TXVLANGFIS_Msk (0x1000000UL) /*!< TXVLANGFIS (Bitfield-Mask: 0x01) */ + #define R_GMAC_MMC_Transmit_Interrupt_TXOSIZEGFIS_Pos (25UL) /*!< TXOSIZEGFIS (Bit 25) */ + #define R_GMAC_MMC_Transmit_Interrupt_TXOSIZEGFIS_Msk (0x2000000UL) /*!< TXOSIZEGFIS (Bitfield-Mask: 0x01) */ +/* ============================================== MMC_Receive_Interrupt_Mask =============================================== */ + #define R_GMAC_MMC_Receive_Interrupt_Mask_RXGBFRMIM_Pos (0UL) /*!< RXGBFRMIM (Bit 0) */ + #define R_GMAC_MMC_Receive_Interrupt_Mask_RXGBFRMIM_Msk (0x1UL) /*!< RXGBFRMIM (Bitfield-Mask: 0x01) */ + #define R_GMAC_MMC_Receive_Interrupt_Mask_RXGBOCTIM_Pos (1UL) /*!< RXGBOCTIM (Bit 1) */ + #define R_GMAC_MMC_Receive_Interrupt_Mask_RXGBOCTIM_Msk (0x2UL) /*!< RXGBOCTIM (Bitfield-Mask: 0x01) */ + #define R_GMAC_MMC_Receive_Interrupt_Mask_RXGOCTIM_Pos (2UL) /*!< RXGOCTIM (Bit 2) */ + #define R_GMAC_MMC_Receive_Interrupt_Mask_RXGOCTIM_Msk (0x4UL) /*!< RXGOCTIM (Bitfield-Mask: 0x01) */ + #define R_GMAC_MMC_Receive_Interrupt_Mask_RXBCGFIM_Pos (3UL) /*!< RXBCGFIM (Bit 3) */ + #define R_GMAC_MMC_Receive_Interrupt_Mask_RXBCGFIM_Msk (0x8UL) /*!< RXBCGFIM (Bitfield-Mask: 0x01) */ + #define R_GMAC_MMC_Receive_Interrupt_Mask_RXMCGFIM_Pos (4UL) /*!< RXMCGFIM (Bit 4) */ + #define R_GMAC_MMC_Receive_Interrupt_Mask_RXMCGFIM_Msk (0x10UL) /*!< RXMCGFIM (Bitfield-Mask: 0x01) */ + #define R_GMAC_MMC_Receive_Interrupt_Mask_RXCRCERFIM_Pos (5UL) /*!< RXCRCERFIM (Bit 5) */ + #define R_GMAC_MMC_Receive_Interrupt_Mask_RXCRCERFIM_Msk (0x20UL) /*!< RXCRCERFIM (Bitfield-Mask: 0x01) */ + #define R_GMAC_MMC_Receive_Interrupt_Mask_RXALGNERFIM_Pos (6UL) /*!< RXALGNERFIM (Bit 6) */ + #define R_GMAC_MMC_Receive_Interrupt_Mask_RXALGNERFIM_Msk (0x40UL) /*!< RXALGNERFIM (Bitfield-Mask: 0x01) */ + #define R_GMAC_MMC_Receive_Interrupt_Mask_RXRUNTFIM_Pos (7UL) /*!< RXRUNTFIM (Bit 7) */ + #define R_GMAC_MMC_Receive_Interrupt_Mask_RXRUNTFIM_Msk (0x80UL) /*!< RXRUNTFIM (Bitfield-Mask: 0x01) */ + #define R_GMAC_MMC_Receive_Interrupt_Mask_RXJABERFIM_Pos (8UL) /*!< RXJABERFIM (Bit 8) */ + #define R_GMAC_MMC_Receive_Interrupt_Mask_RXJABERFIM_Msk (0x100UL) /*!< RXJABERFIM (Bitfield-Mask: 0x01) */ + #define R_GMAC_MMC_Receive_Interrupt_Mask_RXUSIZEGFIM_Pos (9UL) /*!< RXUSIZEGFIM (Bit 9) */ + #define R_GMAC_MMC_Receive_Interrupt_Mask_RXUSIZEGFIM_Msk (0x200UL) /*!< RXUSIZEGFIM (Bitfield-Mask: 0x01) */ + #define R_GMAC_MMC_Receive_Interrupt_Mask_RXOSIZEGFIM_Pos (10UL) /*!< RXOSIZEGFIM (Bit 10) */ + #define R_GMAC_MMC_Receive_Interrupt_Mask_RXOSIZEGFIM_Msk (0x400UL) /*!< RXOSIZEGFIM (Bitfield-Mask: 0x01) */ + #define R_GMAC_MMC_Receive_Interrupt_Mask_RX64OCTGBFIM_Pos (11UL) /*!< RX64OCTGBFIM (Bit 11) */ + #define R_GMAC_MMC_Receive_Interrupt_Mask_RX64OCTGBFIM_Msk (0x800UL) /*!< RX64OCTGBFIM (Bitfield-Mask: 0x01) */ + #define R_GMAC_MMC_Receive_Interrupt_Mask_RX65T127OCTGBFIM_Pos (12UL) /*!< RX65T127OCTGBFIM (Bit 12) */ + #define R_GMAC_MMC_Receive_Interrupt_Mask_RX65T127OCTGBFIM_Msk (0x1000UL) /*!< RX65T127OCTGBFIM (Bitfield-Mask: 0x01) */ + #define R_GMAC_MMC_Receive_Interrupt_Mask_RX128T255OCTGBFIM_Pos (13UL) /*!< RX128T255OCTGBFIM (Bit 13) */ + #define R_GMAC_MMC_Receive_Interrupt_Mask_RX128T255OCTGBFIM_Msk (0x2000UL) /*!< RX128T255OCTGBFIM (Bitfield-Mask: 0x01) */ + #define R_GMAC_MMC_Receive_Interrupt_Mask_RX256T511OCTGBFIM_Pos (14UL) /*!< RX256T511OCTGBFIM (Bit 14) */ + #define R_GMAC_MMC_Receive_Interrupt_Mask_RX256T511OCTGBFIM_Msk (0x4000UL) /*!< RX256T511OCTGBFIM (Bitfield-Mask: 0x01) */ + #define R_GMAC_MMC_Receive_Interrupt_Mask_RX512T1023OCTGBFIM_Pos (15UL) /*!< RX512T1023OCTGBFIM (Bit 15) */ + #define R_GMAC_MMC_Receive_Interrupt_Mask_RX512T1023OCTGBFIM_Msk (0x8000UL) /*!< RX512T1023OCTGBFIM (Bitfield-Mask: 0x01) */ + #define R_GMAC_MMC_Receive_Interrupt_Mask_RX1024TMAXOCTGBFIM_Pos (16UL) /*!< RX1024TMAXOCTGBFIM (Bit 16) */ + #define R_GMAC_MMC_Receive_Interrupt_Mask_RX1024TMAXOCTGBFIM_Msk (0x10000UL) /*!< RX1024TMAXOCTGBFIM (Bitfield-Mask: 0x01) */ + #define R_GMAC_MMC_Receive_Interrupt_Mask_RXUCGFIM_Pos (17UL) /*!< RXUCGFIM (Bit 17) */ + #define R_GMAC_MMC_Receive_Interrupt_Mask_RXUCGFIM_Msk (0x20000UL) /*!< RXUCGFIM (Bitfield-Mask: 0x01) */ + #define R_GMAC_MMC_Receive_Interrupt_Mask_RXLENERFIM_Pos (18UL) /*!< RXLENERFIM (Bit 18) */ + #define R_GMAC_MMC_Receive_Interrupt_Mask_RXLENERFIM_Msk (0x40000UL) /*!< RXLENERFIM (Bitfield-Mask: 0x01) */ + #define R_GMAC_MMC_Receive_Interrupt_Mask_RXORANGEFIM_Pos (19UL) /*!< RXORANGEFIM (Bit 19) */ + #define R_GMAC_MMC_Receive_Interrupt_Mask_RXORANGEFIM_Msk (0x80000UL) /*!< RXORANGEFIM (Bitfield-Mask: 0x01) */ + #define R_GMAC_MMC_Receive_Interrupt_Mask_RXPAUSFIM_Pos (20UL) /*!< RXPAUSFIM (Bit 20) */ + #define R_GMAC_MMC_Receive_Interrupt_Mask_RXPAUSFIM_Msk (0x100000UL) /*!< RXPAUSFIM (Bitfield-Mask: 0x01) */ + #define R_GMAC_MMC_Receive_Interrupt_Mask_RXFOVFIM_Pos (21UL) /*!< RXFOVFIM (Bit 21) */ + #define R_GMAC_MMC_Receive_Interrupt_Mask_RXFOVFIM_Msk (0x200000UL) /*!< RXFOVFIM (Bitfield-Mask: 0x01) */ + #define R_GMAC_MMC_Receive_Interrupt_Mask_RXVLANGBFIM_Pos (22UL) /*!< RXVLANGBFIM (Bit 22) */ + #define R_GMAC_MMC_Receive_Interrupt_Mask_RXVLANGBFIM_Msk (0x400000UL) /*!< RXVLANGBFIM (Bitfield-Mask: 0x01) */ + #define R_GMAC_MMC_Receive_Interrupt_Mask_RXWDOGFIM_Pos (23UL) /*!< RXWDOGFIM (Bit 23) */ + #define R_GMAC_MMC_Receive_Interrupt_Mask_RXWDOGFIM_Msk (0x800000UL) /*!< RXWDOGFIM (Bitfield-Mask: 0x01) */ + #define R_GMAC_MMC_Receive_Interrupt_Mask_RXRCVERRFIM_Pos (24UL) /*!< RXRCVERRFIM (Bit 24) */ + #define R_GMAC_MMC_Receive_Interrupt_Mask_RXRCVERRFIM_Msk (0x1000000UL) /*!< RXRCVERRFIM (Bitfield-Mask: 0x01) */ + #define R_GMAC_MMC_Receive_Interrupt_Mask_RXCTRLFIM_Pos (25UL) /*!< RXCTRLFIM (Bit 25) */ + #define R_GMAC_MMC_Receive_Interrupt_Mask_RXCTRLFIM_Msk (0x2000000UL) /*!< RXCTRLFIM (Bitfield-Mask: 0x01) */ +/* ============================================== MMC_Transmit_Interrupt_Mask ============================================== */ + #define R_GMAC_MMC_Transmit_Interrupt_Mask_TXGBOCTIM_Pos (0UL) /*!< TXGBOCTIM (Bit 0) */ + #define R_GMAC_MMC_Transmit_Interrupt_Mask_TXGBOCTIM_Msk (0x1UL) /*!< TXGBOCTIM (Bitfield-Mask: 0x01) */ + #define R_GMAC_MMC_Transmit_Interrupt_Mask_TXGBFRMIM_Pos (1UL) /*!< TXGBFRMIM (Bit 1) */ + #define R_GMAC_MMC_Transmit_Interrupt_Mask_TXGBFRMIM_Msk (0x2UL) /*!< TXGBFRMIM (Bitfield-Mask: 0x01) */ + #define R_GMAC_MMC_Transmit_Interrupt_Mask_TXBCGFIM_Pos (2UL) /*!< TXBCGFIM (Bit 2) */ + #define R_GMAC_MMC_Transmit_Interrupt_Mask_TXBCGFIM_Msk (0x4UL) /*!< TXBCGFIM (Bitfield-Mask: 0x01) */ + #define R_GMAC_MMC_Transmit_Interrupt_Mask_TXMCGFIM_Pos (3UL) /*!< TXMCGFIM (Bit 3) */ + #define R_GMAC_MMC_Transmit_Interrupt_Mask_TXMCGFIM_Msk (0x8UL) /*!< TXMCGFIM (Bitfield-Mask: 0x01) */ + #define R_GMAC_MMC_Transmit_Interrupt_Mask_TX64OCTGBFIM_Pos (4UL) /*!< TX64OCTGBFIM (Bit 4) */ + #define R_GMAC_MMC_Transmit_Interrupt_Mask_TX64OCTGBFIM_Msk (0x10UL) /*!< TX64OCTGBFIM (Bitfield-Mask: 0x01) */ + #define R_GMAC_MMC_Transmit_Interrupt_Mask_TX65T127OCTGBFIM_Pos (5UL) /*!< TX65T127OCTGBFIM (Bit 5) */ + #define R_GMAC_MMC_Transmit_Interrupt_Mask_TX65T127OCTGBFIM_Msk (0x20UL) /*!< TX65T127OCTGBFIM (Bitfield-Mask: 0x01) */ + #define R_GMAC_MMC_Transmit_Interrupt_Mask_TX128T255OCTGBFIM_Pos (6UL) /*!< TX128T255OCTGBFIM (Bit 6) */ + #define R_GMAC_MMC_Transmit_Interrupt_Mask_TX128T255OCTGBFIM_Msk (0x40UL) /*!< TX128T255OCTGBFIM (Bitfield-Mask: 0x01) */ + #define R_GMAC_MMC_Transmit_Interrupt_Mask_TX256T511OCTGBFIM_Pos (7UL) /*!< TX256T511OCTGBFIM (Bit 7) */ + #define R_GMAC_MMC_Transmit_Interrupt_Mask_TX256T511OCTGBFIM_Msk (0x80UL) /*!< TX256T511OCTGBFIM (Bitfield-Mask: 0x01) */ + #define R_GMAC_MMC_Transmit_Interrupt_Mask_TX512T1023OCTGBFIM_Pos (8UL) /*!< TX512T1023OCTGBFIM (Bit 8) */ + #define R_GMAC_MMC_Transmit_Interrupt_Mask_TX512T1023OCTGBFIM_Msk (0x100UL) /*!< TX512T1023OCTGBFIM (Bitfield-Mask: 0x01) */ + #define R_GMAC_MMC_Transmit_Interrupt_Mask_TX1024TMAXOCTGBFIM_Pos (9UL) /*!< TX1024TMAXOCTGBFIM (Bit 9) */ + #define R_GMAC_MMC_Transmit_Interrupt_Mask_TX1024TMAXOCTGBFIM_Msk (0x200UL) /*!< TX1024TMAXOCTGBFIM (Bitfield-Mask: 0x01) */ + #define R_GMAC_MMC_Transmit_Interrupt_Mask_TXUCGBFIM_Pos (10UL) /*!< TXUCGBFIM (Bit 10) */ + #define R_GMAC_MMC_Transmit_Interrupt_Mask_TXUCGBFIM_Msk (0x400UL) /*!< TXUCGBFIM (Bitfield-Mask: 0x01) */ + #define R_GMAC_MMC_Transmit_Interrupt_Mask_TXMCGBFIM_Pos (11UL) /*!< TXMCGBFIM (Bit 11) */ + #define R_GMAC_MMC_Transmit_Interrupt_Mask_TXMCGBFIM_Msk (0x800UL) /*!< TXMCGBFIM (Bitfield-Mask: 0x01) */ + #define R_GMAC_MMC_Transmit_Interrupt_Mask_TXBCGBFIM_Pos (12UL) /*!< TXBCGBFIM (Bit 12) */ + #define R_GMAC_MMC_Transmit_Interrupt_Mask_TXBCGBFIM_Msk (0x1000UL) /*!< TXBCGBFIM (Bitfield-Mask: 0x01) */ + #define R_GMAC_MMC_Transmit_Interrupt_Mask_TXUFLOWERFIM_Pos (13UL) /*!< TXUFLOWERFIM (Bit 13) */ + #define R_GMAC_MMC_Transmit_Interrupt_Mask_TXUFLOWERFIM_Msk (0x2000UL) /*!< TXUFLOWERFIM (Bitfield-Mask: 0x01) */ + #define R_GMAC_MMC_Transmit_Interrupt_Mask_TXSCOLGFIM_Pos (14UL) /*!< TXSCOLGFIM (Bit 14) */ + #define R_GMAC_MMC_Transmit_Interrupt_Mask_TXSCOLGFIM_Msk (0x4000UL) /*!< TXSCOLGFIM (Bitfield-Mask: 0x01) */ + #define R_GMAC_MMC_Transmit_Interrupt_Mask_TXMCOLGFIM_Pos (15UL) /*!< TXMCOLGFIM (Bit 15) */ + #define R_GMAC_MMC_Transmit_Interrupt_Mask_TXMCOLGFIM_Msk (0x8000UL) /*!< TXMCOLGFIM (Bitfield-Mask: 0x01) */ + #define R_GMAC_MMC_Transmit_Interrupt_Mask_TXDEFFIM_Pos (16UL) /*!< TXDEFFIM (Bit 16) */ + #define R_GMAC_MMC_Transmit_Interrupt_Mask_TXDEFFIM_Msk (0x10000UL) /*!< TXDEFFIM (Bitfield-Mask: 0x01) */ + #define R_GMAC_MMC_Transmit_Interrupt_Mask_TXLATCOLFIM_Pos (17UL) /*!< TXLATCOLFIM (Bit 17) */ + #define R_GMAC_MMC_Transmit_Interrupt_Mask_TXLATCOLFIM_Msk (0x20000UL) /*!< TXLATCOLFIM (Bitfield-Mask: 0x01) */ + #define R_GMAC_MMC_Transmit_Interrupt_Mask_TXEXCOLFIM_Pos (18UL) /*!< TXEXCOLFIM (Bit 18) */ + #define R_GMAC_MMC_Transmit_Interrupt_Mask_TXEXCOLFIM_Msk (0x40000UL) /*!< TXEXCOLFIM (Bitfield-Mask: 0x01) */ + #define R_GMAC_MMC_Transmit_Interrupt_Mask_TXCARERFIM_Pos (19UL) /*!< TXCARERFIM (Bit 19) */ + #define R_GMAC_MMC_Transmit_Interrupt_Mask_TXCARERFIM_Msk (0x80000UL) /*!< TXCARERFIM (Bitfield-Mask: 0x01) */ + #define R_GMAC_MMC_Transmit_Interrupt_Mask_TXGOCTIM_Pos (20UL) /*!< TXGOCTIM (Bit 20) */ + #define R_GMAC_MMC_Transmit_Interrupt_Mask_TXGOCTIM_Msk (0x100000UL) /*!< TXGOCTIM (Bitfield-Mask: 0x01) */ + #define R_GMAC_MMC_Transmit_Interrupt_Mask_TXGFRMIM_Pos (21UL) /*!< TXGFRMIM (Bit 21) */ + #define R_GMAC_MMC_Transmit_Interrupt_Mask_TXGFRMIM_Msk (0x200000UL) /*!< TXGFRMIM (Bitfield-Mask: 0x01) */ + #define R_GMAC_MMC_Transmit_Interrupt_Mask_TXEXDEFFIM_Pos (22UL) /*!< TXEXDEFFIM (Bit 22) */ + #define R_GMAC_MMC_Transmit_Interrupt_Mask_TXEXDEFFIM_Msk (0x400000UL) /*!< TXEXDEFFIM (Bitfield-Mask: 0x01) */ + #define R_GMAC_MMC_Transmit_Interrupt_Mask_TXPAUSFIM_Pos (23UL) /*!< TXPAUSFIM (Bit 23) */ + #define R_GMAC_MMC_Transmit_Interrupt_Mask_TXPAUSFIM_Msk (0x800000UL) /*!< TXPAUSFIM (Bitfield-Mask: 0x01) */ + #define R_GMAC_MMC_Transmit_Interrupt_Mask_TXVLANGFIM_Pos (24UL) /*!< TXVLANGFIM (Bit 24) */ + #define R_GMAC_MMC_Transmit_Interrupt_Mask_TXVLANGFIM_Msk (0x1000000UL) /*!< TXVLANGFIM (Bitfield-Mask: 0x01) */ + #define R_GMAC_MMC_Transmit_Interrupt_Mask_TXOSIZEGFIM_Pos (25UL) /*!< TXOSIZEGFIM (Bit 25) */ + #define R_GMAC_MMC_Transmit_Interrupt_Mask_TXOSIZEGFIM_Msk (0x2000000UL) /*!< TXOSIZEGFIM (Bitfield-Mask: 0x01) */ +/* ================================================ Tx_Octet_Count_Good_Bad ================================================ */ + #define R_GMAC_Tx_Octet_Count_Good_Bad_TXOCTGB_Pos (0UL) /*!< TXOCTGB (Bit 0) */ + #define R_GMAC_Tx_Octet_Count_Good_Bad_TXOCTGB_Msk (0xffffffffUL) /*!< TXOCTGB (Bitfield-Mask: 0xffffffff) */ +/* ================================================ Tx_Frame_Count_Good_Bad ================================================ */ + #define R_GMAC_Tx_Frame_Count_Good_Bad_TXFRMGB_Pos (0UL) /*!< TXFRMGB (Bit 0) */ + #define R_GMAC_Tx_Frame_Count_Good_Bad_TXFRMGB_Msk (0xffffffffUL) /*!< TXFRMGB (Bitfield-Mask: 0xffffffff) */ +/* =============================================== Tx_Broadcast_Frames_Good ================================================ */ + #define R_GMAC_Tx_Broadcast_Frames_Good_TXBCASTG_Pos (0UL) /*!< TXBCASTG (Bit 0) */ + #define R_GMAC_Tx_Broadcast_Frames_Good_TXBCASTG_Msk (0xffffffffUL) /*!< TXBCASTG (Bitfield-Mask: 0xffffffff) */ +/* =============================================== Tx_Multicast_Frames_Good ================================================ */ + #define R_GMAC_Tx_Multicast_Frames_Good_TXMCASTG_Pos (0UL) /*!< TXMCASTG (Bit 0) */ + #define R_GMAC_Tx_Multicast_Frames_Good_TXMCASTG_Msk (0xffffffffUL) /*!< TXMCASTG (Bitfield-Mask: 0xffffffff) */ +/* ============================================== Tx_64Octets_Frames_Good_Bad ============================================== */ + #define R_GMAC_Tx_64Octets_Frames_Good_Bad_TX64OCTGB_Pos (0UL) /*!< TX64OCTGB (Bit 0) */ + #define R_GMAC_Tx_64Octets_Frames_Good_Bad_TX64OCTGB_Msk (0xffffffffUL) /*!< TX64OCTGB (Bitfield-Mask: 0xffffffff) */ +/* =========================================== Tx_65To127Octets_Frames_Good_Bad ============================================ */ + #define R_GMAC_Tx_65To127Octets_Frames_Good_Bad_TX65_127OCTGB_Pos (0UL) /*!< TX65_127OCTGB (Bit 0) */ + #define R_GMAC_Tx_65To127Octets_Frames_Good_Bad_TX65_127OCTGB_Msk (0xffffffffUL) /*!< TX65_127OCTGB (Bitfield-Mask: 0xffffffff) */ +/* =========================================== Tx_128To255Octets_Frames_Good_Bad =========================================== */ + #define R_GMAC_Tx_128To255Octets_Frames_Good_Bad_TX128_255OCTGB_Pos (0UL) /*!< TX128_255OCTGB (Bit 0) */ + #define R_GMAC_Tx_128To255Octets_Frames_Good_Bad_TX128_255OCTGB_Msk (0xffffffffUL) /*!< TX128_255OCTGB (Bitfield-Mask: 0xffffffff) */ +/* =========================================== Tx_256To511Octets_Frames_Good_Bad =========================================== */ + #define R_GMAC_Tx_256To511Octets_Frames_Good_Bad_TX256_511OCTGB_Pos (0UL) /*!< TX256_511OCTGB (Bit 0) */ + #define R_GMAC_Tx_256To511Octets_Frames_Good_Bad_TX256_511OCTGB_Msk (0xffffffffUL) /*!< TX256_511OCTGB (Bitfield-Mask: 0xffffffff) */ +/* ========================================== Tx_512To1023Octets_Frames_Good_Bad =========================================== */ + #define R_GMAC_Tx_512To1023Octets_Frames_Good_Bad_TX512_1023OCTGB_Pos (0UL) /*!< TX512_1023OCTGB (Bit 0) */ + #define R_GMAC_Tx_512To1023Octets_Frames_Good_Bad_TX512_1023OCTGB_Msk (0xffffffffUL) /*!< TX512_1023OCTGB (Bitfield-Mask: 0xffffffff) */ +/* ========================================== Tx_1024ToMaxOctets_Frames_Good_Bad =========================================== */ + #define R_GMAC_Tx_1024ToMaxOctets_Frames_Good_Bad_TX1024_MAXOCTGB_Pos (0UL) /*!< TX1024_MAXOCTGB (Bit 0) */ + #define R_GMAC_Tx_1024ToMaxOctets_Frames_Good_Bad_TX1024_MAXOCTGB_Msk (0xffffffffUL) /*!< TX1024_MAXOCTGB (Bitfield-Mask: 0xffffffff) */ +/* ============================================== Tx_Unicast_Frames_Good_Bad =============================================== */ + #define R_GMAC_Tx_Unicast_Frames_Good_Bad_TXUCASTGB_Pos (0UL) /*!< TXUCASTGB (Bit 0) */ + #define R_GMAC_Tx_Unicast_Frames_Good_Bad_TXUCASTGB_Msk (0xffffffffUL) /*!< TXUCASTGB (Bitfield-Mask: 0xffffffff) */ +/* ============================================= Tx_Multicast_Frames_Good_Bad ============================================== */ + #define R_GMAC_Tx_Multicast_Frames_Good_Bad_TXMCASTGB_Pos (0UL) /*!< TXMCASTGB (Bit 0) */ + #define R_GMAC_Tx_Multicast_Frames_Good_Bad_TXMCASTGB_Msk (0xffffffffUL) /*!< TXMCASTGB (Bitfield-Mask: 0xffffffff) */ +/* ============================================= Tx_Broadcast_Frames_Good_Bad ============================================== */ + #define R_GMAC_Tx_Broadcast_Frames_Good_Bad_TXBCASTGB_Pos (0UL) /*!< TXBCASTGB (Bit 0) */ + #define R_GMAC_Tx_Broadcast_Frames_Good_Bad_TXBCASTGB_Msk (0xffffffffUL) /*!< TXBCASTGB (Bitfield-Mask: 0xffffffff) */ +/* =============================================== Tx_Underflow_Error_Frames =============================================== */ + #define R_GMAC_Tx_Underflow_Error_Frames_TXUNDRFLW_Pos (0UL) /*!< TXUNDRFLW (Bit 0) */ + #define R_GMAC_Tx_Underflow_Error_Frames_TXUNDRFLW_Msk (0xffffUL) /*!< TXUNDRFLW (Bitfield-Mask: 0xffff) */ +/* ============================================ Tx_Single_Collision_Good_Frames ============================================ */ + #define R_GMAC_Tx_Single_Collision_Good_Frames_TXSNGLCOLG_Pos (0UL) /*!< TXSNGLCOLG (Bit 0) */ + #define R_GMAC_Tx_Single_Collision_Good_Frames_TXSNGLCOLG_Msk (0xffffUL) /*!< TXSNGLCOLG (Bitfield-Mask: 0xffff) */ +/* =========================================== Tx_Multiple_Collision_Good_Frames =========================================== */ + #define R_GMAC_Tx_Multiple_Collision_Good_Frames_TXMULTCOLG_Pos (0UL) /*!< TXMULTCOLG (Bit 0) */ + #define R_GMAC_Tx_Multiple_Collision_Good_Frames_TXMULTCOLG_Msk (0xffffUL) /*!< TXMULTCOLG (Bitfield-Mask: 0xffff) */ +/* ================================================== Tx_Deferred_Frames =================================================== */ + #define R_GMAC_Tx_Deferred_Frames_TXDEFRD_Pos (0UL) /*!< TXDEFRD (Bit 0) */ + #define R_GMAC_Tx_Deferred_Frames_TXDEFRD_Msk (0xffffUL) /*!< TXDEFRD (Bitfield-Mask: 0xffff) */ +/* =============================================== Tx_Late_Collision_Frames ================================================ */ + #define R_GMAC_Tx_Late_Collision_Frames_TXLATECOL_Pos (0UL) /*!< TXLATECOL (Bit 0) */ + #define R_GMAC_Tx_Late_Collision_Frames_TXLATECOL_Msk (0xffffUL) /*!< TXLATECOL (Bitfield-Mask: 0xffff) */ +/* ============================================= Tx_Excessive_Collision_Frames ============================================= */ + #define R_GMAC_Tx_Excessive_Collision_Frames_TXEXSCOL_Pos (0UL) /*!< TXEXSCOL (Bit 0) */ + #define R_GMAC_Tx_Excessive_Collision_Frames_TXEXSCOL_Msk (0xffffUL) /*!< TXEXSCOL (Bitfield-Mask: 0xffff) */ +/* ================================================ Tx_Carrier_Error_Frames ================================================ */ + #define R_GMAC_Tx_Carrier_Error_Frames_TXCARR_Pos (0UL) /*!< TXCARR (Bit 0) */ + #define R_GMAC_Tx_Carrier_Error_Frames_TXCARR_Msk (0xffffUL) /*!< TXCARR (Bitfield-Mask: 0xffff) */ +/* ================================================== Tx_Octet_Count_Good ================================================== */ + #define R_GMAC_Tx_Octet_Count_Good_TXOCTG_Pos (0UL) /*!< TXOCTG (Bit 0) */ + #define R_GMAC_Tx_Octet_Count_Good_TXOCTG_Msk (0xffffffffUL) /*!< TXOCTG (Bitfield-Mask: 0xffffffff) */ +/* ================================================== Tx_Frame_Count_Good ================================================== */ + #define R_GMAC_Tx_Frame_Count_Good_TXFRMG_Pos (0UL) /*!< TXFRMG (Bit 0) */ + #define R_GMAC_Tx_Frame_Count_Good_TXFRMG_Msk (0xffffffffUL) /*!< TXFRMG (Bitfield-Mask: 0xffffffff) */ +/* ============================================== Tx_Excessive_Deferral_Error ============================================== */ + #define R_GMAC_Tx_Excessive_Deferral_Error_TXEXSDEF_Pos (0UL) /*!< TXEXSDEF (Bit 0) */ + #define R_GMAC_Tx_Excessive_Deferral_Error_TXEXSDEF_Msk (0xffffUL) /*!< TXEXSDEF (Bitfield-Mask: 0xffff) */ +/* ==================================================== Tx_Pause_Frames ==================================================== */ + #define R_GMAC_Tx_Pause_Frames_TXPAUSE_Pos (0UL) /*!< TXPAUSE (Bit 0) */ + #define R_GMAC_Tx_Pause_Frames_TXPAUSE_Msk (0xffffUL) /*!< TXPAUSE (Bitfield-Mask: 0xffff) */ +/* ================================================== Tx_VLAN_Frames_Good ================================================== */ + #define R_GMAC_Tx_VLAN_Frames_Good_TXVLANG_Pos (0UL) /*!< TXVLANG (Bit 0) */ + #define R_GMAC_Tx_VLAN_Frames_Good_TXVLANG_Msk (0xffffffffUL) /*!< TXVLANG (Bitfield-Mask: 0xffffffff) */ +/* ================================================= Tx_OSize_Frames_Good ================================================== */ + #define R_GMAC_Tx_OSize_Frames_Good_TXOSIZG_Pos (0UL) /*!< TXOSIZG (Bit 0) */ + #define R_GMAC_Tx_OSize_Frames_Good_TXOSIZG_Msk (0xffffUL) /*!< TXOSIZG (Bitfield-Mask: 0xffff) */ +/* =============================================== Rx_Frames_Count_Good_Bad ================================================ */ + #define R_GMAC_Rx_Frames_Count_Good_Bad_RXFRMGB_Pos (0UL) /*!< RXFRMGB (Bit 0) */ + #define R_GMAC_Rx_Frames_Count_Good_Bad_RXFRMGB_Msk (0xffffffffUL) /*!< RXFRMGB (Bitfield-Mask: 0xffffffff) */ +/* ================================================ Rx_Octet_Count_Good_Bad ================================================ */ + #define R_GMAC_Rx_Octet_Count_Good_Bad_RXOCTGB_Pos (0UL) /*!< RXOCTGB (Bit 0) */ + #define R_GMAC_Rx_Octet_Count_Good_Bad_RXOCTGB_Msk (0xffffffffUL) /*!< RXOCTGB (Bitfield-Mask: 0xffffffff) */ +/* ================================================== Rx_Octet_Count_Good ================================================== */ + #define R_GMAC_Rx_Octet_Count_Good_RXOCTG_Pos (0UL) /*!< RXOCTG (Bit 0) */ + #define R_GMAC_Rx_Octet_Count_Good_RXOCTG_Msk (0xffffffffUL) /*!< RXOCTG (Bitfield-Mask: 0xffffffff) */ +/* =============================================== Rx_Broadcast_Frames_Good ================================================ */ + #define R_GMAC_Rx_Broadcast_Frames_Good_RXBCASTG_Pos (0UL) /*!< RXBCASTG (Bit 0) */ + #define R_GMAC_Rx_Broadcast_Frames_Good_RXBCASTG_Msk (0xffffffffUL) /*!< RXBCASTG (Bitfield-Mask: 0xffffffff) */ +/* =============================================== Rx_Multicast_Frames_Good ================================================ */ + #define R_GMAC_Rx_Multicast_Frames_Good_RXMCASTG_Pos (0UL) /*!< RXMCASTG (Bit 0) */ + #define R_GMAC_Rx_Multicast_Frames_Good_RXMCASTG_Msk (0xffffffffUL) /*!< RXMCASTG (Bitfield-Mask: 0xffffffff) */ +/* ================================================== Rx_CRC_Error_Frames ================================================== */ + #define R_GMAC_Rx_CRC_Error_Frames_RXCRCERR_Pos (0UL) /*!< RXCRCERR (Bit 0) */ + #define R_GMAC_Rx_CRC_Error_Frames_RXCRCERR_Msk (0xffffUL) /*!< RXCRCERR (Bitfield-Mask: 0xffff) */ +/* =============================================== Rx_Alignment_Error_Frames =============================================== */ + #define R_GMAC_Rx_Alignment_Error_Frames_RXALGNERR_Pos (0UL) /*!< RXALGNERR (Bit 0) */ + #define R_GMAC_Rx_Alignment_Error_Frames_RXALGNERR_Msk (0xffffUL) /*!< RXALGNERR (Bitfield-Mask: 0xffff) */ +/* ================================================= Rx_Runt_Error_Frames ================================================== */ + #define R_GMAC_Rx_Runt_Error_Frames_RXRUNTERR_Pos (0UL) /*!< RXRUNTERR (Bit 0) */ + #define R_GMAC_Rx_Runt_Error_Frames_RXRUNTERR_Msk (0xffffUL) /*!< RXRUNTERR (Bitfield-Mask: 0xffff) */ +/* ================================================ Rx_Jabber_Error_Frames ================================================= */ + #define R_GMAC_Rx_Jabber_Error_Frames_RXJABERR_Pos (0UL) /*!< RXJABERR (Bit 0) */ + #define R_GMAC_Rx_Jabber_Error_Frames_RXJABERR_Msk (0xffffUL) /*!< RXJABERR (Bitfield-Mask: 0xffff) */ +/* =============================================== Rx_Undersize_Frames_Good ================================================ */ + #define R_GMAC_Rx_Undersize_Frames_Good_RXUNDERSZG_Pos (0UL) /*!< RXUNDERSZG (Bit 0) */ + #define R_GMAC_Rx_Undersize_Frames_Good_RXUNDERSZG_Msk (0xffffUL) /*!< RXUNDERSZG (Bitfield-Mask: 0xffff) */ +/* ================================================ Rx_Oversize_Frames_Good ================================================ */ + #define R_GMAC_Rx_Oversize_Frames_Good_RXOVERSZG_Pos (0UL) /*!< RXOVERSZG (Bit 0) */ + #define R_GMAC_Rx_Oversize_Frames_Good_RXOVERSZG_Msk (0xffffUL) /*!< RXOVERSZG (Bitfield-Mask: 0xffff) */ +/* ============================================== Rx_64Octets_Frames_Good_Bad ============================================== */ + #define R_GMAC_Rx_64Octets_Frames_Good_Bad_RX64OCTGB_Pos (0UL) /*!< RX64OCTGB (Bit 0) */ + #define R_GMAC_Rx_64Octets_Frames_Good_Bad_RX64OCTGB_Msk (0xffffffffUL) /*!< RX64OCTGB (Bitfield-Mask: 0xffffffff) */ +/* =========================================== Rx_65To127Octets_Frames_Good_Bad ============================================ */ + #define R_GMAC_Rx_65To127Octets_Frames_Good_Bad_RX65_127OCTGB_Pos (0UL) /*!< RX65_127OCTGB (Bit 0) */ + #define R_GMAC_Rx_65To127Octets_Frames_Good_Bad_RX65_127OCTGB_Msk (0xffffffffUL) /*!< RX65_127OCTGB (Bitfield-Mask: 0xffffffff) */ +/* =========================================== Rx_128To255Octets_Frames_Good_Bad =========================================== */ + #define R_GMAC_Rx_128To255Octets_Frames_Good_Bad_RX128_255OCTGB_Pos (0UL) /*!< RX128_255OCTGB (Bit 0) */ + #define R_GMAC_Rx_128To255Octets_Frames_Good_Bad_RX128_255OCTGB_Msk (0xffffffffUL) /*!< RX128_255OCTGB (Bitfield-Mask: 0xffffffff) */ +/* =========================================== Rx_256To511Octets_Frames_Good_Bad =========================================== */ + #define R_GMAC_Rx_256To511Octets_Frames_Good_Bad_RX256_511OCTGB_Pos (0UL) /*!< RX256_511OCTGB (Bit 0) */ + #define R_GMAC_Rx_256To511Octets_Frames_Good_Bad_RX256_511OCTGB_Msk (0xffffffffUL) /*!< RX256_511OCTGB (Bitfield-Mask: 0xffffffff) */ +/* ========================================== Rx_512To1023Octets_Frames_Good_Bad =========================================== */ + #define R_GMAC_Rx_512To1023Octets_Frames_Good_Bad_RX512_1023OCTGB_Pos (0UL) /*!< RX512_1023OCTGB (Bit 0) */ + #define R_GMAC_Rx_512To1023Octets_Frames_Good_Bad_RX512_1023OCTGB_Msk (0xffffffffUL) /*!< RX512_1023OCTGB (Bitfield-Mask: 0xffffffff) */ +/* ========================================== Rx_1024ToMaxOctets_Frames_Good_Bad =========================================== */ + #define R_GMAC_Rx_1024ToMaxOctets_Frames_Good_Bad_RX1024_MAXOCTGB_Pos (0UL) /*!< RX1024_MAXOCTGB (Bit 0) */ + #define R_GMAC_Rx_1024ToMaxOctets_Frames_Good_Bad_RX1024_MAXOCTGB_Msk (0xffffffffUL) /*!< RX1024_MAXOCTGB (Bitfield-Mask: 0xffffffff) */ +/* ================================================ Rx_Unicast_Frames_Good ================================================= */ + #define R_GMAC_Rx_Unicast_Frames_Good_RXUCASTG_Pos (0UL) /*!< RXUCASTG (Bit 0) */ + #define R_GMAC_Rx_Unicast_Frames_Good_RXUCASTG_Msk (0xffffffffUL) /*!< RXUCASTG (Bitfield-Mask: 0xffffffff) */ +/* ================================================ Rx_Length_Error_Frames ================================================= */ + #define R_GMAC_Rx_Length_Error_Frames_RXLENERR_Pos (0UL) /*!< RXLENERR (Bit 0) */ + #define R_GMAC_Rx_Length_Error_Frames_RXLENERR_Msk (0xffffUL) /*!< RXLENERR (Bitfield-Mask: 0xffff) */ +/* ============================================== Rx_Out_Of_Range_Type_Frames ============================================== */ + #define R_GMAC_Rx_Out_Of_Range_Type_Frames_RXOUTOFRNG_Pos (0UL) /*!< RXOUTOFRNG (Bit 0) */ + #define R_GMAC_Rx_Out_Of_Range_Type_Frames_RXOUTOFRNG_Msk (0xffffUL) /*!< RXOUTOFRNG (Bitfield-Mask: 0xffff) */ +/* ==================================================== Rx_Pause_Frames ==================================================== */ + #define R_GMAC_Rx_Pause_Frames_RXPAUSEFRM_Pos (0UL) /*!< RXPAUSEFRM (Bit 0) */ + #define R_GMAC_Rx_Pause_Frames_RXPAUSEFRM_Msk (0xffffUL) /*!< RXPAUSEFRM (Bitfield-Mask: 0xffff) */ +/* ================================================ Rx_FIFO_Overflow_Frames ================================================ */ + #define R_GMAC_Rx_FIFO_Overflow_Frames_RXFIFOOVFL_Pos (0UL) /*!< RXFIFOOVFL (Bit 0) */ + #define R_GMAC_Rx_FIFO_Overflow_Frames_RXFIFOOVFL_Msk (0xffffUL) /*!< RXFIFOOVFL (Bitfield-Mask: 0xffff) */ +/* ================================================ Rx_VLAN_Frames_Good_Bad ================================================ */ + #define R_GMAC_Rx_VLAN_Frames_Good_Bad_RXVLANFRGB_Pos (0UL) /*!< RXVLANFRGB (Bit 0) */ + #define R_GMAC_Rx_VLAN_Frames_Good_Bad_RXVLANFRGB_Msk (0xffffffffUL) /*!< RXVLANFRGB (Bitfield-Mask: 0xffffffff) */ +/* =============================================== Rx_Watchdog_Error_Frames ================================================ */ + #define R_GMAC_Rx_Watchdog_Error_Frames_RXWDGERR_Pos (0UL) /*!< RXWDGERR (Bit 0) */ + #define R_GMAC_Rx_Watchdog_Error_Frames_RXWDGERR_Msk (0xffffUL) /*!< RXWDGERR (Bitfield-Mask: 0xffff) */ +/* ================================================ Rx_Receive_Error_Frames ================================================ */ + #define R_GMAC_Rx_Receive_Error_Frames_RXRCVERR_Pos (0UL) /*!< RXRCVERR (Bit 0) */ + #define R_GMAC_Rx_Receive_Error_Frames_RXRCVERR_Msk (0xffffUL) /*!< RXRCVERR (Bitfield-Mask: 0xffff) */ +/* ================================================ Rx_Control_Frames_Good ================================================= */ + #define R_GMAC_Rx_Control_Frames_Good_RXCTRLG_Pos (0UL) /*!< RXCTRLG (Bit 0) */ + #define R_GMAC_Rx_Control_Frames_Good_RXCTRLG_Msk (0xffffffffUL) /*!< RXCTRLG (Bitfield-Mask: 0xffffffff) */ +/* ====================================================== GMACTRGSEL ======================================================= */ + #define R_GMAC_GMACTRGSEL_TRGSEL_Pos (0UL) /*!< TRGSEL (Bit 0) */ + #define R_GMAC_GMACTRGSEL_TRGSEL_Msk (0x3UL) /*!< TRGSEL (Bitfield-Mask: 0x03) */ +/* ==================================================== HASH_TABLE_REG ===================================================== */ + #define R_GMAC_HASH_TABLE_REG_HT_Pos (0UL) /*!< HT (Bit 0) */ + #define R_GMAC_HASH_TABLE_REG_HT_Msk (0xffffffffUL) /*!< HT (Bitfield-Mask: 0xffffffff) */ +/* ================================================== VLAN_Hash_Table_Reg ================================================== */ + #define R_GMAC_VLAN_Hash_Table_Reg_VLHT_Pos (0UL) /*!< VLHT (Bit 0) */ + #define R_GMAC_VLAN_Hash_Table_Reg_VLHT_Msk (0xffffUL) /*!< VLHT (Bitfield-Mask: 0xffff) */ +/* =================================================== Timestamp_Control =================================================== */ + #define R_GMAC_Timestamp_Control_TSENA_Pos (0UL) /*!< TSENA (Bit 0) */ + #define R_GMAC_Timestamp_Control_TSENA_Msk (0x1UL) /*!< TSENA (Bitfield-Mask: 0x01) */ + #define R_GMAC_Timestamp_Control_TSENALL_Pos (8UL) /*!< TSENALL (Bit 8) */ + #define R_GMAC_Timestamp_Control_TSENALL_Msk (0x100UL) /*!< TSENALL (Bitfield-Mask: 0x01) */ + #define R_GMAC_Timestamp_Control_TSCTRLSSR_Pos (9UL) /*!< TSCTRLSSR (Bit 9) */ + #define R_GMAC_Timestamp_Control_TSCTRLSSR_Msk (0x200UL) /*!< TSCTRLSSR (Bitfield-Mask: 0x01) */ + #define R_GMAC_Timestamp_Control_TSVER2ENA_Pos (10UL) /*!< TSVER2ENA (Bit 10) */ + #define R_GMAC_Timestamp_Control_TSVER2ENA_Msk (0x400UL) /*!< TSVER2ENA (Bitfield-Mask: 0x01) */ + #define R_GMAC_Timestamp_Control_TSIPENA_Pos (11UL) /*!< TSIPENA (Bit 11) */ + #define R_GMAC_Timestamp_Control_TSIPENA_Msk (0x800UL) /*!< TSIPENA (Bitfield-Mask: 0x01) */ + #define R_GMAC_Timestamp_Control_TSIPV6ENA_Pos (12UL) /*!< TSIPV6ENA (Bit 12) */ + #define R_GMAC_Timestamp_Control_TSIPV6ENA_Msk (0x1000UL) /*!< TSIPV6ENA (Bitfield-Mask: 0x01) */ + #define R_GMAC_Timestamp_Control_TSIPV4ENA_Pos (13UL) /*!< TSIPV4ENA (Bit 13) */ + #define R_GMAC_Timestamp_Control_TSIPV4ENA_Msk (0x2000UL) /*!< TSIPV4ENA (Bitfield-Mask: 0x01) */ + #define R_GMAC_Timestamp_Control_TSEVNTENA_Pos (14UL) /*!< TSEVNTENA (Bit 14) */ + #define R_GMAC_Timestamp_Control_TSEVNTENA_Msk (0x4000UL) /*!< TSEVNTENA (Bitfield-Mask: 0x01) */ + #define R_GMAC_Timestamp_Control_TSMSTRENA_Pos (15UL) /*!< TSMSTRENA (Bit 15) */ + #define R_GMAC_Timestamp_Control_TSMSTRENA_Msk (0x8000UL) /*!< TSMSTRENA (Bitfield-Mask: 0x01) */ + #define R_GMAC_Timestamp_Control_SNAPTYPSEL_Pos (16UL) /*!< SNAPTYPSEL (Bit 16) */ + #define R_GMAC_Timestamp_Control_SNAPTYPSEL_Msk (0x30000UL) /*!< SNAPTYPSEL (Bitfield-Mask: 0x03) */ + #define R_GMAC_Timestamp_Control_TSENMACADDR_Pos (18UL) /*!< TSENMACADDR (Bit 18) */ + #define R_GMAC_Timestamp_Control_TSENMACADDR_Msk (0x40000UL) /*!< TSENMACADDR (Bitfield-Mask: 0x01) */ + #define R_GMAC_Timestamp_Control_ATSFC_Pos (24UL) /*!< ATSFC (Bit 24) */ + #define R_GMAC_Timestamp_Control_ATSFC_Msk (0x1000000UL) /*!< ATSFC (Bitfield-Mask: 0x01) */ + #define R_GMAC_Timestamp_Control_ATSEN0_Pos (25UL) /*!< ATSEN0 (Bit 25) */ + #define R_GMAC_Timestamp_Control_ATSEN0_Msk (0x2000000UL) /*!< ATSEN0 (Bitfield-Mask: 0x01) */ + #define R_GMAC_Timestamp_Control_ATSEN1_Pos (26UL) /*!< ATSEN1 (Bit 26) */ + #define R_GMAC_Timestamp_Control_ATSEN1_Msk (0x4000000UL) /*!< ATSEN1 (Bitfield-Mask: 0x01) */ +/* =================================================== Timestamp_Status ==================================================== */ + #define R_GMAC_Timestamp_Status_AUXTSTRIG_Pos (2UL) /*!< AUXTSTRIG (Bit 2) */ + #define R_GMAC_Timestamp_Status_AUXTSTRIG_Msk (0x4UL) /*!< AUXTSTRIG (Bitfield-Mask: 0x01) */ + #define R_GMAC_Timestamp_Status_ATSSTN_Pos (16UL) /*!< ATSSTN (Bit 16) */ + #define R_GMAC_Timestamp_Status_ATSSTN_Msk (0xf0000UL) /*!< ATSSTN (Bitfield-Mask: 0x0f) */ + #define R_GMAC_Timestamp_Status_ATSSTM_Pos (24UL) /*!< ATSSTM (Bit 24) */ + #define R_GMAC_Timestamp_Status_ATSSTM_Msk (0x1000000UL) /*!< ATSSTM (Bitfield-Mask: 0x01) */ + #define R_GMAC_Timestamp_Status_ATSNS_Pos (25UL) /*!< ATSNS (Bit 25) */ + #define R_GMAC_Timestamp_Status_ATSNS_Msk (0x3e000000UL) /*!< ATSNS (Bitfield-Mask: 0x1f) */ +/* ============================================ Auxiliary_Timestamp_Nanoseconds ============================================ */ + #define R_GMAC_Auxiliary_Timestamp_Nanoseconds_AUXTSLO_Pos (0UL) /*!< AUXTSLO (Bit 0) */ + #define R_GMAC_Auxiliary_Timestamp_Nanoseconds_AUXTSLO_Msk (0x7fffffffUL) /*!< AUXTSLO (Bitfield-Mask: 0x7fffffff) */ +/* ============================================== Auxiliary_Timestamp_Seconds ============================================== */ + #define R_GMAC_Auxiliary_Timestamp_Seconds_AUXTSHI_Pos (0UL) /*!< AUXTSHI (Bit 0) */ + #define R_GMAC_Auxiliary_Timestamp_Seconds_AUXTSHI_Msk (0xffffffffUL) /*!< AUXTSHI (Bitfield-Mask: 0xffffffff) */ +/* ======================================================== MAR16_H ======================================================== */ + #define R_GMAC_MAR16_H_ADDRHI_Pos (0UL) /*!< ADDRHI (Bit 0) */ + #define R_GMAC_MAR16_H_ADDRHI_Msk (0xffffUL) /*!< ADDRHI (Bitfield-Mask: 0xffff) */ + #define R_GMAC_MAR16_H_MBC_Pos (24UL) /*!< MBC (Bit 24) */ + #define R_GMAC_MAR16_H_MBC_Msk (0x3f000000UL) /*!< MBC (Bitfield-Mask: 0x3f) */ + #define R_GMAC_MAR16_H_SA_Pos (30UL) /*!< SA (Bit 30) */ + #define R_GMAC_MAR16_H_SA_Msk (0x40000000UL) /*!< SA (Bitfield-Mask: 0x01) */ + #define R_GMAC_MAR16_H_AE_Pos (31UL) /*!< AE (Bit 31) */ + #define R_GMAC_MAR16_H_AE_Msk (0x80000000UL) /*!< AE (Bitfield-Mask: 0x01) */ +/* ======================================================== MAR16_L ======================================================== */ + #define R_GMAC_MAR16_L_ADDRLO_Pos (0UL) /*!< ADDRLO (Bit 0) */ + #define R_GMAC_MAR16_L_ADDRLO_Msk (0xffffffffUL) /*!< ADDRLO (Bitfield-Mask: 0xffffffff) */ +/* ======================================================== MAR17_H ======================================================== */ + #define R_GMAC_MAR17_H_ADDRHI_Pos (0UL) /*!< ADDRHI (Bit 0) */ + #define R_GMAC_MAR17_H_ADDRHI_Msk (0xffffUL) /*!< ADDRHI (Bitfield-Mask: 0xffff) */ + #define R_GMAC_MAR17_H_MBC_Pos (24UL) /*!< MBC (Bit 24) */ + #define R_GMAC_MAR17_H_MBC_Msk (0x3f000000UL) /*!< MBC (Bitfield-Mask: 0x3f) */ + #define R_GMAC_MAR17_H_SA_Pos (30UL) /*!< SA (Bit 30) */ + #define R_GMAC_MAR17_H_SA_Msk (0x40000000UL) /*!< SA (Bitfield-Mask: 0x01) */ + #define R_GMAC_MAR17_H_AE_Pos (31UL) /*!< AE (Bit 31) */ + #define R_GMAC_MAR17_H_AE_Msk (0x80000000UL) /*!< AE (Bitfield-Mask: 0x01) */ +/* ======================================================== MAR17_L ======================================================== */ + #define R_GMAC_MAR17_L_ADDRLO_Pos (0UL) /*!< ADDRLO (Bit 0) */ + #define R_GMAC_MAR17_L_ADDRLO_Msk (0xffffffffUL) /*!< ADDRLO (Bitfield-Mask: 0xffffffff) */ +/* ======================================================= Bus_Mode ======================================================== */ + #define R_GMAC_Bus_Mode_SWR_Pos (0UL) /*!< SWR (Bit 0) */ + #define R_GMAC_Bus_Mode_SWR_Msk (0x1UL) /*!< SWR (Bitfield-Mask: 0x01) */ + #define R_GMAC_Bus_Mode_DA_Pos (1UL) /*!< DA (Bit 1) */ + #define R_GMAC_Bus_Mode_DA_Msk (0x2UL) /*!< DA (Bitfield-Mask: 0x01) */ + #define R_GMAC_Bus_Mode_DSL_Pos (2UL) /*!< DSL (Bit 2) */ + #define R_GMAC_Bus_Mode_DSL_Msk (0x7cUL) /*!< DSL (Bitfield-Mask: 0x1f) */ + #define R_GMAC_Bus_Mode_ATDS_Pos (7UL) /*!< ATDS (Bit 7) */ + #define R_GMAC_Bus_Mode_ATDS_Msk (0x80UL) /*!< ATDS (Bitfield-Mask: 0x01) */ + #define R_GMAC_Bus_Mode_PBL_Pos (8UL) /*!< PBL (Bit 8) */ + #define R_GMAC_Bus_Mode_PBL_Msk (0x3f00UL) /*!< PBL (Bitfield-Mask: 0x3f) */ + #define R_GMAC_Bus_Mode_PR_Pos (14UL) /*!< PR (Bit 14) */ + #define R_GMAC_Bus_Mode_PR_Msk (0xc000UL) /*!< PR (Bitfield-Mask: 0x03) */ + #define R_GMAC_Bus_Mode_FB_Pos (16UL) /*!< FB (Bit 16) */ + #define R_GMAC_Bus_Mode_FB_Msk (0x10000UL) /*!< FB (Bitfield-Mask: 0x01) */ + #define R_GMAC_Bus_Mode_RPBL_Pos (17UL) /*!< RPBL (Bit 17) */ + #define R_GMAC_Bus_Mode_RPBL_Msk (0x7e0000UL) /*!< RPBL (Bitfield-Mask: 0x3f) */ + #define R_GMAC_Bus_Mode_USP_Pos (23UL) /*!< USP (Bit 23) */ + #define R_GMAC_Bus_Mode_USP_Msk (0x800000UL) /*!< USP (Bitfield-Mask: 0x01) */ + #define R_GMAC_Bus_Mode_PBLx8_Pos (24UL) /*!< PBLx8 (Bit 24) */ + #define R_GMAC_Bus_Mode_PBLx8_Msk (0x1000000UL) /*!< PBLx8 (Bitfield-Mask: 0x01) */ + #define R_GMAC_Bus_Mode_AAL_Pos (25UL) /*!< AAL (Bit 25) */ + #define R_GMAC_Bus_Mode_AAL_Msk (0x2000000UL) /*!< AAL (Bitfield-Mask: 0x01) */ + #define R_GMAC_Bus_Mode_MB_Pos (26UL) /*!< MB (Bit 26) */ + #define R_GMAC_Bus_Mode_MB_Msk (0x4000000UL) /*!< MB (Bitfield-Mask: 0x01) */ + #define R_GMAC_Bus_Mode_TXPR_Pos (27UL) /*!< TXPR (Bit 27) */ + #define R_GMAC_Bus_Mode_TXPR_Msk (0x8000000UL) /*!< TXPR (Bitfield-Mask: 0x01) */ + #define R_GMAC_Bus_Mode_PRWG_Pos (28UL) /*!< PRWG (Bit 28) */ + #define R_GMAC_Bus_Mode_PRWG_Msk (0x30000000UL) /*!< PRWG (Bitfield-Mask: 0x03) */ + #define R_GMAC_Bus_Mode_RIB_Pos (31UL) /*!< RIB (Bit 31) */ + #define R_GMAC_Bus_Mode_RIB_Msk (0x80000000UL) /*!< RIB (Bitfield-Mask: 0x01) */ +/* ================================================= Transmit_Poll_Demand ================================================== */ + #define R_GMAC_Transmit_Poll_Demand_TPD_Pos (0UL) /*!< TPD (Bit 0) */ + #define R_GMAC_Transmit_Poll_Demand_TPD_Msk (0xffffffffUL) /*!< TPD (Bitfield-Mask: 0xffffffff) */ +/* ================================================== Receive_Poll_Demand ================================================== */ + #define R_GMAC_Receive_Poll_Demand_RPD_Pos (0UL) /*!< RPD (Bit 0) */ + #define R_GMAC_Receive_Poll_Demand_RPD_Msk (0xffffffffUL) /*!< RPD (Bitfield-Mask: 0xffffffff) */ +/* ============================================ Receive_Descriptor_List_Address ============================================ */ + #define R_GMAC_Receive_Descriptor_List_Address_RDESLA_32bit_Pos (2UL) /*!< RDESLA_32bit (Bit 2) */ + #define R_GMAC_Receive_Descriptor_List_Address_RDESLA_32bit_Msk (0xfffffffcUL) /*!< RDESLA_32bit (Bitfield-Mask: 0x3fffffff) */ +/* =========================================== Transmit_Descriptor_List_Address ============================================ */ + #define R_GMAC_Transmit_Descriptor_List_Address_TDESLA_32bit_Pos (2UL) /*!< TDESLA_32bit (Bit 2) */ + #define R_GMAC_Transmit_Descriptor_List_Address_TDESLA_32bit_Msk (0xfffffffcUL) /*!< TDESLA_32bit (Bitfield-Mask: 0x3fffffff) */ +/* ======================================================== Status ========================================================= */ + #define R_GMAC_Status_TI_Pos (0UL) /*!< TI (Bit 0) */ + #define R_GMAC_Status_TI_Msk (0x1UL) /*!< TI (Bitfield-Mask: 0x01) */ + #define R_GMAC_Status_TPS_Pos (1UL) /*!< TPS (Bit 1) */ + #define R_GMAC_Status_TPS_Msk (0x2UL) /*!< TPS (Bitfield-Mask: 0x01) */ + #define R_GMAC_Status_TU_Pos (2UL) /*!< TU (Bit 2) */ + #define R_GMAC_Status_TU_Msk (0x4UL) /*!< TU (Bitfield-Mask: 0x01) */ + #define R_GMAC_Status_TJT_Pos (3UL) /*!< TJT (Bit 3) */ + #define R_GMAC_Status_TJT_Msk (0x8UL) /*!< TJT (Bitfield-Mask: 0x01) */ + #define R_GMAC_Status_OVF_Pos (4UL) /*!< OVF (Bit 4) */ + #define R_GMAC_Status_OVF_Msk (0x10UL) /*!< OVF (Bitfield-Mask: 0x01) */ + #define R_GMAC_Status_UNF_Pos (5UL) /*!< UNF (Bit 5) */ + #define R_GMAC_Status_UNF_Msk (0x20UL) /*!< UNF (Bitfield-Mask: 0x01) */ + #define R_GMAC_Status_RI_Pos (6UL) /*!< RI (Bit 6) */ + #define R_GMAC_Status_RI_Msk (0x40UL) /*!< RI (Bitfield-Mask: 0x01) */ + #define R_GMAC_Status_RU_Pos (7UL) /*!< RU (Bit 7) */ + #define R_GMAC_Status_RU_Msk (0x80UL) /*!< RU (Bitfield-Mask: 0x01) */ + #define R_GMAC_Status_RPS_Pos (8UL) /*!< RPS (Bit 8) */ + #define R_GMAC_Status_RPS_Msk (0x100UL) /*!< RPS (Bitfield-Mask: 0x01) */ + #define R_GMAC_Status_RWT_Pos (9UL) /*!< RWT (Bit 9) */ + #define R_GMAC_Status_RWT_Msk (0x200UL) /*!< RWT (Bitfield-Mask: 0x01) */ + #define R_GMAC_Status_ETI_Pos (10UL) /*!< ETI (Bit 10) */ + #define R_GMAC_Status_ETI_Msk (0x400UL) /*!< ETI (Bitfield-Mask: 0x01) */ + #define R_GMAC_Status_FBI_Pos (13UL) /*!< FBI (Bit 13) */ + #define R_GMAC_Status_FBI_Msk (0x2000UL) /*!< FBI (Bitfield-Mask: 0x01) */ + #define R_GMAC_Status_ERI_Pos (14UL) /*!< ERI (Bit 14) */ + #define R_GMAC_Status_ERI_Msk (0x4000UL) /*!< ERI (Bitfield-Mask: 0x01) */ + #define R_GMAC_Status_AIS_Pos (15UL) /*!< AIS (Bit 15) */ + #define R_GMAC_Status_AIS_Msk (0x8000UL) /*!< AIS (Bitfield-Mask: 0x01) */ + #define R_GMAC_Status_NIS_Pos (16UL) /*!< NIS (Bit 16) */ + #define R_GMAC_Status_NIS_Msk (0x10000UL) /*!< NIS (Bitfield-Mask: 0x01) */ + #define R_GMAC_Status_RS_Pos (17UL) /*!< RS (Bit 17) */ + #define R_GMAC_Status_RS_Msk (0xe0000UL) /*!< RS (Bitfield-Mask: 0x07) */ + #define R_GMAC_Status_TS_Pos (20UL) /*!< TS (Bit 20) */ + #define R_GMAC_Status_TS_Msk (0x700000UL) /*!< TS (Bitfield-Mask: 0x07) */ + #define R_GMAC_Status_EB_Pos (23UL) /*!< EB (Bit 23) */ + #define R_GMAC_Status_EB_Msk (0x3800000UL) /*!< EB (Bitfield-Mask: 0x07) */ + #define R_GMAC_Status_GMI_Pos (27UL) /*!< GMI (Bit 27) */ + #define R_GMAC_Status_GMI_Msk (0x8000000UL) /*!< GMI (Bitfield-Mask: 0x01) */ + #define R_GMAC_Status_GPI_Pos (28UL) /*!< GPI (Bit 28) */ + #define R_GMAC_Status_GPI_Msk (0x10000000UL) /*!< GPI (Bitfield-Mask: 0x01) */ + #define R_GMAC_Status_TTI_Pos (29UL) /*!< TTI (Bit 29) */ + #define R_GMAC_Status_TTI_Msk (0x20000000UL) /*!< TTI (Bitfield-Mask: 0x01) */ + #define R_GMAC_Status_GLPII_Pos (30UL) /*!< GLPII (Bit 30) */ + #define R_GMAC_Status_GLPII_Msk (0x40000000UL) /*!< GLPII (Bitfield-Mask: 0x01) */ +/* ==================================================== Operation_Mode ===================================================== */ + #define R_GMAC_Operation_Mode_SR_Pos (1UL) /*!< SR (Bit 1) */ + #define R_GMAC_Operation_Mode_SR_Msk (0x2UL) /*!< SR (Bitfield-Mask: 0x01) */ + #define R_GMAC_Operation_Mode_OSF_Pos (2UL) /*!< OSF (Bit 2) */ + #define R_GMAC_Operation_Mode_OSF_Msk (0x4UL) /*!< OSF (Bitfield-Mask: 0x01) */ + #define R_GMAC_Operation_Mode_RTC_Pos (3UL) /*!< RTC (Bit 3) */ + #define R_GMAC_Operation_Mode_RTC_Msk (0x18UL) /*!< RTC (Bitfield-Mask: 0x03) */ + #define R_GMAC_Operation_Mode_DGF_Pos (5UL) /*!< DGF (Bit 5) */ + #define R_GMAC_Operation_Mode_DGF_Msk (0x20UL) /*!< DGF (Bitfield-Mask: 0x01) */ + #define R_GMAC_Operation_Mode_FUF_Pos (6UL) /*!< FUF (Bit 6) */ + #define R_GMAC_Operation_Mode_FUF_Msk (0x40UL) /*!< FUF (Bitfield-Mask: 0x01) */ + #define R_GMAC_Operation_Mode_FEF_Pos (7UL) /*!< FEF (Bit 7) */ + #define R_GMAC_Operation_Mode_FEF_Msk (0x80UL) /*!< FEF (Bitfield-Mask: 0x01) */ + #define R_GMAC_Operation_Mode_EFC_Pos (8UL) /*!< EFC (Bit 8) */ + #define R_GMAC_Operation_Mode_EFC_Msk (0x100UL) /*!< EFC (Bitfield-Mask: 0x01) */ + #define R_GMAC_Operation_Mode_RFA_Pos (9UL) /*!< RFA (Bit 9) */ + #define R_GMAC_Operation_Mode_RFA_Msk (0x600UL) /*!< RFA (Bitfield-Mask: 0x03) */ + #define R_GMAC_Operation_Mode_RFD_Pos (11UL) /*!< RFD (Bit 11) */ + #define R_GMAC_Operation_Mode_RFD_Msk (0x1800UL) /*!< RFD (Bitfield-Mask: 0x03) */ + #define R_GMAC_Operation_Mode_ST_Pos (13UL) /*!< ST (Bit 13) */ + #define R_GMAC_Operation_Mode_ST_Msk (0x2000UL) /*!< ST (Bitfield-Mask: 0x01) */ + #define R_GMAC_Operation_Mode_TTC_Pos (14UL) /*!< TTC (Bit 14) */ + #define R_GMAC_Operation_Mode_TTC_Msk (0x1c000UL) /*!< TTC (Bitfield-Mask: 0x07) */ + #define R_GMAC_Operation_Mode_FTF_Pos (20UL) /*!< FTF (Bit 20) */ + #define R_GMAC_Operation_Mode_FTF_Msk (0x100000UL) /*!< FTF (Bitfield-Mask: 0x01) */ + #define R_GMAC_Operation_Mode_TSF_Pos (21UL) /*!< TSF (Bit 21) */ + #define R_GMAC_Operation_Mode_TSF_Msk (0x200000UL) /*!< TSF (Bitfield-Mask: 0x01) */ + #define R_GMAC_Operation_Mode_RSF_Pos (25UL) /*!< RSF (Bit 25) */ + #define R_GMAC_Operation_Mode_RSF_Msk (0x2000000UL) /*!< RSF (Bitfield-Mask: 0x01) */ + #define R_GMAC_Operation_Mode_DT_Pos (26UL) /*!< DT (Bit 26) */ + #define R_GMAC_Operation_Mode_DT_Msk (0x4000000UL) /*!< DT (Bitfield-Mask: 0x01) */ +/* =================================================== Interrupt_Enable ==================================================== */ + #define R_GMAC_Interrupt_Enable_TIE_Pos (0UL) /*!< TIE (Bit 0) */ + #define R_GMAC_Interrupt_Enable_TIE_Msk (0x1UL) /*!< TIE (Bitfield-Mask: 0x01) */ + #define R_GMAC_Interrupt_Enable_TSE_Pos (1UL) /*!< TSE (Bit 1) */ + #define R_GMAC_Interrupt_Enable_TSE_Msk (0x2UL) /*!< TSE (Bitfield-Mask: 0x01) */ + #define R_GMAC_Interrupt_Enable_TUE_Pos (2UL) /*!< TUE (Bit 2) */ + #define R_GMAC_Interrupt_Enable_TUE_Msk (0x4UL) /*!< TUE (Bitfield-Mask: 0x01) */ + #define R_GMAC_Interrupt_Enable_TJE_Pos (3UL) /*!< TJE (Bit 3) */ + #define R_GMAC_Interrupt_Enable_TJE_Msk (0x8UL) /*!< TJE (Bitfield-Mask: 0x01) */ + #define R_GMAC_Interrupt_Enable_OVE_Pos (4UL) /*!< OVE (Bit 4) */ + #define R_GMAC_Interrupt_Enable_OVE_Msk (0x10UL) /*!< OVE (Bitfield-Mask: 0x01) */ + #define R_GMAC_Interrupt_Enable_UNE_Pos (5UL) /*!< UNE (Bit 5) */ + #define R_GMAC_Interrupt_Enable_UNE_Msk (0x20UL) /*!< UNE (Bitfield-Mask: 0x01) */ + #define R_GMAC_Interrupt_Enable_RIE_Pos (6UL) /*!< RIE (Bit 6) */ + #define R_GMAC_Interrupt_Enable_RIE_Msk (0x40UL) /*!< RIE (Bitfield-Mask: 0x01) */ + #define R_GMAC_Interrupt_Enable_RUE_Pos (7UL) /*!< RUE (Bit 7) */ + #define R_GMAC_Interrupt_Enable_RUE_Msk (0x80UL) /*!< RUE (Bitfield-Mask: 0x01) */ + #define R_GMAC_Interrupt_Enable_RSE_Pos (8UL) /*!< RSE (Bit 8) */ + #define R_GMAC_Interrupt_Enable_RSE_Msk (0x100UL) /*!< RSE (Bitfield-Mask: 0x01) */ + #define R_GMAC_Interrupt_Enable_RWE_Pos (9UL) /*!< RWE (Bit 9) */ + #define R_GMAC_Interrupt_Enable_RWE_Msk (0x200UL) /*!< RWE (Bitfield-Mask: 0x01) */ + #define R_GMAC_Interrupt_Enable_ETE_Pos (10UL) /*!< ETE (Bit 10) */ + #define R_GMAC_Interrupt_Enable_ETE_Msk (0x400UL) /*!< ETE (Bitfield-Mask: 0x01) */ + #define R_GMAC_Interrupt_Enable_FBE_Pos (13UL) /*!< FBE (Bit 13) */ + #define R_GMAC_Interrupt_Enable_FBE_Msk (0x2000UL) /*!< FBE (Bitfield-Mask: 0x01) */ + #define R_GMAC_Interrupt_Enable_ERE_Pos (14UL) /*!< ERE (Bit 14) */ + #define R_GMAC_Interrupt_Enable_ERE_Msk (0x4000UL) /*!< ERE (Bitfield-Mask: 0x01) */ + #define R_GMAC_Interrupt_Enable_AIE_Pos (15UL) /*!< AIE (Bit 15) */ + #define R_GMAC_Interrupt_Enable_AIE_Msk (0x8000UL) /*!< AIE (Bitfield-Mask: 0x01) */ + #define R_GMAC_Interrupt_Enable_NIE_Pos (16UL) /*!< NIE (Bit 16) */ + #define R_GMAC_Interrupt_Enable_NIE_Msk (0x10000UL) /*!< NIE (Bitfield-Mask: 0x01) */ +/* ======================================= Missed_Frame_And_Buffer_Overflow_Counter ======================================== */ + #define R_GMAC_Missed_Frame_And_Buffer_Overflow_Counter_MISFRMCNT_Pos (0UL) /*!< MISFRMCNT (Bit 0) */ + #define R_GMAC_Missed_Frame_And_Buffer_Overflow_Counter_MISFRMCNT_Msk (0xffffUL) /*!< MISFRMCNT (Bitfield-Mask: 0xffff) */ + #define R_GMAC_Missed_Frame_And_Buffer_Overflow_Counter_MISCNTOVF_Pos (16UL) /*!< MISCNTOVF (Bit 16) */ + #define R_GMAC_Missed_Frame_And_Buffer_Overflow_Counter_MISCNTOVF_Msk (0x10000UL) /*!< MISCNTOVF (Bitfield-Mask: 0x01) */ + #define R_GMAC_Missed_Frame_And_Buffer_Overflow_Counter_OVFFRMCNT_Pos (17UL) /*!< OVFFRMCNT (Bit 17) */ + #define R_GMAC_Missed_Frame_And_Buffer_Overflow_Counter_OVFFRMCNT_Msk (0xffe0000UL) /*!< OVFFRMCNT (Bitfield-Mask: 0x7ff) */ + #define R_GMAC_Missed_Frame_And_Buffer_Overflow_Counter_OVFCNTOVF_Pos (28UL) /*!< OVFCNTOVF (Bit 28) */ + #define R_GMAC_Missed_Frame_And_Buffer_Overflow_Counter_OVFCNTOVF_Msk (0x10000000UL) /*!< OVFCNTOVF (Bitfield-Mask: 0x01) */ +/* =========================================== Receive_Interrupt_Watchdog_Timer ============================================ */ + #define R_GMAC_Receive_Interrupt_Watchdog_Timer_RIWT_Pos (0UL) /*!< RIWT (Bit 0) */ + #define R_GMAC_Receive_Interrupt_Watchdog_Timer_RIWT_Msk (0xffUL) /*!< RIWT (Bitfield-Mask: 0xff) */ +/* ===================================================== AXI_Bus_Mode ====================================================== */ + #define R_GMAC_AXI_Bus_Mode_UNDEF_Pos (0UL) /*!< UNDEF (Bit 0) */ + #define R_GMAC_AXI_Bus_Mode_UNDEF_Msk (0x1UL) /*!< UNDEF (Bitfield-Mask: 0x01) */ + #define R_GMAC_AXI_Bus_Mode_BLEN4_Pos (1UL) /*!< BLEN4 (Bit 1) */ + #define R_GMAC_AXI_Bus_Mode_BLEN4_Msk (0x2UL) /*!< BLEN4 (Bitfield-Mask: 0x01) */ + #define R_GMAC_AXI_Bus_Mode_BLEN8_Pos (2UL) /*!< BLEN8 (Bit 2) */ + #define R_GMAC_AXI_Bus_Mode_BLEN8_Msk (0x4UL) /*!< BLEN8 (Bitfield-Mask: 0x01) */ + #define R_GMAC_AXI_Bus_Mode_BLEN16_Pos (3UL) /*!< BLEN16 (Bit 3) */ + #define R_GMAC_AXI_Bus_Mode_BLEN16_Msk (0x8UL) /*!< BLEN16 (Bitfield-Mask: 0x01) */ + #define R_GMAC_AXI_Bus_Mode_AXI_AAL_Pos (12UL) /*!< AXI_AAL (Bit 12) */ + #define R_GMAC_AXI_Bus_Mode_AXI_AAL_Msk (0x1000UL) /*!< AXI_AAL (Bitfield-Mask: 0x01) */ + #define R_GMAC_AXI_Bus_Mode_ONEKBBE_Pos (13UL) /*!< ONEKBBE (Bit 13) */ + #define R_GMAC_AXI_Bus_Mode_ONEKBBE_Msk (0x2000UL) /*!< ONEKBBE (Bitfield-Mask: 0x01) */ + #define R_GMAC_AXI_Bus_Mode_RD_OSR_LMT_Pos (16UL) /*!< RD_OSR_LMT (Bit 16) */ + #define R_GMAC_AXI_Bus_Mode_RD_OSR_LMT_Msk (0x30000UL) /*!< RD_OSR_LMT (Bitfield-Mask: 0x03) */ + #define R_GMAC_AXI_Bus_Mode_WR_OSR_LMT_Pos (20UL) /*!< WR_OSR_LMT (Bit 20) */ + #define R_GMAC_AXI_Bus_Mode_WR_OSR_LMT_Msk (0x300000UL) /*!< WR_OSR_LMT (Bitfield-Mask: 0x03) */ + #define R_GMAC_AXI_Bus_Mode_LPI_XIT_FRM_Pos (30UL) /*!< LPI_XIT_FRM (Bit 30) */ + #define R_GMAC_AXI_Bus_Mode_LPI_XIT_FRM_Msk (0x40000000UL) /*!< LPI_XIT_FRM (Bitfield-Mask: 0x01) */ + #define R_GMAC_AXI_Bus_Mode_EN_LPI_Pos (31UL) /*!< EN_LPI (Bit 31) */ + #define R_GMAC_AXI_Bus_Mode_EN_LPI_Msk (0x80000000UL) /*!< EN_LPI (Bitfield-Mask: 0x01) */ +/* ====================================================== AXI_Status ======================================================= */ + #define R_GMAC_AXI_Status_AXWHSTS_Pos (0UL) /*!< AXWHSTS (Bit 0) */ + #define R_GMAC_AXI_Status_AXWHSTS_Msk (0x1UL) /*!< AXWHSTS (Bitfield-Mask: 0x01) */ + #define R_GMAC_AXI_Status_AXIRDSTS_Pos (1UL) /*!< AXIRDSTS (Bit 1) */ + #define R_GMAC_AXI_Status_AXIRDSTS_Msk (0x2UL) /*!< AXIRDSTS (Bitfield-Mask: 0x01) */ +/* =========================================== Current_Host_Transmit_Descriptor ============================================ */ + #define R_GMAC_Current_Host_Transmit_Descriptor_CURTDESAPTR_Pos (0UL) /*!< CURTDESAPTR (Bit 0) */ + #define R_GMAC_Current_Host_Transmit_Descriptor_CURTDESAPTR_Msk (0xffffffffUL) /*!< CURTDESAPTR (Bitfield-Mask: 0xffffffff) */ +/* ============================================ Current_Host_Receive_Descriptor ============================================ */ + #define R_GMAC_Current_Host_Receive_Descriptor_CURRDESAPTR_Pos (0UL) /*!< CURRDESAPTR (Bit 0) */ + #define R_GMAC_Current_Host_Receive_Descriptor_CURRDESAPTR_Msk (0xffffffffUL) /*!< CURRDESAPTR (Bitfield-Mask: 0xffffffff) */ +/* ========================================= Current_Host_Transmit_Buffer_Address ========================================== */ + #define R_GMAC_Current_Host_Transmit_Buffer_Address_CURTBUFAPTR_Pos (0UL) /*!< CURTBUFAPTR (Bit 0) */ + #define R_GMAC_Current_Host_Transmit_Buffer_Address_CURTBUFAPTR_Msk (0xffffffffUL) /*!< CURTBUFAPTR (Bitfield-Mask: 0xffffffff) */ +/* ========================================== Current_Host_Receive_Buffer_Address ========================================== */ + #define R_GMAC_Current_Host_Receive_Buffer_Address_CURRBUFAPTR_Pos (0UL) /*!< CURRBUFAPTR (Bit 0) */ + #define R_GMAC_Current_Host_Receive_Buffer_Address_CURRBUFAPTR_Msk (0xffffffffUL) /*!< CURRBUFAPTR (Bitfield-Mask: 0xffffffff) */ +/* ====================================================== HW_Feature ======================================================= */ + #define R_GMAC_HW_Feature_MIISEL_Pos (0UL) /*!< MIISEL (Bit 0) */ + #define R_GMAC_HW_Feature_MIISEL_Msk (0x1UL) /*!< MIISEL (Bitfield-Mask: 0x01) */ + #define R_GMAC_HW_Feature_GMIISEL_Pos (1UL) /*!< GMIISEL (Bit 1) */ + #define R_GMAC_HW_Feature_GMIISEL_Msk (0x2UL) /*!< GMIISEL (Bitfield-Mask: 0x01) */ + #define R_GMAC_HW_Feature_HDSEL_Pos (2UL) /*!< HDSEL (Bit 2) */ + #define R_GMAC_HW_Feature_HDSEL_Msk (0x4UL) /*!< HDSEL (Bitfield-Mask: 0x01) */ + #define R_GMAC_HW_Feature_EXTHASHEN_Pos (3UL) /*!< EXTHASHEN (Bit 3) */ + #define R_GMAC_HW_Feature_EXTHASHEN_Msk (0x8UL) /*!< EXTHASHEN (Bitfield-Mask: 0x01) */ + #define R_GMAC_HW_Feature_HASHSEL_Pos (4UL) /*!< HASHSEL (Bit 4) */ + #define R_GMAC_HW_Feature_HASHSEL_Msk (0x10UL) /*!< HASHSEL (Bitfield-Mask: 0x01) */ + #define R_GMAC_HW_Feature_ADDMACADRSEL_Pos (5UL) /*!< ADDMACADRSEL (Bit 5) */ + #define R_GMAC_HW_Feature_ADDMACADRSEL_Msk (0x20UL) /*!< ADDMACADRSEL (Bitfield-Mask: 0x01) */ + #define R_GMAC_HW_Feature_L3L4FLTREN_Pos (7UL) /*!< L3L4FLTREN (Bit 7) */ + #define R_GMAC_HW_Feature_L3L4FLTREN_Msk (0x80UL) /*!< L3L4FLTREN (Bitfield-Mask: 0x01) */ + #define R_GMAC_HW_Feature_SMASEL_Pos (8UL) /*!< SMASEL (Bit 8) */ + #define R_GMAC_HW_Feature_SMASEL_Msk (0x100UL) /*!< SMASEL (Bitfield-Mask: 0x01) */ + #define R_GMAC_HW_Feature_RWKSEL_Pos (9UL) /*!< RWKSEL (Bit 9) */ + #define R_GMAC_HW_Feature_RWKSEL_Msk (0x200UL) /*!< RWKSEL (Bitfield-Mask: 0x01) */ + #define R_GMAC_HW_Feature_MGKSEL_Pos (10UL) /*!< MGKSEL (Bit 10) */ + #define R_GMAC_HW_Feature_MGKSEL_Msk (0x400UL) /*!< MGKSEL (Bitfield-Mask: 0x01) */ + #define R_GMAC_HW_Feature_MMCSEL_Pos (11UL) /*!< MMCSEL (Bit 11) */ + #define R_GMAC_HW_Feature_MMCSEL_Msk (0x800UL) /*!< MMCSEL (Bitfield-Mask: 0x01) */ + #define R_GMAC_HW_Feature_TSVER1SEL_Pos (12UL) /*!< TSVER1SEL (Bit 12) */ + #define R_GMAC_HW_Feature_TSVER1SEL_Msk (0x1000UL) /*!< TSVER1SEL (Bitfield-Mask: 0x01) */ + #define R_GMAC_HW_Feature_TSVER2SEL_Pos (13UL) /*!< TSVER2SEL (Bit 13) */ + #define R_GMAC_HW_Feature_TSVER2SEL_Msk (0x2000UL) /*!< TSVER2SEL (Bitfield-Mask: 0x01) */ + #define R_GMAC_HW_Feature_EEESEL_Pos (14UL) /*!< EEESEL (Bit 14) */ + #define R_GMAC_HW_Feature_EEESEL_Msk (0x4000UL) /*!< EEESEL (Bitfield-Mask: 0x01) */ + #define R_GMAC_HW_Feature_AVSEL_Pos (15UL) /*!< AVSEL (Bit 15) */ + #define R_GMAC_HW_Feature_AVSEL_Msk (0x8000UL) /*!< AVSEL (Bitfield-Mask: 0x01) */ + #define R_GMAC_HW_Feature_TXCOESEL_Pos (16UL) /*!< TXCOESEL (Bit 16) */ + #define R_GMAC_HW_Feature_TXCOESEL_Msk (0x10000UL) /*!< TXCOESEL (Bitfield-Mask: 0x01) */ + #define R_GMAC_HW_Feature_RXTYP1COE_Pos (17UL) /*!< RXTYP1COE (Bit 17) */ + #define R_GMAC_HW_Feature_RXTYP1COE_Msk (0x20000UL) /*!< RXTYP1COE (Bitfield-Mask: 0x01) */ + #define R_GMAC_HW_Feature_RXTYP2COE_Pos (18UL) /*!< RXTYP2COE (Bit 18) */ + #define R_GMAC_HW_Feature_RXTYP2COE_Msk (0x40000UL) /*!< RXTYP2COE (Bitfield-Mask: 0x01) */ + #define R_GMAC_HW_Feature_RXFIFOSIZE_Pos (19UL) /*!< RXFIFOSIZE (Bit 19) */ + #define R_GMAC_HW_Feature_RXFIFOSIZE_Msk (0x80000UL) /*!< RXFIFOSIZE (Bitfield-Mask: 0x01) */ + #define R_GMAC_HW_Feature_RXCHCNT_Pos (20UL) /*!< RXCHCNT (Bit 20) */ + #define R_GMAC_HW_Feature_RXCHCNT_Msk (0x300000UL) /*!< RXCHCNT (Bitfield-Mask: 0x03) */ + #define R_GMAC_HW_Feature_TXCHCNT_Pos (22UL) /*!< TXCHCNT (Bit 22) */ + #define R_GMAC_HW_Feature_TXCHCNT_Msk (0xc00000UL) /*!< TXCHCNT (Bitfield-Mask: 0x03) */ + #define R_GMAC_HW_Feature_ENHDESSEL_Pos (24UL) /*!< ENHDESSEL (Bit 24) */ + #define R_GMAC_HW_Feature_ENHDESSEL_Msk (0x1000000UL) /*!< ENHDESSEL (Bitfield-Mask: 0x01) */ + #define R_GMAC_HW_Feature_INTTSEN_Pos (25UL) /*!< INTTSEN (Bit 25) */ + #define R_GMAC_HW_Feature_INTTSEN_Msk (0x2000000UL) /*!< INTTSEN (Bitfield-Mask: 0x01) */ + #define R_GMAC_HW_Feature_FLEXIPPSEN_Pos (26UL) /*!< FLEXIPPSEN (Bit 26) */ + #define R_GMAC_HW_Feature_FLEXIPPSEN_Msk (0x4000000UL) /*!< FLEXIPPSEN (Bitfield-Mask: 0x01) */ + #define R_GMAC_HW_Feature_SAVLANINS_Pos (27UL) /*!< SAVLANINS (Bit 27) */ + #define R_GMAC_HW_Feature_SAVLANINS_Msk (0x8000000UL) /*!< SAVLANINS (Bitfield-Mask: 0x01) */ + #define R_GMAC_HW_Feature_ACTPHYIF_Pos (28UL) /*!< ACTPHYIF (Bit 28) */ + #define R_GMAC_HW_Feature_ACTPHYIF_Msk (0x70000000UL) /*!< ACTPHYIF (Bitfield-Mask: 0x07) */ + +/* =========================================================================================================================== */ +/* ================ R_ETHSS ================ */ +/* =========================================================================================================================== */ + +/* ========================================================= PRCMD ========================================================= */ +/* ======================================================== MODCTRL ======================================================== */ + #define R_ETHSS_MODCTRL_SW_MODE_Pos (0UL) /*!< SW_MODE (Bit 0) */ + #define R_ETHSS_MODCTRL_SW_MODE_Msk (0x7UL) /*!< SW_MODE (Bitfield-Mask: 0x07) */ +/* ======================================================= PTPMCTRL ======================================================== */ + #define R_ETHSS_PTPMCTRL_PTP_MODE_Pos (0UL) /*!< PTP_MODE (Bit 0) */ + #define R_ETHSS_PTPMCTRL_PTP_MODE_Msk (0x1UL) /*!< PTP_MODE (Bitfield-Mask: 0x01) */ + #define R_ETHSS_PTPMCTRL_PTP_PLS_RSTn_Pos (16UL) /*!< PTP_PLS_RSTn (Bit 16) */ + #define R_ETHSS_PTPMCTRL_PTP_PLS_RSTn_Msk (0x10000UL) /*!< PTP_PLS_RSTn (Bitfield-Mask: 0x01) */ +/* ======================================================== PHYLNK ========================================================= */ + #define R_ETHSS_PHYLNK_SWLINK_Pos (0UL) /*!< SWLINK (Bit 0) */ + #define R_ETHSS_PHYLNK_SWLINK_Msk (0x7UL) /*!< SWLINK (Bitfield-Mask: 0x07) */ + #define R_ETHSS_PHYLNK_CATLNK_Pos (4UL) /*!< CATLNK (Bit 4) */ + #define R_ETHSS_PHYLNK_CATLNK_Msk (0x70UL) /*!< CATLNK (Bitfield-Mask: 0x07) */ +/* ======================================================= CONVCTRL ======================================================== */ + #define R_ETHSS_CONVCTRL_CONV_MODE_Pos (0UL) /*!< CONV_MODE (Bit 0) */ + #define R_ETHSS_CONVCTRL_CONV_MODE_Msk (0x1fUL) /*!< CONV_MODE (Bitfield-Mask: 0x1f) */ + #define R_ETHSS_CONVCTRL_FULLD_Pos (8UL) /*!< FULLD (Bit 8) */ + #define R_ETHSS_CONVCTRL_FULLD_Msk (0x100UL) /*!< FULLD (Bitfield-Mask: 0x01) */ + #define R_ETHSS_CONVCTRL_RMII_RX_ER_EN_Pos (9UL) /*!< RMII_RX_ER_EN (Bit 9) */ + #define R_ETHSS_CONVCTRL_RMII_RX_ER_EN_Msk (0x200UL) /*!< RMII_RX_ER_EN (Bitfield-Mask: 0x01) */ + #define R_ETHSS_CONVCTRL_RMII_CRS_MODE_Pos (10UL) /*!< RMII_CRS_MODE (Bit 10) */ + #define R_ETHSS_CONVCTRL_RMII_CRS_MODE_Msk (0x400UL) /*!< RMII_CRS_MODE (Bitfield-Mask: 0x01) */ + #define R_ETHSS_CONVCTRL_RGMII_LINK_Pos (12UL) /*!< RGMII_LINK (Bit 12) */ + #define R_ETHSS_CONVCTRL_RGMII_LINK_Msk (0x1000UL) /*!< RGMII_LINK (Bitfield-Mask: 0x01) */ + #define R_ETHSS_CONVCTRL_RGMII_DUPLEX_Pos (13UL) /*!< RGMII_DUPLEX (Bit 13) */ + #define R_ETHSS_CONVCTRL_RGMII_DUPLEX_Msk (0x2000UL) /*!< RGMII_DUPLEX (Bitfield-Mask: 0x01) */ + #define R_ETHSS_CONVCTRL_RGMII_SPEED_Pos (14UL) /*!< RGMII_SPEED (Bit 14) */ + #define R_ETHSS_CONVCTRL_RGMII_SPEED_Msk (0xc000UL) /*!< RGMII_SPEED (Bitfield-Mask: 0x03) */ +/* ======================================================== CONVRST ======================================================== */ + #define R_ETHSS_CONVRST_PHYIR_Pos (0UL) /*!< PHYIR (Bit 0) */ + #define R_ETHSS_CONVRST_PHYIR_Msk (0x7UL) /*!< PHYIR (Bitfield-Mask: 0x07) */ +/* ======================================================== SWCTRL ========================================================= */ + #define R_ETHSS_SWCTRL_SET10_Pos (0UL) /*!< SET10 (Bit 0) */ + #define R_ETHSS_SWCTRL_SET10_Msk (0x7UL) /*!< SET10 (Bitfield-Mask: 0x07) */ + #define R_ETHSS_SWCTRL_SET1000_Pos (4UL) /*!< SET1000 (Bit 4) */ + #define R_ETHSS_SWCTRL_SET1000_Msk (0x70UL) /*!< SET1000 (Bitfield-Mask: 0x07) */ + #define R_ETHSS_SWCTRL_STRAP_SX_ENB_Pos (16UL) /*!< STRAP_SX_ENB (Bit 16) */ + #define R_ETHSS_SWCTRL_STRAP_SX_ENB_Msk (0x10000UL) /*!< STRAP_SX_ENB (Bitfield-Mask: 0x01) */ + #define R_ETHSS_SWCTRL_STRAP_HUB_ENB_Pos (17UL) /*!< STRAP_HUB_ENB (Bit 17) */ + #define R_ETHSS_SWCTRL_STRAP_HUB_ENB_Msk (0x20000UL) /*!< STRAP_HUB_ENB (Bitfield-Mask: 0x01) */ +/* ======================================================== SWDUPC ========================================================= */ + #define R_ETHSS_SWDUPC_PHY_DUPLEX_Pos (0UL) /*!< PHY_DUPLEX (Bit 0) */ + #define R_ETHSS_SWDUPC_PHY_DUPLEX_Msk (0x7UL) /*!< PHY_DUPLEX (Bitfield-Mask: 0x07) */ +/* ========================================================= CDCR ========================================================== */ + #define R_ETHSS_CDCR_RXDLYEN_Pos (0UL) /*!< RXDLYEN (Bit 0) */ + #define R_ETHSS_CDCR_RXDLYEN_Msk (0x1UL) /*!< RXDLYEN (Bitfield-Mask: 0x01) */ + #define R_ETHSS_CDCR_TXDLYEN_Pos (1UL) /*!< TXDLYEN (Bit 1) */ + #define R_ETHSS_CDCR_TXDLYEN_Msk (0x2UL) /*!< TXDLYEN (Bitfield-Mask: 0x01) */ + #define R_ETHSS_CDCR_OSCCLKEN_Pos (2UL) /*!< OSCCLKEN (Bit 2) */ + #define R_ETHSS_CDCR_OSCCLKEN_Msk (0x4UL) /*!< OSCCLKEN (Bitfield-Mask: 0x01) */ + #define R_ETHSS_CDCR_CLKINEN_Pos (3UL) /*!< CLKINEN (Bit 3) */ + #define R_ETHSS_CDCR_CLKINEN_Msk (0x8UL) /*!< CLKINEN (Bitfield-Mask: 0x01) */ +/* ======================================================== RXFCNT ========================================================= */ + #define R_ETHSS_RXFCNT_RXFCNT_Pos (0UL) /*!< RXFCNT (Bit 0) */ + #define R_ETHSS_RXFCNT_RXFCNT_Msk (0xffffUL) /*!< RXFCNT (Bitfield-Mask: 0xffff) */ +/* ======================================================== TXFCNT ========================================================= */ + #define R_ETHSS_TXFCNT_TXFCNT_Pos (0UL) /*!< TXFCNT (Bit 0) */ + #define R_ETHSS_TXFCNT_TXFCNT_Msk (0xffffUL) /*!< TXFCNT (Bitfield-Mask: 0xffff) */ +/* ======================================================= RXTAPSEL ======================================================== */ + #define R_ETHSS_RXTAPSEL_RXTAPSEL_Pos (0UL) /*!< RXTAPSEL (Bit 0) */ + #define R_ETHSS_RXTAPSEL_RXTAPSEL_Msk (0x7fUL) /*!< RXTAPSEL (Bitfield-Mask: 0x7f) */ +/* ======================================================= TXTAPSEL ======================================================== */ + #define R_ETHSS_TXTAPSEL_TXTAPSEL_Pos (0UL) /*!< TXTAPSEL (Bit 0) */ + #define R_ETHSS_TXTAPSEL_TXTAPSEL_Msk (0x7fUL) /*!< TXTAPSEL (Bitfield-Mask: 0x7f) */ +/* ======================================================== MIIMCR ========================================================= */ + #define R_ETHSS_MIIMCR_MIIM2MEN_Pos (0UL) /*!< MIIM2MEN (Bit 0) */ + #define R_ETHSS_MIIMCR_MIIM2MEN_Msk (0x1UL) /*!< MIIM2MEN (Bitfield-Mask: 0x01) */ + +/* =========================================================================================================================== */ +/* ================ R_ESC_INI ================ */ +/* =========================================================================================================================== */ + +/* ====================================================== ECATOFFADR ======================================================= */ + #define R_ESC_INI_ECATOFFADR_OADD_Pos (0UL) /*!< OADD (Bit 0) */ + #define R_ESC_INI_ECATOFFADR_OADD_Msk (0x1fUL) /*!< OADD (Bitfield-Mask: 0x1f) */ +/* ======================================================= ECATOPMOD ======================================================= */ + #define R_ESC_INI_ECATOPMOD_EEPROMSIZE_Pos (0UL) /*!< EEPROMSIZE (Bit 0) */ + #define R_ESC_INI_ECATOPMOD_EEPROMSIZE_Msk (0x1UL) /*!< EEPROMSIZE (Bitfield-Mask: 0x01) */ +/* ======================================================= ECATDBGC ======================================================== */ + #define R_ESC_INI_ECATDBGC_TXSFT0_Pos (0UL) /*!< TXSFT0 (Bit 0) */ + #define R_ESC_INI_ECATDBGC_TXSFT0_Msk (0x3UL) /*!< TXSFT0 (Bitfield-Mask: 0x03) */ + #define R_ESC_INI_ECATDBGC_TXSFT1_Pos (2UL) /*!< TXSFT1 (Bit 2) */ + #define R_ESC_INI_ECATDBGC_TXSFT1_Msk (0xcUL) /*!< TXSFT1 (Bitfield-Mask: 0x03) */ + #define R_ESC_INI_ECATDBGC_TXSFT2_Pos (4UL) /*!< TXSFT2 (Bit 4) */ + #define R_ESC_INI_ECATDBGC_TXSFT2_Msk (0x30UL) /*!< TXSFT2 (Bitfield-Mask: 0x03) */ +/* ====================================================== ECATTRGSEL ======================================================= */ + #define R_ESC_INI_ECATTRGSEL_TRGSEL0_Pos (0UL) /*!< TRGSEL0 (Bit 0) */ + #define R_ESC_INI_ECATTRGSEL_TRGSEL0_Msk (0x1UL) /*!< TRGSEL0 (Bitfield-Mask: 0x01) */ + #define R_ESC_INI_ECATTRGSEL_TRGSEL1_Pos (1UL) /*!< TRGSEL1 (Bit 1) */ + #define R_ESC_INI_ECATTRGSEL_TRGSEL1_Msk (0x2UL) /*!< TRGSEL1 (Bitfield-Mask: 0x01) */ + +/* =========================================================================================================================== */ +/* ================ R_ETHSW_PTP ================ */ +/* =========================================================================================================================== */ + +/* ====================================================== SWPTPOUTSEL ====================================================== */ + #define R_ETHSW_PTP_SWPTPOUTSEL_IOSEL0_Pos (0UL) /*!< IOSEL0 (Bit 0) */ + #define R_ETHSW_PTP_SWPTPOUTSEL_IOSEL0_Msk (0x1UL) /*!< IOSEL0 (Bitfield-Mask: 0x01) */ + #define R_ETHSW_PTP_SWPTPOUTSEL_IOSEL1_Pos (1UL) /*!< IOSEL1 (Bit 1) */ + #define R_ETHSW_PTP_SWPTPOUTSEL_IOSEL1_Msk (0x2UL) /*!< IOSEL1 (Bitfield-Mask: 0x01) */ + #define R_ETHSW_PTP_SWPTPOUTSEL_IOSEL2_Pos (2UL) /*!< IOSEL2 (Bit 2) */ + #define R_ETHSW_PTP_SWPTPOUTSEL_IOSEL2_Msk (0x4UL) /*!< IOSEL2 (Bitfield-Mask: 0x01) */ + #define R_ETHSW_PTP_SWPTPOUTSEL_IOSEL3_Pos (3UL) /*!< IOSEL3 (Bit 3) */ + #define R_ETHSW_PTP_SWPTPOUTSEL_IOSEL3_Msk (0x8UL) /*!< IOSEL3 (Bitfield-Mask: 0x01) */ + #define R_ETHSW_PTP_SWPTPOUTSEL_EVTSEL0_Pos (4UL) /*!< EVTSEL0 (Bit 4) */ + #define R_ETHSW_PTP_SWPTPOUTSEL_EVTSEL0_Msk (0x10UL) /*!< EVTSEL0 (Bitfield-Mask: 0x01) */ + #define R_ETHSW_PTP_SWPTPOUTSEL_EVTSEL1_Pos (5UL) /*!< EVTSEL1 (Bit 5) */ + #define R_ETHSW_PTP_SWPTPOUTSEL_EVTSEL1_Msk (0x20UL) /*!< EVTSEL1 (Bitfield-Mask: 0x01) */ + #define R_ETHSW_PTP_SWPTPOUTSEL_EVTSEL2_Pos (6UL) /*!< EVTSEL2 (Bit 6) */ + #define R_ETHSW_PTP_SWPTPOUTSEL_EVTSEL2_Msk (0x40UL) /*!< EVTSEL2 (Bitfield-Mask: 0x01) */ + #define R_ETHSW_PTP_SWPTPOUTSEL_EVTSEL3_Pos (7UL) /*!< EVTSEL3 (Bit 7) */ + #define R_ETHSW_PTP_SWPTPOUTSEL_EVTSEL3_Msk (0x80UL) /*!< EVTSEL3 (Bitfield-Mask: 0x01) */ + +/* =========================================================================================================================== */ +/* ================ R_ETHSW ================ */ +/* =========================================================================================================================== */ + +/* ======================================================= REVISION ======================================================== */ + #define R_ETHSW_REVISION_REV_Pos (0UL) /*!< REV (Bit 0) */ + #define R_ETHSW_REVISION_REV_Msk (0xffffffffUL) /*!< REV (Bitfield-Mask: 0xffffffff) */ +/* ======================================================== SCRATCH ======================================================== */ + #define R_ETHSW_SCRATCH_SCRATCH_Pos (0UL) /*!< SCRATCH (Bit 0) */ + #define R_ETHSW_SCRATCH_SCRATCH_Msk (0xffffffffUL) /*!< SCRATCH (Bitfield-Mask: 0xffffffff) */ +/* ======================================================= PORT_ENA ======================================================== */ + #define R_ETHSW_PORT_ENA_TXENA_Pos (0UL) /*!< TXENA (Bit 0) */ + #define R_ETHSW_PORT_ENA_TXENA_Msk (0xfUL) /*!< TXENA (Bitfield-Mask: 0x0f) */ + #define R_ETHSW_PORT_ENA_RXENA_Pos (16UL) /*!< RXENA (Bit 16) */ + #define R_ETHSW_PORT_ENA_RXENA_Msk (0xf0000UL) /*!< RXENA (Bitfield-Mask: 0x0f) */ +/* ================================================== UCAST_DEFAULT_MASK0 ================================================== */ + #define R_ETHSW_UCAST_DEFAULT_MASK0_UCASTDM_Pos (0UL) /*!< UCASTDM (Bit 0) */ + #define R_ETHSW_UCAST_DEFAULT_MASK0_UCASTDM_Msk (0xfUL) /*!< UCASTDM (Bitfield-Mask: 0x0f) */ +/* ====================================================== VLAN_VERIFY ====================================================== */ + #define R_ETHSW_VLAN_VERIFY_VLANVERI_Pos (0UL) /*!< VLANVERI (Bit 0) */ + #define R_ETHSW_VLAN_VERIFY_VLANVERI_Msk (0xfUL) /*!< VLANVERI (Bitfield-Mask: 0x0f) */ + #define R_ETHSW_VLAN_VERIFY_VLANDISC_Pos (16UL) /*!< VLANDISC (Bit 16) */ + #define R_ETHSW_VLAN_VERIFY_VLANDISC_Msk (0xf0000UL) /*!< VLANDISC (Bitfield-Mask: 0x0f) */ +/* ================================================== BCAST_DEFAULT_MASK0 ================================================== */ + #define R_ETHSW_BCAST_DEFAULT_MASK0_BCASTDM_Pos (0UL) /*!< BCASTDM (Bit 0) */ + #define R_ETHSW_BCAST_DEFAULT_MASK0_BCASTDM_Msk (0xfUL) /*!< BCASTDM (Bitfield-Mask: 0x0f) */ +/* ================================================== MCAST_DEFAULT_MASK0 ================================================== */ + #define R_ETHSW_MCAST_DEFAULT_MASK0_MCASTDM_Pos (0UL) /*!< MCASTDM (Bit 0) */ + #define R_ETHSW_MCAST_DEFAULT_MASK0_MCASTDM_Msk (0xfUL) /*!< MCASTDM (Bitfield-Mask: 0x0f) */ +/* =================================================== INPUT_LEARN_BLOCK =================================================== */ + #define R_ETHSW_INPUT_LEARN_BLOCK_BLOCKEN_Pos (0UL) /*!< BLOCKEN (Bit 0) */ + #define R_ETHSW_INPUT_LEARN_BLOCK_BLOCKEN_Msk (0xfUL) /*!< BLOCKEN (Bitfield-Mask: 0x0f) */ + #define R_ETHSW_INPUT_LEARN_BLOCK_LEARNDIS_Pos (16UL) /*!< LEARNDIS (Bit 16) */ + #define R_ETHSW_INPUT_LEARN_BLOCK_LEARNDIS_Msk (0xf0000UL) /*!< LEARNDIS (Bitfield-Mask: 0x0f) */ +/* ====================================================== MGMT_CONFIG ====================================================== */ + #define R_ETHSW_MGMT_CONFIG_PORT_Pos (0UL) /*!< PORT (Bit 0) */ + #define R_ETHSW_MGMT_CONFIG_PORT_Msk (0xfUL) /*!< PORT (Bitfield-Mask: 0x0f) */ + #define R_ETHSW_MGMT_CONFIG_MSG_TRANS_Pos (5UL) /*!< MSG_TRANS (Bit 5) */ + #define R_ETHSW_MGMT_CONFIG_MSG_TRANS_Msk (0x20UL) /*!< MSG_TRANS (Bitfield-Mask: 0x01) */ + #define R_ETHSW_MGMT_CONFIG_ENABLE_Pos (6UL) /*!< ENABLE (Bit 6) */ + #define R_ETHSW_MGMT_CONFIG_ENABLE_Msk (0x40UL) /*!< ENABLE (Bitfield-Mask: 0x01) */ + #define R_ETHSW_MGMT_CONFIG_DISCARD_Pos (7UL) /*!< DISCARD (Bit 7) */ + #define R_ETHSW_MGMT_CONFIG_DISCARD_Msk (0x80UL) /*!< DISCARD (Bitfield-Mask: 0x01) */ + #define R_ETHSW_MGMT_CONFIG_MGMT_EN_Pos (8UL) /*!< MGMT_EN (Bit 8) */ + #define R_ETHSW_MGMT_CONFIG_MGMT_EN_Msk (0x100UL) /*!< MGMT_EN (Bitfield-Mask: 0x01) */ + #define R_ETHSW_MGMT_CONFIG_MGMT_DISC_Pos (9UL) /*!< MGMT_DISC (Bit 9) */ + #define R_ETHSW_MGMT_CONFIG_MGMT_DISC_Msk (0x200UL) /*!< MGMT_DISC (Bitfield-Mask: 0x01) */ + #define R_ETHSW_MGMT_CONFIG_PRIORITY_Pos (13UL) /*!< PRIORITY (Bit 13) */ + #define R_ETHSW_MGMT_CONFIG_PRIORITY_Msk (0xe000UL) /*!< PRIORITY (Bitfield-Mask: 0x07) */ + #define R_ETHSW_MGMT_CONFIG_PORTMASK_Pos (16UL) /*!< PORTMASK (Bit 16) */ + #define R_ETHSW_MGMT_CONFIG_PORTMASK_Msk (0xf0000UL) /*!< PORTMASK (Bitfield-Mask: 0x0f) */ +/* ====================================================== MODE_CONFIG ====================================================== */ + #define R_ETHSW_MODE_CONFIG_CUT_THRU_EN_Pos (8UL) /*!< CUT_THRU_EN (Bit 8) */ + #define R_ETHSW_MODE_CONFIG_CUT_THRU_EN_Msk (0xf00UL) /*!< CUT_THRU_EN (Bitfield-Mask: 0x0f) */ + #define R_ETHSW_MODE_CONFIG_STATSRESET_Pos (31UL) /*!< STATSRESET (Bit 31) */ + #define R_ETHSW_MODE_CONFIG_STATSRESET_Msk (0x80000000UL) /*!< STATSRESET (Bitfield-Mask: 0x01) */ +/* ===================================================== VLAN_IN_MODE ====================================================== */ + #define R_ETHSW_VLAN_IN_MODE_P0VLANINMD_Pos (0UL) /*!< P0VLANINMD (Bit 0) */ + #define R_ETHSW_VLAN_IN_MODE_P0VLANINMD_Msk (0x3UL) /*!< P0VLANINMD (Bitfield-Mask: 0x03) */ + #define R_ETHSW_VLAN_IN_MODE_P1VLANINMD_Pos (2UL) /*!< P1VLANINMD (Bit 2) */ + #define R_ETHSW_VLAN_IN_MODE_P1VLANINMD_Msk (0xcUL) /*!< P1VLANINMD (Bitfield-Mask: 0x03) */ + #define R_ETHSW_VLAN_IN_MODE_P2VLANINMD_Pos (4UL) /*!< P2VLANINMD (Bit 4) */ + #define R_ETHSW_VLAN_IN_MODE_P2VLANINMD_Msk (0x30UL) /*!< P2VLANINMD (Bitfield-Mask: 0x03) */ + #define R_ETHSW_VLAN_IN_MODE_P3VLANINMD_Pos (6UL) /*!< P3VLANINMD (Bit 6) */ + #define R_ETHSW_VLAN_IN_MODE_P3VLANINMD_Msk (0xc0UL) /*!< P3VLANINMD (Bitfield-Mask: 0x03) */ +/* ===================================================== VLAN_OUT_MODE ===================================================== */ + #define R_ETHSW_VLAN_OUT_MODE_P0VLANOUTMD_Pos (0UL) /*!< P0VLANOUTMD (Bit 0) */ + #define R_ETHSW_VLAN_OUT_MODE_P0VLANOUTMD_Msk (0x3UL) /*!< P0VLANOUTMD (Bitfield-Mask: 0x03) */ + #define R_ETHSW_VLAN_OUT_MODE_P1VLANOUTMD_Pos (2UL) /*!< P1VLANOUTMD (Bit 2) */ + #define R_ETHSW_VLAN_OUT_MODE_P1VLANOUTMD_Msk (0xcUL) /*!< P1VLANOUTMD (Bitfield-Mask: 0x03) */ + #define R_ETHSW_VLAN_OUT_MODE_P2VLANOUTMD_Pos (4UL) /*!< P2VLANOUTMD (Bit 4) */ + #define R_ETHSW_VLAN_OUT_MODE_P2VLANOUTMD_Msk (0x30UL) /*!< P2VLANOUTMD (Bitfield-Mask: 0x03) */ + #define R_ETHSW_VLAN_OUT_MODE_P3VLANOUTMD_Pos (6UL) /*!< P3VLANOUTMD (Bit 6) */ + #define R_ETHSW_VLAN_OUT_MODE_P3VLANOUTMD_Msk (0xc0UL) /*!< P3VLANOUTMD (Bitfield-Mask: 0x03) */ +/* =================================================== VLAN_IN_MODE_ENA ==================================================== */ + #define R_ETHSW_VLAN_IN_MODE_ENA_VLANINMDEN_Pos (0UL) /*!< VLANINMDEN (Bit 0) */ + #define R_ETHSW_VLAN_IN_MODE_ENA_VLANINMDEN_Msk (0xfUL) /*!< VLANINMDEN (Bitfield-Mask: 0x0f) */ +/* ====================================================== VLAN_TAG_ID ====================================================== */ + #define R_ETHSW_VLAN_TAG_ID_VLANTAGID_Pos (0UL) /*!< VLANTAGID (Bit 0) */ + #define R_ETHSW_VLAN_TAG_ID_VLANTAGID_Msk (0xffffUL) /*!< VLANTAGID (Bitfield-Mask: 0xffff) */ +/* =================================================== BCAST_STORM_LIMIT =================================================== */ + #define R_ETHSW_BCAST_STORM_LIMIT_TMOUT_Pos (0UL) /*!< TMOUT (Bit 0) */ + #define R_ETHSW_BCAST_STORM_LIMIT_TMOUT_Msk (0xffffUL) /*!< TMOUT (Bitfield-Mask: 0xffff) */ + #define R_ETHSW_BCAST_STORM_LIMIT_BCASTLIMIT_Pos (16UL) /*!< BCASTLIMIT (Bit 16) */ + #define R_ETHSW_BCAST_STORM_LIMIT_BCASTLIMIT_Msk (0xffff0000UL) /*!< BCASTLIMIT (Bitfield-Mask: 0xffff) */ +/* =================================================== MCAST_STORM_LIMIT =================================================== */ + #define R_ETHSW_MCAST_STORM_LIMIT_MCASTLIMIT_Pos (16UL) /*!< MCASTLIMIT (Bit 16) */ + #define R_ETHSW_MCAST_STORM_LIMIT_MCASTLIMIT_Msk (0xffff0000UL) /*!< MCASTLIMIT (Bitfield-Mask: 0xffff) */ +/* ==================================================== MIRROR_CONTROL ===================================================== */ + #define R_ETHSW_MIRROR_CONTROL_PORT_Pos (0UL) /*!< PORT (Bit 0) */ + #define R_ETHSW_MIRROR_CONTROL_PORT_Msk (0x3UL) /*!< PORT (Bitfield-Mask: 0x03) */ + #define R_ETHSW_MIRROR_CONTROL_MIRROR_EN_Pos (4UL) /*!< MIRROR_EN (Bit 4) */ + #define R_ETHSW_MIRROR_CONTROL_MIRROR_EN_Msk (0x10UL) /*!< MIRROR_EN (Bitfield-Mask: 0x01) */ + #define R_ETHSW_MIRROR_CONTROL_ING_MAP_EN_Pos (5UL) /*!< ING_MAP_EN (Bit 5) */ + #define R_ETHSW_MIRROR_CONTROL_ING_MAP_EN_Msk (0x20UL) /*!< ING_MAP_EN (Bitfield-Mask: 0x01) */ + #define R_ETHSW_MIRROR_CONTROL_EG_MAP_EN_Pos (6UL) /*!< EG_MAP_EN (Bit 6) */ + #define R_ETHSW_MIRROR_CONTROL_EG_MAP_EN_Msk (0x40UL) /*!< EG_MAP_EN (Bitfield-Mask: 0x01) */ + #define R_ETHSW_MIRROR_CONTROL_ING_SA_MATCH_Pos (7UL) /*!< ING_SA_MATCH (Bit 7) */ + #define R_ETHSW_MIRROR_CONTROL_ING_SA_MATCH_Msk (0x80UL) /*!< ING_SA_MATCH (Bitfield-Mask: 0x01) */ + #define R_ETHSW_MIRROR_CONTROL_ING_DA_MATCH_Pos (8UL) /*!< ING_DA_MATCH (Bit 8) */ + #define R_ETHSW_MIRROR_CONTROL_ING_DA_MATCH_Msk (0x100UL) /*!< ING_DA_MATCH (Bitfield-Mask: 0x01) */ + #define R_ETHSW_MIRROR_CONTROL_EG_SA_MATCH_Pos (9UL) /*!< EG_SA_MATCH (Bit 9) */ + #define R_ETHSW_MIRROR_CONTROL_EG_SA_MATCH_Msk (0x200UL) /*!< EG_SA_MATCH (Bitfield-Mask: 0x01) */ + #define R_ETHSW_MIRROR_CONTROL_EG_DA_MATCH_Pos (10UL) /*!< EG_DA_MATCH (Bit 10) */ + #define R_ETHSW_MIRROR_CONTROL_EG_DA_MATCH_Msk (0x400UL) /*!< EG_DA_MATCH (Bitfield-Mask: 0x01) */ +/* ===================================================== MIRROR_EG_MAP ===================================================== */ + #define R_ETHSW_MIRROR_EG_MAP_EMAP_Pos (0UL) /*!< EMAP (Bit 0) */ + #define R_ETHSW_MIRROR_EG_MAP_EMAP_Msk (0xfUL) /*!< EMAP (Bitfield-Mask: 0x0f) */ +/* ==================================================== MIRROR_ING_MAP ===================================================== */ + #define R_ETHSW_MIRROR_ING_MAP_IMAP_Pos (0UL) /*!< IMAP (Bit 0) */ + #define R_ETHSW_MIRROR_ING_MAP_IMAP_Msk (0xfUL) /*!< IMAP (Bitfield-Mask: 0x0f) */ +/* ===================================================== MIRROR_ISRC_0 ===================================================== */ + #define R_ETHSW_MIRROR_ISRC_0_ISRC_Pos (0UL) /*!< ISRC (Bit 0) */ + #define R_ETHSW_MIRROR_ISRC_0_ISRC_Msk (0xffffffffUL) /*!< ISRC (Bitfield-Mask: 0xffffffff) */ +/* ===================================================== MIRROR_ISRC_1 ===================================================== */ + #define R_ETHSW_MIRROR_ISRC_1_ISRC_Pos (0UL) /*!< ISRC (Bit 0) */ + #define R_ETHSW_MIRROR_ISRC_1_ISRC_Msk (0xffffUL) /*!< ISRC (Bitfield-Mask: 0xffff) */ +/* ===================================================== MIRROR_IDST_0 ===================================================== */ + #define R_ETHSW_MIRROR_IDST_0_IDST_Pos (0UL) /*!< IDST (Bit 0) */ + #define R_ETHSW_MIRROR_IDST_0_IDST_Msk (0xffffffffUL) /*!< IDST (Bitfield-Mask: 0xffffffff) */ +/* ===================================================== MIRROR_IDST_1 ===================================================== */ + #define R_ETHSW_MIRROR_IDST_1_IDST_Pos (0UL) /*!< IDST (Bit 0) */ + #define R_ETHSW_MIRROR_IDST_1_IDST_Msk (0xffffUL) /*!< IDST (Bitfield-Mask: 0xffff) */ +/* ===================================================== MIRROR_ESRC_0 ===================================================== */ + #define R_ETHSW_MIRROR_ESRC_0_ESRC_Pos (0UL) /*!< ESRC (Bit 0) */ + #define R_ETHSW_MIRROR_ESRC_0_ESRC_Msk (0xffffffffUL) /*!< ESRC (Bitfield-Mask: 0xffffffff) */ +/* ===================================================== MIRROR_ESRC_1 ===================================================== */ + #define R_ETHSW_MIRROR_ESRC_1_ESRC_Pos (0UL) /*!< ESRC (Bit 0) */ + #define R_ETHSW_MIRROR_ESRC_1_ESRC_Msk (0xffffUL) /*!< ESRC (Bitfield-Mask: 0xffff) */ +/* ===================================================== MIRROR_EDST_0 ===================================================== */ + #define R_ETHSW_MIRROR_EDST_0_EDST_Pos (0UL) /*!< EDST (Bit 0) */ + #define R_ETHSW_MIRROR_EDST_0_EDST_Msk (0xffffffffUL) /*!< EDST (Bitfield-Mask: 0xffffffff) */ +/* ===================================================== MIRROR_EDST_1 ===================================================== */ + #define R_ETHSW_MIRROR_EDST_1_EDST_Pos (0UL) /*!< EDST (Bit 0) */ + #define R_ETHSW_MIRROR_EDST_1_EDST_Msk (0xffffUL) /*!< EDST (Bitfield-Mask: 0xffff) */ +/* ====================================================== MIRROR_CNT ======================================================= */ + #define R_ETHSW_MIRROR_CNT_CNT_Pos (0UL) /*!< CNT (Bit 0) */ + #define R_ETHSW_MIRROR_CNT_CNT_Msk (0xffUL) /*!< CNT (Bitfield-Mask: 0xff) */ +/* ================================================== UCAST_DEFAULT_MASK1 ================================================== */ + #define R_ETHSW_UCAST_DEFAULT_MASK1_UCASTDM1_Pos (0UL) /*!< UCASTDM1 (Bit 0) */ + #define R_ETHSW_UCAST_DEFAULT_MASK1_UCASTDM1_Msk (0xfUL) /*!< UCASTDM1 (Bitfield-Mask: 0x0f) */ +/* ================================================== BCAST_DEFAULT_MASK1 ================================================== */ + #define R_ETHSW_BCAST_DEFAULT_MASK1_BCASTDM1_Pos (0UL) /*!< BCASTDM1 (Bit 0) */ + #define R_ETHSW_BCAST_DEFAULT_MASK1_BCASTDM1_Msk (0xfUL) /*!< BCASTDM1 (Bitfield-Mask: 0x0f) */ +/* ================================================== MCAST_DEFAULT_MASK1 ================================================== */ + #define R_ETHSW_MCAST_DEFAULT_MASK1_MCASTDM1_Pos (0UL) /*!< MCASTDM1 (Bit 0) */ + #define R_ETHSW_MCAST_DEFAULT_MASK1_MCASTDM1_Msk (0xfUL) /*!< MCASTDM1 (Bitfield-Mask: 0x0f) */ +/* ================================================== PORT_XCAST_MASK_SEL ================================================== */ + #define R_ETHSW_PORT_XCAST_MASK_SEL_MSEL_Pos (0UL) /*!< MSEL (Bit 0) */ + #define R_ETHSW_PORT_XCAST_MASK_SEL_MSEL_Msk (0xfUL) /*!< MSEL (Bitfield-Mask: 0x0f) */ +/* =================================================== QMGR_ST_MINCELLS ==================================================== */ + #define R_ETHSW_QMGR_ST_MINCELLS_STMINCELLS_Pos (0UL) /*!< STMINCELLS (Bit 0) */ + #define R_ETHSW_QMGR_ST_MINCELLS_STMINCELLS_Msk (0x7ffUL) /*!< STMINCELLS (Bitfield-Mask: 0x7ff) */ +/* ===================================================== QMGR_RED_MIN4 ===================================================== */ + #define R_ETHSW_QMGR_RED_MIN4_CFGRED_MINTH4_Pos (0UL) /*!< CFGRED_MINTH4 (Bit 0) */ + #define R_ETHSW_QMGR_RED_MIN4_CFGRED_MINTH4_Msk (0xffffffffUL) /*!< CFGRED_MINTH4 (Bitfield-Mask: 0xffffffff) */ +/* ===================================================== QMGR_RED_MAX4 ===================================================== */ + #define R_ETHSW_QMGR_RED_MAX4_CFGRED_MAXTH4_Pos (0UL) /*!< CFGRED_MAXTH4 (Bit 0) */ + #define R_ETHSW_QMGR_RED_MAX4_CFGRED_MAXTH4_Msk (0xffffffffUL) /*!< CFGRED_MAXTH4 (Bitfield-Mask: 0xffffffff) */ +/* ==================================================== QMGR_RED_CONFIG ==================================================== */ + #define R_ETHSW_QMGR_RED_CONFIG_QUEUE_RED_EN_Pos (0UL) /*!< QUEUE_RED_EN (Bit 0) */ + #define R_ETHSW_QMGR_RED_CONFIG_QUEUE_RED_EN_Msk (0xfUL) /*!< QUEUE_RED_EN (Bitfield-Mask: 0x0f) */ + #define R_ETHSW_QMGR_RED_CONFIG_GACTIVITY_EN_Pos (8UL) /*!< GACTIVITY_EN (Bit 8) */ + #define R_ETHSW_QMGR_RED_CONFIG_GACTIVITY_EN_Msk (0x100UL) /*!< GACTIVITY_EN (Bitfield-Mask: 0x01) */ +/* ====================================================== IMC_STATUS ======================================================= */ + #define R_ETHSW_IMC_STATUS_CELLS_AVAILABLE_Pos (0UL) /*!< CELLS_AVAILABLE (Bit 0) */ + #define R_ETHSW_IMC_STATUS_CELLS_AVAILABLE_Msk (0xffffffUL) /*!< CELLS_AVAILABLE (Bitfield-Mask: 0xffffff) */ + #define R_ETHSW_IMC_STATUS_CF_ERR_Pos (24UL) /*!< CF_ERR (Bit 24) */ + #define R_ETHSW_IMC_STATUS_CF_ERR_Msk (0x1000000UL) /*!< CF_ERR (Bitfield-Mask: 0x01) */ + #define R_ETHSW_IMC_STATUS_DE_ERR_Pos (25UL) /*!< DE_ERR (Bit 25) */ + #define R_ETHSW_IMC_STATUS_DE_ERR_Msk (0x2000000UL) /*!< DE_ERR (Bitfield-Mask: 0x01) */ + #define R_ETHSW_IMC_STATUS_DE_INIT_Pos (26UL) /*!< DE_INIT (Bit 26) */ + #define R_ETHSW_IMC_STATUS_DE_INIT_Msk (0x4000000UL) /*!< DE_INIT (Bitfield-Mask: 0x01) */ + #define R_ETHSW_IMC_STATUS_MEM_FULL_Pos (27UL) /*!< MEM_FULL (Bit 27) */ + #define R_ETHSW_IMC_STATUS_MEM_FULL_Msk (0x8000000UL) /*!< MEM_FULL (Bitfield-Mask: 0x01) */ +/* ===================================================== IMC_ERR_FULL ====================================================== */ + #define R_ETHSW_IMC_ERR_FULL_IPC_ERR_FULL_Pos (0UL) /*!< IPC_ERR_FULL (Bit 0) */ + #define R_ETHSW_IMC_ERR_FULL_IPC_ERR_FULL_Msk (0xfUL) /*!< IPC_ERR_FULL (Bitfield-Mask: 0x0f) */ + #define R_ETHSW_IMC_ERR_FULL_IPC_ERR_TRUNC_Pos (16UL) /*!< IPC_ERR_TRUNC (Bit 16) */ + #define R_ETHSW_IMC_ERR_FULL_IPC_ERR_TRUNC_Msk (0xf0000UL) /*!< IPC_ERR_TRUNC (Bitfield-Mask: 0x0f) */ +/* ===================================================== IMC_ERR_IFACE ===================================================== */ + #define R_ETHSW_IMC_ERR_IFACE_IPC_ERR_IFACE_Pos (0UL) /*!< IPC_ERR_IFACE (Bit 0) */ + #define R_ETHSW_IMC_ERR_IFACE_IPC_ERR_IFACE_Msk (0xfUL) /*!< IPC_ERR_IFACE (Bitfield-Mask: 0x0f) */ + #define R_ETHSW_IMC_ERR_IFACE_WBUF_OVF_Pos (16UL) /*!< WBUF_OVF (Bit 16) */ + #define R_ETHSW_IMC_ERR_IFACE_WBUF_OVF_Msk (0xf0000UL) /*!< WBUF_OVF (Bitfield-Mask: 0x0f) */ +/* ==================================================== IMC_ERR_QOFLOW ===================================================== */ + #define R_ETHSW_IMC_ERR_QOFLOW_OP_ERR_Pos (0UL) /*!< OP_ERR (Bit 0) */ + #define R_ETHSW_IMC_ERR_QOFLOW_OP_ERR_Msk (0xfUL) /*!< OP_ERR (Bitfield-Mask: 0x0f) */ +/* ====================================================== IMC_CONFIG ======================================================= */ + #define R_ETHSW_IMC_CONFIG_WFQ_EN_Pos (0UL) /*!< WFQ_EN (Bit 0) */ + #define R_ETHSW_IMC_CONFIG_WFQ_EN_Msk (0x1UL) /*!< WFQ_EN (Bitfield-Mask: 0x01) */ + #define R_ETHSW_IMC_CONFIG_RSV_ENA_Pos (1UL) /*!< RSV_ENA (Bit 1) */ + #define R_ETHSW_IMC_CONFIG_RSV_ENA_Msk (0x2UL) /*!< RSV_ENA (Bitfield-Mask: 0x01) */ + #define R_ETHSW_IMC_CONFIG_SPEED_HIPRI_THR_Pos (2UL) /*!< SPEED_HIPRI_THR (Bit 2) */ + #define R_ETHSW_IMC_CONFIG_SPEED_HIPRI_THR_Msk (0x1cUL) /*!< SPEED_HIPRI_THR (Bitfield-Mask: 0x07) */ + #define R_ETHSW_IMC_CONFIG_CTFL_EMPTY_MD_Pos (5UL) /*!< CTFL_EMPTY_MD (Bit 5) */ + #define R_ETHSW_IMC_CONFIG_CTFL_EMPTY_MD_Msk (0x20UL) /*!< CTFL_EMPTY_MD (Bitfield-Mask: 0x01) */ +/* ===================================================== IMC_ERR_ALLOC ===================================================== */ + #define R_ETHSW_IMC_ERR_ALLOC_DISC_FULL_Pos (0UL) /*!< DISC_FULL (Bit 0) */ + #define R_ETHSW_IMC_ERR_ALLOC_DISC_FULL_Msk (0xfUL) /*!< DISC_FULL (Bitfield-Mask: 0x0f) */ + #define R_ETHSW_IMC_ERR_ALLOC_DISC_LATE_Pos (16UL) /*!< DISC_LATE (Bit 16) */ + #define R_ETHSW_IMC_ERR_ALLOC_DISC_LATE_Msk (0xf0000UL) /*!< DISC_LATE (Bitfield-Mask: 0x0f) */ +/* ======================================================= GPARSER0 ======================================================== */ + #define R_ETHSW_GPARSER0_MASK_VAL2_Pos (0UL) /*!< MASK_VAL2 (Bit 0) */ + #define R_ETHSW_GPARSER0_MASK_VAL2_Msk (0xffUL) /*!< MASK_VAL2 (Bitfield-Mask: 0xff) */ + #define R_ETHSW_GPARSER0_COMPARE_VAL_Pos (8UL) /*!< COMPARE_VAL (Bit 8) */ + #define R_ETHSW_GPARSER0_COMPARE_VAL_Msk (0xff00UL) /*!< COMPARE_VAL (Bitfield-Mask: 0xff) */ + #define R_ETHSW_GPARSER0_OFFSET_Pos (16UL) /*!< OFFSET (Bit 16) */ + #define R_ETHSW_GPARSER0_OFFSET_Msk (0x3f0000UL) /*!< OFFSET (Bitfield-Mask: 0x3f) */ + #define R_ETHSW_GPARSER0_OFFSET_DA_Pos (23UL) /*!< OFFSET_DA (Bit 23) */ + #define R_ETHSW_GPARSER0_OFFSET_DA_Msk (0x800000UL) /*!< OFFSET_DA (Bitfield-Mask: 0x01) */ + #define R_ETHSW_GPARSER0_VALID_Pos (24UL) /*!< VALID (Bit 24) */ + #define R_ETHSW_GPARSER0_VALID_Msk (0x1000000UL) /*!< VALID (Bitfield-Mask: 0x01) */ + #define R_ETHSW_GPARSER0_SKIPVLAN_Pos (25UL) /*!< SKIPVLAN (Bit 25) */ + #define R_ETHSW_GPARSER0_SKIPVLAN_Msk (0x2000000UL) /*!< SKIPVLAN (Bitfield-Mask: 0x01) */ + #define R_ETHSW_GPARSER0_IPDATA_Pos (26UL) /*!< IPDATA (Bit 26) */ + #define R_ETHSW_GPARSER0_IPDATA_Msk (0x4000000UL) /*!< IPDATA (Bitfield-Mask: 0x01) */ + #define R_ETHSW_GPARSER0_IPPROTOCOL_Pos (27UL) /*!< IPPROTOCOL (Bit 27) */ + #define R_ETHSW_GPARSER0_IPPROTOCOL_Msk (0x8000000UL) /*!< IPPROTOCOL (Bitfield-Mask: 0x01) */ + #define R_ETHSW_GPARSER0_CMP16_Pos (28UL) /*!< CMP16 (Bit 28) */ + #define R_ETHSW_GPARSER0_CMP16_Msk (0x10000000UL) /*!< CMP16 (Bitfield-Mask: 0x01) */ + #define R_ETHSW_GPARSER0_OFFSET_PLUS2_Pos (29UL) /*!< OFFSET_PLUS2 (Bit 29) */ + #define R_ETHSW_GPARSER0_OFFSET_PLUS2_Msk (0x20000000UL) /*!< OFFSET_PLUS2 (Bitfield-Mask: 0x01) */ + #define R_ETHSW_GPARSER0_CMP_MASK_OR_Pos (30UL) /*!< CMP_MASK_OR (Bit 30) */ + #define R_ETHSW_GPARSER0_CMP_MASK_OR_Msk (0x40000000UL) /*!< CMP_MASK_OR (Bitfield-Mask: 0x01) */ +/* ======================================================= GPARSER1 ======================================================== */ + #define R_ETHSW_GPARSER1_MASK_VAL2_Pos (0UL) /*!< MASK_VAL2 (Bit 0) */ + #define R_ETHSW_GPARSER1_MASK_VAL2_Msk (0xffUL) /*!< MASK_VAL2 (Bitfield-Mask: 0xff) */ + #define R_ETHSW_GPARSER1_COMPARE_VAL_Pos (8UL) /*!< COMPARE_VAL (Bit 8) */ + #define R_ETHSW_GPARSER1_COMPARE_VAL_Msk (0xff00UL) /*!< COMPARE_VAL (Bitfield-Mask: 0xff) */ + #define R_ETHSW_GPARSER1_OFFSET_Pos (16UL) /*!< OFFSET (Bit 16) */ + #define R_ETHSW_GPARSER1_OFFSET_Msk (0x3f0000UL) /*!< OFFSET (Bitfield-Mask: 0x3f) */ + #define R_ETHSW_GPARSER1_OFFSET_DA_Pos (23UL) /*!< OFFSET_DA (Bit 23) */ + #define R_ETHSW_GPARSER1_OFFSET_DA_Msk (0x800000UL) /*!< OFFSET_DA (Bitfield-Mask: 0x01) */ + #define R_ETHSW_GPARSER1_VALID_Pos (24UL) /*!< VALID (Bit 24) */ + #define R_ETHSW_GPARSER1_VALID_Msk (0x1000000UL) /*!< VALID (Bitfield-Mask: 0x01) */ + #define R_ETHSW_GPARSER1_SKIPVLAN_Pos (25UL) /*!< SKIPVLAN (Bit 25) */ + #define R_ETHSW_GPARSER1_SKIPVLAN_Msk (0x2000000UL) /*!< SKIPVLAN (Bitfield-Mask: 0x01) */ + #define R_ETHSW_GPARSER1_IPDATA_Pos (26UL) /*!< IPDATA (Bit 26) */ + #define R_ETHSW_GPARSER1_IPDATA_Msk (0x4000000UL) /*!< IPDATA (Bitfield-Mask: 0x01) */ + #define R_ETHSW_GPARSER1_IPPROTOCOL_Pos (27UL) /*!< IPPROTOCOL (Bit 27) */ + #define R_ETHSW_GPARSER1_IPPROTOCOL_Msk (0x8000000UL) /*!< IPPROTOCOL (Bitfield-Mask: 0x01) */ + #define R_ETHSW_GPARSER1_CMP16_Pos (28UL) /*!< CMP16 (Bit 28) */ + #define R_ETHSW_GPARSER1_CMP16_Msk (0x10000000UL) /*!< CMP16 (Bitfield-Mask: 0x01) */ + #define R_ETHSW_GPARSER1_OFFSET_PLUS2_Pos (29UL) /*!< OFFSET_PLUS2 (Bit 29) */ + #define R_ETHSW_GPARSER1_OFFSET_PLUS2_Msk (0x20000000UL) /*!< OFFSET_PLUS2 (Bitfield-Mask: 0x01) */ + #define R_ETHSW_GPARSER1_CMP_MASK_OR_Pos (30UL) /*!< CMP_MASK_OR (Bit 30) */ + #define R_ETHSW_GPARSER1_CMP_MASK_OR_Msk (0x40000000UL) /*!< CMP_MASK_OR (Bitfield-Mask: 0x01) */ +/* ======================================================= GPARSER2 ======================================================== */ + #define R_ETHSW_GPARSER2_MASK_VAL2_Pos (0UL) /*!< MASK_VAL2 (Bit 0) */ + #define R_ETHSW_GPARSER2_MASK_VAL2_Msk (0xffUL) /*!< MASK_VAL2 (Bitfield-Mask: 0xff) */ + #define R_ETHSW_GPARSER2_COMPARE_VAL_Pos (8UL) /*!< COMPARE_VAL (Bit 8) */ + #define R_ETHSW_GPARSER2_COMPARE_VAL_Msk (0xff00UL) /*!< COMPARE_VAL (Bitfield-Mask: 0xff) */ + #define R_ETHSW_GPARSER2_OFFSET_Pos (16UL) /*!< OFFSET (Bit 16) */ + #define R_ETHSW_GPARSER2_OFFSET_Msk (0x3f0000UL) /*!< OFFSET (Bitfield-Mask: 0x3f) */ + #define R_ETHSW_GPARSER2_OFFSET_DA_Pos (23UL) /*!< OFFSET_DA (Bit 23) */ + #define R_ETHSW_GPARSER2_OFFSET_DA_Msk (0x800000UL) /*!< OFFSET_DA (Bitfield-Mask: 0x01) */ + #define R_ETHSW_GPARSER2_VALID_Pos (24UL) /*!< VALID (Bit 24) */ + #define R_ETHSW_GPARSER2_VALID_Msk (0x1000000UL) /*!< VALID (Bitfield-Mask: 0x01) */ + #define R_ETHSW_GPARSER2_SKIPVLAN_Pos (25UL) /*!< SKIPVLAN (Bit 25) */ + #define R_ETHSW_GPARSER2_SKIPVLAN_Msk (0x2000000UL) /*!< SKIPVLAN (Bitfield-Mask: 0x01) */ + #define R_ETHSW_GPARSER2_IPDATA_Pos (26UL) /*!< IPDATA (Bit 26) */ + #define R_ETHSW_GPARSER2_IPDATA_Msk (0x4000000UL) /*!< IPDATA (Bitfield-Mask: 0x01) */ + #define R_ETHSW_GPARSER2_IPPROTOCOL_Pos (27UL) /*!< IPPROTOCOL (Bit 27) */ + #define R_ETHSW_GPARSER2_IPPROTOCOL_Msk (0x8000000UL) /*!< IPPROTOCOL (Bitfield-Mask: 0x01) */ + #define R_ETHSW_GPARSER2_CMP16_Pos (28UL) /*!< CMP16 (Bit 28) */ + #define R_ETHSW_GPARSER2_CMP16_Msk (0x10000000UL) /*!< CMP16 (Bitfield-Mask: 0x01) */ + #define R_ETHSW_GPARSER2_OFFSET_PLUS2_Pos (29UL) /*!< OFFSET_PLUS2 (Bit 29) */ + #define R_ETHSW_GPARSER2_OFFSET_PLUS2_Msk (0x20000000UL) /*!< OFFSET_PLUS2 (Bitfield-Mask: 0x01) */ + #define R_ETHSW_GPARSER2_CMP_MASK_OR_Pos (30UL) /*!< CMP_MASK_OR (Bit 30) */ + #define R_ETHSW_GPARSER2_CMP_MASK_OR_Msk (0x40000000UL) /*!< CMP_MASK_OR (Bitfield-Mask: 0x01) */ +/* ======================================================= GPARSER3 ======================================================== */ + #define R_ETHSW_GPARSER3_MASK_VAL2_Pos (0UL) /*!< MASK_VAL2 (Bit 0) */ + #define R_ETHSW_GPARSER3_MASK_VAL2_Msk (0xffUL) /*!< MASK_VAL2 (Bitfield-Mask: 0xff) */ + #define R_ETHSW_GPARSER3_COMPARE_VAL_Pos (8UL) /*!< COMPARE_VAL (Bit 8) */ + #define R_ETHSW_GPARSER3_COMPARE_VAL_Msk (0xff00UL) /*!< COMPARE_VAL (Bitfield-Mask: 0xff) */ + #define R_ETHSW_GPARSER3_OFFSET_Pos (16UL) /*!< OFFSET (Bit 16) */ + #define R_ETHSW_GPARSER3_OFFSET_Msk (0x3f0000UL) /*!< OFFSET (Bitfield-Mask: 0x3f) */ + #define R_ETHSW_GPARSER3_OFFSET_DA_Pos (23UL) /*!< OFFSET_DA (Bit 23) */ + #define R_ETHSW_GPARSER3_OFFSET_DA_Msk (0x800000UL) /*!< OFFSET_DA (Bitfield-Mask: 0x01) */ + #define R_ETHSW_GPARSER3_VALID_Pos (24UL) /*!< VALID (Bit 24) */ + #define R_ETHSW_GPARSER3_VALID_Msk (0x1000000UL) /*!< VALID (Bitfield-Mask: 0x01) */ + #define R_ETHSW_GPARSER3_SKIPVLAN_Pos (25UL) /*!< SKIPVLAN (Bit 25) */ + #define R_ETHSW_GPARSER3_SKIPVLAN_Msk (0x2000000UL) /*!< SKIPVLAN (Bitfield-Mask: 0x01) */ + #define R_ETHSW_GPARSER3_IPDATA_Pos (26UL) /*!< IPDATA (Bit 26) */ + #define R_ETHSW_GPARSER3_IPDATA_Msk (0x4000000UL) /*!< IPDATA (Bitfield-Mask: 0x01) */ + #define R_ETHSW_GPARSER3_IPPROTOCOL_Pos (27UL) /*!< IPPROTOCOL (Bit 27) */ + #define R_ETHSW_GPARSER3_IPPROTOCOL_Msk (0x8000000UL) /*!< IPPROTOCOL (Bitfield-Mask: 0x01) */ + #define R_ETHSW_GPARSER3_CMP16_Pos (28UL) /*!< CMP16 (Bit 28) */ + #define R_ETHSW_GPARSER3_CMP16_Msk (0x10000000UL) /*!< CMP16 (Bitfield-Mask: 0x01) */ + #define R_ETHSW_GPARSER3_OFFSET_PLUS2_Pos (29UL) /*!< OFFSET_PLUS2 (Bit 29) */ + #define R_ETHSW_GPARSER3_OFFSET_PLUS2_Msk (0x20000000UL) /*!< OFFSET_PLUS2 (Bitfield-Mask: 0x01) */ + #define R_ETHSW_GPARSER3_CMP_MASK_OR_Pos (30UL) /*!< CMP_MASK_OR (Bit 30) */ + #define R_ETHSW_GPARSER3_CMP_MASK_OR_Msk (0x40000000UL) /*!< CMP_MASK_OR (Bitfield-Mask: 0x01) */ +/* ======================================================== GARITH0 ======================================================== */ + #define R_ETHSW_GARITH0_NOT_INP_Pos (0UL) /*!< NOT_INP (Bit 0) */ + #define R_ETHSW_GARITH0_NOT_INP_Msk (0xfUL) /*!< NOT_INP (Bitfield-Mask: 0x0f) */ + #define R_ETHSW_GARITH0_SEL_MATCH_Pos (8UL) /*!< SEL_MATCH (Bit 8) */ + #define R_ETHSW_GARITH0_SEL_MATCH_Msk (0xf00UL) /*!< SEL_MATCH (Bitfield-Mask: 0x0f) */ + #define R_ETHSW_GARITH0_SEL_ARITH0_Pos (12UL) /*!< SEL_ARITH0 (Bit 12) */ + #define R_ETHSW_GARITH0_SEL_ARITH0_Msk (0x1000UL) /*!< SEL_ARITH0 (Bitfield-Mask: 0x01) */ + #define R_ETHSW_GARITH0_SEL_ARITH1_Pos (13UL) /*!< SEL_ARITH1 (Bit 13) */ + #define R_ETHSW_GARITH0_SEL_ARITH1_Msk (0x2000UL) /*!< SEL_ARITH1 (Bitfield-Mask: 0x01) */ + #define R_ETHSW_GARITH0_SEL_ARITH2_Pos (14UL) /*!< SEL_ARITH2 (Bit 14) */ + #define R_ETHSW_GARITH0_SEL_ARITH2_Msk (0x4000UL) /*!< SEL_ARITH2 (Bitfield-Mask: 0x01) */ + #define R_ETHSW_GARITH0_OP_Pos (16UL) /*!< OP (Bit 16) */ + #define R_ETHSW_GARITH0_OP_Msk (0x10000UL) /*!< OP (Bitfield-Mask: 0x01) */ + #define R_ETHSW_GARITH0_RESULT_INV_Pos (17UL) /*!< RESULT_INV (Bit 17) */ + #define R_ETHSW_GARITH0_RESULT_INV_Msk (0x20000UL) /*!< RESULT_INV (Bitfield-Mask: 0x01) */ + #define R_ETHSW_GARITH0_SNP_MD_Pos (20UL) /*!< SNP_MD (Bit 20) */ + #define R_ETHSW_GARITH0_SNP_MD_Msk (0x300000UL) /*!< SNP_MD (Bitfield-Mask: 0x03) */ +/* ======================================================== GARITH1 ======================================================== */ + #define R_ETHSW_GARITH1_NOT_INP_Pos (0UL) /*!< NOT_INP (Bit 0) */ + #define R_ETHSW_GARITH1_NOT_INP_Msk (0xfUL) /*!< NOT_INP (Bitfield-Mask: 0x0f) */ + #define R_ETHSW_GARITH1_SEL_MATCH_Pos (8UL) /*!< SEL_MATCH (Bit 8) */ + #define R_ETHSW_GARITH1_SEL_MATCH_Msk (0xf00UL) /*!< SEL_MATCH (Bitfield-Mask: 0x0f) */ + #define R_ETHSW_GARITH1_SEL_ARITH0_Pos (12UL) /*!< SEL_ARITH0 (Bit 12) */ + #define R_ETHSW_GARITH1_SEL_ARITH0_Msk (0x1000UL) /*!< SEL_ARITH0 (Bitfield-Mask: 0x01) */ + #define R_ETHSW_GARITH1_SEL_ARITH1_Pos (13UL) /*!< SEL_ARITH1 (Bit 13) */ + #define R_ETHSW_GARITH1_SEL_ARITH1_Msk (0x2000UL) /*!< SEL_ARITH1 (Bitfield-Mask: 0x01) */ + #define R_ETHSW_GARITH1_SEL_ARITH2_Pos (14UL) /*!< SEL_ARITH2 (Bit 14) */ + #define R_ETHSW_GARITH1_SEL_ARITH2_Msk (0x4000UL) /*!< SEL_ARITH2 (Bitfield-Mask: 0x01) */ + #define R_ETHSW_GARITH1_OP_Pos (16UL) /*!< OP (Bit 16) */ + #define R_ETHSW_GARITH1_OP_Msk (0x10000UL) /*!< OP (Bitfield-Mask: 0x01) */ + #define R_ETHSW_GARITH1_RESULT_INV_Pos (17UL) /*!< RESULT_INV (Bit 17) */ + #define R_ETHSW_GARITH1_RESULT_INV_Msk (0x20000UL) /*!< RESULT_INV (Bitfield-Mask: 0x01) */ + #define R_ETHSW_GARITH1_SNP_MD_Pos (20UL) /*!< SNP_MD (Bit 20) */ + #define R_ETHSW_GARITH1_SNP_MD_Msk (0x300000UL) /*!< SNP_MD (Bitfield-Mask: 0x03) */ +/* ======================================================== GARITH2 ======================================================== */ + #define R_ETHSW_GARITH2_NOT_INP_Pos (0UL) /*!< NOT_INP (Bit 0) */ + #define R_ETHSW_GARITH2_NOT_INP_Msk (0xfUL) /*!< NOT_INP (Bitfield-Mask: 0x0f) */ + #define R_ETHSW_GARITH2_SEL_MATCH_Pos (8UL) /*!< SEL_MATCH (Bit 8) */ + #define R_ETHSW_GARITH2_SEL_MATCH_Msk (0xf00UL) /*!< SEL_MATCH (Bitfield-Mask: 0x0f) */ + #define R_ETHSW_GARITH2_SEL_ARITH0_Pos (12UL) /*!< SEL_ARITH0 (Bit 12) */ + #define R_ETHSW_GARITH2_SEL_ARITH0_Msk (0x1000UL) /*!< SEL_ARITH0 (Bitfield-Mask: 0x01) */ + #define R_ETHSW_GARITH2_SEL_ARITH1_Pos (13UL) /*!< SEL_ARITH1 (Bit 13) */ + #define R_ETHSW_GARITH2_SEL_ARITH1_Msk (0x2000UL) /*!< SEL_ARITH1 (Bitfield-Mask: 0x01) */ + #define R_ETHSW_GARITH2_SEL_ARITH2_Pos (14UL) /*!< SEL_ARITH2 (Bit 14) */ + #define R_ETHSW_GARITH2_SEL_ARITH2_Msk (0x4000UL) /*!< SEL_ARITH2 (Bitfield-Mask: 0x01) */ + #define R_ETHSW_GARITH2_OP_Pos (16UL) /*!< OP (Bit 16) */ + #define R_ETHSW_GARITH2_OP_Msk (0x10000UL) /*!< OP (Bitfield-Mask: 0x01) */ + #define R_ETHSW_GARITH2_RESULT_INV_Pos (17UL) /*!< RESULT_INV (Bit 17) */ + #define R_ETHSW_GARITH2_RESULT_INV_Msk (0x20000UL) /*!< RESULT_INV (Bitfield-Mask: 0x01) */ + #define R_ETHSW_GARITH2_SNP_MD_Pos (20UL) /*!< SNP_MD (Bit 20) */ + #define R_ETHSW_GARITH2_SNP_MD_Msk (0x300000UL) /*!< SNP_MD (Bitfield-Mask: 0x03) */ +/* ======================================================== GARITH3 ======================================================== */ + #define R_ETHSW_GARITH3_NOT_INP_Pos (0UL) /*!< NOT_INP (Bit 0) */ + #define R_ETHSW_GARITH3_NOT_INP_Msk (0xfUL) /*!< NOT_INP (Bitfield-Mask: 0x0f) */ + #define R_ETHSW_GARITH3_SEL_MATCH_Pos (8UL) /*!< SEL_MATCH (Bit 8) */ + #define R_ETHSW_GARITH3_SEL_MATCH_Msk (0xf00UL) /*!< SEL_MATCH (Bitfield-Mask: 0x0f) */ + #define R_ETHSW_GARITH3_SEL_ARITH0_Pos (12UL) /*!< SEL_ARITH0 (Bit 12) */ + #define R_ETHSW_GARITH3_SEL_ARITH0_Msk (0x1000UL) /*!< SEL_ARITH0 (Bitfield-Mask: 0x01) */ + #define R_ETHSW_GARITH3_SEL_ARITH1_Pos (13UL) /*!< SEL_ARITH1 (Bit 13) */ + #define R_ETHSW_GARITH3_SEL_ARITH1_Msk (0x2000UL) /*!< SEL_ARITH1 (Bitfield-Mask: 0x01) */ + #define R_ETHSW_GARITH3_SEL_ARITH2_Pos (14UL) /*!< SEL_ARITH2 (Bit 14) */ + #define R_ETHSW_GARITH3_SEL_ARITH2_Msk (0x4000UL) /*!< SEL_ARITH2 (Bitfield-Mask: 0x01) */ + #define R_ETHSW_GARITH3_OP_Pos (16UL) /*!< OP (Bit 16) */ + #define R_ETHSW_GARITH3_OP_Msk (0x10000UL) /*!< OP (Bitfield-Mask: 0x01) */ + #define R_ETHSW_GARITH3_RESULT_INV_Pos (17UL) /*!< RESULT_INV (Bit 17) */ + #define R_ETHSW_GARITH3_RESULT_INV_Msk (0x20000UL) /*!< RESULT_INV (Bitfield-Mask: 0x01) */ + #define R_ETHSW_GARITH3_SNP_MD_Pos (20UL) /*!< SNP_MD (Bit 20) */ + #define R_ETHSW_GARITH3_SNP_MD_Msk (0x300000UL) /*!< SNP_MD (Bitfield-Mask: 0x03) */ +/* ======================================================= GPARSER4 ======================================================== */ + #define R_ETHSW_GPARSER4_MASK_VAL2_Pos (0UL) /*!< MASK_VAL2 (Bit 0) */ + #define R_ETHSW_GPARSER4_MASK_VAL2_Msk (0xffUL) /*!< MASK_VAL2 (Bitfield-Mask: 0xff) */ + #define R_ETHSW_GPARSER4_COMPARE_VAL_Pos (8UL) /*!< COMPARE_VAL (Bit 8) */ + #define R_ETHSW_GPARSER4_COMPARE_VAL_Msk (0xff00UL) /*!< COMPARE_VAL (Bitfield-Mask: 0xff) */ + #define R_ETHSW_GPARSER4_OFFSET_Pos (16UL) /*!< OFFSET (Bit 16) */ + #define R_ETHSW_GPARSER4_OFFSET_Msk (0x3f0000UL) /*!< OFFSET (Bitfield-Mask: 0x3f) */ + #define R_ETHSW_GPARSER4_OFFSET_DA_Pos (23UL) /*!< OFFSET_DA (Bit 23) */ + #define R_ETHSW_GPARSER4_OFFSET_DA_Msk (0x800000UL) /*!< OFFSET_DA (Bitfield-Mask: 0x01) */ + #define R_ETHSW_GPARSER4_VALID_Pos (24UL) /*!< VALID (Bit 24) */ + #define R_ETHSW_GPARSER4_VALID_Msk (0x1000000UL) /*!< VALID (Bitfield-Mask: 0x01) */ + #define R_ETHSW_GPARSER4_SKIPVLAN_Pos (25UL) /*!< SKIPVLAN (Bit 25) */ + #define R_ETHSW_GPARSER4_SKIPVLAN_Msk (0x2000000UL) /*!< SKIPVLAN (Bitfield-Mask: 0x01) */ + #define R_ETHSW_GPARSER4_IPDATA_Pos (26UL) /*!< IPDATA (Bit 26) */ + #define R_ETHSW_GPARSER4_IPDATA_Msk (0x4000000UL) /*!< IPDATA (Bitfield-Mask: 0x01) */ + #define R_ETHSW_GPARSER4_IPPROTOCOL_Pos (27UL) /*!< IPPROTOCOL (Bit 27) */ + #define R_ETHSW_GPARSER4_IPPROTOCOL_Msk (0x8000000UL) /*!< IPPROTOCOL (Bitfield-Mask: 0x01) */ + #define R_ETHSW_GPARSER4_CMP16_Pos (28UL) /*!< CMP16 (Bit 28) */ + #define R_ETHSW_GPARSER4_CMP16_Msk (0x10000000UL) /*!< CMP16 (Bitfield-Mask: 0x01) */ + #define R_ETHSW_GPARSER4_OFFSET_PLUS2_Pos (29UL) /*!< OFFSET_PLUS2 (Bit 29) */ + #define R_ETHSW_GPARSER4_OFFSET_PLUS2_Msk (0x20000000UL) /*!< OFFSET_PLUS2 (Bitfield-Mask: 0x01) */ + #define R_ETHSW_GPARSER4_CMP_MASK_OR_Pos (30UL) /*!< CMP_MASK_OR (Bit 30) */ + #define R_ETHSW_GPARSER4_CMP_MASK_OR_Msk (0x40000000UL) /*!< CMP_MASK_OR (Bitfield-Mask: 0x01) */ +/* ======================================================= GPARSER5 ======================================================== */ + #define R_ETHSW_GPARSER5_MASK_VAL2_Pos (0UL) /*!< MASK_VAL2 (Bit 0) */ + #define R_ETHSW_GPARSER5_MASK_VAL2_Msk (0xffUL) /*!< MASK_VAL2 (Bitfield-Mask: 0xff) */ + #define R_ETHSW_GPARSER5_COMPARE_VAL_Pos (8UL) /*!< COMPARE_VAL (Bit 8) */ + #define R_ETHSW_GPARSER5_COMPARE_VAL_Msk (0xff00UL) /*!< COMPARE_VAL (Bitfield-Mask: 0xff) */ + #define R_ETHSW_GPARSER5_OFFSET_Pos (16UL) /*!< OFFSET (Bit 16) */ + #define R_ETHSW_GPARSER5_OFFSET_Msk (0x3f0000UL) /*!< OFFSET (Bitfield-Mask: 0x3f) */ + #define R_ETHSW_GPARSER5_OFFSET_DA_Pos (23UL) /*!< OFFSET_DA (Bit 23) */ + #define R_ETHSW_GPARSER5_OFFSET_DA_Msk (0x800000UL) /*!< OFFSET_DA (Bitfield-Mask: 0x01) */ + #define R_ETHSW_GPARSER5_VALID_Pos (24UL) /*!< VALID (Bit 24) */ + #define R_ETHSW_GPARSER5_VALID_Msk (0x1000000UL) /*!< VALID (Bitfield-Mask: 0x01) */ + #define R_ETHSW_GPARSER5_SKIPVLAN_Pos (25UL) /*!< SKIPVLAN (Bit 25) */ + #define R_ETHSW_GPARSER5_SKIPVLAN_Msk (0x2000000UL) /*!< SKIPVLAN (Bitfield-Mask: 0x01) */ + #define R_ETHSW_GPARSER5_IPDATA_Pos (26UL) /*!< IPDATA (Bit 26) */ + #define R_ETHSW_GPARSER5_IPDATA_Msk (0x4000000UL) /*!< IPDATA (Bitfield-Mask: 0x01) */ + #define R_ETHSW_GPARSER5_IPPROTOCOL_Pos (27UL) /*!< IPPROTOCOL (Bit 27) */ + #define R_ETHSW_GPARSER5_IPPROTOCOL_Msk (0x8000000UL) /*!< IPPROTOCOL (Bitfield-Mask: 0x01) */ + #define R_ETHSW_GPARSER5_CMP16_Pos (28UL) /*!< CMP16 (Bit 28) */ + #define R_ETHSW_GPARSER5_CMP16_Msk (0x10000000UL) /*!< CMP16 (Bitfield-Mask: 0x01) */ + #define R_ETHSW_GPARSER5_OFFSET_PLUS2_Pos (29UL) /*!< OFFSET_PLUS2 (Bit 29) */ + #define R_ETHSW_GPARSER5_OFFSET_PLUS2_Msk (0x20000000UL) /*!< OFFSET_PLUS2 (Bitfield-Mask: 0x01) */ + #define R_ETHSW_GPARSER5_CMP_MASK_OR_Pos (30UL) /*!< CMP_MASK_OR (Bit 30) */ + #define R_ETHSW_GPARSER5_CMP_MASK_OR_Msk (0x40000000UL) /*!< CMP_MASK_OR (Bitfield-Mask: 0x01) */ +/* ======================================================= GPARSER6 ======================================================== */ + #define R_ETHSW_GPARSER6_MASK_VAL2_Pos (0UL) /*!< MASK_VAL2 (Bit 0) */ + #define R_ETHSW_GPARSER6_MASK_VAL2_Msk (0xffUL) /*!< MASK_VAL2 (Bitfield-Mask: 0xff) */ + #define R_ETHSW_GPARSER6_COMPARE_VAL_Pos (8UL) /*!< COMPARE_VAL (Bit 8) */ + #define R_ETHSW_GPARSER6_COMPARE_VAL_Msk (0xff00UL) /*!< COMPARE_VAL (Bitfield-Mask: 0xff) */ + #define R_ETHSW_GPARSER6_OFFSET_Pos (16UL) /*!< OFFSET (Bit 16) */ + #define R_ETHSW_GPARSER6_OFFSET_Msk (0x3f0000UL) /*!< OFFSET (Bitfield-Mask: 0x3f) */ + #define R_ETHSW_GPARSER6_OFFSET_DA_Pos (23UL) /*!< OFFSET_DA (Bit 23) */ + #define R_ETHSW_GPARSER6_OFFSET_DA_Msk (0x800000UL) /*!< OFFSET_DA (Bitfield-Mask: 0x01) */ + #define R_ETHSW_GPARSER6_VALID_Pos (24UL) /*!< VALID (Bit 24) */ + #define R_ETHSW_GPARSER6_VALID_Msk (0x1000000UL) /*!< VALID (Bitfield-Mask: 0x01) */ + #define R_ETHSW_GPARSER6_SKIPVLAN_Pos (25UL) /*!< SKIPVLAN (Bit 25) */ + #define R_ETHSW_GPARSER6_SKIPVLAN_Msk (0x2000000UL) /*!< SKIPVLAN (Bitfield-Mask: 0x01) */ + #define R_ETHSW_GPARSER6_IPDATA_Pos (26UL) /*!< IPDATA (Bit 26) */ + #define R_ETHSW_GPARSER6_IPDATA_Msk (0x4000000UL) /*!< IPDATA (Bitfield-Mask: 0x01) */ + #define R_ETHSW_GPARSER6_IPPROTOCOL_Pos (27UL) /*!< IPPROTOCOL (Bit 27) */ + #define R_ETHSW_GPARSER6_IPPROTOCOL_Msk (0x8000000UL) /*!< IPPROTOCOL (Bitfield-Mask: 0x01) */ + #define R_ETHSW_GPARSER6_CMP16_Pos (28UL) /*!< CMP16 (Bit 28) */ + #define R_ETHSW_GPARSER6_CMP16_Msk (0x10000000UL) /*!< CMP16 (Bitfield-Mask: 0x01) */ + #define R_ETHSW_GPARSER6_OFFSET_PLUS2_Pos (29UL) /*!< OFFSET_PLUS2 (Bit 29) */ + #define R_ETHSW_GPARSER6_OFFSET_PLUS2_Msk (0x20000000UL) /*!< OFFSET_PLUS2 (Bitfield-Mask: 0x01) */ + #define R_ETHSW_GPARSER6_CMP_MASK_OR_Pos (30UL) /*!< CMP_MASK_OR (Bit 30) */ + #define R_ETHSW_GPARSER6_CMP_MASK_OR_Msk (0x40000000UL) /*!< CMP_MASK_OR (Bitfield-Mask: 0x01) */ +/* ======================================================= GPARSER7 ======================================================== */ + #define R_ETHSW_GPARSER7_MASK_VAL2_Pos (0UL) /*!< MASK_VAL2 (Bit 0) */ + #define R_ETHSW_GPARSER7_MASK_VAL2_Msk (0xffUL) /*!< MASK_VAL2 (Bitfield-Mask: 0xff) */ + #define R_ETHSW_GPARSER7_COMPARE_VAL_Pos (8UL) /*!< COMPARE_VAL (Bit 8) */ + #define R_ETHSW_GPARSER7_COMPARE_VAL_Msk (0xff00UL) /*!< COMPARE_VAL (Bitfield-Mask: 0xff) */ + #define R_ETHSW_GPARSER7_OFFSET_Pos (16UL) /*!< OFFSET (Bit 16) */ + #define R_ETHSW_GPARSER7_OFFSET_Msk (0x3f0000UL) /*!< OFFSET (Bitfield-Mask: 0x3f) */ + #define R_ETHSW_GPARSER7_OFFSET_DA_Pos (23UL) /*!< OFFSET_DA (Bit 23) */ + #define R_ETHSW_GPARSER7_OFFSET_DA_Msk (0x800000UL) /*!< OFFSET_DA (Bitfield-Mask: 0x01) */ + #define R_ETHSW_GPARSER7_VALID_Pos (24UL) /*!< VALID (Bit 24) */ + #define R_ETHSW_GPARSER7_VALID_Msk (0x1000000UL) /*!< VALID (Bitfield-Mask: 0x01) */ + #define R_ETHSW_GPARSER7_SKIPVLAN_Pos (25UL) /*!< SKIPVLAN (Bit 25) */ + #define R_ETHSW_GPARSER7_SKIPVLAN_Msk (0x2000000UL) /*!< SKIPVLAN (Bitfield-Mask: 0x01) */ + #define R_ETHSW_GPARSER7_IPDATA_Pos (26UL) /*!< IPDATA (Bit 26) */ + #define R_ETHSW_GPARSER7_IPDATA_Msk (0x4000000UL) /*!< IPDATA (Bitfield-Mask: 0x01) */ + #define R_ETHSW_GPARSER7_IPPROTOCOL_Pos (27UL) /*!< IPPROTOCOL (Bit 27) */ + #define R_ETHSW_GPARSER7_IPPROTOCOL_Msk (0x8000000UL) /*!< IPPROTOCOL (Bitfield-Mask: 0x01) */ + #define R_ETHSW_GPARSER7_CMP16_Pos (28UL) /*!< CMP16 (Bit 28) */ + #define R_ETHSW_GPARSER7_CMP16_Msk (0x10000000UL) /*!< CMP16 (Bitfield-Mask: 0x01) */ + #define R_ETHSW_GPARSER7_OFFSET_PLUS2_Pos (29UL) /*!< OFFSET_PLUS2 (Bit 29) */ + #define R_ETHSW_GPARSER7_OFFSET_PLUS2_Msk (0x20000000UL) /*!< OFFSET_PLUS2 (Bitfield-Mask: 0x01) */ + #define R_ETHSW_GPARSER7_CMP_MASK_OR_Pos (30UL) /*!< CMP_MASK_OR (Bit 30) */ + #define R_ETHSW_GPARSER7_CMP_MASK_OR_Msk (0x40000000UL) /*!< CMP_MASK_OR (Bitfield-Mask: 0x01) */ +/* ======================================================== GARITH4 ======================================================== */ + #define R_ETHSW_GARITH4_NOT_INP_Pos (0UL) /*!< NOT_INP (Bit 0) */ + #define R_ETHSW_GARITH4_NOT_INP_Msk (0xfUL) /*!< NOT_INP (Bitfield-Mask: 0x0f) */ + #define R_ETHSW_GARITH4_SEL_MATCH_Pos (8UL) /*!< SEL_MATCH (Bit 8) */ + #define R_ETHSW_GARITH4_SEL_MATCH_Msk (0xf00UL) /*!< SEL_MATCH (Bitfield-Mask: 0x0f) */ + #define R_ETHSW_GARITH4_SEL_ARITH0_Pos (12UL) /*!< SEL_ARITH0 (Bit 12) */ + #define R_ETHSW_GARITH4_SEL_ARITH0_Msk (0x1000UL) /*!< SEL_ARITH0 (Bitfield-Mask: 0x01) */ + #define R_ETHSW_GARITH4_SEL_ARITH1_Pos (13UL) /*!< SEL_ARITH1 (Bit 13) */ + #define R_ETHSW_GARITH4_SEL_ARITH1_Msk (0x2000UL) /*!< SEL_ARITH1 (Bitfield-Mask: 0x01) */ + #define R_ETHSW_GARITH4_SEL_ARITH2_Pos (14UL) /*!< SEL_ARITH2 (Bit 14) */ + #define R_ETHSW_GARITH4_SEL_ARITH2_Msk (0x4000UL) /*!< SEL_ARITH2 (Bitfield-Mask: 0x01) */ + #define R_ETHSW_GARITH4_OP_Pos (16UL) /*!< OP (Bit 16) */ + #define R_ETHSW_GARITH4_OP_Msk (0x10000UL) /*!< OP (Bitfield-Mask: 0x01) */ + #define R_ETHSW_GARITH4_RESULT_INV_Pos (17UL) /*!< RESULT_INV (Bit 17) */ + #define R_ETHSW_GARITH4_RESULT_INV_Msk (0x20000UL) /*!< RESULT_INV (Bitfield-Mask: 0x01) */ + #define R_ETHSW_GARITH4_SNP_MD_Pos (20UL) /*!< SNP_MD (Bit 20) */ + #define R_ETHSW_GARITH4_SNP_MD_Msk (0x300000UL) /*!< SNP_MD (Bitfield-Mask: 0x03) */ +/* ======================================================== GARITH5 ======================================================== */ + #define R_ETHSW_GARITH5_NOT_INP_Pos (0UL) /*!< NOT_INP (Bit 0) */ + #define R_ETHSW_GARITH5_NOT_INP_Msk (0xfUL) /*!< NOT_INP (Bitfield-Mask: 0x0f) */ + #define R_ETHSW_GARITH5_SEL_MATCH_Pos (8UL) /*!< SEL_MATCH (Bit 8) */ + #define R_ETHSW_GARITH5_SEL_MATCH_Msk (0xf00UL) /*!< SEL_MATCH (Bitfield-Mask: 0x0f) */ + #define R_ETHSW_GARITH5_SEL_ARITH0_Pos (12UL) /*!< SEL_ARITH0 (Bit 12) */ + #define R_ETHSW_GARITH5_SEL_ARITH0_Msk (0x1000UL) /*!< SEL_ARITH0 (Bitfield-Mask: 0x01) */ + #define R_ETHSW_GARITH5_SEL_ARITH1_Pos (13UL) /*!< SEL_ARITH1 (Bit 13) */ + #define R_ETHSW_GARITH5_SEL_ARITH1_Msk (0x2000UL) /*!< SEL_ARITH1 (Bitfield-Mask: 0x01) */ + #define R_ETHSW_GARITH5_SEL_ARITH2_Pos (14UL) /*!< SEL_ARITH2 (Bit 14) */ + #define R_ETHSW_GARITH5_SEL_ARITH2_Msk (0x4000UL) /*!< SEL_ARITH2 (Bitfield-Mask: 0x01) */ + #define R_ETHSW_GARITH5_OP_Pos (16UL) /*!< OP (Bit 16) */ + #define R_ETHSW_GARITH5_OP_Msk (0x10000UL) /*!< OP (Bitfield-Mask: 0x01) */ + #define R_ETHSW_GARITH5_RESULT_INV_Pos (17UL) /*!< RESULT_INV (Bit 17) */ + #define R_ETHSW_GARITH5_RESULT_INV_Msk (0x20000UL) /*!< RESULT_INV (Bitfield-Mask: 0x01) */ + #define R_ETHSW_GARITH5_SNP_MD_Pos (20UL) /*!< SNP_MD (Bit 20) */ + #define R_ETHSW_GARITH5_SNP_MD_Msk (0x300000UL) /*!< SNP_MD (Bitfield-Mask: 0x03) */ +/* ======================================================== GARITH6 ======================================================== */ + #define R_ETHSW_GARITH6_NOT_INP_Pos (0UL) /*!< NOT_INP (Bit 0) */ + #define R_ETHSW_GARITH6_NOT_INP_Msk (0xfUL) /*!< NOT_INP (Bitfield-Mask: 0x0f) */ + #define R_ETHSW_GARITH6_SEL_MATCH_Pos (8UL) /*!< SEL_MATCH (Bit 8) */ + #define R_ETHSW_GARITH6_SEL_MATCH_Msk (0xf00UL) /*!< SEL_MATCH (Bitfield-Mask: 0x0f) */ + #define R_ETHSW_GARITH6_SEL_ARITH0_Pos (12UL) /*!< SEL_ARITH0 (Bit 12) */ + #define R_ETHSW_GARITH6_SEL_ARITH0_Msk (0x1000UL) /*!< SEL_ARITH0 (Bitfield-Mask: 0x01) */ + #define R_ETHSW_GARITH6_SEL_ARITH1_Pos (13UL) /*!< SEL_ARITH1 (Bit 13) */ + #define R_ETHSW_GARITH6_SEL_ARITH1_Msk (0x2000UL) /*!< SEL_ARITH1 (Bitfield-Mask: 0x01) */ + #define R_ETHSW_GARITH6_SEL_ARITH2_Pos (14UL) /*!< SEL_ARITH2 (Bit 14) */ + #define R_ETHSW_GARITH6_SEL_ARITH2_Msk (0x4000UL) /*!< SEL_ARITH2 (Bitfield-Mask: 0x01) */ + #define R_ETHSW_GARITH6_OP_Pos (16UL) /*!< OP (Bit 16) */ + #define R_ETHSW_GARITH6_OP_Msk (0x10000UL) /*!< OP (Bitfield-Mask: 0x01) */ + #define R_ETHSW_GARITH6_RESULT_INV_Pos (17UL) /*!< RESULT_INV (Bit 17) */ + #define R_ETHSW_GARITH6_RESULT_INV_Msk (0x20000UL) /*!< RESULT_INV (Bitfield-Mask: 0x01) */ + #define R_ETHSW_GARITH6_SNP_MD_Pos (20UL) /*!< SNP_MD (Bit 20) */ + #define R_ETHSW_GARITH6_SNP_MD_Msk (0x300000UL) /*!< SNP_MD (Bitfield-Mask: 0x03) */ +/* ======================================================== GARITH7 ======================================================== */ + #define R_ETHSW_GARITH7_NOT_INP_Pos (0UL) /*!< NOT_INP (Bit 0) */ + #define R_ETHSW_GARITH7_NOT_INP_Msk (0xfUL) /*!< NOT_INP (Bitfield-Mask: 0x0f) */ + #define R_ETHSW_GARITH7_SEL_MATCH_Pos (8UL) /*!< SEL_MATCH (Bit 8) */ + #define R_ETHSW_GARITH7_SEL_MATCH_Msk (0xf00UL) /*!< SEL_MATCH (Bitfield-Mask: 0x0f) */ + #define R_ETHSW_GARITH7_SEL_ARITH0_Pos (12UL) /*!< SEL_ARITH0 (Bit 12) */ + #define R_ETHSW_GARITH7_SEL_ARITH0_Msk (0x1000UL) /*!< SEL_ARITH0 (Bitfield-Mask: 0x01) */ + #define R_ETHSW_GARITH7_SEL_ARITH1_Pos (13UL) /*!< SEL_ARITH1 (Bit 13) */ + #define R_ETHSW_GARITH7_SEL_ARITH1_Msk (0x2000UL) /*!< SEL_ARITH1 (Bitfield-Mask: 0x01) */ + #define R_ETHSW_GARITH7_SEL_ARITH2_Pos (14UL) /*!< SEL_ARITH2 (Bit 14) */ + #define R_ETHSW_GARITH7_SEL_ARITH2_Msk (0x4000UL) /*!< SEL_ARITH2 (Bitfield-Mask: 0x01) */ + #define R_ETHSW_GARITH7_OP_Pos (16UL) /*!< OP (Bit 16) */ + #define R_ETHSW_GARITH7_OP_Msk (0x10000UL) /*!< OP (Bitfield-Mask: 0x01) */ + #define R_ETHSW_GARITH7_RESULT_INV_Pos (17UL) /*!< RESULT_INV (Bit 17) */ + #define R_ETHSW_GARITH7_RESULT_INV_Msk (0x20000UL) /*!< RESULT_INV (Bitfield-Mask: 0x01) */ + #define R_ETHSW_GARITH7_SNP_MD_Pos (20UL) /*!< SNP_MD (Bit 20) */ + #define R_ETHSW_GARITH7_SNP_MD_Msk (0x300000UL) /*!< SNP_MD (Bitfield-Mask: 0x03) */ +/* ===================================================== VLAN_PRIORITY ===================================================== */ + #define R_ETHSW_VLAN_PRIORITY_PRIORITY0_Pos (0UL) /*!< PRIORITY0 (Bit 0) */ + #define R_ETHSW_VLAN_PRIORITY_PRIORITY0_Msk (0x7UL) /*!< PRIORITY0 (Bitfield-Mask: 0x07) */ + #define R_ETHSW_VLAN_PRIORITY_PRIORITY1_Pos (3UL) /*!< PRIORITY1 (Bit 3) */ + #define R_ETHSW_VLAN_PRIORITY_PRIORITY1_Msk (0x38UL) /*!< PRIORITY1 (Bitfield-Mask: 0x07) */ + #define R_ETHSW_VLAN_PRIORITY_PRIORITY2_Pos (6UL) /*!< PRIORITY2 (Bit 6) */ + #define R_ETHSW_VLAN_PRIORITY_PRIORITY2_Msk (0x1c0UL) /*!< PRIORITY2 (Bitfield-Mask: 0x07) */ + #define R_ETHSW_VLAN_PRIORITY_PRIORITY3_Pos (9UL) /*!< PRIORITY3 (Bit 9) */ + #define R_ETHSW_VLAN_PRIORITY_PRIORITY3_Msk (0xe00UL) /*!< PRIORITY3 (Bitfield-Mask: 0x07) */ + #define R_ETHSW_VLAN_PRIORITY_PRIORITY4_Pos (12UL) /*!< PRIORITY4 (Bit 12) */ + #define R_ETHSW_VLAN_PRIORITY_PRIORITY4_Msk (0x7000UL) /*!< PRIORITY4 (Bitfield-Mask: 0x07) */ + #define R_ETHSW_VLAN_PRIORITY_PRIORITY5_Pos (15UL) /*!< PRIORITY5 (Bit 15) */ + #define R_ETHSW_VLAN_PRIORITY_PRIORITY5_Msk (0x38000UL) /*!< PRIORITY5 (Bitfield-Mask: 0x07) */ + #define R_ETHSW_VLAN_PRIORITY_PRIORITY6_Pos (18UL) /*!< PRIORITY6 (Bit 18) */ + #define R_ETHSW_VLAN_PRIORITY_PRIORITY6_Msk (0x1c0000UL) /*!< PRIORITY6 (Bitfield-Mask: 0x07) */ + #define R_ETHSW_VLAN_PRIORITY_PRIORITY7_Pos (21UL) /*!< PRIORITY7 (Bit 21) */ + #define R_ETHSW_VLAN_PRIORITY_PRIORITY7_Msk (0xe00000UL) /*!< PRIORITY7 (Bitfield-Mask: 0x07) */ +/* ====================================================== IP_PRIORITY ====================================================== */ + #define R_ETHSW_IP_PRIORITY_ADDRESS_Pos (0UL) /*!< ADDRESS (Bit 0) */ + #define R_ETHSW_IP_PRIORITY_ADDRESS_Msk (0xffUL) /*!< ADDRESS (Bitfield-Mask: 0xff) */ + #define R_ETHSW_IP_PRIORITY_IPV6SELECT_Pos (8UL) /*!< IPV6SELECT (Bit 8) */ + #define R_ETHSW_IP_PRIORITY_IPV6SELECT_Msk (0x100UL) /*!< IPV6SELECT (Bitfield-Mask: 0x01) */ + #define R_ETHSW_IP_PRIORITY_PRIORITY_Pos (9UL) /*!< PRIORITY (Bit 9) */ + #define R_ETHSW_IP_PRIORITY_PRIORITY_Msk (0xe00UL) /*!< PRIORITY (Bitfield-Mask: 0x07) */ + #define R_ETHSW_IP_PRIORITY_READ_Pos (31UL) /*!< READ (Bit 31) */ + #define R_ETHSW_IP_PRIORITY_READ_Msk (0x80000000UL) /*!< READ (Bitfield-Mask: 0x01) */ +/* ===================================================== PRIORITY_CFG ====================================================== */ + #define R_ETHSW_PRIORITY_CFG_VLANEN_Pos (0UL) /*!< VLANEN (Bit 0) */ + #define R_ETHSW_PRIORITY_CFG_VLANEN_Msk (0x1UL) /*!< VLANEN (Bitfield-Mask: 0x01) */ + #define R_ETHSW_PRIORITY_CFG_IPEN_Pos (1UL) /*!< IPEN (Bit 1) */ + #define R_ETHSW_PRIORITY_CFG_IPEN_Msk (0x2UL) /*!< IPEN (Bitfield-Mask: 0x01) */ + #define R_ETHSW_PRIORITY_CFG_MACEN_Pos (2UL) /*!< MACEN (Bit 2) */ + #define R_ETHSW_PRIORITY_CFG_MACEN_Msk (0x4UL) /*!< MACEN (Bitfield-Mask: 0x01) */ + #define R_ETHSW_PRIORITY_CFG_TYPE_EN_Pos (3UL) /*!< TYPE_EN (Bit 3) */ + #define R_ETHSW_PRIORITY_CFG_TYPE_EN_Msk (0x8UL) /*!< TYPE_EN (Bitfield-Mask: 0x01) */ + #define R_ETHSW_PRIORITY_CFG_DEFAULTPRI_Pos (4UL) /*!< DEFAULTPRI (Bit 4) */ + #define R_ETHSW_PRIORITY_CFG_DEFAULTPRI_Msk (0x70UL) /*!< DEFAULTPRI (Bitfield-Mask: 0x07) */ + #define R_ETHSW_PRIORITY_CFG_PCP_REMAP_DIS_Pos (7UL) /*!< PCP_REMAP_DIS (Bit 7) */ + #define R_ETHSW_PRIORITY_CFG_PCP_REMAP_DIS_Msk (0x80UL) /*!< PCP_REMAP_DIS (Bitfield-Mask: 0x01) */ + #define R_ETHSW_PRIORITY_CFG_PCP_REMAP_Pos (8UL) /*!< PCP_REMAP (Bit 8) */ + #define R_ETHSW_PRIORITY_CFG_PCP_REMAP_Msk (0xffffff00UL) /*!< PCP_REMAP (Bitfield-Mask: 0xffffff) */ +/* ==================================================== PRIORITY_TYPE1 ===================================================== */ + #define R_ETHSW_PRIORITY_TYPE1_TYPEVAL_Pos (0UL) /*!< TYPEVAL (Bit 0) */ + #define R_ETHSW_PRIORITY_TYPE1_TYPEVAL_Msk (0xffffUL) /*!< TYPEVAL (Bitfield-Mask: 0xffff) */ + #define R_ETHSW_PRIORITY_TYPE1_VALID_Pos (16UL) /*!< VALID (Bit 16) */ + #define R_ETHSW_PRIORITY_TYPE1_VALID_Msk (0x10000UL) /*!< VALID (Bitfield-Mask: 0x01) */ + #define R_ETHSW_PRIORITY_TYPE1_PRIORITY_Pos (17UL) /*!< PRIORITY (Bit 17) */ + #define R_ETHSW_PRIORITY_TYPE1_PRIORITY_Msk (0xe0000UL) /*!< PRIORITY (Bitfield-Mask: 0x07) */ +/* ==================================================== PRIORITY_TYPE2 ===================================================== */ + #define R_ETHSW_PRIORITY_TYPE2_TYPEVAL_Pos (0UL) /*!< TYPEVAL (Bit 0) */ + #define R_ETHSW_PRIORITY_TYPE2_TYPEVAL_Msk (0xffffUL) /*!< TYPEVAL (Bitfield-Mask: 0xffff) */ + #define R_ETHSW_PRIORITY_TYPE2_VALID_Pos (16UL) /*!< VALID (Bit 16) */ + #define R_ETHSW_PRIORITY_TYPE2_VALID_Msk (0x10000UL) /*!< VALID (Bitfield-Mask: 0x01) */ + #define R_ETHSW_PRIORITY_TYPE2_PRIORITY_Pos (17UL) /*!< PRIORITY (Bit 17) */ + #define R_ETHSW_PRIORITY_TYPE2_PRIORITY_Msk (0xe0000UL) /*!< PRIORITY (Bitfield-Mask: 0x07) */ +/* ====================================================== SRCFLT_ENA ======================================================= */ + #define R_ETHSW_SRCFLT_ENA_SRCENA_Pos (0UL) /*!< SRCENA (Bit 0) */ + #define R_ETHSW_SRCFLT_ENA_SRCENA_Msk (0x7UL) /*!< SRCENA (Bitfield-Mask: 0x07) */ + #define R_ETHSW_SRCFLT_ENA_DSTENA_Pos (16UL) /*!< DSTENA (Bit 16) */ + #define R_ETHSW_SRCFLT_ENA_DSTENA_Msk (0xf0000UL) /*!< DSTENA (Bitfield-Mask: 0x0f) */ +/* ==================================================== SRCFLT_CONTROL ===================================================== */ + #define R_ETHSW_SRCFLT_CONTROL_MGMT_FWD_Pos (0UL) /*!< MGMT_FWD (Bit 0) */ + #define R_ETHSW_SRCFLT_CONTROL_MGMT_FWD_Msk (0x1UL) /*!< MGMT_FWD (Bitfield-Mask: 0x01) */ + #define R_ETHSW_SRCFLT_CONTROL_WATCHDOG_ENA_Pos (1UL) /*!< WATCHDOG_ENA (Bit 1) */ + #define R_ETHSW_SRCFLT_CONTROL_WATCHDOG_ENA_Msk (0x2UL) /*!< WATCHDOG_ENA (Bitfield-Mask: 0x01) */ + #define R_ETHSW_SRCFLT_CONTROL_WATCHDOG_TIME_Pos (16UL) /*!< WATCHDOG_TIME (Bit 16) */ + #define R_ETHSW_SRCFLT_CONTROL_WATCHDOG_TIME_Msk (0xffff0000UL) /*!< WATCHDOG_TIME (Bitfield-Mask: 0xffff) */ +/* =================================================== SRCFLT_MACADDR_LO =================================================== */ + #define R_ETHSW_SRCFLT_MACADDR_LO_SRCFLT_MACADDR_Pos (0UL) /*!< SRCFLT_MACADDR (Bit 0) */ + #define R_ETHSW_SRCFLT_MACADDR_LO_SRCFLT_MACADDR_Msk (0xffffffffUL) /*!< SRCFLT_MACADDR (Bitfield-Mask: 0xffffffff) */ +/* =================================================== SRCFLT_MACADDR_HI =================================================== */ + #define R_ETHSW_SRCFLT_MACADDR_HI_SRCFLT_MACADDR_Pos (0UL) /*!< SRCFLT_MACADDR (Bit 0) */ + #define R_ETHSW_SRCFLT_MACADDR_HI_SRCFLT_MACADDR_Msk (0xffffUL) /*!< SRCFLT_MACADDR (Bitfield-Mask: 0xffff) */ + #define R_ETHSW_SRCFLT_MACADDR_HI_MASK_Pos (16UL) /*!< MASK (Bit 16) */ + #define R_ETHSW_SRCFLT_MACADDR_HI_MASK_Msk (0xffff0000UL) /*!< MASK (Bitfield-Mask: 0xffff) */ +/* ==================================================== PHY_FILTER_CFG ===================================================== */ + #define R_ETHSW_PHY_FILTER_CFG_FILTER_DURATION_Pos (0UL) /*!< FILTER_DURATION (Bit 0) */ + #define R_ETHSW_PHY_FILTER_CFG_FILTER_DURATION_Msk (0x1ffUL) /*!< FILTER_DURATION (Bitfield-Mask: 0x1ff) */ + #define R_ETHSW_PHY_FILTER_CFG_FLT_EN_Pos (16UL) /*!< FLT_EN (Bit 16) */ + #define R_ETHSW_PHY_FILTER_CFG_FLT_EN_Msk (0x70000UL) /*!< FLT_EN (Bitfield-Mask: 0x07) */ +/* ==================================================== SYSTEM_TAGINFO ===================================================== */ + #define R_ETHSW_SYSTEM_TAGINFO_SYSVLANINFO_Pos (0UL) /*!< SYSVLANINFO (Bit 0) */ + #define R_ETHSW_SYSTEM_TAGINFO_SYSVLANINFO_Msk (0xffffUL) /*!< SYSVLANINFO (Bitfield-Mask: 0xffff) */ +/* ======================================================= AUTH_PORT ======================================================= */ + #define R_ETHSW_AUTH_PORT_AUTH_Pos (0UL) /*!< AUTH (Bit 0) */ + #define R_ETHSW_AUTH_PORT_AUTH_Msk (0x1UL) /*!< AUTH (Bitfield-Mask: 0x01) */ + #define R_ETHSW_AUTH_PORT_CTRL_BOTH_Pos (1UL) /*!< CTRL_BOTH (Bit 1) */ + #define R_ETHSW_AUTH_PORT_CTRL_BOTH_Msk (0x2UL) /*!< CTRL_BOTH (Bitfield-Mask: 0x01) */ + #define R_ETHSW_AUTH_PORT_EAPOL_EN_Pos (2UL) /*!< EAPOL_EN (Bit 2) */ + #define R_ETHSW_AUTH_PORT_EAPOL_EN_Msk (0x4UL) /*!< EAPOL_EN (Bitfield-Mask: 0x01) */ + #define R_ETHSW_AUTH_PORT_GUEST_EN_Pos (3UL) /*!< GUEST_EN (Bit 3) */ + #define R_ETHSW_AUTH_PORT_GUEST_EN_Msk (0x8UL) /*!< GUEST_EN (Bitfield-Mask: 0x01) */ + #define R_ETHSW_AUTH_PORT_BPDU_EN_Pos (4UL) /*!< BPDU_EN (Bit 4) */ + #define R_ETHSW_AUTH_PORT_BPDU_EN_Msk (0x10UL) /*!< BPDU_EN (Bitfield-Mask: 0x01) */ + #define R_ETHSW_AUTH_PORT_EAPOL_UC_EN_Pos (5UL) /*!< EAPOL_UC_EN (Bit 5) */ + #define R_ETHSW_AUTH_PORT_EAPOL_UC_EN_Msk (0x20UL) /*!< EAPOL_UC_EN (Bitfield-Mask: 0x01) */ + #define R_ETHSW_AUTH_PORT_ACHG_UNAUTH_Pos (11UL) /*!< ACHG_UNAUTH (Bit 11) */ + #define R_ETHSW_AUTH_PORT_ACHG_UNAUTH_Msk (0x800UL) /*!< ACHG_UNAUTH (Bitfield-Mask: 0x01) */ + #define R_ETHSW_AUTH_PORT_EAPOL_PNUM_Pos (12UL) /*!< EAPOL_PNUM (Bit 12) */ + #define R_ETHSW_AUTH_PORT_EAPOL_PNUM_Msk (0xf000UL) /*!< EAPOL_PNUM (Bitfield-Mask: 0x0f) */ + #define R_ETHSW_AUTH_PORT_GUEST_MASK_Pos (16UL) /*!< GUEST_MASK (Bit 16) */ + #define R_ETHSW_AUTH_PORT_GUEST_MASK_Msk (0xf0000UL) /*!< GUEST_MASK (Bitfield-Mask: 0x0f) */ +/* ==================================================== VLAN_RES_TABLE ===================================================== */ + #define R_ETHSW_VLAN_RES_TABLE_PORTMASK_Pos (0UL) /*!< PORTMASK (Bit 0) */ + #define R_ETHSW_VLAN_RES_TABLE_PORTMASK_Msk (0xfUL) /*!< PORTMASK (Bitfield-Mask: 0x0f) */ + #define R_ETHSW_VLAN_RES_TABLE_VLANID_Pos (4UL) /*!< VLANID (Bit 4) */ + #define R_ETHSW_VLAN_RES_TABLE_VLANID_Msk (0xfff0UL) /*!< VLANID (Bitfield-Mask: 0xfff) */ + #define R_ETHSW_VLAN_RES_TABLE_RD_TAGMSK_Pos (28UL) /*!< RD_TAGMSK (Bit 28) */ + #define R_ETHSW_VLAN_RES_TABLE_RD_TAGMSK_Msk (0x10000000UL) /*!< RD_TAGMSK (Bitfield-Mask: 0x01) */ + #define R_ETHSW_VLAN_RES_TABLE_WT_TAGMSK_Pos (29UL) /*!< WT_TAGMSK (Bit 29) */ + #define R_ETHSW_VLAN_RES_TABLE_WT_TAGMSK_Msk (0x20000000UL) /*!< WT_TAGMSK (Bitfield-Mask: 0x01) */ + #define R_ETHSW_VLAN_RES_TABLE_WT_PRTMSK_Pos (30UL) /*!< WT_PRTMSK (Bit 30) */ + #define R_ETHSW_VLAN_RES_TABLE_WT_PRTMSK_Msk (0x40000000UL) /*!< WT_PRTMSK (Bitfield-Mask: 0x01) */ +/* ====================================================== TOTAL_DISC ======================================================= */ + #define R_ETHSW_TOTAL_DISC_TOTAL_DISC_Pos (0UL) /*!< TOTAL_DISC (Bit 0) */ + #define R_ETHSW_TOTAL_DISC_TOTAL_DISC_Msk (0xffffffffUL) /*!< TOTAL_DISC (Bitfield-Mask: 0xffffffff) */ +/* ==================================================== TOTAL_BYT_DISC ===================================================== */ + #define R_ETHSW_TOTAL_BYT_DISC_TOTAL_BYT_DISC_Pos (0UL) /*!< TOTAL_BYT_DISC (Bit 0) */ + #define R_ETHSW_TOTAL_BYT_DISC_TOTAL_BYT_DISC_Msk (0xffffffffUL) /*!< TOTAL_BYT_DISC (Bitfield-Mask: 0xffffffff) */ +/* ======================================================= TOTAL_FRM ======================================================= */ + #define R_ETHSW_TOTAL_FRM_TOTAL_FRM_Pos (0UL) /*!< TOTAL_FRM (Bit 0) */ + #define R_ETHSW_TOTAL_FRM_TOTAL_FRM_Msk (0xffffffffUL) /*!< TOTAL_FRM (Bitfield-Mask: 0xffffffff) */ +/* ===================================================== TOTAL_BYT_FRM ===================================================== */ + #define R_ETHSW_TOTAL_BYT_FRM_TOTAL_BYT_FRM_Pos (0UL) /*!< TOTAL_BYT_FRM (Bit 0) */ + #define R_ETHSW_TOTAL_BYT_FRM_TOTAL_BYT_FRM_Msk (0xffffffffUL) /*!< TOTAL_BYT_FRM (Bitfield-Mask: 0xffffffff) */ +/* ===================================================== IALK_CONTROL ====================================================== */ + #define R_ETHSW_IALK_CONTROL_IA_LKUP_ENA_Pos (0UL) /*!< IA_LKUP_ENA (Bit 0) */ + #define R_ETHSW_IALK_CONTROL_IA_LKUP_ENA_Msk (0xfUL) /*!< IA_LKUP_ENA (Bitfield-Mask: 0x0f) */ + #define R_ETHSW_IALK_CONTROL_CT_ENA_Pos (16UL) /*!< CT_ENA (Bit 16) */ + #define R_ETHSW_IALK_CONTROL_CT_ENA_Msk (0xf0000UL) /*!< CT_ENA (Bitfield-Mask: 0x0f) */ +/* ======================================================= IALK_OUI ======================================================== */ + #define R_ETHSW_IALK_OUI_IALK_OUI_Pos (0UL) /*!< IALK_OUI (Bit 0) */ + #define R_ETHSW_IALK_OUI_IALK_OUI_Msk (0xffffffUL) /*!< IALK_OUI (Bitfield-Mask: 0xffffff) */ +/* ====================================================== IALK_ID_MIN ====================================================== */ + #define R_ETHSW_IALK_ID_MIN_IALK_ID_MIN_Pos (0UL) /*!< IALK_ID_MIN (Bit 0) */ + #define R_ETHSW_IALK_ID_MIN_IALK_ID_MIN_Msk (0xffffffUL) /*!< IALK_ID_MIN (Bitfield-Mask: 0xffffff) */ +/* ====================================================== IALK_ID_MAX ====================================================== */ + #define R_ETHSW_IALK_ID_MAX_IALK_ID_MAX_Pos (0UL) /*!< IALK_ID_MAX (Bit 0) */ + #define R_ETHSW_IALK_ID_MAX_IALK_ID_MAX_Msk (0xffffffUL) /*!< IALK_ID_MAX (Bitfield-Mask: 0xffffff) */ +/* ====================================================== IALK_ID_SUB ====================================================== */ + #define R_ETHSW_IALK_ID_SUB_IALK_ID_SUB_Pos (0UL) /*!< IALK_ID_SUB (Bit 0) */ + #define R_ETHSW_IALK_ID_SUB_IALK_ID_SUB_Msk (0xffffffUL) /*!< IALK_ID_SUB (Bitfield-Mask: 0xffffff) */ +/* ==================================================== IALK_ID_CONFIG ===================================================== */ + #define R_ETHSW_IALK_ID_CONFIG_INVLD_ID_FLOOD_Pos (0UL) /*!< INVLD_ID_FLOOD (Bit 0) */ + #define R_ETHSW_IALK_ID_CONFIG_INVLD_ID_FLOOD_Msk (0x1UL) /*!< INVLD_ID_FLOOD (Bitfield-Mask: 0x01) */ + #define R_ETHSW_IALK_ID_CONFIG_INVLD_ID_LRN_ENA_Pos (1UL) /*!< INVLD_ID_LRN_ENA (Bit 1) */ + #define R_ETHSW_IALK_ID_CONFIG_INVLD_ID_LRN_ENA_Msk (0x2UL) /*!< INVLD_ID_LRN_ENA (Bitfield-Mask: 0x01) */ + #define R_ETHSW_IALK_ID_CONFIG_INVLD_ID_PRIO_Pos (4UL) /*!< INVLD_ID_PRIO (Bit 4) */ + #define R_ETHSW_IALK_ID_CONFIG_INVLD_ID_PRIO_Msk (0x70UL) /*!< INVLD_ID_PRIO (Bitfield-Mask: 0x07) */ + #define R_ETHSW_IALK_ID_CONFIG_INVLD_ID_PRIO_VLD_Pos (7UL) /*!< INVLD_ID_PRIO_VLD (Bit 7) */ + #define R_ETHSW_IALK_ID_CONFIG_INVLD_ID_PRIO_VLD_Msk (0x80UL) /*!< INVLD_ID_PRIO_VLD (Bitfield-Mask: 0x01) */ + #define R_ETHSW_IALK_ID_CONFIG_INVLD_ID_FLOOD_MASK_Pos (16UL) /*!< INVLD_ID_FLOOD_MASK (Bit 16) */ + #define R_ETHSW_IALK_ID_CONFIG_INVLD_ID_FLOOD_MASK_Msk (0xf0000UL) /*!< INVLD_ID_FLOOD_MASK (Bitfield-Mask: 0x0f) */ +/* =================================================== IALK_VLAN_CONFIG ==================================================== */ + #define R_ETHSW_IALK_VLAN_CONFIG_UNKWN_VLAN_FLOOD_Pos (0UL) /*!< UNKWN_VLAN_FLOOD (Bit 0) */ + #define R_ETHSW_IALK_VLAN_CONFIG_UNKWN_VLAN_FLOOD_Msk (0x1UL) /*!< UNKWN_VLAN_FLOOD (Bitfield-Mask: 0x01) */ + #define R_ETHSW_IALK_VLAN_CONFIG_UNKWN_VLAN_LRN_ENA_Pos (1UL) /*!< UNKWN_VLAN_LRN_ENA (Bit 1) */ + #define R_ETHSW_IALK_VLAN_CONFIG_UNKWN_VLAN_LRN_ENA_Msk (0x2UL) /*!< UNKWN_VLAN_LRN_ENA (Bitfield-Mask: 0x01) */ + #define R_ETHSW_IALK_VLAN_CONFIG_UNKWN_VLAN_PRIO_Pos (4UL) /*!< UNKWN_VLAN_PRIO (Bit 4) */ + #define R_ETHSW_IALK_VLAN_CONFIG_UNKWN_VLAN_PRIO_Msk (0x70UL) /*!< UNKWN_VLAN_PRIO (Bitfield-Mask: 0x07) */ + #define R_ETHSW_IALK_VLAN_CONFIG_UNKWN_VLAN_PRIO_VLD_Pos (7UL) /*!< UNKWN_VLAN_PRIO_VLD (Bit 7) */ + #define R_ETHSW_IALK_VLAN_CONFIG_UNKWN_VLAN_PRIO_VLD_Msk (0x80UL) /*!< UNKWN_VLAN_PRIO_VLD (Bitfield-Mask: 0x01) */ + #define R_ETHSW_IALK_VLAN_CONFIG_VLANS_ENABLED_Pos (8UL) /*!< VLANS_ENABLED (Bit 8) */ + #define R_ETHSW_IALK_VLAN_CONFIG_VLANS_ENABLED_Msk (0x700UL) /*!< VLANS_ENABLED (Bitfield-Mask: 0x07) */ + #define R_ETHSW_IALK_VLAN_CONFIG_UNKWN_VLAN_FLOOD_MASK_Pos (16UL) /*!< UNKWN_VLAN_FLOOD_MASK (Bit 16) */ + #define R_ETHSW_IALK_VLAN_CONFIG_UNKWN_VLAN_FLOOD_MASK_Msk (0xf0000UL) /*!< UNKWN_VLAN_FLOOD_MASK (Bitfield-Mask: 0x0f) */ +/* ===================================================== IALK_TBL_ADDR ===================================================== */ + #define R_ETHSW_IALK_TBL_ADDR_ADDR_Pos (0UL) /*!< ADDR (Bit 0) */ + #define R_ETHSW_IALK_TBL_ADDR_ADDR_Msk (0x1fffUL) /*!< ADDR (Bitfield-Mask: 0x1fff) */ + #define R_ETHSW_IALK_TBL_ADDR_AINC_Pos (28UL) /*!< AINC (Bit 28) */ + #define R_ETHSW_IALK_TBL_ADDR_AINC_Msk (0xf0000000UL) /*!< AINC (Bitfield-Mask: 0x0f) */ +/* ===================================================== IALK_TBL_DATA ===================================================== */ + #define R_ETHSW_IALK_TBL_DATA_VALID_Pos (0UL) /*!< VALID (Bit 0) */ + #define R_ETHSW_IALK_TBL_DATA_VALID_Msk (0x1UL) /*!< VALID (Bitfield-Mask: 0x01) */ + #define R_ETHSW_IALK_TBL_DATA_FWD_MASK_Pos (1UL) /*!< FWD_MASK (Bit 1) */ + #define R_ETHSW_IALK_TBL_DATA_FWD_MASK_Msk (0x1eUL) /*!< FWD_MASK (Bitfield-Mask: 0x0f) */ +/* ====================================================== IALK_VLANID ====================================================== */ + #define R_ETHSW_IALK_VLANID_VLANID_Pos (0UL) /*!< VLANID (Bit 0) */ + #define R_ETHSW_IALK_VLANID_VLANID_Msk (0xfffUL) /*!< VLANID (Bitfield-Mask: 0xfff) */ + #define R_ETHSW_IALK_VLANID_VLANID_ENA_Pos (12UL) /*!< VLANID_ENA (Bit 12) */ + #define R_ETHSW_IALK_VLANID_VLANID_ENA_Msk (0x1000UL) /*!< VLANID_ENA (Bitfield-Mask: 0x01) */ + #define R_ETHSW_IALK_VLANID_VLANID_LRN_ENA_Pos (13UL) /*!< VLANID_LRN_ENA (Bit 13) */ + #define R_ETHSW_IALK_VLANID_VLANID_LRN_ENA_Msk (0x2000UL) /*!< VLANID_LRN_ENA (Bitfield-Mask: 0x01) */ + #define R_ETHSW_IALK_VLANID_VLANID_FLOOD_MASK_Pos (16UL) /*!< VLANID_FLOOD_MASK (Bit 16) */ + #define R_ETHSW_IALK_VLANID_VLANID_FLOOD_MASK_Msk (0xf0000UL) /*!< VLANID_FLOOD_MASK (Bitfield-Mask: 0x0f) */ + #define R_ETHSW_IALK_VLANID_VLANID_PRIO_Pos (28UL) /*!< VLANID_PRIO (Bit 28) */ + #define R_ETHSW_IALK_VLANID_VLANID_PRIO_Msk (0x70000000UL) /*!< VLANID_PRIO (Bitfield-Mask: 0x07) */ + #define R_ETHSW_IALK_VLANID_VLANID_PRIO_VLD_Pos (31UL) /*!< VLANID_PRIO_VLD (Bit 31) */ + #define R_ETHSW_IALK_VLANID_VLANID_PRIO_VLD_Msk (0x80000000UL) /*!< VLANID_PRIO_VLD (Bitfield-Mask: 0x01) */ +/* ===================================================== IMC_QLEVEL_P ====================================================== */ + #define R_ETHSW_IMC_QLEVEL_P_QUEUE0_Pos (0UL) /*!< QUEUE0 (Bit 0) */ + #define R_ETHSW_IMC_QLEVEL_P_QUEUE0_Msk (0xfUL) /*!< QUEUE0 (Bitfield-Mask: 0x0f) */ + #define R_ETHSW_IMC_QLEVEL_P_QUEUE1_Pos (4UL) /*!< QUEUE1 (Bit 4) */ + #define R_ETHSW_IMC_QLEVEL_P_QUEUE1_Msk (0xf0UL) /*!< QUEUE1 (Bitfield-Mask: 0x0f) */ + #define R_ETHSW_IMC_QLEVEL_P_QUEUE2_Pos (8UL) /*!< QUEUE2 (Bit 8) */ + #define R_ETHSW_IMC_QLEVEL_P_QUEUE2_Msk (0xf00UL) /*!< QUEUE2 (Bitfield-Mask: 0x0f) */ + #define R_ETHSW_IMC_QLEVEL_P_QUEUE3_Pos (12UL) /*!< QUEUE3 (Bit 12) */ + #define R_ETHSW_IMC_QLEVEL_P_QUEUE3_Msk (0xf000UL) /*!< QUEUE3 (Bitfield-Mask: 0x0f) */ + #define R_ETHSW_IMC_QLEVEL_P_QUEUE4_Pos (16UL) /*!< QUEUE4 (Bit 16) */ + #define R_ETHSW_IMC_QLEVEL_P_QUEUE4_Msk (0xf0000UL) /*!< QUEUE4 (Bitfield-Mask: 0x0f) */ + #define R_ETHSW_IMC_QLEVEL_P_QUEUE5_Pos (20UL) /*!< QUEUE5 (Bit 20) */ + #define R_ETHSW_IMC_QLEVEL_P_QUEUE5_Msk (0xf00000UL) /*!< QUEUE5 (Bitfield-Mask: 0x0f) */ + #define R_ETHSW_IMC_QLEVEL_P_QUEUE6_Pos (24UL) /*!< QUEUE6 (Bit 24) */ + #define R_ETHSW_IMC_QLEVEL_P_QUEUE6_Msk (0xf000000UL) /*!< QUEUE6 (Bitfield-Mask: 0x0f) */ + #define R_ETHSW_IMC_QLEVEL_P_QUEUE7_Pos (28UL) /*!< QUEUE7 (Bit 28) */ + #define R_ETHSW_IMC_QLEVEL_P_QUEUE7_Msk (0xf0000000UL) /*!< QUEUE7 (Bitfield-Mask: 0x0f) */ +/* ======================================================== LK_CTRL ======================================================== */ + #define R_ETHSW_LK_CTRL_LKUP_EN_Pos (0UL) /*!< LKUP_EN (Bit 0) */ + #define R_ETHSW_LK_CTRL_LKUP_EN_Msk (0x1UL) /*!< LKUP_EN (Bitfield-Mask: 0x01) */ + #define R_ETHSW_LK_CTRL_LEARN_EN_Pos (1UL) /*!< LEARN_EN (Bit 1) */ + #define R_ETHSW_LK_CTRL_LEARN_EN_Msk (0x2UL) /*!< LEARN_EN (Bitfield-Mask: 0x01) */ + #define R_ETHSW_LK_CTRL_AGING_EN_Pos (2UL) /*!< AGING_EN (Bit 2) */ + #define R_ETHSW_LK_CTRL_AGING_EN_Msk (0x4UL) /*!< AGING_EN (Bitfield-Mask: 0x01) */ + #define R_ETHSW_LK_CTRL_ALW_MGRT_Pos (3UL) /*!< ALW_MGRT (Bit 3) */ + #define R_ETHSW_LK_CTRL_ALW_MGRT_Msk (0x8UL) /*!< ALW_MGRT (Bitfield-Mask: 0x01) */ + #define R_ETHSW_LK_CTRL_DISC_UNK_DEST_Pos (4UL) /*!< DISC_UNK_DEST (Bit 4) */ + #define R_ETHSW_LK_CTRL_DISC_UNK_DEST_Msk (0x10UL) /*!< DISC_UNK_DEST (Bitfield-Mask: 0x01) */ + #define R_ETHSW_LK_CTRL_CLRTBL_Pos (6UL) /*!< CLRTBL (Bit 6) */ + #define R_ETHSW_LK_CTRL_CLRTBL_Msk (0x40UL) /*!< CLRTBL (Bitfield-Mask: 0x01) */ + #define R_ETHSW_LK_CTRL_IND_VLAN_Pos (7UL) /*!< IND_VLAN (Bit 7) */ + #define R_ETHSW_LK_CTRL_IND_VLAN_Msk (0x80UL) /*!< IND_VLAN (Bitfield-Mask: 0x01) */ + #define R_ETHSW_LK_CTRL_DISC_UNK_SRC_Pos (16UL) /*!< DISC_UNK_SRC (Bit 16) */ + #define R_ETHSW_LK_CTRL_DISC_UNK_SRC_Msk (0xf0000UL) /*!< DISC_UNK_SRC (Bitfield-Mask: 0x0f) */ +/* ======================================================= LK_STATUS ======================================================= */ + #define R_ETHSW_LK_STATUS_AGEADDR_Pos (0UL) /*!< AGEADDR (Bit 0) */ + #define R_ETHSW_LK_STATUS_AGEADDR_Msk (0xffffUL) /*!< AGEADDR (Bitfield-Mask: 0xffff) */ + #define R_ETHSW_LK_STATUS_OVRF_Pos (16UL) /*!< OVRF (Bit 16) */ + #define R_ETHSW_LK_STATUS_OVRF_Msk (0x3fff0000UL) /*!< OVRF (Bitfield-Mask: 0x3fff) */ + #define R_ETHSW_LK_STATUS_LRNEVNT_Pos (31UL) /*!< LRNEVNT (Bit 31) */ + #define R_ETHSW_LK_STATUS_LRNEVNT_Msk (0x80000000UL) /*!< LRNEVNT (Bitfield-Mask: 0x01) */ +/* ===================================================== LK_ADDR_CTRL ====================================================== */ + #define R_ETHSW_LK_ADDR_CTRL_ADDR_MSK_Pos (0UL) /*!< ADDR_MSK (Bit 0) */ + #define R_ETHSW_LK_ADDR_CTRL_ADDR_MSK_Msk (0xfffUL) /*!< ADDR_MSK (Bitfield-Mask: 0xfff) */ + #define R_ETHSW_LK_ADDR_CTRL_CLR_DYNAMIC_Pos (22UL) /*!< CLR_DYNAMIC (Bit 22) */ + #define R_ETHSW_LK_ADDR_CTRL_CLR_DYNAMIC_Msk (0x400000UL) /*!< CLR_DYNAMIC (Bitfield-Mask: 0x01) */ + #define R_ETHSW_LK_ADDR_CTRL_CLR_STATIC_Pos (23UL) /*!< CLR_STATIC (Bit 23) */ + #define R_ETHSW_LK_ADDR_CTRL_CLR_STATIC_Msk (0x800000UL) /*!< CLR_STATIC (Bitfield-Mask: 0x01) */ + #define R_ETHSW_LK_ADDR_CTRL_GETLASTNEW_Pos (24UL) /*!< GETLASTNEW (Bit 24) */ + #define R_ETHSW_LK_ADDR_CTRL_GETLASTNEW_Msk (0x1000000UL) /*!< GETLASTNEW (Bitfield-Mask: 0x01) */ + #define R_ETHSW_LK_ADDR_CTRL_WRITE_Pos (25UL) /*!< WRITE (Bit 25) */ + #define R_ETHSW_LK_ADDR_CTRL_WRITE_Msk (0x2000000UL) /*!< WRITE (Bitfield-Mask: 0x01) */ + #define R_ETHSW_LK_ADDR_CTRL_READ_Pos (26UL) /*!< READ (Bit 26) */ + #define R_ETHSW_LK_ADDR_CTRL_READ_Msk (0x4000000UL) /*!< READ (Bitfield-Mask: 0x01) */ + #define R_ETHSW_LK_ADDR_CTRL_WAIT_COMP_Pos (27UL) /*!< WAIT_COMP (Bit 27) */ + #define R_ETHSW_LK_ADDR_CTRL_WAIT_COMP_Msk (0x8000000UL) /*!< WAIT_COMP (Bitfield-Mask: 0x01) */ + #define R_ETHSW_LK_ADDR_CTRL_LOOKUP_Pos (28UL) /*!< LOOKUP (Bit 28) */ + #define R_ETHSW_LK_ADDR_CTRL_LOOKUP_Msk (0x10000000UL) /*!< LOOKUP (Bitfield-Mask: 0x01) */ + #define R_ETHSW_LK_ADDR_CTRL_CLEAR_Pos (29UL) /*!< CLEAR (Bit 29) */ + #define R_ETHSW_LK_ADDR_CTRL_CLEAR_Msk (0x20000000UL) /*!< CLEAR (Bitfield-Mask: 0x01) */ + #define R_ETHSW_LK_ADDR_CTRL_DEL_PORT_Pos (30UL) /*!< DEL_PORT (Bit 30) */ + #define R_ETHSW_LK_ADDR_CTRL_DEL_PORT_Msk (0x40000000UL) /*!< DEL_PORT (Bitfield-Mask: 0x01) */ + #define R_ETHSW_LK_ADDR_CTRL_BUSY_Pos (31UL) /*!< BUSY (Bit 31) */ + #define R_ETHSW_LK_ADDR_CTRL_BUSY_Msk (0x80000000UL) /*!< BUSY (Bitfield-Mask: 0x01) */ +/* ====================================================== LK_DATA_LO ======================================================= */ + #define R_ETHSW_LK_DATA_LO_MEMDATA_Pos (0UL) /*!< MEMDATA (Bit 0) */ + #define R_ETHSW_LK_DATA_LO_MEMDATA_Msk (0xffffffffUL) /*!< MEMDATA (Bitfield-Mask: 0xffffffff) */ +/* ====================================================== LK_DATA_HI ======================================================= */ + #define R_ETHSW_LK_DATA_HI_MEMDATA_Pos (0UL) /*!< MEMDATA (Bit 0) */ + #define R_ETHSW_LK_DATA_HI_MEMDATA_Msk (0x1ffffffUL) /*!< MEMDATA (Bitfield-Mask: 0x1ffffff) */ +/* ====================================================== LK_DATA_HI2 ====================================================== */ + #define R_ETHSW_LK_DATA_HI2_MEMDATA_Pos (8UL) /*!< MEMDATA (Bit 8) */ + #define R_ETHSW_LK_DATA_HI2_MEMDATA_Msk (0xfff00UL) /*!< MEMDATA (Bitfield-Mask: 0xfff) */ +/* ===================================================== LK_LEARNCOUNT ===================================================== */ + #define R_ETHSW_LK_LEARNCOUNT_LEARNCOUNT_Pos (0UL) /*!< LEARNCOUNT (Bit 0) */ + #define R_ETHSW_LK_LEARNCOUNT_LEARNCOUNT_Msk (0x1fffUL) /*!< LEARNCOUNT (Bitfield-Mask: 0x1fff) */ + #define R_ETHSW_LK_LEARNCOUNT_WRITE_MD_Pos (30UL) /*!< WRITE_MD (Bit 30) */ + #define R_ETHSW_LK_LEARNCOUNT_WRITE_MD_Msk (0xc0000000UL) /*!< WRITE_MD (Bitfield-Mask: 0x03) */ +/* ====================================================== LK_AGETIME ======================================================= */ + #define R_ETHSW_LK_AGETIME_AGETIME_Pos (0UL) /*!< AGETIME (Bit 0) */ + #define R_ETHSW_LK_AGETIME_AGETIME_Msk (0xffffffUL) /*!< AGETIME (Bitfield-Mask: 0xffffff) */ +/* ==================================================== MGMT_TAG_CONFIG ==================================================== */ + #define R_ETHSW_MGMT_TAG_CONFIG_ENABLE_Pos (0UL) /*!< ENABLE (Bit 0) */ + #define R_ETHSW_MGMT_TAG_CONFIG_ENABLE_Msk (0x1UL) /*!< ENABLE (Bitfield-Mask: 0x01) */ + #define R_ETHSW_MGMT_TAG_CONFIG_AL_FRAMES_Pos (1UL) /*!< AL_FRAMES (Bit 1) */ + #define R_ETHSW_MGMT_TAG_CONFIG_AL_FRAMES_Msk (0x2UL) /*!< AL_FRAMES (Bitfield-Mask: 0x01) */ + #define R_ETHSW_MGMT_TAG_CONFIG_TYPE1_EN_Pos (4UL) /*!< TYPE1_EN (Bit 4) */ + #define R_ETHSW_MGMT_TAG_CONFIG_TYPE1_EN_Msk (0x10UL) /*!< TYPE1_EN (Bitfield-Mask: 0x01) */ + #define R_ETHSW_MGMT_TAG_CONFIG_TYPE2_EN_Pos (5UL) /*!< TYPE2_EN (Bit 5) */ + #define R_ETHSW_MGMT_TAG_CONFIG_TYPE2_EN_Msk (0x20UL) /*!< TYPE2_EN (Bitfield-Mask: 0x01) */ + #define R_ETHSW_MGMT_TAG_CONFIG_TAGFIELD_Pos (16UL) /*!< TAGFIELD (Bit 16) */ + #define R_ETHSW_MGMT_TAG_CONFIG_TAGFIELD_Msk (0xffff0000UL) /*!< TAGFIELD (Bitfield-Mask: 0xffff) */ +/* ====================================================== TSM_CONFIG ======================================================= */ + #define R_ETHSW_TSM_CONFIG_IRQ_EN_Pos (0UL) /*!< IRQ_EN (Bit 0) */ + #define R_ETHSW_TSM_CONFIG_IRQ_EN_Msk (0x1UL) /*!< IRQ_EN (Bitfield-Mask: 0x01) */ + #define R_ETHSW_TSM_CONFIG_IRQ_TEST_Pos (1UL) /*!< IRQ_TEST (Bit 1) */ + #define R_ETHSW_TSM_CONFIG_IRQ_TEST_Msk (0x2UL) /*!< IRQ_TEST (Bitfield-Mask: 0x01) */ + #define R_ETHSW_TSM_CONFIG_IRQ_TSFIFO_OVR_Pos (2UL) /*!< IRQ_TSFIFO_OVR (Bit 2) */ + #define R_ETHSW_TSM_CONFIG_IRQ_TSFIFO_OVR_Msk (0x4UL) /*!< IRQ_TSFIFO_OVR (Bitfield-Mask: 0x01) */ + #define R_ETHSW_TSM_CONFIG_IRQ_EVT_OFFSET_Pos (4UL) /*!< IRQ_EVT_OFFSET (Bit 4) */ + #define R_ETHSW_TSM_CONFIG_IRQ_EVT_OFFSET_Msk (0x30UL) /*!< IRQ_EVT_OFFSET (Bitfield-Mask: 0x03) */ + #define R_ETHSW_TSM_CONFIG_IRQ_EVT_PERIOD_Pos (8UL) /*!< IRQ_EVT_PERIOD (Bit 8) */ + #define R_ETHSW_TSM_CONFIG_IRQ_EVT_PERIOD_Msk (0x300UL) /*!< IRQ_EVT_PERIOD (Bitfield-Mask: 0x03) */ + #define R_ETHSW_TSM_CONFIG_IRQ_ATIME_OVER_Pos (12UL) /*!< IRQ_ATIME_OVER (Bit 12) */ + #define R_ETHSW_TSM_CONFIG_IRQ_ATIME_OVER_Msk (0x3000UL) /*!< IRQ_ATIME_OVER (Bitfield-Mask: 0x03) */ + #define R_ETHSW_TSM_CONFIG_IRQ_TX_EN_Pos (16UL) /*!< IRQ_TX_EN (Bit 16) */ + #define R_ETHSW_TSM_CONFIG_IRQ_TX_EN_Msk (0xf0000UL) /*!< IRQ_TX_EN (Bitfield-Mask: 0x0f) */ +/* =================================================== TSM_IRQ_STAT_ACK ==================================================== */ + #define R_ETHSW_TSM_IRQ_STAT_ACK_IRQ_STAT_Pos (0UL) /*!< IRQ_STAT (Bit 0) */ + #define R_ETHSW_TSM_IRQ_STAT_ACK_IRQ_STAT_Msk (0x1UL) /*!< IRQ_STAT (Bitfield-Mask: 0x01) */ + #define R_ETHSW_TSM_IRQ_STAT_ACK_IRQ_TEST_Pos (1UL) /*!< IRQ_TEST (Bit 1) */ + #define R_ETHSW_TSM_IRQ_STAT_ACK_IRQ_TEST_Msk (0x2UL) /*!< IRQ_TEST (Bitfield-Mask: 0x01) */ + #define R_ETHSW_TSM_IRQ_STAT_ACK_IRQ_TSFIFO_OVR_Pos (2UL) /*!< IRQ_TSFIFO_OVR (Bit 2) */ + #define R_ETHSW_TSM_IRQ_STAT_ACK_IRQ_TSFIFO_OVR_Msk (0x4UL) /*!< IRQ_TSFIFO_OVR (Bitfield-Mask: 0x01) */ + #define R_ETHSW_TSM_IRQ_STAT_ACK_IRQ_EVT_OFFSET_Pos (4UL) /*!< IRQ_EVT_OFFSET (Bit 4) */ + #define R_ETHSW_TSM_IRQ_STAT_ACK_IRQ_EVT_OFFSET_Msk (0x30UL) /*!< IRQ_EVT_OFFSET (Bitfield-Mask: 0x03) */ + #define R_ETHSW_TSM_IRQ_STAT_ACK_IRQ_EVT_PERIOD_Pos (8UL) /*!< IRQ_EVT_PERIOD (Bit 8) */ + #define R_ETHSW_TSM_IRQ_STAT_ACK_IRQ_EVT_PERIOD_Msk (0x300UL) /*!< IRQ_EVT_PERIOD (Bitfield-Mask: 0x03) */ + #define R_ETHSW_TSM_IRQ_STAT_ACK_IRQ_ATIME_OVER_Pos (12UL) /*!< IRQ_ATIME_OVER (Bit 12) */ + #define R_ETHSW_TSM_IRQ_STAT_ACK_IRQ_ATIME_OVER_Msk (0x3000UL) /*!< IRQ_ATIME_OVER (Bitfield-Mask: 0x03) */ + #define R_ETHSW_TSM_IRQ_STAT_ACK_IRQ_TX_Pos (16UL) /*!< IRQ_TX (Bit 16) */ + #define R_ETHSW_TSM_IRQ_STAT_ACK_IRQ_TX_Msk (0xf0000UL) /*!< IRQ_TX (Bitfield-Mask: 0x0f) */ +/* ====================================================== PTP_DOMAIN ======================================================= */ + #define R_ETHSW_PTP_DOMAIN_DOMAIN0_Pos (0UL) /*!< DOMAIN0 (Bit 0) */ + #define R_ETHSW_PTP_DOMAIN_DOMAIN0_Msk (0xffUL) /*!< DOMAIN0 (Bitfield-Mask: 0xff) */ + #define R_ETHSW_PTP_DOMAIN_DOMAIN1_Pos (8UL) /*!< DOMAIN1 (Bit 8) */ + #define R_ETHSW_PTP_DOMAIN_DOMAIN1_Msk (0xff00UL) /*!< DOMAIN1 (Bitfield-Mask: 0xff) */ +/* ==================================================== PEERDELAY_P0_T0 ==================================================== */ + #define R_ETHSW_PEERDELAY_P0_T0_PEERDELAY_Pos (0UL) /*!< PEERDELAY (Bit 0) */ + #define R_ETHSW_PEERDELAY_P0_T0_PEERDELAY_Msk (0x3fffffffUL) /*!< PEERDELAY (Bitfield-Mask: 0x3fffffff) */ +/* ==================================================== PEERDELAY_P1_T0 ==================================================== */ + #define R_ETHSW_PEERDELAY_P1_T0_PEERDELAY_Pos (0UL) /*!< PEERDELAY (Bit 0) */ + #define R_ETHSW_PEERDELAY_P1_T0_PEERDELAY_Msk (0x3fffffffUL) /*!< PEERDELAY (Bitfield-Mask: 0x3fffffff) */ +/* ==================================================== PEERDELAY_P2_T0 ==================================================== */ + #define R_ETHSW_PEERDELAY_P2_T0_PEERDELAY_Pos (0UL) /*!< PEERDELAY (Bit 0) */ + #define R_ETHSW_PEERDELAY_P2_T0_PEERDELAY_Msk (0x3fffffffUL) /*!< PEERDELAY (Bitfield-Mask: 0x3fffffff) */ +/* ==================================================== PEERDELAY_P3_T0 ==================================================== */ + #define R_ETHSW_PEERDELAY_P3_T0_PEERDELAY_Pos (0UL) /*!< PEERDELAY (Bit 0) */ + #define R_ETHSW_PEERDELAY_P3_T0_PEERDELAY_Msk (0x3fffffffUL) /*!< PEERDELAY (Bitfield-Mask: 0x3fffffff) */ +/* ==================================================== PEERDELAY_P0_T1 ==================================================== */ + #define R_ETHSW_PEERDELAY_P0_T1_PEERDELAY_Pos (0UL) /*!< PEERDELAY (Bit 0) */ + #define R_ETHSW_PEERDELAY_P0_T1_PEERDELAY_Msk (0x3fffffffUL) /*!< PEERDELAY (Bitfield-Mask: 0x3fffffff) */ +/* ==================================================== PEERDELAY_P1_T1 ==================================================== */ + #define R_ETHSW_PEERDELAY_P1_T1_PEERDELAY_Pos (0UL) /*!< PEERDELAY (Bit 0) */ + #define R_ETHSW_PEERDELAY_P1_T1_PEERDELAY_Msk (0x3fffffffUL) /*!< PEERDELAY (Bitfield-Mask: 0x3fffffff) */ +/* ==================================================== PEERDELAY_P2_T1 ==================================================== */ + #define R_ETHSW_PEERDELAY_P2_T1_PEERDELAY_Pos (0UL) /*!< PEERDELAY (Bit 0) */ + #define R_ETHSW_PEERDELAY_P2_T1_PEERDELAY_Msk (0x3fffffffUL) /*!< PEERDELAY (Bitfield-Mask: 0x3fffffff) */ +/* ==================================================== PEERDELAY_P3_T1 ==================================================== */ + #define R_ETHSW_PEERDELAY_P3_T1_PEERDELAY_Pos (0UL) /*!< PEERDELAY (Bit 0) */ + #define R_ETHSW_PEERDELAY_P3_T1_PEERDELAY_Msk (0x3fffffffUL) /*!< PEERDELAY (Bitfield-Mask: 0x3fffffff) */ +/* ==================================================== TS_FIFO_STATUS ===================================================== */ + #define R_ETHSW_TS_FIFO_STATUS_FF_VALID_Pos (0UL) /*!< FF_VALID (Bit 0) */ + #define R_ETHSW_TS_FIFO_STATUS_FF_VALID_Msk (0xfUL) /*!< FF_VALID (Bitfield-Mask: 0x0f) */ + #define R_ETHSW_TS_FIFO_STATUS_FF_OVR_Pos (16UL) /*!< FF_OVR (Bit 16) */ + #define R_ETHSW_TS_FIFO_STATUS_FF_OVR_Msk (0xf0000UL) /*!< FF_OVR (Bitfield-Mask: 0x0f) */ +/* =================================================== TS_FIFO_READ_CTRL =================================================== */ + #define R_ETHSW_TS_FIFO_READ_CTRL_PORT_NUM_Pos (0UL) /*!< PORT_NUM (Bit 0) */ + #define R_ETHSW_TS_FIFO_READ_CTRL_PORT_NUM_Msk (0x3UL) /*!< PORT_NUM (Bitfield-Mask: 0x03) */ + #define R_ETHSW_TS_FIFO_READ_CTRL_TS_VALID_Pos (4UL) /*!< TS_VALID (Bit 4) */ + #define R_ETHSW_TS_FIFO_READ_CTRL_TS_VALID_Msk (0x10UL) /*!< TS_VALID (Bitfield-Mask: 0x01) */ + #define R_ETHSW_TS_FIFO_READ_CTRL_TS_SEL_Pos (6UL) /*!< TS_SEL (Bit 6) */ + #define R_ETHSW_TS_FIFO_READ_CTRL_TS_SEL_Msk (0x40UL) /*!< TS_SEL (Bitfield-Mask: 0x01) */ + #define R_ETHSW_TS_FIFO_READ_CTRL_TS_ID_Pos (8UL) /*!< TS_ID (Bit 8) */ + #define R_ETHSW_TS_FIFO_READ_CTRL_TS_ID_Msk (0x7f00UL) /*!< TS_ID (Bitfield-Mask: 0x7f) */ +/* ================================================ TS_FIFO_READ_TIMESTAMP ================================================= */ + #define R_ETHSW_TS_FIFO_READ_TIMESTAMP_TIMESTAMP_Pos (0UL) /*!< TIMESTAMP (Bit 0) */ + #define R_ETHSW_TS_FIFO_READ_TIMESTAMP_TIMESTAMP_Msk (0xffffffffUL) /*!< TIMESTAMP (Bitfield-Mask: 0xffffffff) */ +/* ====================================================== INT_CONFIG ======================================================= */ + #define R_ETHSW_INT_CONFIG_IRQ_EN_Pos (0UL) /*!< IRQ_EN (Bit 0) */ + #define R_ETHSW_INT_CONFIG_IRQ_EN_Msk (0x1UL) /*!< IRQ_EN (Bitfield-Mask: 0x01) */ + #define R_ETHSW_INT_CONFIG_MDIO1_Pos (1UL) /*!< MDIO1 (Bit 1) */ + #define R_ETHSW_INT_CONFIG_MDIO1_Msk (0x2UL) /*!< MDIO1 (Bitfield-Mask: 0x01) */ + #define R_ETHSW_INT_CONFIG_LK_NEW_SRC_Pos (3UL) /*!< LK_NEW_SRC (Bit 3) */ + #define R_ETHSW_INT_CONFIG_LK_NEW_SRC_Msk (0x8UL) /*!< LK_NEW_SRC (Bitfield-Mask: 0x01) */ + #define R_ETHSW_INT_CONFIG_IRQ_TEST_Pos (4UL) /*!< IRQ_TEST (Bit 4) */ + #define R_ETHSW_INT_CONFIG_IRQ_TEST_Msk (0x10UL) /*!< IRQ_TEST (Bitfield-Mask: 0x01) */ + #define R_ETHSW_INT_CONFIG_DLR_INT_Pos (5UL) /*!< DLR_INT (Bit 5) */ + #define R_ETHSW_INT_CONFIG_DLR_INT_Msk (0x20UL) /*!< DLR_INT (Bitfield-Mask: 0x01) */ + #define R_ETHSW_INT_CONFIG_PRP_INT_Pos (6UL) /*!< PRP_INT (Bit 6) */ + #define R_ETHSW_INT_CONFIG_PRP_INT_Msk (0x40UL) /*!< PRP_INT (Bitfield-Mask: 0x01) */ + #define R_ETHSW_INT_CONFIG_HUB_INT_Pos (7UL) /*!< HUB_INT (Bit 7) */ + #define R_ETHSW_INT_CONFIG_HUB_INT_Msk (0x80UL) /*!< HUB_INT (Bitfield-Mask: 0x01) */ + #define R_ETHSW_INT_CONFIG_IRQ_LINK_Pos (8UL) /*!< IRQ_LINK (Bit 8) */ + #define R_ETHSW_INT_CONFIG_IRQ_LINK_Msk (0x700UL) /*!< IRQ_LINK (Bitfield-Mask: 0x07) */ + #define R_ETHSW_INT_CONFIG_IRQ_MAC_EEE_Pos (16UL) /*!< IRQ_MAC_EEE (Bit 16) */ + #define R_ETHSW_INT_CONFIG_IRQ_MAC_EEE_Msk (0x70000UL) /*!< IRQ_MAC_EEE (Bitfield-Mask: 0x07) */ + #define R_ETHSW_INT_CONFIG_EFP_INT_Pos (27UL) /*!< EFP_INT (Bit 27) */ + #define R_ETHSW_INT_CONFIG_EFP_INT_Msk (0x8000000UL) /*!< EFP_INT (Bitfield-Mask: 0x01) */ + #define R_ETHSW_INT_CONFIG_SRCFLT_WD_INT_Pos (28UL) /*!< SRCFLT_WD_INT (Bit 28) */ + #define R_ETHSW_INT_CONFIG_SRCFLT_WD_INT_Msk (0x10000000UL) /*!< SRCFLT_WD_INT (Bitfield-Mask: 0x01) */ + #define R_ETHSW_INT_CONFIG_TSM_INT_Pos (29UL) /*!< TSM_INT (Bit 29) */ + #define R_ETHSW_INT_CONFIG_TSM_INT_Msk (0x20000000UL) /*!< TSM_INT (Bitfield-Mask: 0x01) */ + #define R_ETHSW_INT_CONFIG_TDMA_INT_Pos (30UL) /*!< TDMA_INT (Bit 30) */ + #define R_ETHSW_INT_CONFIG_TDMA_INT_Msk (0x40000000UL) /*!< TDMA_INT (Bitfield-Mask: 0x01) */ + #define R_ETHSW_INT_CONFIG_PATTERN_INT_Pos (31UL) /*!< PATTERN_INT (Bit 31) */ + #define R_ETHSW_INT_CONFIG_PATTERN_INT_Msk (0x80000000UL) /*!< PATTERN_INT (Bitfield-Mask: 0x01) */ +/* ===================================================== INT_STAT_ACK ====================================================== */ + #define R_ETHSW_INT_STAT_ACK_IRQ_PEND_Pos (0UL) /*!< IRQ_PEND (Bit 0) */ + #define R_ETHSW_INT_STAT_ACK_IRQ_PEND_Msk (0x1UL) /*!< IRQ_PEND (Bitfield-Mask: 0x01) */ + #define R_ETHSW_INT_STAT_ACK_MDIO1_Pos (1UL) /*!< MDIO1 (Bit 1) */ + #define R_ETHSW_INT_STAT_ACK_MDIO1_Msk (0x2UL) /*!< MDIO1 (Bitfield-Mask: 0x01) */ + #define R_ETHSW_INT_STAT_ACK_LK_NEW_SRC_Pos (3UL) /*!< LK_NEW_SRC (Bit 3) */ + #define R_ETHSW_INT_STAT_ACK_LK_NEW_SRC_Msk (0x8UL) /*!< LK_NEW_SRC (Bitfield-Mask: 0x01) */ + #define R_ETHSW_INT_STAT_ACK_IRQ_TEST_Pos (4UL) /*!< IRQ_TEST (Bit 4) */ + #define R_ETHSW_INT_STAT_ACK_IRQ_TEST_Msk (0x10UL) /*!< IRQ_TEST (Bitfield-Mask: 0x01) */ + #define R_ETHSW_INT_STAT_ACK_DLR_INT_Pos (5UL) /*!< DLR_INT (Bit 5) */ + #define R_ETHSW_INT_STAT_ACK_DLR_INT_Msk (0x20UL) /*!< DLR_INT (Bitfield-Mask: 0x01) */ + #define R_ETHSW_INT_STAT_ACK_PRP_INT_Pos (6UL) /*!< PRP_INT (Bit 6) */ + #define R_ETHSW_INT_STAT_ACK_PRP_INT_Msk (0x40UL) /*!< PRP_INT (Bitfield-Mask: 0x01) */ + #define R_ETHSW_INT_STAT_ACK_HUB_INT_Pos (7UL) /*!< HUB_INT (Bit 7) */ + #define R_ETHSW_INT_STAT_ACK_HUB_INT_Msk (0x80UL) /*!< HUB_INT (Bitfield-Mask: 0x01) */ + #define R_ETHSW_INT_STAT_ACK_IRQ_LINK_Pos (8UL) /*!< IRQ_LINK (Bit 8) */ + #define R_ETHSW_INT_STAT_ACK_IRQ_LINK_Msk (0x700UL) /*!< IRQ_LINK (Bitfield-Mask: 0x07) */ + #define R_ETHSW_INT_STAT_ACK_IRQ_MAC_EEE_Pos (16UL) /*!< IRQ_MAC_EEE (Bit 16) */ + #define R_ETHSW_INT_STAT_ACK_IRQ_MAC_EEE_Msk (0x70000UL) /*!< IRQ_MAC_EEE (Bitfield-Mask: 0x07) */ + #define R_ETHSW_INT_STAT_ACK_EFP_INT_Pos (27UL) /*!< EFP_INT (Bit 27) */ + #define R_ETHSW_INT_STAT_ACK_EFP_INT_Msk (0x8000000UL) /*!< EFP_INT (Bitfield-Mask: 0x01) */ + #define R_ETHSW_INT_STAT_ACK_SRCFLT_WD_INT_Pos (28UL) /*!< SRCFLT_WD_INT (Bit 28) */ + #define R_ETHSW_INT_STAT_ACK_SRCFLT_WD_INT_Msk (0x10000000UL) /*!< SRCFLT_WD_INT (Bitfield-Mask: 0x01) */ + #define R_ETHSW_INT_STAT_ACK_TSM_INT_Pos (29UL) /*!< TSM_INT (Bit 29) */ + #define R_ETHSW_INT_STAT_ACK_TSM_INT_Msk (0x20000000UL) /*!< TSM_INT (Bitfield-Mask: 0x01) */ + #define R_ETHSW_INT_STAT_ACK_TDMA_INT_Pos (30UL) /*!< TDMA_INT (Bit 30) */ + #define R_ETHSW_INT_STAT_ACK_TDMA_INT_Msk (0x40000000UL) /*!< TDMA_INT (Bitfield-Mask: 0x01) */ + #define R_ETHSW_INT_STAT_ACK_PATTERN_INT_Pos (31UL) /*!< PATTERN_INT (Bit 31) */ + #define R_ETHSW_INT_STAT_ACK_PATTERN_INT_Msk (0x80000000UL) /*!< PATTERN_INT (Bitfield-Mask: 0x01) */ +/* ====================================================== ATIME_CTRL0 ====================================================== */ + #define R_ETHSW_ATIME_CTRL0_ENABLE_Pos (0UL) /*!< ENABLE (Bit 0) */ + #define R_ETHSW_ATIME_CTRL0_ENABLE_Msk (0x1UL) /*!< ENABLE (Bitfield-Mask: 0x01) */ + #define R_ETHSW_ATIME_CTRL0_ONE_SHOT_Pos (1UL) /*!< ONE_SHOT (Bit 1) */ + #define R_ETHSW_ATIME_CTRL0_ONE_SHOT_Msk (0x2UL) /*!< ONE_SHOT (Bitfield-Mask: 0x01) */ + #define R_ETHSW_ATIME_CTRL0_EVT_OFFSET_ENA_Pos (2UL) /*!< EVT_OFFSET_ENA (Bit 2) */ + #define R_ETHSW_ATIME_CTRL0_EVT_OFFSET_ENA_Msk (0x4UL) /*!< EVT_OFFSET_ENA (Bitfield-Mask: 0x01) */ + #define R_ETHSW_ATIME_CTRL0_EVT_PERIOD_ENA_Pos (4UL) /*!< EVT_PERIOD_ENA (Bit 4) */ + #define R_ETHSW_ATIME_CTRL0_EVT_PERIOD_ENA_Msk (0x10UL) /*!< EVT_PERIOD_ENA (Bitfield-Mask: 0x01) */ + #define R_ETHSW_ATIME_CTRL0_EVT_PERIOD_RST_Pos (5UL) /*!< EVT_PERIOD_RST (Bit 5) */ + #define R_ETHSW_ATIME_CTRL0_EVT_PERIOD_RST_Msk (0x20UL) /*!< EVT_PERIOD_RST (Bitfield-Mask: 0x01) */ + #define R_ETHSW_ATIME_CTRL0_RESTART_Pos (9UL) /*!< RESTART (Bit 9) */ + #define R_ETHSW_ATIME_CTRL0_RESTART_Msk (0x200UL) /*!< RESTART (Bitfield-Mask: 0x01) */ + #define R_ETHSW_ATIME_CTRL0_CAPTURE_Pos (11UL) /*!< CAPTURE (Bit 11) */ + #define R_ETHSW_ATIME_CTRL0_CAPTURE_Msk (0x800UL) /*!< CAPTURE (Bitfield-Mask: 0x01) */ + #define R_ETHSW_ATIME_CTRL0_CAPTURE_ALL_Pos (12UL) /*!< CAPTURE_ALL (Bit 12) */ + #define R_ETHSW_ATIME_CTRL0_CAPTURE_ALL_Msk (0x1000UL) /*!< CAPTURE_ALL (Bitfield-Mask: 0x01) */ +/* ====================================================== ATIME_CTRL1 ====================================================== */ + #define R_ETHSW_ATIME_CTRL1_ENABLE_Pos (0UL) /*!< ENABLE (Bit 0) */ + #define R_ETHSW_ATIME_CTRL1_ENABLE_Msk (0x1UL) /*!< ENABLE (Bitfield-Mask: 0x01) */ + #define R_ETHSW_ATIME_CTRL1_ONE_SHOT_Pos (1UL) /*!< ONE_SHOT (Bit 1) */ + #define R_ETHSW_ATIME_CTRL1_ONE_SHOT_Msk (0x2UL) /*!< ONE_SHOT (Bitfield-Mask: 0x01) */ + #define R_ETHSW_ATIME_CTRL1_EVT_OFFSET_ENA_Pos (2UL) /*!< EVT_OFFSET_ENA (Bit 2) */ + #define R_ETHSW_ATIME_CTRL1_EVT_OFFSET_ENA_Msk (0x4UL) /*!< EVT_OFFSET_ENA (Bitfield-Mask: 0x01) */ + #define R_ETHSW_ATIME_CTRL1_EVT_PERIOD_ENA_Pos (4UL) /*!< EVT_PERIOD_ENA (Bit 4) */ + #define R_ETHSW_ATIME_CTRL1_EVT_PERIOD_ENA_Msk (0x10UL) /*!< EVT_PERIOD_ENA (Bitfield-Mask: 0x01) */ + #define R_ETHSW_ATIME_CTRL1_EVT_PERIOD_RST_Pos (5UL) /*!< EVT_PERIOD_RST (Bit 5) */ + #define R_ETHSW_ATIME_CTRL1_EVT_PERIOD_RST_Msk (0x20UL) /*!< EVT_PERIOD_RST (Bitfield-Mask: 0x01) */ + #define R_ETHSW_ATIME_CTRL1_RESTART_Pos (9UL) /*!< RESTART (Bit 9) */ + #define R_ETHSW_ATIME_CTRL1_RESTART_Msk (0x200UL) /*!< RESTART (Bitfield-Mask: 0x01) */ + #define R_ETHSW_ATIME_CTRL1_CAPTURE_Pos (11UL) /*!< CAPTURE (Bit 11) */ + #define R_ETHSW_ATIME_CTRL1_CAPTURE_Msk (0x800UL) /*!< CAPTURE (Bitfield-Mask: 0x01) */ + #define R_ETHSW_ATIME_CTRL1_CAPTURE_ALL_Pos (12UL) /*!< CAPTURE_ALL (Bit 12) */ + #define R_ETHSW_ATIME_CTRL1_CAPTURE_ALL_Msk (0x1000UL) /*!< CAPTURE_ALL (Bitfield-Mask: 0x01) */ +/* ======================================================== ATIME0 ========================================================= */ + #define R_ETHSW_ATIME0_TIMER_VAL_Pos (0UL) /*!< TIMER_VAL (Bit 0) */ + #define R_ETHSW_ATIME0_TIMER_VAL_Msk (0xffffffffUL) /*!< TIMER_VAL (Bitfield-Mask: 0xffffffff) */ +/* ======================================================== ATIME1 ========================================================= */ + #define R_ETHSW_ATIME1_TIMER_VAL_Pos (0UL) /*!< TIMER_VAL (Bit 0) */ + #define R_ETHSW_ATIME1_TIMER_VAL_Msk (0xffffffffUL) /*!< TIMER_VAL (Bitfield-Mask: 0xffffffff) */ +/* ===================================================== ATIME_OFFSET0 ===================================================== */ + #define R_ETHSW_ATIME_OFFSET0_OFFSET_Pos (0UL) /*!< OFFSET (Bit 0) */ + #define R_ETHSW_ATIME_OFFSET0_OFFSET_Msk (0xffffffffUL) /*!< OFFSET (Bitfield-Mask: 0xffffffff) */ +/* ===================================================== ATIME_OFFSET1 ===================================================== */ + #define R_ETHSW_ATIME_OFFSET1_OFFSET_Pos (0UL) /*!< OFFSET (Bit 0) */ + #define R_ETHSW_ATIME_OFFSET1_OFFSET_Msk (0xffffffffUL) /*!< OFFSET (Bitfield-Mask: 0xffffffff) */ +/* =================================================== ATIME_EVT_PERIOD0 =================================================== */ + #define R_ETHSW_ATIME_EVT_PERIOD0_PERIOD_Pos (0UL) /*!< PERIOD (Bit 0) */ + #define R_ETHSW_ATIME_EVT_PERIOD0_PERIOD_Msk (0xffffffffUL) /*!< PERIOD (Bitfield-Mask: 0xffffffff) */ +/* =================================================== ATIME_EVT_PERIOD1 =================================================== */ + #define R_ETHSW_ATIME_EVT_PERIOD1_PERIOD_Pos (0UL) /*!< PERIOD (Bit 0) */ + #define R_ETHSW_ATIME_EVT_PERIOD1_PERIOD_Msk (0xffffffffUL) /*!< PERIOD (Bitfield-Mask: 0xffffffff) */ +/* ====================================================== ATIME_CORR0 ====================================================== */ + #define R_ETHSW_ATIME_CORR0_CORR_PERIOD_Pos (0UL) /*!< CORR_PERIOD (Bit 0) */ + #define R_ETHSW_ATIME_CORR0_CORR_PERIOD_Msk (0x7fffffffUL) /*!< CORR_PERIOD (Bitfield-Mask: 0x7fffffff) */ +/* ====================================================== ATIME_CORR1 ====================================================== */ + #define R_ETHSW_ATIME_CORR1_CORR_PERIOD_Pos (0UL) /*!< CORR_PERIOD (Bit 0) */ + #define R_ETHSW_ATIME_CORR1_CORR_PERIOD_Msk (0x7fffffffUL) /*!< CORR_PERIOD (Bitfield-Mask: 0x7fffffff) */ +/* ====================================================== ATIME_INC0 ======================================================= */ + #define R_ETHSW_ATIME_INC0_CLK_PERIOD_Pos (0UL) /*!< CLK_PERIOD (Bit 0) */ + #define R_ETHSW_ATIME_INC0_CLK_PERIOD_Msk (0x7fUL) /*!< CLK_PERIOD (Bitfield-Mask: 0x7f) */ + #define R_ETHSW_ATIME_INC0_CORR_INC_Pos (8UL) /*!< CORR_INC (Bit 8) */ + #define R_ETHSW_ATIME_INC0_CORR_INC_Msk (0x7f00UL) /*!< CORR_INC (Bitfield-Mask: 0x7f) */ + #define R_ETHSW_ATIME_INC0_OFFS_CORR_INC_Pos (16UL) /*!< OFFS_CORR_INC (Bit 16) */ + #define R_ETHSW_ATIME_INC0_OFFS_CORR_INC_Msk (0x7f0000UL) /*!< OFFS_CORR_INC (Bitfield-Mask: 0x7f) */ +/* ====================================================== ATIME_INC1 ======================================================= */ + #define R_ETHSW_ATIME_INC1_CLK_PERIOD_Pos (0UL) /*!< CLK_PERIOD (Bit 0) */ + #define R_ETHSW_ATIME_INC1_CLK_PERIOD_Msk (0x7fUL) /*!< CLK_PERIOD (Bitfield-Mask: 0x7f) */ + #define R_ETHSW_ATIME_INC1_CORR_INC_Pos (8UL) /*!< CORR_INC (Bit 8) */ + #define R_ETHSW_ATIME_INC1_CORR_INC_Msk (0x7f00UL) /*!< CORR_INC (Bitfield-Mask: 0x7f) */ + #define R_ETHSW_ATIME_INC1_OFFS_CORR_INC_Pos (16UL) /*!< OFFS_CORR_INC (Bit 16) */ + #define R_ETHSW_ATIME_INC1_OFFS_CORR_INC_Msk (0x7f0000UL) /*!< OFFS_CORR_INC (Bitfield-Mask: 0x7f) */ +/* ====================================================== ATIME_SEC0 ======================================================= */ + #define R_ETHSW_ATIME_SEC0_SEC_TIME_Pos (0UL) /*!< SEC_TIME (Bit 0) */ + #define R_ETHSW_ATIME_SEC0_SEC_TIME_Msk (0xffffffffUL) /*!< SEC_TIME (Bitfield-Mask: 0xffffffff) */ +/* ====================================================== ATIME_SEC1 ======================================================= */ + #define R_ETHSW_ATIME_SEC1_SEC_TIME_Pos (0UL) /*!< SEC_TIME (Bit 0) */ + #define R_ETHSW_ATIME_SEC1_SEC_TIME_Msk (0xffffffffUL) /*!< SEC_TIME (Bitfield-Mask: 0xffffffff) */ +/* =================================================== ATIME_OFFS_CORR0 ==================================================== */ + #define R_ETHSW_ATIME_OFFS_CORR0_OFFS_CORR_CNT_Pos (0UL) /*!< OFFS_CORR_CNT (Bit 0) */ + #define R_ETHSW_ATIME_OFFS_CORR0_OFFS_CORR_CNT_Msk (0xffffffffUL) /*!< OFFS_CORR_CNT (Bitfield-Mask: 0xffffffff) */ +/* =================================================== ATIME_OFFS_CORR1 ==================================================== */ + #define R_ETHSW_ATIME_OFFS_CORR1_OFFS_CORR_CNT_Pos (0UL) /*!< OFFS_CORR_CNT (Bit 0) */ + #define R_ETHSW_ATIME_OFFS_CORR1_OFFS_CORR_CNT_Msk (0xffffffffUL) /*!< OFFS_CORR_CNT (Bitfield-Mask: 0xffffffff) */ +/* ==================================================== MDIO_CFG_STATUS ==================================================== */ + #define R_ETHSW_MDIO_CFG_STATUS_BUSY_Pos (0UL) /*!< BUSY (Bit 0) */ + #define R_ETHSW_MDIO_CFG_STATUS_BUSY_Msk (0x1UL) /*!< BUSY (Bitfield-Mask: 0x01) */ + #define R_ETHSW_MDIO_CFG_STATUS_READERR_Pos (1UL) /*!< READERR (Bit 1) */ + #define R_ETHSW_MDIO_CFG_STATUS_READERR_Msk (0x2UL) /*!< READERR (Bitfield-Mask: 0x01) */ + #define R_ETHSW_MDIO_CFG_STATUS_HOLD_Pos (2UL) /*!< HOLD (Bit 2) */ + #define R_ETHSW_MDIO_CFG_STATUS_HOLD_Msk (0x1cUL) /*!< HOLD (Bitfield-Mask: 0x07) */ + #define R_ETHSW_MDIO_CFG_STATUS_DISPREAM_Pos (5UL) /*!< DISPREAM (Bit 5) */ + #define R_ETHSW_MDIO_CFG_STATUS_DISPREAM_Msk (0x20UL) /*!< DISPREAM (Bitfield-Mask: 0x01) */ + #define R_ETHSW_MDIO_CFG_STATUS_CLKDIV_Pos (7UL) /*!< CLKDIV (Bit 7) */ + #define R_ETHSW_MDIO_CFG_STATUS_CLKDIV_Msk (0xff80UL) /*!< CLKDIV (Bitfield-Mask: 0x1ff) */ +/* ===================================================== MDIO_COMMAND ====================================================== */ + #define R_ETHSW_MDIO_COMMAND_REGADDR_Pos (0UL) /*!< REGADDR (Bit 0) */ + #define R_ETHSW_MDIO_COMMAND_REGADDR_Msk (0x1fUL) /*!< REGADDR (Bitfield-Mask: 0x1f) */ + #define R_ETHSW_MDIO_COMMAND_PHYADDR_Pos (5UL) /*!< PHYADDR (Bit 5) */ + #define R_ETHSW_MDIO_COMMAND_PHYADDR_Msk (0x3e0UL) /*!< PHYADDR (Bitfield-Mask: 0x1f) */ + #define R_ETHSW_MDIO_COMMAND_TRANINIT_Pos (15UL) /*!< TRANINIT (Bit 15) */ + #define R_ETHSW_MDIO_COMMAND_TRANINIT_Msk (0x8000UL) /*!< TRANINIT (Bitfield-Mask: 0x01) */ +/* ======================================================= MDIO_DATA ======================================================= */ + #define R_ETHSW_MDIO_DATA_MDIO_DATA_Pos (0UL) /*!< MDIO_DATA (Bit 0) */ + #define R_ETHSW_MDIO_DATA_MDIO_DATA_Msk (0xffffUL) /*!< MDIO_DATA (Bitfield-Mask: 0xffff) */ +/* ======================================================== REV_P0 ========================================================= */ + #define R_ETHSW_REV_P0_REV_Pos (0UL) /*!< REV (Bit 0) */ + #define R_ETHSW_REV_P0_REV_Msk (0xffffffffUL) /*!< REV (Bitfield-Mask: 0xffffffff) */ +/* ======================================================== REV_P1 ========================================================= */ + #define R_ETHSW_REV_P1_REV_Pos (0UL) /*!< REV (Bit 0) */ + #define R_ETHSW_REV_P1_REV_Msk (0xffffffffUL) /*!< REV (Bitfield-Mask: 0xffffffff) */ +/* ======================================================== REV_P2 ========================================================= */ + #define R_ETHSW_REV_P2_REV_Pos (0UL) /*!< REV (Bit 0) */ + #define R_ETHSW_REV_P2_REV_Msk (0xffffffffUL) /*!< REV (Bitfield-Mask: 0xffffffff) */ +/* ======================================================== REV_P3 ========================================================= */ + #define R_ETHSW_REV_P3_REV_Pos (0UL) /*!< REV (Bit 0) */ + #define R_ETHSW_REV_P3_REV_Msk (0xffffffffUL) /*!< REV (Bitfield-Mask: 0xffffffff) */ +/* =================================================== COMMAND_CONFIG_P0 =================================================== */ + #define R_ETHSW_COMMAND_CONFIG_P0_TX_ENA_Pos (0UL) /*!< TX_ENA (Bit 0) */ + #define R_ETHSW_COMMAND_CONFIG_P0_TX_ENA_Msk (0x1UL) /*!< TX_ENA (Bitfield-Mask: 0x01) */ + #define R_ETHSW_COMMAND_CONFIG_P0_RX_ENA_Pos (1UL) /*!< RX_ENA (Bit 1) */ + #define R_ETHSW_COMMAND_CONFIG_P0_RX_ENA_Msk (0x2UL) /*!< RX_ENA (Bitfield-Mask: 0x01) */ + #define R_ETHSW_COMMAND_CONFIG_P0_TDMA_PREBUF_DIS_Pos (2UL) /*!< TDMA_PREBUF_DIS (Bit 2) */ + #define R_ETHSW_COMMAND_CONFIG_P0_TDMA_PREBUF_DIS_Msk (0x4UL) /*!< TDMA_PREBUF_DIS (Bitfield-Mask: 0x01) */ + #define R_ETHSW_COMMAND_CONFIG_P0_ETH_SPEED_Pos (3UL) /*!< ETH_SPEED (Bit 3) */ + #define R_ETHSW_COMMAND_CONFIG_P0_ETH_SPEED_Msk (0x8UL) /*!< ETH_SPEED (Bitfield-Mask: 0x01) */ + #define R_ETHSW_COMMAND_CONFIG_P0_PROMIS_EN_Pos (4UL) /*!< PROMIS_EN (Bit 4) */ + #define R_ETHSW_COMMAND_CONFIG_P0_PROMIS_EN_Msk (0x10UL) /*!< PROMIS_EN (Bitfield-Mask: 0x01) */ + #define R_ETHSW_COMMAND_CONFIG_P0_PAD_EN_Pos (5UL) /*!< PAD_EN (Bit 5) */ + #define R_ETHSW_COMMAND_CONFIG_P0_PAD_EN_Msk (0x20UL) /*!< PAD_EN (Bitfield-Mask: 0x01) */ + #define R_ETHSW_COMMAND_CONFIG_P0_PAUSE_FWD_Pos (7UL) /*!< PAUSE_FWD (Bit 7) */ + #define R_ETHSW_COMMAND_CONFIG_P0_PAUSE_FWD_Msk (0x80UL) /*!< PAUSE_FWD (Bitfield-Mask: 0x01) */ + #define R_ETHSW_COMMAND_CONFIG_P0_PAUSE_IGNORE_Pos (8UL) /*!< PAUSE_IGNORE (Bit 8) */ + #define R_ETHSW_COMMAND_CONFIG_P0_PAUSE_IGNORE_Msk (0x100UL) /*!< PAUSE_IGNORE (Bitfield-Mask: 0x01) */ + #define R_ETHSW_COMMAND_CONFIG_P0_TX_ADDR_INS_Pos (9UL) /*!< TX_ADDR_INS (Bit 9) */ + #define R_ETHSW_COMMAND_CONFIG_P0_TX_ADDR_INS_Msk (0x200UL) /*!< TX_ADDR_INS (Bitfield-Mask: 0x01) */ + #define R_ETHSW_COMMAND_CONFIG_P0_HD_ENA_Pos (10UL) /*!< HD_ENA (Bit 10) */ + #define R_ETHSW_COMMAND_CONFIG_P0_HD_ENA_Msk (0x400UL) /*!< HD_ENA (Bitfield-Mask: 0x01) */ + #define R_ETHSW_COMMAND_CONFIG_P0_TX_CRC_APPEND_Pos (11UL) /*!< TX_CRC_APPEND (Bit 11) */ + #define R_ETHSW_COMMAND_CONFIG_P0_TX_CRC_APPEND_Msk (0x800UL) /*!< TX_CRC_APPEND (Bitfield-Mask: 0x01) */ + #define R_ETHSW_COMMAND_CONFIG_P0_SW_RESET_Pos (13UL) /*!< SW_RESET (Bit 13) */ + #define R_ETHSW_COMMAND_CONFIG_P0_SW_RESET_Msk (0x2000UL) /*!< SW_RESET (Bitfield-Mask: 0x01) */ + #define R_ETHSW_COMMAND_CONFIG_P0_CNTL_FRM_ENA_Pos (23UL) /*!< CNTL_FRM_ENA (Bit 23) */ + #define R_ETHSW_COMMAND_CONFIG_P0_CNTL_FRM_ENA_Msk (0x800000UL) /*!< CNTL_FRM_ENA (Bitfield-Mask: 0x01) */ + #define R_ETHSW_COMMAND_CONFIG_P0_NO_LGTH_CHK_Pos (24UL) /*!< NO_LGTH_CHK (Bit 24) */ + #define R_ETHSW_COMMAND_CONFIG_P0_NO_LGTH_CHK_Msk (0x1000000UL) /*!< NO_LGTH_CHK (Bitfield-Mask: 0x01) */ + #define R_ETHSW_COMMAND_CONFIG_P0_ENA_10_Pos (25UL) /*!< ENA_10 (Bit 25) */ + #define R_ETHSW_COMMAND_CONFIG_P0_ENA_10_Msk (0x2000000UL) /*!< ENA_10 (Bitfield-Mask: 0x01) */ + #define R_ETHSW_COMMAND_CONFIG_P0_EFPI_SELECT_Pos (26UL) /*!< EFPI_SELECT (Bit 26) */ + #define R_ETHSW_COMMAND_CONFIG_P0_EFPI_SELECT_Msk (0x4000000UL) /*!< EFPI_SELECT (Bitfield-Mask: 0x01) */ + #define R_ETHSW_COMMAND_CONFIG_P0_TX_TRUNCATE_Pos (27UL) /*!< TX_TRUNCATE (Bit 27) */ + #define R_ETHSW_COMMAND_CONFIG_P0_TX_TRUNCATE_Msk (0x8000000UL) /*!< TX_TRUNCATE (Bitfield-Mask: 0x01) */ + #define R_ETHSW_COMMAND_CONFIG_P0_TIMER_SEL_Pos (30UL) /*!< TIMER_SEL (Bit 30) */ + #define R_ETHSW_COMMAND_CONFIG_P0_TIMER_SEL_Msk (0x40000000UL) /*!< TIMER_SEL (Bitfield-Mask: 0x01) */ +/* =================================================== COMMAND_CONFIG_P1 =================================================== */ + #define R_ETHSW_COMMAND_CONFIG_P1_TX_ENA_Pos (0UL) /*!< TX_ENA (Bit 0) */ + #define R_ETHSW_COMMAND_CONFIG_P1_TX_ENA_Msk (0x1UL) /*!< TX_ENA (Bitfield-Mask: 0x01) */ + #define R_ETHSW_COMMAND_CONFIG_P1_RX_ENA_Pos (1UL) /*!< RX_ENA (Bit 1) */ + #define R_ETHSW_COMMAND_CONFIG_P1_RX_ENA_Msk (0x2UL) /*!< RX_ENA (Bitfield-Mask: 0x01) */ + #define R_ETHSW_COMMAND_CONFIG_P1_TDMA_PREBUF_DIS_Pos (2UL) /*!< TDMA_PREBUF_DIS (Bit 2) */ + #define R_ETHSW_COMMAND_CONFIG_P1_TDMA_PREBUF_DIS_Msk (0x4UL) /*!< TDMA_PREBUF_DIS (Bitfield-Mask: 0x01) */ + #define R_ETHSW_COMMAND_CONFIG_P1_ETH_SPEED_Pos (3UL) /*!< ETH_SPEED (Bit 3) */ + #define R_ETHSW_COMMAND_CONFIG_P1_ETH_SPEED_Msk (0x8UL) /*!< ETH_SPEED (Bitfield-Mask: 0x01) */ + #define R_ETHSW_COMMAND_CONFIG_P1_PROMIS_EN_Pos (4UL) /*!< PROMIS_EN (Bit 4) */ + #define R_ETHSW_COMMAND_CONFIG_P1_PROMIS_EN_Msk (0x10UL) /*!< PROMIS_EN (Bitfield-Mask: 0x01) */ + #define R_ETHSW_COMMAND_CONFIG_P1_PAD_EN_Pos (5UL) /*!< PAD_EN (Bit 5) */ + #define R_ETHSW_COMMAND_CONFIG_P1_PAD_EN_Msk (0x20UL) /*!< PAD_EN (Bitfield-Mask: 0x01) */ + #define R_ETHSW_COMMAND_CONFIG_P1_PAUSE_FWD_Pos (7UL) /*!< PAUSE_FWD (Bit 7) */ + #define R_ETHSW_COMMAND_CONFIG_P1_PAUSE_FWD_Msk (0x80UL) /*!< PAUSE_FWD (Bitfield-Mask: 0x01) */ + #define R_ETHSW_COMMAND_CONFIG_P1_PAUSE_IGNORE_Pos (8UL) /*!< PAUSE_IGNORE (Bit 8) */ + #define R_ETHSW_COMMAND_CONFIG_P1_PAUSE_IGNORE_Msk (0x100UL) /*!< PAUSE_IGNORE (Bitfield-Mask: 0x01) */ + #define R_ETHSW_COMMAND_CONFIG_P1_TX_ADDR_INS_Pos (9UL) /*!< TX_ADDR_INS (Bit 9) */ + #define R_ETHSW_COMMAND_CONFIG_P1_TX_ADDR_INS_Msk (0x200UL) /*!< TX_ADDR_INS (Bitfield-Mask: 0x01) */ + #define R_ETHSW_COMMAND_CONFIG_P1_HD_ENA_Pos (10UL) /*!< HD_ENA (Bit 10) */ + #define R_ETHSW_COMMAND_CONFIG_P1_HD_ENA_Msk (0x400UL) /*!< HD_ENA (Bitfield-Mask: 0x01) */ + #define R_ETHSW_COMMAND_CONFIG_P1_TX_CRC_APPEND_Pos (11UL) /*!< TX_CRC_APPEND (Bit 11) */ + #define R_ETHSW_COMMAND_CONFIG_P1_TX_CRC_APPEND_Msk (0x800UL) /*!< TX_CRC_APPEND (Bitfield-Mask: 0x01) */ + #define R_ETHSW_COMMAND_CONFIG_P1_SW_RESET_Pos (13UL) /*!< SW_RESET (Bit 13) */ + #define R_ETHSW_COMMAND_CONFIG_P1_SW_RESET_Msk (0x2000UL) /*!< SW_RESET (Bitfield-Mask: 0x01) */ + #define R_ETHSW_COMMAND_CONFIG_P1_CNTL_FRM_ENA_Pos (23UL) /*!< CNTL_FRM_ENA (Bit 23) */ + #define R_ETHSW_COMMAND_CONFIG_P1_CNTL_FRM_ENA_Msk (0x800000UL) /*!< CNTL_FRM_ENA (Bitfield-Mask: 0x01) */ + #define R_ETHSW_COMMAND_CONFIG_P1_NO_LGTH_CHK_Pos (24UL) /*!< NO_LGTH_CHK (Bit 24) */ + #define R_ETHSW_COMMAND_CONFIG_P1_NO_LGTH_CHK_Msk (0x1000000UL) /*!< NO_LGTH_CHK (Bitfield-Mask: 0x01) */ + #define R_ETHSW_COMMAND_CONFIG_P1_ENA_10_Pos (25UL) /*!< ENA_10 (Bit 25) */ + #define R_ETHSW_COMMAND_CONFIG_P1_ENA_10_Msk (0x2000000UL) /*!< ENA_10 (Bitfield-Mask: 0x01) */ + #define R_ETHSW_COMMAND_CONFIG_P1_EFPI_SELECT_Pos (26UL) /*!< EFPI_SELECT (Bit 26) */ + #define R_ETHSW_COMMAND_CONFIG_P1_EFPI_SELECT_Msk (0x4000000UL) /*!< EFPI_SELECT (Bitfield-Mask: 0x01) */ + #define R_ETHSW_COMMAND_CONFIG_P1_TX_TRUNCATE_Pos (27UL) /*!< TX_TRUNCATE (Bit 27) */ + #define R_ETHSW_COMMAND_CONFIG_P1_TX_TRUNCATE_Msk (0x8000000UL) /*!< TX_TRUNCATE (Bitfield-Mask: 0x01) */ + #define R_ETHSW_COMMAND_CONFIG_P1_TIMER_SEL_Pos (30UL) /*!< TIMER_SEL (Bit 30) */ + #define R_ETHSW_COMMAND_CONFIG_P1_TIMER_SEL_Msk (0x40000000UL) /*!< TIMER_SEL (Bitfield-Mask: 0x01) */ +/* =================================================== COMMAND_CONFIG_P2 =================================================== */ + #define R_ETHSW_COMMAND_CONFIG_P2_TX_ENA_Pos (0UL) /*!< TX_ENA (Bit 0) */ + #define R_ETHSW_COMMAND_CONFIG_P2_TX_ENA_Msk (0x1UL) /*!< TX_ENA (Bitfield-Mask: 0x01) */ + #define R_ETHSW_COMMAND_CONFIG_P2_RX_ENA_Pos (1UL) /*!< RX_ENA (Bit 1) */ + #define R_ETHSW_COMMAND_CONFIG_P2_RX_ENA_Msk (0x2UL) /*!< RX_ENA (Bitfield-Mask: 0x01) */ + #define R_ETHSW_COMMAND_CONFIG_P2_TDMA_PREBUF_DIS_Pos (2UL) /*!< TDMA_PREBUF_DIS (Bit 2) */ + #define R_ETHSW_COMMAND_CONFIG_P2_TDMA_PREBUF_DIS_Msk (0x4UL) /*!< TDMA_PREBUF_DIS (Bitfield-Mask: 0x01) */ + #define R_ETHSW_COMMAND_CONFIG_P2_ETH_SPEED_Pos (3UL) /*!< ETH_SPEED (Bit 3) */ + #define R_ETHSW_COMMAND_CONFIG_P2_ETH_SPEED_Msk (0x8UL) /*!< ETH_SPEED (Bitfield-Mask: 0x01) */ + #define R_ETHSW_COMMAND_CONFIG_P2_PROMIS_EN_Pos (4UL) /*!< PROMIS_EN (Bit 4) */ + #define R_ETHSW_COMMAND_CONFIG_P2_PROMIS_EN_Msk (0x10UL) /*!< PROMIS_EN (Bitfield-Mask: 0x01) */ + #define R_ETHSW_COMMAND_CONFIG_P2_PAD_EN_Pos (5UL) /*!< PAD_EN (Bit 5) */ + #define R_ETHSW_COMMAND_CONFIG_P2_PAD_EN_Msk (0x20UL) /*!< PAD_EN (Bitfield-Mask: 0x01) */ + #define R_ETHSW_COMMAND_CONFIG_P2_PAUSE_FWD_Pos (7UL) /*!< PAUSE_FWD (Bit 7) */ + #define R_ETHSW_COMMAND_CONFIG_P2_PAUSE_FWD_Msk (0x80UL) /*!< PAUSE_FWD (Bitfield-Mask: 0x01) */ + #define R_ETHSW_COMMAND_CONFIG_P2_PAUSE_IGNORE_Pos (8UL) /*!< PAUSE_IGNORE (Bit 8) */ + #define R_ETHSW_COMMAND_CONFIG_P2_PAUSE_IGNORE_Msk (0x100UL) /*!< PAUSE_IGNORE (Bitfield-Mask: 0x01) */ + #define R_ETHSW_COMMAND_CONFIG_P2_TX_ADDR_INS_Pos (9UL) /*!< TX_ADDR_INS (Bit 9) */ + #define R_ETHSW_COMMAND_CONFIG_P2_TX_ADDR_INS_Msk (0x200UL) /*!< TX_ADDR_INS (Bitfield-Mask: 0x01) */ + #define R_ETHSW_COMMAND_CONFIG_P2_HD_ENA_Pos (10UL) /*!< HD_ENA (Bit 10) */ + #define R_ETHSW_COMMAND_CONFIG_P2_HD_ENA_Msk (0x400UL) /*!< HD_ENA (Bitfield-Mask: 0x01) */ + #define R_ETHSW_COMMAND_CONFIG_P2_TX_CRC_APPEND_Pos (11UL) /*!< TX_CRC_APPEND (Bit 11) */ + #define R_ETHSW_COMMAND_CONFIG_P2_TX_CRC_APPEND_Msk (0x800UL) /*!< TX_CRC_APPEND (Bitfield-Mask: 0x01) */ + #define R_ETHSW_COMMAND_CONFIG_P2_SW_RESET_Pos (13UL) /*!< SW_RESET (Bit 13) */ + #define R_ETHSW_COMMAND_CONFIG_P2_SW_RESET_Msk (0x2000UL) /*!< SW_RESET (Bitfield-Mask: 0x01) */ + #define R_ETHSW_COMMAND_CONFIG_P2_CNTL_FRM_ENA_Pos (23UL) /*!< CNTL_FRM_ENA (Bit 23) */ + #define R_ETHSW_COMMAND_CONFIG_P2_CNTL_FRM_ENA_Msk (0x800000UL) /*!< CNTL_FRM_ENA (Bitfield-Mask: 0x01) */ + #define R_ETHSW_COMMAND_CONFIG_P2_NO_LGTH_CHK_Pos (24UL) /*!< NO_LGTH_CHK (Bit 24) */ + #define R_ETHSW_COMMAND_CONFIG_P2_NO_LGTH_CHK_Msk (0x1000000UL) /*!< NO_LGTH_CHK (Bitfield-Mask: 0x01) */ + #define R_ETHSW_COMMAND_CONFIG_P2_ENA_10_Pos (25UL) /*!< ENA_10 (Bit 25) */ + #define R_ETHSW_COMMAND_CONFIG_P2_ENA_10_Msk (0x2000000UL) /*!< ENA_10 (Bitfield-Mask: 0x01) */ + #define R_ETHSW_COMMAND_CONFIG_P2_EFPI_SELECT_Pos (26UL) /*!< EFPI_SELECT (Bit 26) */ + #define R_ETHSW_COMMAND_CONFIG_P2_EFPI_SELECT_Msk (0x4000000UL) /*!< EFPI_SELECT (Bitfield-Mask: 0x01) */ + #define R_ETHSW_COMMAND_CONFIG_P2_TX_TRUNCATE_Pos (27UL) /*!< TX_TRUNCATE (Bit 27) */ + #define R_ETHSW_COMMAND_CONFIG_P2_TX_TRUNCATE_Msk (0x8000000UL) /*!< TX_TRUNCATE (Bitfield-Mask: 0x01) */ + #define R_ETHSW_COMMAND_CONFIG_P2_TIMER_SEL_Pos (30UL) /*!< TIMER_SEL (Bit 30) */ + #define R_ETHSW_COMMAND_CONFIG_P2_TIMER_SEL_Msk (0x40000000UL) /*!< TIMER_SEL (Bitfield-Mask: 0x01) */ +/* =================================================== COMMAND_CONFIG_P3 =================================================== */ + #define R_ETHSW_COMMAND_CONFIG_P3_TX_ENA_Pos (0UL) /*!< TX_ENA (Bit 0) */ + #define R_ETHSW_COMMAND_CONFIG_P3_TX_ENA_Msk (0x1UL) /*!< TX_ENA (Bitfield-Mask: 0x01) */ + #define R_ETHSW_COMMAND_CONFIG_P3_RX_ENA_Pos (1UL) /*!< RX_ENA (Bit 1) */ + #define R_ETHSW_COMMAND_CONFIG_P3_RX_ENA_Msk (0x2UL) /*!< RX_ENA (Bitfield-Mask: 0x01) */ + #define R_ETHSW_COMMAND_CONFIG_P3_TDMA_PREBUF_DIS_Pos (2UL) /*!< TDMA_PREBUF_DIS (Bit 2) */ + #define R_ETHSW_COMMAND_CONFIG_P3_TDMA_PREBUF_DIS_Msk (0x4UL) /*!< TDMA_PREBUF_DIS (Bitfield-Mask: 0x01) */ + #define R_ETHSW_COMMAND_CONFIG_P3_ETH_SPEED_Pos (3UL) /*!< ETH_SPEED (Bit 3) */ + #define R_ETHSW_COMMAND_CONFIG_P3_ETH_SPEED_Msk (0x8UL) /*!< ETH_SPEED (Bitfield-Mask: 0x01) */ + #define R_ETHSW_COMMAND_CONFIG_P3_PROMIS_EN_Pos (4UL) /*!< PROMIS_EN (Bit 4) */ + #define R_ETHSW_COMMAND_CONFIG_P3_PROMIS_EN_Msk (0x10UL) /*!< PROMIS_EN (Bitfield-Mask: 0x01) */ + #define R_ETHSW_COMMAND_CONFIG_P3_PAD_EN_Pos (5UL) /*!< PAD_EN (Bit 5) */ + #define R_ETHSW_COMMAND_CONFIG_P3_PAD_EN_Msk (0x20UL) /*!< PAD_EN (Bitfield-Mask: 0x01) */ + #define R_ETHSW_COMMAND_CONFIG_P3_PAUSE_FWD_Pos (7UL) /*!< PAUSE_FWD (Bit 7) */ + #define R_ETHSW_COMMAND_CONFIG_P3_PAUSE_FWD_Msk (0x80UL) /*!< PAUSE_FWD (Bitfield-Mask: 0x01) */ + #define R_ETHSW_COMMAND_CONFIG_P3_PAUSE_IGNORE_Pos (8UL) /*!< PAUSE_IGNORE (Bit 8) */ + #define R_ETHSW_COMMAND_CONFIG_P3_PAUSE_IGNORE_Msk (0x100UL) /*!< PAUSE_IGNORE (Bitfield-Mask: 0x01) */ + #define R_ETHSW_COMMAND_CONFIG_P3_TX_ADDR_INS_Pos (9UL) /*!< TX_ADDR_INS (Bit 9) */ + #define R_ETHSW_COMMAND_CONFIG_P3_TX_ADDR_INS_Msk (0x200UL) /*!< TX_ADDR_INS (Bitfield-Mask: 0x01) */ + #define R_ETHSW_COMMAND_CONFIG_P3_HD_ENA_Pos (10UL) /*!< HD_ENA (Bit 10) */ + #define R_ETHSW_COMMAND_CONFIG_P3_HD_ENA_Msk (0x400UL) /*!< HD_ENA (Bitfield-Mask: 0x01) */ + #define R_ETHSW_COMMAND_CONFIG_P3_TX_CRC_APPEND_Pos (11UL) /*!< TX_CRC_APPEND (Bit 11) */ + #define R_ETHSW_COMMAND_CONFIG_P3_TX_CRC_APPEND_Msk (0x800UL) /*!< TX_CRC_APPEND (Bitfield-Mask: 0x01) */ + #define R_ETHSW_COMMAND_CONFIG_P3_SW_RESET_Pos (13UL) /*!< SW_RESET (Bit 13) */ + #define R_ETHSW_COMMAND_CONFIG_P3_SW_RESET_Msk (0x2000UL) /*!< SW_RESET (Bitfield-Mask: 0x01) */ + #define R_ETHSW_COMMAND_CONFIG_P3_CNTL_FRM_ENA_Pos (23UL) /*!< CNTL_FRM_ENA (Bit 23) */ + #define R_ETHSW_COMMAND_CONFIG_P3_CNTL_FRM_ENA_Msk (0x800000UL) /*!< CNTL_FRM_ENA (Bitfield-Mask: 0x01) */ + #define R_ETHSW_COMMAND_CONFIG_P3_NO_LGTH_CHK_Pos (24UL) /*!< NO_LGTH_CHK (Bit 24) */ + #define R_ETHSW_COMMAND_CONFIG_P3_NO_LGTH_CHK_Msk (0x1000000UL) /*!< NO_LGTH_CHK (Bitfield-Mask: 0x01) */ + #define R_ETHSW_COMMAND_CONFIG_P3_ENA_10_Pos (25UL) /*!< ENA_10 (Bit 25) */ + #define R_ETHSW_COMMAND_CONFIG_P3_ENA_10_Msk (0x2000000UL) /*!< ENA_10 (Bitfield-Mask: 0x01) */ + #define R_ETHSW_COMMAND_CONFIG_P3_EFPI_SELECT_Pos (26UL) /*!< EFPI_SELECT (Bit 26) */ + #define R_ETHSW_COMMAND_CONFIG_P3_EFPI_SELECT_Msk (0x4000000UL) /*!< EFPI_SELECT (Bitfield-Mask: 0x01) */ + #define R_ETHSW_COMMAND_CONFIG_P3_TX_TRUNCATE_Pos (27UL) /*!< TX_TRUNCATE (Bit 27) */ + #define R_ETHSW_COMMAND_CONFIG_P3_TX_TRUNCATE_Msk (0x8000000UL) /*!< TX_TRUNCATE (Bitfield-Mask: 0x01) */ + #define R_ETHSW_COMMAND_CONFIG_P3_TIMER_SEL_Pos (30UL) /*!< TIMER_SEL (Bit 30) */ + #define R_ETHSW_COMMAND_CONFIG_P3_TIMER_SEL_Msk (0x40000000UL) /*!< TIMER_SEL (Bitfield-Mask: 0x01) */ +/* ===================================================== MAC_ADDR_0_P0 ===================================================== */ + #define R_ETHSW_MAC_ADDR_0_P0_MAC_ADDR_Pos (0UL) /*!< MAC_ADDR (Bit 0) */ + #define R_ETHSW_MAC_ADDR_0_P0_MAC_ADDR_Msk (0xffffffffUL) /*!< MAC_ADDR (Bitfield-Mask: 0xffffffff) */ +/* ===================================================== MAC_ADDR_0_P1 ===================================================== */ + #define R_ETHSW_MAC_ADDR_0_P1_MAC_ADDR_Pos (0UL) /*!< MAC_ADDR (Bit 0) */ + #define R_ETHSW_MAC_ADDR_0_P1_MAC_ADDR_Msk (0xffffffffUL) /*!< MAC_ADDR (Bitfield-Mask: 0xffffffff) */ +/* ===================================================== MAC_ADDR_0_P2 ===================================================== */ + #define R_ETHSW_MAC_ADDR_0_P2_MAC_ADDR_Pos (0UL) /*!< MAC_ADDR (Bit 0) */ + #define R_ETHSW_MAC_ADDR_0_P2_MAC_ADDR_Msk (0xffffffffUL) /*!< MAC_ADDR (Bitfield-Mask: 0xffffffff) */ +/* ===================================================== MAC_ADDR_1_P0 ===================================================== */ + #define R_ETHSW_MAC_ADDR_1_P0_MAC_ADDR_Pos (0UL) /*!< MAC_ADDR (Bit 0) */ + #define R_ETHSW_MAC_ADDR_1_P0_MAC_ADDR_Msk (0xffffUL) /*!< MAC_ADDR (Bitfield-Mask: 0xffff) */ +/* ===================================================== MAC_ADDR_1_P1 ===================================================== */ + #define R_ETHSW_MAC_ADDR_1_P1_MAC_ADDR_Pos (0UL) /*!< MAC_ADDR (Bit 0) */ + #define R_ETHSW_MAC_ADDR_1_P1_MAC_ADDR_Msk (0xffffUL) /*!< MAC_ADDR (Bitfield-Mask: 0xffff) */ +/* ===================================================== MAC_ADDR_1_P2 ===================================================== */ + #define R_ETHSW_MAC_ADDR_1_P2_MAC_ADDR_Pos (0UL) /*!< MAC_ADDR (Bit 0) */ + #define R_ETHSW_MAC_ADDR_1_P2_MAC_ADDR_Msk (0xffffUL) /*!< MAC_ADDR (Bitfield-Mask: 0xffff) */ +/* ===================================================== FRM_LENGTH_P0 ===================================================== */ + #define R_ETHSW_FRM_LENGTH_P0_FRM_LENGTH_Pos (0UL) /*!< FRM_LENGTH (Bit 0) */ + #define R_ETHSW_FRM_LENGTH_P0_FRM_LENGTH_Msk (0x3fffUL) /*!< FRM_LENGTH (Bitfield-Mask: 0x3fff) */ +/* ===================================================== FRM_LENGTH_P1 ===================================================== */ + #define R_ETHSW_FRM_LENGTH_P1_FRM_LENGTH_Pos (0UL) /*!< FRM_LENGTH (Bit 0) */ + #define R_ETHSW_FRM_LENGTH_P1_FRM_LENGTH_Msk (0x3fffUL) /*!< FRM_LENGTH (Bitfield-Mask: 0x3fff) */ +/* ===================================================== FRM_LENGTH_P2 ===================================================== */ + #define R_ETHSW_FRM_LENGTH_P2_FRM_LENGTH_Pos (0UL) /*!< FRM_LENGTH (Bit 0) */ + #define R_ETHSW_FRM_LENGTH_P2_FRM_LENGTH_Msk (0x3fffUL) /*!< FRM_LENGTH (Bitfield-Mask: 0x3fff) */ +/* ===================================================== FRM_LENGTH_P3 ===================================================== */ + #define R_ETHSW_FRM_LENGTH_P3_FRM_LENGTH_Pos (0UL) /*!< FRM_LENGTH (Bit 0) */ + #define R_ETHSW_FRM_LENGTH_P3_FRM_LENGTH_Msk (0x3fffUL) /*!< FRM_LENGTH (Bitfield-Mask: 0x3fff) */ +/* ==================================================== PAUSE_QUANT_P0 ===================================================== */ + #define R_ETHSW_PAUSE_QUANT_P0_PAUSE_QUANT_Pos (0UL) /*!< PAUSE_QUANT (Bit 0) */ + #define R_ETHSW_PAUSE_QUANT_P0_PAUSE_QUANT_Msk (0xffffUL) /*!< PAUSE_QUANT (Bitfield-Mask: 0xffff) */ +/* ==================================================== PAUSE_QUANT_P1 ===================================================== */ + #define R_ETHSW_PAUSE_QUANT_P1_PAUSE_QUANT_Pos (0UL) /*!< PAUSE_QUANT (Bit 0) */ + #define R_ETHSW_PAUSE_QUANT_P1_PAUSE_QUANT_Msk (0xffffUL) /*!< PAUSE_QUANT (Bitfield-Mask: 0xffff) */ +/* ==================================================== PAUSE_QUANT_P2 ===================================================== */ + #define R_ETHSW_PAUSE_QUANT_P2_PAUSE_QUANT_Pos (0UL) /*!< PAUSE_QUANT (Bit 0) */ + #define R_ETHSW_PAUSE_QUANT_P2_PAUSE_QUANT_Msk (0xffffUL) /*!< PAUSE_QUANT (Bitfield-Mask: 0xffff) */ +/* ==================================================== PAUSE_QUANT_P3 ===================================================== */ + #define R_ETHSW_PAUSE_QUANT_P3_PAUSE_QUANT_Pos (0UL) /*!< PAUSE_QUANT (Bit 0) */ + #define R_ETHSW_PAUSE_QUANT_P3_PAUSE_QUANT_Msk (0xffffUL) /*!< PAUSE_QUANT (Bitfield-Mask: 0xffff) */ +/* =================================================== MAC_LINK_QTRIG_P0 =================================================== */ + #define R_ETHSW_MAC_LINK_QTRIG_P0_PORT_MASK_Pos (0UL) /*!< PORT_MASK (Bit 0) */ + #define R_ETHSW_MAC_LINK_QTRIG_P0_PORT_MASK_Msk (0xfUL) /*!< PORT_MASK (Bitfield-Mask: 0x0f) */ + #define R_ETHSW_MAC_LINK_QTRIG_P0_QUEUE_MASK_Pos (16UL) /*!< QUEUE_MASK (Bit 16) */ + #define R_ETHSW_MAC_LINK_QTRIG_P0_QUEUE_MASK_Msk (0xff0000UL) /*!< QUEUE_MASK (Bitfield-Mask: 0xff) */ + #define R_ETHSW_MAC_LINK_QTRIG_P0_TRIGGERED_Pos (28UL) /*!< TRIGGERED (Bit 28) */ + #define R_ETHSW_MAC_LINK_QTRIG_P0_TRIGGERED_Msk (0x10000000UL) /*!< TRIGGERED (Bitfield-Mask: 0x01) */ + #define R_ETHSW_MAC_LINK_QTRIG_P0_DLR_MODE_Pos (29UL) /*!< DLR_MODE (Bit 29) */ + #define R_ETHSW_MAC_LINK_QTRIG_P0_DLR_MODE_Msk (0x20000000UL) /*!< DLR_MODE (Bitfield-Mask: 0x01) */ + #define R_ETHSW_MAC_LINK_QTRIG_P0_MODE_Pos (30UL) /*!< MODE (Bit 30) */ + #define R_ETHSW_MAC_LINK_QTRIG_P0_MODE_Msk (0x40000000UL) /*!< MODE (Bitfield-Mask: 0x01) */ + #define R_ETHSW_MAC_LINK_QTRIG_P0_ENABLE_Pos (31UL) /*!< ENABLE (Bit 31) */ + #define R_ETHSW_MAC_LINK_QTRIG_P0_ENABLE_Msk (0x80000000UL) /*!< ENABLE (Bitfield-Mask: 0x01) */ +/* =================================================== MAC_LINK_QTRIG_P1 =================================================== */ + #define R_ETHSW_MAC_LINK_QTRIG_P1_PORT_MASK_Pos (0UL) /*!< PORT_MASK (Bit 0) */ + #define R_ETHSW_MAC_LINK_QTRIG_P1_PORT_MASK_Msk (0xfUL) /*!< PORT_MASK (Bitfield-Mask: 0x0f) */ + #define R_ETHSW_MAC_LINK_QTRIG_P1_QUEUE_MASK_Pos (16UL) /*!< QUEUE_MASK (Bit 16) */ + #define R_ETHSW_MAC_LINK_QTRIG_P1_QUEUE_MASK_Msk (0xff0000UL) /*!< QUEUE_MASK (Bitfield-Mask: 0xff) */ + #define R_ETHSW_MAC_LINK_QTRIG_P1_TRIGGERED_Pos (28UL) /*!< TRIGGERED (Bit 28) */ + #define R_ETHSW_MAC_LINK_QTRIG_P1_TRIGGERED_Msk (0x10000000UL) /*!< TRIGGERED (Bitfield-Mask: 0x01) */ + #define R_ETHSW_MAC_LINK_QTRIG_P1_DLR_MODE_Pos (29UL) /*!< DLR_MODE (Bit 29) */ + #define R_ETHSW_MAC_LINK_QTRIG_P1_DLR_MODE_Msk (0x20000000UL) /*!< DLR_MODE (Bitfield-Mask: 0x01) */ + #define R_ETHSW_MAC_LINK_QTRIG_P1_MODE_Pos (30UL) /*!< MODE (Bit 30) */ + #define R_ETHSW_MAC_LINK_QTRIG_P1_MODE_Msk (0x40000000UL) /*!< MODE (Bitfield-Mask: 0x01) */ + #define R_ETHSW_MAC_LINK_QTRIG_P1_ENABLE_Pos (31UL) /*!< ENABLE (Bit 31) */ + #define R_ETHSW_MAC_LINK_QTRIG_P1_ENABLE_Msk (0x80000000UL) /*!< ENABLE (Bitfield-Mask: 0x01) */ +/* =================================================== MAC_LINK_QTRIG_P2 =================================================== */ + #define R_ETHSW_MAC_LINK_QTRIG_P2_PORT_MASK_Pos (0UL) /*!< PORT_MASK (Bit 0) */ + #define R_ETHSW_MAC_LINK_QTRIG_P2_PORT_MASK_Msk (0xfUL) /*!< PORT_MASK (Bitfield-Mask: 0x0f) */ + #define R_ETHSW_MAC_LINK_QTRIG_P2_QUEUE_MASK_Pos (16UL) /*!< QUEUE_MASK (Bit 16) */ + #define R_ETHSW_MAC_LINK_QTRIG_P2_QUEUE_MASK_Msk (0xff0000UL) /*!< QUEUE_MASK (Bitfield-Mask: 0xff) */ + #define R_ETHSW_MAC_LINK_QTRIG_P2_TRIGGERED_Pos (28UL) /*!< TRIGGERED (Bit 28) */ + #define R_ETHSW_MAC_LINK_QTRIG_P2_TRIGGERED_Msk (0x10000000UL) /*!< TRIGGERED (Bitfield-Mask: 0x01) */ + #define R_ETHSW_MAC_LINK_QTRIG_P2_DLR_MODE_Pos (29UL) /*!< DLR_MODE (Bit 29) */ + #define R_ETHSW_MAC_LINK_QTRIG_P2_DLR_MODE_Msk (0x20000000UL) /*!< DLR_MODE (Bitfield-Mask: 0x01) */ + #define R_ETHSW_MAC_LINK_QTRIG_P2_MODE_Pos (30UL) /*!< MODE (Bit 30) */ + #define R_ETHSW_MAC_LINK_QTRIG_P2_MODE_Msk (0x40000000UL) /*!< MODE (Bitfield-Mask: 0x01) */ + #define R_ETHSW_MAC_LINK_QTRIG_P2_ENABLE_Pos (31UL) /*!< ENABLE (Bit 31) */ + #define R_ETHSW_MAC_LINK_QTRIG_P2_ENABLE_Msk (0x80000000UL) /*!< ENABLE (Bitfield-Mask: 0x01) */ +/* ================================================= PTPCLOCKIDENTITY1_P0 ================================================== */ + #define R_ETHSW_PTPCLOCKIDENTITY1_P0_CLK_IDENTITY0_Pos (0UL) /*!< CLK_IDENTITY0 (Bit 0) */ + #define R_ETHSW_PTPCLOCKIDENTITY1_P0_CLK_IDENTITY0_Msk (0xffUL) /*!< CLK_IDENTITY0 (Bitfield-Mask: 0xff) */ + #define R_ETHSW_PTPCLOCKIDENTITY1_P0_CLK_IDENTITY1_Pos (8UL) /*!< CLK_IDENTITY1 (Bit 8) */ + #define R_ETHSW_PTPCLOCKIDENTITY1_P0_CLK_IDENTITY1_Msk (0xff00UL) /*!< CLK_IDENTITY1 (Bitfield-Mask: 0xff) */ + #define R_ETHSW_PTPCLOCKIDENTITY1_P0_CLK_IDENTITY2_Pos (16UL) /*!< CLK_IDENTITY2 (Bit 16) */ + #define R_ETHSW_PTPCLOCKIDENTITY1_P0_CLK_IDENTITY2_Msk (0xff0000UL) /*!< CLK_IDENTITY2 (Bitfield-Mask: 0xff) */ + #define R_ETHSW_PTPCLOCKIDENTITY1_P0_CLK_IDENTITY3_Pos (24UL) /*!< CLK_IDENTITY3 (Bit 24) */ + #define R_ETHSW_PTPCLOCKIDENTITY1_P0_CLK_IDENTITY3_Msk (0xff000000UL) /*!< CLK_IDENTITY3 (Bitfield-Mask: 0xff) */ +/* ================================================= PTPCLOCKIDENTITY1_P1 ================================================== */ + #define R_ETHSW_PTPCLOCKIDENTITY1_P1_CLK_IDENTITY0_Pos (0UL) /*!< CLK_IDENTITY0 (Bit 0) */ + #define R_ETHSW_PTPCLOCKIDENTITY1_P1_CLK_IDENTITY0_Msk (0xffUL) /*!< CLK_IDENTITY0 (Bitfield-Mask: 0xff) */ + #define R_ETHSW_PTPCLOCKIDENTITY1_P1_CLK_IDENTITY1_Pos (8UL) /*!< CLK_IDENTITY1 (Bit 8) */ + #define R_ETHSW_PTPCLOCKIDENTITY1_P1_CLK_IDENTITY1_Msk (0xff00UL) /*!< CLK_IDENTITY1 (Bitfield-Mask: 0xff) */ + #define R_ETHSW_PTPCLOCKIDENTITY1_P1_CLK_IDENTITY2_Pos (16UL) /*!< CLK_IDENTITY2 (Bit 16) */ + #define R_ETHSW_PTPCLOCKIDENTITY1_P1_CLK_IDENTITY2_Msk (0xff0000UL) /*!< CLK_IDENTITY2 (Bitfield-Mask: 0xff) */ + #define R_ETHSW_PTPCLOCKIDENTITY1_P1_CLK_IDENTITY3_Pos (24UL) /*!< CLK_IDENTITY3 (Bit 24) */ + #define R_ETHSW_PTPCLOCKIDENTITY1_P1_CLK_IDENTITY3_Msk (0xff000000UL) /*!< CLK_IDENTITY3 (Bitfield-Mask: 0xff) */ +/* ================================================= PTPCLOCKIDENTITY1_P2 ================================================== */ + #define R_ETHSW_PTPCLOCKIDENTITY1_P2_CLK_IDENTITY0_Pos (0UL) /*!< CLK_IDENTITY0 (Bit 0) */ + #define R_ETHSW_PTPCLOCKIDENTITY1_P2_CLK_IDENTITY0_Msk (0xffUL) /*!< CLK_IDENTITY0 (Bitfield-Mask: 0xff) */ + #define R_ETHSW_PTPCLOCKIDENTITY1_P2_CLK_IDENTITY1_Pos (8UL) /*!< CLK_IDENTITY1 (Bit 8) */ + #define R_ETHSW_PTPCLOCKIDENTITY1_P2_CLK_IDENTITY1_Msk (0xff00UL) /*!< CLK_IDENTITY1 (Bitfield-Mask: 0xff) */ + #define R_ETHSW_PTPCLOCKIDENTITY1_P2_CLK_IDENTITY2_Pos (16UL) /*!< CLK_IDENTITY2 (Bit 16) */ + #define R_ETHSW_PTPCLOCKIDENTITY1_P2_CLK_IDENTITY2_Msk (0xff0000UL) /*!< CLK_IDENTITY2 (Bitfield-Mask: 0xff) */ + #define R_ETHSW_PTPCLOCKIDENTITY1_P2_CLK_IDENTITY3_Pos (24UL) /*!< CLK_IDENTITY3 (Bit 24) */ + #define R_ETHSW_PTPCLOCKIDENTITY1_P2_CLK_IDENTITY3_Msk (0xff000000UL) /*!< CLK_IDENTITY3 (Bitfield-Mask: 0xff) */ +/* ================================================= PTPCLOCKIDENTITY2_P0 ================================================== */ + #define R_ETHSW_PTPCLOCKIDENTITY2_P0_CLK_IDENTITY4_Pos (0UL) /*!< CLK_IDENTITY4 (Bit 0) */ + #define R_ETHSW_PTPCLOCKIDENTITY2_P0_CLK_IDENTITY4_Msk (0xffUL) /*!< CLK_IDENTITY4 (Bitfield-Mask: 0xff) */ + #define R_ETHSW_PTPCLOCKIDENTITY2_P0_CLK_IDENTITY5_Pos (8UL) /*!< CLK_IDENTITY5 (Bit 8) */ + #define R_ETHSW_PTPCLOCKIDENTITY2_P0_CLK_IDENTITY5_Msk (0xff00UL) /*!< CLK_IDENTITY5 (Bitfield-Mask: 0xff) */ + #define R_ETHSW_PTPCLOCKIDENTITY2_P0_CLK_IDENTITY6_Pos (16UL) /*!< CLK_IDENTITY6 (Bit 16) */ + #define R_ETHSW_PTPCLOCKIDENTITY2_P0_CLK_IDENTITY6_Msk (0xff0000UL) /*!< CLK_IDENTITY6 (Bitfield-Mask: 0xff) */ + #define R_ETHSW_PTPCLOCKIDENTITY2_P0_CLK_IDENTITY7_Pos (24UL) /*!< CLK_IDENTITY7 (Bit 24) */ + #define R_ETHSW_PTPCLOCKIDENTITY2_P0_CLK_IDENTITY7_Msk (0xff000000UL) /*!< CLK_IDENTITY7 (Bitfield-Mask: 0xff) */ +/* ================================================= PTPCLOCKIDENTITY2_P1 ================================================== */ + #define R_ETHSW_PTPCLOCKIDENTITY2_P1_CLK_IDENTITY4_Pos (0UL) /*!< CLK_IDENTITY4 (Bit 0) */ + #define R_ETHSW_PTPCLOCKIDENTITY2_P1_CLK_IDENTITY4_Msk (0xffUL) /*!< CLK_IDENTITY4 (Bitfield-Mask: 0xff) */ + #define R_ETHSW_PTPCLOCKIDENTITY2_P1_CLK_IDENTITY5_Pos (8UL) /*!< CLK_IDENTITY5 (Bit 8) */ + #define R_ETHSW_PTPCLOCKIDENTITY2_P1_CLK_IDENTITY5_Msk (0xff00UL) /*!< CLK_IDENTITY5 (Bitfield-Mask: 0xff) */ + #define R_ETHSW_PTPCLOCKIDENTITY2_P1_CLK_IDENTITY6_Pos (16UL) /*!< CLK_IDENTITY6 (Bit 16) */ + #define R_ETHSW_PTPCLOCKIDENTITY2_P1_CLK_IDENTITY6_Msk (0xff0000UL) /*!< CLK_IDENTITY6 (Bitfield-Mask: 0xff) */ + #define R_ETHSW_PTPCLOCKIDENTITY2_P1_CLK_IDENTITY7_Pos (24UL) /*!< CLK_IDENTITY7 (Bit 24) */ + #define R_ETHSW_PTPCLOCKIDENTITY2_P1_CLK_IDENTITY7_Msk (0xff000000UL) /*!< CLK_IDENTITY7 (Bitfield-Mask: 0xff) */ +/* ================================================= PTPCLOCKIDENTITY2_P2 ================================================== */ + #define R_ETHSW_PTPCLOCKIDENTITY2_P2_CLK_IDENTITY4_Pos (0UL) /*!< CLK_IDENTITY4 (Bit 0) */ + #define R_ETHSW_PTPCLOCKIDENTITY2_P2_CLK_IDENTITY4_Msk (0xffUL) /*!< CLK_IDENTITY4 (Bitfield-Mask: 0xff) */ + #define R_ETHSW_PTPCLOCKIDENTITY2_P2_CLK_IDENTITY5_Pos (8UL) /*!< CLK_IDENTITY5 (Bit 8) */ + #define R_ETHSW_PTPCLOCKIDENTITY2_P2_CLK_IDENTITY5_Msk (0xff00UL) /*!< CLK_IDENTITY5 (Bitfield-Mask: 0xff) */ + #define R_ETHSW_PTPCLOCKIDENTITY2_P2_CLK_IDENTITY6_Pos (16UL) /*!< CLK_IDENTITY6 (Bit 16) */ + #define R_ETHSW_PTPCLOCKIDENTITY2_P2_CLK_IDENTITY6_Msk (0xff0000UL) /*!< CLK_IDENTITY6 (Bitfield-Mask: 0xff) */ + #define R_ETHSW_PTPCLOCKIDENTITY2_P2_CLK_IDENTITY7_Pos (24UL) /*!< CLK_IDENTITY7 (Bit 24) */ + #define R_ETHSW_PTPCLOCKIDENTITY2_P2_CLK_IDENTITY7_Msk (0xff000000UL) /*!< CLK_IDENTITY7 (Bitfield-Mask: 0xff) */ +/* ================================================== PTPAUTORESPONSE_P0 =================================================== */ + #define R_ETHSW_PTPAUTORESPONSE_P0_ARSP_EN_Pos (0UL) /*!< ARSP_EN (Bit 0) */ + #define R_ETHSW_PTPAUTORESPONSE_P0_ARSP_EN_Msk (0x1UL) /*!< ARSP_EN (Bitfield-Mask: 0x01) */ + #define R_ETHSW_PTPAUTORESPONSE_P0_D_TIMER_Pos (1UL) /*!< D_TIMER (Bit 1) */ + #define R_ETHSW_PTPAUTORESPONSE_P0_D_TIMER_Msk (0x2UL) /*!< D_TIMER (Bitfield-Mask: 0x01) */ + #define R_ETHSW_PTPAUTORESPONSE_P0_PORTNUM1_Pos (16UL) /*!< PORTNUM1 (Bit 16) */ + #define R_ETHSW_PTPAUTORESPONSE_P0_PORTNUM1_Msk (0xff0000UL) /*!< PORTNUM1 (Bitfield-Mask: 0xff) */ + #define R_ETHSW_PTPAUTORESPONSE_P0_PORTNUM0_Pos (24UL) /*!< PORTNUM0 (Bit 24) */ + #define R_ETHSW_PTPAUTORESPONSE_P0_PORTNUM0_Msk (0xff000000UL) /*!< PORTNUM0 (Bitfield-Mask: 0xff) */ +/* ================================================== PTPAUTORESPONSE_P1 =================================================== */ + #define R_ETHSW_PTPAUTORESPONSE_P1_ARSP_EN_Pos (0UL) /*!< ARSP_EN (Bit 0) */ + #define R_ETHSW_PTPAUTORESPONSE_P1_ARSP_EN_Msk (0x1UL) /*!< ARSP_EN (Bitfield-Mask: 0x01) */ + #define R_ETHSW_PTPAUTORESPONSE_P1_D_TIMER_Pos (1UL) /*!< D_TIMER (Bit 1) */ + #define R_ETHSW_PTPAUTORESPONSE_P1_D_TIMER_Msk (0x2UL) /*!< D_TIMER (Bitfield-Mask: 0x01) */ + #define R_ETHSW_PTPAUTORESPONSE_P1_PORTNUM1_Pos (16UL) /*!< PORTNUM1 (Bit 16) */ + #define R_ETHSW_PTPAUTORESPONSE_P1_PORTNUM1_Msk (0xff0000UL) /*!< PORTNUM1 (Bitfield-Mask: 0xff) */ + #define R_ETHSW_PTPAUTORESPONSE_P1_PORTNUM0_Pos (24UL) /*!< PORTNUM0 (Bit 24) */ + #define R_ETHSW_PTPAUTORESPONSE_P1_PORTNUM0_Msk (0xff000000UL) /*!< PORTNUM0 (Bitfield-Mask: 0xff) */ +/* ================================================== PTPAUTORESPONSE_P2 =================================================== */ + #define R_ETHSW_PTPAUTORESPONSE_P2_ARSP_EN_Pos (0UL) /*!< ARSP_EN (Bit 0) */ + #define R_ETHSW_PTPAUTORESPONSE_P2_ARSP_EN_Msk (0x1UL) /*!< ARSP_EN (Bitfield-Mask: 0x01) */ + #define R_ETHSW_PTPAUTORESPONSE_P2_D_TIMER_Pos (1UL) /*!< D_TIMER (Bit 1) */ + #define R_ETHSW_PTPAUTORESPONSE_P2_D_TIMER_Msk (0x2UL) /*!< D_TIMER (Bitfield-Mask: 0x01) */ + #define R_ETHSW_PTPAUTORESPONSE_P2_PORTNUM1_Pos (16UL) /*!< PORTNUM1 (Bit 16) */ + #define R_ETHSW_PTPAUTORESPONSE_P2_PORTNUM1_Msk (0xff0000UL) /*!< PORTNUM1 (Bitfield-Mask: 0xff) */ + #define R_ETHSW_PTPAUTORESPONSE_P2_PORTNUM0_Pos (24UL) /*!< PORTNUM0 (Bit 24) */ + #define R_ETHSW_PTPAUTORESPONSE_P2_PORTNUM0_Msk (0xff000000UL) /*!< PORTNUM0 (Bitfield-Mask: 0xff) */ +/* ======================================================= STATUS_P0 ======================================================= */ + #define R_ETHSW_STATUS_P0_PHYSPEED_Pos (0UL) /*!< PHYSPEED (Bit 0) */ + #define R_ETHSW_STATUS_P0_PHYSPEED_Msk (0x3UL) /*!< PHYSPEED (Bitfield-Mask: 0x03) */ + #define R_ETHSW_STATUS_P0_PHYLINK_Pos (2UL) /*!< PHYLINK (Bit 2) */ + #define R_ETHSW_STATUS_P0_PHYLINK_Msk (0x4UL) /*!< PHYLINK (Bitfield-Mask: 0x01) */ + #define R_ETHSW_STATUS_P0_PHYDUPLEX_Pos (3UL) /*!< PHYDUPLEX (Bit 3) */ + #define R_ETHSW_STATUS_P0_PHYDUPLEX_Msk (0x8UL) /*!< PHYDUPLEX (Bitfield-Mask: 0x01) */ + #define R_ETHSW_STATUS_P0_TX_UNDFLW_Pos (4UL) /*!< TX_UNDFLW (Bit 4) */ + #define R_ETHSW_STATUS_P0_TX_UNDFLW_Msk (0x10UL) /*!< TX_UNDFLW (Bitfield-Mask: 0x01) */ + #define R_ETHSW_STATUS_P0_LK_DST_ERR_Pos (5UL) /*!< LK_DST_ERR (Bit 5) */ + #define R_ETHSW_STATUS_P0_LK_DST_ERR_Msk (0x20UL) /*!< LK_DST_ERR (Bitfield-Mask: 0x01) */ + #define R_ETHSW_STATUS_P0_BR_VERIF_ST_Pos (6UL) /*!< BR_VERIF_ST (Bit 6) */ + #define R_ETHSW_STATUS_P0_BR_VERIF_ST_Msk (0x1c0UL) /*!< BR_VERIF_ST (Bitfield-Mask: 0x07) */ +/* ======================================================= STATUS_P1 ======================================================= */ + #define R_ETHSW_STATUS_P1_PHYSPEED_Pos (0UL) /*!< PHYSPEED (Bit 0) */ + #define R_ETHSW_STATUS_P1_PHYSPEED_Msk (0x3UL) /*!< PHYSPEED (Bitfield-Mask: 0x03) */ + #define R_ETHSW_STATUS_P1_PHYLINK_Pos (2UL) /*!< PHYLINK (Bit 2) */ + #define R_ETHSW_STATUS_P1_PHYLINK_Msk (0x4UL) /*!< PHYLINK (Bitfield-Mask: 0x01) */ + #define R_ETHSW_STATUS_P1_PHYDUPLEX_Pos (3UL) /*!< PHYDUPLEX (Bit 3) */ + #define R_ETHSW_STATUS_P1_PHYDUPLEX_Msk (0x8UL) /*!< PHYDUPLEX (Bitfield-Mask: 0x01) */ + #define R_ETHSW_STATUS_P1_TX_UNDFLW_Pos (4UL) /*!< TX_UNDFLW (Bit 4) */ + #define R_ETHSW_STATUS_P1_TX_UNDFLW_Msk (0x10UL) /*!< TX_UNDFLW (Bitfield-Mask: 0x01) */ + #define R_ETHSW_STATUS_P1_LK_DST_ERR_Pos (5UL) /*!< LK_DST_ERR (Bit 5) */ + #define R_ETHSW_STATUS_P1_LK_DST_ERR_Msk (0x20UL) /*!< LK_DST_ERR (Bitfield-Mask: 0x01) */ + #define R_ETHSW_STATUS_P1_BR_VERIF_ST_Pos (6UL) /*!< BR_VERIF_ST (Bit 6) */ + #define R_ETHSW_STATUS_P1_BR_VERIF_ST_Msk (0x1c0UL) /*!< BR_VERIF_ST (Bitfield-Mask: 0x07) */ +/* ======================================================= STATUS_P2 ======================================================= */ + #define R_ETHSW_STATUS_P2_PHYSPEED_Pos (0UL) /*!< PHYSPEED (Bit 0) */ + #define R_ETHSW_STATUS_P2_PHYSPEED_Msk (0x3UL) /*!< PHYSPEED (Bitfield-Mask: 0x03) */ + #define R_ETHSW_STATUS_P2_PHYLINK_Pos (2UL) /*!< PHYLINK (Bit 2) */ + #define R_ETHSW_STATUS_P2_PHYLINK_Msk (0x4UL) /*!< PHYLINK (Bitfield-Mask: 0x01) */ + #define R_ETHSW_STATUS_P2_PHYDUPLEX_Pos (3UL) /*!< PHYDUPLEX (Bit 3) */ + #define R_ETHSW_STATUS_P2_PHYDUPLEX_Msk (0x8UL) /*!< PHYDUPLEX (Bitfield-Mask: 0x01) */ + #define R_ETHSW_STATUS_P2_TX_UNDFLW_Pos (4UL) /*!< TX_UNDFLW (Bit 4) */ + #define R_ETHSW_STATUS_P2_TX_UNDFLW_Msk (0x10UL) /*!< TX_UNDFLW (Bitfield-Mask: 0x01) */ + #define R_ETHSW_STATUS_P2_LK_DST_ERR_Pos (5UL) /*!< LK_DST_ERR (Bit 5) */ + #define R_ETHSW_STATUS_P2_LK_DST_ERR_Msk (0x20UL) /*!< LK_DST_ERR (Bitfield-Mask: 0x01) */ + #define R_ETHSW_STATUS_P2_BR_VERIF_ST_Pos (6UL) /*!< BR_VERIF_ST (Bit 6) */ + #define R_ETHSW_STATUS_P2_BR_VERIF_ST_Msk (0x1c0UL) /*!< BR_VERIF_ST (Bitfield-Mask: 0x07) */ +/* ======================================================= STATUS_P3 ======================================================= */ + #define R_ETHSW_STATUS_P3_PHYSPEED_Pos (0UL) /*!< PHYSPEED (Bit 0) */ + #define R_ETHSW_STATUS_P3_PHYSPEED_Msk (0x3UL) /*!< PHYSPEED (Bitfield-Mask: 0x03) */ + #define R_ETHSW_STATUS_P3_PHYLINK_Pos (2UL) /*!< PHYLINK (Bit 2) */ + #define R_ETHSW_STATUS_P3_PHYLINK_Msk (0x4UL) /*!< PHYLINK (Bitfield-Mask: 0x01) */ + #define R_ETHSW_STATUS_P3_PHYDUPLEX_Pos (3UL) /*!< PHYDUPLEX (Bit 3) */ + #define R_ETHSW_STATUS_P3_PHYDUPLEX_Msk (0x8UL) /*!< PHYDUPLEX (Bitfield-Mask: 0x01) */ + #define R_ETHSW_STATUS_P3_TX_UNDFLW_Pos (4UL) /*!< TX_UNDFLW (Bit 4) */ + #define R_ETHSW_STATUS_P3_TX_UNDFLW_Msk (0x10UL) /*!< TX_UNDFLW (Bitfield-Mask: 0x01) */ + #define R_ETHSW_STATUS_P3_LK_DST_ERR_Pos (5UL) /*!< LK_DST_ERR (Bit 5) */ + #define R_ETHSW_STATUS_P3_LK_DST_ERR_Msk (0x20UL) /*!< LK_DST_ERR (Bitfield-Mask: 0x01) */ + #define R_ETHSW_STATUS_P3_BR_VERIF_ST_Pos (6UL) /*!< BR_VERIF_ST (Bit 6) */ + #define R_ETHSW_STATUS_P3_BR_VERIF_ST_Msk (0x1c0UL) /*!< BR_VERIF_ST (Bitfield-Mask: 0x07) */ +/* =================================================== TX_IPG_LENGTH_P0 ==================================================== */ + #define R_ETHSW_TX_IPG_LENGTH_P0_TX_IPG_LENGTH_Pos (0UL) /*!< TX_IPG_LENGTH (Bit 0) */ + #define R_ETHSW_TX_IPG_LENGTH_P0_TX_IPG_LENGTH_Msk (0x1fUL) /*!< TX_IPG_LENGTH (Bitfield-Mask: 0x1f) */ + #define R_ETHSW_TX_IPG_LENGTH_P0_MINRTC3GAP_Pos (16UL) /*!< MINRTC3GAP (Bit 16) */ + #define R_ETHSW_TX_IPG_LENGTH_P0_MINRTC3GAP_Msk (0x1f0000UL) /*!< MINRTC3GAP (Bitfield-Mask: 0x1f) */ +/* =================================================== TX_IPG_LENGTH_P1 ==================================================== */ + #define R_ETHSW_TX_IPG_LENGTH_P1_TX_IPG_LENGTH_Pos (0UL) /*!< TX_IPG_LENGTH (Bit 0) */ + #define R_ETHSW_TX_IPG_LENGTH_P1_TX_IPG_LENGTH_Msk (0x1fUL) /*!< TX_IPG_LENGTH (Bitfield-Mask: 0x1f) */ + #define R_ETHSW_TX_IPG_LENGTH_P1_MINRTC3GAP_Pos (16UL) /*!< MINRTC3GAP (Bit 16) */ + #define R_ETHSW_TX_IPG_LENGTH_P1_MINRTC3GAP_Msk (0x1f0000UL) /*!< MINRTC3GAP (Bitfield-Mask: 0x1f) */ +/* =================================================== TX_IPG_LENGTH_P2 ==================================================== */ + #define R_ETHSW_TX_IPG_LENGTH_P2_TX_IPG_LENGTH_Pos (0UL) /*!< TX_IPG_LENGTH (Bit 0) */ + #define R_ETHSW_TX_IPG_LENGTH_P2_TX_IPG_LENGTH_Msk (0x1fUL) /*!< TX_IPG_LENGTH (Bitfield-Mask: 0x1f) */ + #define R_ETHSW_TX_IPG_LENGTH_P2_MINRTC3GAP_Pos (16UL) /*!< MINRTC3GAP (Bit 16) */ + #define R_ETHSW_TX_IPG_LENGTH_P2_MINRTC3GAP_Msk (0x1f0000UL) /*!< MINRTC3GAP (Bitfield-Mask: 0x1f) */ +/* =================================================== TX_IPG_LENGTH_P3 ==================================================== */ + #define R_ETHSW_TX_IPG_LENGTH_P3_TX_IPG_LENGTH_Pos (0UL) /*!< TX_IPG_LENGTH (Bit 0) */ + #define R_ETHSW_TX_IPG_LENGTH_P3_TX_IPG_LENGTH_Msk (0x1fUL) /*!< TX_IPG_LENGTH (Bitfield-Mask: 0x1f) */ + #define R_ETHSW_TX_IPG_LENGTH_P3_MINRTC3GAP_Pos (16UL) /*!< MINRTC3GAP (Bit 16) */ + #define R_ETHSW_TX_IPG_LENGTH_P3_MINRTC3GAP_Msk (0x1f0000UL) /*!< MINRTC3GAP (Bitfield-Mask: 0x1f) */ +/* ==================================================== EEE_CTL_STAT_P0 ==================================================== */ + #define R_ETHSW_EEE_CTL_STAT_P0_EEE_AUTO_Pos (0UL) /*!< EEE_AUTO (Bit 0) */ + #define R_ETHSW_EEE_CTL_STAT_P0_EEE_AUTO_Msk (0x1UL) /*!< EEE_AUTO (Bitfield-Mask: 0x01) */ + #define R_ETHSW_EEE_CTL_STAT_P0_LPI_REQ_Pos (1UL) /*!< LPI_REQ (Bit 1) */ + #define R_ETHSW_EEE_CTL_STAT_P0_LPI_REQ_Msk (0x2UL) /*!< LPI_REQ (Bitfield-Mask: 0x01) */ + #define R_ETHSW_EEE_CTL_STAT_P0_LPI_TXHOLD_Pos (2UL) /*!< LPI_TXHOLD (Bit 2) */ + #define R_ETHSW_EEE_CTL_STAT_P0_LPI_TXHOLD_Msk (0x4UL) /*!< LPI_TXHOLD (Bitfield-Mask: 0x01) */ + #define R_ETHSW_EEE_CTL_STAT_P0_ST_LPI_REQ_Pos (8UL) /*!< ST_LPI_REQ (Bit 8) */ + #define R_ETHSW_EEE_CTL_STAT_P0_ST_LPI_REQ_Msk (0x100UL) /*!< ST_LPI_REQ (Bitfield-Mask: 0x01) */ + #define R_ETHSW_EEE_CTL_STAT_P0_ST_LPI_TXHOLD_Pos (9UL) /*!< ST_LPI_TXHOLD (Bit 9) */ + #define R_ETHSW_EEE_CTL_STAT_P0_ST_LPI_TXHOLD_Msk (0x200UL) /*!< ST_LPI_TXHOLD (Bitfield-Mask: 0x01) */ + #define R_ETHSW_EEE_CTL_STAT_P0_ST_TXBUSY_Pos (10UL) /*!< ST_TXBUSY (Bit 10) */ + #define R_ETHSW_EEE_CTL_STAT_P0_ST_TXBUSY_Msk (0x400UL) /*!< ST_TXBUSY (Bitfield-Mask: 0x01) */ + #define R_ETHSW_EEE_CTL_STAT_P0_ST_TXAVAIL_Pos (11UL) /*!< ST_TXAVAIL (Bit 11) */ + #define R_ETHSW_EEE_CTL_STAT_P0_ST_TXAVAIL_Msk (0x800UL) /*!< ST_TXAVAIL (Bitfield-Mask: 0x01) */ + #define R_ETHSW_EEE_CTL_STAT_P0_ST_LPI_IND_Pos (12UL) /*!< ST_LPI_IND (Bit 12) */ + #define R_ETHSW_EEE_CTL_STAT_P0_ST_LPI_IND_Msk (0x1000UL) /*!< ST_LPI_IND (Bitfield-Mask: 0x01) */ + #define R_ETHSW_EEE_CTL_STAT_P0_STLH_LPI_REQ_Pos (16UL) /*!< STLH_LPI_REQ (Bit 16) */ + #define R_ETHSW_EEE_CTL_STAT_P0_STLH_LPI_REQ_Msk (0x10000UL) /*!< STLH_LPI_REQ (Bitfield-Mask: 0x01) */ + #define R_ETHSW_EEE_CTL_STAT_P0_STLH_LPI_TXHOLD_Pos (17UL) /*!< STLH_LPI_TXHOLD (Bit 17) */ + #define R_ETHSW_EEE_CTL_STAT_P0_STLH_LPI_TXHOLD_Msk (0x20000UL) /*!< STLH_LPI_TXHOLD (Bitfield-Mask: 0x01) */ + #define R_ETHSW_EEE_CTL_STAT_P0_STLH_TXBUSY_Pos (18UL) /*!< STLH_TXBUSY (Bit 18) */ + #define R_ETHSW_EEE_CTL_STAT_P0_STLH_TXBUSY_Msk (0x40000UL) /*!< STLH_TXBUSY (Bitfield-Mask: 0x01) */ + #define R_ETHSW_EEE_CTL_STAT_P0_STLH_LPI_IND_Pos (20UL) /*!< STLH_LPI_IND (Bit 20) */ + #define R_ETHSW_EEE_CTL_STAT_P0_STLH_LPI_IND_Msk (0x100000UL) /*!< STLH_LPI_IND (Bitfield-Mask: 0x01) */ +/* ==================================================== EEE_CTL_STAT_P1 ==================================================== */ + #define R_ETHSW_EEE_CTL_STAT_P1_EEE_AUTO_Pos (0UL) /*!< EEE_AUTO (Bit 0) */ + #define R_ETHSW_EEE_CTL_STAT_P1_EEE_AUTO_Msk (0x1UL) /*!< EEE_AUTO (Bitfield-Mask: 0x01) */ + #define R_ETHSW_EEE_CTL_STAT_P1_LPI_REQ_Pos (1UL) /*!< LPI_REQ (Bit 1) */ + #define R_ETHSW_EEE_CTL_STAT_P1_LPI_REQ_Msk (0x2UL) /*!< LPI_REQ (Bitfield-Mask: 0x01) */ + #define R_ETHSW_EEE_CTL_STAT_P1_LPI_TXHOLD_Pos (2UL) /*!< LPI_TXHOLD (Bit 2) */ + #define R_ETHSW_EEE_CTL_STAT_P1_LPI_TXHOLD_Msk (0x4UL) /*!< LPI_TXHOLD (Bitfield-Mask: 0x01) */ + #define R_ETHSW_EEE_CTL_STAT_P1_ST_LPI_REQ_Pos (8UL) /*!< ST_LPI_REQ (Bit 8) */ + #define R_ETHSW_EEE_CTL_STAT_P1_ST_LPI_REQ_Msk (0x100UL) /*!< ST_LPI_REQ (Bitfield-Mask: 0x01) */ + #define R_ETHSW_EEE_CTL_STAT_P1_ST_LPI_TXHOLD_Pos (9UL) /*!< ST_LPI_TXHOLD (Bit 9) */ + #define R_ETHSW_EEE_CTL_STAT_P1_ST_LPI_TXHOLD_Msk (0x200UL) /*!< ST_LPI_TXHOLD (Bitfield-Mask: 0x01) */ + #define R_ETHSW_EEE_CTL_STAT_P1_ST_TXBUSY_Pos (10UL) /*!< ST_TXBUSY (Bit 10) */ + #define R_ETHSW_EEE_CTL_STAT_P1_ST_TXBUSY_Msk (0x400UL) /*!< ST_TXBUSY (Bitfield-Mask: 0x01) */ + #define R_ETHSW_EEE_CTL_STAT_P1_ST_TXAVAIL_Pos (11UL) /*!< ST_TXAVAIL (Bit 11) */ + #define R_ETHSW_EEE_CTL_STAT_P1_ST_TXAVAIL_Msk (0x800UL) /*!< ST_TXAVAIL (Bitfield-Mask: 0x01) */ + #define R_ETHSW_EEE_CTL_STAT_P1_ST_LPI_IND_Pos (12UL) /*!< ST_LPI_IND (Bit 12) */ + #define R_ETHSW_EEE_CTL_STAT_P1_ST_LPI_IND_Msk (0x1000UL) /*!< ST_LPI_IND (Bitfield-Mask: 0x01) */ + #define R_ETHSW_EEE_CTL_STAT_P1_STLH_LPI_REQ_Pos (16UL) /*!< STLH_LPI_REQ (Bit 16) */ + #define R_ETHSW_EEE_CTL_STAT_P1_STLH_LPI_REQ_Msk (0x10000UL) /*!< STLH_LPI_REQ (Bitfield-Mask: 0x01) */ + #define R_ETHSW_EEE_CTL_STAT_P1_STLH_LPI_TXHOLD_Pos (17UL) /*!< STLH_LPI_TXHOLD (Bit 17) */ + #define R_ETHSW_EEE_CTL_STAT_P1_STLH_LPI_TXHOLD_Msk (0x20000UL) /*!< STLH_LPI_TXHOLD (Bitfield-Mask: 0x01) */ + #define R_ETHSW_EEE_CTL_STAT_P1_STLH_TXBUSY_Pos (18UL) /*!< STLH_TXBUSY (Bit 18) */ + #define R_ETHSW_EEE_CTL_STAT_P1_STLH_TXBUSY_Msk (0x40000UL) /*!< STLH_TXBUSY (Bitfield-Mask: 0x01) */ + #define R_ETHSW_EEE_CTL_STAT_P1_STLH_LPI_IND_Pos (20UL) /*!< STLH_LPI_IND (Bit 20) */ + #define R_ETHSW_EEE_CTL_STAT_P1_STLH_LPI_IND_Msk (0x100000UL) /*!< STLH_LPI_IND (Bitfield-Mask: 0x01) */ +/* ==================================================== EEE_CTL_STAT_P2 ==================================================== */ + #define R_ETHSW_EEE_CTL_STAT_P2_EEE_AUTO_Pos (0UL) /*!< EEE_AUTO (Bit 0) */ + #define R_ETHSW_EEE_CTL_STAT_P2_EEE_AUTO_Msk (0x1UL) /*!< EEE_AUTO (Bitfield-Mask: 0x01) */ + #define R_ETHSW_EEE_CTL_STAT_P2_LPI_REQ_Pos (1UL) /*!< LPI_REQ (Bit 1) */ + #define R_ETHSW_EEE_CTL_STAT_P2_LPI_REQ_Msk (0x2UL) /*!< LPI_REQ (Bitfield-Mask: 0x01) */ + #define R_ETHSW_EEE_CTL_STAT_P2_LPI_TXHOLD_Pos (2UL) /*!< LPI_TXHOLD (Bit 2) */ + #define R_ETHSW_EEE_CTL_STAT_P2_LPI_TXHOLD_Msk (0x4UL) /*!< LPI_TXHOLD (Bitfield-Mask: 0x01) */ + #define R_ETHSW_EEE_CTL_STAT_P2_ST_LPI_REQ_Pos (8UL) /*!< ST_LPI_REQ (Bit 8) */ + #define R_ETHSW_EEE_CTL_STAT_P2_ST_LPI_REQ_Msk (0x100UL) /*!< ST_LPI_REQ (Bitfield-Mask: 0x01) */ + #define R_ETHSW_EEE_CTL_STAT_P2_ST_LPI_TXHOLD_Pos (9UL) /*!< ST_LPI_TXHOLD (Bit 9) */ + #define R_ETHSW_EEE_CTL_STAT_P2_ST_LPI_TXHOLD_Msk (0x200UL) /*!< ST_LPI_TXHOLD (Bitfield-Mask: 0x01) */ + #define R_ETHSW_EEE_CTL_STAT_P2_ST_TXBUSY_Pos (10UL) /*!< ST_TXBUSY (Bit 10) */ + #define R_ETHSW_EEE_CTL_STAT_P2_ST_TXBUSY_Msk (0x400UL) /*!< ST_TXBUSY (Bitfield-Mask: 0x01) */ + #define R_ETHSW_EEE_CTL_STAT_P2_ST_TXAVAIL_Pos (11UL) /*!< ST_TXAVAIL (Bit 11) */ + #define R_ETHSW_EEE_CTL_STAT_P2_ST_TXAVAIL_Msk (0x800UL) /*!< ST_TXAVAIL (Bitfield-Mask: 0x01) */ + #define R_ETHSW_EEE_CTL_STAT_P2_ST_LPI_IND_Pos (12UL) /*!< ST_LPI_IND (Bit 12) */ + #define R_ETHSW_EEE_CTL_STAT_P2_ST_LPI_IND_Msk (0x1000UL) /*!< ST_LPI_IND (Bitfield-Mask: 0x01) */ + #define R_ETHSW_EEE_CTL_STAT_P2_STLH_LPI_REQ_Pos (16UL) /*!< STLH_LPI_REQ (Bit 16) */ + #define R_ETHSW_EEE_CTL_STAT_P2_STLH_LPI_REQ_Msk (0x10000UL) /*!< STLH_LPI_REQ (Bitfield-Mask: 0x01) */ + #define R_ETHSW_EEE_CTL_STAT_P2_STLH_LPI_TXHOLD_Pos (17UL) /*!< STLH_LPI_TXHOLD (Bit 17) */ + #define R_ETHSW_EEE_CTL_STAT_P2_STLH_LPI_TXHOLD_Msk (0x20000UL) /*!< STLH_LPI_TXHOLD (Bitfield-Mask: 0x01) */ + #define R_ETHSW_EEE_CTL_STAT_P2_STLH_TXBUSY_Pos (18UL) /*!< STLH_TXBUSY (Bit 18) */ + #define R_ETHSW_EEE_CTL_STAT_P2_STLH_TXBUSY_Msk (0x40000UL) /*!< STLH_TXBUSY (Bitfield-Mask: 0x01) */ + #define R_ETHSW_EEE_CTL_STAT_P2_STLH_LPI_IND_Pos (20UL) /*!< STLH_LPI_IND (Bit 20) */ + #define R_ETHSW_EEE_CTL_STAT_P2_STLH_LPI_IND_Msk (0x100000UL) /*!< STLH_LPI_IND (Bitfield-Mask: 0x01) */ +/* =================================================== EEE_IDLE_TIME_P0 ==================================================== */ + #define R_ETHSW_EEE_IDLE_TIME_P0_EEE_IDLE_TIME_Pos (0UL) /*!< EEE_IDLE_TIME (Bit 0) */ + #define R_ETHSW_EEE_IDLE_TIME_P0_EEE_IDLE_TIME_Msk (0xffffffffUL) /*!< EEE_IDLE_TIME (Bitfield-Mask: 0xffffffff) */ +/* =================================================== EEE_IDLE_TIME_P1 ==================================================== */ + #define R_ETHSW_EEE_IDLE_TIME_P1_EEE_IDLE_TIME_Pos (0UL) /*!< EEE_IDLE_TIME (Bit 0) */ + #define R_ETHSW_EEE_IDLE_TIME_P1_EEE_IDLE_TIME_Msk (0xffffffffUL) /*!< EEE_IDLE_TIME (Bitfield-Mask: 0xffffffff) */ +/* =================================================== EEE_IDLE_TIME_P2 ==================================================== */ + #define R_ETHSW_EEE_IDLE_TIME_P2_EEE_IDLE_TIME_Pos (0UL) /*!< EEE_IDLE_TIME (Bit 0) */ + #define R_ETHSW_EEE_IDLE_TIME_P2_EEE_IDLE_TIME_Msk (0xffffffffUL) /*!< EEE_IDLE_TIME (Bitfield-Mask: 0xffffffff) */ +/* =================================================== EEE_TWSYS_TIME_P0 =================================================== */ + #define R_ETHSW_EEE_TWSYS_TIME_P0_EEE_WKUP_TIME_Pos (0UL) /*!< EEE_WKUP_TIME (Bit 0) */ + #define R_ETHSW_EEE_TWSYS_TIME_P0_EEE_WKUP_TIME_Msk (0xffffffffUL) /*!< EEE_WKUP_TIME (Bitfield-Mask: 0xffffffff) */ +/* =================================================== EEE_TWSYS_TIME_P1 =================================================== */ + #define R_ETHSW_EEE_TWSYS_TIME_P1_EEE_WKUP_TIME_Pos (0UL) /*!< EEE_WKUP_TIME (Bit 0) */ + #define R_ETHSW_EEE_TWSYS_TIME_P1_EEE_WKUP_TIME_Msk (0xffffffffUL) /*!< EEE_WKUP_TIME (Bitfield-Mask: 0xffffffff) */ +/* =================================================== EEE_TWSYS_TIME_P2 =================================================== */ + #define R_ETHSW_EEE_TWSYS_TIME_P2_EEE_WKUP_TIME_Pos (0UL) /*!< EEE_WKUP_TIME (Bit 0) */ + #define R_ETHSW_EEE_TWSYS_TIME_P2_EEE_WKUP_TIME_Msk (0xffffffffUL) /*!< EEE_WKUP_TIME (Bitfield-Mask: 0xffffffff) */ +/* ===================================================== IDLE_SLOPE_P0 ===================================================== */ + #define R_ETHSW_IDLE_SLOPE_P0_IDLE_SLOPE_Pos (0UL) /*!< IDLE_SLOPE (Bit 0) */ + #define R_ETHSW_IDLE_SLOPE_P0_IDLE_SLOPE_Msk (0x7ffUL) /*!< IDLE_SLOPE (Bitfield-Mask: 0x7ff) */ +/* ===================================================== IDLE_SLOPE_P1 ===================================================== */ + #define R_ETHSW_IDLE_SLOPE_P1_IDLE_SLOPE_Pos (0UL) /*!< IDLE_SLOPE (Bit 0) */ + #define R_ETHSW_IDLE_SLOPE_P1_IDLE_SLOPE_Msk (0x7ffUL) /*!< IDLE_SLOPE (Bitfield-Mask: 0x7ff) */ +/* ===================================================== IDLE_SLOPE_P2 ===================================================== */ + #define R_ETHSW_IDLE_SLOPE_P2_IDLE_SLOPE_Pos (0UL) /*!< IDLE_SLOPE (Bit 0) */ + #define R_ETHSW_IDLE_SLOPE_P2_IDLE_SLOPE_Msk (0x7ffUL) /*!< IDLE_SLOPE (Bitfield-Mask: 0x7ff) */ +/* ===================================================== IDLE_SLOPE_P3 ===================================================== */ + #define R_ETHSW_IDLE_SLOPE_P3_IDLE_SLOPE_Pos (0UL) /*!< IDLE_SLOPE (Bit 0) */ + #define R_ETHSW_IDLE_SLOPE_P3_IDLE_SLOPE_Msk (0x7ffUL) /*!< IDLE_SLOPE (Bitfield-Mask: 0x7ff) */ +/* ====================================================== CT_DELAY_P0 ====================================================== */ + #define R_ETHSW_CT_DELAY_P0_CT_DELAY_Pos (0UL) /*!< CT_DELAY (Bit 0) */ + #define R_ETHSW_CT_DELAY_P0_CT_DELAY_Msk (0x1ffUL) /*!< CT_DELAY (Bitfield-Mask: 0x1ff) */ +/* ====================================================== CT_DELAY_P1 ====================================================== */ + #define R_ETHSW_CT_DELAY_P1_CT_DELAY_Pos (0UL) /*!< CT_DELAY (Bit 0) */ + #define R_ETHSW_CT_DELAY_P1_CT_DELAY_Msk (0x1ffUL) /*!< CT_DELAY (Bitfield-Mask: 0x1ff) */ +/* ====================================================== CT_DELAY_P2 ====================================================== */ + #define R_ETHSW_CT_DELAY_P2_CT_DELAY_Pos (0UL) /*!< CT_DELAY (Bit 0) */ + #define R_ETHSW_CT_DELAY_P2_CT_DELAY_Msk (0x1ffUL) /*!< CT_DELAY (Bitfield-Mask: 0x1ff) */ +/* ===================================================== BR_CONTROL_P0 ===================================================== */ + #define R_ETHSW_BR_CONTROL_P0_PREEMPT_ENA_Pos (0UL) /*!< PREEMPT_ENA (Bit 0) */ + #define R_ETHSW_BR_CONTROL_P0_PREEMPT_ENA_Msk (0x1UL) /*!< PREEMPT_ENA (Bitfield-Mask: 0x01) */ + #define R_ETHSW_BR_CONTROL_P0_VERIFY_DIS_Pos (1UL) /*!< VERIFY_DIS (Bit 1) */ + #define R_ETHSW_BR_CONTROL_P0_VERIFY_DIS_Msk (0x2UL) /*!< VERIFY_DIS (Bitfield-Mask: 0x01) */ + #define R_ETHSW_BR_CONTROL_P0_RESPONSE_DIS_Pos (2UL) /*!< RESPONSE_DIS (Bit 2) */ + #define R_ETHSW_BR_CONTROL_P0_RESPONSE_DIS_Msk (0x4UL) /*!< RESPONSE_DIS (Bitfield-Mask: 0x01) */ + #define R_ETHSW_BR_CONTROL_P0_ADDFRAGSIZE_Pos (4UL) /*!< ADDFRAGSIZE (Bit 4) */ + #define R_ETHSW_BR_CONTROL_P0_ADDFRAGSIZE_Msk (0x30UL) /*!< ADDFRAGSIZE (Bitfield-Mask: 0x03) */ + #define R_ETHSW_BR_CONTROL_P0_TX_VERIFY_TIME_Pos (8UL) /*!< TX_VERIFY_TIME (Bit 8) */ + #define R_ETHSW_BR_CONTROL_P0_TX_VERIFY_TIME_Msk (0x7f00UL) /*!< TX_VERIFY_TIME (Bitfield-Mask: 0x7f) */ + #define R_ETHSW_BR_CONTROL_P0_RX_STRICT_PRE_Pos (16UL) /*!< RX_STRICT_PRE (Bit 16) */ + #define R_ETHSW_BR_CONTROL_P0_RX_STRICT_PRE_Msk (0x10000UL) /*!< RX_STRICT_PRE (Bitfield-Mask: 0x01) */ + #define R_ETHSW_BR_CONTROL_P0_RX_BR_SMD_DIS_Pos (17UL) /*!< RX_BR_SMD_DIS (Bit 17) */ + #define R_ETHSW_BR_CONTROL_P0_RX_BR_SMD_DIS_Msk (0x20000UL) /*!< RX_BR_SMD_DIS (Bitfield-Mask: 0x01) */ + #define R_ETHSW_BR_CONTROL_P0_RX_STRICT_BR_CTL_Pos (18UL) /*!< RX_STRICT_BR_CTL (Bit 18) */ + #define R_ETHSW_BR_CONTROL_P0_RX_STRICT_BR_CTL_Msk (0x40000UL) /*!< RX_STRICT_BR_CTL (Bitfield-Mask: 0x01) */ + #define R_ETHSW_BR_CONTROL_P0_TX_MCRC_INV_Pos (19UL) /*!< TX_MCRC_INV (Bit 19) */ + #define R_ETHSW_BR_CONTROL_P0_TX_MCRC_INV_Msk (0x80000UL) /*!< TX_MCRC_INV (Bitfield-Mask: 0x01) */ + #define R_ETHSW_BR_CONTROL_P0_RX_MCRC_INV_Pos (20UL) /*!< RX_MCRC_INV (Bit 20) */ + #define R_ETHSW_BR_CONTROL_P0_RX_MCRC_INV_Msk (0x100000UL) /*!< RX_MCRC_INV (Bitfield-Mask: 0x01) */ +/* ===================================================== BR_CONTROL_P1 ===================================================== */ + #define R_ETHSW_BR_CONTROL_P1_PREEMPT_ENA_Pos (0UL) /*!< PREEMPT_ENA (Bit 0) */ + #define R_ETHSW_BR_CONTROL_P1_PREEMPT_ENA_Msk (0x1UL) /*!< PREEMPT_ENA (Bitfield-Mask: 0x01) */ + #define R_ETHSW_BR_CONTROL_P1_VERIFY_DIS_Pos (1UL) /*!< VERIFY_DIS (Bit 1) */ + #define R_ETHSW_BR_CONTROL_P1_VERIFY_DIS_Msk (0x2UL) /*!< VERIFY_DIS (Bitfield-Mask: 0x01) */ + #define R_ETHSW_BR_CONTROL_P1_RESPONSE_DIS_Pos (2UL) /*!< RESPONSE_DIS (Bit 2) */ + #define R_ETHSW_BR_CONTROL_P1_RESPONSE_DIS_Msk (0x4UL) /*!< RESPONSE_DIS (Bitfield-Mask: 0x01) */ + #define R_ETHSW_BR_CONTROL_P1_ADDFRAGSIZE_Pos (4UL) /*!< ADDFRAGSIZE (Bit 4) */ + #define R_ETHSW_BR_CONTROL_P1_ADDFRAGSIZE_Msk (0x30UL) /*!< ADDFRAGSIZE (Bitfield-Mask: 0x03) */ + #define R_ETHSW_BR_CONTROL_P1_TX_VERIFY_TIME_Pos (8UL) /*!< TX_VERIFY_TIME (Bit 8) */ + #define R_ETHSW_BR_CONTROL_P1_TX_VERIFY_TIME_Msk (0x7f00UL) /*!< TX_VERIFY_TIME (Bitfield-Mask: 0x7f) */ + #define R_ETHSW_BR_CONTROL_P1_RX_STRICT_PRE_Pos (16UL) /*!< RX_STRICT_PRE (Bit 16) */ + #define R_ETHSW_BR_CONTROL_P1_RX_STRICT_PRE_Msk (0x10000UL) /*!< RX_STRICT_PRE (Bitfield-Mask: 0x01) */ + #define R_ETHSW_BR_CONTROL_P1_RX_BR_SMD_DIS_Pos (17UL) /*!< RX_BR_SMD_DIS (Bit 17) */ + #define R_ETHSW_BR_CONTROL_P1_RX_BR_SMD_DIS_Msk (0x20000UL) /*!< RX_BR_SMD_DIS (Bitfield-Mask: 0x01) */ + #define R_ETHSW_BR_CONTROL_P1_RX_STRICT_BR_CTL_Pos (18UL) /*!< RX_STRICT_BR_CTL (Bit 18) */ + #define R_ETHSW_BR_CONTROL_P1_RX_STRICT_BR_CTL_Msk (0x40000UL) /*!< RX_STRICT_BR_CTL (Bitfield-Mask: 0x01) */ + #define R_ETHSW_BR_CONTROL_P1_TX_MCRC_INV_Pos (19UL) /*!< TX_MCRC_INV (Bit 19) */ + #define R_ETHSW_BR_CONTROL_P1_TX_MCRC_INV_Msk (0x80000UL) /*!< TX_MCRC_INV (Bitfield-Mask: 0x01) */ + #define R_ETHSW_BR_CONTROL_P1_RX_MCRC_INV_Pos (20UL) /*!< RX_MCRC_INV (Bit 20) */ + #define R_ETHSW_BR_CONTROL_P1_RX_MCRC_INV_Msk (0x100000UL) /*!< RX_MCRC_INV (Bitfield-Mask: 0x01) */ +/* ===================================================== BR_CONTROL_P2 ===================================================== */ + #define R_ETHSW_BR_CONTROL_P2_PREEMPT_ENA_Pos (0UL) /*!< PREEMPT_ENA (Bit 0) */ + #define R_ETHSW_BR_CONTROL_P2_PREEMPT_ENA_Msk (0x1UL) /*!< PREEMPT_ENA (Bitfield-Mask: 0x01) */ + #define R_ETHSW_BR_CONTROL_P2_VERIFY_DIS_Pos (1UL) /*!< VERIFY_DIS (Bit 1) */ + #define R_ETHSW_BR_CONTROL_P2_VERIFY_DIS_Msk (0x2UL) /*!< VERIFY_DIS (Bitfield-Mask: 0x01) */ + #define R_ETHSW_BR_CONTROL_P2_RESPONSE_DIS_Pos (2UL) /*!< RESPONSE_DIS (Bit 2) */ + #define R_ETHSW_BR_CONTROL_P2_RESPONSE_DIS_Msk (0x4UL) /*!< RESPONSE_DIS (Bitfield-Mask: 0x01) */ + #define R_ETHSW_BR_CONTROL_P2_ADDFRAGSIZE_Pos (4UL) /*!< ADDFRAGSIZE (Bit 4) */ + #define R_ETHSW_BR_CONTROL_P2_ADDFRAGSIZE_Msk (0x30UL) /*!< ADDFRAGSIZE (Bitfield-Mask: 0x03) */ + #define R_ETHSW_BR_CONTROL_P2_TX_VERIFY_TIME_Pos (8UL) /*!< TX_VERIFY_TIME (Bit 8) */ + #define R_ETHSW_BR_CONTROL_P2_TX_VERIFY_TIME_Msk (0x7f00UL) /*!< TX_VERIFY_TIME (Bitfield-Mask: 0x7f) */ + #define R_ETHSW_BR_CONTROL_P2_RX_STRICT_PRE_Pos (16UL) /*!< RX_STRICT_PRE (Bit 16) */ + #define R_ETHSW_BR_CONTROL_P2_RX_STRICT_PRE_Msk (0x10000UL) /*!< RX_STRICT_PRE (Bitfield-Mask: 0x01) */ + #define R_ETHSW_BR_CONTROL_P2_RX_BR_SMD_DIS_Pos (17UL) /*!< RX_BR_SMD_DIS (Bit 17) */ + #define R_ETHSW_BR_CONTROL_P2_RX_BR_SMD_DIS_Msk (0x20000UL) /*!< RX_BR_SMD_DIS (Bitfield-Mask: 0x01) */ + #define R_ETHSW_BR_CONTROL_P2_RX_STRICT_BR_CTL_Pos (18UL) /*!< RX_STRICT_BR_CTL (Bit 18) */ + #define R_ETHSW_BR_CONTROL_P2_RX_STRICT_BR_CTL_Msk (0x40000UL) /*!< RX_STRICT_BR_CTL (Bitfield-Mask: 0x01) */ + #define R_ETHSW_BR_CONTROL_P2_TX_MCRC_INV_Pos (19UL) /*!< TX_MCRC_INV (Bit 19) */ + #define R_ETHSW_BR_CONTROL_P2_TX_MCRC_INV_Msk (0x80000UL) /*!< TX_MCRC_INV (Bitfield-Mask: 0x01) */ + #define R_ETHSW_BR_CONTROL_P2_RX_MCRC_INV_Pos (20UL) /*!< RX_MCRC_INV (Bit 20) */ + #define R_ETHSW_BR_CONTROL_P2_RX_MCRC_INV_Msk (0x100000UL) /*!< RX_MCRC_INV (Bitfield-Mask: 0x01) */ +/* ================================================ AFRAMESTRANSMITTEDOK_P0 ================================================ */ + #define R_ETHSW_AFRAMESTRANSMITTEDOK_P0_TXVALIDCOUNT_Pos (0UL) /*!< TXVALIDCOUNT (Bit 0) */ + #define R_ETHSW_AFRAMESTRANSMITTEDOK_P0_TXVALIDCOUNT_Msk (0xffffffffUL) /*!< TXVALIDCOUNT (Bitfield-Mask: 0xffffffff) */ +/* ================================================ AFRAMESTRANSMITTEDOK_P1 ================================================ */ + #define R_ETHSW_AFRAMESTRANSMITTEDOK_P1_TXVALIDCOUNT_Pos (0UL) /*!< TXVALIDCOUNT (Bit 0) */ + #define R_ETHSW_AFRAMESTRANSMITTEDOK_P1_TXVALIDCOUNT_Msk (0xffffffffUL) /*!< TXVALIDCOUNT (Bitfield-Mask: 0xffffffff) */ +/* ================================================ AFRAMESTRANSMITTEDOK_P2 ================================================ */ + #define R_ETHSW_AFRAMESTRANSMITTEDOK_P2_TXVALIDCOUNT_Pos (0UL) /*!< TXVALIDCOUNT (Bit 0) */ + #define R_ETHSW_AFRAMESTRANSMITTEDOK_P2_TXVALIDCOUNT_Msk (0xffffffffUL) /*!< TXVALIDCOUNT (Bitfield-Mask: 0xffffffff) */ +/* ================================================ AFRAMESTRANSMITTEDOK_P3 ================================================ */ + #define R_ETHSW_AFRAMESTRANSMITTEDOK_P3_TXVALIDCOUNT_Pos (0UL) /*!< TXVALIDCOUNT (Bit 0) */ + #define R_ETHSW_AFRAMESTRANSMITTEDOK_P3_TXVALIDCOUNT_Msk (0xffffffffUL) /*!< TXVALIDCOUNT (Bitfield-Mask: 0xffffffff) */ +/* ================================================= AFRAMESRECEIVEDOK_P0 ================================================== */ + #define R_ETHSW_AFRAMESRECEIVEDOK_P0_RXVALIDCOUNT_Pos (0UL) /*!< RXVALIDCOUNT (Bit 0) */ + #define R_ETHSW_AFRAMESRECEIVEDOK_P0_RXVALIDCOUNT_Msk (0xffffffffUL) /*!< RXVALIDCOUNT (Bitfield-Mask: 0xffffffff) */ +/* ================================================= AFRAMESRECEIVEDOK_P1 ================================================== */ + #define R_ETHSW_AFRAMESRECEIVEDOK_P1_RXVALIDCOUNT_Pos (0UL) /*!< RXVALIDCOUNT (Bit 0) */ + #define R_ETHSW_AFRAMESRECEIVEDOK_P1_RXVALIDCOUNT_Msk (0xffffffffUL) /*!< RXVALIDCOUNT (Bitfield-Mask: 0xffffffff) */ +/* ================================================= AFRAMESRECEIVEDOK_P2 ================================================== */ + #define R_ETHSW_AFRAMESRECEIVEDOK_P2_RXVALIDCOUNT_Pos (0UL) /*!< RXVALIDCOUNT (Bit 0) */ + #define R_ETHSW_AFRAMESRECEIVEDOK_P2_RXVALIDCOUNT_Msk (0xffffffffUL) /*!< RXVALIDCOUNT (Bitfield-Mask: 0xffffffff) */ +/* ================================================= AFRAMESRECEIVEDOK_P3 ================================================== */ + #define R_ETHSW_AFRAMESRECEIVEDOK_P3_RXVALIDCOUNT_Pos (0UL) /*!< RXVALIDCOUNT (Bit 0) */ + #define R_ETHSW_AFRAMESRECEIVEDOK_P3_RXVALIDCOUNT_Msk (0xffffffffUL) /*!< RXVALIDCOUNT (Bitfield-Mask: 0xffffffff) */ +/* ============================================= AFRAMECHECKSEQUENCEERRORS_P0 ============================================== */ + #define R_ETHSW_AFRAMECHECKSEQUENCEERRORS_P0_FCSERRCOUNT_Pos (0UL) /*!< FCSERRCOUNT (Bit 0) */ + #define R_ETHSW_AFRAMECHECKSEQUENCEERRORS_P0_FCSERRCOUNT_Msk (0xffffffffUL) /*!< FCSERRCOUNT (Bitfield-Mask: 0xffffffff) */ +/* ============================================= AFRAMECHECKSEQUENCEERRORS_P1 ============================================== */ + #define R_ETHSW_AFRAMECHECKSEQUENCEERRORS_P1_FCSERRCOUNT_Pos (0UL) /*!< FCSERRCOUNT (Bit 0) */ + #define R_ETHSW_AFRAMECHECKSEQUENCEERRORS_P1_FCSERRCOUNT_Msk (0xffffffffUL) /*!< FCSERRCOUNT (Bitfield-Mask: 0xffffffff) */ +/* ============================================= AFRAMECHECKSEQUENCEERRORS_P2 ============================================== */ + #define R_ETHSW_AFRAMECHECKSEQUENCEERRORS_P2_FCSERRCOUNT_Pos (0UL) /*!< FCSERRCOUNT (Bit 0) */ + #define R_ETHSW_AFRAMECHECKSEQUENCEERRORS_P2_FCSERRCOUNT_Msk (0xffffffffUL) /*!< FCSERRCOUNT (Bitfield-Mask: 0xffffffff) */ +/* ============================================= AFRAMECHECKSEQUENCEERRORS_P3 ============================================== */ + #define R_ETHSW_AFRAMECHECKSEQUENCEERRORS_P3_FCSERRCOUNT_Pos (0UL) /*!< FCSERRCOUNT (Bit 0) */ + #define R_ETHSW_AFRAMECHECKSEQUENCEERRORS_P3_FCSERRCOUNT_Msk (0xffffffffUL) /*!< FCSERRCOUNT (Bitfield-Mask: 0xffffffff) */ +/* ================================================== AALIGNMENTERRORS_P0 ================================================== */ + #define R_ETHSW_AALIGNMENTERRORS_P0_ALGNERRCOUNT_Pos (0UL) /*!< ALGNERRCOUNT (Bit 0) */ + #define R_ETHSW_AALIGNMENTERRORS_P0_ALGNERRCOUNT_Msk (0xffffffffUL) /*!< ALGNERRCOUNT (Bitfield-Mask: 0xffffffff) */ +/* ================================================== AALIGNMENTERRORS_P1 ================================================== */ + #define R_ETHSW_AALIGNMENTERRORS_P1_ALGNERRCOUNT_Pos (0UL) /*!< ALGNERRCOUNT (Bit 0) */ + #define R_ETHSW_AALIGNMENTERRORS_P1_ALGNERRCOUNT_Msk (0xffffffffUL) /*!< ALGNERRCOUNT (Bitfield-Mask: 0xffffffff) */ +/* ================================================== AALIGNMENTERRORS_P2 ================================================== */ + #define R_ETHSW_AALIGNMENTERRORS_P2_ALGNERRCOUNT_Pos (0UL) /*!< ALGNERRCOUNT (Bit 0) */ + #define R_ETHSW_AALIGNMENTERRORS_P2_ALGNERRCOUNT_Msk (0xffffffffUL) /*!< ALGNERRCOUNT (Bitfield-Mask: 0xffffffff) */ +/* ================================================== AALIGNMENTERRORS_P3 ================================================== */ + #define R_ETHSW_AALIGNMENTERRORS_P3_ALGNERRCOUNT_Pos (0UL) /*!< ALGNERRCOUNT (Bit 0) */ + #define R_ETHSW_AALIGNMENTERRORS_P3_ALGNERRCOUNT_Msk (0xffffffffUL) /*!< ALGNERRCOUNT (Bitfield-Mask: 0xffffffff) */ +/* ================================================ AOCTETSTRANSMITTEDOK_P0 ================================================ */ + #define R_ETHSW_AOCTETSTRANSMITTEDOK_P0_TXVALIDOCTETS_Pos (0UL) /*!< TXVALIDOCTETS (Bit 0) */ + #define R_ETHSW_AOCTETSTRANSMITTEDOK_P0_TXVALIDOCTETS_Msk (0xffffffffUL) /*!< TXVALIDOCTETS (Bitfield-Mask: 0xffffffff) */ +/* ================================================ AOCTETSTRANSMITTEDOK_P1 ================================================ */ + #define R_ETHSW_AOCTETSTRANSMITTEDOK_P1_TXVALIDOCTETS_Pos (0UL) /*!< TXVALIDOCTETS (Bit 0) */ + #define R_ETHSW_AOCTETSTRANSMITTEDOK_P1_TXVALIDOCTETS_Msk (0xffffffffUL) /*!< TXVALIDOCTETS (Bitfield-Mask: 0xffffffff) */ +/* ================================================ AOCTETSTRANSMITTEDOK_P2 ================================================ */ + #define R_ETHSW_AOCTETSTRANSMITTEDOK_P2_TXVALIDOCTETS_Pos (0UL) /*!< TXVALIDOCTETS (Bit 0) */ + #define R_ETHSW_AOCTETSTRANSMITTEDOK_P2_TXVALIDOCTETS_Msk (0xffffffffUL) /*!< TXVALIDOCTETS (Bitfield-Mask: 0xffffffff) */ +/* ================================================ AOCTETSTRANSMITTEDOK_P3 ================================================ */ + #define R_ETHSW_AOCTETSTRANSMITTEDOK_P3_TXVALIDOCTETS_Pos (0UL) /*!< TXVALIDOCTETS (Bit 0) */ + #define R_ETHSW_AOCTETSTRANSMITTEDOK_P3_TXVALIDOCTETS_Msk (0xffffffffUL) /*!< TXVALIDOCTETS (Bitfield-Mask: 0xffffffff) */ +/* ================================================= AOCTETSRECEIVEDOK_P0 ================================================== */ + #define R_ETHSW_AOCTETSRECEIVEDOK_P0_RXVALIDOCTETS_Pos (0UL) /*!< RXVALIDOCTETS (Bit 0) */ + #define R_ETHSW_AOCTETSRECEIVEDOK_P0_RXVALIDOCTETS_Msk (0xffffffffUL) /*!< RXVALIDOCTETS (Bitfield-Mask: 0xffffffff) */ +/* ================================================= AOCTETSRECEIVEDOK_P1 ================================================== */ + #define R_ETHSW_AOCTETSRECEIVEDOK_P1_RXVALIDOCTETS_Pos (0UL) /*!< RXVALIDOCTETS (Bit 0) */ + #define R_ETHSW_AOCTETSRECEIVEDOK_P1_RXVALIDOCTETS_Msk (0xffffffffUL) /*!< RXVALIDOCTETS (Bitfield-Mask: 0xffffffff) */ +/* ================================================= AOCTETSRECEIVEDOK_P2 ================================================== */ + #define R_ETHSW_AOCTETSRECEIVEDOK_P2_RXVALIDOCTETS_Pos (0UL) /*!< RXVALIDOCTETS (Bit 0) */ + #define R_ETHSW_AOCTETSRECEIVEDOK_P2_RXVALIDOCTETS_Msk (0xffffffffUL) /*!< RXVALIDOCTETS (Bitfield-Mask: 0xffffffff) */ +/* ================================================= AOCTETSRECEIVEDOK_P3 ================================================== */ + #define R_ETHSW_AOCTETSRECEIVEDOK_P3_RXVALIDOCTETS_Pos (0UL) /*!< RXVALIDOCTETS (Bit 0) */ + #define R_ETHSW_AOCTETSRECEIVEDOK_P3_RXVALIDOCTETS_Msk (0xffffffffUL) /*!< RXVALIDOCTETS (Bitfield-Mask: 0xffffffff) */ +/* =============================================== ATXPAUSEMACCTRLFRAMES_P0 ================================================ */ + #define R_ETHSW_ATXPAUSEMACCTRLFRAMES_P0_TXPAUSECOUNT_Pos (0UL) /*!< TXPAUSECOUNT (Bit 0) */ + #define R_ETHSW_ATXPAUSEMACCTRLFRAMES_P0_TXPAUSECOUNT_Msk (0xffffffffUL) /*!< TXPAUSECOUNT (Bitfield-Mask: 0xffffffff) */ +/* =============================================== ATXPAUSEMACCTRLFRAMES_P1 ================================================ */ + #define R_ETHSW_ATXPAUSEMACCTRLFRAMES_P1_TXPAUSECOUNT_Pos (0UL) /*!< TXPAUSECOUNT (Bit 0) */ + #define R_ETHSW_ATXPAUSEMACCTRLFRAMES_P1_TXPAUSECOUNT_Msk (0xffffffffUL) /*!< TXPAUSECOUNT (Bitfield-Mask: 0xffffffff) */ +/* =============================================== ATXPAUSEMACCTRLFRAMES_P2 ================================================ */ + #define R_ETHSW_ATXPAUSEMACCTRLFRAMES_P2_TXPAUSECOUNT_Pos (0UL) /*!< TXPAUSECOUNT (Bit 0) */ + #define R_ETHSW_ATXPAUSEMACCTRLFRAMES_P2_TXPAUSECOUNT_Msk (0xffffffffUL) /*!< TXPAUSECOUNT (Bitfield-Mask: 0xffffffff) */ +/* =============================================== ATXPAUSEMACCTRLFRAMES_P3 ================================================ */ + #define R_ETHSW_ATXPAUSEMACCTRLFRAMES_P3_TXPAUSECOUNT_Pos (0UL) /*!< TXPAUSECOUNT (Bit 0) */ + #define R_ETHSW_ATXPAUSEMACCTRLFRAMES_P3_TXPAUSECOUNT_Msk (0xffffffffUL) /*!< TXPAUSECOUNT (Bitfield-Mask: 0xffffffff) */ +/* =============================================== ARXPAUSEMACCTRLFRAMES_P0 ================================================ */ + #define R_ETHSW_ARXPAUSEMACCTRLFRAMES_P0_RXPAUSECOUNT_Pos (0UL) /*!< RXPAUSECOUNT (Bit 0) */ + #define R_ETHSW_ARXPAUSEMACCTRLFRAMES_P0_RXPAUSECOUNT_Msk (0xffffffffUL) /*!< RXPAUSECOUNT (Bitfield-Mask: 0xffffffff) */ +/* =============================================== ARXPAUSEMACCTRLFRAMES_P1 ================================================ */ + #define R_ETHSW_ARXPAUSEMACCTRLFRAMES_P1_RXPAUSECOUNT_Pos (0UL) /*!< RXPAUSECOUNT (Bit 0) */ + #define R_ETHSW_ARXPAUSEMACCTRLFRAMES_P1_RXPAUSECOUNT_Msk (0xffffffffUL) /*!< RXPAUSECOUNT (Bitfield-Mask: 0xffffffff) */ +/* =============================================== ARXPAUSEMACCTRLFRAMES_P2 ================================================ */ + #define R_ETHSW_ARXPAUSEMACCTRLFRAMES_P2_RXPAUSECOUNT_Pos (0UL) /*!< RXPAUSECOUNT (Bit 0) */ + #define R_ETHSW_ARXPAUSEMACCTRLFRAMES_P2_RXPAUSECOUNT_Msk (0xffffffffUL) /*!< RXPAUSECOUNT (Bitfield-Mask: 0xffffffff) */ +/* =============================================== ARXPAUSEMACCTRLFRAMES_P3 ================================================ */ + #define R_ETHSW_ARXPAUSEMACCTRLFRAMES_P3_RXPAUSECOUNT_Pos (0UL) /*!< RXPAUSECOUNT (Bit 0) */ + #define R_ETHSW_ARXPAUSEMACCTRLFRAMES_P3_RXPAUSECOUNT_Msk (0xffffffffUL) /*!< RXPAUSECOUNT (Bitfield-Mask: 0xffffffff) */ +/* ===================================================== IFINERRORS_P0 ===================================================== */ + #define R_ETHSW_IFINERRORS_P0_INERRCOUNT_Pos (0UL) /*!< INERRCOUNT (Bit 0) */ + #define R_ETHSW_IFINERRORS_P0_INERRCOUNT_Msk (0xffffffffUL) /*!< INERRCOUNT (Bitfield-Mask: 0xffffffff) */ +/* ===================================================== IFINERRORS_P1 ===================================================== */ + #define R_ETHSW_IFINERRORS_P1_INERRCOUNT_Pos (0UL) /*!< INERRCOUNT (Bit 0) */ + #define R_ETHSW_IFINERRORS_P1_INERRCOUNT_Msk (0xffffffffUL) /*!< INERRCOUNT (Bitfield-Mask: 0xffffffff) */ +/* ===================================================== IFINERRORS_P2 ===================================================== */ + #define R_ETHSW_IFINERRORS_P2_INERRCOUNT_Pos (0UL) /*!< INERRCOUNT (Bit 0) */ + #define R_ETHSW_IFINERRORS_P2_INERRCOUNT_Msk (0xffffffffUL) /*!< INERRCOUNT (Bitfield-Mask: 0xffffffff) */ +/* ===================================================== IFINERRORS_P3 ===================================================== */ + #define R_ETHSW_IFINERRORS_P3_INERRCOUNT_Pos (0UL) /*!< INERRCOUNT (Bit 0) */ + #define R_ETHSW_IFINERRORS_P3_INERRCOUNT_Msk (0xffffffffUL) /*!< INERRCOUNT (Bitfield-Mask: 0xffffffff) */ +/* ==================================================== IFOUTERRORS_P0 ===================================================== */ + #define R_ETHSW_IFOUTERRORS_P0_OUTERRCOUNT_Pos (0UL) /*!< OUTERRCOUNT (Bit 0) */ + #define R_ETHSW_IFOUTERRORS_P0_OUTERRCOUNT_Msk (0xffffffffUL) /*!< OUTERRCOUNT (Bitfield-Mask: 0xffffffff) */ +/* ==================================================== IFOUTERRORS_P1 ===================================================== */ + #define R_ETHSW_IFOUTERRORS_P1_OUTERRCOUNT_Pos (0UL) /*!< OUTERRCOUNT (Bit 0) */ + #define R_ETHSW_IFOUTERRORS_P1_OUTERRCOUNT_Msk (0xffffffffUL) /*!< OUTERRCOUNT (Bitfield-Mask: 0xffffffff) */ +/* ==================================================== IFOUTERRORS_P2 ===================================================== */ + #define R_ETHSW_IFOUTERRORS_P2_OUTERRCOUNT_Pos (0UL) /*!< OUTERRCOUNT (Bit 0) */ + #define R_ETHSW_IFOUTERRORS_P2_OUTERRCOUNT_Msk (0xffffffffUL) /*!< OUTERRCOUNT (Bitfield-Mask: 0xffffffff) */ +/* ==================================================== IFOUTERRORS_P3 ===================================================== */ + #define R_ETHSW_IFOUTERRORS_P3_OUTERRCOUNT_Pos (0UL) /*!< OUTERRCOUNT (Bit 0) */ + #define R_ETHSW_IFOUTERRORS_P3_OUTERRCOUNT_Msk (0xffffffffUL) /*!< OUTERRCOUNT (Bitfield-Mask: 0xffffffff) */ +/* =================================================== IFINUCASTPKTS_P0 ==================================================== */ + #define R_ETHSW_IFINUCASTPKTS_P0_RXUCASTCOUNT_Pos (0UL) /*!< RXUCASTCOUNT (Bit 0) */ + #define R_ETHSW_IFINUCASTPKTS_P0_RXUCASTCOUNT_Msk (0xffffffffUL) /*!< RXUCASTCOUNT (Bitfield-Mask: 0xffffffff) */ +/* =================================================== IFINUCASTPKTS_P1 ==================================================== */ + #define R_ETHSW_IFINUCASTPKTS_P1_RXUCASTCOUNT_Pos (0UL) /*!< RXUCASTCOUNT (Bit 0) */ + #define R_ETHSW_IFINUCASTPKTS_P1_RXUCASTCOUNT_Msk (0xffffffffUL) /*!< RXUCASTCOUNT (Bitfield-Mask: 0xffffffff) */ +/* =================================================== IFINUCASTPKTS_P2 ==================================================== */ + #define R_ETHSW_IFINUCASTPKTS_P2_RXUCASTCOUNT_Pos (0UL) /*!< RXUCASTCOUNT (Bit 0) */ + #define R_ETHSW_IFINUCASTPKTS_P2_RXUCASTCOUNT_Msk (0xffffffffUL) /*!< RXUCASTCOUNT (Bitfield-Mask: 0xffffffff) */ +/* =================================================== IFINUCASTPKTS_P3 ==================================================== */ + #define R_ETHSW_IFINUCASTPKTS_P3_RXUCASTCOUNT_Pos (0UL) /*!< RXUCASTCOUNT (Bit 0) */ + #define R_ETHSW_IFINUCASTPKTS_P3_RXUCASTCOUNT_Msk (0xffffffffUL) /*!< RXUCASTCOUNT (Bitfield-Mask: 0xffffffff) */ +/* ================================================= IFINMULTICASTPKTS_P0 ================================================== */ + #define R_ETHSW_IFINMULTICASTPKTS_P0_RXMCASTCOUNT_Pos (0UL) /*!< RXMCASTCOUNT (Bit 0) */ + #define R_ETHSW_IFINMULTICASTPKTS_P0_RXMCASTCOUNT_Msk (0xffffffffUL) /*!< RXMCASTCOUNT (Bitfield-Mask: 0xffffffff) */ +/* ================================================= IFINMULTICASTPKTS_P1 ================================================== */ + #define R_ETHSW_IFINMULTICASTPKTS_P1_RXMCASTCOUNT_Pos (0UL) /*!< RXMCASTCOUNT (Bit 0) */ + #define R_ETHSW_IFINMULTICASTPKTS_P1_RXMCASTCOUNT_Msk (0xffffffffUL) /*!< RXMCASTCOUNT (Bitfield-Mask: 0xffffffff) */ +/* ================================================= IFINMULTICASTPKTS_P2 ================================================== */ + #define R_ETHSW_IFINMULTICASTPKTS_P2_RXMCASTCOUNT_Pos (0UL) /*!< RXMCASTCOUNT (Bit 0) */ + #define R_ETHSW_IFINMULTICASTPKTS_P2_RXMCASTCOUNT_Msk (0xffffffffUL) /*!< RXMCASTCOUNT (Bitfield-Mask: 0xffffffff) */ +/* ================================================= IFINMULTICASTPKTS_P3 ================================================== */ + #define R_ETHSW_IFINMULTICASTPKTS_P3_RXMCASTCOUNT_Pos (0UL) /*!< RXMCASTCOUNT (Bit 0) */ + #define R_ETHSW_IFINMULTICASTPKTS_P3_RXMCASTCOUNT_Msk (0xffffffffUL) /*!< RXMCASTCOUNT (Bitfield-Mask: 0xffffffff) */ +/* ================================================= IFINBROADCASTPKTS_P0 ================================================== */ + #define R_ETHSW_IFINBROADCASTPKTS_P0_RXBCASTCOUNT_Pos (0UL) /*!< RXBCASTCOUNT (Bit 0) */ + #define R_ETHSW_IFINBROADCASTPKTS_P0_RXBCASTCOUNT_Msk (0xffffffffUL) /*!< RXBCASTCOUNT (Bitfield-Mask: 0xffffffff) */ +/* ================================================= IFINBROADCASTPKTS_P1 ================================================== */ + #define R_ETHSW_IFINBROADCASTPKTS_P1_RXBCASTCOUNT_Pos (0UL) /*!< RXBCASTCOUNT (Bit 0) */ + #define R_ETHSW_IFINBROADCASTPKTS_P1_RXBCASTCOUNT_Msk (0xffffffffUL) /*!< RXBCASTCOUNT (Bitfield-Mask: 0xffffffff) */ +/* ================================================= IFINBROADCASTPKTS_P2 ================================================== */ + #define R_ETHSW_IFINBROADCASTPKTS_P2_RXBCASTCOUNT_Pos (0UL) /*!< RXBCASTCOUNT (Bit 0) */ + #define R_ETHSW_IFINBROADCASTPKTS_P2_RXBCASTCOUNT_Msk (0xffffffffUL) /*!< RXBCASTCOUNT (Bitfield-Mask: 0xffffffff) */ +/* ================================================= IFINBROADCASTPKTS_P3 ================================================== */ + #define R_ETHSW_IFINBROADCASTPKTS_P3_RXBCASTCOUNT_Pos (0UL) /*!< RXBCASTCOUNT (Bit 0) */ + #define R_ETHSW_IFINBROADCASTPKTS_P3_RXBCASTCOUNT_Msk (0xffffffffUL) /*!< RXBCASTCOUNT (Bitfield-Mask: 0xffffffff) */ +/* =================================================== IFOUTDISCARDS_P0 ==================================================== */ + #define R_ETHSW_IFOUTDISCARDS_P0_DISCOBCOUNT_Pos (0UL) /*!< DISCOBCOUNT (Bit 0) */ + #define R_ETHSW_IFOUTDISCARDS_P0_DISCOBCOUNT_Msk (0xffffffffUL) /*!< DISCOBCOUNT (Bitfield-Mask: 0xffffffff) */ +/* =================================================== IFOUTDISCARDS_P1 ==================================================== */ + #define R_ETHSW_IFOUTDISCARDS_P1_DISCOBCOUNT_Pos (0UL) /*!< DISCOBCOUNT (Bit 0) */ + #define R_ETHSW_IFOUTDISCARDS_P1_DISCOBCOUNT_Msk (0xffffffffUL) /*!< DISCOBCOUNT (Bitfield-Mask: 0xffffffff) */ +/* =================================================== IFOUTDISCARDS_P2 ==================================================== */ + #define R_ETHSW_IFOUTDISCARDS_P2_DISCOBCOUNT_Pos (0UL) /*!< DISCOBCOUNT (Bit 0) */ + #define R_ETHSW_IFOUTDISCARDS_P2_DISCOBCOUNT_Msk (0xffffffffUL) /*!< DISCOBCOUNT (Bitfield-Mask: 0xffffffff) */ +/* =================================================== IFOUTDISCARDS_P3 ==================================================== */ + #define R_ETHSW_IFOUTDISCARDS_P3_DISCOBCOUNT_Pos (0UL) /*!< DISCOBCOUNT (Bit 0) */ + #define R_ETHSW_IFOUTDISCARDS_P3_DISCOBCOUNT_Msk (0xffffffffUL) /*!< DISCOBCOUNT (Bitfield-Mask: 0xffffffff) */ +/* =================================================== IFOUTUCASTPKTS_P0 =================================================== */ + #define R_ETHSW_IFOUTUCASTPKTS_P0_TXUCASTCOUNT_Pos (0UL) /*!< TXUCASTCOUNT (Bit 0) */ + #define R_ETHSW_IFOUTUCASTPKTS_P0_TXUCASTCOUNT_Msk (0xffffffffUL) /*!< TXUCASTCOUNT (Bitfield-Mask: 0xffffffff) */ +/* =================================================== IFOUTUCASTPKTS_P1 =================================================== */ + #define R_ETHSW_IFOUTUCASTPKTS_P1_TXUCASTCOUNT_Pos (0UL) /*!< TXUCASTCOUNT (Bit 0) */ + #define R_ETHSW_IFOUTUCASTPKTS_P1_TXUCASTCOUNT_Msk (0xffffffffUL) /*!< TXUCASTCOUNT (Bitfield-Mask: 0xffffffff) */ +/* =================================================== IFOUTUCASTPKTS_P2 =================================================== */ + #define R_ETHSW_IFOUTUCASTPKTS_P2_TXUCASTCOUNT_Pos (0UL) /*!< TXUCASTCOUNT (Bit 0) */ + #define R_ETHSW_IFOUTUCASTPKTS_P2_TXUCASTCOUNT_Msk (0xffffffffUL) /*!< TXUCASTCOUNT (Bitfield-Mask: 0xffffffff) */ +/* =================================================== IFOUTUCASTPKTS_P3 =================================================== */ + #define R_ETHSW_IFOUTUCASTPKTS_P3_TXUCASTCOUNT_Pos (0UL) /*!< TXUCASTCOUNT (Bit 0) */ + #define R_ETHSW_IFOUTUCASTPKTS_P3_TXUCASTCOUNT_Msk (0xffffffffUL) /*!< TXUCASTCOUNT (Bitfield-Mask: 0xffffffff) */ +/* ================================================= IFOUTMULTICASTPKTS_P0 ================================================= */ + #define R_ETHSW_IFOUTMULTICASTPKTS_P0_TXMCASTCOUNT_Pos (0UL) /*!< TXMCASTCOUNT (Bit 0) */ + #define R_ETHSW_IFOUTMULTICASTPKTS_P0_TXMCASTCOUNT_Msk (0xffffffffUL) /*!< TXMCASTCOUNT (Bitfield-Mask: 0xffffffff) */ +/* ================================================= IFOUTMULTICASTPKTS_P1 ================================================= */ + #define R_ETHSW_IFOUTMULTICASTPKTS_P1_TXMCASTCOUNT_Pos (0UL) /*!< TXMCASTCOUNT (Bit 0) */ + #define R_ETHSW_IFOUTMULTICASTPKTS_P1_TXMCASTCOUNT_Msk (0xffffffffUL) /*!< TXMCASTCOUNT (Bitfield-Mask: 0xffffffff) */ +/* ================================================= IFOUTMULTICASTPKTS_P2 ================================================= */ + #define R_ETHSW_IFOUTMULTICASTPKTS_P2_TXMCASTCOUNT_Pos (0UL) /*!< TXMCASTCOUNT (Bit 0) */ + #define R_ETHSW_IFOUTMULTICASTPKTS_P2_TXMCASTCOUNT_Msk (0xffffffffUL) /*!< TXMCASTCOUNT (Bitfield-Mask: 0xffffffff) */ +/* ================================================= IFOUTMULTICASTPKTS_P3 ================================================= */ + #define R_ETHSW_IFOUTMULTICASTPKTS_P3_TXMCASTCOUNT_Pos (0UL) /*!< TXMCASTCOUNT (Bit 0) */ + #define R_ETHSW_IFOUTMULTICASTPKTS_P3_TXMCASTCOUNT_Msk (0xffffffffUL) /*!< TXMCASTCOUNT (Bitfield-Mask: 0xffffffff) */ +/* ================================================= IFOUTBROADCASTPKTS_P0 ================================================= */ + #define R_ETHSW_IFOUTBROADCASTPKTS_P0_TXBCASTCOUNT_Pos (0UL) /*!< TXBCASTCOUNT (Bit 0) */ + #define R_ETHSW_IFOUTBROADCASTPKTS_P0_TXBCASTCOUNT_Msk (0xffffffffUL) /*!< TXBCASTCOUNT (Bitfield-Mask: 0xffffffff) */ +/* ================================================= IFOUTBROADCASTPKTS_P1 ================================================= */ + #define R_ETHSW_IFOUTBROADCASTPKTS_P1_TXBCASTCOUNT_Pos (0UL) /*!< TXBCASTCOUNT (Bit 0) */ + #define R_ETHSW_IFOUTBROADCASTPKTS_P1_TXBCASTCOUNT_Msk (0xffffffffUL) /*!< TXBCASTCOUNT (Bitfield-Mask: 0xffffffff) */ +/* ================================================= IFOUTBROADCASTPKTS_P2 ================================================= */ + #define R_ETHSW_IFOUTBROADCASTPKTS_P2_TXBCASTCOUNT_Pos (0UL) /*!< TXBCASTCOUNT (Bit 0) */ + #define R_ETHSW_IFOUTBROADCASTPKTS_P2_TXBCASTCOUNT_Msk (0xffffffffUL) /*!< TXBCASTCOUNT (Bitfield-Mask: 0xffffffff) */ +/* ================================================= IFOUTBROADCASTPKTS_P3 ================================================= */ + #define R_ETHSW_IFOUTBROADCASTPKTS_P3_TXBCASTCOUNT_Pos (0UL) /*!< TXBCASTCOUNT (Bit 0) */ + #define R_ETHSW_IFOUTBROADCASTPKTS_P3_TXBCASTCOUNT_Msk (0xffffffffUL) /*!< TXBCASTCOUNT (Bitfield-Mask: 0xffffffff) */ +/* ================================================ ETHERSTATSDROPEVENTS_P0 ================================================ */ + #define R_ETHSW_ETHERSTATSDROPEVENTS_P0_DROPCOUNT_Pos (0UL) /*!< DROPCOUNT (Bit 0) */ + #define R_ETHSW_ETHERSTATSDROPEVENTS_P0_DROPCOUNT_Msk (0xffffffffUL) /*!< DROPCOUNT (Bitfield-Mask: 0xffffffff) */ +/* ================================================ ETHERSTATSDROPEVENTS_P1 ================================================ */ + #define R_ETHSW_ETHERSTATSDROPEVENTS_P1_DROPCOUNT_Pos (0UL) /*!< DROPCOUNT (Bit 0) */ + #define R_ETHSW_ETHERSTATSDROPEVENTS_P1_DROPCOUNT_Msk (0xffffffffUL) /*!< DROPCOUNT (Bitfield-Mask: 0xffffffff) */ +/* ================================================ ETHERSTATSDROPEVENTS_P2 ================================================ */ + #define R_ETHSW_ETHERSTATSDROPEVENTS_P2_DROPCOUNT_Pos (0UL) /*!< DROPCOUNT (Bit 0) */ + #define R_ETHSW_ETHERSTATSDROPEVENTS_P2_DROPCOUNT_Msk (0xffffffffUL) /*!< DROPCOUNT (Bitfield-Mask: 0xffffffff) */ +/* ================================================ ETHERSTATSDROPEVENTS_P3 ================================================ */ + #define R_ETHSW_ETHERSTATSDROPEVENTS_P3_DROPCOUNT_Pos (0UL) /*!< DROPCOUNT (Bit 0) */ + #define R_ETHSW_ETHERSTATSDROPEVENTS_P3_DROPCOUNT_Msk (0xffffffffUL) /*!< DROPCOUNT (Bitfield-Mask: 0xffffffff) */ +/* ================================================== ETHERSTATSOCTETS_P0 ================================================== */ + #define R_ETHSW_ETHERSTATSOCTETS_P0_ALLOCTETS_Pos (0UL) /*!< ALLOCTETS (Bit 0) */ + #define R_ETHSW_ETHERSTATSOCTETS_P0_ALLOCTETS_Msk (0xffffffffUL) /*!< ALLOCTETS (Bitfield-Mask: 0xffffffff) */ +/* ================================================== ETHERSTATSOCTETS_P1 ================================================== */ + #define R_ETHSW_ETHERSTATSOCTETS_P1_ALLOCTETS_Pos (0UL) /*!< ALLOCTETS (Bit 0) */ + #define R_ETHSW_ETHERSTATSOCTETS_P1_ALLOCTETS_Msk (0xffffffffUL) /*!< ALLOCTETS (Bitfield-Mask: 0xffffffff) */ +/* ================================================== ETHERSTATSOCTETS_P2 ================================================== */ + #define R_ETHSW_ETHERSTATSOCTETS_P2_ALLOCTETS_Pos (0UL) /*!< ALLOCTETS (Bit 0) */ + #define R_ETHSW_ETHERSTATSOCTETS_P2_ALLOCTETS_Msk (0xffffffffUL) /*!< ALLOCTETS (Bitfield-Mask: 0xffffffff) */ +/* ================================================== ETHERSTATSOCTETS_P3 ================================================== */ + #define R_ETHSW_ETHERSTATSOCTETS_P3_ALLOCTETS_Pos (0UL) /*!< ALLOCTETS (Bit 0) */ + #define R_ETHSW_ETHERSTATSOCTETS_P3_ALLOCTETS_Msk (0xffffffffUL) /*!< ALLOCTETS (Bitfield-Mask: 0xffffffff) */ +/* =================================================== ETHERSTATSPKTS_P0 =================================================== */ + #define R_ETHSW_ETHERSTATSPKTS_P0_ALLCOUNT_Pos (0UL) /*!< ALLCOUNT (Bit 0) */ + #define R_ETHSW_ETHERSTATSPKTS_P0_ALLCOUNT_Msk (0xffffffffUL) /*!< ALLCOUNT (Bitfield-Mask: 0xffffffff) */ +/* =================================================== ETHERSTATSPKTS_P1 =================================================== */ + #define R_ETHSW_ETHERSTATSPKTS_P1_ALLCOUNT_Pos (0UL) /*!< ALLCOUNT (Bit 0) */ + #define R_ETHSW_ETHERSTATSPKTS_P1_ALLCOUNT_Msk (0xffffffffUL) /*!< ALLCOUNT (Bitfield-Mask: 0xffffffff) */ +/* =================================================== ETHERSTATSPKTS_P2 =================================================== */ + #define R_ETHSW_ETHERSTATSPKTS_P2_ALLCOUNT_Pos (0UL) /*!< ALLCOUNT (Bit 0) */ + #define R_ETHSW_ETHERSTATSPKTS_P2_ALLCOUNT_Msk (0xffffffffUL) /*!< ALLCOUNT (Bitfield-Mask: 0xffffffff) */ +/* =================================================== ETHERSTATSPKTS_P3 =================================================== */ + #define R_ETHSW_ETHERSTATSPKTS_P3_ALLCOUNT_Pos (0UL) /*!< ALLCOUNT (Bit 0) */ + #define R_ETHSW_ETHERSTATSPKTS_P3_ALLCOUNT_Msk (0xffffffffUL) /*!< ALLCOUNT (Bitfield-Mask: 0xffffffff) */ +/* ============================================== ETHERSTATSUNDERSIZEPKTS_P0 =============================================== */ + #define R_ETHSW_ETHERSTATSUNDERSIZEPKTS_P0_TOOSHRTCOUNT_Pos (0UL) /*!< TOOSHRTCOUNT (Bit 0) */ + #define R_ETHSW_ETHERSTATSUNDERSIZEPKTS_P0_TOOSHRTCOUNT_Msk (0xffffffffUL) /*!< TOOSHRTCOUNT (Bitfield-Mask: 0xffffffff) */ +/* ============================================== ETHERSTATSUNDERSIZEPKTS_P1 =============================================== */ + #define R_ETHSW_ETHERSTATSUNDERSIZEPKTS_P1_TOOSHRTCOUNT_Pos (0UL) /*!< TOOSHRTCOUNT (Bit 0) */ + #define R_ETHSW_ETHERSTATSUNDERSIZEPKTS_P1_TOOSHRTCOUNT_Msk (0xffffffffUL) /*!< TOOSHRTCOUNT (Bitfield-Mask: 0xffffffff) */ +/* ============================================== ETHERSTATSUNDERSIZEPKTS_P2 =============================================== */ + #define R_ETHSW_ETHERSTATSUNDERSIZEPKTS_P2_TOOSHRTCOUNT_Pos (0UL) /*!< TOOSHRTCOUNT (Bit 0) */ + #define R_ETHSW_ETHERSTATSUNDERSIZEPKTS_P2_TOOSHRTCOUNT_Msk (0xffffffffUL) /*!< TOOSHRTCOUNT (Bitfield-Mask: 0xffffffff) */ +/* ============================================== ETHERSTATSUNDERSIZEPKTS_P3 =============================================== */ + #define R_ETHSW_ETHERSTATSUNDERSIZEPKTS_P3_TOOSHRTCOUNT_Pos (0UL) /*!< TOOSHRTCOUNT (Bit 0) */ + #define R_ETHSW_ETHERSTATSUNDERSIZEPKTS_P3_TOOSHRTCOUNT_Msk (0xffffffffUL) /*!< TOOSHRTCOUNT (Bitfield-Mask: 0xffffffff) */ +/* =============================================== ETHERSTATSOVERSIZEPKTS_P0 =============================================== */ + #define R_ETHSW_ETHERSTATSOVERSIZEPKTS_P0_TOOLONGCOUNT_Pos (0UL) /*!< TOOLONGCOUNT (Bit 0) */ + #define R_ETHSW_ETHERSTATSOVERSIZEPKTS_P0_TOOLONGCOUNT_Msk (0xffffffffUL) /*!< TOOLONGCOUNT (Bitfield-Mask: 0xffffffff) */ +/* =============================================== ETHERSTATSOVERSIZEPKTS_P1 =============================================== */ + #define R_ETHSW_ETHERSTATSOVERSIZEPKTS_P1_TOOLONGCOUNT_Pos (0UL) /*!< TOOLONGCOUNT (Bit 0) */ + #define R_ETHSW_ETHERSTATSOVERSIZEPKTS_P1_TOOLONGCOUNT_Msk (0xffffffffUL) /*!< TOOLONGCOUNT (Bitfield-Mask: 0xffffffff) */ +/* =============================================== ETHERSTATSOVERSIZEPKTS_P2 =============================================== */ + #define R_ETHSW_ETHERSTATSOVERSIZEPKTS_P2_TOOLONGCOUNT_Pos (0UL) /*!< TOOLONGCOUNT (Bit 0) */ + #define R_ETHSW_ETHERSTATSOVERSIZEPKTS_P2_TOOLONGCOUNT_Msk (0xffffffffUL) /*!< TOOLONGCOUNT (Bitfield-Mask: 0xffffffff) */ +/* =============================================== ETHERSTATSOVERSIZEPKTS_P3 =============================================== */ + #define R_ETHSW_ETHERSTATSOVERSIZEPKTS_P3_TOOLONGCOUNT_Pos (0UL) /*!< TOOLONGCOUNT (Bit 0) */ + #define R_ETHSW_ETHERSTATSOVERSIZEPKTS_P3_TOOLONGCOUNT_Msk (0xffffffffUL) /*!< TOOLONGCOUNT (Bitfield-Mask: 0xffffffff) */ +/* =============================================== ETHERSTATSPKTS64OCTETS_P0 =============================================== */ + #define R_ETHSW_ETHERSTATSPKTS64OCTETS_P0_OCTCNT64_Pos (0UL) /*!< OCTCNT64 (Bit 0) */ + #define R_ETHSW_ETHERSTATSPKTS64OCTETS_P0_OCTCNT64_Msk (0xffffffffUL) /*!< OCTCNT64 (Bitfield-Mask: 0xffffffff) */ +/* =============================================== ETHERSTATSPKTS64OCTETS_P1 =============================================== */ + #define R_ETHSW_ETHERSTATSPKTS64OCTETS_P1_OCTCNT64_Pos (0UL) /*!< OCTCNT64 (Bit 0) */ + #define R_ETHSW_ETHERSTATSPKTS64OCTETS_P1_OCTCNT64_Msk (0xffffffffUL) /*!< OCTCNT64 (Bitfield-Mask: 0xffffffff) */ +/* =============================================== ETHERSTATSPKTS64OCTETS_P2 =============================================== */ + #define R_ETHSW_ETHERSTATSPKTS64OCTETS_P2_OCTCNT64_Pos (0UL) /*!< OCTCNT64 (Bit 0) */ + #define R_ETHSW_ETHERSTATSPKTS64OCTETS_P2_OCTCNT64_Msk (0xffffffffUL) /*!< OCTCNT64 (Bitfield-Mask: 0xffffffff) */ +/* =============================================== ETHERSTATSPKTS64OCTETS_P3 =============================================== */ + #define R_ETHSW_ETHERSTATSPKTS64OCTETS_P3_OCTCNT64_Pos (0UL) /*!< OCTCNT64 (Bit 0) */ + #define R_ETHSW_ETHERSTATSPKTS64OCTETS_P3_OCTCNT64_Msk (0xffffffffUL) /*!< OCTCNT64 (Bitfield-Mask: 0xffffffff) */ +/* ============================================ ETHERSTATSPKTS65TO127OCTETS_P0 ============================================= */ + #define R_ETHSW_ETHERSTATSPKTS65TO127OCTETS_P0_OCTCNT65T127_Pos (0UL) /*!< OCTCNT65T127 (Bit 0) */ + #define R_ETHSW_ETHERSTATSPKTS65TO127OCTETS_P0_OCTCNT65T127_Msk (0xffffffffUL) /*!< OCTCNT65T127 (Bitfield-Mask: 0xffffffff) */ +/* ============================================ ETHERSTATSPKTS65TO127OCTETS_P1 ============================================= */ + #define R_ETHSW_ETHERSTATSPKTS65TO127OCTETS_P1_OCTCNT65T127_Pos (0UL) /*!< OCTCNT65T127 (Bit 0) */ + #define R_ETHSW_ETHERSTATSPKTS65TO127OCTETS_P1_OCTCNT65T127_Msk (0xffffffffUL) /*!< OCTCNT65T127 (Bitfield-Mask: 0xffffffff) */ +/* ============================================ ETHERSTATSPKTS65TO127OCTETS_P2 ============================================= */ + #define R_ETHSW_ETHERSTATSPKTS65TO127OCTETS_P2_OCTCNT65T127_Pos (0UL) /*!< OCTCNT65T127 (Bit 0) */ + #define R_ETHSW_ETHERSTATSPKTS65TO127OCTETS_P2_OCTCNT65T127_Msk (0xffffffffUL) /*!< OCTCNT65T127 (Bitfield-Mask: 0xffffffff) */ +/* ============================================ ETHERSTATSPKTS65TO127OCTETS_P3 ============================================= */ + #define R_ETHSW_ETHERSTATSPKTS65TO127OCTETS_P3_OCTCNT65T127_Pos (0UL) /*!< OCTCNT65T127 (Bit 0) */ + #define R_ETHSW_ETHERSTATSPKTS65TO127OCTETS_P3_OCTCNT65T127_Msk (0xffffffffUL) /*!< OCTCNT65T127 (Bitfield-Mask: 0xffffffff) */ +/* ============================================ ETHERSTATSPKTS128TO255OCTETS_P0 ============================================ */ + #define R_ETHSW_ETHERSTATSPKTS128TO255OCTETS_P0_OCTCNT128T255_Pos (0UL) /*!< OCTCNT128T255 (Bit 0) */ + #define R_ETHSW_ETHERSTATSPKTS128TO255OCTETS_P0_OCTCNT128T255_Msk (0xffffffffUL) /*!< OCTCNT128T255 (Bitfield-Mask: 0xffffffff) */ +/* ============================================ ETHERSTATSPKTS128TO255OCTETS_P1 ============================================ */ + #define R_ETHSW_ETHERSTATSPKTS128TO255OCTETS_P1_OCTCNT128T255_Pos (0UL) /*!< OCTCNT128T255 (Bit 0) */ + #define R_ETHSW_ETHERSTATSPKTS128TO255OCTETS_P1_OCTCNT128T255_Msk (0xffffffffUL) /*!< OCTCNT128T255 (Bitfield-Mask: 0xffffffff) */ +/* ============================================ ETHERSTATSPKTS128TO255OCTETS_P2 ============================================ */ + #define R_ETHSW_ETHERSTATSPKTS128TO255OCTETS_P2_OCTCNT128T255_Pos (0UL) /*!< OCTCNT128T255 (Bit 0) */ + #define R_ETHSW_ETHERSTATSPKTS128TO255OCTETS_P2_OCTCNT128T255_Msk (0xffffffffUL) /*!< OCTCNT128T255 (Bitfield-Mask: 0xffffffff) */ +/* ============================================ ETHERSTATSPKTS128TO255OCTETS_P3 ============================================ */ + #define R_ETHSW_ETHERSTATSPKTS128TO255OCTETS_P3_OCTCNT128T255_Pos (0UL) /*!< OCTCNT128T255 (Bit 0) */ + #define R_ETHSW_ETHERSTATSPKTS128TO255OCTETS_P3_OCTCNT128T255_Msk (0xffffffffUL) /*!< OCTCNT128T255 (Bitfield-Mask: 0xffffffff) */ +/* ============================================ ETHERSTATSPKTS256TO511OCTETS_P0 ============================================ */ + #define R_ETHSW_ETHERSTATSPKTS256TO511OCTETS_P0_OCTCNT256T511_Pos (0UL) /*!< OCTCNT256T511 (Bit 0) */ + #define R_ETHSW_ETHERSTATSPKTS256TO511OCTETS_P0_OCTCNT256T511_Msk (0xffffffffUL) /*!< OCTCNT256T511 (Bitfield-Mask: 0xffffffff) */ +/* ============================================ ETHERSTATSPKTS256TO511OCTETS_P1 ============================================ */ + #define R_ETHSW_ETHERSTATSPKTS256TO511OCTETS_P1_OCTCNT256T511_Pos (0UL) /*!< OCTCNT256T511 (Bit 0) */ + #define R_ETHSW_ETHERSTATSPKTS256TO511OCTETS_P1_OCTCNT256T511_Msk (0xffffffffUL) /*!< OCTCNT256T511 (Bitfield-Mask: 0xffffffff) */ +/* ============================================ ETHERSTATSPKTS256TO511OCTETS_P2 ============================================ */ + #define R_ETHSW_ETHERSTATSPKTS256TO511OCTETS_P2_OCTCNT256T511_Pos (0UL) /*!< OCTCNT256T511 (Bit 0) */ + #define R_ETHSW_ETHERSTATSPKTS256TO511OCTETS_P2_OCTCNT256T511_Msk (0xffffffffUL) /*!< OCTCNT256T511 (Bitfield-Mask: 0xffffffff) */ +/* ============================================ ETHERSTATSPKTS256TO511OCTETS_P3 ============================================ */ + #define R_ETHSW_ETHERSTATSPKTS256TO511OCTETS_P3_OCTCNT256T511_Pos (0UL) /*!< OCTCNT256T511 (Bit 0) */ + #define R_ETHSW_ETHERSTATSPKTS256TO511OCTETS_P3_OCTCNT256T511_Msk (0xffffffffUL) /*!< OCTCNT256T511 (Bitfield-Mask: 0xffffffff) */ +/* =========================================== ETHERSTATSPKTS512TO1023OCTETS_P0 ============================================ */ + #define R_ETHSW_ETHERSTATSPKTS512TO1023OCTETS_P0_OCTCNT512T1023_Pos (0UL) /*!< OCTCNT512T1023 (Bit 0) */ + #define R_ETHSW_ETHERSTATSPKTS512TO1023OCTETS_P0_OCTCNT512T1023_Msk (0xffffffffUL) /*!< OCTCNT512T1023 (Bitfield-Mask: 0xffffffff) */ +/* =========================================== ETHERSTATSPKTS512TO1023OCTETS_P1 ============================================ */ + #define R_ETHSW_ETHERSTATSPKTS512TO1023OCTETS_P1_OCTCNT512T1023_Pos (0UL) /*!< OCTCNT512T1023 (Bit 0) */ + #define R_ETHSW_ETHERSTATSPKTS512TO1023OCTETS_P1_OCTCNT512T1023_Msk (0xffffffffUL) /*!< OCTCNT512T1023 (Bitfield-Mask: 0xffffffff) */ +/* =========================================== ETHERSTATSPKTS512TO1023OCTETS_P2 ============================================ */ + #define R_ETHSW_ETHERSTATSPKTS512TO1023OCTETS_P2_OCTCNT512T1023_Pos (0UL) /*!< OCTCNT512T1023 (Bit 0) */ + #define R_ETHSW_ETHERSTATSPKTS512TO1023OCTETS_P2_OCTCNT512T1023_Msk (0xffffffffUL) /*!< OCTCNT512T1023 (Bitfield-Mask: 0xffffffff) */ +/* =========================================== ETHERSTATSPKTS512TO1023OCTETS_P3 ============================================ */ + #define R_ETHSW_ETHERSTATSPKTS512TO1023OCTETS_P3_OCTCNT512T1023_Pos (0UL) /*!< OCTCNT512T1023 (Bit 0) */ + #define R_ETHSW_ETHERSTATSPKTS512TO1023OCTETS_P3_OCTCNT512T1023_Msk (0xffffffffUL) /*!< OCTCNT512T1023 (Bitfield-Mask: 0xffffffff) */ +/* =========================================== ETHERSTATSPKTS1024TO1518OCTETS_P0 =========================================== */ + #define R_ETHSW_ETHERSTATSPKTS1024TO1518OCTETS_P0_OCTCNT1024T1518_Pos (0UL) /*!< OCTCNT1024T1518 (Bit 0) */ + #define R_ETHSW_ETHERSTATSPKTS1024TO1518OCTETS_P0_OCTCNT1024T1518_Msk (0xffffffffUL) /*!< OCTCNT1024T1518 (Bitfield-Mask: 0xffffffff) */ +/* =========================================== ETHERSTATSPKTS1024TO1518OCTETS_P1 =========================================== */ + #define R_ETHSW_ETHERSTATSPKTS1024TO1518OCTETS_P1_OCTCNT1024T1518_Pos (0UL) /*!< OCTCNT1024T1518 (Bit 0) */ + #define R_ETHSW_ETHERSTATSPKTS1024TO1518OCTETS_P1_OCTCNT1024T1518_Msk (0xffffffffUL) /*!< OCTCNT1024T1518 (Bitfield-Mask: 0xffffffff) */ +/* =========================================== ETHERSTATSPKTS1024TO1518OCTETS_P2 =========================================== */ + #define R_ETHSW_ETHERSTATSPKTS1024TO1518OCTETS_P2_OCTCNT1024T1518_Pos (0UL) /*!< OCTCNT1024T1518 (Bit 0) */ + #define R_ETHSW_ETHERSTATSPKTS1024TO1518OCTETS_P2_OCTCNT1024T1518_Msk (0xffffffffUL) /*!< OCTCNT1024T1518 (Bitfield-Mask: 0xffffffff) */ +/* =========================================== ETHERSTATSPKTS1024TO1518OCTETS_P3 =========================================== */ + #define R_ETHSW_ETHERSTATSPKTS1024TO1518OCTETS_P3_OCTCNT1024T1518_Pos (0UL) /*!< OCTCNT1024T1518 (Bit 0) */ + #define R_ETHSW_ETHERSTATSPKTS1024TO1518OCTETS_P3_OCTCNT1024T1518_Msk (0xffffffffUL) /*!< OCTCNT1024T1518 (Bitfield-Mask: 0xffffffff) */ +/* ============================================ ETHERSTATSPKTS1519TOXOCTETS_P0 ============================================= */ + #define R_ETHSW_ETHERSTATSPKTS1519TOXOCTETS_P0_OCTCNT1519TX_Pos (0UL) /*!< OCTCNT1519TX (Bit 0) */ + #define R_ETHSW_ETHERSTATSPKTS1519TOXOCTETS_P0_OCTCNT1519TX_Msk (0xffffffffUL) /*!< OCTCNT1519TX (Bitfield-Mask: 0xffffffff) */ +/* ============================================ ETHERSTATSPKTS1519TOXOCTETS_P1 ============================================= */ + #define R_ETHSW_ETHERSTATSPKTS1519TOXOCTETS_P1_OCTCNT1519TX_Pos (0UL) /*!< OCTCNT1519TX (Bit 0) */ + #define R_ETHSW_ETHERSTATSPKTS1519TOXOCTETS_P1_OCTCNT1519TX_Msk (0xffffffffUL) /*!< OCTCNT1519TX (Bitfield-Mask: 0xffffffff) */ +/* ============================================ ETHERSTATSPKTS1519TOXOCTETS_P2 ============================================= */ + #define R_ETHSW_ETHERSTATSPKTS1519TOXOCTETS_P2_OCTCNT1519TX_Pos (0UL) /*!< OCTCNT1519TX (Bit 0) */ + #define R_ETHSW_ETHERSTATSPKTS1519TOXOCTETS_P2_OCTCNT1519TX_Msk (0xffffffffUL) /*!< OCTCNT1519TX (Bitfield-Mask: 0xffffffff) */ +/* ============================================ ETHERSTATSPKTS1519TOXOCTETS_P3 ============================================= */ + #define R_ETHSW_ETHERSTATSPKTS1519TOXOCTETS_P3_OCTCNT1519TX_Pos (0UL) /*!< OCTCNT1519TX (Bit 0) */ + #define R_ETHSW_ETHERSTATSPKTS1519TOXOCTETS_P3_OCTCNT1519TX_Msk (0xffffffffUL) /*!< OCTCNT1519TX (Bitfield-Mask: 0xffffffff) */ +/* ================================================= ETHERSTATSJABBERS_P0 ================================================== */ + #define R_ETHSW_ETHERSTATSJABBERS_P0_JABBERCOUNT_Pos (0UL) /*!< JABBERCOUNT (Bit 0) */ + #define R_ETHSW_ETHERSTATSJABBERS_P0_JABBERCOUNT_Msk (0xffffffffUL) /*!< JABBERCOUNT (Bitfield-Mask: 0xffffffff) */ +/* ================================================= ETHERSTATSJABBERS_P1 ================================================== */ + #define R_ETHSW_ETHERSTATSJABBERS_P1_JABBERCOUNT_Pos (0UL) /*!< JABBERCOUNT (Bit 0) */ + #define R_ETHSW_ETHERSTATSJABBERS_P1_JABBERCOUNT_Msk (0xffffffffUL) /*!< JABBERCOUNT (Bitfield-Mask: 0xffffffff) */ +/* ================================================= ETHERSTATSJABBERS_P2 ================================================== */ + #define R_ETHSW_ETHERSTATSJABBERS_P2_JABBERCOUNT_Pos (0UL) /*!< JABBERCOUNT (Bit 0) */ + #define R_ETHSW_ETHERSTATSJABBERS_P2_JABBERCOUNT_Msk (0xffffffffUL) /*!< JABBERCOUNT (Bitfield-Mask: 0xffffffff) */ +/* ================================================= ETHERSTATSJABBERS_P3 ================================================== */ + #define R_ETHSW_ETHERSTATSJABBERS_P3_JABBERCOUNT_Pos (0UL) /*!< JABBERCOUNT (Bit 0) */ + #define R_ETHSW_ETHERSTATSJABBERS_P3_JABBERCOUNT_Msk (0xffffffffUL) /*!< JABBERCOUNT (Bitfield-Mask: 0xffffffff) */ +/* ================================================ ETHERSTATSFRAGMENTS_P0 ================================================= */ + #define R_ETHSW_ETHERSTATSFRAGMENTS_P0_FRAGCOUNT_Pos (0UL) /*!< FRAGCOUNT (Bit 0) */ + #define R_ETHSW_ETHERSTATSFRAGMENTS_P0_FRAGCOUNT_Msk (0xffffffffUL) /*!< FRAGCOUNT (Bitfield-Mask: 0xffffffff) */ +/* ================================================ ETHERSTATSFRAGMENTS_P1 ================================================= */ + #define R_ETHSW_ETHERSTATSFRAGMENTS_P1_FRAGCOUNT_Pos (0UL) /*!< FRAGCOUNT (Bit 0) */ + #define R_ETHSW_ETHERSTATSFRAGMENTS_P1_FRAGCOUNT_Msk (0xffffffffUL) /*!< FRAGCOUNT (Bitfield-Mask: 0xffffffff) */ +/* ================================================ ETHERSTATSFRAGMENTS_P2 ================================================= */ + #define R_ETHSW_ETHERSTATSFRAGMENTS_P2_FRAGCOUNT_Pos (0UL) /*!< FRAGCOUNT (Bit 0) */ + #define R_ETHSW_ETHERSTATSFRAGMENTS_P2_FRAGCOUNT_Msk (0xffffffffUL) /*!< FRAGCOUNT (Bitfield-Mask: 0xffffffff) */ +/* ================================================ ETHERSTATSFRAGMENTS_P3 ================================================= */ + #define R_ETHSW_ETHERSTATSFRAGMENTS_P3_FRAGCOUNT_Pos (0UL) /*!< FRAGCOUNT (Bit 0) */ + #define R_ETHSW_ETHERSTATSFRAGMENTS_P3_FRAGCOUNT_Msk (0xffffffffUL) /*!< FRAGCOUNT (Bitfield-Mask: 0xffffffff) */ +/* =================================================== VLANRECEIVEDOK_P0 =================================================== */ + #define R_ETHSW_VLANRECEIVEDOK_P0_RXVLANTAGCNT_Pos (0UL) /*!< RXVLANTAGCNT (Bit 0) */ + #define R_ETHSW_VLANRECEIVEDOK_P0_RXVLANTAGCNT_Msk (0xffffffffUL) /*!< RXVLANTAGCNT (Bitfield-Mask: 0xffffffff) */ +/* =================================================== VLANRECEIVEDOK_P1 =================================================== */ + #define R_ETHSW_VLANRECEIVEDOK_P1_RXVLANTAGCNT_Pos (0UL) /*!< RXVLANTAGCNT (Bit 0) */ + #define R_ETHSW_VLANRECEIVEDOK_P1_RXVLANTAGCNT_Msk (0xffffffffUL) /*!< RXVLANTAGCNT (Bitfield-Mask: 0xffffffff) */ +/* =================================================== VLANRECEIVEDOK_P2 =================================================== */ + #define R_ETHSW_VLANRECEIVEDOK_P2_RXVLANTAGCNT_Pos (0UL) /*!< RXVLANTAGCNT (Bit 0) */ + #define R_ETHSW_VLANRECEIVEDOK_P2_RXVLANTAGCNT_Msk (0xffffffffUL) /*!< RXVLANTAGCNT (Bitfield-Mask: 0xffffffff) */ +/* =================================================== VLANRECEIVEDOK_P3 =================================================== */ + #define R_ETHSW_VLANRECEIVEDOK_P3_RXVLANTAGCNT_Pos (0UL) /*!< RXVLANTAGCNT (Bit 0) */ + #define R_ETHSW_VLANRECEIVEDOK_P3_RXVLANTAGCNT_Msk (0xffffffffUL) /*!< RXVLANTAGCNT (Bitfield-Mask: 0xffffffff) */ +/* ================================================= VLANTRANSMITTEDOK_P0 ================================================== */ + #define R_ETHSW_VLANTRANSMITTEDOK_P0_TXVLANTAGCNT_Pos (0UL) /*!< TXVLANTAGCNT (Bit 0) */ + #define R_ETHSW_VLANTRANSMITTEDOK_P0_TXVLANTAGCNT_Msk (0xffffffffUL) /*!< TXVLANTAGCNT (Bitfield-Mask: 0xffffffff) */ +/* ================================================= VLANTRANSMITTEDOK_P1 ================================================== */ + #define R_ETHSW_VLANTRANSMITTEDOK_P1_TXVLANTAGCNT_Pos (0UL) /*!< TXVLANTAGCNT (Bit 0) */ + #define R_ETHSW_VLANTRANSMITTEDOK_P1_TXVLANTAGCNT_Msk (0xffffffffUL) /*!< TXVLANTAGCNT (Bitfield-Mask: 0xffffffff) */ +/* ================================================= VLANTRANSMITTEDOK_P2 ================================================== */ + #define R_ETHSW_VLANTRANSMITTEDOK_P2_TXVLANTAGCNT_Pos (0UL) /*!< TXVLANTAGCNT (Bit 0) */ + #define R_ETHSW_VLANTRANSMITTEDOK_P2_TXVLANTAGCNT_Msk (0xffffffffUL) /*!< TXVLANTAGCNT (Bitfield-Mask: 0xffffffff) */ +/* ================================================= VLANTRANSMITTEDOK_P3 ================================================== */ + #define R_ETHSW_VLANTRANSMITTEDOK_P3_TXVLANTAGCNT_Pos (0UL) /*!< TXVLANTAGCNT (Bit 0) */ + #define R_ETHSW_VLANTRANSMITTEDOK_P3_TXVLANTAGCNT_Msk (0xffffffffUL) /*!< TXVLANTAGCNT (Bitfield-Mask: 0xffffffff) */ +/* ================================================ FRAMESRETRANSMITTED_P0 ================================================= */ + #define R_ETHSW_FRAMESRETRANSMITTED_P0_RETXCOUNT_Pos (0UL) /*!< RETXCOUNT (Bit 0) */ + #define R_ETHSW_FRAMESRETRANSMITTED_P0_RETXCOUNT_Msk (0xffffffffUL) /*!< RETXCOUNT (Bitfield-Mask: 0xffffffff) */ +/* ================================================ FRAMESRETRANSMITTED_P1 ================================================= */ + #define R_ETHSW_FRAMESRETRANSMITTED_P1_RETXCOUNT_Pos (0UL) /*!< RETXCOUNT (Bit 0) */ + #define R_ETHSW_FRAMESRETRANSMITTED_P1_RETXCOUNT_Msk (0xffffffffUL) /*!< RETXCOUNT (Bitfield-Mask: 0xffffffff) */ +/* ================================================ FRAMESRETRANSMITTED_P2 ================================================= */ + #define R_ETHSW_FRAMESRETRANSMITTED_P2_RETXCOUNT_Pos (0UL) /*!< RETXCOUNT (Bit 0) */ + #define R_ETHSW_FRAMESRETRANSMITTED_P2_RETXCOUNT_Msk (0xffffffffUL) /*!< RETXCOUNT (Bitfield-Mask: 0xffffffff) */ +/* ================================================ FRAMESRETRANSMITTED_P3 ================================================= */ + #define R_ETHSW_FRAMESRETRANSMITTED_P3_RETXCOUNT_Pos (0UL) /*!< RETXCOUNT (Bit 0) */ + #define R_ETHSW_FRAMESRETRANSMITTED_P3_RETXCOUNT_Msk (0xffffffffUL) /*!< RETXCOUNT (Bitfield-Mask: 0xffffffff) */ +/* ==================================================== STATS_HIWORD_P0 ==================================================== */ + #define R_ETHSW_STATS_HIWORD_P0_STATS_HIWORD_Pos (0UL) /*!< STATS_HIWORD (Bit 0) */ + #define R_ETHSW_STATS_HIWORD_P0_STATS_HIWORD_Msk (0xffffffffUL) /*!< STATS_HIWORD (Bitfield-Mask: 0xffffffff) */ +/* ==================================================== STATS_HIWORD_P1 ==================================================== */ + #define R_ETHSW_STATS_HIWORD_P1_STATS_HIWORD_Pos (0UL) /*!< STATS_HIWORD (Bit 0) */ + #define R_ETHSW_STATS_HIWORD_P1_STATS_HIWORD_Msk (0xffffffffUL) /*!< STATS_HIWORD (Bitfield-Mask: 0xffffffff) */ +/* ==================================================== STATS_HIWORD_P2 ==================================================== */ + #define R_ETHSW_STATS_HIWORD_P2_STATS_HIWORD_Pos (0UL) /*!< STATS_HIWORD (Bit 0) */ + #define R_ETHSW_STATS_HIWORD_P2_STATS_HIWORD_Msk (0xffffffffUL) /*!< STATS_HIWORD (Bitfield-Mask: 0xffffffff) */ +/* ==================================================== STATS_HIWORD_P3 ==================================================== */ + #define R_ETHSW_STATS_HIWORD_P3_STATS_HIWORD_Pos (0UL) /*!< STATS_HIWORD (Bit 0) */ + #define R_ETHSW_STATS_HIWORD_P3_STATS_HIWORD_Msk (0xffffffffUL) /*!< STATS_HIWORD (Bitfield-Mask: 0xffffffff) */ +/* ===================================================== STATS_CTRL_P0 ===================================================== */ + #define R_ETHSW_STATS_CTRL_P0_CLRALL_Pos (0UL) /*!< CLRALL (Bit 0) */ + #define R_ETHSW_STATS_CTRL_P0_CLRALL_Msk (0x1UL) /*!< CLRALL (Bitfield-Mask: 0x01) */ + #define R_ETHSW_STATS_CTRL_P0_CLRBUSY_Pos (1UL) /*!< CLRBUSY (Bit 1) */ + #define R_ETHSW_STATS_CTRL_P0_CLRBUSY_Msk (0x2UL) /*!< CLRBUSY (Bitfield-Mask: 0x01) */ +/* ===================================================== STATS_CTRL_P1 ===================================================== */ + #define R_ETHSW_STATS_CTRL_P1_CLRALL_Pos (0UL) /*!< CLRALL (Bit 0) */ + #define R_ETHSW_STATS_CTRL_P1_CLRALL_Msk (0x1UL) /*!< CLRALL (Bitfield-Mask: 0x01) */ + #define R_ETHSW_STATS_CTRL_P1_CLRBUSY_Pos (1UL) /*!< CLRBUSY (Bit 1) */ + #define R_ETHSW_STATS_CTRL_P1_CLRBUSY_Msk (0x2UL) /*!< CLRBUSY (Bitfield-Mask: 0x01) */ +/* ===================================================== STATS_CTRL_P2 ===================================================== */ + #define R_ETHSW_STATS_CTRL_P2_CLRALL_Pos (0UL) /*!< CLRALL (Bit 0) */ + #define R_ETHSW_STATS_CTRL_P2_CLRALL_Msk (0x1UL) /*!< CLRALL (Bitfield-Mask: 0x01) */ + #define R_ETHSW_STATS_CTRL_P2_CLRBUSY_Pos (1UL) /*!< CLRBUSY (Bit 1) */ + #define R_ETHSW_STATS_CTRL_P2_CLRBUSY_Msk (0x2UL) /*!< CLRBUSY (Bitfield-Mask: 0x01) */ +/* ===================================================== STATS_CTRL_P3 ===================================================== */ + #define R_ETHSW_STATS_CTRL_P3_CLRALL_Pos (0UL) /*!< CLRALL (Bit 0) */ + #define R_ETHSW_STATS_CTRL_P3_CLRALL_Msk (0x1UL) /*!< CLRALL (Bitfield-Mask: 0x01) */ + #define R_ETHSW_STATS_CTRL_P3_CLRBUSY_Pos (1UL) /*!< CLRBUSY (Bit 1) */ + #define R_ETHSW_STATS_CTRL_P3_CLRBUSY_Msk (0x2UL) /*!< CLRBUSY (Bitfield-Mask: 0x01) */ +/* ================================================ STATS_CLEAR_VALUELO_P0 ================================================= */ + #define R_ETHSW_STATS_CLEAR_VALUELO_P0_STATS_CLEAR_VALUELO_Pos (0UL) /*!< STATS_CLEAR_VALUELO (Bit 0) */ + #define R_ETHSW_STATS_CLEAR_VALUELO_P0_STATS_CLEAR_VALUELO_Msk (0xffffffffUL) /*!< STATS_CLEAR_VALUELO (Bitfield-Mask: 0xffffffff) */ +/* ================================================ STATS_CLEAR_VALUELO_P1 ================================================= */ + #define R_ETHSW_STATS_CLEAR_VALUELO_P1_STATS_CLEAR_VALUELO_Pos (0UL) /*!< STATS_CLEAR_VALUELO (Bit 0) */ + #define R_ETHSW_STATS_CLEAR_VALUELO_P1_STATS_CLEAR_VALUELO_Msk (0xffffffffUL) /*!< STATS_CLEAR_VALUELO (Bitfield-Mask: 0xffffffff) */ +/* ================================================ STATS_CLEAR_VALUELO_P2 ================================================= */ + #define R_ETHSW_STATS_CLEAR_VALUELO_P2_STATS_CLEAR_VALUELO_Pos (0UL) /*!< STATS_CLEAR_VALUELO (Bit 0) */ + #define R_ETHSW_STATS_CLEAR_VALUELO_P2_STATS_CLEAR_VALUELO_Msk (0xffffffffUL) /*!< STATS_CLEAR_VALUELO (Bitfield-Mask: 0xffffffff) */ +/* ================================================ STATS_CLEAR_VALUELO_P3 ================================================= */ + #define R_ETHSW_STATS_CLEAR_VALUELO_P3_STATS_CLEAR_VALUELO_Pos (0UL) /*!< STATS_CLEAR_VALUELO (Bit 0) */ + #define R_ETHSW_STATS_CLEAR_VALUELO_P3_STATS_CLEAR_VALUELO_Msk (0xffffffffUL) /*!< STATS_CLEAR_VALUELO (Bitfield-Mask: 0xffffffff) */ +/* ================================================ STATS_CLEAR_VALUEHI_P0 ================================================= */ + #define R_ETHSW_STATS_CLEAR_VALUEHI_P0_STATS_CLEAR_VALUEHI_Pos (0UL) /*!< STATS_CLEAR_VALUEHI (Bit 0) */ + #define R_ETHSW_STATS_CLEAR_VALUEHI_P0_STATS_CLEAR_VALUEHI_Msk (0xffffffffUL) /*!< STATS_CLEAR_VALUEHI (Bitfield-Mask: 0xffffffff) */ +/* ================================================ STATS_CLEAR_VALUEHI_P1 ================================================= */ + #define R_ETHSW_STATS_CLEAR_VALUEHI_P1_STATS_CLEAR_VALUEHI_Pos (0UL) /*!< STATS_CLEAR_VALUEHI (Bit 0) */ + #define R_ETHSW_STATS_CLEAR_VALUEHI_P1_STATS_CLEAR_VALUEHI_Msk (0xffffffffUL) /*!< STATS_CLEAR_VALUEHI (Bitfield-Mask: 0xffffffff) */ +/* ================================================ STATS_CLEAR_VALUEHI_P2 ================================================= */ + #define R_ETHSW_STATS_CLEAR_VALUEHI_P2_STATS_CLEAR_VALUEHI_Pos (0UL) /*!< STATS_CLEAR_VALUEHI (Bit 0) */ + #define R_ETHSW_STATS_CLEAR_VALUEHI_P2_STATS_CLEAR_VALUEHI_Msk (0xffffffffUL) /*!< STATS_CLEAR_VALUEHI (Bitfield-Mask: 0xffffffff) */ +/* ================================================ STATS_CLEAR_VALUEHI_P3 ================================================= */ + #define R_ETHSW_STATS_CLEAR_VALUEHI_P3_STATS_CLEAR_VALUEHI_Pos (0UL) /*!< STATS_CLEAR_VALUEHI (Bit 0) */ + #define R_ETHSW_STATS_CLEAR_VALUEHI_P3_STATS_CLEAR_VALUEHI_Msk (0xffffffffUL) /*!< STATS_CLEAR_VALUEHI (Bitfield-Mask: 0xffffffff) */ +/* ===================================================== ADEFERRED_P0 ====================================================== */ + #define R_ETHSW_ADEFERRED_P0_DEFERCOUNT_Pos (0UL) /*!< DEFERCOUNT (Bit 0) */ + #define R_ETHSW_ADEFERRED_P0_DEFERCOUNT_Msk (0xffffffffUL) /*!< DEFERCOUNT (Bitfield-Mask: 0xffffffff) */ +/* ===================================================== ADEFERRED_P1 ====================================================== */ + #define R_ETHSW_ADEFERRED_P1_DEFERCOUNT_Pos (0UL) /*!< DEFERCOUNT (Bit 0) */ + #define R_ETHSW_ADEFERRED_P1_DEFERCOUNT_Msk (0xffffffffUL) /*!< DEFERCOUNT (Bitfield-Mask: 0xffffffff) */ +/* ===================================================== ADEFERRED_P2 ====================================================== */ + #define R_ETHSW_ADEFERRED_P2_DEFERCOUNT_Pos (0UL) /*!< DEFERCOUNT (Bit 0) */ + #define R_ETHSW_ADEFERRED_P2_DEFERCOUNT_Msk (0xffffffffUL) /*!< DEFERCOUNT (Bitfield-Mask: 0xffffffff) */ +/* ===================================================== ADEFERRED_P3 ====================================================== */ + #define R_ETHSW_ADEFERRED_P3_DEFERCOUNT_Pos (0UL) /*!< DEFERCOUNT (Bit 0) */ + #define R_ETHSW_ADEFERRED_P3_DEFERCOUNT_Msk (0xffffffffUL) /*!< DEFERCOUNT (Bitfield-Mask: 0xffffffff) */ +/* ================================================ AMULTIPLECOLLISIONS_P0 ================================================= */ + #define R_ETHSW_AMULTIPLECOLLISIONS_P0_COUNTAFTMLTCOLL_Pos (0UL) /*!< COUNTAFTMLTCOLL (Bit 0) */ + #define R_ETHSW_AMULTIPLECOLLISIONS_P0_COUNTAFTMLTCOLL_Msk (0xffffffffUL) /*!< COUNTAFTMLTCOLL (Bitfield-Mask: 0xffffffff) */ +/* ================================================ AMULTIPLECOLLISIONS_P1 ================================================= */ + #define R_ETHSW_AMULTIPLECOLLISIONS_P1_COUNTAFTMLTCOLL_Pos (0UL) /*!< COUNTAFTMLTCOLL (Bit 0) */ + #define R_ETHSW_AMULTIPLECOLLISIONS_P1_COUNTAFTMLTCOLL_Msk (0xffffffffUL) /*!< COUNTAFTMLTCOLL (Bitfield-Mask: 0xffffffff) */ +/* ================================================ AMULTIPLECOLLISIONS_P2 ================================================= */ + #define R_ETHSW_AMULTIPLECOLLISIONS_P2_COUNTAFTMLTCOLL_Pos (0UL) /*!< COUNTAFTMLTCOLL (Bit 0) */ + #define R_ETHSW_AMULTIPLECOLLISIONS_P2_COUNTAFTMLTCOLL_Msk (0xffffffffUL) /*!< COUNTAFTMLTCOLL (Bitfield-Mask: 0xffffffff) */ +/* ================================================ AMULTIPLECOLLISIONS_P3 ================================================= */ + #define R_ETHSW_AMULTIPLECOLLISIONS_P3_COUNTAFTMLTCOLL_Pos (0UL) /*!< COUNTAFTMLTCOLL (Bit 0) */ + #define R_ETHSW_AMULTIPLECOLLISIONS_P3_COUNTAFTMLTCOLL_Msk (0xffffffffUL) /*!< COUNTAFTMLTCOLL (Bitfield-Mask: 0xffffffff) */ +/* ================================================= ASINGLECOLLISIONS_P0 ================================================== */ + #define R_ETHSW_ASINGLECOLLISIONS_P0_COUNTAFTSNGLCOLL_Pos (0UL) /*!< COUNTAFTSNGLCOLL (Bit 0) */ + #define R_ETHSW_ASINGLECOLLISIONS_P0_COUNTAFTSNGLCOLL_Msk (0xffffffffUL) /*!< COUNTAFTSNGLCOLL (Bitfield-Mask: 0xffffffff) */ +/* ================================================= ASINGLECOLLISIONS_P1 ================================================== */ + #define R_ETHSW_ASINGLECOLLISIONS_P1_COUNTAFTSNGLCOLL_Pos (0UL) /*!< COUNTAFTSNGLCOLL (Bit 0) */ + #define R_ETHSW_ASINGLECOLLISIONS_P1_COUNTAFTSNGLCOLL_Msk (0xffffffffUL) /*!< COUNTAFTSNGLCOLL (Bitfield-Mask: 0xffffffff) */ +/* ================================================= ASINGLECOLLISIONS_P2 ================================================== */ + #define R_ETHSW_ASINGLECOLLISIONS_P2_COUNTAFTSNGLCOLL_Pos (0UL) /*!< COUNTAFTSNGLCOLL (Bit 0) */ + #define R_ETHSW_ASINGLECOLLISIONS_P2_COUNTAFTSNGLCOLL_Msk (0xffffffffUL) /*!< COUNTAFTSNGLCOLL (Bitfield-Mask: 0xffffffff) */ +/* ================================================= ASINGLECOLLISIONS_P3 ================================================== */ + #define R_ETHSW_ASINGLECOLLISIONS_P3_COUNTAFTSNGLCOLL_Pos (0UL) /*!< COUNTAFTSNGLCOLL (Bit 0) */ + #define R_ETHSW_ASINGLECOLLISIONS_P3_COUNTAFTSNGLCOLL_Msk (0xffffffffUL) /*!< COUNTAFTSNGLCOLL (Bitfield-Mask: 0xffffffff) */ +/* ================================================== ALATECOLLISIONS_P0 =================================================== */ + #define R_ETHSW_ALATECOLLISIONS_P0_LATECOLLCOUNT_Pos (0UL) /*!< LATECOLLCOUNT (Bit 0) */ + #define R_ETHSW_ALATECOLLISIONS_P0_LATECOLLCOUNT_Msk (0xffffffffUL) /*!< LATECOLLCOUNT (Bitfield-Mask: 0xffffffff) */ +/* ================================================== ALATECOLLISIONS_P1 =================================================== */ + #define R_ETHSW_ALATECOLLISIONS_P1_LATECOLLCOUNT_Pos (0UL) /*!< LATECOLLCOUNT (Bit 0) */ + #define R_ETHSW_ALATECOLLISIONS_P1_LATECOLLCOUNT_Msk (0xffffffffUL) /*!< LATECOLLCOUNT (Bitfield-Mask: 0xffffffff) */ +/* ================================================== ALATECOLLISIONS_P2 =================================================== */ + #define R_ETHSW_ALATECOLLISIONS_P2_LATECOLLCOUNT_Pos (0UL) /*!< LATECOLLCOUNT (Bit 0) */ + #define R_ETHSW_ALATECOLLISIONS_P2_LATECOLLCOUNT_Msk (0xffffffffUL) /*!< LATECOLLCOUNT (Bitfield-Mask: 0xffffffff) */ +/* ================================================== ALATECOLLISIONS_P3 =================================================== */ + #define R_ETHSW_ALATECOLLISIONS_P3_LATECOLLCOUNT_Pos (0UL) /*!< LATECOLLCOUNT (Bit 0) */ + #define R_ETHSW_ALATECOLLISIONS_P3_LATECOLLCOUNT_Msk (0xffffffffUL) /*!< LATECOLLCOUNT (Bitfield-Mask: 0xffffffff) */ +/* ================================================ AEXCESSIVECOLLISIONS_P0 ================================================ */ + #define R_ETHSW_AEXCESSIVECOLLISIONS_P0_EXCCOLLCOUNT_Pos (0UL) /*!< EXCCOLLCOUNT (Bit 0) */ + #define R_ETHSW_AEXCESSIVECOLLISIONS_P0_EXCCOLLCOUNT_Msk (0xffffffffUL) /*!< EXCCOLLCOUNT (Bitfield-Mask: 0xffffffff) */ +/* ================================================ AEXCESSIVECOLLISIONS_P1 ================================================ */ + #define R_ETHSW_AEXCESSIVECOLLISIONS_P1_EXCCOLLCOUNT_Pos (0UL) /*!< EXCCOLLCOUNT (Bit 0) */ + #define R_ETHSW_AEXCESSIVECOLLISIONS_P1_EXCCOLLCOUNT_Msk (0xffffffffUL) /*!< EXCCOLLCOUNT (Bitfield-Mask: 0xffffffff) */ +/* ================================================ AEXCESSIVECOLLISIONS_P2 ================================================ */ + #define R_ETHSW_AEXCESSIVECOLLISIONS_P2_EXCCOLLCOUNT_Pos (0UL) /*!< EXCCOLLCOUNT (Bit 0) */ + #define R_ETHSW_AEXCESSIVECOLLISIONS_P2_EXCCOLLCOUNT_Msk (0xffffffffUL) /*!< EXCCOLLCOUNT (Bitfield-Mask: 0xffffffff) */ +/* ================================================ AEXCESSIVECOLLISIONS_P3 ================================================ */ + #define R_ETHSW_AEXCESSIVECOLLISIONS_P3_EXCCOLLCOUNT_Pos (0UL) /*!< EXCCOLLCOUNT (Bit 0) */ + #define R_ETHSW_AEXCESSIVECOLLISIONS_P3_EXCCOLLCOUNT_Msk (0xffffffffUL) /*!< EXCCOLLCOUNT (Bitfield-Mask: 0xffffffff) */ +/* ================================================ ACARRIERSENSEERRORS_P0 ================================================= */ + #define R_ETHSW_ACARRIERSENSEERRORS_P0_CSERRCOUNT_Pos (0UL) /*!< CSERRCOUNT (Bit 0) */ + #define R_ETHSW_ACARRIERSENSEERRORS_P0_CSERRCOUNT_Msk (0xffffffffUL) /*!< CSERRCOUNT (Bitfield-Mask: 0xffffffff) */ +/* ================================================ ACARRIERSENSEERRORS_P1 ================================================= */ + #define R_ETHSW_ACARRIERSENSEERRORS_P1_CSERRCOUNT_Pos (0UL) /*!< CSERRCOUNT (Bit 0) */ + #define R_ETHSW_ACARRIERSENSEERRORS_P1_CSERRCOUNT_Msk (0xffffffffUL) /*!< CSERRCOUNT (Bitfield-Mask: 0xffffffff) */ +/* ================================================ ACARRIERSENSEERRORS_P2 ================================================= */ + #define R_ETHSW_ACARRIERSENSEERRORS_P2_CSERRCOUNT_Pos (0UL) /*!< CSERRCOUNT (Bit 0) */ + #define R_ETHSW_ACARRIERSENSEERRORS_P2_CSERRCOUNT_Msk (0xffffffffUL) /*!< CSERRCOUNT (Bitfield-Mask: 0xffffffff) */ +/* ================================================ ACARRIERSENSEERRORS_P3 ================================================= */ + #define R_ETHSW_ACARRIERSENSEERRORS_P3_CSERRCOUNT_Pos (0UL) /*!< CSERRCOUNT (Bit 0) */ + #define R_ETHSW_ACARRIERSENSEERRORS_P3_CSERRCOUNT_Msk (0xffffffffUL) /*!< CSERRCOUNT (Bitfield-Mask: 0xffffffff) */ +/* ====================================================== P0_QSTMACU0 ====================================================== */ + #define R_ETHSW_P0_QSTMACU0_MACA_Pos (0UL) /*!< MACA (Bit 0) */ + #define R_ETHSW_P0_QSTMACU0_MACA_Msk (0xffffUL) /*!< MACA (Bitfield-Mask: 0xffff) */ + #define R_ETHSW_P0_QSTMACU0_DASA_Pos (16UL) /*!< DASA (Bit 16) */ + #define R_ETHSW_P0_QSTMACU0_DASA_Msk (0x10000UL) /*!< DASA (Bitfield-Mask: 0x01) */ +/* ====================================================== P0_QSTMACU1 ====================================================== */ + #define R_ETHSW_P0_QSTMACU1_MACA_Pos (0UL) /*!< MACA (Bit 0) */ + #define R_ETHSW_P0_QSTMACU1_MACA_Msk (0xffffUL) /*!< MACA (Bitfield-Mask: 0xffff) */ + #define R_ETHSW_P0_QSTMACU1_DASA_Pos (16UL) /*!< DASA (Bit 16) */ + #define R_ETHSW_P0_QSTMACU1_DASA_Msk (0x10000UL) /*!< DASA (Bitfield-Mask: 0x01) */ +/* ====================================================== P0_QSTMACU2 ====================================================== */ + #define R_ETHSW_P0_QSTMACU2_MACA_Pos (0UL) /*!< MACA (Bit 0) */ + #define R_ETHSW_P0_QSTMACU2_MACA_Msk (0xffffUL) /*!< MACA (Bitfield-Mask: 0xffff) */ + #define R_ETHSW_P0_QSTMACU2_DASA_Pos (16UL) /*!< DASA (Bit 16) */ + #define R_ETHSW_P0_QSTMACU2_DASA_Msk (0x10000UL) /*!< DASA (Bitfield-Mask: 0x01) */ +/* ====================================================== P0_QSTMACU3 ====================================================== */ + #define R_ETHSW_P0_QSTMACU3_MACA_Pos (0UL) /*!< MACA (Bit 0) */ + #define R_ETHSW_P0_QSTMACU3_MACA_Msk (0xffffUL) /*!< MACA (Bitfield-Mask: 0xffff) */ + #define R_ETHSW_P0_QSTMACU3_DASA_Pos (16UL) /*!< DASA (Bit 16) */ + #define R_ETHSW_P0_QSTMACU3_DASA_Msk (0x10000UL) /*!< DASA (Bitfield-Mask: 0x01) */ +/* ====================================================== P0_QSTMACU4 ====================================================== */ + #define R_ETHSW_P0_QSTMACU4_MACA_Pos (0UL) /*!< MACA (Bit 0) */ + #define R_ETHSW_P0_QSTMACU4_MACA_Msk (0xffffUL) /*!< MACA (Bitfield-Mask: 0xffff) */ + #define R_ETHSW_P0_QSTMACU4_DASA_Pos (16UL) /*!< DASA (Bit 16) */ + #define R_ETHSW_P0_QSTMACU4_DASA_Msk (0x10000UL) /*!< DASA (Bitfield-Mask: 0x01) */ +/* ====================================================== P0_QSTMACU5 ====================================================== */ + #define R_ETHSW_P0_QSTMACU5_MACA_Pos (0UL) /*!< MACA (Bit 0) */ + #define R_ETHSW_P0_QSTMACU5_MACA_Msk (0xffffUL) /*!< MACA (Bitfield-Mask: 0xffff) */ + #define R_ETHSW_P0_QSTMACU5_DASA_Pos (16UL) /*!< DASA (Bit 16) */ + #define R_ETHSW_P0_QSTMACU5_DASA_Msk (0x10000UL) /*!< DASA (Bitfield-Mask: 0x01) */ +/* ====================================================== P0_QSTMACU6 ====================================================== */ + #define R_ETHSW_P0_QSTMACU6_MACA_Pos (0UL) /*!< MACA (Bit 0) */ + #define R_ETHSW_P0_QSTMACU6_MACA_Msk (0xffffUL) /*!< MACA (Bitfield-Mask: 0xffff) */ + #define R_ETHSW_P0_QSTMACU6_DASA_Pos (16UL) /*!< DASA (Bit 16) */ + #define R_ETHSW_P0_QSTMACU6_DASA_Msk (0x10000UL) /*!< DASA (Bitfield-Mask: 0x01) */ +/* ====================================================== P0_QSTMACU7 ====================================================== */ + #define R_ETHSW_P0_QSTMACU7_MACA_Pos (0UL) /*!< MACA (Bit 0) */ + #define R_ETHSW_P0_QSTMACU7_MACA_Msk (0xffffUL) /*!< MACA (Bitfield-Mask: 0xffff) */ + #define R_ETHSW_P0_QSTMACU7_DASA_Pos (16UL) /*!< DASA (Bit 16) */ + #define R_ETHSW_P0_QSTMACU7_DASA_Msk (0x10000UL) /*!< DASA (Bitfield-Mask: 0x01) */ +/* ====================================================== P0_QSTMACD0 ====================================================== */ + #define R_ETHSW_P0_QSTMACD0_MACA_Pos (0UL) /*!< MACA (Bit 0) */ + #define R_ETHSW_P0_QSTMACD0_MACA_Msk (0xffffffffUL) /*!< MACA (Bitfield-Mask: 0xffffffff) */ +/* ====================================================== P0_QSTMACD1 ====================================================== */ + #define R_ETHSW_P0_QSTMACD1_MACA_Pos (0UL) /*!< MACA (Bit 0) */ + #define R_ETHSW_P0_QSTMACD1_MACA_Msk (0xffffffffUL) /*!< MACA (Bitfield-Mask: 0xffffffff) */ +/* ====================================================== P0_QSTMACD2 ====================================================== */ + #define R_ETHSW_P0_QSTMACD2_MACA_Pos (0UL) /*!< MACA (Bit 0) */ + #define R_ETHSW_P0_QSTMACD2_MACA_Msk (0xffffffffUL) /*!< MACA (Bitfield-Mask: 0xffffffff) */ +/* ====================================================== P0_QSTMACD3 ====================================================== */ + #define R_ETHSW_P0_QSTMACD3_MACA_Pos (0UL) /*!< MACA (Bit 0) */ + #define R_ETHSW_P0_QSTMACD3_MACA_Msk (0xffffffffUL) /*!< MACA (Bitfield-Mask: 0xffffffff) */ +/* ====================================================== P0_QSTMACD4 ====================================================== */ + #define R_ETHSW_P0_QSTMACD4_MACA_Pos (0UL) /*!< MACA (Bit 0) */ + #define R_ETHSW_P0_QSTMACD4_MACA_Msk (0xffffffffUL) /*!< MACA (Bitfield-Mask: 0xffffffff) */ +/* ====================================================== P0_QSTMACD5 ====================================================== */ + #define R_ETHSW_P0_QSTMACD5_MACA_Pos (0UL) /*!< MACA (Bit 0) */ + #define R_ETHSW_P0_QSTMACD5_MACA_Msk (0xffffffffUL) /*!< MACA (Bitfield-Mask: 0xffffffff) */ +/* ====================================================== P0_QSTMACD6 ====================================================== */ + #define R_ETHSW_P0_QSTMACD6_MACA_Pos (0UL) /*!< MACA (Bit 0) */ + #define R_ETHSW_P0_QSTMACD6_MACA_Msk (0xffffffffUL) /*!< MACA (Bitfield-Mask: 0xffffffff) */ +/* ====================================================== P0_QSTMACD7 ====================================================== */ + #define R_ETHSW_P0_QSTMACD7_MACA_Pos (0UL) /*!< MACA (Bit 0) */ + #define R_ETHSW_P0_QSTMACD7_MACA_Msk (0xffffffffUL) /*!< MACA (Bitfield-Mask: 0xffffffff) */ +/* ====================================================== P0_QSTMAMU0 ====================================================== */ + #define R_ETHSW_P0_QSTMAMU0_MACAM_Pos (0UL) /*!< MACAM (Bit 0) */ + #define R_ETHSW_P0_QSTMAMU0_MACAM_Msk (0xffffUL) /*!< MACAM (Bitfield-Mask: 0xffff) */ +/* ====================================================== P0_QSTMAMU1 ====================================================== */ + #define R_ETHSW_P0_QSTMAMU1_MACAM_Pos (0UL) /*!< MACAM (Bit 0) */ + #define R_ETHSW_P0_QSTMAMU1_MACAM_Msk (0xffffUL) /*!< MACAM (Bitfield-Mask: 0xffff) */ +/* ====================================================== P0_QSTMAMU2 ====================================================== */ + #define R_ETHSW_P0_QSTMAMU2_MACAM_Pos (0UL) /*!< MACAM (Bit 0) */ + #define R_ETHSW_P0_QSTMAMU2_MACAM_Msk (0xffffUL) /*!< MACAM (Bitfield-Mask: 0xffff) */ +/* ====================================================== P0_QSTMAMU3 ====================================================== */ + #define R_ETHSW_P0_QSTMAMU3_MACAM_Pos (0UL) /*!< MACAM (Bit 0) */ + #define R_ETHSW_P0_QSTMAMU3_MACAM_Msk (0xffffUL) /*!< MACAM (Bitfield-Mask: 0xffff) */ +/* ====================================================== P0_QSTMAMU4 ====================================================== */ + #define R_ETHSW_P0_QSTMAMU4_MACAM_Pos (0UL) /*!< MACAM (Bit 0) */ + #define R_ETHSW_P0_QSTMAMU4_MACAM_Msk (0xffffUL) /*!< MACAM (Bitfield-Mask: 0xffff) */ +/* ====================================================== P0_QSTMAMU5 ====================================================== */ + #define R_ETHSW_P0_QSTMAMU5_MACAM_Pos (0UL) /*!< MACAM (Bit 0) */ + #define R_ETHSW_P0_QSTMAMU5_MACAM_Msk (0xffffUL) /*!< MACAM (Bitfield-Mask: 0xffff) */ +/* ====================================================== P0_QSTMAMU6 ====================================================== */ + #define R_ETHSW_P0_QSTMAMU6_MACAM_Pos (0UL) /*!< MACAM (Bit 0) */ + #define R_ETHSW_P0_QSTMAMU6_MACAM_Msk (0xffffUL) /*!< MACAM (Bitfield-Mask: 0xffff) */ +/* ====================================================== P0_QSTMAMU7 ====================================================== */ + #define R_ETHSW_P0_QSTMAMU7_MACAM_Pos (0UL) /*!< MACAM (Bit 0) */ + #define R_ETHSW_P0_QSTMAMU7_MACAM_Msk (0xffffUL) /*!< MACAM (Bitfield-Mask: 0xffff) */ +/* ====================================================== P0_QSTMAMD0 ====================================================== */ + #define R_ETHSW_P0_QSTMAMD0_MACAM_Pos (0UL) /*!< MACAM (Bit 0) */ + #define R_ETHSW_P0_QSTMAMD0_MACAM_Msk (0xffffffffUL) /*!< MACAM (Bitfield-Mask: 0xffffffff) */ +/* ====================================================== P0_QSTMAMD1 ====================================================== */ + #define R_ETHSW_P0_QSTMAMD1_MACAM_Pos (0UL) /*!< MACAM (Bit 0) */ + #define R_ETHSW_P0_QSTMAMD1_MACAM_Msk (0xffffffffUL) /*!< MACAM (Bitfield-Mask: 0xffffffff) */ +/* ====================================================== P0_QSTMAMD2 ====================================================== */ + #define R_ETHSW_P0_QSTMAMD2_MACAM_Pos (0UL) /*!< MACAM (Bit 0) */ + #define R_ETHSW_P0_QSTMAMD2_MACAM_Msk (0xffffffffUL) /*!< MACAM (Bitfield-Mask: 0xffffffff) */ +/* ====================================================== P0_QSTMAMD3 ====================================================== */ + #define R_ETHSW_P0_QSTMAMD3_MACAM_Pos (0UL) /*!< MACAM (Bit 0) */ + #define R_ETHSW_P0_QSTMAMD3_MACAM_Msk (0xffffffffUL) /*!< MACAM (Bitfield-Mask: 0xffffffff) */ +/* ====================================================== P0_QSTMAMD4 ====================================================== */ + #define R_ETHSW_P0_QSTMAMD4_MACAM_Pos (0UL) /*!< MACAM (Bit 0) */ + #define R_ETHSW_P0_QSTMAMD4_MACAM_Msk (0xffffffffUL) /*!< MACAM (Bitfield-Mask: 0xffffffff) */ +/* ====================================================== P0_QSTMAMD5 ====================================================== */ + #define R_ETHSW_P0_QSTMAMD5_MACAM_Pos (0UL) /*!< MACAM (Bit 0) */ + #define R_ETHSW_P0_QSTMAMD5_MACAM_Msk (0xffffffffUL) /*!< MACAM (Bitfield-Mask: 0xffffffff) */ +/* ====================================================== P0_QSTMAMD6 ====================================================== */ + #define R_ETHSW_P0_QSTMAMD6_MACAM_Pos (0UL) /*!< MACAM (Bit 0) */ + #define R_ETHSW_P0_QSTMAMD6_MACAM_Msk (0xffffffffUL) /*!< MACAM (Bitfield-Mask: 0xffffffff) */ +/* ====================================================== P0_QSTMAMD7 ====================================================== */ + #define R_ETHSW_P0_QSTMAMD7_MACAM_Pos (0UL) /*!< MACAM (Bit 0) */ + #define R_ETHSW_P0_QSTMAMD7_MACAM_Msk (0xffffffffUL) /*!< MACAM (Bitfield-Mask: 0xffffffff) */ +/* ====================================================== P0_QSFTVL0 ======================================================= */ + #define R_ETHSW_P0_QSFTVL0_VLANID_Pos (0UL) /*!< VLANID (Bit 0) */ + #define R_ETHSW_P0_QSFTVL0_VLANID_Msk (0xfffUL) /*!< VLANID (Bitfield-Mask: 0xfff) */ + #define R_ETHSW_P0_QSFTVL0_DEI_Pos (12UL) /*!< DEI (Bit 12) */ + #define R_ETHSW_P0_QSFTVL0_DEI_Msk (0x1000UL) /*!< DEI (Bitfield-Mask: 0x01) */ + #define R_ETHSW_P0_QSFTVL0_PCP_Pos (13UL) /*!< PCP (Bit 13) */ + #define R_ETHSW_P0_QSFTVL0_PCP_Msk (0xe000UL) /*!< PCP (Bitfield-Mask: 0x07) */ + #define R_ETHSW_P0_QSFTVL0_TAGMD_Pos (16UL) /*!< TAGMD (Bit 16) */ + #define R_ETHSW_P0_QSFTVL0_TAGMD_Msk (0x30000UL) /*!< TAGMD (Bitfield-Mask: 0x03) */ +/* ====================================================== P0_QSFTVL1 ======================================================= */ + #define R_ETHSW_P0_QSFTVL1_VLANID_Pos (0UL) /*!< VLANID (Bit 0) */ + #define R_ETHSW_P0_QSFTVL1_VLANID_Msk (0xfffUL) /*!< VLANID (Bitfield-Mask: 0xfff) */ + #define R_ETHSW_P0_QSFTVL1_DEI_Pos (12UL) /*!< DEI (Bit 12) */ + #define R_ETHSW_P0_QSFTVL1_DEI_Msk (0x1000UL) /*!< DEI (Bitfield-Mask: 0x01) */ + #define R_ETHSW_P0_QSFTVL1_PCP_Pos (13UL) /*!< PCP (Bit 13) */ + #define R_ETHSW_P0_QSFTVL1_PCP_Msk (0xe000UL) /*!< PCP (Bitfield-Mask: 0x07) */ + #define R_ETHSW_P0_QSFTVL1_TAGMD_Pos (16UL) /*!< TAGMD (Bit 16) */ + #define R_ETHSW_P0_QSFTVL1_TAGMD_Msk (0x30000UL) /*!< TAGMD (Bitfield-Mask: 0x03) */ +/* ====================================================== P0_QSFTVL2 ======================================================= */ + #define R_ETHSW_P0_QSFTVL2_VLANID_Pos (0UL) /*!< VLANID (Bit 0) */ + #define R_ETHSW_P0_QSFTVL2_VLANID_Msk (0xfffUL) /*!< VLANID (Bitfield-Mask: 0xfff) */ + #define R_ETHSW_P0_QSFTVL2_DEI_Pos (12UL) /*!< DEI (Bit 12) */ + #define R_ETHSW_P0_QSFTVL2_DEI_Msk (0x1000UL) /*!< DEI (Bitfield-Mask: 0x01) */ + #define R_ETHSW_P0_QSFTVL2_PCP_Pos (13UL) /*!< PCP (Bit 13) */ + #define R_ETHSW_P0_QSFTVL2_PCP_Msk (0xe000UL) /*!< PCP (Bitfield-Mask: 0x07) */ + #define R_ETHSW_P0_QSFTVL2_TAGMD_Pos (16UL) /*!< TAGMD (Bit 16) */ + #define R_ETHSW_P0_QSFTVL2_TAGMD_Msk (0x30000UL) /*!< TAGMD (Bitfield-Mask: 0x03) */ +/* ====================================================== P0_QSFTVL3 ======================================================= */ + #define R_ETHSW_P0_QSFTVL3_VLANID_Pos (0UL) /*!< VLANID (Bit 0) */ + #define R_ETHSW_P0_QSFTVL3_VLANID_Msk (0xfffUL) /*!< VLANID (Bitfield-Mask: 0xfff) */ + #define R_ETHSW_P0_QSFTVL3_DEI_Pos (12UL) /*!< DEI (Bit 12) */ + #define R_ETHSW_P0_QSFTVL3_DEI_Msk (0x1000UL) /*!< DEI (Bitfield-Mask: 0x01) */ + #define R_ETHSW_P0_QSFTVL3_PCP_Pos (13UL) /*!< PCP (Bit 13) */ + #define R_ETHSW_P0_QSFTVL3_PCP_Msk (0xe000UL) /*!< PCP (Bitfield-Mask: 0x07) */ + #define R_ETHSW_P0_QSFTVL3_TAGMD_Pos (16UL) /*!< TAGMD (Bit 16) */ + #define R_ETHSW_P0_QSFTVL3_TAGMD_Msk (0x30000UL) /*!< TAGMD (Bitfield-Mask: 0x03) */ +/* ====================================================== P0_QSFTVL4 ======================================================= */ + #define R_ETHSW_P0_QSFTVL4_VLANID_Pos (0UL) /*!< VLANID (Bit 0) */ + #define R_ETHSW_P0_QSFTVL4_VLANID_Msk (0xfffUL) /*!< VLANID (Bitfield-Mask: 0xfff) */ + #define R_ETHSW_P0_QSFTVL4_DEI_Pos (12UL) /*!< DEI (Bit 12) */ + #define R_ETHSW_P0_QSFTVL4_DEI_Msk (0x1000UL) /*!< DEI (Bitfield-Mask: 0x01) */ + #define R_ETHSW_P0_QSFTVL4_PCP_Pos (13UL) /*!< PCP (Bit 13) */ + #define R_ETHSW_P0_QSFTVL4_PCP_Msk (0xe000UL) /*!< PCP (Bitfield-Mask: 0x07) */ + #define R_ETHSW_P0_QSFTVL4_TAGMD_Pos (16UL) /*!< TAGMD (Bit 16) */ + #define R_ETHSW_P0_QSFTVL4_TAGMD_Msk (0x30000UL) /*!< TAGMD (Bitfield-Mask: 0x03) */ +/* ====================================================== P0_QSFTVL5 ======================================================= */ + #define R_ETHSW_P0_QSFTVL5_VLANID_Pos (0UL) /*!< VLANID (Bit 0) */ + #define R_ETHSW_P0_QSFTVL5_VLANID_Msk (0xfffUL) /*!< VLANID (Bitfield-Mask: 0xfff) */ + #define R_ETHSW_P0_QSFTVL5_DEI_Pos (12UL) /*!< DEI (Bit 12) */ + #define R_ETHSW_P0_QSFTVL5_DEI_Msk (0x1000UL) /*!< DEI (Bitfield-Mask: 0x01) */ + #define R_ETHSW_P0_QSFTVL5_PCP_Pos (13UL) /*!< PCP (Bit 13) */ + #define R_ETHSW_P0_QSFTVL5_PCP_Msk (0xe000UL) /*!< PCP (Bitfield-Mask: 0x07) */ + #define R_ETHSW_P0_QSFTVL5_TAGMD_Pos (16UL) /*!< TAGMD (Bit 16) */ + #define R_ETHSW_P0_QSFTVL5_TAGMD_Msk (0x30000UL) /*!< TAGMD (Bitfield-Mask: 0x03) */ +/* ====================================================== P0_QSFTVL6 ======================================================= */ + #define R_ETHSW_P0_QSFTVL6_VLANID_Pos (0UL) /*!< VLANID (Bit 0) */ + #define R_ETHSW_P0_QSFTVL6_VLANID_Msk (0xfffUL) /*!< VLANID (Bitfield-Mask: 0xfff) */ + #define R_ETHSW_P0_QSFTVL6_DEI_Pos (12UL) /*!< DEI (Bit 12) */ + #define R_ETHSW_P0_QSFTVL6_DEI_Msk (0x1000UL) /*!< DEI (Bitfield-Mask: 0x01) */ + #define R_ETHSW_P0_QSFTVL6_PCP_Pos (13UL) /*!< PCP (Bit 13) */ + #define R_ETHSW_P0_QSFTVL6_PCP_Msk (0xe000UL) /*!< PCP (Bitfield-Mask: 0x07) */ + #define R_ETHSW_P0_QSFTVL6_TAGMD_Pos (16UL) /*!< TAGMD (Bit 16) */ + #define R_ETHSW_P0_QSFTVL6_TAGMD_Msk (0x30000UL) /*!< TAGMD (Bitfield-Mask: 0x03) */ +/* ====================================================== P0_QSFTVL7 ======================================================= */ + #define R_ETHSW_P0_QSFTVL7_VLANID_Pos (0UL) /*!< VLANID (Bit 0) */ + #define R_ETHSW_P0_QSFTVL7_VLANID_Msk (0xfffUL) /*!< VLANID (Bitfield-Mask: 0xfff) */ + #define R_ETHSW_P0_QSFTVL7_DEI_Pos (12UL) /*!< DEI (Bit 12) */ + #define R_ETHSW_P0_QSFTVL7_DEI_Msk (0x1000UL) /*!< DEI (Bitfield-Mask: 0x01) */ + #define R_ETHSW_P0_QSFTVL7_PCP_Pos (13UL) /*!< PCP (Bit 13) */ + #define R_ETHSW_P0_QSFTVL7_PCP_Msk (0xe000UL) /*!< PCP (Bitfield-Mask: 0x07) */ + #define R_ETHSW_P0_QSFTVL7_TAGMD_Pos (16UL) /*!< TAGMD (Bit 16) */ + #define R_ETHSW_P0_QSFTVL7_TAGMD_Msk (0x30000UL) /*!< TAGMD (Bitfield-Mask: 0x03) */ +/* ====================================================== P0_QSFTVLM0 ====================================================== */ + #define R_ETHSW_P0_QSFTVLM0_VLANIDM_Pos (0UL) /*!< VLANIDM (Bit 0) */ + #define R_ETHSW_P0_QSFTVLM0_VLANIDM_Msk (0xfffUL) /*!< VLANIDM (Bitfield-Mask: 0xfff) */ + #define R_ETHSW_P0_QSFTVLM0_DEIM_Pos (12UL) /*!< DEIM (Bit 12) */ + #define R_ETHSW_P0_QSFTVLM0_DEIM_Msk (0x1000UL) /*!< DEIM (Bitfield-Mask: 0x01) */ + #define R_ETHSW_P0_QSFTVLM0_PCPM_Pos (13UL) /*!< PCPM (Bit 13) */ + #define R_ETHSW_P0_QSFTVLM0_PCPM_Msk (0xe000UL) /*!< PCPM (Bitfield-Mask: 0x07) */ +/* ====================================================== P0_QSFTVLM1 ====================================================== */ + #define R_ETHSW_P0_QSFTVLM1_VLANIDM_Pos (0UL) /*!< VLANIDM (Bit 0) */ + #define R_ETHSW_P0_QSFTVLM1_VLANIDM_Msk (0xfffUL) /*!< VLANIDM (Bitfield-Mask: 0xfff) */ + #define R_ETHSW_P0_QSFTVLM1_DEIM_Pos (12UL) /*!< DEIM (Bit 12) */ + #define R_ETHSW_P0_QSFTVLM1_DEIM_Msk (0x1000UL) /*!< DEIM (Bitfield-Mask: 0x01) */ + #define R_ETHSW_P0_QSFTVLM1_PCPM_Pos (13UL) /*!< PCPM (Bit 13) */ + #define R_ETHSW_P0_QSFTVLM1_PCPM_Msk (0xe000UL) /*!< PCPM (Bitfield-Mask: 0x07) */ +/* ====================================================== P0_QSFTVLM2 ====================================================== */ + #define R_ETHSW_P0_QSFTVLM2_VLANIDM_Pos (0UL) /*!< VLANIDM (Bit 0) */ + #define R_ETHSW_P0_QSFTVLM2_VLANIDM_Msk (0xfffUL) /*!< VLANIDM (Bitfield-Mask: 0xfff) */ + #define R_ETHSW_P0_QSFTVLM2_DEIM_Pos (12UL) /*!< DEIM (Bit 12) */ + #define R_ETHSW_P0_QSFTVLM2_DEIM_Msk (0x1000UL) /*!< DEIM (Bitfield-Mask: 0x01) */ + #define R_ETHSW_P0_QSFTVLM2_PCPM_Pos (13UL) /*!< PCPM (Bit 13) */ + #define R_ETHSW_P0_QSFTVLM2_PCPM_Msk (0xe000UL) /*!< PCPM (Bitfield-Mask: 0x07) */ +/* ====================================================== P0_QSFTVLM3 ====================================================== */ + #define R_ETHSW_P0_QSFTVLM3_VLANIDM_Pos (0UL) /*!< VLANIDM (Bit 0) */ + #define R_ETHSW_P0_QSFTVLM3_VLANIDM_Msk (0xfffUL) /*!< VLANIDM (Bitfield-Mask: 0xfff) */ + #define R_ETHSW_P0_QSFTVLM3_DEIM_Pos (12UL) /*!< DEIM (Bit 12) */ + #define R_ETHSW_P0_QSFTVLM3_DEIM_Msk (0x1000UL) /*!< DEIM (Bitfield-Mask: 0x01) */ + #define R_ETHSW_P0_QSFTVLM3_PCPM_Pos (13UL) /*!< PCPM (Bit 13) */ + #define R_ETHSW_P0_QSFTVLM3_PCPM_Msk (0xe000UL) /*!< PCPM (Bitfield-Mask: 0x07) */ +/* ====================================================== P0_QSFTVLM4 ====================================================== */ + #define R_ETHSW_P0_QSFTVLM4_VLANIDM_Pos (0UL) /*!< VLANIDM (Bit 0) */ + #define R_ETHSW_P0_QSFTVLM4_VLANIDM_Msk (0xfffUL) /*!< VLANIDM (Bitfield-Mask: 0xfff) */ + #define R_ETHSW_P0_QSFTVLM4_DEIM_Pos (12UL) /*!< DEIM (Bit 12) */ + #define R_ETHSW_P0_QSFTVLM4_DEIM_Msk (0x1000UL) /*!< DEIM (Bitfield-Mask: 0x01) */ + #define R_ETHSW_P0_QSFTVLM4_PCPM_Pos (13UL) /*!< PCPM (Bit 13) */ + #define R_ETHSW_P0_QSFTVLM4_PCPM_Msk (0xe000UL) /*!< PCPM (Bitfield-Mask: 0x07) */ +/* ====================================================== P0_QSFTVLM5 ====================================================== */ + #define R_ETHSW_P0_QSFTVLM5_VLANIDM_Pos (0UL) /*!< VLANIDM (Bit 0) */ + #define R_ETHSW_P0_QSFTVLM5_VLANIDM_Msk (0xfffUL) /*!< VLANIDM (Bitfield-Mask: 0xfff) */ + #define R_ETHSW_P0_QSFTVLM5_DEIM_Pos (12UL) /*!< DEIM (Bit 12) */ + #define R_ETHSW_P0_QSFTVLM5_DEIM_Msk (0x1000UL) /*!< DEIM (Bitfield-Mask: 0x01) */ + #define R_ETHSW_P0_QSFTVLM5_PCPM_Pos (13UL) /*!< PCPM (Bit 13) */ + #define R_ETHSW_P0_QSFTVLM5_PCPM_Msk (0xe000UL) /*!< PCPM (Bitfield-Mask: 0x07) */ +/* ====================================================== P0_QSFTVLM6 ====================================================== */ + #define R_ETHSW_P0_QSFTVLM6_VLANIDM_Pos (0UL) /*!< VLANIDM (Bit 0) */ + #define R_ETHSW_P0_QSFTVLM6_VLANIDM_Msk (0xfffUL) /*!< VLANIDM (Bitfield-Mask: 0xfff) */ + #define R_ETHSW_P0_QSFTVLM6_DEIM_Pos (12UL) /*!< DEIM (Bit 12) */ + #define R_ETHSW_P0_QSFTVLM6_DEIM_Msk (0x1000UL) /*!< DEIM (Bitfield-Mask: 0x01) */ + #define R_ETHSW_P0_QSFTVLM6_PCPM_Pos (13UL) /*!< PCPM (Bit 13) */ + #define R_ETHSW_P0_QSFTVLM6_PCPM_Msk (0xe000UL) /*!< PCPM (Bitfield-Mask: 0x07) */ +/* ====================================================== P0_QSFTVLM7 ====================================================== */ + #define R_ETHSW_P0_QSFTVLM7_VLANIDM_Pos (0UL) /*!< VLANIDM (Bit 0) */ + #define R_ETHSW_P0_QSFTVLM7_VLANIDM_Msk (0xfffUL) /*!< VLANIDM (Bitfield-Mask: 0xfff) */ + #define R_ETHSW_P0_QSFTVLM7_DEIM_Pos (12UL) /*!< DEIM (Bit 12) */ + #define R_ETHSW_P0_QSFTVLM7_DEIM_Msk (0x1000UL) /*!< DEIM (Bitfield-Mask: 0x01) */ + #define R_ETHSW_P0_QSFTVLM7_PCPM_Pos (13UL) /*!< PCPM (Bit 13) */ + #define R_ETHSW_P0_QSFTVLM7_PCPM_Msk (0xe000UL) /*!< PCPM (Bitfield-Mask: 0x07) */ +/* ====================================================== P0_QSFTBL0 ======================================================= */ + #define R_ETHSW_P0_QSFTBL0_QSTE_Pos (0UL) /*!< QSTE (Bit 0) */ + #define R_ETHSW_P0_QSFTBL0_QSTE_Msk (0x1UL) /*!< QSTE (Bitfield-Mask: 0x01) */ + #define R_ETHSW_P0_QSFTBL0_GAID_Pos (4UL) /*!< GAID (Bit 4) */ + #define R_ETHSW_P0_QSFTBL0_GAID_Msk (0x70UL) /*!< GAID (Bitfield-Mask: 0x07) */ + #define R_ETHSW_P0_QSFTBL0_GAIDV_Pos (7UL) /*!< GAIDV (Bit 7) */ + #define R_ETHSW_P0_QSFTBL0_GAIDV_Msk (0x80UL) /*!< GAIDV (Bitfield-Mask: 0x01) */ + #define R_ETHSW_P0_QSFTBL0_MEID_Pos (8UL) /*!< MEID (Bit 8) */ + #define R_ETHSW_P0_QSFTBL0_MEID_Msk (0x700UL) /*!< MEID (Bitfield-Mask: 0x07) */ + #define R_ETHSW_P0_QSFTBL0_MEIDV_Pos (12UL) /*!< MEIDV (Bit 12) */ + #define R_ETHSW_P0_QSFTBL0_MEIDV_Msk (0x1000UL) /*!< MEIDV (Bitfield-Mask: 0x01) */ + #define R_ETHSW_P0_QSFTBL0_MSDU_Pos (16UL) /*!< MSDU (Bit 16) */ + #define R_ETHSW_P0_QSFTBL0_MSDU_Msk (0x7ff0000UL) /*!< MSDU (Bitfield-Mask: 0x7ff) */ + #define R_ETHSW_P0_QSFTBL0_MSDUE_Pos (27UL) /*!< MSDUE (Bit 27) */ + #define R_ETHSW_P0_QSFTBL0_MSDUE_Msk (0x8000000UL) /*!< MSDUE (Bitfield-Mask: 0x01) */ + #define R_ETHSW_P0_QSFTBL0_QSMSM_Pos (28UL) /*!< QSMSM (Bit 28) */ + #define R_ETHSW_P0_QSFTBL0_QSMSM_Msk (0x10000000UL) /*!< QSMSM (Bitfield-Mask: 0x01) */ +/* ====================================================== P0_QSFTBL1 ======================================================= */ + #define R_ETHSW_P0_QSFTBL1_QSTE_Pos (0UL) /*!< QSTE (Bit 0) */ + #define R_ETHSW_P0_QSFTBL1_QSTE_Msk (0x1UL) /*!< QSTE (Bitfield-Mask: 0x01) */ + #define R_ETHSW_P0_QSFTBL1_GAID_Pos (4UL) /*!< GAID (Bit 4) */ + #define R_ETHSW_P0_QSFTBL1_GAID_Msk (0x70UL) /*!< GAID (Bitfield-Mask: 0x07) */ + #define R_ETHSW_P0_QSFTBL1_GAIDV_Pos (7UL) /*!< GAIDV (Bit 7) */ + #define R_ETHSW_P0_QSFTBL1_GAIDV_Msk (0x80UL) /*!< GAIDV (Bitfield-Mask: 0x01) */ + #define R_ETHSW_P0_QSFTBL1_MEID_Pos (8UL) /*!< MEID (Bit 8) */ + #define R_ETHSW_P0_QSFTBL1_MEID_Msk (0x700UL) /*!< MEID (Bitfield-Mask: 0x07) */ + #define R_ETHSW_P0_QSFTBL1_MEIDV_Pos (12UL) /*!< MEIDV (Bit 12) */ + #define R_ETHSW_P0_QSFTBL1_MEIDV_Msk (0x1000UL) /*!< MEIDV (Bitfield-Mask: 0x01) */ + #define R_ETHSW_P0_QSFTBL1_MSDU_Pos (16UL) /*!< MSDU (Bit 16) */ + #define R_ETHSW_P0_QSFTBL1_MSDU_Msk (0x7ff0000UL) /*!< MSDU (Bitfield-Mask: 0x7ff) */ + #define R_ETHSW_P0_QSFTBL1_MSDUE_Pos (27UL) /*!< MSDUE (Bit 27) */ + #define R_ETHSW_P0_QSFTBL1_MSDUE_Msk (0x8000000UL) /*!< MSDUE (Bitfield-Mask: 0x01) */ + #define R_ETHSW_P0_QSFTBL1_QSMSM_Pos (28UL) /*!< QSMSM (Bit 28) */ + #define R_ETHSW_P0_QSFTBL1_QSMSM_Msk (0x10000000UL) /*!< QSMSM (Bitfield-Mask: 0x01) */ +/* ====================================================== P0_QSFTBL2 ======================================================= */ + #define R_ETHSW_P0_QSFTBL2_QSTE_Pos (0UL) /*!< QSTE (Bit 0) */ + #define R_ETHSW_P0_QSFTBL2_QSTE_Msk (0x1UL) /*!< QSTE (Bitfield-Mask: 0x01) */ + #define R_ETHSW_P0_QSFTBL2_GAID_Pos (4UL) /*!< GAID (Bit 4) */ + #define R_ETHSW_P0_QSFTBL2_GAID_Msk (0x70UL) /*!< GAID (Bitfield-Mask: 0x07) */ + #define R_ETHSW_P0_QSFTBL2_GAIDV_Pos (7UL) /*!< GAIDV (Bit 7) */ + #define R_ETHSW_P0_QSFTBL2_GAIDV_Msk (0x80UL) /*!< GAIDV (Bitfield-Mask: 0x01) */ + #define R_ETHSW_P0_QSFTBL2_MEID_Pos (8UL) /*!< MEID (Bit 8) */ + #define R_ETHSW_P0_QSFTBL2_MEID_Msk (0x700UL) /*!< MEID (Bitfield-Mask: 0x07) */ + #define R_ETHSW_P0_QSFTBL2_MEIDV_Pos (12UL) /*!< MEIDV (Bit 12) */ + #define R_ETHSW_P0_QSFTBL2_MEIDV_Msk (0x1000UL) /*!< MEIDV (Bitfield-Mask: 0x01) */ + #define R_ETHSW_P0_QSFTBL2_MSDU_Pos (16UL) /*!< MSDU (Bit 16) */ + #define R_ETHSW_P0_QSFTBL2_MSDU_Msk (0x7ff0000UL) /*!< MSDU (Bitfield-Mask: 0x7ff) */ + #define R_ETHSW_P0_QSFTBL2_MSDUE_Pos (27UL) /*!< MSDUE (Bit 27) */ + #define R_ETHSW_P0_QSFTBL2_MSDUE_Msk (0x8000000UL) /*!< MSDUE (Bitfield-Mask: 0x01) */ + #define R_ETHSW_P0_QSFTBL2_QSMSM_Pos (28UL) /*!< QSMSM (Bit 28) */ + #define R_ETHSW_P0_QSFTBL2_QSMSM_Msk (0x10000000UL) /*!< QSMSM (Bitfield-Mask: 0x01) */ +/* ====================================================== P0_QSFTBL3 ======================================================= */ + #define R_ETHSW_P0_QSFTBL3_QSTE_Pos (0UL) /*!< QSTE (Bit 0) */ + #define R_ETHSW_P0_QSFTBL3_QSTE_Msk (0x1UL) /*!< QSTE (Bitfield-Mask: 0x01) */ + #define R_ETHSW_P0_QSFTBL3_GAID_Pos (4UL) /*!< GAID (Bit 4) */ + #define R_ETHSW_P0_QSFTBL3_GAID_Msk (0x70UL) /*!< GAID (Bitfield-Mask: 0x07) */ + #define R_ETHSW_P0_QSFTBL3_GAIDV_Pos (7UL) /*!< GAIDV (Bit 7) */ + #define R_ETHSW_P0_QSFTBL3_GAIDV_Msk (0x80UL) /*!< GAIDV (Bitfield-Mask: 0x01) */ + #define R_ETHSW_P0_QSFTBL3_MEID_Pos (8UL) /*!< MEID (Bit 8) */ + #define R_ETHSW_P0_QSFTBL3_MEID_Msk (0x700UL) /*!< MEID (Bitfield-Mask: 0x07) */ + #define R_ETHSW_P0_QSFTBL3_MEIDV_Pos (12UL) /*!< MEIDV (Bit 12) */ + #define R_ETHSW_P0_QSFTBL3_MEIDV_Msk (0x1000UL) /*!< MEIDV (Bitfield-Mask: 0x01) */ + #define R_ETHSW_P0_QSFTBL3_MSDU_Pos (16UL) /*!< MSDU (Bit 16) */ + #define R_ETHSW_P0_QSFTBL3_MSDU_Msk (0x7ff0000UL) /*!< MSDU (Bitfield-Mask: 0x7ff) */ + #define R_ETHSW_P0_QSFTBL3_MSDUE_Pos (27UL) /*!< MSDUE (Bit 27) */ + #define R_ETHSW_P0_QSFTBL3_MSDUE_Msk (0x8000000UL) /*!< MSDUE (Bitfield-Mask: 0x01) */ + #define R_ETHSW_P0_QSFTBL3_QSMSM_Pos (28UL) /*!< QSMSM (Bit 28) */ + #define R_ETHSW_P0_QSFTBL3_QSMSM_Msk (0x10000000UL) /*!< QSMSM (Bitfield-Mask: 0x01) */ +/* ====================================================== P0_QSFTBL4 ======================================================= */ + #define R_ETHSW_P0_QSFTBL4_QSTE_Pos (0UL) /*!< QSTE (Bit 0) */ + #define R_ETHSW_P0_QSFTBL4_QSTE_Msk (0x1UL) /*!< QSTE (Bitfield-Mask: 0x01) */ + #define R_ETHSW_P0_QSFTBL4_GAID_Pos (4UL) /*!< GAID (Bit 4) */ + #define R_ETHSW_P0_QSFTBL4_GAID_Msk (0x70UL) /*!< GAID (Bitfield-Mask: 0x07) */ + #define R_ETHSW_P0_QSFTBL4_GAIDV_Pos (7UL) /*!< GAIDV (Bit 7) */ + #define R_ETHSW_P0_QSFTBL4_GAIDV_Msk (0x80UL) /*!< GAIDV (Bitfield-Mask: 0x01) */ + #define R_ETHSW_P0_QSFTBL4_MEID_Pos (8UL) /*!< MEID (Bit 8) */ + #define R_ETHSW_P0_QSFTBL4_MEID_Msk (0x700UL) /*!< MEID (Bitfield-Mask: 0x07) */ + #define R_ETHSW_P0_QSFTBL4_MEIDV_Pos (12UL) /*!< MEIDV (Bit 12) */ + #define R_ETHSW_P0_QSFTBL4_MEIDV_Msk (0x1000UL) /*!< MEIDV (Bitfield-Mask: 0x01) */ + #define R_ETHSW_P0_QSFTBL4_MSDU_Pos (16UL) /*!< MSDU (Bit 16) */ + #define R_ETHSW_P0_QSFTBL4_MSDU_Msk (0x7ff0000UL) /*!< MSDU (Bitfield-Mask: 0x7ff) */ + #define R_ETHSW_P0_QSFTBL4_MSDUE_Pos (27UL) /*!< MSDUE (Bit 27) */ + #define R_ETHSW_P0_QSFTBL4_MSDUE_Msk (0x8000000UL) /*!< MSDUE (Bitfield-Mask: 0x01) */ + #define R_ETHSW_P0_QSFTBL4_QSMSM_Pos (28UL) /*!< QSMSM (Bit 28) */ + #define R_ETHSW_P0_QSFTBL4_QSMSM_Msk (0x10000000UL) /*!< QSMSM (Bitfield-Mask: 0x01) */ +/* ====================================================== P0_QSFTBL5 ======================================================= */ + #define R_ETHSW_P0_QSFTBL5_QSTE_Pos (0UL) /*!< QSTE (Bit 0) */ + #define R_ETHSW_P0_QSFTBL5_QSTE_Msk (0x1UL) /*!< QSTE (Bitfield-Mask: 0x01) */ + #define R_ETHSW_P0_QSFTBL5_GAID_Pos (4UL) /*!< GAID (Bit 4) */ + #define R_ETHSW_P0_QSFTBL5_GAID_Msk (0x70UL) /*!< GAID (Bitfield-Mask: 0x07) */ + #define R_ETHSW_P0_QSFTBL5_GAIDV_Pos (7UL) /*!< GAIDV (Bit 7) */ + #define R_ETHSW_P0_QSFTBL5_GAIDV_Msk (0x80UL) /*!< GAIDV (Bitfield-Mask: 0x01) */ + #define R_ETHSW_P0_QSFTBL5_MEID_Pos (8UL) /*!< MEID (Bit 8) */ + #define R_ETHSW_P0_QSFTBL5_MEID_Msk (0x700UL) /*!< MEID (Bitfield-Mask: 0x07) */ + #define R_ETHSW_P0_QSFTBL5_MEIDV_Pos (12UL) /*!< MEIDV (Bit 12) */ + #define R_ETHSW_P0_QSFTBL5_MEIDV_Msk (0x1000UL) /*!< MEIDV (Bitfield-Mask: 0x01) */ + #define R_ETHSW_P0_QSFTBL5_MSDU_Pos (16UL) /*!< MSDU (Bit 16) */ + #define R_ETHSW_P0_QSFTBL5_MSDU_Msk (0x7ff0000UL) /*!< MSDU (Bitfield-Mask: 0x7ff) */ + #define R_ETHSW_P0_QSFTBL5_MSDUE_Pos (27UL) /*!< MSDUE (Bit 27) */ + #define R_ETHSW_P0_QSFTBL5_MSDUE_Msk (0x8000000UL) /*!< MSDUE (Bitfield-Mask: 0x01) */ + #define R_ETHSW_P0_QSFTBL5_QSMSM_Pos (28UL) /*!< QSMSM (Bit 28) */ + #define R_ETHSW_P0_QSFTBL5_QSMSM_Msk (0x10000000UL) /*!< QSMSM (Bitfield-Mask: 0x01) */ +/* ====================================================== P0_QSFTBL6 ======================================================= */ + #define R_ETHSW_P0_QSFTBL6_QSTE_Pos (0UL) /*!< QSTE (Bit 0) */ + #define R_ETHSW_P0_QSFTBL6_QSTE_Msk (0x1UL) /*!< QSTE (Bitfield-Mask: 0x01) */ + #define R_ETHSW_P0_QSFTBL6_GAID_Pos (4UL) /*!< GAID (Bit 4) */ + #define R_ETHSW_P0_QSFTBL6_GAID_Msk (0x70UL) /*!< GAID (Bitfield-Mask: 0x07) */ + #define R_ETHSW_P0_QSFTBL6_GAIDV_Pos (7UL) /*!< GAIDV (Bit 7) */ + #define R_ETHSW_P0_QSFTBL6_GAIDV_Msk (0x80UL) /*!< GAIDV (Bitfield-Mask: 0x01) */ + #define R_ETHSW_P0_QSFTBL6_MEID_Pos (8UL) /*!< MEID (Bit 8) */ + #define R_ETHSW_P0_QSFTBL6_MEID_Msk (0x700UL) /*!< MEID (Bitfield-Mask: 0x07) */ + #define R_ETHSW_P0_QSFTBL6_MEIDV_Pos (12UL) /*!< MEIDV (Bit 12) */ + #define R_ETHSW_P0_QSFTBL6_MEIDV_Msk (0x1000UL) /*!< MEIDV (Bitfield-Mask: 0x01) */ + #define R_ETHSW_P0_QSFTBL6_MSDU_Pos (16UL) /*!< MSDU (Bit 16) */ + #define R_ETHSW_P0_QSFTBL6_MSDU_Msk (0x7ff0000UL) /*!< MSDU (Bitfield-Mask: 0x7ff) */ + #define R_ETHSW_P0_QSFTBL6_MSDUE_Pos (27UL) /*!< MSDUE (Bit 27) */ + #define R_ETHSW_P0_QSFTBL6_MSDUE_Msk (0x8000000UL) /*!< MSDUE (Bitfield-Mask: 0x01) */ + #define R_ETHSW_P0_QSFTBL6_QSMSM_Pos (28UL) /*!< QSMSM (Bit 28) */ + #define R_ETHSW_P0_QSFTBL6_QSMSM_Msk (0x10000000UL) /*!< QSMSM (Bitfield-Mask: 0x01) */ +/* ====================================================== P0_QSFTBL7 ======================================================= */ + #define R_ETHSW_P0_QSFTBL7_QSTE_Pos (0UL) /*!< QSTE (Bit 0) */ + #define R_ETHSW_P0_QSFTBL7_QSTE_Msk (0x1UL) /*!< QSTE (Bitfield-Mask: 0x01) */ + #define R_ETHSW_P0_QSFTBL7_GAID_Pos (4UL) /*!< GAID (Bit 4) */ + #define R_ETHSW_P0_QSFTBL7_GAID_Msk (0x70UL) /*!< GAID (Bitfield-Mask: 0x07) */ + #define R_ETHSW_P0_QSFTBL7_GAIDV_Pos (7UL) /*!< GAIDV (Bit 7) */ + #define R_ETHSW_P0_QSFTBL7_GAIDV_Msk (0x80UL) /*!< GAIDV (Bitfield-Mask: 0x01) */ + #define R_ETHSW_P0_QSFTBL7_MEID_Pos (8UL) /*!< MEID (Bit 8) */ + #define R_ETHSW_P0_QSFTBL7_MEID_Msk (0x700UL) /*!< MEID (Bitfield-Mask: 0x07) */ + #define R_ETHSW_P0_QSFTBL7_MEIDV_Pos (12UL) /*!< MEIDV (Bit 12) */ + #define R_ETHSW_P0_QSFTBL7_MEIDV_Msk (0x1000UL) /*!< MEIDV (Bitfield-Mask: 0x01) */ + #define R_ETHSW_P0_QSFTBL7_MSDU_Pos (16UL) /*!< MSDU (Bit 16) */ + #define R_ETHSW_P0_QSFTBL7_MSDU_Msk (0x7ff0000UL) /*!< MSDU (Bitfield-Mask: 0x7ff) */ + #define R_ETHSW_P0_QSFTBL7_MSDUE_Pos (27UL) /*!< MSDUE (Bit 27) */ + #define R_ETHSW_P0_QSFTBL7_MSDUE_Msk (0x8000000UL) /*!< MSDUE (Bitfield-Mask: 0x01) */ + #define R_ETHSW_P0_QSFTBL7_QSMSM_Pos (28UL) /*!< QSMSM (Bit 28) */ + #define R_ETHSW_P0_QSFTBL7_QSMSM_Msk (0x10000000UL) /*!< QSMSM (Bitfield-Mask: 0x01) */ +/* ======================================================= P0_QSMFC0 ======================================================= */ + #define R_ETHSW_P0_QSMFC0_QSMFC_Pos (0UL) /*!< QSMFC (Bit 0) */ + #define R_ETHSW_P0_QSMFC0_QSMFC_Msk (0xffffUL) /*!< QSMFC (Bitfield-Mask: 0xffff) */ +/* ======================================================= P0_QSMFC1 ======================================================= */ + #define R_ETHSW_P0_QSMFC1_QSMFC_Pos (0UL) /*!< QSMFC (Bit 0) */ + #define R_ETHSW_P0_QSMFC1_QSMFC_Msk (0xffffUL) /*!< QSMFC (Bitfield-Mask: 0xffff) */ +/* ======================================================= P0_QSMFC2 ======================================================= */ + #define R_ETHSW_P0_QSMFC2_QSMFC_Pos (0UL) /*!< QSMFC (Bit 0) */ + #define R_ETHSW_P0_QSMFC2_QSMFC_Msk (0xffffUL) /*!< QSMFC (Bitfield-Mask: 0xffff) */ +/* ======================================================= P0_QSMFC3 ======================================================= */ + #define R_ETHSW_P0_QSMFC3_QSMFC_Pos (0UL) /*!< QSMFC (Bit 0) */ + #define R_ETHSW_P0_QSMFC3_QSMFC_Msk (0xffffUL) /*!< QSMFC (Bitfield-Mask: 0xffff) */ +/* ======================================================= P0_QSMFC4 ======================================================= */ + #define R_ETHSW_P0_QSMFC4_QSMFC_Pos (0UL) /*!< QSMFC (Bit 0) */ + #define R_ETHSW_P0_QSMFC4_QSMFC_Msk (0xffffUL) /*!< QSMFC (Bitfield-Mask: 0xffff) */ +/* ======================================================= P0_QSMFC5 ======================================================= */ + #define R_ETHSW_P0_QSMFC5_QSMFC_Pos (0UL) /*!< QSMFC (Bit 0) */ + #define R_ETHSW_P0_QSMFC5_QSMFC_Msk (0xffffUL) /*!< QSMFC (Bitfield-Mask: 0xffff) */ +/* ======================================================= P0_QSMFC6 ======================================================= */ + #define R_ETHSW_P0_QSMFC6_QSMFC_Pos (0UL) /*!< QSMFC (Bit 0) */ + #define R_ETHSW_P0_QSMFC6_QSMFC_Msk (0xffffUL) /*!< QSMFC (Bitfield-Mask: 0xffff) */ +/* ======================================================= P0_QSMFC7 ======================================================= */ + #define R_ETHSW_P0_QSMFC7_QSMFC_Pos (0UL) /*!< QSMFC (Bit 0) */ + #define R_ETHSW_P0_QSMFC7_QSMFC_Msk (0xffffUL) /*!< QSMFC (Bitfield-Mask: 0xffff) */ +/* ====================================================== P0_QMSPPC0 ======================================================= */ + #define R_ETHSW_P0_QMSPPC0_QMSPPC_Pos (0UL) /*!< QMSPPC (Bit 0) */ + #define R_ETHSW_P0_QMSPPC0_QMSPPC_Msk (0xffffUL) /*!< QMSPPC (Bitfield-Mask: 0xffff) */ +/* ====================================================== P0_QMSPPC1 ======================================================= */ + #define R_ETHSW_P0_QMSPPC1_QMSPPC_Pos (0UL) /*!< QMSPPC (Bit 0) */ + #define R_ETHSW_P0_QMSPPC1_QMSPPC_Msk (0xffffUL) /*!< QMSPPC (Bitfield-Mask: 0xffff) */ +/* ====================================================== P0_QMSPPC2 ======================================================= */ + #define R_ETHSW_P0_QMSPPC2_QMSPPC_Pos (0UL) /*!< QMSPPC (Bit 0) */ + #define R_ETHSW_P0_QMSPPC2_QMSPPC_Msk (0xffffUL) /*!< QMSPPC (Bitfield-Mask: 0xffff) */ +/* ====================================================== P0_QMSPPC3 ======================================================= */ + #define R_ETHSW_P0_QMSPPC3_QMSPPC_Pos (0UL) /*!< QMSPPC (Bit 0) */ + #define R_ETHSW_P0_QMSPPC3_QMSPPC_Msk (0xffffUL) /*!< QMSPPC (Bitfield-Mask: 0xffff) */ +/* ====================================================== P0_QMSPPC4 ======================================================= */ + #define R_ETHSW_P0_QMSPPC4_QMSPPC_Pos (0UL) /*!< QMSPPC (Bit 0) */ + #define R_ETHSW_P0_QMSPPC4_QMSPPC_Msk (0xffffUL) /*!< QMSPPC (Bitfield-Mask: 0xffff) */ +/* ====================================================== P0_QMSPPC5 ======================================================= */ + #define R_ETHSW_P0_QMSPPC5_QMSPPC_Pos (0UL) /*!< QMSPPC (Bit 0) */ + #define R_ETHSW_P0_QMSPPC5_QMSPPC_Msk (0xffffUL) /*!< QMSPPC (Bitfield-Mask: 0xffff) */ +/* ====================================================== P0_QMSPPC6 ======================================================= */ + #define R_ETHSW_P0_QMSPPC6_QMSPPC_Pos (0UL) /*!< QMSPPC (Bit 0) */ + #define R_ETHSW_P0_QMSPPC6_QMSPPC_Msk (0xffffUL) /*!< QMSPPC (Bitfield-Mask: 0xffff) */ +/* ====================================================== P0_QMSPPC7 ======================================================= */ + #define R_ETHSW_P0_QMSPPC7_QMSPPC_Pos (0UL) /*!< QMSPPC (Bit 0) */ + #define R_ETHSW_P0_QMSPPC7_QMSPPC_Msk (0xffffUL) /*!< QMSPPC (Bitfield-Mask: 0xffff) */ +/* ====================================================== P0_QMSRPC0 ======================================================= */ + #define R_ETHSW_P0_QMSRPC0_QMSRPC_Pos (0UL) /*!< QMSRPC (Bit 0) */ + #define R_ETHSW_P0_QMSRPC0_QMSRPC_Msk (0xffffUL) /*!< QMSRPC (Bitfield-Mask: 0xffff) */ +/* ====================================================== P0_QMSRPC1 ======================================================= */ + #define R_ETHSW_P0_QMSRPC1_QMSRPC_Pos (0UL) /*!< QMSRPC (Bit 0) */ + #define R_ETHSW_P0_QMSRPC1_QMSRPC_Msk (0xffffUL) /*!< QMSRPC (Bitfield-Mask: 0xffff) */ +/* ====================================================== P0_QMSRPC2 ======================================================= */ + #define R_ETHSW_P0_QMSRPC2_QMSRPC_Pos (0UL) /*!< QMSRPC (Bit 0) */ + #define R_ETHSW_P0_QMSRPC2_QMSRPC_Msk (0xffffUL) /*!< QMSRPC (Bitfield-Mask: 0xffff) */ +/* ====================================================== P0_QMSRPC3 ======================================================= */ + #define R_ETHSW_P0_QMSRPC3_QMSRPC_Pos (0UL) /*!< QMSRPC (Bit 0) */ + #define R_ETHSW_P0_QMSRPC3_QMSRPC_Msk (0xffffUL) /*!< QMSRPC (Bitfield-Mask: 0xffff) */ +/* ====================================================== P0_QMSRPC4 ======================================================= */ + #define R_ETHSW_P0_QMSRPC4_QMSRPC_Pos (0UL) /*!< QMSRPC (Bit 0) */ + #define R_ETHSW_P0_QMSRPC4_QMSRPC_Msk (0xffffUL) /*!< QMSRPC (Bitfield-Mask: 0xffff) */ +/* ====================================================== P0_QMSRPC5 ======================================================= */ + #define R_ETHSW_P0_QMSRPC5_QMSRPC_Pos (0UL) /*!< QMSRPC (Bit 0) */ + #define R_ETHSW_P0_QMSRPC5_QMSRPC_Msk (0xffffUL) /*!< QMSRPC (Bitfield-Mask: 0xffff) */ +/* ====================================================== P0_QMSRPC6 ======================================================= */ + #define R_ETHSW_P0_QMSRPC6_QMSRPC_Pos (0UL) /*!< QMSRPC (Bit 0) */ + #define R_ETHSW_P0_QMSRPC6_QMSRPC_Msk (0xffffUL) /*!< QMSRPC (Bitfield-Mask: 0xffff) */ +/* ====================================================== P0_QMSRPC7 ======================================================= */ + #define R_ETHSW_P0_QMSRPC7_QMSRPC_Pos (0UL) /*!< QMSRPC (Bit 0) */ + #define R_ETHSW_P0_QMSRPC7_QMSRPC_Msk (0xffffUL) /*!< QMSRPC (Bitfield-Mask: 0xffff) */ +/* ======================================================= P0_QSEIS ======================================================== */ + #define R_ETHSW_P0_QSEIS_QSMOIS_Pos (0UL) /*!< QSMOIS (Bit 0) */ + #define R_ETHSW_P0_QSEIS_QSMOIS_Msk (0xffUL) /*!< QSMOIS (Bitfield-Mask: 0xff) */ +/* ======================================================= P1_QSEIS ======================================================== */ + #define R_ETHSW_P1_QSEIS_QSMOIS_Pos (0UL) /*!< QSMOIS (Bit 0) */ + #define R_ETHSW_P1_QSEIS_QSMOIS_Msk (0xffUL) /*!< QSMOIS (Bitfield-Mask: 0xff) */ +/* ======================================================= P2_QSEIS ======================================================== */ + #define R_ETHSW_P2_QSEIS_QSMOIS_Pos (0UL) /*!< QSMOIS (Bit 0) */ + #define R_ETHSW_P2_QSEIS_QSMOIS_Msk (0xffUL) /*!< QSMOIS (Bitfield-Mask: 0xff) */ +/* ======================================================= P0_QSEIE ======================================================== */ + #define R_ETHSW_P0_QSEIE_QSMOIE_Pos (0UL) /*!< QSMOIE (Bit 0) */ + #define R_ETHSW_P0_QSEIE_QSMOIE_Msk (0xffUL) /*!< QSMOIE (Bitfield-Mask: 0xff) */ +/* ======================================================= P1_QSEIE ======================================================== */ + #define R_ETHSW_P1_QSEIE_QSMOIE_Pos (0UL) /*!< QSMOIE (Bit 0) */ + #define R_ETHSW_P1_QSEIE_QSMOIE_Msk (0xffUL) /*!< QSMOIE (Bitfield-Mask: 0xff) */ +/* ======================================================= P2_QSEIE ======================================================== */ + #define R_ETHSW_P2_QSEIE_QSMOIE_Pos (0UL) /*!< QSMOIE (Bit 0) */ + #define R_ETHSW_P2_QSEIE_QSMOIE_Msk (0xffUL) /*!< QSMOIE (Bitfield-Mask: 0xff) */ +/* ======================================================= P0_QSEID ======================================================== */ + #define R_ETHSW_P0_QSEID_QSMOID_Pos (0UL) /*!< QSMOID (Bit 0) */ + #define R_ETHSW_P0_QSEID_QSMOID_Msk (0xffUL) /*!< QSMOID (Bitfield-Mask: 0xff) */ +/* ======================================================= P1_QSEID ======================================================== */ + #define R_ETHSW_P1_QSEID_QSMOID_Pos (0UL) /*!< QSMOID (Bit 0) */ + #define R_ETHSW_P1_QSEID_QSMOID_Msk (0xffUL) /*!< QSMOID (Bitfield-Mask: 0xff) */ +/* ======================================================= P2_QSEID ======================================================== */ + #define R_ETHSW_P2_QSEID_QSMOID_Pos (0UL) /*!< QSMOID (Bit 0) */ + #define R_ETHSW_P2_QSEID_QSMOID_Msk (0xffUL) /*!< QSMOID (Bitfield-Mask: 0xff) */ +/* ======================================================= P0_QGMOD ======================================================== */ + #define R_ETHSW_P0_QGMOD_QGMOD_Pos (0UL) /*!< QGMOD (Bit 0) */ + #define R_ETHSW_P0_QGMOD_QGMOD_Msk (0xffUL) /*!< QGMOD (Bitfield-Mask: 0xff) */ +/* ======================================================= P1_QGMOD ======================================================== */ + #define R_ETHSW_P1_QGMOD_QGMOD_Pos (0UL) /*!< QGMOD (Bit 0) */ + #define R_ETHSW_P1_QGMOD_QGMOD_Msk (0xffUL) /*!< QGMOD (Bitfield-Mask: 0xff) */ +/* ======================================================= P2_QGMOD ======================================================== */ + #define R_ETHSW_P2_QGMOD_QGMOD_Pos (0UL) /*!< QGMOD (Bit 0) */ + #define R_ETHSW_P2_QGMOD_QGMOD_Msk (0xffUL) /*!< QGMOD (Bitfield-Mask: 0xff) */ +/* ======================================================= P0_QGPPC ======================================================== */ + #define R_ETHSW_P0_QGPPC_QGPPC_Pos (0UL) /*!< QGPPC (Bit 0) */ + #define R_ETHSW_P0_QGPPC_QGPPC_Msk (0xffffUL) /*!< QGPPC (Bitfield-Mask: 0xffff) */ +/* ======================================================= P1_QGPPC ======================================================== */ + #define R_ETHSW_P1_QGPPC_QGPPC_Pos (0UL) /*!< QGPPC (Bit 0) */ + #define R_ETHSW_P1_QGPPC_QGPPC_Msk (0xffffUL) /*!< QGPPC (Bitfield-Mask: 0xffff) */ +/* ======================================================= P2_QGPPC ======================================================== */ + #define R_ETHSW_P2_QGPPC_QGPPC_Pos (0UL) /*!< QGPPC (Bit 0) */ + #define R_ETHSW_P2_QGPPC_QGPPC_Msk (0xffffUL) /*!< QGPPC (Bitfield-Mask: 0xffff) */ +/* ======================================================= P0_QGDPC0 ======================================================= */ + #define R_ETHSW_P0_QGDPC0_QGDPC_Pos (0UL) /*!< QGDPC (Bit 0) */ + #define R_ETHSW_P0_QGDPC0_QGDPC_Msk (0xffffUL) /*!< QGDPC (Bitfield-Mask: 0xffff) */ +/* ======================================================= P0_QGDPC1 ======================================================= */ + #define R_ETHSW_P0_QGDPC1_QGDPC_Pos (0UL) /*!< QGDPC (Bit 0) */ + #define R_ETHSW_P0_QGDPC1_QGDPC_Msk (0xffffUL) /*!< QGDPC (Bitfield-Mask: 0xffff) */ +/* ======================================================= P0_QGDPC2 ======================================================= */ + #define R_ETHSW_P0_QGDPC2_QGDPC_Pos (0UL) /*!< QGDPC (Bit 0) */ + #define R_ETHSW_P0_QGDPC2_QGDPC_Msk (0xffffUL) /*!< QGDPC (Bitfield-Mask: 0xffff) */ +/* ======================================================= P0_QGDPC3 ======================================================= */ + #define R_ETHSW_P0_QGDPC3_QGDPC_Pos (0UL) /*!< QGDPC (Bit 0) */ + #define R_ETHSW_P0_QGDPC3_QGDPC_Msk (0xffffUL) /*!< QGDPC (Bitfield-Mask: 0xffff) */ +/* ======================================================= P0_QGDPC4 ======================================================= */ + #define R_ETHSW_P0_QGDPC4_QGDPC_Pos (0UL) /*!< QGDPC (Bit 0) */ + #define R_ETHSW_P0_QGDPC4_QGDPC_Msk (0xffffUL) /*!< QGDPC (Bitfield-Mask: 0xffff) */ +/* ======================================================= P0_QGDPC5 ======================================================= */ + #define R_ETHSW_P0_QGDPC5_QGDPC_Pos (0UL) /*!< QGDPC (Bit 0) */ + #define R_ETHSW_P0_QGDPC5_QGDPC_Msk (0xffffUL) /*!< QGDPC (Bitfield-Mask: 0xffff) */ +/* ======================================================= P0_QGDPC6 ======================================================= */ + #define R_ETHSW_P0_QGDPC6_QGDPC_Pos (0UL) /*!< QGDPC (Bit 0) */ + #define R_ETHSW_P0_QGDPC6_QGDPC_Msk (0xffffUL) /*!< QGDPC (Bitfield-Mask: 0xffff) */ +/* ======================================================= P0_QGDPC7 ======================================================= */ + #define R_ETHSW_P0_QGDPC7_QGDPC_Pos (0UL) /*!< QGDPC (Bit 0) */ + #define R_ETHSW_P0_QGDPC7_QGDPC_Msk (0xffffUL) /*!< QGDPC (Bitfield-Mask: 0xffff) */ +/* ======================================================= P0_QGEIS ======================================================== */ + #define R_ETHSW_P0_QGEIS_QGMOIS_Pos (0UL) /*!< QGMOIS (Bit 0) */ + #define R_ETHSW_P0_QGEIS_QGMOIS_Msk (0xffUL) /*!< QGMOIS (Bitfield-Mask: 0xff) */ +/* ======================================================= P1_QGEIS ======================================================== */ + #define R_ETHSW_P1_QGEIS_QGMOIS_Pos (0UL) /*!< QGMOIS (Bit 0) */ + #define R_ETHSW_P1_QGEIS_QGMOIS_Msk (0xffUL) /*!< QGMOIS (Bitfield-Mask: 0xff) */ +/* ======================================================= P2_QGEIS ======================================================== */ + #define R_ETHSW_P2_QGEIS_QGMOIS_Pos (0UL) /*!< QGMOIS (Bit 0) */ + #define R_ETHSW_P2_QGEIS_QGMOIS_Msk (0xffUL) /*!< QGMOIS (Bitfield-Mask: 0xff) */ +/* ======================================================= P0_QGEIE ======================================================== */ + #define R_ETHSW_P0_QGEIE_QGMOIE_Pos (0UL) /*!< QGMOIE (Bit 0) */ + #define R_ETHSW_P0_QGEIE_QGMOIE_Msk (0xffUL) /*!< QGMOIE (Bitfield-Mask: 0xff) */ +/* ======================================================= P1_QGEIE ======================================================== */ + #define R_ETHSW_P1_QGEIE_QGMOIE_Pos (0UL) /*!< QGMOIE (Bit 0) */ + #define R_ETHSW_P1_QGEIE_QGMOIE_Msk (0xffUL) /*!< QGMOIE (Bitfield-Mask: 0xff) */ +/* ======================================================= P2_QGEIE ======================================================== */ + #define R_ETHSW_P2_QGEIE_QGMOIE_Pos (0UL) /*!< QGMOIE (Bit 0) */ + #define R_ETHSW_P2_QGEIE_QGMOIE_Msk (0xffUL) /*!< QGMOIE (Bitfield-Mask: 0xff) */ +/* ======================================================= P0_QGEID ======================================================== */ + #define R_ETHSW_P0_QGEID_QGMOID_Pos (0UL) /*!< QGMOID (Bit 0) */ + #define R_ETHSW_P0_QGEID_QGMOID_Msk (0xffUL) /*!< QGMOID (Bitfield-Mask: 0xff) */ +/* ======================================================= P1_QGEID ======================================================== */ + #define R_ETHSW_P1_QGEID_QGMOID_Pos (0UL) /*!< QGMOID (Bit 0) */ + #define R_ETHSW_P1_QGEID_QGMOID_Msk (0xffUL) /*!< QGMOID (Bitfield-Mask: 0xff) */ +/* ======================================================= P2_QGEID ======================================================== */ + #define R_ETHSW_P2_QGEID_QGMOID_Pos (0UL) /*!< QGMOID (Bit 0) */ + #define R_ETHSW_P2_QGEID_QGMOID_Msk (0xffUL) /*!< QGMOID (Bitfield-Mask: 0xff) */ +/* ====================================================== P0_QMDESC0 ======================================================= */ + #define R_ETHSW_P0_QMDESC0_RFD_Pos (0UL) /*!< RFD (Bit 0) */ + #define R_ETHSW_P0_QMDESC0_RFD_Msk (0x1UL) /*!< RFD (Bitfield-Mask: 0x01) */ + #define R_ETHSW_P0_QMDESC0_MM_Pos (1UL) /*!< MM (Bit 1) */ + #define R_ETHSW_P0_QMDESC0_MM_Msk (0x2UL) /*!< MM (Bitfield-Mask: 0x01) */ + #define R_ETHSW_P0_QMDESC0_CF_Pos (2UL) /*!< CF (Bit 2) */ + #define R_ETHSW_P0_QMDESC0_CF_Msk (0x4UL) /*!< CF (Bitfield-Mask: 0x01) */ +/* ====================================================== P0_QMDESC1 ======================================================= */ + #define R_ETHSW_P0_QMDESC1_RFD_Pos (0UL) /*!< RFD (Bit 0) */ + #define R_ETHSW_P0_QMDESC1_RFD_Msk (0x1UL) /*!< RFD (Bitfield-Mask: 0x01) */ + #define R_ETHSW_P0_QMDESC1_MM_Pos (1UL) /*!< MM (Bit 1) */ + #define R_ETHSW_P0_QMDESC1_MM_Msk (0x2UL) /*!< MM (Bitfield-Mask: 0x01) */ + #define R_ETHSW_P0_QMDESC1_CF_Pos (2UL) /*!< CF (Bit 2) */ + #define R_ETHSW_P0_QMDESC1_CF_Msk (0x4UL) /*!< CF (Bitfield-Mask: 0x01) */ +/* ====================================================== P0_QMDESC2 ======================================================= */ + #define R_ETHSW_P0_QMDESC2_RFD_Pos (0UL) /*!< RFD (Bit 0) */ + #define R_ETHSW_P0_QMDESC2_RFD_Msk (0x1UL) /*!< RFD (Bitfield-Mask: 0x01) */ + #define R_ETHSW_P0_QMDESC2_MM_Pos (1UL) /*!< MM (Bit 1) */ + #define R_ETHSW_P0_QMDESC2_MM_Msk (0x2UL) /*!< MM (Bitfield-Mask: 0x01) */ + #define R_ETHSW_P0_QMDESC2_CF_Pos (2UL) /*!< CF (Bit 2) */ + #define R_ETHSW_P0_QMDESC2_CF_Msk (0x4UL) /*!< CF (Bitfield-Mask: 0x01) */ +/* ====================================================== P0_QMDESC3 ======================================================= */ + #define R_ETHSW_P0_QMDESC3_RFD_Pos (0UL) /*!< RFD (Bit 0) */ + #define R_ETHSW_P0_QMDESC3_RFD_Msk (0x1UL) /*!< RFD (Bitfield-Mask: 0x01) */ + #define R_ETHSW_P0_QMDESC3_MM_Pos (1UL) /*!< MM (Bit 1) */ + #define R_ETHSW_P0_QMDESC3_MM_Msk (0x2UL) /*!< MM (Bitfield-Mask: 0x01) */ + #define R_ETHSW_P0_QMDESC3_CF_Pos (2UL) /*!< CF (Bit 2) */ + #define R_ETHSW_P0_QMDESC3_CF_Msk (0x4UL) /*!< CF (Bitfield-Mask: 0x01) */ +/* ====================================================== P0_QMDESC4 ======================================================= */ + #define R_ETHSW_P0_QMDESC4_RFD_Pos (0UL) /*!< RFD (Bit 0) */ + #define R_ETHSW_P0_QMDESC4_RFD_Msk (0x1UL) /*!< RFD (Bitfield-Mask: 0x01) */ + #define R_ETHSW_P0_QMDESC4_MM_Pos (1UL) /*!< MM (Bit 1) */ + #define R_ETHSW_P0_QMDESC4_MM_Msk (0x2UL) /*!< MM (Bitfield-Mask: 0x01) */ + #define R_ETHSW_P0_QMDESC4_CF_Pos (2UL) /*!< CF (Bit 2) */ + #define R_ETHSW_P0_QMDESC4_CF_Msk (0x4UL) /*!< CF (Bitfield-Mask: 0x01) */ +/* ====================================================== P0_QMDESC5 ======================================================= */ + #define R_ETHSW_P0_QMDESC5_RFD_Pos (0UL) /*!< RFD (Bit 0) */ + #define R_ETHSW_P0_QMDESC5_RFD_Msk (0x1UL) /*!< RFD (Bitfield-Mask: 0x01) */ + #define R_ETHSW_P0_QMDESC5_MM_Pos (1UL) /*!< MM (Bit 1) */ + #define R_ETHSW_P0_QMDESC5_MM_Msk (0x2UL) /*!< MM (Bitfield-Mask: 0x01) */ + #define R_ETHSW_P0_QMDESC5_CF_Pos (2UL) /*!< CF (Bit 2) */ + #define R_ETHSW_P0_QMDESC5_CF_Msk (0x4UL) /*!< CF (Bitfield-Mask: 0x01) */ +/* ====================================================== P0_QMDESC6 ======================================================= */ + #define R_ETHSW_P0_QMDESC6_RFD_Pos (0UL) /*!< RFD (Bit 0) */ + #define R_ETHSW_P0_QMDESC6_RFD_Msk (0x1UL) /*!< RFD (Bitfield-Mask: 0x01) */ + #define R_ETHSW_P0_QMDESC6_MM_Pos (1UL) /*!< MM (Bit 1) */ + #define R_ETHSW_P0_QMDESC6_MM_Msk (0x2UL) /*!< MM (Bitfield-Mask: 0x01) */ + #define R_ETHSW_P0_QMDESC6_CF_Pos (2UL) /*!< CF (Bit 2) */ + #define R_ETHSW_P0_QMDESC6_CF_Msk (0x4UL) /*!< CF (Bitfield-Mask: 0x01) */ +/* ====================================================== P0_QMDESC7 ======================================================= */ + #define R_ETHSW_P0_QMDESC7_RFD_Pos (0UL) /*!< RFD (Bit 0) */ + #define R_ETHSW_P0_QMDESC7_RFD_Msk (0x1UL) /*!< RFD (Bitfield-Mask: 0x01) */ + #define R_ETHSW_P0_QMDESC7_MM_Pos (1UL) /*!< MM (Bit 1) */ + #define R_ETHSW_P0_QMDESC7_MM_Msk (0x2UL) /*!< MM (Bitfield-Mask: 0x01) */ + #define R_ETHSW_P0_QMDESC7_CF_Pos (2UL) /*!< CF (Bit 2) */ + #define R_ETHSW_P0_QMDESC7_CF_Msk (0x4UL) /*!< CF (Bitfield-Mask: 0x01) */ +/* ====================================================== P0_QMCBSC0 ======================================================= */ + #define R_ETHSW_P0_QMCBSC0_CBS_Pos (0UL) /*!< CBS (Bit 0) */ + #define R_ETHSW_P0_QMCBSC0_CBS_Msk (0x3ffffUL) /*!< CBS (Bitfield-Mask: 0x3ffff) */ +/* ====================================================== P0_QMCBSC1 ======================================================= */ + #define R_ETHSW_P0_QMCBSC1_CBS_Pos (0UL) /*!< CBS (Bit 0) */ + #define R_ETHSW_P0_QMCBSC1_CBS_Msk (0x3ffffUL) /*!< CBS (Bitfield-Mask: 0x3ffff) */ +/* ====================================================== P0_QMCBSC2 ======================================================= */ + #define R_ETHSW_P0_QMCBSC2_CBS_Pos (0UL) /*!< CBS (Bit 0) */ + #define R_ETHSW_P0_QMCBSC2_CBS_Msk (0x3ffffUL) /*!< CBS (Bitfield-Mask: 0x3ffff) */ +/* ====================================================== P0_QMCBSC3 ======================================================= */ + #define R_ETHSW_P0_QMCBSC3_CBS_Pos (0UL) /*!< CBS (Bit 0) */ + #define R_ETHSW_P0_QMCBSC3_CBS_Msk (0x3ffffUL) /*!< CBS (Bitfield-Mask: 0x3ffff) */ +/* ====================================================== P0_QMCBSC4 ======================================================= */ + #define R_ETHSW_P0_QMCBSC4_CBS_Pos (0UL) /*!< CBS (Bit 0) */ + #define R_ETHSW_P0_QMCBSC4_CBS_Msk (0x3ffffUL) /*!< CBS (Bitfield-Mask: 0x3ffff) */ +/* ====================================================== P0_QMCBSC5 ======================================================= */ + #define R_ETHSW_P0_QMCBSC5_CBS_Pos (0UL) /*!< CBS (Bit 0) */ + #define R_ETHSW_P0_QMCBSC5_CBS_Msk (0x3ffffUL) /*!< CBS (Bitfield-Mask: 0x3ffff) */ +/* ====================================================== P0_QMCBSC6 ======================================================= */ + #define R_ETHSW_P0_QMCBSC6_CBS_Pos (0UL) /*!< CBS (Bit 0) */ + #define R_ETHSW_P0_QMCBSC6_CBS_Msk (0x3ffffUL) /*!< CBS (Bitfield-Mask: 0x3ffff) */ +/* ====================================================== P0_QMCBSC7 ======================================================= */ + #define R_ETHSW_P0_QMCBSC7_CBS_Pos (0UL) /*!< CBS (Bit 0) */ + #define R_ETHSW_P0_QMCBSC7_CBS_Msk (0x3ffffUL) /*!< CBS (Bitfield-Mask: 0x3ffff) */ +/* ====================================================== P0_QMCIRC0 ======================================================= */ + #define R_ETHSW_P0_QMCIRC0_CIR_Pos (0UL) /*!< CIR (Bit 0) */ + #define R_ETHSW_P0_QMCIRC0_CIR_Msk (0x1ffffUL) /*!< CIR (Bitfield-Mask: 0x1ffff) */ +/* ====================================================== P0_QMCIRC1 ======================================================= */ + #define R_ETHSW_P0_QMCIRC1_CIR_Pos (0UL) /*!< CIR (Bit 0) */ + #define R_ETHSW_P0_QMCIRC1_CIR_Msk (0x1ffffUL) /*!< CIR (Bitfield-Mask: 0x1ffff) */ +/* ====================================================== P0_QMCIRC2 ======================================================= */ + #define R_ETHSW_P0_QMCIRC2_CIR_Pos (0UL) /*!< CIR (Bit 0) */ + #define R_ETHSW_P0_QMCIRC2_CIR_Msk (0x1ffffUL) /*!< CIR (Bitfield-Mask: 0x1ffff) */ +/* ====================================================== P0_QMCIRC3 ======================================================= */ + #define R_ETHSW_P0_QMCIRC3_CIR_Pos (0UL) /*!< CIR (Bit 0) */ + #define R_ETHSW_P0_QMCIRC3_CIR_Msk (0x1ffffUL) /*!< CIR (Bitfield-Mask: 0x1ffff) */ +/* ====================================================== P0_QMCIRC4 ======================================================= */ + #define R_ETHSW_P0_QMCIRC4_CIR_Pos (0UL) /*!< CIR (Bit 0) */ + #define R_ETHSW_P0_QMCIRC4_CIR_Msk (0x1ffffUL) /*!< CIR (Bitfield-Mask: 0x1ffff) */ +/* ====================================================== P0_QMCIRC5 ======================================================= */ + #define R_ETHSW_P0_QMCIRC5_CIR_Pos (0UL) /*!< CIR (Bit 0) */ + #define R_ETHSW_P0_QMCIRC5_CIR_Msk (0x1ffffUL) /*!< CIR (Bitfield-Mask: 0x1ffff) */ +/* ====================================================== P0_QMCIRC6 ======================================================= */ + #define R_ETHSW_P0_QMCIRC6_CIR_Pos (0UL) /*!< CIR (Bit 0) */ + #define R_ETHSW_P0_QMCIRC6_CIR_Msk (0x1ffffUL) /*!< CIR (Bitfield-Mask: 0x1ffff) */ +/* ====================================================== P0_QMCIRC7 ======================================================= */ + #define R_ETHSW_P0_QMCIRC7_CIR_Pos (0UL) /*!< CIR (Bit 0) */ + #define R_ETHSW_P0_QMCIRC7_CIR_Msk (0x1ffffUL) /*!< CIR (Bitfield-Mask: 0x1ffff) */ +/* ======================================================= P0_QMGPC0 ======================================================= */ + #define R_ETHSW_P0_QMGPC0_QMGPC_Pos (0UL) /*!< QMGPC (Bit 0) */ + #define R_ETHSW_P0_QMGPC0_QMGPC_Msk (0xffffUL) /*!< QMGPC (Bitfield-Mask: 0xffff) */ +/* ======================================================= P0_QMGPC1 ======================================================= */ + #define R_ETHSW_P0_QMGPC1_QMGPC_Pos (0UL) /*!< QMGPC (Bit 0) */ + #define R_ETHSW_P0_QMGPC1_QMGPC_Msk (0xffffUL) /*!< QMGPC (Bitfield-Mask: 0xffff) */ +/* ======================================================= P0_QMGPC2 ======================================================= */ + #define R_ETHSW_P0_QMGPC2_QMGPC_Pos (0UL) /*!< QMGPC (Bit 0) */ + #define R_ETHSW_P0_QMGPC2_QMGPC_Msk (0xffffUL) /*!< QMGPC (Bitfield-Mask: 0xffff) */ +/* ======================================================= P0_QMGPC3 ======================================================= */ + #define R_ETHSW_P0_QMGPC3_QMGPC_Pos (0UL) /*!< QMGPC (Bit 0) */ + #define R_ETHSW_P0_QMGPC3_QMGPC_Msk (0xffffUL) /*!< QMGPC (Bitfield-Mask: 0xffff) */ +/* ======================================================= P0_QMGPC4 ======================================================= */ + #define R_ETHSW_P0_QMGPC4_QMGPC_Pos (0UL) /*!< QMGPC (Bit 0) */ + #define R_ETHSW_P0_QMGPC4_QMGPC_Msk (0xffffUL) /*!< QMGPC (Bitfield-Mask: 0xffff) */ +/* ======================================================= P0_QMGPC5 ======================================================= */ + #define R_ETHSW_P0_QMGPC5_QMGPC_Pos (0UL) /*!< QMGPC (Bit 0) */ + #define R_ETHSW_P0_QMGPC5_QMGPC_Msk (0xffffUL) /*!< QMGPC (Bitfield-Mask: 0xffff) */ +/* ======================================================= P0_QMGPC6 ======================================================= */ + #define R_ETHSW_P0_QMGPC6_QMGPC_Pos (0UL) /*!< QMGPC (Bit 0) */ + #define R_ETHSW_P0_QMGPC6_QMGPC_Msk (0xffffUL) /*!< QMGPC (Bitfield-Mask: 0xffff) */ +/* ======================================================= P0_QMGPC7 ======================================================= */ + #define R_ETHSW_P0_QMGPC7_QMGPC_Pos (0UL) /*!< QMGPC (Bit 0) */ + #define R_ETHSW_P0_QMGPC7_QMGPC_Msk (0xffffUL) /*!< QMGPC (Bitfield-Mask: 0xffff) */ +/* ======================================================= P0_QMRPC0 ======================================================= */ + #define R_ETHSW_P0_QMRPC0_QMRPC_Pos (0UL) /*!< QMRPC (Bit 0) */ + #define R_ETHSW_P0_QMRPC0_QMRPC_Msk (0xffffUL) /*!< QMRPC (Bitfield-Mask: 0xffff) */ +/* ======================================================= P0_QMRPC1 ======================================================= */ + #define R_ETHSW_P0_QMRPC1_QMRPC_Pos (0UL) /*!< QMRPC (Bit 0) */ + #define R_ETHSW_P0_QMRPC1_QMRPC_Msk (0xffffUL) /*!< QMRPC (Bitfield-Mask: 0xffff) */ +/* ======================================================= P0_QMRPC2 ======================================================= */ + #define R_ETHSW_P0_QMRPC2_QMRPC_Pos (0UL) /*!< QMRPC (Bit 0) */ + #define R_ETHSW_P0_QMRPC2_QMRPC_Msk (0xffffUL) /*!< QMRPC (Bitfield-Mask: 0xffff) */ +/* ======================================================= P0_QMRPC3 ======================================================= */ + #define R_ETHSW_P0_QMRPC3_QMRPC_Pos (0UL) /*!< QMRPC (Bit 0) */ + #define R_ETHSW_P0_QMRPC3_QMRPC_Msk (0xffffUL) /*!< QMRPC (Bitfield-Mask: 0xffff) */ +/* ======================================================= P0_QMRPC4 ======================================================= */ + #define R_ETHSW_P0_QMRPC4_QMRPC_Pos (0UL) /*!< QMRPC (Bit 0) */ + #define R_ETHSW_P0_QMRPC4_QMRPC_Msk (0xffffUL) /*!< QMRPC (Bitfield-Mask: 0xffff) */ +/* ======================================================= P0_QMRPC5 ======================================================= */ + #define R_ETHSW_P0_QMRPC5_QMRPC_Pos (0UL) /*!< QMRPC (Bit 0) */ + #define R_ETHSW_P0_QMRPC5_QMRPC_Msk (0xffffUL) /*!< QMRPC (Bitfield-Mask: 0xffff) */ +/* ======================================================= P0_QMRPC6 ======================================================= */ + #define R_ETHSW_P0_QMRPC6_QMRPC_Pos (0UL) /*!< QMRPC (Bit 0) */ + #define R_ETHSW_P0_QMRPC6_QMRPC_Msk (0xffffUL) /*!< QMRPC (Bitfield-Mask: 0xffff) */ +/* ======================================================= P0_QMRPC7 ======================================================= */ + #define R_ETHSW_P0_QMRPC7_QMRPC_Pos (0UL) /*!< QMRPC (Bit 0) */ + #define R_ETHSW_P0_QMRPC7_QMRPC_Msk (0xffffUL) /*!< QMRPC (Bitfield-Mask: 0xffff) */ +/* ======================================================== P0_QMEC ======================================================== */ + #define R_ETHSW_P0_QMEC_ME_Pos (0UL) /*!< ME (Bit 0) */ + #define R_ETHSW_P0_QMEC_ME_Msk (0xffUL) /*!< ME (Bitfield-Mask: 0xff) */ +/* ======================================================== P1_QMEC ======================================================== */ + #define R_ETHSW_P1_QMEC_ME_Pos (0UL) /*!< ME (Bit 0) */ + #define R_ETHSW_P1_QMEC_ME_Msk (0xffUL) /*!< ME (Bitfield-Mask: 0xff) */ +/* ======================================================== P2_QMEC ======================================================== */ + #define R_ETHSW_P2_QMEC_ME_Pos (0UL) /*!< ME (Bit 0) */ + #define R_ETHSW_P2_QMEC_ME_Msk (0xffUL) /*!< ME (Bitfield-Mask: 0xff) */ +/* ======================================================= P0_QMEIS ======================================================== */ + #define R_ETHSW_P0_QMEIS_QRFIS_Pos (0UL) /*!< QRFIS (Bit 0) */ + #define R_ETHSW_P0_QMEIS_QRFIS_Msk (0xffUL) /*!< QRFIS (Bitfield-Mask: 0xff) */ +/* ======================================================= P1_QMEIS ======================================================== */ + #define R_ETHSW_P1_QMEIS_QRFIS_Pos (0UL) /*!< QRFIS (Bit 0) */ + #define R_ETHSW_P1_QMEIS_QRFIS_Msk (0xffUL) /*!< QRFIS (Bitfield-Mask: 0xff) */ +/* ======================================================= P2_QMEIS ======================================================== */ + #define R_ETHSW_P2_QMEIS_QRFIS_Pos (0UL) /*!< QRFIS (Bit 0) */ + #define R_ETHSW_P2_QMEIS_QRFIS_Msk (0xffUL) /*!< QRFIS (Bitfield-Mask: 0xff) */ +/* ======================================================= P0_QMEIE ======================================================== */ + #define R_ETHSW_P0_QMEIE_QRFIE_Pos (0UL) /*!< QRFIE (Bit 0) */ + #define R_ETHSW_P0_QMEIE_QRFIE_Msk (0xffUL) /*!< QRFIE (Bitfield-Mask: 0xff) */ +/* ======================================================= P1_QMEIE ======================================================== */ + #define R_ETHSW_P1_QMEIE_QRFIE_Pos (0UL) /*!< QRFIE (Bit 0) */ + #define R_ETHSW_P1_QMEIE_QRFIE_Msk (0xffUL) /*!< QRFIE (Bitfield-Mask: 0xff) */ +/* ======================================================= P2_QMEIE ======================================================== */ + #define R_ETHSW_P2_QMEIE_QRFIE_Pos (0UL) /*!< QRFIE (Bit 0) */ + #define R_ETHSW_P2_QMEIE_QRFIE_Msk (0xffUL) /*!< QRFIE (Bitfield-Mask: 0xff) */ +/* ======================================================= P0_QMEID ======================================================== */ + #define R_ETHSW_P0_QMEID_QRFID_Pos (0UL) /*!< QRFID (Bit 0) */ + #define R_ETHSW_P0_QMEID_QRFID_Msk (0xffUL) /*!< QRFID (Bitfield-Mask: 0xff) */ +/* ======================================================= P1_QMEID ======================================================== */ + #define R_ETHSW_P1_QMEID_QRFID_Pos (0UL) /*!< QRFID (Bit 0) */ + #define R_ETHSW_P1_QMEID_QRFID_Msk (0xffUL) /*!< QRFID (Bitfield-Mask: 0xff) */ +/* ======================================================= P2_QMEID ======================================================== */ + #define R_ETHSW_P2_QMEID_QRFID_Pos (0UL) /*!< QRFID (Bit 0) */ + #define R_ETHSW_P2_QMEID_QRFID_Msk (0xffUL) /*!< QRFID (Bitfield-Mask: 0xff) */ +/* ===================================================== P0_PCP_REMAP ====================================================== */ + #define R_ETHSW_P0_PCP_REMAP_PCP_REMAP0_Pos (0UL) /*!< PCP_REMAP0 (Bit 0) */ + #define R_ETHSW_P0_PCP_REMAP_PCP_REMAP0_Msk (0x7UL) /*!< PCP_REMAP0 (Bitfield-Mask: 0x07) */ + #define R_ETHSW_P0_PCP_REMAP_PCP_REMAP1_Pos (3UL) /*!< PCP_REMAP1 (Bit 3) */ + #define R_ETHSW_P0_PCP_REMAP_PCP_REMAP1_Msk (0x38UL) /*!< PCP_REMAP1 (Bitfield-Mask: 0x07) */ + #define R_ETHSW_P0_PCP_REMAP_PCP_REMAP2_Pos (6UL) /*!< PCP_REMAP2 (Bit 6) */ + #define R_ETHSW_P0_PCP_REMAP_PCP_REMAP2_Msk (0x1c0UL) /*!< PCP_REMAP2 (Bitfield-Mask: 0x07) */ + #define R_ETHSW_P0_PCP_REMAP_PCP_REMAP3_Pos (9UL) /*!< PCP_REMAP3 (Bit 9) */ + #define R_ETHSW_P0_PCP_REMAP_PCP_REMAP3_Msk (0xe00UL) /*!< PCP_REMAP3 (Bitfield-Mask: 0x07) */ + #define R_ETHSW_P0_PCP_REMAP_PCP_REMAP4_Pos (12UL) /*!< PCP_REMAP4 (Bit 12) */ + #define R_ETHSW_P0_PCP_REMAP_PCP_REMAP4_Msk (0x7000UL) /*!< PCP_REMAP4 (Bitfield-Mask: 0x07) */ + #define R_ETHSW_P0_PCP_REMAP_PCP_REMAP5_Pos (15UL) /*!< PCP_REMAP5 (Bit 15) */ + #define R_ETHSW_P0_PCP_REMAP_PCP_REMAP5_Msk (0x38000UL) /*!< PCP_REMAP5 (Bitfield-Mask: 0x07) */ + #define R_ETHSW_P0_PCP_REMAP_PCP_REMAP6_Pos (18UL) /*!< PCP_REMAP6 (Bit 18) */ + #define R_ETHSW_P0_PCP_REMAP_PCP_REMAP6_Msk (0x1c0000UL) /*!< PCP_REMAP6 (Bitfield-Mask: 0x07) */ + #define R_ETHSW_P0_PCP_REMAP_PCP_REMAP7_Pos (21UL) /*!< PCP_REMAP7 (Bit 21) */ + #define R_ETHSW_P0_PCP_REMAP_PCP_REMAP7_Msk (0xe00000UL) /*!< PCP_REMAP7 (Bitfield-Mask: 0x07) */ +/* ===================================================== P1_PCP_REMAP ====================================================== */ + #define R_ETHSW_P1_PCP_REMAP_PCP_REMAP0_Pos (0UL) /*!< PCP_REMAP0 (Bit 0) */ + #define R_ETHSW_P1_PCP_REMAP_PCP_REMAP0_Msk (0x7UL) /*!< PCP_REMAP0 (Bitfield-Mask: 0x07) */ + #define R_ETHSW_P1_PCP_REMAP_PCP_REMAP1_Pos (3UL) /*!< PCP_REMAP1 (Bit 3) */ + #define R_ETHSW_P1_PCP_REMAP_PCP_REMAP1_Msk (0x38UL) /*!< PCP_REMAP1 (Bitfield-Mask: 0x07) */ + #define R_ETHSW_P1_PCP_REMAP_PCP_REMAP2_Pos (6UL) /*!< PCP_REMAP2 (Bit 6) */ + #define R_ETHSW_P1_PCP_REMAP_PCP_REMAP2_Msk (0x1c0UL) /*!< PCP_REMAP2 (Bitfield-Mask: 0x07) */ + #define R_ETHSW_P1_PCP_REMAP_PCP_REMAP3_Pos (9UL) /*!< PCP_REMAP3 (Bit 9) */ + #define R_ETHSW_P1_PCP_REMAP_PCP_REMAP3_Msk (0xe00UL) /*!< PCP_REMAP3 (Bitfield-Mask: 0x07) */ + #define R_ETHSW_P1_PCP_REMAP_PCP_REMAP4_Pos (12UL) /*!< PCP_REMAP4 (Bit 12) */ + #define R_ETHSW_P1_PCP_REMAP_PCP_REMAP4_Msk (0x7000UL) /*!< PCP_REMAP4 (Bitfield-Mask: 0x07) */ + #define R_ETHSW_P1_PCP_REMAP_PCP_REMAP5_Pos (15UL) /*!< PCP_REMAP5 (Bit 15) */ + #define R_ETHSW_P1_PCP_REMAP_PCP_REMAP5_Msk (0x38000UL) /*!< PCP_REMAP5 (Bitfield-Mask: 0x07) */ + #define R_ETHSW_P1_PCP_REMAP_PCP_REMAP6_Pos (18UL) /*!< PCP_REMAP6 (Bit 18) */ + #define R_ETHSW_P1_PCP_REMAP_PCP_REMAP6_Msk (0x1c0000UL) /*!< PCP_REMAP6 (Bitfield-Mask: 0x07) */ + #define R_ETHSW_P1_PCP_REMAP_PCP_REMAP7_Pos (21UL) /*!< PCP_REMAP7 (Bit 21) */ + #define R_ETHSW_P1_PCP_REMAP_PCP_REMAP7_Msk (0xe00000UL) /*!< PCP_REMAP7 (Bitfield-Mask: 0x07) */ +/* ===================================================== P2_PCP_REMAP ====================================================== */ + #define R_ETHSW_P2_PCP_REMAP_PCP_REMAP0_Pos (0UL) /*!< PCP_REMAP0 (Bit 0) */ + #define R_ETHSW_P2_PCP_REMAP_PCP_REMAP0_Msk (0x7UL) /*!< PCP_REMAP0 (Bitfield-Mask: 0x07) */ + #define R_ETHSW_P2_PCP_REMAP_PCP_REMAP1_Pos (3UL) /*!< PCP_REMAP1 (Bit 3) */ + #define R_ETHSW_P2_PCP_REMAP_PCP_REMAP1_Msk (0x38UL) /*!< PCP_REMAP1 (Bitfield-Mask: 0x07) */ + #define R_ETHSW_P2_PCP_REMAP_PCP_REMAP2_Pos (6UL) /*!< PCP_REMAP2 (Bit 6) */ + #define R_ETHSW_P2_PCP_REMAP_PCP_REMAP2_Msk (0x1c0UL) /*!< PCP_REMAP2 (Bitfield-Mask: 0x07) */ + #define R_ETHSW_P2_PCP_REMAP_PCP_REMAP3_Pos (9UL) /*!< PCP_REMAP3 (Bit 9) */ + #define R_ETHSW_P2_PCP_REMAP_PCP_REMAP3_Msk (0xe00UL) /*!< PCP_REMAP3 (Bitfield-Mask: 0x07) */ + #define R_ETHSW_P2_PCP_REMAP_PCP_REMAP4_Pos (12UL) /*!< PCP_REMAP4 (Bit 12) */ + #define R_ETHSW_P2_PCP_REMAP_PCP_REMAP4_Msk (0x7000UL) /*!< PCP_REMAP4 (Bitfield-Mask: 0x07) */ + #define R_ETHSW_P2_PCP_REMAP_PCP_REMAP5_Pos (15UL) /*!< PCP_REMAP5 (Bit 15) */ + #define R_ETHSW_P2_PCP_REMAP_PCP_REMAP5_Msk (0x38000UL) /*!< PCP_REMAP5 (Bitfield-Mask: 0x07) */ + #define R_ETHSW_P2_PCP_REMAP_PCP_REMAP6_Pos (18UL) /*!< PCP_REMAP6 (Bit 18) */ + #define R_ETHSW_P2_PCP_REMAP_PCP_REMAP6_Msk (0x1c0000UL) /*!< PCP_REMAP6 (Bitfield-Mask: 0x07) */ + #define R_ETHSW_P2_PCP_REMAP_PCP_REMAP7_Pos (21UL) /*!< PCP_REMAP7 (Bit 21) */ + #define R_ETHSW_P2_PCP_REMAP_PCP_REMAP7_Msk (0xe00000UL) /*!< PCP_REMAP7 (Bitfield-Mask: 0x07) */ +/* ====================================================== P0_VLAN_TAG ====================================================== */ + #define R_ETHSW_P0_VLAN_TAG_VID_Pos (0UL) /*!< VID (Bit 0) */ + #define R_ETHSW_P0_VLAN_TAG_VID_Msk (0xfffUL) /*!< VID (Bitfield-Mask: 0xfff) */ + #define R_ETHSW_P0_VLAN_TAG_DEI_Pos (12UL) /*!< DEI (Bit 12) */ + #define R_ETHSW_P0_VLAN_TAG_DEI_Msk (0x1000UL) /*!< DEI (Bitfield-Mask: 0x01) */ + #define R_ETHSW_P0_VLAN_TAG_PCP_Pos (13UL) /*!< PCP (Bit 13) */ + #define R_ETHSW_P0_VLAN_TAG_PCP_Msk (0xe000UL) /*!< PCP (Bitfield-Mask: 0x07) */ + #define R_ETHSW_P0_VLAN_TAG_TPID_Pos (16UL) /*!< TPID (Bit 16) */ + #define R_ETHSW_P0_VLAN_TAG_TPID_Msk (0xffff0000UL) /*!< TPID (Bitfield-Mask: 0xffff) */ +/* ====================================================== P1_VLAN_TAG ====================================================== */ + #define R_ETHSW_P1_VLAN_TAG_VID_Pos (0UL) /*!< VID (Bit 0) */ + #define R_ETHSW_P1_VLAN_TAG_VID_Msk (0xfffUL) /*!< VID (Bitfield-Mask: 0xfff) */ + #define R_ETHSW_P1_VLAN_TAG_DEI_Pos (12UL) /*!< DEI (Bit 12) */ + #define R_ETHSW_P1_VLAN_TAG_DEI_Msk (0x1000UL) /*!< DEI (Bitfield-Mask: 0x01) */ + #define R_ETHSW_P1_VLAN_TAG_PCP_Pos (13UL) /*!< PCP (Bit 13) */ + #define R_ETHSW_P1_VLAN_TAG_PCP_Msk (0xe000UL) /*!< PCP (Bitfield-Mask: 0x07) */ + #define R_ETHSW_P1_VLAN_TAG_TPID_Pos (16UL) /*!< TPID (Bit 16) */ + #define R_ETHSW_P1_VLAN_TAG_TPID_Msk (0xffff0000UL) /*!< TPID (Bitfield-Mask: 0xffff) */ +/* ====================================================== P2_VLAN_TAG ====================================================== */ + #define R_ETHSW_P2_VLAN_TAG_VID_Pos (0UL) /*!< VID (Bit 0) */ + #define R_ETHSW_P2_VLAN_TAG_VID_Msk (0xfffUL) /*!< VID (Bitfield-Mask: 0xfff) */ + #define R_ETHSW_P2_VLAN_TAG_DEI_Pos (12UL) /*!< DEI (Bit 12) */ + #define R_ETHSW_P2_VLAN_TAG_DEI_Msk (0x1000UL) /*!< DEI (Bitfield-Mask: 0x01) */ + #define R_ETHSW_P2_VLAN_TAG_PCP_Pos (13UL) /*!< PCP (Bit 13) */ + #define R_ETHSW_P2_VLAN_TAG_PCP_Msk (0xe000UL) /*!< PCP (Bitfield-Mask: 0x07) */ + #define R_ETHSW_P2_VLAN_TAG_TPID_Pos (16UL) /*!< TPID (Bit 16) */ + #define R_ETHSW_P2_VLAN_TAG_TPID_Msk (0xffff0000UL) /*!< TPID (Bitfield-Mask: 0xffff) */ +/* ===================================================== P0_VLAN_MODE ====================================================== */ + #define R_ETHSW_P0_VLAN_MODE_VITM_Pos (0UL) /*!< VITM (Bit 0) */ + #define R_ETHSW_P0_VLAN_MODE_VITM_Msk (0x3UL) /*!< VITM (Bitfield-Mask: 0x03) */ + #define R_ETHSW_P0_VLAN_MODE_VICM_Pos (2UL) /*!< VICM (Bit 2) */ + #define R_ETHSW_P0_VLAN_MODE_VICM_Msk (0xcUL) /*!< VICM (Bitfield-Mask: 0x03) */ +/* ===================================================== P1_VLAN_MODE ====================================================== */ + #define R_ETHSW_P1_VLAN_MODE_VITM_Pos (0UL) /*!< VITM (Bit 0) */ + #define R_ETHSW_P1_VLAN_MODE_VITM_Msk (0x3UL) /*!< VITM (Bitfield-Mask: 0x03) */ + #define R_ETHSW_P1_VLAN_MODE_VICM_Pos (2UL) /*!< VICM (Bit 2) */ + #define R_ETHSW_P1_VLAN_MODE_VICM_Msk (0xcUL) /*!< VICM (Bitfield-Mask: 0x03) */ +/* ===================================================== P2_VLAN_MODE ====================================================== */ + #define R_ETHSW_P2_VLAN_MODE_VITM_Pos (0UL) /*!< VITM (Bit 0) */ + #define R_ETHSW_P2_VLAN_MODE_VITM_Msk (0x3UL) /*!< VITM (Bitfield-Mask: 0x03) */ + #define R_ETHSW_P2_VLAN_MODE_VICM_Pos (2UL) /*!< VICM (Bit 2) */ + #define R_ETHSW_P2_VLAN_MODE_VICM_Msk (0xcUL) /*!< VICM (Bitfield-Mask: 0x03) */ +/* ==================================================== P0_VIC_DROP_CNT ==================================================== */ + #define R_ETHSW_P0_VIC_DROP_CNT_VIC_DROP_CNT_Pos (0UL) /*!< VIC_DROP_CNT (Bit 0) */ + #define R_ETHSW_P0_VIC_DROP_CNT_VIC_DROP_CNT_Msk (0xffffUL) /*!< VIC_DROP_CNT (Bitfield-Mask: 0xffff) */ +/* ==================================================== P1_VIC_DROP_CNT ==================================================== */ + #define R_ETHSW_P1_VIC_DROP_CNT_VIC_DROP_CNT_Pos (0UL) /*!< VIC_DROP_CNT (Bit 0) */ + #define R_ETHSW_P1_VIC_DROP_CNT_VIC_DROP_CNT_Msk (0xffffUL) /*!< VIC_DROP_CNT (Bitfield-Mask: 0xffff) */ +/* ==================================================== P2_VIC_DROP_CNT ==================================================== */ + #define R_ETHSW_P2_VIC_DROP_CNT_VIC_DROP_CNT_Pos (0UL) /*!< VIC_DROP_CNT (Bit 0) */ + #define R_ETHSW_P2_VIC_DROP_CNT_VIC_DROP_CNT_Msk (0xffffUL) /*!< VIC_DROP_CNT (Bitfield-Mask: 0xffff) */ +/* =================================================== P0_LOOKUP_HIT_CNT =================================================== */ + #define R_ETHSW_P0_LOOKUP_HIT_CNT_LOOKUP_HIT_CNT_Pos (0UL) /*!< LOOKUP_HIT_CNT (Bit 0) */ + #define R_ETHSW_P0_LOOKUP_HIT_CNT_LOOKUP_HIT_CNT_Msk (0xffffffUL) /*!< LOOKUP_HIT_CNT (Bitfield-Mask: 0xffffff) */ +/* =================================================== P1_LOOKUP_HIT_CNT =================================================== */ + #define R_ETHSW_P1_LOOKUP_HIT_CNT_LOOKUP_HIT_CNT_Pos (0UL) /*!< LOOKUP_HIT_CNT (Bit 0) */ + #define R_ETHSW_P1_LOOKUP_HIT_CNT_LOOKUP_HIT_CNT_Msk (0xffffffUL) /*!< LOOKUP_HIT_CNT (Bitfield-Mask: 0xffffff) */ +/* =================================================== P2_LOOKUP_HIT_CNT =================================================== */ + #define R_ETHSW_P2_LOOKUP_HIT_CNT_LOOKUP_HIT_CNT_Pos (0UL) /*!< LOOKUP_HIT_CNT (Bit 0) */ + #define R_ETHSW_P2_LOOKUP_HIT_CNT_LOOKUP_HIT_CNT_Msk (0xffffffUL) /*!< LOOKUP_HIT_CNT (Bitfield-Mask: 0xffffff) */ +/* ==================================================== P0_ERROR_STATUS ==================================================== */ + #define R_ETHSW_P0_ERROR_STATUS_SOPERR_Pos (0UL) /*!< SOPERR (Bit 0) */ + #define R_ETHSW_P0_ERROR_STATUS_SOPERR_Msk (0x1UL) /*!< SOPERR (Bitfield-Mask: 0x01) */ + #define R_ETHSW_P0_ERROR_STATUS_PUNDSZ_Pos (1UL) /*!< PUNDSZ (Bit 1) */ + #define R_ETHSW_P0_ERROR_STATUS_PUNDSZ_Msk (0x2UL) /*!< PUNDSZ (Bitfield-Mask: 0x01) */ + #define R_ETHSW_P0_ERROR_STATUS_POVRSZ_Pos (2UL) /*!< POVRSZ (Bit 2) */ + #define R_ETHSW_P0_ERROR_STATUS_POVRSZ_Msk (0x4UL) /*!< POVRSZ (Bitfield-Mask: 0x01) */ + #define R_ETHSW_P0_ERROR_STATUS_EUNDSZ_Pos (3UL) /*!< EUNDSZ (Bit 3) */ + #define R_ETHSW_P0_ERROR_STATUS_EUNDSZ_Msk (0x8UL) /*!< EUNDSZ (Bitfield-Mask: 0x01) */ + #define R_ETHSW_P0_ERROR_STATUS_EOVRSZ_Pos (4UL) /*!< EOVRSZ (Bit 4) */ + #define R_ETHSW_P0_ERROR_STATUS_EOVRSZ_Msk (0x10UL) /*!< EOVRSZ (Bitfield-Mask: 0x01) */ +/* ==================================================== P1_ERROR_STATUS ==================================================== */ + #define R_ETHSW_P1_ERROR_STATUS_SOPERR_Pos (0UL) /*!< SOPERR (Bit 0) */ + #define R_ETHSW_P1_ERROR_STATUS_SOPERR_Msk (0x1UL) /*!< SOPERR (Bitfield-Mask: 0x01) */ + #define R_ETHSW_P1_ERROR_STATUS_PUNDSZ_Pos (1UL) /*!< PUNDSZ (Bit 1) */ + #define R_ETHSW_P1_ERROR_STATUS_PUNDSZ_Msk (0x2UL) /*!< PUNDSZ (Bitfield-Mask: 0x01) */ + #define R_ETHSW_P1_ERROR_STATUS_POVRSZ_Pos (2UL) /*!< POVRSZ (Bit 2) */ + #define R_ETHSW_P1_ERROR_STATUS_POVRSZ_Msk (0x4UL) /*!< POVRSZ (Bitfield-Mask: 0x01) */ + #define R_ETHSW_P1_ERROR_STATUS_EUNDSZ_Pos (3UL) /*!< EUNDSZ (Bit 3) */ + #define R_ETHSW_P1_ERROR_STATUS_EUNDSZ_Msk (0x8UL) /*!< EUNDSZ (Bitfield-Mask: 0x01) */ + #define R_ETHSW_P1_ERROR_STATUS_EOVRSZ_Pos (4UL) /*!< EOVRSZ (Bit 4) */ + #define R_ETHSW_P1_ERROR_STATUS_EOVRSZ_Msk (0x10UL) /*!< EOVRSZ (Bitfield-Mask: 0x01) */ +/* ==================================================== P2_ERROR_STATUS ==================================================== */ + #define R_ETHSW_P2_ERROR_STATUS_SOPERR_Pos (0UL) /*!< SOPERR (Bit 0) */ + #define R_ETHSW_P2_ERROR_STATUS_SOPERR_Msk (0x1UL) /*!< SOPERR (Bitfield-Mask: 0x01) */ + #define R_ETHSW_P2_ERROR_STATUS_PUNDSZ_Pos (1UL) /*!< PUNDSZ (Bit 1) */ + #define R_ETHSW_P2_ERROR_STATUS_PUNDSZ_Msk (0x2UL) /*!< PUNDSZ (Bitfield-Mask: 0x01) */ + #define R_ETHSW_P2_ERROR_STATUS_POVRSZ_Pos (2UL) /*!< POVRSZ (Bit 2) */ + #define R_ETHSW_P2_ERROR_STATUS_POVRSZ_Msk (0x4UL) /*!< POVRSZ (Bitfield-Mask: 0x01) */ + #define R_ETHSW_P2_ERROR_STATUS_EUNDSZ_Pos (3UL) /*!< EUNDSZ (Bit 3) */ + #define R_ETHSW_P2_ERROR_STATUS_EUNDSZ_Msk (0x8UL) /*!< EUNDSZ (Bitfield-Mask: 0x01) */ + #define R_ETHSW_P2_ERROR_STATUS_EOVRSZ_Pos (4UL) /*!< EOVRSZ (Bit 4) */ + #define R_ETHSW_P2_ERROR_STATUS_EOVRSZ_Msk (0x10UL) /*!< EOVRSZ (Bitfield-Mask: 0x01) */ +/* ===================================================== P0_ERROR_MASK ===================================================== */ + #define R_ETHSW_P0_ERROR_MASK_MSOPERR_Pos (0UL) /*!< MSOPERR (Bit 0) */ + #define R_ETHSW_P0_ERROR_MASK_MSOPERR_Msk (0x1UL) /*!< MSOPERR (Bitfield-Mask: 0x01) */ + #define R_ETHSW_P0_ERROR_MASK_MPUNDSZ_Pos (1UL) /*!< MPUNDSZ (Bit 1) */ + #define R_ETHSW_P0_ERROR_MASK_MPUNDSZ_Msk (0x2UL) /*!< MPUNDSZ (Bitfield-Mask: 0x01) */ + #define R_ETHSW_P0_ERROR_MASK_MPOVRSZ_Pos (2UL) /*!< MPOVRSZ (Bit 2) */ + #define R_ETHSW_P0_ERROR_MASK_MPOVRSZ_Msk (0x4UL) /*!< MPOVRSZ (Bitfield-Mask: 0x01) */ + #define R_ETHSW_P0_ERROR_MASK_MEUNDSZ_Pos (3UL) /*!< MEUNDSZ (Bit 3) */ + #define R_ETHSW_P0_ERROR_MASK_MEUNDSZ_Msk (0x8UL) /*!< MEUNDSZ (Bitfield-Mask: 0x01) */ + #define R_ETHSW_P0_ERROR_MASK_MEOVRSZ_Pos (4UL) /*!< MEOVRSZ (Bit 4) */ + #define R_ETHSW_P0_ERROR_MASK_MEOVRSZ_Msk (0x10UL) /*!< MEOVRSZ (Bitfield-Mask: 0x01) */ +/* ===================================================== P1_ERROR_MASK ===================================================== */ + #define R_ETHSW_P1_ERROR_MASK_MSOPERR_Pos (0UL) /*!< MSOPERR (Bit 0) */ + #define R_ETHSW_P1_ERROR_MASK_MSOPERR_Msk (0x1UL) /*!< MSOPERR (Bitfield-Mask: 0x01) */ + #define R_ETHSW_P1_ERROR_MASK_MPUNDSZ_Pos (1UL) /*!< MPUNDSZ (Bit 1) */ + #define R_ETHSW_P1_ERROR_MASK_MPUNDSZ_Msk (0x2UL) /*!< MPUNDSZ (Bitfield-Mask: 0x01) */ + #define R_ETHSW_P1_ERROR_MASK_MPOVRSZ_Pos (2UL) /*!< MPOVRSZ (Bit 2) */ + #define R_ETHSW_P1_ERROR_MASK_MPOVRSZ_Msk (0x4UL) /*!< MPOVRSZ (Bitfield-Mask: 0x01) */ + #define R_ETHSW_P1_ERROR_MASK_MEUNDSZ_Pos (3UL) /*!< MEUNDSZ (Bit 3) */ + #define R_ETHSW_P1_ERROR_MASK_MEUNDSZ_Msk (0x8UL) /*!< MEUNDSZ (Bitfield-Mask: 0x01) */ + #define R_ETHSW_P1_ERROR_MASK_MEOVRSZ_Pos (4UL) /*!< MEOVRSZ (Bit 4) */ + #define R_ETHSW_P1_ERROR_MASK_MEOVRSZ_Msk (0x10UL) /*!< MEOVRSZ (Bitfield-Mask: 0x01) */ +/* ===================================================== P2_ERROR_MASK ===================================================== */ + #define R_ETHSW_P2_ERROR_MASK_MSOPERR_Pos (0UL) /*!< MSOPERR (Bit 0) */ + #define R_ETHSW_P2_ERROR_MASK_MSOPERR_Msk (0x1UL) /*!< MSOPERR (Bitfield-Mask: 0x01) */ + #define R_ETHSW_P2_ERROR_MASK_MPUNDSZ_Pos (1UL) /*!< MPUNDSZ (Bit 1) */ + #define R_ETHSW_P2_ERROR_MASK_MPUNDSZ_Msk (0x2UL) /*!< MPUNDSZ (Bitfield-Mask: 0x01) */ + #define R_ETHSW_P2_ERROR_MASK_MPOVRSZ_Pos (2UL) /*!< MPOVRSZ (Bit 2) */ + #define R_ETHSW_P2_ERROR_MASK_MPOVRSZ_Msk (0x4UL) /*!< MPOVRSZ (Bitfield-Mask: 0x01) */ + #define R_ETHSW_P2_ERROR_MASK_MEUNDSZ_Pos (3UL) /*!< MEUNDSZ (Bit 3) */ + #define R_ETHSW_P2_ERROR_MASK_MEUNDSZ_Msk (0x8UL) /*!< MEUNDSZ (Bitfield-Mask: 0x01) */ + #define R_ETHSW_P2_ERROR_MASK_MEOVRSZ_Pos (4UL) /*!< MEOVRSZ (Bit 4) */ + #define R_ETHSW_P2_ERROR_MASK_MEOVRSZ_Msk (0x10UL) /*!< MEOVRSZ (Bitfield-Mask: 0x01) */ +/* ===================================================== CHANNEL_STATE ===================================================== */ + #define R_ETHSW_CHANNEL_STATE_CH0ACT_Pos (0UL) /*!< CH0ACT (Bit 0) */ + #define R_ETHSW_CHANNEL_STATE_CH0ACT_Msk (0x1UL) /*!< CH0ACT (Bitfield-Mask: 0x01) */ + #define R_ETHSW_CHANNEL_STATE_CH1ACT_Pos (1UL) /*!< CH1ACT (Bit 1) */ + #define R_ETHSW_CHANNEL_STATE_CH1ACT_Msk (0x2UL) /*!< CH1ACT (Bitfield-Mask: 0x01) */ + #define R_ETHSW_CHANNEL_STATE_CH2ACT_Pos (2UL) /*!< CH2ACT (Bit 2) */ + #define R_ETHSW_CHANNEL_STATE_CH2ACT_Msk (0x4UL) /*!< CH2ACT (Bitfield-Mask: 0x01) */ +/* ==================================================== CHANNEL_ENABLE ===================================================== */ + #define R_ETHSW_CHANNEL_ENABLE_CH0ENA_Pos (0UL) /*!< CH0ENA (Bit 0) */ + #define R_ETHSW_CHANNEL_ENABLE_CH0ENA_Msk (0x1UL) /*!< CH0ENA (Bitfield-Mask: 0x01) */ + #define R_ETHSW_CHANNEL_ENABLE_CH1ENA_Pos (1UL) /*!< CH1ENA (Bit 1) */ + #define R_ETHSW_CHANNEL_ENABLE_CH1ENA_Msk (0x2UL) /*!< CH1ENA (Bitfield-Mask: 0x01) */ + #define R_ETHSW_CHANNEL_ENABLE_CH2ENA_Pos (2UL) /*!< CH2ENA (Bit 2) */ + #define R_ETHSW_CHANNEL_ENABLE_CH2ENA_Msk (0x4UL) /*!< CH2ENA (Bitfield-Mask: 0x01) */ +/* ==================================================== CHANNEL_DISABLE ==================================================== */ + #define R_ETHSW_CHANNEL_DISABLE_CH0DIS_Pos (0UL) /*!< CH0DIS (Bit 0) */ + #define R_ETHSW_CHANNEL_DISABLE_CH0DIS_Msk (0x1UL) /*!< CH0DIS (Bitfield-Mask: 0x01) */ + #define R_ETHSW_CHANNEL_DISABLE_CH1DIS_Pos (1UL) /*!< CH1DIS (Bit 1) */ + #define R_ETHSW_CHANNEL_DISABLE_CH1DIS_Msk (0x2UL) /*!< CH1DIS (Bitfield-Mask: 0x01) */ + #define R_ETHSW_CHANNEL_DISABLE_CH2DIS_Pos (2UL) /*!< CH2DIS (Bit 2) */ + #define R_ETHSW_CHANNEL_DISABLE_CH2DIS_Msk (0x4UL) /*!< CH2DIS (Bitfield-Mask: 0x01) */ +/* ===================================================== ASI_MEM_WDATA ===================================================== */ + #define R_ETHSW_ASI_MEM_WDATA_WDATA_Pos (0UL) /*!< WDATA (Bit 0) */ + #define R_ETHSW_ASI_MEM_WDATA_WDATA_Msk (0xffffffffUL) /*!< WDATA (Bitfield-Mask: 0xffffffff) */ +/* ===================================================== ASI_MEM_ADDR ====================================================== */ + #define R_ETHSW_ASI_MEM_ADDR_ADDR_Pos (0UL) /*!< ADDR (Bit 0) */ + #define R_ETHSW_ASI_MEM_ADDR_ADDR_Msk (0x7fUL) /*!< ADDR (Bitfield-Mask: 0x7f) */ + #define R_ETHSW_ASI_MEM_ADDR_MEM_WEN_Pos (7UL) /*!< MEM_WEN (Bit 7) */ + #define R_ETHSW_ASI_MEM_ADDR_MEM_WEN_Msk (0x80UL) /*!< MEM_WEN (Bitfield-Mask: 0x01) */ + #define R_ETHSW_ASI_MEM_ADDR_MEM_REQ_Pos (8UL) /*!< MEM_REQ (Bit 8) */ + #define R_ETHSW_ASI_MEM_ADDR_MEM_REQ_Msk (0x700UL) /*!< MEM_REQ (Bitfield-Mask: 0x07) */ +/* ===================================================== ASI_MEM_RDATA ===================================================== */ + #define R_ETHSW_ASI_MEM_RDATA_RDATA_Pos (0UL) /*!< RDATA (Bit 0) */ + #define R_ETHSW_ASI_MEM_RDATA_RDATA_Msk (0xffffffffUL) /*!< RDATA (Bitfield-Mask: 0xffffffff) */ +/* ====================================================== P1_QSTMACU0 ====================================================== */ + #define R_ETHSW_P1_QSTMACU0_MACA_Pos (0UL) /*!< MACA (Bit 0) */ + #define R_ETHSW_P1_QSTMACU0_MACA_Msk (0xffffUL) /*!< MACA (Bitfield-Mask: 0xffff) */ + #define R_ETHSW_P1_QSTMACU0_DASA_Pos (16UL) /*!< DASA (Bit 16) */ + #define R_ETHSW_P1_QSTMACU0_DASA_Msk (0x10000UL) /*!< DASA (Bitfield-Mask: 0x01) */ +/* ====================================================== P1_QSTMACU1 ====================================================== */ + #define R_ETHSW_P1_QSTMACU1_MACA_Pos (0UL) /*!< MACA (Bit 0) */ + #define R_ETHSW_P1_QSTMACU1_MACA_Msk (0xffffUL) /*!< MACA (Bitfield-Mask: 0xffff) */ + #define R_ETHSW_P1_QSTMACU1_DASA_Pos (16UL) /*!< DASA (Bit 16) */ + #define R_ETHSW_P1_QSTMACU1_DASA_Msk (0x10000UL) /*!< DASA (Bitfield-Mask: 0x01) */ +/* ====================================================== P1_QSTMACU2 ====================================================== */ + #define R_ETHSW_P1_QSTMACU2_MACA_Pos (0UL) /*!< MACA (Bit 0) */ + #define R_ETHSW_P1_QSTMACU2_MACA_Msk (0xffffUL) /*!< MACA (Bitfield-Mask: 0xffff) */ + #define R_ETHSW_P1_QSTMACU2_DASA_Pos (16UL) /*!< DASA (Bit 16) */ + #define R_ETHSW_P1_QSTMACU2_DASA_Msk (0x10000UL) /*!< DASA (Bitfield-Mask: 0x01) */ +/* ====================================================== P1_QSTMACU3 ====================================================== */ + #define R_ETHSW_P1_QSTMACU3_MACA_Pos (0UL) /*!< MACA (Bit 0) */ + #define R_ETHSW_P1_QSTMACU3_MACA_Msk (0xffffUL) /*!< MACA (Bitfield-Mask: 0xffff) */ + #define R_ETHSW_P1_QSTMACU3_DASA_Pos (16UL) /*!< DASA (Bit 16) */ + #define R_ETHSW_P1_QSTMACU3_DASA_Msk (0x10000UL) /*!< DASA (Bitfield-Mask: 0x01) */ +/* ====================================================== P1_QSTMACU4 ====================================================== */ + #define R_ETHSW_P1_QSTMACU4_MACA_Pos (0UL) /*!< MACA (Bit 0) */ + #define R_ETHSW_P1_QSTMACU4_MACA_Msk (0xffffUL) /*!< MACA (Bitfield-Mask: 0xffff) */ + #define R_ETHSW_P1_QSTMACU4_DASA_Pos (16UL) /*!< DASA (Bit 16) */ + #define R_ETHSW_P1_QSTMACU4_DASA_Msk (0x10000UL) /*!< DASA (Bitfield-Mask: 0x01) */ +/* ====================================================== P1_QSTMACU5 ====================================================== */ + #define R_ETHSW_P1_QSTMACU5_MACA_Pos (0UL) /*!< MACA (Bit 0) */ + #define R_ETHSW_P1_QSTMACU5_MACA_Msk (0xffffUL) /*!< MACA (Bitfield-Mask: 0xffff) */ + #define R_ETHSW_P1_QSTMACU5_DASA_Pos (16UL) /*!< DASA (Bit 16) */ + #define R_ETHSW_P1_QSTMACU5_DASA_Msk (0x10000UL) /*!< DASA (Bitfield-Mask: 0x01) */ +/* ====================================================== P1_QSTMACU6 ====================================================== */ + #define R_ETHSW_P1_QSTMACU6_MACA_Pos (0UL) /*!< MACA (Bit 0) */ + #define R_ETHSW_P1_QSTMACU6_MACA_Msk (0xffffUL) /*!< MACA (Bitfield-Mask: 0xffff) */ + #define R_ETHSW_P1_QSTMACU6_DASA_Pos (16UL) /*!< DASA (Bit 16) */ + #define R_ETHSW_P1_QSTMACU6_DASA_Msk (0x10000UL) /*!< DASA (Bitfield-Mask: 0x01) */ +/* ====================================================== P1_QSTMACU7 ====================================================== */ + #define R_ETHSW_P1_QSTMACU7_MACA_Pos (0UL) /*!< MACA (Bit 0) */ + #define R_ETHSW_P1_QSTMACU7_MACA_Msk (0xffffUL) /*!< MACA (Bitfield-Mask: 0xffff) */ + #define R_ETHSW_P1_QSTMACU7_DASA_Pos (16UL) /*!< DASA (Bit 16) */ + #define R_ETHSW_P1_QSTMACU7_DASA_Msk (0x10000UL) /*!< DASA (Bitfield-Mask: 0x01) */ +/* ====================================================== P1_QSTMACD0 ====================================================== */ + #define R_ETHSW_P1_QSTMACD0_MACA_Pos (0UL) /*!< MACA (Bit 0) */ + #define R_ETHSW_P1_QSTMACD0_MACA_Msk (0xffffffffUL) /*!< MACA (Bitfield-Mask: 0xffffffff) */ +/* ====================================================== P1_QSTMACD1 ====================================================== */ + #define R_ETHSW_P1_QSTMACD1_MACA_Pos (0UL) /*!< MACA (Bit 0) */ + #define R_ETHSW_P1_QSTMACD1_MACA_Msk (0xffffffffUL) /*!< MACA (Bitfield-Mask: 0xffffffff) */ +/* ====================================================== P1_QSTMACD2 ====================================================== */ + #define R_ETHSW_P1_QSTMACD2_MACA_Pos (0UL) /*!< MACA (Bit 0) */ + #define R_ETHSW_P1_QSTMACD2_MACA_Msk (0xffffffffUL) /*!< MACA (Bitfield-Mask: 0xffffffff) */ +/* ====================================================== P1_QSTMACD3 ====================================================== */ + #define R_ETHSW_P1_QSTMACD3_MACA_Pos (0UL) /*!< MACA (Bit 0) */ + #define R_ETHSW_P1_QSTMACD3_MACA_Msk (0xffffffffUL) /*!< MACA (Bitfield-Mask: 0xffffffff) */ +/* ====================================================== P1_QSTMACD4 ====================================================== */ + #define R_ETHSW_P1_QSTMACD4_MACA_Pos (0UL) /*!< MACA (Bit 0) */ + #define R_ETHSW_P1_QSTMACD4_MACA_Msk (0xffffffffUL) /*!< MACA (Bitfield-Mask: 0xffffffff) */ +/* ====================================================== P1_QSTMACD5 ====================================================== */ + #define R_ETHSW_P1_QSTMACD5_MACA_Pos (0UL) /*!< MACA (Bit 0) */ + #define R_ETHSW_P1_QSTMACD5_MACA_Msk (0xffffffffUL) /*!< MACA (Bitfield-Mask: 0xffffffff) */ +/* ====================================================== P1_QSTMACD6 ====================================================== */ + #define R_ETHSW_P1_QSTMACD6_MACA_Pos (0UL) /*!< MACA (Bit 0) */ + #define R_ETHSW_P1_QSTMACD6_MACA_Msk (0xffffffffUL) /*!< MACA (Bitfield-Mask: 0xffffffff) */ +/* ====================================================== P1_QSTMACD7 ====================================================== */ + #define R_ETHSW_P1_QSTMACD7_MACA_Pos (0UL) /*!< MACA (Bit 0) */ + #define R_ETHSW_P1_QSTMACD7_MACA_Msk (0xffffffffUL) /*!< MACA (Bitfield-Mask: 0xffffffff) */ +/* ====================================================== P1_QSTMAMU0 ====================================================== */ + #define R_ETHSW_P1_QSTMAMU0_MACAM_Pos (0UL) /*!< MACAM (Bit 0) */ + #define R_ETHSW_P1_QSTMAMU0_MACAM_Msk (0xffffUL) /*!< MACAM (Bitfield-Mask: 0xffff) */ +/* ====================================================== P1_QSTMAMU1 ====================================================== */ + #define R_ETHSW_P1_QSTMAMU1_MACAM_Pos (0UL) /*!< MACAM (Bit 0) */ + #define R_ETHSW_P1_QSTMAMU1_MACAM_Msk (0xffffUL) /*!< MACAM (Bitfield-Mask: 0xffff) */ +/* ====================================================== P1_QSTMAMU2 ====================================================== */ + #define R_ETHSW_P1_QSTMAMU2_MACAM_Pos (0UL) /*!< MACAM (Bit 0) */ + #define R_ETHSW_P1_QSTMAMU2_MACAM_Msk (0xffffUL) /*!< MACAM (Bitfield-Mask: 0xffff) */ +/* ====================================================== P1_QSTMAMU3 ====================================================== */ + #define R_ETHSW_P1_QSTMAMU3_MACAM_Pos (0UL) /*!< MACAM (Bit 0) */ + #define R_ETHSW_P1_QSTMAMU3_MACAM_Msk (0xffffUL) /*!< MACAM (Bitfield-Mask: 0xffff) */ +/* ====================================================== P1_QSTMAMU4 ====================================================== */ + #define R_ETHSW_P1_QSTMAMU4_MACAM_Pos (0UL) /*!< MACAM (Bit 0) */ + #define R_ETHSW_P1_QSTMAMU4_MACAM_Msk (0xffffUL) /*!< MACAM (Bitfield-Mask: 0xffff) */ +/* ====================================================== P1_QSTMAMU5 ====================================================== */ + #define R_ETHSW_P1_QSTMAMU5_MACAM_Pos (0UL) /*!< MACAM (Bit 0) */ + #define R_ETHSW_P1_QSTMAMU5_MACAM_Msk (0xffffUL) /*!< MACAM (Bitfield-Mask: 0xffff) */ +/* ====================================================== P1_QSTMAMU6 ====================================================== */ + #define R_ETHSW_P1_QSTMAMU6_MACAM_Pos (0UL) /*!< MACAM (Bit 0) */ + #define R_ETHSW_P1_QSTMAMU6_MACAM_Msk (0xffffUL) /*!< MACAM (Bitfield-Mask: 0xffff) */ +/* ====================================================== P1_QSTMAMU7 ====================================================== */ + #define R_ETHSW_P1_QSTMAMU7_MACAM_Pos (0UL) /*!< MACAM (Bit 0) */ + #define R_ETHSW_P1_QSTMAMU7_MACAM_Msk (0xffffUL) /*!< MACAM (Bitfield-Mask: 0xffff) */ +/* ====================================================== P1_QSTMAMD0 ====================================================== */ + #define R_ETHSW_P1_QSTMAMD0_MACAM_Pos (0UL) /*!< MACAM (Bit 0) */ + #define R_ETHSW_P1_QSTMAMD0_MACAM_Msk (0xffffffffUL) /*!< MACAM (Bitfield-Mask: 0xffffffff) */ +/* ====================================================== P1_QSTMAMD1 ====================================================== */ + #define R_ETHSW_P1_QSTMAMD1_MACAM_Pos (0UL) /*!< MACAM (Bit 0) */ + #define R_ETHSW_P1_QSTMAMD1_MACAM_Msk (0xffffffffUL) /*!< MACAM (Bitfield-Mask: 0xffffffff) */ +/* ====================================================== P1_QSTMAMD2 ====================================================== */ + #define R_ETHSW_P1_QSTMAMD2_MACAM_Pos (0UL) /*!< MACAM (Bit 0) */ + #define R_ETHSW_P1_QSTMAMD2_MACAM_Msk (0xffffffffUL) /*!< MACAM (Bitfield-Mask: 0xffffffff) */ +/* ====================================================== P1_QSTMAMD3 ====================================================== */ + #define R_ETHSW_P1_QSTMAMD3_MACAM_Pos (0UL) /*!< MACAM (Bit 0) */ + #define R_ETHSW_P1_QSTMAMD3_MACAM_Msk (0xffffffffUL) /*!< MACAM (Bitfield-Mask: 0xffffffff) */ +/* ====================================================== P1_QSTMAMD4 ====================================================== */ + #define R_ETHSW_P1_QSTMAMD4_MACAM_Pos (0UL) /*!< MACAM (Bit 0) */ + #define R_ETHSW_P1_QSTMAMD4_MACAM_Msk (0xffffffffUL) /*!< MACAM (Bitfield-Mask: 0xffffffff) */ +/* ====================================================== P1_QSTMAMD5 ====================================================== */ + #define R_ETHSW_P1_QSTMAMD5_MACAM_Pos (0UL) /*!< MACAM (Bit 0) */ + #define R_ETHSW_P1_QSTMAMD5_MACAM_Msk (0xffffffffUL) /*!< MACAM (Bitfield-Mask: 0xffffffff) */ +/* ====================================================== P1_QSTMAMD6 ====================================================== */ + #define R_ETHSW_P1_QSTMAMD6_MACAM_Pos (0UL) /*!< MACAM (Bit 0) */ + #define R_ETHSW_P1_QSTMAMD6_MACAM_Msk (0xffffffffUL) /*!< MACAM (Bitfield-Mask: 0xffffffff) */ +/* ====================================================== P1_QSTMAMD7 ====================================================== */ + #define R_ETHSW_P1_QSTMAMD7_MACAM_Pos (0UL) /*!< MACAM (Bit 0) */ + #define R_ETHSW_P1_QSTMAMD7_MACAM_Msk (0xffffffffUL) /*!< MACAM (Bitfield-Mask: 0xffffffff) */ +/* ====================================================== P1_QSFTVL0 ======================================================= */ + #define R_ETHSW_P1_QSFTVL0_VLANID_Pos (0UL) /*!< VLANID (Bit 0) */ + #define R_ETHSW_P1_QSFTVL0_VLANID_Msk (0xfffUL) /*!< VLANID (Bitfield-Mask: 0xfff) */ + #define R_ETHSW_P1_QSFTVL0_DEI_Pos (12UL) /*!< DEI (Bit 12) */ + #define R_ETHSW_P1_QSFTVL0_DEI_Msk (0x1000UL) /*!< DEI (Bitfield-Mask: 0x01) */ + #define R_ETHSW_P1_QSFTVL0_PCP_Pos (13UL) /*!< PCP (Bit 13) */ + #define R_ETHSW_P1_QSFTVL0_PCP_Msk (0xe000UL) /*!< PCP (Bitfield-Mask: 0x07) */ + #define R_ETHSW_P1_QSFTVL0_TAGMD_Pos (16UL) /*!< TAGMD (Bit 16) */ + #define R_ETHSW_P1_QSFTVL0_TAGMD_Msk (0x30000UL) /*!< TAGMD (Bitfield-Mask: 0x03) */ +/* ====================================================== P1_QSFTVL1 ======================================================= */ + #define R_ETHSW_P1_QSFTVL1_VLANID_Pos (0UL) /*!< VLANID (Bit 0) */ + #define R_ETHSW_P1_QSFTVL1_VLANID_Msk (0xfffUL) /*!< VLANID (Bitfield-Mask: 0xfff) */ + #define R_ETHSW_P1_QSFTVL1_DEI_Pos (12UL) /*!< DEI (Bit 12) */ + #define R_ETHSW_P1_QSFTVL1_DEI_Msk (0x1000UL) /*!< DEI (Bitfield-Mask: 0x01) */ + #define R_ETHSW_P1_QSFTVL1_PCP_Pos (13UL) /*!< PCP (Bit 13) */ + #define R_ETHSW_P1_QSFTVL1_PCP_Msk (0xe000UL) /*!< PCP (Bitfield-Mask: 0x07) */ + #define R_ETHSW_P1_QSFTVL1_TAGMD_Pos (16UL) /*!< TAGMD (Bit 16) */ + #define R_ETHSW_P1_QSFTVL1_TAGMD_Msk (0x30000UL) /*!< TAGMD (Bitfield-Mask: 0x03) */ +/* ====================================================== P1_QSFTVL2 ======================================================= */ + #define R_ETHSW_P1_QSFTVL2_VLANID_Pos (0UL) /*!< VLANID (Bit 0) */ + #define R_ETHSW_P1_QSFTVL2_VLANID_Msk (0xfffUL) /*!< VLANID (Bitfield-Mask: 0xfff) */ + #define R_ETHSW_P1_QSFTVL2_DEI_Pos (12UL) /*!< DEI (Bit 12) */ + #define R_ETHSW_P1_QSFTVL2_DEI_Msk (0x1000UL) /*!< DEI (Bitfield-Mask: 0x01) */ + #define R_ETHSW_P1_QSFTVL2_PCP_Pos (13UL) /*!< PCP (Bit 13) */ + #define R_ETHSW_P1_QSFTVL2_PCP_Msk (0xe000UL) /*!< PCP (Bitfield-Mask: 0x07) */ + #define R_ETHSW_P1_QSFTVL2_TAGMD_Pos (16UL) /*!< TAGMD (Bit 16) */ + #define R_ETHSW_P1_QSFTVL2_TAGMD_Msk (0x30000UL) /*!< TAGMD (Bitfield-Mask: 0x03) */ +/* ====================================================== P1_QSFTVL3 ======================================================= */ + #define R_ETHSW_P1_QSFTVL3_VLANID_Pos (0UL) /*!< VLANID (Bit 0) */ + #define R_ETHSW_P1_QSFTVL3_VLANID_Msk (0xfffUL) /*!< VLANID (Bitfield-Mask: 0xfff) */ + #define R_ETHSW_P1_QSFTVL3_DEI_Pos (12UL) /*!< DEI (Bit 12) */ + #define R_ETHSW_P1_QSFTVL3_DEI_Msk (0x1000UL) /*!< DEI (Bitfield-Mask: 0x01) */ + #define R_ETHSW_P1_QSFTVL3_PCP_Pos (13UL) /*!< PCP (Bit 13) */ + #define R_ETHSW_P1_QSFTVL3_PCP_Msk (0xe000UL) /*!< PCP (Bitfield-Mask: 0x07) */ + #define R_ETHSW_P1_QSFTVL3_TAGMD_Pos (16UL) /*!< TAGMD (Bit 16) */ + #define R_ETHSW_P1_QSFTVL3_TAGMD_Msk (0x30000UL) /*!< TAGMD (Bitfield-Mask: 0x03) */ +/* ====================================================== P1_QSFTVL4 ======================================================= */ + #define R_ETHSW_P1_QSFTVL4_VLANID_Pos (0UL) /*!< VLANID (Bit 0) */ + #define R_ETHSW_P1_QSFTVL4_VLANID_Msk (0xfffUL) /*!< VLANID (Bitfield-Mask: 0xfff) */ + #define R_ETHSW_P1_QSFTVL4_DEI_Pos (12UL) /*!< DEI (Bit 12) */ + #define R_ETHSW_P1_QSFTVL4_DEI_Msk (0x1000UL) /*!< DEI (Bitfield-Mask: 0x01) */ + #define R_ETHSW_P1_QSFTVL4_PCP_Pos (13UL) /*!< PCP (Bit 13) */ + #define R_ETHSW_P1_QSFTVL4_PCP_Msk (0xe000UL) /*!< PCP (Bitfield-Mask: 0x07) */ + #define R_ETHSW_P1_QSFTVL4_TAGMD_Pos (16UL) /*!< TAGMD (Bit 16) */ + #define R_ETHSW_P1_QSFTVL4_TAGMD_Msk (0x30000UL) /*!< TAGMD (Bitfield-Mask: 0x03) */ +/* ====================================================== P1_QSFTVL5 ======================================================= */ + #define R_ETHSW_P1_QSFTVL5_VLANID_Pos (0UL) /*!< VLANID (Bit 0) */ + #define R_ETHSW_P1_QSFTVL5_VLANID_Msk (0xfffUL) /*!< VLANID (Bitfield-Mask: 0xfff) */ + #define R_ETHSW_P1_QSFTVL5_DEI_Pos (12UL) /*!< DEI (Bit 12) */ + #define R_ETHSW_P1_QSFTVL5_DEI_Msk (0x1000UL) /*!< DEI (Bitfield-Mask: 0x01) */ + #define R_ETHSW_P1_QSFTVL5_PCP_Pos (13UL) /*!< PCP (Bit 13) */ + #define R_ETHSW_P1_QSFTVL5_PCP_Msk (0xe000UL) /*!< PCP (Bitfield-Mask: 0x07) */ + #define R_ETHSW_P1_QSFTVL5_TAGMD_Pos (16UL) /*!< TAGMD (Bit 16) */ + #define R_ETHSW_P1_QSFTVL5_TAGMD_Msk (0x30000UL) /*!< TAGMD (Bitfield-Mask: 0x03) */ +/* ====================================================== P1_QSFTVL6 ======================================================= */ + #define R_ETHSW_P1_QSFTVL6_VLANID_Pos (0UL) /*!< VLANID (Bit 0) */ + #define R_ETHSW_P1_QSFTVL6_VLANID_Msk (0xfffUL) /*!< VLANID (Bitfield-Mask: 0xfff) */ + #define R_ETHSW_P1_QSFTVL6_DEI_Pos (12UL) /*!< DEI (Bit 12) */ + #define R_ETHSW_P1_QSFTVL6_DEI_Msk (0x1000UL) /*!< DEI (Bitfield-Mask: 0x01) */ + #define R_ETHSW_P1_QSFTVL6_PCP_Pos (13UL) /*!< PCP (Bit 13) */ + #define R_ETHSW_P1_QSFTVL6_PCP_Msk (0xe000UL) /*!< PCP (Bitfield-Mask: 0x07) */ + #define R_ETHSW_P1_QSFTVL6_TAGMD_Pos (16UL) /*!< TAGMD (Bit 16) */ + #define R_ETHSW_P1_QSFTVL6_TAGMD_Msk (0x30000UL) /*!< TAGMD (Bitfield-Mask: 0x03) */ +/* ====================================================== P1_QSFTVL7 ======================================================= */ + #define R_ETHSW_P1_QSFTVL7_VLANID_Pos (0UL) /*!< VLANID (Bit 0) */ + #define R_ETHSW_P1_QSFTVL7_VLANID_Msk (0xfffUL) /*!< VLANID (Bitfield-Mask: 0xfff) */ + #define R_ETHSW_P1_QSFTVL7_DEI_Pos (12UL) /*!< DEI (Bit 12) */ + #define R_ETHSW_P1_QSFTVL7_DEI_Msk (0x1000UL) /*!< DEI (Bitfield-Mask: 0x01) */ + #define R_ETHSW_P1_QSFTVL7_PCP_Pos (13UL) /*!< PCP (Bit 13) */ + #define R_ETHSW_P1_QSFTVL7_PCP_Msk (0xe000UL) /*!< PCP (Bitfield-Mask: 0x07) */ + #define R_ETHSW_P1_QSFTVL7_TAGMD_Pos (16UL) /*!< TAGMD (Bit 16) */ + #define R_ETHSW_P1_QSFTVL7_TAGMD_Msk (0x30000UL) /*!< TAGMD (Bitfield-Mask: 0x03) */ +/* ====================================================== P1_QSFTVLM0 ====================================================== */ + #define R_ETHSW_P1_QSFTVLM0_VLANIDM_Pos (0UL) /*!< VLANIDM (Bit 0) */ + #define R_ETHSW_P1_QSFTVLM0_VLANIDM_Msk (0xfffUL) /*!< VLANIDM (Bitfield-Mask: 0xfff) */ + #define R_ETHSW_P1_QSFTVLM0_DEIM_Pos (12UL) /*!< DEIM (Bit 12) */ + #define R_ETHSW_P1_QSFTVLM0_DEIM_Msk (0x1000UL) /*!< DEIM (Bitfield-Mask: 0x01) */ + #define R_ETHSW_P1_QSFTVLM0_PCPM_Pos (13UL) /*!< PCPM (Bit 13) */ + #define R_ETHSW_P1_QSFTVLM0_PCPM_Msk (0xe000UL) /*!< PCPM (Bitfield-Mask: 0x07) */ +/* ====================================================== P1_QSFTVLM1 ====================================================== */ + #define R_ETHSW_P1_QSFTVLM1_VLANIDM_Pos (0UL) /*!< VLANIDM (Bit 0) */ + #define R_ETHSW_P1_QSFTVLM1_VLANIDM_Msk (0xfffUL) /*!< VLANIDM (Bitfield-Mask: 0xfff) */ + #define R_ETHSW_P1_QSFTVLM1_DEIM_Pos (12UL) /*!< DEIM (Bit 12) */ + #define R_ETHSW_P1_QSFTVLM1_DEIM_Msk (0x1000UL) /*!< DEIM (Bitfield-Mask: 0x01) */ + #define R_ETHSW_P1_QSFTVLM1_PCPM_Pos (13UL) /*!< PCPM (Bit 13) */ + #define R_ETHSW_P1_QSFTVLM1_PCPM_Msk (0xe000UL) /*!< PCPM (Bitfield-Mask: 0x07) */ +/* ====================================================== P1_QSFTVLM2 ====================================================== */ + #define R_ETHSW_P1_QSFTVLM2_VLANIDM_Pos (0UL) /*!< VLANIDM (Bit 0) */ + #define R_ETHSW_P1_QSFTVLM2_VLANIDM_Msk (0xfffUL) /*!< VLANIDM (Bitfield-Mask: 0xfff) */ + #define R_ETHSW_P1_QSFTVLM2_DEIM_Pos (12UL) /*!< DEIM (Bit 12) */ + #define R_ETHSW_P1_QSFTVLM2_DEIM_Msk (0x1000UL) /*!< DEIM (Bitfield-Mask: 0x01) */ + #define R_ETHSW_P1_QSFTVLM2_PCPM_Pos (13UL) /*!< PCPM (Bit 13) */ + #define R_ETHSW_P1_QSFTVLM2_PCPM_Msk (0xe000UL) /*!< PCPM (Bitfield-Mask: 0x07) */ +/* ====================================================== P1_QSFTVLM3 ====================================================== */ + #define R_ETHSW_P1_QSFTVLM3_VLANIDM_Pos (0UL) /*!< VLANIDM (Bit 0) */ + #define R_ETHSW_P1_QSFTVLM3_VLANIDM_Msk (0xfffUL) /*!< VLANIDM (Bitfield-Mask: 0xfff) */ + #define R_ETHSW_P1_QSFTVLM3_DEIM_Pos (12UL) /*!< DEIM (Bit 12) */ + #define R_ETHSW_P1_QSFTVLM3_DEIM_Msk (0x1000UL) /*!< DEIM (Bitfield-Mask: 0x01) */ + #define R_ETHSW_P1_QSFTVLM3_PCPM_Pos (13UL) /*!< PCPM (Bit 13) */ + #define R_ETHSW_P1_QSFTVLM3_PCPM_Msk (0xe000UL) /*!< PCPM (Bitfield-Mask: 0x07) */ +/* ====================================================== P1_QSFTVLM4 ====================================================== */ + #define R_ETHSW_P1_QSFTVLM4_VLANIDM_Pos (0UL) /*!< VLANIDM (Bit 0) */ + #define R_ETHSW_P1_QSFTVLM4_VLANIDM_Msk (0xfffUL) /*!< VLANIDM (Bitfield-Mask: 0xfff) */ + #define R_ETHSW_P1_QSFTVLM4_DEIM_Pos (12UL) /*!< DEIM (Bit 12) */ + #define R_ETHSW_P1_QSFTVLM4_DEIM_Msk (0x1000UL) /*!< DEIM (Bitfield-Mask: 0x01) */ + #define R_ETHSW_P1_QSFTVLM4_PCPM_Pos (13UL) /*!< PCPM (Bit 13) */ + #define R_ETHSW_P1_QSFTVLM4_PCPM_Msk (0xe000UL) /*!< PCPM (Bitfield-Mask: 0x07) */ +/* ====================================================== P1_QSFTVLM5 ====================================================== */ + #define R_ETHSW_P1_QSFTVLM5_VLANIDM_Pos (0UL) /*!< VLANIDM (Bit 0) */ + #define R_ETHSW_P1_QSFTVLM5_VLANIDM_Msk (0xfffUL) /*!< VLANIDM (Bitfield-Mask: 0xfff) */ + #define R_ETHSW_P1_QSFTVLM5_DEIM_Pos (12UL) /*!< DEIM (Bit 12) */ + #define R_ETHSW_P1_QSFTVLM5_DEIM_Msk (0x1000UL) /*!< DEIM (Bitfield-Mask: 0x01) */ + #define R_ETHSW_P1_QSFTVLM5_PCPM_Pos (13UL) /*!< PCPM (Bit 13) */ + #define R_ETHSW_P1_QSFTVLM5_PCPM_Msk (0xe000UL) /*!< PCPM (Bitfield-Mask: 0x07) */ +/* ====================================================== P1_QSFTVLM6 ====================================================== */ + #define R_ETHSW_P1_QSFTVLM6_VLANIDM_Pos (0UL) /*!< VLANIDM (Bit 0) */ + #define R_ETHSW_P1_QSFTVLM6_VLANIDM_Msk (0xfffUL) /*!< VLANIDM (Bitfield-Mask: 0xfff) */ + #define R_ETHSW_P1_QSFTVLM6_DEIM_Pos (12UL) /*!< DEIM (Bit 12) */ + #define R_ETHSW_P1_QSFTVLM6_DEIM_Msk (0x1000UL) /*!< DEIM (Bitfield-Mask: 0x01) */ + #define R_ETHSW_P1_QSFTVLM6_PCPM_Pos (13UL) /*!< PCPM (Bit 13) */ + #define R_ETHSW_P1_QSFTVLM6_PCPM_Msk (0xe000UL) /*!< PCPM (Bitfield-Mask: 0x07) */ +/* ====================================================== P1_QSFTVLM7 ====================================================== */ + #define R_ETHSW_P1_QSFTVLM7_VLANIDM_Pos (0UL) /*!< VLANIDM (Bit 0) */ + #define R_ETHSW_P1_QSFTVLM7_VLANIDM_Msk (0xfffUL) /*!< VLANIDM (Bitfield-Mask: 0xfff) */ + #define R_ETHSW_P1_QSFTVLM7_DEIM_Pos (12UL) /*!< DEIM (Bit 12) */ + #define R_ETHSW_P1_QSFTVLM7_DEIM_Msk (0x1000UL) /*!< DEIM (Bitfield-Mask: 0x01) */ + #define R_ETHSW_P1_QSFTVLM7_PCPM_Pos (13UL) /*!< PCPM (Bit 13) */ + #define R_ETHSW_P1_QSFTVLM7_PCPM_Msk (0xe000UL) /*!< PCPM (Bitfield-Mask: 0x07) */ +/* ====================================================== P1_QSFTBL0 ======================================================= */ + #define R_ETHSW_P1_QSFTBL0_QSTE_Pos (0UL) /*!< QSTE (Bit 0) */ + #define R_ETHSW_P1_QSFTBL0_QSTE_Msk (0x1UL) /*!< QSTE (Bitfield-Mask: 0x01) */ + #define R_ETHSW_P1_QSFTBL0_GAID_Pos (4UL) /*!< GAID (Bit 4) */ + #define R_ETHSW_P1_QSFTBL0_GAID_Msk (0x70UL) /*!< GAID (Bitfield-Mask: 0x07) */ + #define R_ETHSW_P1_QSFTBL0_GAIDV_Pos (7UL) /*!< GAIDV (Bit 7) */ + #define R_ETHSW_P1_QSFTBL0_GAIDV_Msk (0x80UL) /*!< GAIDV (Bitfield-Mask: 0x01) */ + #define R_ETHSW_P1_QSFTBL0_MEID_Pos (8UL) /*!< MEID (Bit 8) */ + #define R_ETHSW_P1_QSFTBL0_MEID_Msk (0x700UL) /*!< MEID (Bitfield-Mask: 0x07) */ + #define R_ETHSW_P1_QSFTBL0_MEIDV_Pos (12UL) /*!< MEIDV (Bit 12) */ + #define R_ETHSW_P1_QSFTBL0_MEIDV_Msk (0x1000UL) /*!< MEIDV (Bitfield-Mask: 0x01) */ + #define R_ETHSW_P1_QSFTBL0_MSDU_Pos (16UL) /*!< MSDU (Bit 16) */ + #define R_ETHSW_P1_QSFTBL0_MSDU_Msk (0x7ff0000UL) /*!< MSDU (Bitfield-Mask: 0x7ff) */ + #define R_ETHSW_P1_QSFTBL0_MSDUE_Pos (27UL) /*!< MSDUE (Bit 27) */ + #define R_ETHSW_P1_QSFTBL0_MSDUE_Msk (0x8000000UL) /*!< MSDUE (Bitfield-Mask: 0x01) */ + #define R_ETHSW_P1_QSFTBL0_QSMSM_Pos (28UL) /*!< QSMSM (Bit 28) */ + #define R_ETHSW_P1_QSFTBL0_QSMSM_Msk (0x10000000UL) /*!< QSMSM (Bitfield-Mask: 0x01) */ +/* ====================================================== P1_QSFTBL1 ======================================================= */ + #define R_ETHSW_P1_QSFTBL1_QSTE_Pos (0UL) /*!< QSTE (Bit 0) */ + #define R_ETHSW_P1_QSFTBL1_QSTE_Msk (0x1UL) /*!< QSTE (Bitfield-Mask: 0x01) */ + #define R_ETHSW_P1_QSFTBL1_GAID_Pos (4UL) /*!< GAID (Bit 4) */ + #define R_ETHSW_P1_QSFTBL1_GAID_Msk (0x70UL) /*!< GAID (Bitfield-Mask: 0x07) */ + #define R_ETHSW_P1_QSFTBL1_GAIDV_Pos (7UL) /*!< GAIDV (Bit 7) */ + #define R_ETHSW_P1_QSFTBL1_GAIDV_Msk (0x80UL) /*!< GAIDV (Bitfield-Mask: 0x01) */ + #define R_ETHSW_P1_QSFTBL1_MEID_Pos (8UL) /*!< MEID (Bit 8) */ + #define R_ETHSW_P1_QSFTBL1_MEID_Msk (0x700UL) /*!< MEID (Bitfield-Mask: 0x07) */ + #define R_ETHSW_P1_QSFTBL1_MEIDV_Pos (12UL) /*!< MEIDV (Bit 12) */ + #define R_ETHSW_P1_QSFTBL1_MEIDV_Msk (0x1000UL) /*!< MEIDV (Bitfield-Mask: 0x01) */ + #define R_ETHSW_P1_QSFTBL1_MSDU_Pos (16UL) /*!< MSDU (Bit 16) */ + #define R_ETHSW_P1_QSFTBL1_MSDU_Msk (0x7ff0000UL) /*!< MSDU (Bitfield-Mask: 0x7ff) */ + #define R_ETHSW_P1_QSFTBL1_MSDUE_Pos (27UL) /*!< MSDUE (Bit 27) */ + #define R_ETHSW_P1_QSFTBL1_MSDUE_Msk (0x8000000UL) /*!< MSDUE (Bitfield-Mask: 0x01) */ + #define R_ETHSW_P1_QSFTBL1_QSMSM_Pos (28UL) /*!< QSMSM (Bit 28) */ + #define R_ETHSW_P1_QSFTBL1_QSMSM_Msk (0x10000000UL) /*!< QSMSM (Bitfield-Mask: 0x01) */ +/* ====================================================== P1_QSFTBL2 ======================================================= */ + #define R_ETHSW_P1_QSFTBL2_QSTE_Pos (0UL) /*!< QSTE (Bit 0) */ + #define R_ETHSW_P1_QSFTBL2_QSTE_Msk (0x1UL) /*!< QSTE (Bitfield-Mask: 0x01) */ + #define R_ETHSW_P1_QSFTBL2_GAID_Pos (4UL) /*!< GAID (Bit 4) */ + #define R_ETHSW_P1_QSFTBL2_GAID_Msk (0x70UL) /*!< GAID (Bitfield-Mask: 0x07) */ + #define R_ETHSW_P1_QSFTBL2_GAIDV_Pos (7UL) /*!< GAIDV (Bit 7) */ + #define R_ETHSW_P1_QSFTBL2_GAIDV_Msk (0x80UL) /*!< GAIDV (Bitfield-Mask: 0x01) */ + #define R_ETHSW_P1_QSFTBL2_MEID_Pos (8UL) /*!< MEID (Bit 8) */ + #define R_ETHSW_P1_QSFTBL2_MEID_Msk (0x700UL) /*!< MEID (Bitfield-Mask: 0x07) */ + #define R_ETHSW_P1_QSFTBL2_MEIDV_Pos (12UL) /*!< MEIDV (Bit 12) */ + #define R_ETHSW_P1_QSFTBL2_MEIDV_Msk (0x1000UL) /*!< MEIDV (Bitfield-Mask: 0x01) */ + #define R_ETHSW_P1_QSFTBL2_MSDU_Pos (16UL) /*!< MSDU (Bit 16) */ + #define R_ETHSW_P1_QSFTBL2_MSDU_Msk (0x7ff0000UL) /*!< MSDU (Bitfield-Mask: 0x7ff) */ + #define R_ETHSW_P1_QSFTBL2_MSDUE_Pos (27UL) /*!< MSDUE (Bit 27) */ + #define R_ETHSW_P1_QSFTBL2_MSDUE_Msk (0x8000000UL) /*!< MSDUE (Bitfield-Mask: 0x01) */ + #define R_ETHSW_P1_QSFTBL2_QSMSM_Pos (28UL) /*!< QSMSM (Bit 28) */ + #define R_ETHSW_P1_QSFTBL2_QSMSM_Msk (0x10000000UL) /*!< QSMSM (Bitfield-Mask: 0x01) */ +/* ====================================================== P1_QSFTBL3 ======================================================= */ + #define R_ETHSW_P1_QSFTBL3_QSTE_Pos (0UL) /*!< QSTE (Bit 0) */ + #define R_ETHSW_P1_QSFTBL3_QSTE_Msk (0x1UL) /*!< QSTE (Bitfield-Mask: 0x01) */ + #define R_ETHSW_P1_QSFTBL3_GAID_Pos (4UL) /*!< GAID (Bit 4) */ + #define R_ETHSW_P1_QSFTBL3_GAID_Msk (0x70UL) /*!< GAID (Bitfield-Mask: 0x07) */ + #define R_ETHSW_P1_QSFTBL3_GAIDV_Pos (7UL) /*!< GAIDV (Bit 7) */ + #define R_ETHSW_P1_QSFTBL3_GAIDV_Msk (0x80UL) /*!< GAIDV (Bitfield-Mask: 0x01) */ + #define R_ETHSW_P1_QSFTBL3_MEID_Pos (8UL) /*!< MEID (Bit 8) */ + #define R_ETHSW_P1_QSFTBL3_MEID_Msk (0x700UL) /*!< MEID (Bitfield-Mask: 0x07) */ + #define R_ETHSW_P1_QSFTBL3_MEIDV_Pos (12UL) /*!< MEIDV (Bit 12) */ + #define R_ETHSW_P1_QSFTBL3_MEIDV_Msk (0x1000UL) /*!< MEIDV (Bitfield-Mask: 0x01) */ + #define R_ETHSW_P1_QSFTBL3_MSDU_Pos (16UL) /*!< MSDU (Bit 16) */ + #define R_ETHSW_P1_QSFTBL3_MSDU_Msk (0x7ff0000UL) /*!< MSDU (Bitfield-Mask: 0x7ff) */ + #define R_ETHSW_P1_QSFTBL3_MSDUE_Pos (27UL) /*!< MSDUE (Bit 27) */ + #define R_ETHSW_P1_QSFTBL3_MSDUE_Msk (0x8000000UL) /*!< MSDUE (Bitfield-Mask: 0x01) */ + #define R_ETHSW_P1_QSFTBL3_QSMSM_Pos (28UL) /*!< QSMSM (Bit 28) */ + #define R_ETHSW_P1_QSFTBL3_QSMSM_Msk (0x10000000UL) /*!< QSMSM (Bitfield-Mask: 0x01) */ +/* ====================================================== P1_QSFTBL4 ======================================================= */ + #define R_ETHSW_P1_QSFTBL4_QSTE_Pos (0UL) /*!< QSTE (Bit 0) */ + #define R_ETHSW_P1_QSFTBL4_QSTE_Msk (0x1UL) /*!< QSTE (Bitfield-Mask: 0x01) */ + #define R_ETHSW_P1_QSFTBL4_GAID_Pos (4UL) /*!< GAID (Bit 4) */ + #define R_ETHSW_P1_QSFTBL4_GAID_Msk (0x70UL) /*!< GAID (Bitfield-Mask: 0x07) */ + #define R_ETHSW_P1_QSFTBL4_GAIDV_Pos (7UL) /*!< GAIDV (Bit 7) */ + #define R_ETHSW_P1_QSFTBL4_GAIDV_Msk (0x80UL) /*!< GAIDV (Bitfield-Mask: 0x01) */ + #define R_ETHSW_P1_QSFTBL4_MEID_Pos (8UL) /*!< MEID (Bit 8) */ + #define R_ETHSW_P1_QSFTBL4_MEID_Msk (0x700UL) /*!< MEID (Bitfield-Mask: 0x07) */ + #define R_ETHSW_P1_QSFTBL4_MEIDV_Pos (12UL) /*!< MEIDV (Bit 12) */ + #define R_ETHSW_P1_QSFTBL4_MEIDV_Msk (0x1000UL) /*!< MEIDV (Bitfield-Mask: 0x01) */ + #define R_ETHSW_P1_QSFTBL4_MSDU_Pos (16UL) /*!< MSDU (Bit 16) */ + #define R_ETHSW_P1_QSFTBL4_MSDU_Msk (0x7ff0000UL) /*!< MSDU (Bitfield-Mask: 0x7ff) */ + #define R_ETHSW_P1_QSFTBL4_MSDUE_Pos (27UL) /*!< MSDUE (Bit 27) */ + #define R_ETHSW_P1_QSFTBL4_MSDUE_Msk (0x8000000UL) /*!< MSDUE (Bitfield-Mask: 0x01) */ + #define R_ETHSW_P1_QSFTBL4_QSMSM_Pos (28UL) /*!< QSMSM (Bit 28) */ + #define R_ETHSW_P1_QSFTBL4_QSMSM_Msk (0x10000000UL) /*!< QSMSM (Bitfield-Mask: 0x01) */ +/* ====================================================== P1_QSFTBL5 ======================================================= */ + #define R_ETHSW_P1_QSFTBL5_QSTE_Pos (0UL) /*!< QSTE (Bit 0) */ + #define R_ETHSW_P1_QSFTBL5_QSTE_Msk (0x1UL) /*!< QSTE (Bitfield-Mask: 0x01) */ + #define R_ETHSW_P1_QSFTBL5_GAID_Pos (4UL) /*!< GAID (Bit 4) */ + #define R_ETHSW_P1_QSFTBL5_GAID_Msk (0x70UL) /*!< GAID (Bitfield-Mask: 0x07) */ + #define R_ETHSW_P1_QSFTBL5_GAIDV_Pos (7UL) /*!< GAIDV (Bit 7) */ + #define R_ETHSW_P1_QSFTBL5_GAIDV_Msk (0x80UL) /*!< GAIDV (Bitfield-Mask: 0x01) */ + #define R_ETHSW_P1_QSFTBL5_MEID_Pos (8UL) /*!< MEID (Bit 8) */ + #define R_ETHSW_P1_QSFTBL5_MEID_Msk (0x700UL) /*!< MEID (Bitfield-Mask: 0x07) */ + #define R_ETHSW_P1_QSFTBL5_MEIDV_Pos (12UL) /*!< MEIDV (Bit 12) */ + #define R_ETHSW_P1_QSFTBL5_MEIDV_Msk (0x1000UL) /*!< MEIDV (Bitfield-Mask: 0x01) */ + #define R_ETHSW_P1_QSFTBL5_MSDU_Pos (16UL) /*!< MSDU (Bit 16) */ + #define R_ETHSW_P1_QSFTBL5_MSDU_Msk (0x7ff0000UL) /*!< MSDU (Bitfield-Mask: 0x7ff) */ + #define R_ETHSW_P1_QSFTBL5_MSDUE_Pos (27UL) /*!< MSDUE (Bit 27) */ + #define R_ETHSW_P1_QSFTBL5_MSDUE_Msk (0x8000000UL) /*!< MSDUE (Bitfield-Mask: 0x01) */ + #define R_ETHSW_P1_QSFTBL5_QSMSM_Pos (28UL) /*!< QSMSM (Bit 28) */ + #define R_ETHSW_P1_QSFTBL5_QSMSM_Msk (0x10000000UL) /*!< QSMSM (Bitfield-Mask: 0x01) */ +/* ====================================================== P1_QSFTBL6 ======================================================= */ + #define R_ETHSW_P1_QSFTBL6_QSTE_Pos (0UL) /*!< QSTE (Bit 0) */ + #define R_ETHSW_P1_QSFTBL6_QSTE_Msk (0x1UL) /*!< QSTE (Bitfield-Mask: 0x01) */ + #define R_ETHSW_P1_QSFTBL6_GAID_Pos (4UL) /*!< GAID (Bit 4) */ + #define R_ETHSW_P1_QSFTBL6_GAID_Msk (0x70UL) /*!< GAID (Bitfield-Mask: 0x07) */ + #define R_ETHSW_P1_QSFTBL6_GAIDV_Pos (7UL) /*!< GAIDV (Bit 7) */ + #define R_ETHSW_P1_QSFTBL6_GAIDV_Msk (0x80UL) /*!< GAIDV (Bitfield-Mask: 0x01) */ + #define R_ETHSW_P1_QSFTBL6_MEID_Pos (8UL) /*!< MEID (Bit 8) */ + #define R_ETHSW_P1_QSFTBL6_MEID_Msk (0x700UL) /*!< MEID (Bitfield-Mask: 0x07) */ + #define R_ETHSW_P1_QSFTBL6_MEIDV_Pos (12UL) /*!< MEIDV (Bit 12) */ + #define R_ETHSW_P1_QSFTBL6_MEIDV_Msk (0x1000UL) /*!< MEIDV (Bitfield-Mask: 0x01) */ + #define R_ETHSW_P1_QSFTBL6_MSDU_Pos (16UL) /*!< MSDU (Bit 16) */ + #define R_ETHSW_P1_QSFTBL6_MSDU_Msk (0x7ff0000UL) /*!< MSDU (Bitfield-Mask: 0x7ff) */ + #define R_ETHSW_P1_QSFTBL6_MSDUE_Pos (27UL) /*!< MSDUE (Bit 27) */ + #define R_ETHSW_P1_QSFTBL6_MSDUE_Msk (0x8000000UL) /*!< MSDUE (Bitfield-Mask: 0x01) */ + #define R_ETHSW_P1_QSFTBL6_QSMSM_Pos (28UL) /*!< QSMSM (Bit 28) */ + #define R_ETHSW_P1_QSFTBL6_QSMSM_Msk (0x10000000UL) /*!< QSMSM (Bitfield-Mask: 0x01) */ +/* ====================================================== P1_QSFTBL7 ======================================================= */ + #define R_ETHSW_P1_QSFTBL7_QSTE_Pos (0UL) /*!< QSTE (Bit 0) */ + #define R_ETHSW_P1_QSFTBL7_QSTE_Msk (0x1UL) /*!< QSTE (Bitfield-Mask: 0x01) */ + #define R_ETHSW_P1_QSFTBL7_GAID_Pos (4UL) /*!< GAID (Bit 4) */ + #define R_ETHSW_P1_QSFTBL7_GAID_Msk (0x70UL) /*!< GAID (Bitfield-Mask: 0x07) */ + #define R_ETHSW_P1_QSFTBL7_GAIDV_Pos (7UL) /*!< GAIDV (Bit 7) */ + #define R_ETHSW_P1_QSFTBL7_GAIDV_Msk (0x80UL) /*!< GAIDV (Bitfield-Mask: 0x01) */ + #define R_ETHSW_P1_QSFTBL7_MEID_Pos (8UL) /*!< MEID (Bit 8) */ + #define R_ETHSW_P1_QSFTBL7_MEID_Msk (0x700UL) /*!< MEID (Bitfield-Mask: 0x07) */ + #define R_ETHSW_P1_QSFTBL7_MEIDV_Pos (12UL) /*!< MEIDV (Bit 12) */ + #define R_ETHSW_P1_QSFTBL7_MEIDV_Msk (0x1000UL) /*!< MEIDV (Bitfield-Mask: 0x01) */ + #define R_ETHSW_P1_QSFTBL7_MSDU_Pos (16UL) /*!< MSDU (Bit 16) */ + #define R_ETHSW_P1_QSFTBL7_MSDU_Msk (0x7ff0000UL) /*!< MSDU (Bitfield-Mask: 0x7ff) */ + #define R_ETHSW_P1_QSFTBL7_MSDUE_Pos (27UL) /*!< MSDUE (Bit 27) */ + #define R_ETHSW_P1_QSFTBL7_MSDUE_Msk (0x8000000UL) /*!< MSDUE (Bitfield-Mask: 0x01) */ + #define R_ETHSW_P1_QSFTBL7_QSMSM_Pos (28UL) /*!< QSMSM (Bit 28) */ + #define R_ETHSW_P1_QSFTBL7_QSMSM_Msk (0x10000000UL) /*!< QSMSM (Bitfield-Mask: 0x01) */ +/* ======================================================= P1_QSMFC0 ======================================================= */ + #define R_ETHSW_P1_QSMFC0_QSMFC_Pos (0UL) /*!< QSMFC (Bit 0) */ + #define R_ETHSW_P1_QSMFC0_QSMFC_Msk (0xffffUL) /*!< QSMFC (Bitfield-Mask: 0xffff) */ +/* ======================================================= P1_QSMFC1 ======================================================= */ + #define R_ETHSW_P1_QSMFC1_QSMFC_Pos (0UL) /*!< QSMFC (Bit 0) */ + #define R_ETHSW_P1_QSMFC1_QSMFC_Msk (0xffffUL) /*!< QSMFC (Bitfield-Mask: 0xffff) */ +/* ======================================================= P1_QSMFC2 ======================================================= */ + #define R_ETHSW_P1_QSMFC2_QSMFC_Pos (0UL) /*!< QSMFC (Bit 0) */ + #define R_ETHSW_P1_QSMFC2_QSMFC_Msk (0xffffUL) /*!< QSMFC (Bitfield-Mask: 0xffff) */ +/* ======================================================= P1_QSMFC3 ======================================================= */ + #define R_ETHSW_P1_QSMFC3_QSMFC_Pos (0UL) /*!< QSMFC (Bit 0) */ + #define R_ETHSW_P1_QSMFC3_QSMFC_Msk (0xffffUL) /*!< QSMFC (Bitfield-Mask: 0xffff) */ +/* ======================================================= P1_QSMFC4 ======================================================= */ + #define R_ETHSW_P1_QSMFC4_QSMFC_Pos (0UL) /*!< QSMFC (Bit 0) */ + #define R_ETHSW_P1_QSMFC4_QSMFC_Msk (0xffffUL) /*!< QSMFC (Bitfield-Mask: 0xffff) */ +/* ======================================================= P1_QSMFC5 ======================================================= */ + #define R_ETHSW_P1_QSMFC5_QSMFC_Pos (0UL) /*!< QSMFC (Bit 0) */ + #define R_ETHSW_P1_QSMFC5_QSMFC_Msk (0xffffUL) /*!< QSMFC (Bitfield-Mask: 0xffff) */ +/* ======================================================= P1_QSMFC6 ======================================================= */ + #define R_ETHSW_P1_QSMFC6_QSMFC_Pos (0UL) /*!< QSMFC (Bit 0) */ + #define R_ETHSW_P1_QSMFC6_QSMFC_Msk (0xffffUL) /*!< QSMFC (Bitfield-Mask: 0xffff) */ +/* ======================================================= P1_QSMFC7 ======================================================= */ + #define R_ETHSW_P1_QSMFC7_QSMFC_Pos (0UL) /*!< QSMFC (Bit 0) */ + #define R_ETHSW_P1_QSMFC7_QSMFC_Msk (0xffffUL) /*!< QSMFC (Bitfield-Mask: 0xffff) */ +/* ====================================================== P1_QMSPPC0 ======================================================= */ + #define R_ETHSW_P1_QMSPPC0_QMSPPC_Pos (0UL) /*!< QMSPPC (Bit 0) */ + #define R_ETHSW_P1_QMSPPC0_QMSPPC_Msk (0xffffUL) /*!< QMSPPC (Bitfield-Mask: 0xffff) */ +/* ====================================================== P1_QMSPPC1 ======================================================= */ + #define R_ETHSW_P1_QMSPPC1_QMSPPC_Pos (0UL) /*!< QMSPPC (Bit 0) */ + #define R_ETHSW_P1_QMSPPC1_QMSPPC_Msk (0xffffUL) /*!< QMSPPC (Bitfield-Mask: 0xffff) */ +/* ====================================================== P1_QMSPPC2 ======================================================= */ + #define R_ETHSW_P1_QMSPPC2_QMSPPC_Pos (0UL) /*!< QMSPPC (Bit 0) */ + #define R_ETHSW_P1_QMSPPC2_QMSPPC_Msk (0xffffUL) /*!< QMSPPC (Bitfield-Mask: 0xffff) */ +/* ====================================================== P1_QMSPPC3 ======================================================= */ + #define R_ETHSW_P1_QMSPPC3_QMSPPC_Pos (0UL) /*!< QMSPPC (Bit 0) */ + #define R_ETHSW_P1_QMSPPC3_QMSPPC_Msk (0xffffUL) /*!< QMSPPC (Bitfield-Mask: 0xffff) */ +/* ====================================================== P1_QMSPPC4 ======================================================= */ + #define R_ETHSW_P1_QMSPPC4_QMSPPC_Pos (0UL) /*!< QMSPPC (Bit 0) */ + #define R_ETHSW_P1_QMSPPC4_QMSPPC_Msk (0xffffUL) /*!< QMSPPC (Bitfield-Mask: 0xffff) */ +/* ====================================================== P1_QMSPPC5 ======================================================= */ + #define R_ETHSW_P1_QMSPPC5_QMSPPC_Pos (0UL) /*!< QMSPPC (Bit 0) */ + #define R_ETHSW_P1_QMSPPC5_QMSPPC_Msk (0xffffUL) /*!< QMSPPC (Bitfield-Mask: 0xffff) */ +/* ====================================================== P1_QMSPPC6 ======================================================= */ + #define R_ETHSW_P1_QMSPPC6_QMSPPC_Pos (0UL) /*!< QMSPPC (Bit 0) */ + #define R_ETHSW_P1_QMSPPC6_QMSPPC_Msk (0xffffUL) /*!< QMSPPC (Bitfield-Mask: 0xffff) */ +/* ====================================================== P1_QMSPPC7 ======================================================= */ + #define R_ETHSW_P1_QMSPPC7_QMSPPC_Pos (0UL) /*!< QMSPPC (Bit 0) */ + #define R_ETHSW_P1_QMSPPC7_QMSPPC_Msk (0xffffUL) /*!< QMSPPC (Bitfield-Mask: 0xffff) */ +/* ====================================================== P1_QMSRPC0 ======================================================= */ + #define R_ETHSW_P1_QMSRPC0_QMSRPC_Pos (0UL) /*!< QMSRPC (Bit 0) */ + #define R_ETHSW_P1_QMSRPC0_QMSRPC_Msk (0xffffUL) /*!< QMSRPC (Bitfield-Mask: 0xffff) */ +/* ====================================================== P1_QMSRPC1 ======================================================= */ + #define R_ETHSW_P1_QMSRPC1_QMSRPC_Pos (0UL) /*!< QMSRPC (Bit 0) */ + #define R_ETHSW_P1_QMSRPC1_QMSRPC_Msk (0xffffUL) /*!< QMSRPC (Bitfield-Mask: 0xffff) */ +/* ====================================================== P1_QMSRPC2 ======================================================= */ + #define R_ETHSW_P1_QMSRPC2_QMSRPC_Pos (0UL) /*!< QMSRPC (Bit 0) */ + #define R_ETHSW_P1_QMSRPC2_QMSRPC_Msk (0xffffUL) /*!< QMSRPC (Bitfield-Mask: 0xffff) */ +/* ====================================================== P1_QMSRPC3 ======================================================= */ + #define R_ETHSW_P1_QMSRPC3_QMSRPC_Pos (0UL) /*!< QMSRPC (Bit 0) */ + #define R_ETHSW_P1_QMSRPC3_QMSRPC_Msk (0xffffUL) /*!< QMSRPC (Bitfield-Mask: 0xffff) */ +/* ====================================================== P1_QMSRPC4 ======================================================= */ + #define R_ETHSW_P1_QMSRPC4_QMSRPC_Pos (0UL) /*!< QMSRPC (Bit 0) */ + #define R_ETHSW_P1_QMSRPC4_QMSRPC_Msk (0xffffUL) /*!< QMSRPC (Bitfield-Mask: 0xffff) */ +/* ====================================================== P1_QMSRPC5 ======================================================= */ + #define R_ETHSW_P1_QMSRPC5_QMSRPC_Pos (0UL) /*!< QMSRPC (Bit 0) */ + #define R_ETHSW_P1_QMSRPC5_QMSRPC_Msk (0xffffUL) /*!< QMSRPC (Bitfield-Mask: 0xffff) */ +/* ====================================================== P1_QMSRPC6 ======================================================= */ + #define R_ETHSW_P1_QMSRPC6_QMSRPC_Pos (0UL) /*!< QMSRPC (Bit 0) */ + #define R_ETHSW_P1_QMSRPC6_QMSRPC_Msk (0xffffUL) /*!< QMSRPC (Bitfield-Mask: 0xffff) */ +/* ====================================================== P1_QMSRPC7 ======================================================= */ + #define R_ETHSW_P1_QMSRPC7_QMSRPC_Pos (0UL) /*!< QMSRPC (Bit 0) */ + #define R_ETHSW_P1_QMSRPC7_QMSRPC_Msk (0xffffUL) /*!< QMSRPC (Bitfield-Mask: 0xffff) */ +/* ======================================================= P1_QGDPC0 ======================================================= */ + #define R_ETHSW_P1_QGDPC0_QGDPC_Pos (0UL) /*!< QGDPC (Bit 0) */ + #define R_ETHSW_P1_QGDPC0_QGDPC_Msk (0xffffUL) /*!< QGDPC (Bitfield-Mask: 0xffff) */ +/* ======================================================= P1_QGDPC1 ======================================================= */ + #define R_ETHSW_P1_QGDPC1_QGDPC_Pos (0UL) /*!< QGDPC (Bit 0) */ + #define R_ETHSW_P1_QGDPC1_QGDPC_Msk (0xffffUL) /*!< QGDPC (Bitfield-Mask: 0xffff) */ +/* ======================================================= P1_QGDPC2 ======================================================= */ + #define R_ETHSW_P1_QGDPC2_QGDPC_Pos (0UL) /*!< QGDPC (Bit 0) */ + #define R_ETHSW_P1_QGDPC2_QGDPC_Msk (0xffffUL) /*!< QGDPC (Bitfield-Mask: 0xffff) */ +/* ======================================================= P1_QGDPC3 ======================================================= */ + #define R_ETHSW_P1_QGDPC3_QGDPC_Pos (0UL) /*!< QGDPC (Bit 0) */ + #define R_ETHSW_P1_QGDPC3_QGDPC_Msk (0xffffUL) /*!< QGDPC (Bitfield-Mask: 0xffff) */ +/* ======================================================= P1_QGDPC4 ======================================================= */ + #define R_ETHSW_P1_QGDPC4_QGDPC_Pos (0UL) /*!< QGDPC (Bit 0) */ + #define R_ETHSW_P1_QGDPC4_QGDPC_Msk (0xffffUL) /*!< QGDPC (Bitfield-Mask: 0xffff) */ +/* ======================================================= P1_QGDPC5 ======================================================= */ + #define R_ETHSW_P1_QGDPC5_QGDPC_Pos (0UL) /*!< QGDPC (Bit 0) */ + #define R_ETHSW_P1_QGDPC5_QGDPC_Msk (0xffffUL) /*!< QGDPC (Bitfield-Mask: 0xffff) */ +/* ======================================================= P1_QGDPC6 ======================================================= */ + #define R_ETHSW_P1_QGDPC6_QGDPC_Pos (0UL) /*!< QGDPC (Bit 0) */ + #define R_ETHSW_P1_QGDPC6_QGDPC_Msk (0xffffUL) /*!< QGDPC (Bitfield-Mask: 0xffff) */ +/* ======================================================= P1_QGDPC7 ======================================================= */ + #define R_ETHSW_P1_QGDPC7_QGDPC_Pos (0UL) /*!< QGDPC (Bit 0) */ + #define R_ETHSW_P1_QGDPC7_QGDPC_Msk (0xffffUL) /*!< QGDPC (Bitfield-Mask: 0xffff) */ +/* ====================================================== P1_QMDESC0 ======================================================= */ + #define R_ETHSW_P1_QMDESC0_RFD_Pos (0UL) /*!< RFD (Bit 0) */ + #define R_ETHSW_P1_QMDESC0_RFD_Msk (0x1UL) /*!< RFD (Bitfield-Mask: 0x01) */ + #define R_ETHSW_P1_QMDESC0_MM_Pos (1UL) /*!< MM (Bit 1) */ + #define R_ETHSW_P1_QMDESC0_MM_Msk (0x2UL) /*!< MM (Bitfield-Mask: 0x01) */ + #define R_ETHSW_P1_QMDESC0_CF_Pos (2UL) /*!< CF (Bit 2) */ + #define R_ETHSW_P1_QMDESC0_CF_Msk (0x4UL) /*!< CF (Bitfield-Mask: 0x01) */ +/* ====================================================== P1_QMDESC1 ======================================================= */ + #define R_ETHSW_P1_QMDESC1_RFD_Pos (0UL) /*!< RFD (Bit 0) */ + #define R_ETHSW_P1_QMDESC1_RFD_Msk (0x1UL) /*!< RFD (Bitfield-Mask: 0x01) */ + #define R_ETHSW_P1_QMDESC1_MM_Pos (1UL) /*!< MM (Bit 1) */ + #define R_ETHSW_P1_QMDESC1_MM_Msk (0x2UL) /*!< MM (Bitfield-Mask: 0x01) */ + #define R_ETHSW_P1_QMDESC1_CF_Pos (2UL) /*!< CF (Bit 2) */ + #define R_ETHSW_P1_QMDESC1_CF_Msk (0x4UL) /*!< CF (Bitfield-Mask: 0x01) */ +/* ====================================================== P1_QMDESC2 ======================================================= */ + #define R_ETHSW_P1_QMDESC2_RFD_Pos (0UL) /*!< RFD (Bit 0) */ + #define R_ETHSW_P1_QMDESC2_RFD_Msk (0x1UL) /*!< RFD (Bitfield-Mask: 0x01) */ + #define R_ETHSW_P1_QMDESC2_MM_Pos (1UL) /*!< MM (Bit 1) */ + #define R_ETHSW_P1_QMDESC2_MM_Msk (0x2UL) /*!< MM (Bitfield-Mask: 0x01) */ + #define R_ETHSW_P1_QMDESC2_CF_Pos (2UL) /*!< CF (Bit 2) */ + #define R_ETHSW_P1_QMDESC2_CF_Msk (0x4UL) /*!< CF (Bitfield-Mask: 0x01) */ +/* ====================================================== P1_QMDESC3 ======================================================= */ + #define R_ETHSW_P1_QMDESC3_RFD_Pos (0UL) /*!< RFD (Bit 0) */ + #define R_ETHSW_P1_QMDESC3_RFD_Msk (0x1UL) /*!< RFD (Bitfield-Mask: 0x01) */ + #define R_ETHSW_P1_QMDESC3_MM_Pos (1UL) /*!< MM (Bit 1) */ + #define R_ETHSW_P1_QMDESC3_MM_Msk (0x2UL) /*!< MM (Bitfield-Mask: 0x01) */ + #define R_ETHSW_P1_QMDESC3_CF_Pos (2UL) /*!< CF (Bit 2) */ + #define R_ETHSW_P1_QMDESC3_CF_Msk (0x4UL) /*!< CF (Bitfield-Mask: 0x01) */ +/* ====================================================== P1_QMDESC4 ======================================================= */ + #define R_ETHSW_P1_QMDESC4_RFD_Pos (0UL) /*!< RFD (Bit 0) */ + #define R_ETHSW_P1_QMDESC4_RFD_Msk (0x1UL) /*!< RFD (Bitfield-Mask: 0x01) */ + #define R_ETHSW_P1_QMDESC4_MM_Pos (1UL) /*!< MM (Bit 1) */ + #define R_ETHSW_P1_QMDESC4_MM_Msk (0x2UL) /*!< MM (Bitfield-Mask: 0x01) */ + #define R_ETHSW_P1_QMDESC4_CF_Pos (2UL) /*!< CF (Bit 2) */ + #define R_ETHSW_P1_QMDESC4_CF_Msk (0x4UL) /*!< CF (Bitfield-Mask: 0x01) */ +/* ====================================================== P1_QMDESC5 ======================================================= */ + #define R_ETHSW_P1_QMDESC5_RFD_Pos (0UL) /*!< RFD (Bit 0) */ + #define R_ETHSW_P1_QMDESC5_RFD_Msk (0x1UL) /*!< RFD (Bitfield-Mask: 0x01) */ + #define R_ETHSW_P1_QMDESC5_MM_Pos (1UL) /*!< MM (Bit 1) */ + #define R_ETHSW_P1_QMDESC5_MM_Msk (0x2UL) /*!< MM (Bitfield-Mask: 0x01) */ + #define R_ETHSW_P1_QMDESC5_CF_Pos (2UL) /*!< CF (Bit 2) */ + #define R_ETHSW_P1_QMDESC5_CF_Msk (0x4UL) /*!< CF (Bitfield-Mask: 0x01) */ +/* ====================================================== P1_QMDESC6 ======================================================= */ + #define R_ETHSW_P1_QMDESC6_RFD_Pos (0UL) /*!< RFD (Bit 0) */ + #define R_ETHSW_P1_QMDESC6_RFD_Msk (0x1UL) /*!< RFD (Bitfield-Mask: 0x01) */ + #define R_ETHSW_P1_QMDESC6_MM_Pos (1UL) /*!< MM (Bit 1) */ + #define R_ETHSW_P1_QMDESC6_MM_Msk (0x2UL) /*!< MM (Bitfield-Mask: 0x01) */ + #define R_ETHSW_P1_QMDESC6_CF_Pos (2UL) /*!< CF (Bit 2) */ + #define R_ETHSW_P1_QMDESC6_CF_Msk (0x4UL) /*!< CF (Bitfield-Mask: 0x01) */ +/* ====================================================== P1_QMDESC7 ======================================================= */ + #define R_ETHSW_P1_QMDESC7_RFD_Pos (0UL) /*!< RFD (Bit 0) */ + #define R_ETHSW_P1_QMDESC7_RFD_Msk (0x1UL) /*!< RFD (Bitfield-Mask: 0x01) */ + #define R_ETHSW_P1_QMDESC7_MM_Pos (1UL) /*!< MM (Bit 1) */ + #define R_ETHSW_P1_QMDESC7_MM_Msk (0x2UL) /*!< MM (Bitfield-Mask: 0x01) */ + #define R_ETHSW_P1_QMDESC7_CF_Pos (2UL) /*!< CF (Bit 2) */ + #define R_ETHSW_P1_QMDESC7_CF_Msk (0x4UL) /*!< CF (Bitfield-Mask: 0x01) */ +/* ====================================================== P1_QMCBSC0 ======================================================= */ + #define R_ETHSW_P1_QMCBSC0_CBS_Pos (0UL) /*!< CBS (Bit 0) */ + #define R_ETHSW_P1_QMCBSC0_CBS_Msk (0x3ffffUL) /*!< CBS (Bitfield-Mask: 0x3ffff) */ +/* ====================================================== P1_QMCBSC1 ======================================================= */ + #define R_ETHSW_P1_QMCBSC1_CBS_Pos (0UL) /*!< CBS (Bit 0) */ + #define R_ETHSW_P1_QMCBSC1_CBS_Msk (0x3ffffUL) /*!< CBS (Bitfield-Mask: 0x3ffff) */ +/* ====================================================== P1_QMCBSC2 ======================================================= */ + #define R_ETHSW_P1_QMCBSC2_CBS_Pos (0UL) /*!< CBS (Bit 0) */ + #define R_ETHSW_P1_QMCBSC2_CBS_Msk (0x3ffffUL) /*!< CBS (Bitfield-Mask: 0x3ffff) */ +/* ====================================================== P1_QMCBSC3 ======================================================= */ + #define R_ETHSW_P1_QMCBSC3_CBS_Pos (0UL) /*!< CBS (Bit 0) */ + #define R_ETHSW_P1_QMCBSC3_CBS_Msk (0x3ffffUL) /*!< CBS (Bitfield-Mask: 0x3ffff) */ +/* ====================================================== P1_QMCBSC4 ======================================================= */ + #define R_ETHSW_P1_QMCBSC4_CBS_Pos (0UL) /*!< CBS (Bit 0) */ + #define R_ETHSW_P1_QMCBSC4_CBS_Msk (0x3ffffUL) /*!< CBS (Bitfield-Mask: 0x3ffff) */ +/* ====================================================== P1_QMCBSC5 ======================================================= */ + #define R_ETHSW_P1_QMCBSC5_CBS_Pos (0UL) /*!< CBS (Bit 0) */ + #define R_ETHSW_P1_QMCBSC5_CBS_Msk (0x3ffffUL) /*!< CBS (Bitfield-Mask: 0x3ffff) */ +/* ====================================================== P1_QMCBSC6 ======================================================= */ + #define R_ETHSW_P1_QMCBSC6_CBS_Pos (0UL) /*!< CBS (Bit 0) */ + #define R_ETHSW_P1_QMCBSC6_CBS_Msk (0x3ffffUL) /*!< CBS (Bitfield-Mask: 0x3ffff) */ +/* ====================================================== P1_QMCBSC7 ======================================================= */ + #define R_ETHSW_P1_QMCBSC7_CBS_Pos (0UL) /*!< CBS (Bit 0) */ + #define R_ETHSW_P1_QMCBSC7_CBS_Msk (0x3ffffUL) /*!< CBS (Bitfield-Mask: 0x3ffff) */ +/* ====================================================== P1_QMCIRC0 ======================================================= */ + #define R_ETHSW_P1_QMCIRC0_CIR_Pos (0UL) /*!< CIR (Bit 0) */ + #define R_ETHSW_P1_QMCIRC0_CIR_Msk (0x1ffffUL) /*!< CIR (Bitfield-Mask: 0x1ffff) */ +/* ====================================================== P1_QMCIRC1 ======================================================= */ + #define R_ETHSW_P1_QMCIRC1_CIR_Pos (0UL) /*!< CIR (Bit 0) */ + #define R_ETHSW_P1_QMCIRC1_CIR_Msk (0x1ffffUL) /*!< CIR (Bitfield-Mask: 0x1ffff) */ +/* ====================================================== P1_QMCIRC2 ======================================================= */ + #define R_ETHSW_P1_QMCIRC2_CIR_Pos (0UL) /*!< CIR (Bit 0) */ + #define R_ETHSW_P1_QMCIRC2_CIR_Msk (0x1ffffUL) /*!< CIR (Bitfield-Mask: 0x1ffff) */ +/* ====================================================== P1_QMCIRC3 ======================================================= */ + #define R_ETHSW_P1_QMCIRC3_CIR_Pos (0UL) /*!< CIR (Bit 0) */ + #define R_ETHSW_P1_QMCIRC3_CIR_Msk (0x1ffffUL) /*!< CIR (Bitfield-Mask: 0x1ffff) */ +/* ====================================================== P1_QMCIRC4 ======================================================= */ + #define R_ETHSW_P1_QMCIRC4_CIR_Pos (0UL) /*!< CIR (Bit 0) */ + #define R_ETHSW_P1_QMCIRC4_CIR_Msk (0x1ffffUL) /*!< CIR (Bitfield-Mask: 0x1ffff) */ +/* ====================================================== P1_QMCIRC5 ======================================================= */ + #define R_ETHSW_P1_QMCIRC5_CIR_Pos (0UL) /*!< CIR (Bit 0) */ + #define R_ETHSW_P1_QMCIRC5_CIR_Msk (0x1ffffUL) /*!< CIR (Bitfield-Mask: 0x1ffff) */ +/* ====================================================== P1_QMCIRC6 ======================================================= */ + #define R_ETHSW_P1_QMCIRC6_CIR_Pos (0UL) /*!< CIR (Bit 0) */ + #define R_ETHSW_P1_QMCIRC6_CIR_Msk (0x1ffffUL) /*!< CIR (Bitfield-Mask: 0x1ffff) */ +/* ====================================================== P1_QMCIRC7 ======================================================= */ + #define R_ETHSW_P1_QMCIRC7_CIR_Pos (0UL) /*!< CIR (Bit 0) */ + #define R_ETHSW_P1_QMCIRC7_CIR_Msk (0x1ffffUL) /*!< CIR (Bitfield-Mask: 0x1ffff) */ +/* ======================================================= P1_QMGPC0 ======================================================= */ + #define R_ETHSW_P1_QMGPC0_QMGPC_Pos (0UL) /*!< QMGPC (Bit 0) */ + #define R_ETHSW_P1_QMGPC0_QMGPC_Msk (0xffffUL) /*!< QMGPC (Bitfield-Mask: 0xffff) */ +/* ======================================================= P1_QMGPC1 ======================================================= */ + #define R_ETHSW_P1_QMGPC1_QMGPC_Pos (0UL) /*!< QMGPC (Bit 0) */ + #define R_ETHSW_P1_QMGPC1_QMGPC_Msk (0xffffUL) /*!< QMGPC (Bitfield-Mask: 0xffff) */ +/* ======================================================= P1_QMGPC2 ======================================================= */ + #define R_ETHSW_P1_QMGPC2_QMGPC_Pos (0UL) /*!< QMGPC (Bit 0) */ + #define R_ETHSW_P1_QMGPC2_QMGPC_Msk (0xffffUL) /*!< QMGPC (Bitfield-Mask: 0xffff) */ +/* ======================================================= P1_QMGPC3 ======================================================= */ + #define R_ETHSW_P1_QMGPC3_QMGPC_Pos (0UL) /*!< QMGPC (Bit 0) */ + #define R_ETHSW_P1_QMGPC3_QMGPC_Msk (0xffffUL) /*!< QMGPC (Bitfield-Mask: 0xffff) */ +/* ======================================================= P1_QMGPC4 ======================================================= */ + #define R_ETHSW_P1_QMGPC4_QMGPC_Pos (0UL) /*!< QMGPC (Bit 0) */ + #define R_ETHSW_P1_QMGPC4_QMGPC_Msk (0xffffUL) /*!< QMGPC (Bitfield-Mask: 0xffff) */ +/* ======================================================= P1_QMGPC5 ======================================================= */ + #define R_ETHSW_P1_QMGPC5_QMGPC_Pos (0UL) /*!< QMGPC (Bit 0) */ + #define R_ETHSW_P1_QMGPC5_QMGPC_Msk (0xffffUL) /*!< QMGPC (Bitfield-Mask: 0xffff) */ +/* ======================================================= P1_QMGPC6 ======================================================= */ + #define R_ETHSW_P1_QMGPC6_QMGPC_Pos (0UL) /*!< QMGPC (Bit 0) */ + #define R_ETHSW_P1_QMGPC6_QMGPC_Msk (0xffffUL) /*!< QMGPC (Bitfield-Mask: 0xffff) */ +/* ======================================================= P1_QMGPC7 ======================================================= */ + #define R_ETHSW_P1_QMGPC7_QMGPC_Pos (0UL) /*!< QMGPC (Bit 0) */ + #define R_ETHSW_P1_QMGPC7_QMGPC_Msk (0xffffUL) /*!< QMGPC (Bitfield-Mask: 0xffff) */ +/* ======================================================= P1_QMRPC0 ======================================================= */ + #define R_ETHSW_P1_QMRPC0_QMRPC_Pos (0UL) /*!< QMRPC (Bit 0) */ + #define R_ETHSW_P1_QMRPC0_QMRPC_Msk (0xffffUL) /*!< QMRPC (Bitfield-Mask: 0xffff) */ +/* ======================================================= P1_QMRPC1 ======================================================= */ + #define R_ETHSW_P1_QMRPC1_QMRPC_Pos (0UL) /*!< QMRPC (Bit 0) */ + #define R_ETHSW_P1_QMRPC1_QMRPC_Msk (0xffffUL) /*!< QMRPC (Bitfield-Mask: 0xffff) */ +/* ======================================================= P1_QMRPC2 ======================================================= */ + #define R_ETHSW_P1_QMRPC2_QMRPC_Pos (0UL) /*!< QMRPC (Bit 0) */ + #define R_ETHSW_P1_QMRPC2_QMRPC_Msk (0xffffUL) /*!< QMRPC (Bitfield-Mask: 0xffff) */ +/* ======================================================= P1_QMRPC3 ======================================================= */ + #define R_ETHSW_P1_QMRPC3_QMRPC_Pos (0UL) /*!< QMRPC (Bit 0) */ + #define R_ETHSW_P1_QMRPC3_QMRPC_Msk (0xffffUL) /*!< QMRPC (Bitfield-Mask: 0xffff) */ +/* ======================================================= P1_QMRPC4 ======================================================= */ + #define R_ETHSW_P1_QMRPC4_QMRPC_Pos (0UL) /*!< QMRPC (Bit 0) */ + #define R_ETHSW_P1_QMRPC4_QMRPC_Msk (0xffffUL) /*!< QMRPC (Bitfield-Mask: 0xffff) */ +/* ======================================================= P1_QMRPC5 ======================================================= */ + #define R_ETHSW_P1_QMRPC5_QMRPC_Pos (0UL) /*!< QMRPC (Bit 0) */ + #define R_ETHSW_P1_QMRPC5_QMRPC_Msk (0xffffUL) /*!< QMRPC (Bitfield-Mask: 0xffff) */ +/* ======================================================= P1_QMRPC6 ======================================================= */ + #define R_ETHSW_P1_QMRPC6_QMRPC_Pos (0UL) /*!< QMRPC (Bit 0) */ + #define R_ETHSW_P1_QMRPC6_QMRPC_Msk (0xffffUL) /*!< QMRPC (Bitfield-Mask: 0xffff) */ +/* ======================================================= P1_QMRPC7 ======================================================= */ + #define R_ETHSW_P1_QMRPC7_QMRPC_Pos (0UL) /*!< QMRPC (Bit 0) */ + #define R_ETHSW_P1_QMRPC7_QMRPC_Msk (0xffffUL) /*!< QMRPC (Bitfield-Mask: 0xffff) */ +/* ====================================================== P2_QSTMACU0 ====================================================== */ + #define R_ETHSW_P2_QSTMACU0_MACA_Pos (0UL) /*!< MACA (Bit 0) */ + #define R_ETHSW_P2_QSTMACU0_MACA_Msk (0xffffUL) /*!< MACA (Bitfield-Mask: 0xffff) */ + #define R_ETHSW_P2_QSTMACU0_DASA_Pos (16UL) /*!< DASA (Bit 16) */ + #define R_ETHSW_P2_QSTMACU0_DASA_Msk (0x10000UL) /*!< DASA (Bitfield-Mask: 0x01) */ +/* ====================================================== P2_QSTMACU1 ====================================================== */ + #define R_ETHSW_P2_QSTMACU1_MACA_Pos (0UL) /*!< MACA (Bit 0) */ + #define R_ETHSW_P2_QSTMACU1_MACA_Msk (0xffffUL) /*!< MACA (Bitfield-Mask: 0xffff) */ + #define R_ETHSW_P2_QSTMACU1_DASA_Pos (16UL) /*!< DASA (Bit 16) */ + #define R_ETHSW_P2_QSTMACU1_DASA_Msk (0x10000UL) /*!< DASA (Bitfield-Mask: 0x01) */ +/* ====================================================== P2_QSTMACU2 ====================================================== */ + #define R_ETHSW_P2_QSTMACU2_MACA_Pos (0UL) /*!< MACA (Bit 0) */ + #define R_ETHSW_P2_QSTMACU2_MACA_Msk (0xffffUL) /*!< MACA (Bitfield-Mask: 0xffff) */ + #define R_ETHSW_P2_QSTMACU2_DASA_Pos (16UL) /*!< DASA (Bit 16) */ + #define R_ETHSW_P2_QSTMACU2_DASA_Msk (0x10000UL) /*!< DASA (Bitfield-Mask: 0x01) */ +/* ====================================================== P2_QSTMACU3 ====================================================== */ + #define R_ETHSW_P2_QSTMACU3_MACA_Pos (0UL) /*!< MACA (Bit 0) */ + #define R_ETHSW_P2_QSTMACU3_MACA_Msk (0xffffUL) /*!< MACA (Bitfield-Mask: 0xffff) */ + #define R_ETHSW_P2_QSTMACU3_DASA_Pos (16UL) /*!< DASA (Bit 16) */ + #define R_ETHSW_P2_QSTMACU3_DASA_Msk (0x10000UL) /*!< DASA (Bitfield-Mask: 0x01) */ +/* ====================================================== P2_QSTMACU4 ====================================================== */ + #define R_ETHSW_P2_QSTMACU4_MACA_Pos (0UL) /*!< MACA (Bit 0) */ + #define R_ETHSW_P2_QSTMACU4_MACA_Msk (0xffffUL) /*!< MACA (Bitfield-Mask: 0xffff) */ + #define R_ETHSW_P2_QSTMACU4_DASA_Pos (16UL) /*!< DASA (Bit 16) */ + #define R_ETHSW_P2_QSTMACU4_DASA_Msk (0x10000UL) /*!< DASA (Bitfield-Mask: 0x01) */ +/* ====================================================== P2_QSTMACU5 ====================================================== */ + #define R_ETHSW_P2_QSTMACU5_MACA_Pos (0UL) /*!< MACA (Bit 0) */ + #define R_ETHSW_P2_QSTMACU5_MACA_Msk (0xffffUL) /*!< MACA (Bitfield-Mask: 0xffff) */ + #define R_ETHSW_P2_QSTMACU5_DASA_Pos (16UL) /*!< DASA (Bit 16) */ + #define R_ETHSW_P2_QSTMACU5_DASA_Msk (0x10000UL) /*!< DASA (Bitfield-Mask: 0x01) */ +/* ====================================================== P2_QSTMACU6 ====================================================== */ + #define R_ETHSW_P2_QSTMACU6_MACA_Pos (0UL) /*!< MACA (Bit 0) */ + #define R_ETHSW_P2_QSTMACU6_MACA_Msk (0xffffUL) /*!< MACA (Bitfield-Mask: 0xffff) */ + #define R_ETHSW_P2_QSTMACU6_DASA_Pos (16UL) /*!< DASA (Bit 16) */ + #define R_ETHSW_P2_QSTMACU6_DASA_Msk (0x10000UL) /*!< DASA (Bitfield-Mask: 0x01) */ +/* ====================================================== P2_QSTMACU7 ====================================================== */ + #define R_ETHSW_P2_QSTMACU7_MACA_Pos (0UL) /*!< MACA (Bit 0) */ + #define R_ETHSW_P2_QSTMACU7_MACA_Msk (0xffffUL) /*!< MACA (Bitfield-Mask: 0xffff) */ + #define R_ETHSW_P2_QSTMACU7_DASA_Pos (16UL) /*!< DASA (Bit 16) */ + #define R_ETHSW_P2_QSTMACU7_DASA_Msk (0x10000UL) /*!< DASA (Bitfield-Mask: 0x01) */ +/* ====================================================== P2_QSTMACD0 ====================================================== */ + #define R_ETHSW_P2_QSTMACD0_MACA_Pos (0UL) /*!< MACA (Bit 0) */ + #define R_ETHSW_P2_QSTMACD0_MACA_Msk (0xffffffffUL) /*!< MACA (Bitfield-Mask: 0xffffffff) */ +/* ====================================================== P2_QSTMACD1 ====================================================== */ + #define R_ETHSW_P2_QSTMACD1_MACA_Pos (0UL) /*!< MACA (Bit 0) */ + #define R_ETHSW_P2_QSTMACD1_MACA_Msk (0xffffffffUL) /*!< MACA (Bitfield-Mask: 0xffffffff) */ +/* ====================================================== P2_QSTMACD2 ====================================================== */ + #define R_ETHSW_P2_QSTMACD2_MACA_Pos (0UL) /*!< MACA (Bit 0) */ + #define R_ETHSW_P2_QSTMACD2_MACA_Msk (0xffffffffUL) /*!< MACA (Bitfield-Mask: 0xffffffff) */ +/* ====================================================== P2_QSTMACD3 ====================================================== */ + #define R_ETHSW_P2_QSTMACD3_MACA_Pos (0UL) /*!< MACA (Bit 0) */ + #define R_ETHSW_P2_QSTMACD3_MACA_Msk (0xffffffffUL) /*!< MACA (Bitfield-Mask: 0xffffffff) */ +/* ====================================================== P2_QSTMACD4 ====================================================== */ + #define R_ETHSW_P2_QSTMACD4_MACA_Pos (0UL) /*!< MACA (Bit 0) */ + #define R_ETHSW_P2_QSTMACD4_MACA_Msk (0xffffffffUL) /*!< MACA (Bitfield-Mask: 0xffffffff) */ +/* ====================================================== P2_QSTMACD5 ====================================================== */ + #define R_ETHSW_P2_QSTMACD5_MACA_Pos (0UL) /*!< MACA (Bit 0) */ + #define R_ETHSW_P2_QSTMACD5_MACA_Msk (0xffffffffUL) /*!< MACA (Bitfield-Mask: 0xffffffff) */ +/* ====================================================== P2_QSTMACD6 ====================================================== */ + #define R_ETHSW_P2_QSTMACD6_MACA_Pos (0UL) /*!< MACA (Bit 0) */ + #define R_ETHSW_P2_QSTMACD6_MACA_Msk (0xffffffffUL) /*!< MACA (Bitfield-Mask: 0xffffffff) */ +/* ====================================================== P2_QSTMACD7 ====================================================== */ + #define R_ETHSW_P2_QSTMACD7_MACA_Pos (0UL) /*!< MACA (Bit 0) */ + #define R_ETHSW_P2_QSTMACD7_MACA_Msk (0xffffffffUL) /*!< MACA (Bitfield-Mask: 0xffffffff) */ +/* ====================================================== P2_QSTMAMU0 ====================================================== */ + #define R_ETHSW_P2_QSTMAMU0_MACAM_Pos (0UL) /*!< MACAM (Bit 0) */ + #define R_ETHSW_P2_QSTMAMU0_MACAM_Msk (0xffffUL) /*!< MACAM (Bitfield-Mask: 0xffff) */ +/* ====================================================== P2_QSTMAMU1 ====================================================== */ + #define R_ETHSW_P2_QSTMAMU1_MACAM_Pos (0UL) /*!< MACAM (Bit 0) */ + #define R_ETHSW_P2_QSTMAMU1_MACAM_Msk (0xffffUL) /*!< MACAM (Bitfield-Mask: 0xffff) */ +/* ====================================================== P2_QSTMAMU2 ====================================================== */ + #define R_ETHSW_P2_QSTMAMU2_MACAM_Pos (0UL) /*!< MACAM (Bit 0) */ + #define R_ETHSW_P2_QSTMAMU2_MACAM_Msk (0xffffUL) /*!< MACAM (Bitfield-Mask: 0xffff) */ +/* ====================================================== P2_QSTMAMU3 ====================================================== */ + #define R_ETHSW_P2_QSTMAMU3_MACAM_Pos (0UL) /*!< MACAM (Bit 0) */ + #define R_ETHSW_P2_QSTMAMU3_MACAM_Msk (0xffffUL) /*!< MACAM (Bitfield-Mask: 0xffff) */ +/* ====================================================== P2_QSTMAMU4 ====================================================== */ + #define R_ETHSW_P2_QSTMAMU4_MACAM_Pos (0UL) /*!< MACAM (Bit 0) */ + #define R_ETHSW_P2_QSTMAMU4_MACAM_Msk (0xffffUL) /*!< MACAM (Bitfield-Mask: 0xffff) */ +/* ====================================================== P2_QSTMAMU5 ====================================================== */ + #define R_ETHSW_P2_QSTMAMU5_MACAM_Pos (0UL) /*!< MACAM (Bit 0) */ + #define R_ETHSW_P2_QSTMAMU5_MACAM_Msk (0xffffUL) /*!< MACAM (Bitfield-Mask: 0xffff) */ +/* ====================================================== P2_QSTMAMU6 ====================================================== */ + #define R_ETHSW_P2_QSTMAMU6_MACAM_Pos (0UL) /*!< MACAM (Bit 0) */ + #define R_ETHSW_P2_QSTMAMU6_MACAM_Msk (0xffffUL) /*!< MACAM (Bitfield-Mask: 0xffff) */ +/* ====================================================== P2_QSTMAMU7 ====================================================== */ + #define R_ETHSW_P2_QSTMAMU7_MACAM_Pos (0UL) /*!< MACAM (Bit 0) */ + #define R_ETHSW_P2_QSTMAMU7_MACAM_Msk (0xffffUL) /*!< MACAM (Bitfield-Mask: 0xffff) */ +/* ====================================================== P2_QSTMAMD0 ====================================================== */ + #define R_ETHSW_P2_QSTMAMD0_MACAM_Pos (0UL) /*!< MACAM (Bit 0) */ + #define R_ETHSW_P2_QSTMAMD0_MACAM_Msk (0xffffffffUL) /*!< MACAM (Bitfield-Mask: 0xffffffff) */ +/* ====================================================== P2_QSTMAMD1 ====================================================== */ + #define R_ETHSW_P2_QSTMAMD1_MACAM_Pos (0UL) /*!< MACAM (Bit 0) */ + #define R_ETHSW_P2_QSTMAMD1_MACAM_Msk (0xffffffffUL) /*!< MACAM (Bitfield-Mask: 0xffffffff) */ +/* ====================================================== P2_QSTMAMD2 ====================================================== */ + #define R_ETHSW_P2_QSTMAMD2_MACAM_Pos (0UL) /*!< MACAM (Bit 0) */ + #define R_ETHSW_P2_QSTMAMD2_MACAM_Msk (0xffffffffUL) /*!< MACAM (Bitfield-Mask: 0xffffffff) */ +/* ====================================================== P2_QSTMAMD3 ====================================================== */ + #define R_ETHSW_P2_QSTMAMD3_MACAM_Pos (0UL) /*!< MACAM (Bit 0) */ + #define R_ETHSW_P2_QSTMAMD3_MACAM_Msk (0xffffffffUL) /*!< MACAM (Bitfield-Mask: 0xffffffff) */ +/* ====================================================== P2_QSTMAMD4 ====================================================== */ + #define R_ETHSW_P2_QSTMAMD4_MACAM_Pos (0UL) /*!< MACAM (Bit 0) */ + #define R_ETHSW_P2_QSTMAMD4_MACAM_Msk (0xffffffffUL) /*!< MACAM (Bitfield-Mask: 0xffffffff) */ +/* ====================================================== P2_QSTMAMD5 ====================================================== */ + #define R_ETHSW_P2_QSTMAMD5_MACAM_Pos (0UL) /*!< MACAM (Bit 0) */ + #define R_ETHSW_P2_QSTMAMD5_MACAM_Msk (0xffffffffUL) /*!< MACAM (Bitfield-Mask: 0xffffffff) */ +/* ====================================================== P2_QSTMAMD6 ====================================================== */ + #define R_ETHSW_P2_QSTMAMD6_MACAM_Pos (0UL) /*!< MACAM (Bit 0) */ + #define R_ETHSW_P2_QSTMAMD6_MACAM_Msk (0xffffffffUL) /*!< MACAM (Bitfield-Mask: 0xffffffff) */ +/* ====================================================== P2_QSTMAMD7 ====================================================== */ + #define R_ETHSW_P2_QSTMAMD7_MACAM_Pos (0UL) /*!< MACAM (Bit 0) */ + #define R_ETHSW_P2_QSTMAMD7_MACAM_Msk (0xffffffffUL) /*!< MACAM (Bitfield-Mask: 0xffffffff) */ +/* ====================================================== P2_QSFTVL0 ======================================================= */ + #define R_ETHSW_P2_QSFTVL0_VLANID_Pos (0UL) /*!< VLANID (Bit 0) */ + #define R_ETHSW_P2_QSFTVL0_VLANID_Msk (0xfffUL) /*!< VLANID (Bitfield-Mask: 0xfff) */ + #define R_ETHSW_P2_QSFTVL0_DEI_Pos (12UL) /*!< DEI (Bit 12) */ + #define R_ETHSW_P2_QSFTVL0_DEI_Msk (0x1000UL) /*!< DEI (Bitfield-Mask: 0x01) */ + #define R_ETHSW_P2_QSFTVL0_PCP_Pos (13UL) /*!< PCP (Bit 13) */ + #define R_ETHSW_P2_QSFTVL0_PCP_Msk (0xe000UL) /*!< PCP (Bitfield-Mask: 0x07) */ + #define R_ETHSW_P2_QSFTVL0_TAGMD_Pos (16UL) /*!< TAGMD (Bit 16) */ + #define R_ETHSW_P2_QSFTVL0_TAGMD_Msk (0x30000UL) /*!< TAGMD (Bitfield-Mask: 0x03) */ +/* ====================================================== P2_QSFTVL1 ======================================================= */ + #define R_ETHSW_P2_QSFTVL1_VLANID_Pos (0UL) /*!< VLANID (Bit 0) */ + #define R_ETHSW_P2_QSFTVL1_VLANID_Msk (0xfffUL) /*!< VLANID (Bitfield-Mask: 0xfff) */ + #define R_ETHSW_P2_QSFTVL1_DEI_Pos (12UL) /*!< DEI (Bit 12) */ + #define R_ETHSW_P2_QSFTVL1_DEI_Msk (0x1000UL) /*!< DEI (Bitfield-Mask: 0x01) */ + #define R_ETHSW_P2_QSFTVL1_PCP_Pos (13UL) /*!< PCP (Bit 13) */ + #define R_ETHSW_P2_QSFTVL1_PCP_Msk (0xe000UL) /*!< PCP (Bitfield-Mask: 0x07) */ + #define R_ETHSW_P2_QSFTVL1_TAGMD_Pos (16UL) /*!< TAGMD (Bit 16) */ + #define R_ETHSW_P2_QSFTVL1_TAGMD_Msk (0x30000UL) /*!< TAGMD (Bitfield-Mask: 0x03) */ +/* ====================================================== P2_QSFTVL2 ======================================================= */ + #define R_ETHSW_P2_QSFTVL2_VLANID_Pos (0UL) /*!< VLANID (Bit 0) */ + #define R_ETHSW_P2_QSFTVL2_VLANID_Msk (0xfffUL) /*!< VLANID (Bitfield-Mask: 0xfff) */ + #define R_ETHSW_P2_QSFTVL2_DEI_Pos (12UL) /*!< DEI (Bit 12) */ + #define R_ETHSW_P2_QSFTVL2_DEI_Msk (0x1000UL) /*!< DEI (Bitfield-Mask: 0x01) */ + #define R_ETHSW_P2_QSFTVL2_PCP_Pos (13UL) /*!< PCP (Bit 13) */ + #define R_ETHSW_P2_QSFTVL2_PCP_Msk (0xe000UL) /*!< PCP (Bitfield-Mask: 0x07) */ + #define R_ETHSW_P2_QSFTVL2_TAGMD_Pos (16UL) /*!< TAGMD (Bit 16) */ + #define R_ETHSW_P2_QSFTVL2_TAGMD_Msk (0x30000UL) /*!< TAGMD (Bitfield-Mask: 0x03) */ +/* ====================================================== P2_QSFTVL3 ======================================================= */ + #define R_ETHSW_P2_QSFTVL3_VLANID_Pos (0UL) /*!< VLANID (Bit 0) */ + #define R_ETHSW_P2_QSFTVL3_VLANID_Msk (0xfffUL) /*!< VLANID (Bitfield-Mask: 0xfff) */ + #define R_ETHSW_P2_QSFTVL3_DEI_Pos (12UL) /*!< DEI (Bit 12) */ + #define R_ETHSW_P2_QSFTVL3_DEI_Msk (0x1000UL) /*!< DEI (Bitfield-Mask: 0x01) */ + #define R_ETHSW_P2_QSFTVL3_PCP_Pos (13UL) /*!< PCP (Bit 13) */ + #define R_ETHSW_P2_QSFTVL3_PCP_Msk (0xe000UL) /*!< PCP (Bitfield-Mask: 0x07) */ + #define R_ETHSW_P2_QSFTVL3_TAGMD_Pos (16UL) /*!< TAGMD (Bit 16) */ + #define R_ETHSW_P2_QSFTVL3_TAGMD_Msk (0x30000UL) /*!< TAGMD (Bitfield-Mask: 0x03) */ +/* ====================================================== P2_QSFTVL4 ======================================================= */ + #define R_ETHSW_P2_QSFTVL4_VLANID_Pos (0UL) /*!< VLANID (Bit 0) */ + #define R_ETHSW_P2_QSFTVL4_VLANID_Msk (0xfffUL) /*!< VLANID (Bitfield-Mask: 0xfff) */ + #define R_ETHSW_P2_QSFTVL4_DEI_Pos (12UL) /*!< DEI (Bit 12) */ + #define R_ETHSW_P2_QSFTVL4_DEI_Msk (0x1000UL) /*!< DEI (Bitfield-Mask: 0x01) */ + #define R_ETHSW_P2_QSFTVL4_PCP_Pos (13UL) /*!< PCP (Bit 13) */ + #define R_ETHSW_P2_QSFTVL4_PCP_Msk (0xe000UL) /*!< PCP (Bitfield-Mask: 0x07) */ + #define R_ETHSW_P2_QSFTVL4_TAGMD_Pos (16UL) /*!< TAGMD (Bit 16) */ + #define R_ETHSW_P2_QSFTVL4_TAGMD_Msk (0x30000UL) /*!< TAGMD (Bitfield-Mask: 0x03) */ +/* ====================================================== P2_QSFTVL5 ======================================================= */ + #define R_ETHSW_P2_QSFTVL5_VLANID_Pos (0UL) /*!< VLANID (Bit 0) */ + #define R_ETHSW_P2_QSFTVL5_VLANID_Msk (0xfffUL) /*!< VLANID (Bitfield-Mask: 0xfff) */ + #define R_ETHSW_P2_QSFTVL5_DEI_Pos (12UL) /*!< DEI (Bit 12) */ + #define R_ETHSW_P2_QSFTVL5_DEI_Msk (0x1000UL) /*!< DEI (Bitfield-Mask: 0x01) */ + #define R_ETHSW_P2_QSFTVL5_PCP_Pos (13UL) /*!< PCP (Bit 13) */ + #define R_ETHSW_P2_QSFTVL5_PCP_Msk (0xe000UL) /*!< PCP (Bitfield-Mask: 0x07) */ + #define R_ETHSW_P2_QSFTVL5_TAGMD_Pos (16UL) /*!< TAGMD (Bit 16) */ + #define R_ETHSW_P2_QSFTVL5_TAGMD_Msk (0x30000UL) /*!< TAGMD (Bitfield-Mask: 0x03) */ +/* ====================================================== P2_QSFTVL6 ======================================================= */ + #define R_ETHSW_P2_QSFTVL6_VLANID_Pos (0UL) /*!< VLANID (Bit 0) */ + #define R_ETHSW_P2_QSFTVL6_VLANID_Msk (0xfffUL) /*!< VLANID (Bitfield-Mask: 0xfff) */ + #define R_ETHSW_P2_QSFTVL6_DEI_Pos (12UL) /*!< DEI (Bit 12) */ + #define R_ETHSW_P2_QSFTVL6_DEI_Msk (0x1000UL) /*!< DEI (Bitfield-Mask: 0x01) */ + #define R_ETHSW_P2_QSFTVL6_PCP_Pos (13UL) /*!< PCP (Bit 13) */ + #define R_ETHSW_P2_QSFTVL6_PCP_Msk (0xe000UL) /*!< PCP (Bitfield-Mask: 0x07) */ + #define R_ETHSW_P2_QSFTVL6_TAGMD_Pos (16UL) /*!< TAGMD (Bit 16) */ + #define R_ETHSW_P2_QSFTVL6_TAGMD_Msk (0x30000UL) /*!< TAGMD (Bitfield-Mask: 0x03) */ +/* ====================================================== P2_QSFTVL7 ======================================================= */ + #define R_ETHSW_P2_QSFTVL7_VLANID_Pos (0UL) /*!< VLANID (Bit 0) */ + #define R_ETHSW_P2_QSFTVL7_VLANID_Msk (0xfffUL) /*!< VLANID (Bitfield-Mask: 0xfff) */ + #define R_ETHSW_P2_QSFTVL7_DEI_Pos (12UL) /*!< DEI (Bit 12) */ + #define R_ETHSW_P2_QSFTVL7_DEI_Msk (0x1000UL) /*!< DEI (Bitfield-Mask: 0x01) */ + #define R_ETHSW_P2_QSFTVL7_PCP_Pos (13UL) /*!< PCP (Bit 13) */ + #define R_ETHSW_P2_QSFTVL7_PCP_Msk (0xe000UL) /*!< PCP (Bitfield-Mask: 0x07) */ + #define R_ETHSW_P2_QSFTVL7_TAGMD_Pos (16UL) /*!< TAGMD (Bit 16) */ + #define R_ETHSW_P2_QSFTVL7_TAGMD_Msk (0x30000UL) /*!< TAGMD (Bitfield-Mask: 0x03) */ +/* ====================================================== P2_QSFTVLM0 ====================================================== */ + #define R_ETHSW_P2_QSFTVLM0_VLANIDM_Pos (0UL) /*!< VLANIDM (Bit 0) */ + #define R_ETHSW_P2_QSFTVLM0_VLANIDM_Msk (0xfffUL) /*!< VLANIDM (Bitfield-Mask: 0xfff) */ + #define R_ETHSW_P2_QSFTVLM0_DEIM_Pos (12UL) /*!< DEIM (Bit 12) */ + #define R_ETHSW_P2_QSFTVLM0_DEIM_Msk (0x1000UL) /*!< DEIM (Bitfield-Mask: 0x01) */ + #define R_ETHSW_P2_QSFTVLM0_PCPM_Pos (13UL) /*!< PCPM (Bit 13) */ + #define R_ETHSW_P2_QSFTVLM0_PCPM_Msk (0xe000UL) /*!< PCPM (Bitfield-Mask: 0x07) */ +/* ====================================================== P2_QSFTVLM1 ====================================================== */ + #define R_ETHSW_P2_QSFTVLM1_VLANIDM_Pos (0UL) /*!< VLANIDM (Bit 0) */ + #define R_ETHSW_P2_QSFTVLM1_VLANIDM_Msk (0xfffUL) /*!< VLANIDM (Bitfield-Mask: 0xfff) */ + #define R_ETHSW_P2_QSFTVLM1_DEIM_Pos (12UL) /*!< DEIM (Bit 12) */ + #define R_ETHSW_P2_QSFTVLM1_DEIM_Msk (0x1000UL) /*!< DEIM (Bitfield-Mask: 0x01) */ + #define R_ETHSW_P2_QSFTVLM1_PCPM_Pos (13UL) /*!< PCPM (Bit 13) */ + #define R_ETHSW_P2_QSFTVLM1_PCPM_Msk (0xe000UL) /*!< PCPM (Bitfield-Mask: 0x07) */ +/* ====================================================== P2_QSFTVLM2 ====================================================== */ + #define R_ETHSW_P2_QSFTVLM2_VLANIDM_Pos (0UL) /*!< VLANIDM (Bit 0) */ + #define R_ETHSW_P2_QSFTVLM2_VLANIDM_Msk (0xfffUL) /*!< VLANIDM (Bitfield-Mask: 0xfff) */ + #define R_ETHSW_P2_QSFTVLM2_DEIM_Pos (12UL) /*!< DEIM (Bit 12) */ + #define R_ETHSW_P2_QSFTVLM2_DEIM_Msk (0x1000UL) /*!< DEIM (Bitfield-Mask: 0x01) */ + #define R_ETHSW_P2_QSFTVLM2_PCPM_Pos (13UL) /*!< PCPM (Bit 13) */ + #define R_ETHSW_P2_QSFTVLM2_PCPM_Msk (0xe000UL) /*!< PCPM (Bitfield-Mask: 0x07) */ +/* ====================================================== P2_QSFTVLM3 ====================================================== */ + #define R_ETHSW_P2_QSFTVLM3_VLANIDM_Pos (0UL) /*!< VLANIDM (Bit 0) */ + #define R_ETHSW_P2_QSFTVLM3_VLANIDM_Msk (0xfffUL) /*!< VLANIDM (Bitfield-Mask: 0xfff) */ + #define R_ETHSW_P2_QSFTVLM3_DEIM_Pos (12UL) /*!< DEIM (Bit 12) */ + #define R_ETHSW_P2_QSFTVLM3_DEIM_Msk (0x1000UL) /*!< DEIM (Bitfield-Mask: 0x01) */ + #define R_ETHSW_P2_QSFTVLM3_PCPM_Pos (13UL) /*!< PCPM (Bit 13) */ + #define R_ETHSW_P2_QSFTVLM3_PCPM_Msk (0xe000UL) /*!< PCPM (Bitfield-Mask: 0x07) */ +/* ====================================================== P2_QSFTVLM4 ====================================================== */ + #define R_ETHSW_P2_QSFTVLM4_VLANIDM_Pos (0UL) /*!< VLANIDM (Bit 0) */ + #define R_ETHSW_P2_QSFTVLM4_VLANIDM_Msk (0xfffUL) /*!< VLANIDM (Bitfield-Mask: 0xfff) */ + #define R_ETHSW_P2_QSFTVLM4_DEIM_Pos (12UL) /*!< DEIM (Bit 12) */ + #define R_ETHSW_P2_QSFTVLM4_DEIM_Msk (0x1000UL) /*!< DEIM (Bitfield-Mask: 0x01) */ + #define R_ETHSW_P2_QSFTVLM4_PCPM_Pos (13UL) /*!< PCPM (Bit 13) */ + #define R_ETHSW_P2_QSFTVLM4_PCPM_Msk (0xe000UL) /*!< PCPM (Bitfield-Mask: 0x07) */ +/* ====================================================== P2_QSFTVLM5 ====================================================== */ + #define R_ETHSW_P2_QSFTVLM5_VLANIDM_Pos (0UL) /*!< VLANIDM (Bit 0) */ + #define R_ETHSW_P2_QSFTVLM5_VLANIDM_Msk (0xfffUL) /*!< VLANIDM (Bitfield-Mask: 0xfff) */ + #define R_ETHSW_P2_QSFTVLM5_DEIM_Pos (12UL) /*!< DEIM (Bit 12) */ + #define R_ETHSW_P2_QSFTVLM5_DEIM_Msk (0x1000UL) /*!< DEIM (Bitfield-Mask: 0x01) */ + #define R_ETHSW_P2_QSFTVLM5_PCPM_Pos (13UL) /*!< PCPM (Bit 13) */ + #define R_ETHSW_P2_QSFTVLM5_PCPM_Msk (0xe000UL) /*!< PCPM (Bitfield-Mask: 0x07) */ +/* ====================================================== P2_QSFTVLM6 ====================================================== */ + #define R_ETHSW_P2_QSFTVLM6_VLANIDM_Pos (0UL) /*!< VLANIDM (Bit 0) */ + #define R_ETHSW_P2_QSFTVLM6_VLANIDM_Msk (0xfffUL) /*!< VLANIDM (Bitfield-Mask: 0xfff) */ + #define R_ETHSW_P2_QSFTVLM6_DEIM_Pos (12UL) /*!< DEIM (Bit 12) */ + #define R_ETHSW_P2_QSFTVLM6_DEIM_Msk (0x1000UL) /*!< DEIM (Bitfield-Mask: 0x01) */ + #define R_ETHSW_P2_QSFTVLM6_PCPM_Pos (13UL) /*!< PCPM (Bit 13) */ + #define R_ETHSW_P2_QSFTVLM6_PCPM_Msk (0xe000UL) /*!< PCPM (Bitfield-Mask: 0x07) */ +/* ====================================================== P2_QSFTVLM7 ====================================================== */ + #define R_ETHSW_P2_QSFTVLM7_VLANIDM_Pos (0UL) /*!< VLANIDM (Bit 0) */ + #define R_ETHSW_P2_QSFTVLM7_VLANIDM_Msk (0xfffUL) /*!< VLANIDM (Bitfield-Mask: 0xfff) */ + #define R_ETHSW_P2_QSFTVLM7_DEIM_Pos (12UL) /*!< DEIM (Bit 12) */ + #define R_ETHSW_P2_QSFTVLM7_DEIM_Msk (0x1000UL) /*!< DEIM (Bitfield-Mask: 0x01) */ + #define R_ETHSW_P2_QSFTVLM7_PCPM_Pos (13UL) /*!< PCPM (Bit 13) */ + #define R_ETHSW_P2_QSFTVLM7_PCPM_Msk (0xe000UL) /*!< PCPM (Bitfield-Mask: 0x07) */ +/* ====================================================== P2_QSFTBL0 ======================================================= */ + #define R_ETHSW_P2_QSFTBL0_QSTE_Pos (0UL) /*!< QSTE (Bit 0) */ + #define R_ETHSW_P2_QSFTBL0_QSTE_Msk (0x1UL) /*!< QSTE (Bitfield-Mask: 0x01) */ + #define R_ETHSW_P2_QSFTBL0_GAID_Pos (4UL) /*!< GAID (Bit 4) */ + #define R_ETHSW_P2_QSFTBL0_GAID_Msk (0x70UL) /*!< GAID (Bitfield-Mask: 0x07) */ + #define R_ETHSW_P2_QSFTBL0_GAIDV_Pos (7UL) /*!< GAIDV (Bit 7) */ + #define R_ETHSW_P2_QSFTBL0_GAIDV_Msk (0x80UL) /*!< GAIDV (Bitfield-Mask: 0x01) */ + #define R_ETHSW_P2_QSFTBL0_MEID_Pos (8UL) /*!< MEID (Bit 8) */ + #define R_ETHSW_P2_QSFTBL0_MEID_Msk (0x700UL) /*!< MEID (Bitfield-Mask: 0x07) */ + #define R_ETHSW_P2_QSFTBL0_MEIDV_Pos (12UL) /*!< MEIDV (Bit 12) */ + #define R_ETHSW_P2_QSFTBL0_MEIDV_Msk (0x1000UL) /*!< MEIDV (Bitfield-Mask: 0x01) */ + #define R_ETHSW_P2_QSFTBL0_MSDU_Pos (16UL) /*!< MSDU (Bit 16) */ + #define R_ETHSW_P2_QSFTBL0_MSDU_Msk (0x7ff0000UL) /*!< MSDU (Bitfield-Mask: 0x7ff) */ + #define R_ETHSW_P2_QSFTBL0_MSDUE_Pos (27UL) /*!< MSDUE (Bit 27) */ + #define R_ETHSW_P2_QSFTBL0_MSDUE_Msk (0x8000000UL) /*!< MSDUE (Bitfield-Mask: 0x01) */ + #define R_ETHSW_P2_QSFTBL0_QSMSM_Pos (28UL) /*!< QSMSM (Bit 28) */ + #define R_ETHSW_P2_QSFTBL0_QSMSM_Msk (0x10000000UL) /*!< QSMSM (Bitfield-Mask: 0x01) */ +/* ====================================================== P2_QSFTBL1 ======================================================= */ + #define R_ETHSW_P2_QSFTBL1_QSTE_Pos (0UL) /*!< QSTE (Bit 0) */ + #define R_ETHSW_P2_QSFTBL1_QSTE_Msk (0x1UL) /*!< QSTE (Bitfield-Mask: 0x01) */ + #define R_ETHSW_P2_QSFTBL1_GAID_Pos (4UL) /*!< GAID (Bit 4) */ + #define R_ETHSW_P2_QSFTBL1_GAID_Msk (0x70UL) /*!< GAID (Bitfield-Mask: 0x07) */ + #define R_ETHSW_P2_QSFTBL1_GAIDV_Pos (7UL) /*!< GAIDV (Bit 7) */ + #define R_ETHSW_P2_QSFTBL1_GAIDV_Msk (0x80UL) /*!< GAIDV (Bitfield-Mask: 0x01) */ + #define R_ETHSW_P2_QSFTBL1_MEID_Pos (8UL) /*!< MEID (Bit 8) */ + #define R_ETHSW_P2_QSFTBL1_MEID_Msk (0x700UL) /*!< MEID (Bitfield-Mask: 0x07) */ + #define R_ETHSW_P2_QSFTBL1_MEIDV_Pos (12UL) /*!< MEIDV (Bit 12) */ + #define R_ETHSW_P2_QSFTBL1_MEIDV_Msk (0x1000UL) /*!< MEIDV (Bitfield-Mask: 0x01) */ + #define R_ETHSW_P2_QSFTBL1_MSDU_Pos (16UL) /*!< MSDU (Bit 16) */ + #define R_ETHSW_P2_QSFTBL1_MSDU_Msk (0x7ff0000UL) /*!< MSDU (Bitfield-Mask: 0x7ff) */ + #define R_ETHSW_P2_QSFTBL1_MSDUE_Pos (27UL) /*!< MSDUE (Bit 27) */ + #define R_ETHSW_P2_QSFTBL1_MSDUE_Msk (0x8000000UL) /*!< MSDUE (Bitfield-Mask: 0x01) */ + #define R_ETHSW_P2_QSFTBL1_QSMSM_Pos (28UL) /*!< QSMSM (Bit 28) */ + #define R_ETHSW_P2_QSFTBL1_QSMSM_Msk (0x10000000UL) /*!< QSMSM (Bitfield-Mask: 0x01) */ +/* ====================================================== P2_QSFTBL2 ======================================================= */ + #define R_ETHSW_P2_QSFTBL2_QSTE_Pos (0UL) /*!< QSTE (Bit 0) */ + #define R_ETHSW_P2_QSFTBL2_QSTE_Msk (0x1UL) /*!< QSTE (Bitfield-Mask: 0x01) */ + #define R_ETHSW_P2_QSFTBL2_GAID_Pos (4UL) /*!< GAID (Bit 4) */ + #define R_ETHSW_P2_QSFTBL2_GAID_Msk (0x70UL) /*!< GAID (Bitfield-Mask: 0x07) */ + #define R_ETHSW_P2_QSFTBL2_GAIDV_Pos (7UL) /*!< GAIDV (Bit 7) */ + #define R_ETHSW_P2_QSFTBL2_GAIDV_Msk (0x80UL) /*!< GAIDV (Bitfield-Mask: 0x01) */ + #define R_ETHSW_P2_QSFTBL2_MEID_Pos (8UL) /*!< MEID (Bit 8) */ + #define R_ETHSW_P2_QSFTBL2_MEID_Msk (0x700UL) /*!< MEID (Bitfield-Mask: 0x07) */ + #define R_ETHSW_P2_QSFTBL2_MEIDV_Pos (12UL) /*!< MEIDV (Bit 12) */ + #define R_ETHSW_P2_QSFTBL2_MEIDV_Msk (0x1000UL) /*!< MEIDV (Bitfield-Mask: 0x01) */ + #define R_ETHSW_P2_QSFTBL2_MSDU_Pos (16UL) /*!< MSDU (Bit 16) */ + #define R_ETHSW_P2_QSFTBL2_MSDU_Msk (0x7ff0000UL) /*!< MSDU (Bitfield-Mask: 0x7ff) */ + #define R_ETHSW_P2_QSFTBL2_MSDUE_Pos (27UL) /*!< MSDUE (Bit 27) */ + #define R_ETHSW_P2_QSFTBL2_MSDUE_Msk (0x8000000UL) /*!< MSDUE (Bitfield-Mask: 0x01) */ + #define R_ETHSW_P2_QSFTBL2_QSMSM_Pos (28UL) /*!< QSMSM (Bit 28) */ + #define R_ETHSW_P2_QSFTBL2_QSMSM_Msk (0x10000000UL) /*!< QSMSM (Bitfield-Mask: 0x01) */ +/* ====================================================== P2_QSFTBL3 ======================================================= */ + #define R_ETHSW_P2_QSFTBL3_QSTE_Pos (0UL) /*!< QSTE (Bit 0) */ + #define R_ETHSW_P2_QSFTBL3_QSTE_Msk (0x1UL) /*!< QSTE (Bitfield-Mask: 0x01) */ + #define R_ETHSW_P2_QSFTBL3_GAID_Pos (4UL) /*!< GAID (Bit 4) */ + #define R_ETHSW_P2_QSFTBL3_GAID_Msk (0x70UL) /*!< GAID (Bitfield-Mask: 0x07) */ + #define R_ETHSW_P2_QSFTBL3_GAIDV_Pos (7UL) /*!< GAIDV (Bit 7) */ + #define R_ETHSW_P2_QSFTBL3_GAIDV_Msk (0x80UL) /*!< GAIDV (Bitfield-Mask: 0x01) */ + #define R_ETHSW_P2_QSFTBL3_MEID_Pos (8UL) /*!< MEID (Bit 8) */ + #define R_ETHSW_P2_QSFTBL3_MEID_Msk (0x700UL) /*!< MEID (Bitfield-Mask: 0x07) */ + #define R_ETHSW_P2_QSFTBL3_MEIDV_Pos (12UL) /*!< MEIDV (Bit 12) */ + #define R_ETHSW_P2_QSFTBL3_MEIDV_Msk (0x1000UL) /*!< MEIDV (Bitfield-Mask: 0x01) */ + #define R_ETHSW_P2_QSFTBL3_MSDU_Pos (16UL) /*!< MSDU (Bit 16) */ + #define R_ETHSW_P2_QSFTBL3_MSDU_Msk (0x7ff0000UL) /*!< MSDU (Bitfield-Mask: 0x7ff) */ + #define R_ETHSW_P2_QSFTBL3_MSDUE_Pos (27UL) /*!< MSDUE (Bit 27) */ + #define R_ETHSW_P2_QSFTBL3_MSDUE_Msk (0x8000000UL) /*!< MSDUE (Bitfield-Mask: 0x01) */ + #define R_ETHSW_P2_QSFTBL3_QSMSM_Pos (28UL) /*!< QSMSM (Bit 28) */ + #define R_ETHSW_P2_QSFTBL3_QSMSM_Msk (0x10000000UL) /*!< QSMSM (Bitfield-Mask: 0x01) */ +/* ====================================================== P2_QSFTBL4 ======================================================= */ + #define R_ETHSW_P2_QSFTBL4_QSTE_Pos (0UL) /*!< QSTE (Bit 0) */ + #define R_ETHSW_P2_QSFTBL4_QSTE_Msk (0x1UL) /*!< QSTE (Bitfield-Mask: 0x01) */ + #define R_ETHSW_P2_QSFTBL4_GAID_Pos (4UL) /*!< GAID (Bit 4) */ + #define R_ETHSW_P2_QSFTBL4_GAID_Msk (0x70UL) /*!< GAID (Bitfield-Mask: 0x07) */ + #define R_ETHSW_P2_QSFTBL4_GAIDV_Pos (7UL) /*!< GAIDV (Bit 7) */ + #define R_ETHSW_P2_QSFTBL4_GAIDV_Msk (0x80UL) /*!< GAIDV (Bitfield-Mask: 0x01) */ + #define R_ETHSW_P2_QSFTBL4_MEID_Pos (8UL) /*!< MEID (Bit 8) */ + #define R_ETHSW_P2_QSFTBL4_MEID_Msk (0x700UL) /*!< MEID (Bitfield-Mask: 0x07) */ + #define R_ETHSW_P2_QSFTBL4_MEIDV_Pos (12UL) /*!< MEIDV (Bit 12) */ + #define R_ETHSW_P2_QSFTBL4_MEIDV_Msk (0x1000UL) /*!< MEIDV (Bitfield-Mask: 0x01) */ + #define R_ETHSW_P2_QSFTBL4_MSDU_Pos (16UL) /*!< MSDU (Bit 16) */ + #define R_ETHSW_P2_QSFTBL4_MSDU_Msk (0x7ff0000UL) /*!< MSDU (Bitfield-Mask: 0x7ff) */ + #define R_ETHSW_P2_QSFTBL4_MSDUE_Pos (27UL) /*!< MSDUE (Bit 27) */ + #define R_ETHSW_P2_QSFTBL4_MSDUE_Msk (0x8000000UL) /*!< MSDUE (Bitfield-Mask: 0x01) */ + #define R_ETHSW_P2_QSFTBL4_QSMSM_Pos (28UL) /*!< QSMSM (Bit 28) */ + #define R_ETHSW_P2_QSFTBL4_QSMSM_Msk (0x10000000UL) /*!< QSMSM (Bitfield-Mask: 0x01) */ +/* ====================================================== P2_QSFTBL5 ======================================================= */ + #define R_ETHSW_P2_QSFTBL5_QSTE_Pos (0UL) /*!< QSTE (Bit 0) */ + #define R_ETHSW_P2_QSFTBL5_QSTE_Msk (0x1UL) /*!< QSTE (Bitfield-Mask: 0x01) */ + #define R_ETHSW_P2_QSFTBL5_GAID_Pos (4UL) /*!< GAID (Bit 4) */ + #define R_ETHSW_P2_QSFTBL5_GAID_Msk (0x70UL) /*!< GAID (Bitfield-Mask: 0x07) */ + #define R_ETHSW_P2_QSFTBL5_GAIDV_Pos (7UL) /*!< GAIDV (Bit 7) */ + #define R_ETHSW_P2_QSFTBL5_GAIDV_Msk (0x80UL) /*!< GAIDV (Bitfield-Mask: 0x01) */ + #define R_ETHSW_P2_QSFTBL5_MEID_Pos (8UL) /*!< MEID (Bit 8) */ + #define R_ETHSW_P2_QSFTBL5_MEID_Msk (0x700UL) /*!< MEID (Bitfield-Mask: 0x07) */ + #define R_ETHSW_P2_QSFTBL5_MEIDV_Pos (12UL) /*!< MEIDV (Bit 12) */ + #define R_ETHSW_P2_QSFTBL5_MEIDV_Msk (0x1000UL) /*!< MEIDV (Bitfield-Mask: 0x01) */ + #define R_ETHSW_P2_QSFTBL5_MSDU_Pos (16UL) /*!< MSDU (Bit 16) */ + #define R_ETHSW_P2_QSFTBL5_MSDU_Msk (0x7ff0000UL) /*!< MSDU (Bitfield-Mask: 0x7ff) */ + #define R_ETHSW_P2_QSFTBL5_MSDUE_Pos (27UL) /*!< MSDUE (Bit 27) */ + #define R_ETHSW_P2_QSFTBL5_MSDUE_Msk (0x8000000UL) /*!< MSDUE (Bitfield-Mask: 0x01) */ + #define R_ETHSW_P2_QSFTBL5_QSMSM_Pos (28UL) /*!< QSMSM (Bit 28) */ + #define R_ETHSW_P2_QSFTBL5_QSMSM_Msk (0x10000000UL) /*!< QSMSM (Bitfield-Mask: 0x01) */ +/* ====================================================== P2_QSFTBL6 ======================================================= */ + #define R_ETHSW_P2_QSFTBL6_QSTE_Pos (0UL) /*!< QSTE (Bit 0) */ + #define R_ETHSW_P2_QSFTBL6_QSTE_Msk (0x1UL) /*!< QSTE (Bitfield-Mask: 0x01) */ + #define R_ETHSW_P2_QSFTBL6_GAID_Pos (4UL) /*!< GAID (Bit 4) */ + #define R_ETHSW_P2_QSFTBL6_GAID_Msk (0x70UL) /*!< GAID (Bitfield-Mask: 0x07) */ + #define R_ETHSW_P2_QSFTBL6_GAIDV_Pos (7UL) /*!< GAIDV (Bit 7) */ + #define R_ETHSW_P2_QSFTBL6_GAIDV_Msk (0x80UL) /*!< GAIDV (Bitfield-Mask: 0x01) */ + #define R_ETHSW_P2_QSFTBL6_MEID_Pos (8UL) /*!< MEID (Bit 8) */ + #define R_ETHSW_P2_QSFTBL6_MEID_Msk (0x700UL) /*!< MEID (Bitfield-Mask: 0x07) */ + #define R_ETHSW_P2_QSFTBL6_MEIDV_Pos (12UL) /*!< MEIDV (Bit 12) */ + #define R_ETHSW_P2_QSFTBL6_MEIDV_Msk (0x1000UL) /*!< MEIDV (Bitfield-Mask: 0x01) */ + #define R_ETHSW_P2_QSFTBL6_MSDU_Pos (16UL) /*!< MSDU (Bit 16) */ + #define R_ETHSW_P2_QSFTBL6_MSDU_Msk (0x7ff0000UL) /*!< MSDU (Bitfield-Mask: 0x7ff) */ + #define R_ETHSW_P2_QSFTBL6_MSDUE_Pos (27UL) /*!< MSDUE (Bit 27) */ + #define R_ETHSW_P2_QSFTBL6_MSDUE_Msk (0x8000000UL) /*!< MSDUE (Bitfield-Mask: 0x01) */ + #define R_ETHSW_P2_QSFTBL6_QSMSM_Pos (28UL) /*!< QSMSM (Bit 28) */ + #define R_ETHSW_P2_QSFTBL6_QSMSM_Msk (0x10000000UL) /*!< QSMSM (Bitfield-Mask: 0x01) */ +/* ====================================================== P2_QSFTBL7 ======================================================= */ + #define R_ETHSW_P2_QSFTBL7_QSTE_Pos (0UL) /*!< QSTE (Bit 0) */ + #define R_ETHSW_P2_QSFTBL7_QSTE_Msk (0x1UL) /*!< QSTE (Bitfield-Mask: 0x01) */ + #define R_ETHSW_P2_QSFTBL7_GAID_Pos (4UL) /*!< GAID (Bit 4) */ + #define R_ETHSW_P2_QSFTBL7_GAID_Msk (0x70UL) /*!< GAID (Bitfield-Mask: 0x07) */ + #define R_ETHSW_P2_QSFTBL7_GAIDV_Pos (7UL) /*!< GAIDV (Bit 7) */ + #define R_ETHSW_P2_QSFTBL7_GAIDV_Msk (0x80UL) /*!< GAIDV (Bitfield-Mask: 0x01) */ + #define R_ETHSW_P2_QSFTBL7_MEID_Pos (8UL) /*!< MEID (Bit 8) */ + #define R_ETHSW_P2_QSFTBL7_MEID_Msk (0x700UL) /*!< MEID (Bitfield-Mask: 0x07) */ + #define R_ETHSW_P2_QSFTBL7_MEIDV_Pos (12UL) /*!< MEIDV (Bit 12) */ + #define R_ETHSW_P2_QSFTBL7_MEIDV_Msk (0x1000UL) /*!< MEIDV (Bitfield-Mask: 0x01) */ + #define R_ETHSW_P2_QSFTBL7_MSDU_Pos (16UL) /*!< MSDU (Bit 16) */ + #define R_ETHSW_P2_QSFTBL7_MSDU_Msk (0x7ff0000UL) /*!< MSDU (Bitfield-Mask: 0x7ff) */ + #define R_ETHSW_P2_QSFTBL7_MSDUE_Pos (27UL) /*!< MSDUE (Bit 27) */ + #define R_ETHSW_P2_QSFTBL7_MSDUE_Msk (0x8000000UL) /*!< MSDUE (Bitfield-Mask: 0x01) */ + #define R_ETHSW_P2_QSFTBL7_QSMSM_Pos (28UL) /*!< QSMSM (Bit 28) */ + #define R_ETHSW_P2_QSFTBL7_QSMSM_Msk (0x10000000UL) /*!< QSMSM (Bitfield-Mask: 0x01) */ +/* ======================================================= P2_QSMFC0 ======================================================= */ + #define R_ETHSW_P2_QSMFC0_QSMFC_Pos (0UL) /*!< QSMFC (Bit 0) */ + #define R_ETHSW_P2_QSMFC0_QSMFC_Msk (0xffffUL) /*!< QSMFC (Bitfield-Mask: 0xffff) */ +/* ======================================================= P2_QSMFC1 ======================================================= */ + #define R_ETHSW_P2_QSMFC1_QSMFC_Pos (0UL) /*!< QSMFC (Bit 0) */ + #define R_ETHSW_P2_QSMFC1_QSMFC_Msk (0xffffUL) /*!< QSMFC (Bitfield-Mask: 0xffff) */ +/* ======================================================= P2_QSMFC2 ======================================================= */ + #define R_ETHSW_P2_QSMFC2_QSMFC_Pos (0UL) /*!< QSMFC (Bit 0) */ + #define R_ETHSW_P2_QSMFC2_QSMFC_Msk (0xffffUL) /*!< QSMFC (Bitfield-Mask: 0xffff) */ +/* ======================================================= P2_QSMFC3 ======================================================= */ + #define R_ETHSW_P2_QSMFC3_QSMFC_Pos (0UL) /*!< QSMFC (Bit 0) */ + #define R_ETHSW_P2_QSMFC3_QSMFC_Msk (0xffffUL) /*!< QSMFC (Bitfield-Mask: 0xffff) */ +/* ======================================================= P2_QSMFC4 ======================================================= */ + #define R_ETHSW_P2_QSMFC4_QSMFC_Pos (0UL) /*!< QSMFC (Bit 0) */ + #define R_ETHSW_P2_QSMFC4_QSMFC_Msk (0xffffUL) /*!< QSMFC (Bitfield-Mask: 0xffff) */ +/* ======================================================= P2_QSMFC5 ======================================================= */ + #define R_ETHSW_P2_QSMFC5_QSMFC_Pos (0UL) /*!< QSMFC (Bit 0) */ + #define R_ETHSW_P2_QSMFC5_QSMFC_Msk (0xffffUL) /*!< QSMFC (Bitfield-Mask: 0xffff) */ +/* ======================================================= P2_QSMFC6 ======================================================= */ + #define R_ETHSW_P2_QSMFC6_QSMFC_Pos (0UL) /*!< QSMFC (Bit 0) */ + #define R_ETHSW_P2_QSMFC6_QSMFC_Msk (0xffffUL) /*!< QSMFC (Bitfield-Mask: 0xffff) */ +/* ======================================================= P2_QSMFC7 ======================================================= */ + #define R_ETHSW_P2_QSMFC7_QSMFC_Pos (0UL) /*!< QSMFC (Bit 0) */ + #define R_ETHSW_P2_QSMFC7_QSMFC_Msk (0xffffUL) /*!< QSMFC (Bitfield-Mask: 0xffff) */ +/* ====================================================== P2_QMSPPC0 ======================================================= */ + #define R_ETHSW_P2_QMSPPC0_QMSPPC_Pos (0UL) /*!< QMSPPC (Bit 0) */ + #define R_ETHSW_P2_QMSPPC0_QMSPPC_Msk (0xffffUL) /*!< QMSPPC (Bitfield-Mask: 0xffff) */ +/* ====================================================== P2_QMSPPC1 ======================================================= */ + #define R_ETHSW_P2_QMSPPC1_QMSPPC_Pos (0UL) /*!< QMSPPC (Bit 0) */ + #define R_ETHSW_P2_QMSPPC1_QMSPPC_Msk (0xffffUL) /*!< QMSPPC (Bitfield-Mask: 0xffff) */ +/* ====================================================== P2_QMSPPC2 ======================================================= */ + #define R_ETHSW_P2_QMSPPC2_QMSPPC_Pos (0UL) /*!< QMSPPC (Bit 0) */ + #define R_ETHSW_P2_QMSPPC2_QMSPPC_Msk (0xffffUL) /*!< QMSPPC (Bitfield-Mask: 0xffff) */ +/* ====================================================== P2_QMSPPC3 ======================================================= */ + #define R_ETHSW_P2_QMSPPC3_QMSPPC_Pos (0UL) /*!< QMSPPC (Bit 0) */ + #define R_ETHSW_P2_QMSPPC3_QMSPPC_Msk (0xffffUL) /*!< QMSPPC (Bitfield-Mask: 0xffff) */ +/* ====================================================== P2_QMSPPC4 ======================================================= */ + #define R_ETHSW_P2_QMSPPC4_QMSPPC_Pos (0UL) /*!< QMSPPC (Bit 0) */ + #define R_ETHSW_P2_QMSPPC4_QMSPPC_Msk (0xffffUL) /*!< QMSPPC (Bitfield-Mask: 0xffff) */ +/* ====================================================== P2_QMSPPC5 ======================================================= */ + #define R_ETHSW_P2_QMSPPC5_QMSPPC_Pos (0UL) /*!< QMSPPC (Bit 0) */ + #define R_ETHSW_P2_QMSPPC5_QMSPPC_Msk (0xffffUL) /*!< QMSPPC (Bitfield-Mask: 0xffff) */ +/* ====================================================== P2_QMSPPC6 ======================================================= */ + #define R_ETHSW_P2_QMSPPC6_QMSPPC_Pos (0UL) /*!< QMSPPC (Bit 0) */ + #define R_ETHSW_P2_QMSPPC6_QMSPPC_Msk (0xffffUL) /*!< QMSPPC (Bitfield-Mask: 0xffff) */ +/* ====================================================== P2_QMSPPC7 ======================================================= */ + #define R_ETHSW_P2_QMSPPC7_QMSPPC_Pos (0UL) /*!< QMSPPC (Bit 0) */ + #define R_ETHSW_P2_QMSPPC7_QMSPPC_Msk (0xffffUL) /*!< QMSPPC (Bitfield-Mask: 0xffff) */ +/* ====================================================== P2_QMSRPC0 ======================================================= */ + #define R_ETHSW_P2_QMSRPC0_QMSRPC_Pos (0UL) /*!< QMSRPC (Bit 0) */ + #define R_ETHSW_P2_QMSRPC0_QMSRPC_Msk (0xffffUL) /*!< QMSRPC (Bitfield-Mask: 0xffff) */ +/* ====================================================== P2_QMSRPC1 ======================================================= */ + #define R_ETHSW_P2_QMSRPC1_QMSRPC_Pos (0UL) /*!< QMSRPC (Bit 0) */ + #define R_ETHSW_P2_QMSRPC1_QMSRPC_Msk (0xffffUL) /*!< QMSRPC (Bitfield-Mask: 0xffff) */ +/* ====================================================== P2_QMSRPC2 ======================================================= */ + #define R_ETHSW_P2_QMSRPC2_QMSRPC_Pos (0UL) /*!< QMSRPC (Bit 0) */ + #define R_ETHSW_P2_QMSRPC2_QMSRPC_Msk (0xffffUL) /*!< QMSRPC (Bitfield-Mask: 0xffff) */ +/* ====================================================== P2_QMSRPC3 ======================================================= */ + #define R_ETHSW_P2_QMSRPC3_QMSRPC_Pos (0UL) /*!< QMSRPC (Bit 0) */ + #define R_ETHSW_P2_QMSRPC3_QMSRPC_Msk (0xffffUL) /*!< QMSRPC (Bitfield-Mask: 0xffff) */ +/* ====================================================== P2_QMSRPC4 ======================================================= */ + #define R_ETHSW_P2_QMSRPC4_QMSRPC_Pos (0UL) /*!< QMSRPC (Bit 0) */ + #define R_ETHSW_P2_QMSRPC4_QMSRPC_Msk (0xffffUL) /*!< QMSRPC (Bitfield-Mask: 0xffff) */ +/* ====================================================== P2_QMSRPC5 ======================================================= */ + #define R_ETHSW_P2_QMSRPC5_QMSRPC_Pos (0UL) /*!< QMSRPC (Bit 0) */ + #define R_ETHSW_P2_QMSRPC5_QMSRPC_Msk (0xffffUL) /*!< QMSRPC (Bitfield-Mask: 0xffff) */ +/* ====================================================== P2_QMSRPC6 ======================================================= */ + #define R_ETHSW_P2_QMSRPC6_QMSRPC_Pos (0UL) /*!< QMSRPC (Bit 0) */ + #define R_ETHSW_P2_QMSRPC6_QMSRPC_Msk (0xffffUL) /*!< QMSRPC (Bitfield-Mask: 0xffff) */ +/* ====================================================== P2_QMSRPC7 ======================================================= */ + #define R_ETHSW_P2_QMSRPC7_QMSRPC_Pos (0UL) /*!< QMSRPC (Bit 0) */ + #define R_ETHSW_P2_QMSRPC7_QMSRPC_Msk (0xffffUL) /*!< QMSRPC (Bitfield-Mask: 0xffff) */ +/* ======================================================= P2_QGDPC0 ======================================================= */ + #define R_ETHSW_P2_QGDPC0_QGDPC_Pos (0UL) /*!< QGDPC (Bit 0) */ + #define R_ETHSW_P2_QGDPC0_QGDPC_Msk (0xffffUL) /*!< QGDPC (Bitfield-Mask: 0xffff) */ +/* ======================================================= P2_QGDPC1 ======================================================= */ + #define R_ETHSW_P2_QGDPC1_QGDPC_Pos (0UL) /*!< QGDPC (Bit 0) */ + #define R_ETHSW_P2_QGDPC1_QGDPC_Msk (0xffffUL) /*!< QGDPC (Bitfield-Mask: 0xffff) */ +/* ======================================================= P2_QGDPC2 ======================================================= */ + #define R_ETHSW_P2_QGDPC2_QGDPC_Pos (0UL) /*!< QGDPC (Bit 0) */ + #define R_ETHSW_P2_QGDPC2_QGDPC_Msk (0xffffUL) /*!< QGDPC (Bitfield-Mask: 0xffff) */ +/* ======================================================= P2_QGDPC3 ======================================================= */ + #define R_ETHSW_P2_QGDPC3_QGDPC_Pos (0UL) /*!< QGDPC (Bit 0) */ + #define R_ETHSW_P2_QGDPC3_QGDPC_Msk (0xffffUL) /*!< QGDPC (Bitfield-Mask: 0xffff) */ +/* ======================================================= P2_QGDPC4 ======================================================= */ + #define R_ETHSW_P2_QGDPC4_QGDPC_Pos (0UL) /*!< QGDPC (Bit 0) */ + #define R_ETHSW_P2_QGDPC4_QGDPC_Msk (0xffffUL) /*!< QGDPC (Bitfield-Mask: 0xffff) */ +/* ======================================================= P2_QGDPC5 ======================================================= */ + #define R_ETHSW_P2_QGDPC5_QGDPC_Pos (0UL) /*!< QGDPC (Bit 0) */ + #define R_ETHSW_P2_QGDPC5_QGDPC_Msk (0xffffUL) /*!< QGDPC (Bitfield-Mask: 0xffff) */ +/* ======================================================= P2_QGDPC6 ======================================================= */ + #define R_ETHSW_P2_QGDPC6_QGDPC_Pos (0UL) /*!< QGDPC (Bit 0) */ + #define R_ETHSW_P2_QGDPC6_QGDPC_Msk (0xffffUL) /*!< QGDPC (Bitfield-Mask: 0xffff) */ +/* ======================================================= P2_QGDPC7 ======================================================= */ + #define R_ETHSW_P2_QGDPC7_QGDPC_Pos (0UL) /*!< QGDPC (Bit 0) */ + #define R_ETHSW_P2_QGDPC7_QGDPC_Msk (0xffffUL) /*!< QGDPC (Bitfield-Mask: 0xffff) */ +/* ====================================================== P2_QMDESC0 ======================================================= */ + #define R_ETHSW_P2_QMDESC0_RFD_Pos (0UL) /*!< RFD (Bit 0) */ + #define R_ETHSW_P2_QMDESC0_RFD_Msk (0x1UL) /*!< RFD (Bitfield-Mask: 0x01) */ + #define R_ETHSW_P2_QMDESC0_MM_Pos (1UL) /*!< MM (Bit 1) */ + #define R_ETHSW_P2_QMDESC0_MM_Msk (0x2UL) /*!< MM (Bitfield-Mask: 0x01) */ + #define R_ETHSW_P2_QMDESC0_CF_Pos (2UL) /*!< CF (Bit 2) */ + #define R_ETHSW_P2_QMDESC0_CF_Msk (0x4UL) /*!< CF (Bitfield-Mask: 0x01) */ +/* ====================================================== P2_QMDESC1 ======================================================= */ + #define R_ETHSW_P2_QMDESC1_RFD_Pos (0UL) /*!< RFD (Bit 0) */ + #define R_ETHSW_P2_QMDESC1_RFD_Msk (0x1UL) /*!< RFD (Bitfield-Mask: 0x01) */ + #define R_ETHSW_P2_QMDESC1_MM_Pos (1UL) /*!< MM (Bit 1) */ + #define R_ETHSW_P2_QMDESC1_MM_Msk (0x2UL) /*!< MM (Bitfield-Mask: 0x01) */ + #define R_ETHSW_P2_QMDESC1_CF_Pos (2UL) /*!< CF (Bit 2) */ + #define R_ETHSW_P2_QMDESC1_CF_Msk (0x4UL) /*!< CF (Bitfield-Mask: 0x01) */ +/* ====================================================== P2_QMDESC2 ======================================================= */ + #define R_ETHSW_P2_QMDESC2_RFD_Pos (0UL) /*!< RFD (Bit 0) */ + #define R_ETHSW_P2_QMDESC2_RFD_Msk (0x1UL) /*!< RFD (Bitfield-Mask: 0x01) */ + #define R_ETHSW_P2_QMDESC2_MM_Pos (1UL) /*!< MM (Bit 1) */ + #define R_ETHSW_P2_QMDESC2_MM_Msk (0x2UL) /*!< MM (Bitfield-Mask: 0x01) */ + #define R_ETHSW_P2_QMDESC2_CF_Pos (2UL) /*!< CF (Bit 2) */ + #define R_ETHSW_P2_QMDESC2_CF_Msk (0x4UL) /*!< CF (Bitfield-Mask: 0x01) */ +/* ====================================================== P2_QMDESC3 ======================================================= */ + #define R_ETHSW_P2_QMDESC3_RFD_Pos (0UL) /*!< RFD (Bit 0) */ + #define R_ETHSW_P2_QMDESC3_RFD_Msk (0x1UL) /*!< RFD (Bitfield-Mask: 0x01) */ + #define R_ETHSW_P2_QMDESC3_MM_Pos (1UL) /*!< MM (Bit 1) */ + #define R_ETHSW_P2_QMDESC3_MM_Msk (0x2UL) /*!< MM (Bitfield-Mask: 0x01) */ + #define R_ETHSW_P2_QMDESC3_CF_Pos (2UL) /*!< CF (Bit 2) */ + #define R_ETHSW_P2_QMDESC3_CF_Msk (0x4UL) /*!< CF (Bitfield-Mask: 0x01) */ +/* ====================================================== P2_QMDESC4 ======================================================= */ + #define R_ETHSW_P2_QMDESC4_RFD_Pos (0UL) /*!< RFD (Bit 0) */ + #define R_ETHSW_P2_QMDESC4_RFD_Msk (0x1UL) /*!< RFD (Bitfield-Mask: 0x01) */ + #define R_ETHSW_P2_QMDESC4_MM_Pos (1UL) /*!< MM (Bit 1) */ + #define R_ETHSW_P2_QMDESC4_MM_Msk (0x2UL) /*!< MM (Bitfield-Mask: 0x01) */ + #define R_ETHSW_P2_QMDESC4_CF_Pos (2UL) /*!< CF (Bit 2) */ + #define R_ETHSW_P2_QMDESC4_CF_Msk (0x4UL) /*!< CF (Bitfield-Mask: 0x01) */ +/* ====================================================== P2_QMDESC5 ======================================================= */ + #define R_ETHSW_P2_QMDESC5_RFD_Pos (0UL) /*!< RFD (Bit 0) */ + #define R_ETHSW_P2_QMDESC5_RFD_Msk (0x1UL) /*!< RFD (Bitfield-Mask: 0x01) */ + #define R_ETHSW_P2_QMDESC5_MM_Pos (1UL) /*!< MM (Bit 1) */ + #define R_ETHSW_P2_QMDESC5_MM_Msk (0x2UL) /*!< MM (Bitfield-Mask: 0x01) */ + #define R_ETHSW_P2_QMDESC5_CF_Pos (2UL) /*!< CF (Bit 2) */ + #define R_ETHSW_P2_QMDESC5_CF_Msk (0x4UL) /*!< CF (Bitfield-Mask: 0x01) */ +/* ====================================================== P2_QMDESC6 ======================================================= */ + #define R_ETHSW_P2_QMDESC6_RFD_Pos (0UL) /*!< RFD (Bit 0) */ + #define R_ETHSW_P2_QMDESC6_RFD_Msk (0x1UL) /*!< RFD (Bitfield-Mask: 0x01) */ + #define R_ETHSW_P2_QMDESC6_MM_Pos (1UL) /*!< MM (Bit 1) */ + #define R_ETHSW_P2_QMDESC6_MM_Msk (0x2UL) /*!< MM (Bitfield-Mask: 0x01) */ + #define R_ETHSW_P2_QMDESC6_CF_Pos (2UL) /*!< CF (Bit 2) */ + #define R_ETHSW_P2_QMDESC6_CF_Msk (0x4UL) /*!< CF (Bitfield-Mask: 0x01) */ +/* ====================================================== P2_QMDESC7 ======================================================= */ + #define R_ETHSW_P2_QMDESC7_RFD_Pos (0UL) /*!< RFD (Bit 0) */ + #define R_ETHSW_P2_QMDESC7_RFD_Msk (0x1UL) /*!< RFD (Bitfield-Mask: 0x01) */ + #define R_ETHSW_P2_QMDESC7_MM_Pos (1UL) /*!< MM (Bit 1) */ + #define R_ETHSW_P2_QMDESC7_MM_Msk (0x2UL) /*!< MM (Bitfield-Mask: 0x01) */ + #define R_ETHSW_P2_QMDESC7_CF_Pos (2UL) /*!< CF (Bit 2) */ + #define R_ETHSW_P2_QMDESC7_CF_Msk (0x4UL) /*!< CF (Bitfield-Mask: 0x01) */ +/* ====================================================== P2_QMCBSC0 ======================================================= */ + #define R_ETHSW_P2_QMCBSC0_CBS_Pos (0UL) /*!< CBS (Bit 0) */ + #define R_ETHSW_P2_QMCBSC0_CBS_Msk (0x3ffffUL) /*!< CBS (Bitfield-Mask: 0x3ffff) */ +/* ====================================================== P2_QMCBSC1 ======================================================= */ + #define R_ETHSW_P2_QMCBSC1_CBS_Pos (0UL) /*!< CBS (Bit 0) */ + #define R_ETHSW_P2_QMCBSC1_CBS_Msk (0x3ffffUL) /*!< CBS (Bitfield-Mask: 0x3ffff) */ +/* ====================================================== P2_QMCBSC2 ======================================================= */ + #define R_ETHSW_P2_QMCBSC2_CBS_Pos (0UL) /*!< CBS (Bit 0) */ + #define R_ETHSW_P2_QMCBSC2_CBS_Msk (0x3ffffUL) /*!< CBS (Bitfield-Mask: 0x3ffff) */ +/* ====================================================== P2_QMCBSC3 ======================================================= */ + #define R_ETHSW_P2_QMCBSC3_CBS_Pos (0UL) /*!< CBS (Bit 0) */ + #define R_ETHSW_P2_QMCBSC3_CBS_Msk (0x3ffffUL) /*!< CBS (Bitfield-Mask: 0x3ffff) */ +/* ====================================================== P2_QMCBSC4 ======================================================= */ + #define R_ETHSW_P2_QMCBSC4_CBS_Pos (0UL) /*!< CBS (Bit 0) */ + #define R_ETHSW_P2_QMCBSC4_CBS_Msk (0x3ffffUL) /*!< CBS (Bitfield-Mask: 0x3ffff) */ +/* ====================================================== P2_QMCBSC5 ======================================================= */ + #define R_ETHSW_P2_QMCBSC5_CBS_Pos (0UL) /*!< CBS (Bit 0) */ + #define R_ETHSW_P2_QMCBSC5_CBS_Msk (0x3ffffUL) /*!< CBS (Bitfield-Mask: 0x3ffff) */ +/* ====================================================== P2_QMCBSC6 ======================================================= */ + #define R_ETHSW_P2_QMCBSC6_CBS_Pos (0UL) /*!< CBS (Bit 0) */ + #define R_ETHSW_P2_QMCBSC6_CBS_Msk (0x3ffffUL) /*!< CBS (Bitfield-Mask: 0x3ffff) */ +/* ====================================================== P2_QMCBSC7 ======================================================= */ + #define R_ETHSW_P2_QMCBSC7_CBS_Pos (0UL) /*!< CBS (Bit 0) */ + #define R_ETHSW_P2_QMCBSC7_CBS_Msk (0x3ffffUL) /*!< CBS (Bitfield-Mask: 0x3ffff) */ +/* ====================================================== P2_QMCIRC0 ======================================================= */ + #define R_ETHSW_P2_QMCIRC0_CIR_Pos (0UL) /*!< CIR (Bit 0) */ + #define R_ETHSW_P2_QMCIRC0_CIR_Msk (0x1ffffUL) /*!< CIR (Bitfield-Mask: 0x1ffff) */ +/* ====================================================== P2_QMCIRC1 ======================================================= */ + #define R_ETHSW_P2_QMCIRC1_CIR_Pos (0UL) /*!< CIR (Bit 0) */ + #define R_ETHSW_P2_QMCIRC1_CIR_Msk (0x1ffffUL) /*!< CIR (Bitfield-Mask: 0x1ffff) */ +/* ====================================================== P2_QMCIRC2 ======================================================= */ + #define R_ETHSW_P2_QMCIRC2_CIR_Pos (0UL) /*!< CIR (Bit 0) */ + #define R_ETHSW_P2_QMCIRC2_CIR_Msk (0x1ffffUL) /*!< CIR (Bitfield-Mask: 0x1ffff) */ +/* ====================================================== P2_QMCIRC3 ======================================================= */ + #define R_ETHSW_P2_QMCIRC3_CIR_Pos (0UL) /*!< CIR (Bit 0) */ + #define R_ETHSW_P2_QMCIRC3_CIR_Msk (0x1ffffUL) /*!< CIR (Bitfield-Mask: 0x1ffff) */ +/* ====================================================== P2_QMCIRC4 ======================================================= */ + #define R_ETHSW_P2_QMCIRC4_CIR_Pos (0UL) /*!< CIR (Bit 0) */ + #define R_ETHSW_P2_QMCIRC4_CIR_Msk (0x1ffffUL) /*!< CIR (Bitfield-Mask: 0x1ffff) */ +/* ====================================================== P2_QMCIRC5 ======================================================= */ + #define R_ETHSW_P2_QMCIRC5_CIR_Pos (0UL) /*!< CIR (Bit 0) */ + #define R_ETHSW_P2_QMCIRC5_CIR_Msk (0x1ffffUL) /*!< CIR (Bitfield-Mask: 0x1ffff) */ +/* ====================================================== P2_QMCIRC6 ======================================================= */ + #define R_ETHSW_P2_QMCIRC6_CIR_Pos (0UL) /*!< CIR (Bit 0) */ + #define R_ETHSW_P2_QMCIRC6_CIR_Msk (0x1ffffUL) /*!< CIR (Bitfield-Mask: 0x1ffff) */ +/* ====================================================== P2_QMCIRC7 ======================================================= */ + #define R_ETHSW_P2_QMCIRC7_CIR_Pos (0UL) /*!< CIR (Bit 0) */ + #define R_ETHSW_P2_QMCIRC7_CIR_Msk (0x1ffffUL) /*!< CIR (Bitfield-Mask: 0x1ffff) */ +/* ======================================================= P2_QMGPC0 ======================================================= */ + #define R_ETHSW_P2_QMGPC0_QMGPC_Pos (0UL) /*!< QMGPC (Bit 0) */ + #define R_ETHSW_P2_QMGPC0_QMGPC_Msk (0xffffUL) /*!< QMGPC (Bitfield-Mask: 0xffff) */ +/* ======================================================= P2_QMGPC1 ======================================================= */ + #define R_ETHSW_P2_QMGPC1_QMGPC_Pos (0UL) /*!< QMGPC (Bit 0) */ + #define R_ETHSW_P2_QMGPC1_QMGPC_Msk (0xffffUL) /*!< QMGPC (Bitfield-Mask: 0xffff) */ +/* ======================================================= P2_QMGPC2 ======================================================= */ + #define R_ETHSW_P2_QMGPC2_QMGPC_Pos (0UL) /*!< QMGPC (Bit 0) */ + #define R_ETHSW_P2_QMGPC2_QMGPC_Msk (0xffffUL) /*!< QMGPC (Bitfield-Mask: 0xffff) */ +/* ======================================================= P2_QMGPC3 ======================================================= */ + #define R_ETHSW_P2_QMGPC3_QMGPC_Pos (0UL) /*!< QMGPC (Bit 0) */ + #define R_ETHSW_P2_QMGPC3_QMGPC_Msk (0xffffUL) /*!< QMGPC (Bitfield-Mask: 0xffff) */ +/* ======================================================= P2_QMGPC4 ======================================================= */ + #define R_ETHSW_P2_QMGPC4_QMGPC_Pos (0UL) /*!< QMGPC (Bit 0) */ + #define R_ETHSW_P2_QMGPC4_QMGPC_Msk (0xffffUL) /*!< QMGPC (Bitfield-Mask: 0xffff) */ +/* ======================================================= P2_QMGPC5 ======================================================= */ + #define R_ETHSW_P2_QMGPC5_QMGPC_Pos (0UL) /*!< QMGPC (Bit 0) */ + #define R_ETHSW_P2_QMGPC5_QMGPC_Msk (0xffffUL) /*!< QMGPC (Bitfield-Mask: 0xffff) */ +/* ======================================================= P2_QMGPC6 ======================================================= */ + #define R_ETHSW_P2_QMGPC6_QMGPC_Pos (0UL) /*!< QMGPC (Bit 0) */ + #define R_ETHSW_P2_QMGPC6_QMGPC_Msk (0xffffUL) /*!< QMGPC (Bitfield-Mask: 0xffff) */ +/* ======================================================= P2_QMGPC7 ======================================================= */ + #define R_ETHSW_P2_QMGPC7_QMGPC_Pos (0UL) /*!< QMGPC (Bit 0) */ + #define R_ETHSW_P2_QMGPC7_QMGPC_Msk (0xffffUL) /*!< QMGPC (Bitfield-Mask: 0xffff) */ +/* ======================================================= P2_QMRPC0 ======================================================= */ + #define R_ETHSW_P2_QMRPC0_QMRPC_Pos (0UL) /*!< QMRPC (Bit 0) */ + #define R_ETHSW_P2_QMRPC0_QMRPC_Msk (0xffffUL) /*!< QMRPC (Bitfield-Mask: 0xffff) */ +/* ======================================================= P2_QMRPC1 ======================================================= */ + #define R_ETHSW_P2_QMRPC1_QMRPC_Pos (0UL) /*!< QMRPC (Bit 0) */ + #define R_ETHSW_P2_QMRPC1_QMRPC_Msk (0xffffUL) /*!< QMRPC (Bitfield-Mask: 0xffff) */ +/* ======================================================= P2_QMRPC2 ======================================================= */ + #define R_ETHSW_P2_QMRPC2_QMRPC_Pos (0UL) /*!< QMRPC (Bit 0) */ + #define R_ETHSW_P2_QMRPC2_QMRPC_Msk (0xffffUL) /*!< QMRPC (Bitfield-Mask: 0xffff) */ +/* ======================================================= P2_QMRPC3 ======================================================= */ + #define R_ETHSW_P2_QMRPC3_QMRPC_Pos (0UL) /*!< QMRPC (Bit 0) */ + #define R_ETHSW_P2_QMRPC3_QMRPC_Msk (0xffffUL) /*!< QMRPC (Bitfield-Mask: 0xffff) */ +/* ======================================================= P2_QMRPC4 ======================================================= */ + #define R_ETHSW_P2_QMRPC4_QMRPC_Pos (0UL) /*!< QMRPC (Bit 0) */ + #define R_ETHSW_P2_QMRPC4_QMRPC_Msk (0xffffUL) /*!< QMRPC (Bitfield-Mask: 0xffff) */ +/* ======================================================= P2_QMRPC5 ======================================================= */ + #define R_ETHSW_P2_QMRPC5_QMRPC_Pos (0UL) /*!< QMRPC (Bit 0) */ + #define R_ETHSW_P2_QMRPC5_QMRPC_Msk (0xffffUL) /*!< QMRPC (Bitfield-Mask: 0xffff) */ +/* ======================================================= P2_QMRPC6 ======================================================= */ + #define R_ETHSW_P2_QMRPC6_QMRPC_Pos (0UL) /*!< QMRPC (Bit 0) */ + #define R_ETHSW_P2_QMRPC6_QMRPC_Msk (0xffffUL) /*!< QMRPC (Bitfield-Mask: 0xffff) */ +/* ======================================================= P2_QMRPC7 ======================================================= */ + #define R_ETHSW_P2_QMRPC7_QMRPC_Pos (0UL) /*!< QMRPC (Bit 0) */ + #define R_ETHSW_P2_QMRPC7_QMRPC_Msk (0xffffUL) /*!< QMRPC (Bitfield-Mask: 0xffff) */ +/* ===================================================== STATN_STATUS ====================================================== */ + #define R_ETHSW_STATN_STATUS_BUSY_Pos (0UL) /*!< BUSY (Bit 0) */ + #define R_ETHSW_STATN_STATUS_BUSY_Msk (0x1UL) /*!< BUSY (Bitfield-Mask: 0x01) */ +/* ===================================================== STATN_CONFIG ====================================================== */ + #define R_ETHSW_STATN_CONFIG_CLEAR_ON_READ_Pos (1UL) /*!< CLEAR_ON_READ (Bit 1) */ + #define R_ETHSW_STATN_CONFIG_CLEAR_ON_READ_Msk (0x2UL) /*!< CLEAR_ON_READ (Bitfield-Mask: 0x01) */ + #define R_ETHSW_STATN_CONFIG_RESET_Pos (31UL) /*!< RESET (Bit 31) */ + #define R_ETHSW_STATN_CONFIG_RESET_Msk (0x80000000UL) /*!< RESET (Bitfield-Mask: 0x01) */ +/* ===================================================== STATN_CONTROL ===================================================== */ + #define R_ETHSW_STATN_CONTROL_CHANMASK_Pos (0UL) /*!< CHANMASK (Bit 0) */ + #define R_ETHSW_STATN_CONTROL_CHANMASK_Msk (0xfUL) /*!< CHANMASK (Bitfield-Mask: 0x0f) */ + #define R_ETHSW_STATN_CONTROL_CLEAR_PRE_Pos (29UL) /*!< CLEAR_PRE (Bit 29) */ + #define R_ETHSW_STATN_CONTROL_CLEAR_PRE_Msk (0x20000000UL) /*!< CLEAR_PRE (Bitfield-Mask: 0x01) */ + #define R_ETHSW_STATN_CONTROL_CMD_CLEAR_Pos (31UL) /*!< CMD_CLEAR (Bit 31) */ + #define R_ETHSW_STATN_CONTROL_CMD_CLEAR_Msk (0x80000000UL) /*!< CMD_CLEAR (Bitfield-Mask: 0x01) */ +/* ================================================== STATN_CLEARVALUE_LO ================================================== */ + #define R_ETHSW_STATN_CLEARVALUE_LO_STATN_CLEARVALUE_LO_Pos (0UL) /*!< STATN_CLEARVALUE_LO (Bit 0) */ + #define R_ETHSW_STATN_CLEARVALUE_LO_STATN_CLEARVALUE_LO_Msk (0xffffffffUL) /*!< STATN_CLEARVALUE_LO (Bitfield-Mask: 0xffffffff) */ +/* ======================================================== ODISC0 ========================================================= */ + #define R_ETHSW_ODISC0_ODISC_Pos (0UL) /*!< ODISC (Bit 0) */ + #define R_ETHSW_ODISC0_ODISC_Msk (0xffffffffUL) /*!< ODISC (Bitfield-Mask: 0xffffffff) */ +/* ======================================================== ODISC1 ========================================================= */ + #define R_ETHSW_ODISC1_ODISC_Pos (0UL) /*!< ODISC (Bit 0) */ + #define R_ETHSW_ODISC1_ODISC_Msk (0xffffffffUL) /*!< ODISC (Bitfield-Mask: 0xffffffff) */ +/* ======================================================== ODISC2 ========================================================= */ + #define R_ETHSW_ODISC2_ODISC_Pos (0UL) /*!< ODISC (Bit 0) */ + #define R_ETHSW_ODISC2_ODISC_Msk (0xffffffffUL) /*!< ODISC (Bitfield-Mask: 0xffffffff) */ +/* ======================================================== ODISC3 ========================================================= */ + #define R_ETHSW_ODISC3_ODISC_Pos (0UL) /*!< ODISC (Bit 0) */ + #define R_ETHSW_ODISC3_ODISC_Msk (0xffffffffUL) /*!< ODISC (Bitfield-Mask: 0xffffffff) */ +/* ====================================================== IDISC_VLAN0 ====================================================== */ + #define R_ETHSW_IDISC_VLAN0_IDISC_VLAN_Pos (0UL) /*!< IDISC_VLAN (Bit 0) */ + #define R_ETHSW_IDISC_VLAN0_IDISC_VLAN_Msk (0xffffffffUL) /*!< IDISC_VLAN (Bitfield-Mask: 0xffffffff) */ +/* ====================================================== IDISC_VLAN1 ====================================================== */ + #define R_ETHSW_IDISC_VLAN1_IDISC_VLAN_Pos (0UL) /*!< IDISC_VLAN (Bit 0) */ + #define R_ETHSW_IDISC_VLAN1_IDISC_VLAN_Msk (0xffffffffUL) /*!< IDISC_VLAN (Bitfield-Mask: 0xffffffff) */ +/* ====================================================== IDISC_VLAN2 ====================================================== */ + #define R_ETHSW_IDISC_VLAN2_IDISC_VLAN_Pos (0UL) /*!< IDISC_VLAN (Bit 0) */ + #define R_ETHSW_IDISC_VLAN2_IDISC_VLAN_Msk (0xffffffffUL) /*!< IDISC_VLAN (Bitfield-Mask: 0xffffffff) */ +/* ====================================================== IDISC_VLAN3 ====================================================== */ + #define R_ETHSW_IDISC_VLAN3_IDISC_VLAN_Pos (0UL) /*!< IDISC_VLAN (Bit 0) */ + #define R_ETHSW_IDISC_VLAN3_IDISC_VLAN_Msk (0xffffffffUL) /*!< IDISC_VLAN (Bitfield-Mask: 0xffffffff) */ +/* ==================================================== IDISC_UNTAGGED0 ==================================================== */ + #define R_ETHSW_IDISC_UNTAGGED0_IDISC_UNTAGGED_Pos (0UL) /*!< IDISC_UNTAGGED (Bit 0) */ + #define R_ETHSW_IDISC_UNTAGGED0_IDISC_UNTAGGED_Msk (0xffffffffUL) /*!< IDISC_UNTAGGED (Bitfield-Mask: 0xffffffff) */ +/* ==================================================== IDISC_UNTAGGED1 ==================================================== */ + #define R_ETHSW_IDISC_UNTAGGED1_IDISC_UNTAGGED_Pos (0UL) /*!< IDISC_UNTAGGED (Bit 0) */ + #define R_ETHSW_IDISC_UNTAGGED1_IDISC_UNTAGGED_Msk (0xffffffffUL) /*!< IDISC_UNTAGGED (Bitfield-Mask: 0xffffffff) */ +/* ==================================================== IDISC_UNTAGGED2 ==================================================== */ + #define R_ETHSW_IDISC_UNTAGGED2_IDISC_UNTAGGED_Pos (0UL) /*!< IDISC_UNTAGGED (Bit 0) */ + #define R_ETHSW_IDISC_UNTAGGED2_IDISC_UNTAGGED_Msk (0xffffffffUL) /*!< IDISC_UNTAGGED (Bitfield-Mask: 0xffffffff) */ +/* ==================================================== IDISC_UNTAGGED3 ==================================================== */ + #define R_ETHSW_IDISC_UNTAGGED3_IDISC_UNTAGGED_Pos (0UL) /*!< IDISC_UNTAGGED (Bit 0) */ + #define R_ETHSW_IDISC_UNTAGGED3_IDISC_UNTAGGED_Msk (0xffffffffUL) /*!< IDISC_UNTAGGED (Bitfield-Mask: 0xffffffff) */ +/* ==================================================== IDISC_BLOCKED0 ===================================================== */ + #define R_ETHSW_IDISC_BLOCKED0_IDISC_BLOCKED_Pos (0UL) /*!< IDISC_BLOCKED (Bit 0) */ + #define R_ETHSW_IDISC_BLOCKED0_IDISC_BLOCKED_Msk (0xffffffffUL) /*!< IDISC_BLOCKED (Bitfield-Mask: 0xffffffff) */ +/* ==================================================== IDISC_BLOCKED1 ===================================================== */ + #define R_ETHSW_IDISC_BLOCKED1_IDISC_BLOCKED_Pos (0UL) /*!< IDISC_BLOCKED (Bit 0) */ + #define R_ETHSW_IDISC_BLOCKED1_IDISC_BLOCKED_Msk (0xffffffffUL) /*!< IDISC_BLOCKED (Bitfield-Mask: 0xffffffff) */ +/* ==================================================== IDISC_BLOCKED2 ===================================================== */ + #define R_ETHSW_IDISC_BLOCKED2_IDISC_BLOCKED_Pos (0UL) /*!< IDISC_BLOCKED (Bit 0) */ + #define R_ETHSW_IDISC_BLOCKED2_IDISC_BLOCKED_Msk (0xffffffffUL) /*!< IDISC_BLOCKED (Bitfield-Mask: 0xffffffff) */ +/* ==================================================== IDISC_BLOCKED3 ===================================================== */ + #define R_ETHSW_IDISC_BLOCKED3_IDISC_BLOCKED_Pos (0UL) /*!< IDISC_BLOCKED (Bit 0) */ + #define R_ETHSW_IDISC_BLOCKED3_IDISC_BLOCKED_Msk (0xffffffffUL) /*!< IDISC_BLOCKED (Bitfield-Mask: 0xffffffff) */ +/* ====================================================== IDISC_ANY0 ======================================================= */ + #define R_ETHSW_IDISC_ANY0_IDISC_ANY_Pos (0UL) /*!< IDISC_ANY (Bit 0) */ + #define R_ETHSW_IDISC_ANY0_IDISC_ANY_Msk (0xffffffffUL) /*!< IDISC_ANY (Bitfield-Mask: 0xffffffff) */ +/* ====================================================== IDISC_ANY1 ======================================================= */ + #define R_ETHSW_IDISC_ANY1_IDISC_ANY_Pos (0UL) /*!< IDISC_ANY (Bit 0) */ + #define R_ETHSW_IDISC_ANY1_IDISC_ANY_Msk (0xffffffffUL) /*!< IDISC_ANY (Bitfield-Mask: 0xffffffff) */ +/* ====================================================== IDISC_ANY2 ======================================================= */ + #define R_ETHSW_IDISC_ANY2_IDISC_ANY_Pos (0UL) /*!< IDISC_ANY (Bit 0) */ + #define R_ETHSW_IDISC_ANY2_IDISC_ANY_Msk (0xffffffffUL) /*!< IDISC_ANY (Bitfield-Mask: 0xffffffff) */ +/* ====================================================== IDISC_ANY3 ======================================================= */ + #define R_ETHSW_IDISC_ANY3_IDISC_ANY_Pos (0UL) /*!< IDISC_ANY (Bit 0) */ + #define R_ETHSW_IDISC_ANY3_IDISC_ANY_Msk (0xffffffffUL) /*!< IDISC_ANY (Bitfield-Mask: 0xffffffff) */ +/* ===================================================== IDISC_SRCFLT0 ===================================================== */ + #define R_ETHSW_IDISC_SRCFLT0_IDISC_SRCFLT_Pos (0UL) /*!< IDISC_SRCFLT (Bit 0) */ + #define R_ETHSW_IDISC_SRCFLT0_IDISC_SRCFLT_Msk (0xffffffffUL) /*!< IDISC_SRCFLT (Bitfield-Mask: 0xffffffff) */ +/* ===================================================== IDISC_SRCFLT1 ===================================================== */ + #define R_ETHSW_IDISC_SRCFLT1_IDISC_SRCFLT_Pos (0UL) /*!< IDISC_SRCFLT (Bit 0) */ + #define R_ETHSW_IDISC_SRCFLT1_IDISC_SRCFLT_Msk (0xffffffffUL) /*!< IDISC_SRCFLT (Bitfield-Mask: 0xffffffff) */ +/* ===================================================== IDISC_SRCFLT2 ===================================================== */ + #define R_ETHSW_IDISC_SRCFLT2_IDISC_SRCFLT_Pos (0UL) /*!< IDISC_SRCFLT (Bit 0) */ + #define R_ETHSW_IDISC_SRCFLT2_IDISC_SRCFLT_Msk (0xffffffffUL) /*!< IDISC_SRCFLT (Bitfield-Mask: 0xffffffff) */ +/* =================================================== TX_HOLD_REQ_CNT0 ==================================================== */ + #define R_ETHSW_TX_HOLD_REQ_CNT0_TX_HOLD_REQ_CNT_Pos (0UL) /*!< TX_HOLD_REQ_CNT (Bit 0) */ + #define R_ETHSW_TX_HOLD_REQ_CNT0_TX_HOLD_REQ_CNT_Msk (0xffffffffUL) /*!< TX_HOLD_REQ_CNT (Bitfield-Mask: 0xffffffff) */ +/* =================================================== TX_HOLD_REQ_CNT1 ==================================================== */ + #define R_ETHSW_TX_HOLD_REQ_CNT1_TX_HOLD_REQ_CNT_Pos (0UL) /*!< TX_HOLD_REQ_CNT (Bit 0) */ + #define R_ETHSW_TX_HOLD_REQ_CNT1_TX_HOLD_REQ_CNT_Msk (0xffffffffUL) /*!< TX_HOLD_REQ_CNT (Bitfield-Mask: 0xffffffff) */ +/* =================================================== TX_HOLD_REQ_CNT2 ==================================================== */ + #define R_ETHSW_TX_HOLD_REQ_CNT2_TX_HOLD_REQ_CNT_Pos (0UL) /*!< TX_HOLD_REQ_CNT (Bit 0) */ + #define R_ETHSW_TX_HOLD_REQ_CNT2_TX_HOLD_REQ_CNT_Msk (0xffffffffUL) /*!< TX_HOLD_REQ_CNT (Bitfield-Mask: 0xffffffff) */ +/* ===================================================== TX_FRAG_CNT0 ====================================================== */ + #define R_ETHSW_TX_FRAG_CNT0_TX_FRAG_CNT_Pos (0UL) /*!< TX_FRAG_CNT (Bit 0) */ + #define R_ETHSW_TX_FRAG_CNT0_TX_FRAG_CNT_Msk (0xffffffffUL) /*!< TX_FRAG_CNT (Bitfield-Mask: 0xffffffff) */ +/* ===================================================== TX_FRAG_CNT1 ====================================================== */ + #define R_ETHSW_TX_FRAG_CNT1_TX_FRAG_CNT_Pos (0UL) /*!< TX_FRAG_CNT (Bit 0) */ + #define R_ETHSW_TX_FRAG_CNT1_TX_FRAG_CNT_Msk (0xffffffffUL) /*!< TX_FRAG_CNT (Bitfield-Mask: 0xffffffff) */ +/* ===================================================== TX_FRAG_CNT2 ====================================================== */ + #define R_ETHSW_TX_FRAG_CNT2_TX_FRAG_CNT_Pos (0UL) /*!< TX_FRAG_CNT (Bit 0) */ + #define R_ETHSW_TX_FRAG_CNT2_TX_FRAG_CNT_Msk (0xffffffffUL) /*!< TX_FRAG_CNT (Bitfield-Mask: 0xffffffff) */ +/* ===================================================== RX_FRAG_CNT0 ====================================================== */ + #define R_ETHSW_RX_FRAG_CNT0_RX_FRAG_CNT_Pos (0UL) /*!< RX_FRAG_CNT (Bit 0) */ + #define R_ETHSW_RX_FRAG_CNT0_RX_FRAG_CNT_Msk (0xffffffffUL) /*!< RX_FRAG_CNT (Bitfield-Mask: 0xffffffff) */ +/* ===================================================== RX_FRAG_CNT1 ====================================================== */ + #define R_ETHSW_RX_FRAG_CNT1_RX_FRAG_CNT_Pos (0UL) /*!< RX_FRAG_CNT (Bit 0) */ + #define R_ETHSW_RX_FRAG_CNT1_RX_FRAG_CNT_Msk (0xffffffffUL) /*!< RX_FRAG_CNT (Bitfield-Mask: 0xffffffff) */ +/* ===================================================== RX_FRAG_CNT2 ====================================================== */ + #define R_ETHSW_RX_FRAG_CNT2_RX_FRAG_CNT_Pos (0UL) /*!< RX_FRAG_CNT (Bit 0) */ + #define R_ETHSW_RX_FRAG_CNT2_RX_FRAG_CNT_Msk (0xffffffffUL) /*!< RX_FRAG_CNT (Bitfield-Mask: 0xffffffff) */ +/* ==================================================== RX_ASSY_OK_CNT0 ==================================================== */ + #define R_ETHSW_RX_ASSY_OK_CNT0_RX_ASSY_OK_CNT_Pos (0UL) /*!< RX_ASSY_OK_CNT (Bit 0) */ + #define R_ETHSW_RX_ASSY_OK_CNT0_RX_ASSY_OK_CNT_Msk (0xffffffffUL) /*!< RX_ASSY_OK_CNT (Bitfield-Mask: 0xffffffff) */ +/* ==================================================== RX_ASSY_OK_CNT1 ==================================================== */ + #define R_ETHSW_RX_ASSY_OK_CNT1_RX_ASSY_OK_CNT_Pos (0UL) /*!< RX_ASSY_OK_CNT (Bit 0) */ + #define R_ETHSW_RX_ASSY_OK_CNT1_RX_ASSY_OK_CNT_Msk (0xffffffffUL) /*!< RX_ASSY_OK_CNT (Bitfield-Mask: 0xffffffff) */ +/* ==================================================== RX_ASSY_OK_CNT2 ==================================================== */ + #define R_ETHSW_RX_ASSY_OK_CNT2_RX_ASSY_OK_CNT_Pos (0UL) /*!< RX_ASSY_OK_CNT (Bit 0) */ + #define R_ETHSW_RX_ASSY_OK_CNT2_RX_ASSY_OK_CNT_Msk (0xffffffffUL) /*!< RX_ASSY_OK_CNT (Bitfield-Mask: 0xffffffff) */ +/* =================================================== RX_ASSY_ERR_CNT0 ==================================================== */ + #define R_ETHSW_RX_ASSY_ERR_CNT0_RX_ASSY_ERR_CNT_Pos (0UL) /*!< RX_ASSY_ERR_CNT (Bit 0) */ + #define R_ETHSW_RX_ASSY_ERR_CNT0_RX_ASSY_ERR_CNT_Msk (0xffffUL) /*!< RX_ASSY_ERR_CNT (Bitfield-Mask: 0xffff) */ +/* =================================================== RX_ASSY_ERR_CNT1 ==================================================== */ + #define R_ETHSW_RX_ASSY_ERR_CNT1_RX_ASSY_ERR_CNT_Pos (0UL) /*!< RX_ASSY_ERR_CNT (Bit 0) */ + #define R_ETHSW_RX_ASSY_ERR_CNT1_RX_ASSY_ERR_CNT_Msk (0xffffUL) /*!< RX_ASSY_ERR_CNT (Bitfield-Mask: 0xffff) */ +/* =================================================== RX_ASSY_ERR_CNT2 ==================================================== */ + #define R_ETHSW_RX_ASSY_ERR_CNT2_RX_ASSY_ERR_CNT_Pos (0UL) /*!< RX_ASSY_ERR_CNT (Bit 0) */ + #define R_ETHSW_RX_ASSY_ERR_CNT2_RX_ASSY_ERR_CNT_Msk (0xffffUL) /*!< RX_ASSY_ERR_CNT (Bitfield-Mask: 0xffff) */ +/* ==================================================== RX_SMD_ERR_CNT0 ==================================================== */ + #define R_ETHSW_RX_SMD_ERR_CNT0_RX_SMD_ERR_CNT_Pos (0UL) /*!< RX_SMD_ERR_CNT (Bit 0) */ + #define R_ETHSW_RX_SMD_ERR_CNT0_RX_SMD_ERR_CNT_Msk (0xffffUL) /*!< RX_SMD_ERR_CNT (Bitfield-Mask: 0xffff) */ +/* ==================================================== RX_SMD_ERR_CNT1 ==================================================== */ + #define R_ETHSW_RX_SMD_ERR_CNT1_RX_SMD_ERR_CNT_Pos (0UL) /*!< RX_SMD_ERR_CNT (Bit 0) */ + #define R_ETHSW_RX_SMD_ERR_CNT1_RX_SMD_ERR_CNT_Msk (0xffffUL) /*!< RX_SMD_ERR_CNT (Bitfield-Mask: 0xffff) */ +/* ==================================================== RX_SMD_ERR_CNT2 ==================================================== */ + #define R_ETHSW_RX_SMD_ERR_CNT2_RX_SMD_ERR_CNT_Pos (0UL) /*!< RX_SMD_ERR_CNT (Bit 0) */ + #define R_ETHSW_RX_SMD_ERR_CNT2_RX_SMD_ERR_CNT_Msk (0xffffUL) /*!< RX_SMD_ERR_CNT (Bitfield-Mask: 0xffff) */ +/* =================================================== TX_VERIFY_OK_CNT0 =================================================== */ + #define R_ETHSW_TX_VERIFY_OK_CNT0_TX_VERIFY_OK_CNT_Pos (0UL) /*!< TX_VERIFY_OK_CNT (Bit 0) */ + #define R_ETHSW_TX_VERIFY_OK_CNT0_TX_VERIFY_OK_CNT_Msk (0xffUL) /*!< TX_VERIFY_OK_CNT (Bitfield-Mask: 0xff) */ +/* =================================================== TX_VERIFY_OK_CNT1 =================================================== */ + #define R_ETHSW_TX_VERIFY_OK_CNT1_TX_VERIFY_OK_CNT_Pos (0UL) /*!< TX_VERIFY_OK_CNT (Bit 0) */ + #define R_ETHSW_TX_VERIFY_OK_CNT1_TX_VERIFY_OK_CNT_Msk (0xffUL) /*!< TX_VERIFY_OK_CNT (Bitfield-Mask: 0xff) */ +/* =================================================== TX_VERIFY_OK_CNT2 =================================================== */ + #define R_ETHSW_TX_VERIFY_OK_CNT2_TX_VERIFY_OK_CNT_Pos (0UL) /*!< TX_VERIFY_OK_CNT (Bit 0) */ + #define R_ETHSW_TX_VERIFY_OK_CNT2_TX_VERIFY_OK_CNT_Msk (0xffUL) /*!< TX_VERIFY_OK_CNT (Bitfield-Mask: 0xff) */ +/* ================================================== TX_RESPONSE_OK_CNT0 ================================================== */ + #define R_ETHSW_TX_RESPONSE_OK_CNT0_TX_RESPONSE_OK_CNT_Pos (0UL) /*!< TX_RESPONSE_OK_CNT (Bit 0) */ + #define R_ETHSW_TX_RESPONSE_OK_CNT0_TX_RESPONSE_OK_CNT_Msk (0xffUL) /*!< TX_RESPONSE_OK_CNT (Bitfield-Mask: 0xff) */ +/* ================================================== TX_RESPONSE_OK_CNT1 ================================================== */ + #define R_ETHSW_TX_RESPONSE_OK_CNT1_TX_RESPONSE_OK_CNT_Pos (0UL) /*!< TX_RESPONSE_OK_CNT (Bit 0) */ + #define R_ETHSW_TX_RESPONSE_OK_CNT1_TX_RESPONSE_OK_CNT_Msk (0xffUL) /*!< TX_RESPONSE_OK_CNT (Bitfield-Mask: 0xff) */ +/* ================================================== TX_RESPONSE_OK_CNT2 ================================================== */ + #define R_ETHSW_TX_RESPONSE_OK_CNT2_TX_RESPONSE_OK_CNT_Pos (0UL) /*!< TX_RESPONSE_OK_CNT (Bit 0) */ + #define R_ETHSW_TX_RESPONSE_OK_CNT2_TX_RESPONSE_OK_CNT_Msk (0xffUL) /*!< TX_RESPONSE_OK_CNT (Bitfield-Mask: 0xff) */ +/* =================================================== RX_VERIFY_OK_CNT0 =================================================== */ + #define R_ETHSW_RX_VERIFY_OK_CNT0_RX_VERIFY_OK_CNT_Pos (0UL) /*!< RX_VERIFY_OK_CNT (Bit 0) */ + #define R_ETHSW_RX_VERIFY_OK_CNT0_RX_VERIFY_OK_CNT_Msk (0xffUL) /*!< RX_VERIFY_OK_CNT (Bitfield-Mask: 0xff) */ +/* =================================================== RX_VERIFY_OK_CNT1 =================================================== */ + #define R_ETHSW_RX_VERIFY_OK_CNT1_RX_VERIFY_OK_CNT_Pos (0UL) /*!< RX_VERIFY_OK_CNT (Bit 0) */ + #define R_ETHSW_RX_VERIFY_OK_CNT1_RX_VERIFY_OK_CNT_Msk (0xffUL) /*!< RX_VERIFY_OK_CNT (Bitfield-Mask: 0xff) */ +/* =================================================== RX_VERIFY_OK_CNT2 =================================================== */ + #define R_ETHSW_RX_VERIFY_OK_CNT2_RX_VERIFY_OK_CNT_Pos (0UL) /*!< RX_VERIFY_OK_CNT (Bit 0) */ + #define R_ETHSW_RX_VERIFY_OK_CNT2_RX_VERIFY_OK_CNT_Msk (0xffUL) /*!< RX_VERIFY_OK_CNT (Bitfield-Mask: 0xff) */ +/* ================================================== RX_RESPONSE_OK_CNT0 ================================================== */ + #define R_ETHSW_RX_RESPONSE_OK_CNT0_RX_RESPONSE_OK_CNT_Pos (0UL) /*!< RX_RESPONSE_OK_CNT (Bit 0) */ + #define R_ETHSW_RX_RESPONSE_OK_CNT0_RX_RESPONSE_OK_CNT_Msk (0xffUL) /*!< RX_RESPONSE_OK_CNT (Bitfield-Mask: 0xff) */ +/* ================================================== RX_RESPONSE_OK_CNT1 ================================================== */ + #define R_ETHSW_RX_RESPONSE_OK_CNT1_RX_RESPONSE_OK_CNT_Pos (0UL) /*!< RX_RESPONSE_OK_CNT (Bit 0) */ + #define R_ETHSW_RX_RESPONSE_OK_CNT1_RX_RESPONSE_OK_CNT_Msk (0xffUL) /*!< RX_RESPONSE_OK_CNT (Bitfield-Mask: 0xff) */ +/* ================================================== RX_RESPONSE_OK_CNT2 ================================================== */ + #define R_ETHSW_RX_RESPONSE_OK_CNT2_RX_RESPONSE_OK_CNT_Pos (0UL) /*!< RX_RESPONSE_OK_CNT (Bit 0) */ + #define R_ETHSW_RX_RESPONSE_OK_CNT2_RX_RESPONSE_OK_CNT_Msk (0xffUL) /*!< RX_RESPONSE_OK_CNT (Bitfield-Mask: 0xff) */ +/* ================================================== RX_VERIFY_BAD_CNT0 =================================================== */ + #define R_ETHSW_RX_VERIFY_BAD_CNT0_RX_VERIFY_BAD_CNT_Pos (0UL) /*!< RX_VERIFY_BAD_CNT (Bit 0) */ + #define R_ETHSW_RX_VERIFY_BAD_CNT0_RX_VERIFY_BAD_CNT_Msk (0xffUL) /*!< RX_VERIFY_BAD_CNT (Bitfield-Mask: 0xff) */ +/* ================================================== RX_VERIFY_BAD_CNT1 =================================================== */ + #define R_ETHSW_RX_VERIFY_BAD_CNT1_RX_VERIFY_BAD_CNT_Pos (0UL) /*!< RX_VERIFY_BAD_CNT (Bit 0) */ + #define R_ETHSW_RX_VERIFY_BAD_CNT1_RX_VERIFY_BAD_CNT_Msk (0xffUL) /*!< RX_VERIFY_BAD_CNT (Bitfield-Mask: 0xff) */ +/* ================================================== RX_VERIFY_BAD_CNT2 =================================================== */ + #define R_ETHSW_RX_VERIFY_BAD_CNT2_RX_VERIFY_BAD_CNT_Pos (0UL) /*!< RX_VERIFY_BAD_CNT (Bit 0) */ + #define R_ETHSW_RX_VERIFY_BAD_CNT2_RX_VERIFY_BAD_CNT_Msk (0xffUL) /*!< RX_VERIFY_BAD_CNT (Bitfield-Mask: 0xff) */ +/* ================================================= RX_RESPONSE_BAD_CNT0 ================================================== */ + #define R_ETHSW_RX_RESPONSE_BAD_CNT0_RX_RESPONSE_BAD_CNT_Pos (0UL) /*!< RX_RESPONSE_BAD_CNT (Bit 0) */ + #define R_ETHSW_RX_RESPONSE_BAD_CNT0_RX_RESPONSE_BAD_CNT_Msk (0xffUL) /*!< RX_RESPONSE_BAD_CNT (Bitfield-Mask: 0xff) */ +/* ================================================= RX_RESPONSE_BAD_CNT1 ================================================== */ + #define R_ETHSW_RX_RESPONSE_BAD_CNT1_RX_RESPONSE_BAD_CNT_Pos (0UL) /*!< RX_RESPONSE_BAD_CNT (Bit 0) */ + #define R_ETHSW_RX_RESPONSE_BAD_CNT1_RX_RESPONSE_BAD_CNT_Msk (0xffUL) /*!< RX_RESPONSE_BAD_CNT (Bitfield-Mask: 0xff) */ +/* ================================================= RX_RESPONSE_BAD_CNT2 ================================================== */ + #define R_ETHSW_RX_RESPONSE_BAD_CNT2_RX_RESPONSE_BAD_CNT_Pos (0UL) /*!< RX_RESPONSE_BAD_CNT (Bit 0) */ + #define R_ETHSW_RX_RESPONSE_BAD_CNT2_RX_RESPONSE_BAD_CNT_Msk (0xffUL) /*!< RX_RESPONSE_BAD_CNT (Bitfield-Mask: 0xff) */ +/* ===================================================== MMCTL_OUT_CT ====================================================== */ + #define R_ETHSW_MMCTL_OUT_CT_CT_OVR_ENA_Pos (0UL) /*!< CT_OVR_ENA (Bit 0) */ + #define R_ETHSW_MMCTL_OUT_CT_CT_OVR_ENA_Msk (0x7UL) /*!< CT_OVR_ENA (Bitfield-Mask: 0x07) */ + #define R_ETHSW_MMCTL_OUT_CT_CT_OVR_Pos (16UL) /*!< CT_OVR (Bit 16) */ + #define R_ETHSW_MMCTL_OUT_CT_CT_OVR_Msk (0x70000UL) /*!< CT_OVR (Bitfield-Mask: 0x07) */ +/* ================================================== MMCTL_CTFL_P0_3_ENA ================================================== */ + #define R_ETHSW_MMCTL_CTFL_P0_3_ENA_CTFL_P0_ENA_Pos (0UL) /*!< CTFL_P0_ENA (Bit 0) */ + #define R_ETHSW_MMCTL_CTFL_P0_3_ENA_CTFL_P0_ENA_Msk (0xffUL) /*!< CTFL_P0_ENA (Bitfield-Mask: 0xff) */ + #define R_ETHSW_MMCTL_CTFL_P0_3_ENA_CTFL_P1_ENA_Pos (8UL) /*!< CTFL_P1_ENA (Bit 8) */ + #define R_ETHSW_MMCTL_CTFL_P0_3_ENA_CTFL_P1_ENA_Msk (0xff00UL) /*!< CTFL_P1_ENA (Bitfield-Mask: 0xff) */ + #define R_ETHSW_MMCTL_CTFL_P0_3_ENA_CTFL_P2_ENA_Pos (16UL) /*!< CTFL_P2_ENA (Bit 16) */ + #define R_ETHSW_MMCTL_CTFL_P0_3_ENA_CTFL_P2_ENA_Msk (0xff0000UL) /*!< CTFL_P2_ENA (Bitfield-Mask: 0xff) */ +/* ============================================== MMCTL_YELLOW_BYTE_LENGTH_P =============================================== */ + #define R_ETHSW_MMCTL_YELLOW_BYTE_LENGTH_P_YELLOW_LEN_Pos (2UL) /*!< YELLOW_LEN (Bit 2) */ + #define R_ETHSW_MMCTL_YELLOW_BYTE_LENGTH_P_YELLOW_LEN_Msk (0xfffcUL) /*!< YELLOW_LEN (Bitfield-Mask: 0x3fff) */ + #define R_ETHSW_MMCTL_YELLOW_BYTE_LENGTH_P_YLEN_EN_Pos (16UL) /*!< YLEN_EN (Bit 16) */ + #define R_ETHSW_MMCTL_YELLOW_BYTE_LENGTH_P_YLEN_EN_Msk (0x10000UL) /*!< YLEN_EN (Bitfield-Mask: 0x01) */ +/* ==================================================== MMCTL_POOL0_CTR ==================================================== */ + #define R_ETHSW_MMCTL_POOL0_CTR_CELLS_Pos (0UL) /*!< CELLS (Bit 0) */ + #define R_ETHSW_MMCTL_POOL0_CTR_CELLS_Msk (0x3ffUL) /*!< CELLS (Bitfield-Mask: 0x3ff) */ + #define R_ETHSW_MMCTL_POOL0_CTR_USED_Pos (16UL) /*!< USED (Bit 16) */ + #define R_ETHSW_MMCTL_POOL0_CTR_USED_Msk (0x3ff0000UL) /*!< USED (Bitfield-Mask: 0x3ff) */ +/* ==================================================== MMCTL_POOL1_CTR ==================================================== */ + #define R_ETHSW_MMCTL_POOL1_CTR_CELLS_Pos (0UL) /*!< CELLS (Bit 0) */ + #define R_ETHSW_MMCTL_POOL1_CTR_CELLS_Msk (0x3ffUL) /*!< CELLS (Bitfield-Mask: 0x3ff) */ + #define R_ETHSW_MMCTL_POOL1_CTR_USED_Pos (16UL) /*!< USED (Bit 16) */ + #define R_ETHSW_MMCTL_POOL1_CTR_USED_Msk (0x3ff0000UL) /*!< USED (Bitfield-Mask: 0x3ff) */ +/* =================================================== MMCTL_POOL_GLOBAL =================================================== */ + #define R_ETHSW_MMCTL_POOL_GLOBAL_CELLS_Pos (0UL) /*!< CELLS (Bit 0) */ + #define R_ETHSW_MMCTL_POOL_GLOBAL_CELLS_Msk (0x3ffUL) /*!< CELLS (Bitfield-Mask: 0x3ff) */ + #define R_ETHSW_MMCTL_POOL_GLOBAL_USED_Pos (16UL) /*!< USED (Bit 16) */ + #define R_ETHSW_MMCTL_POOL_GLOBAL_USED_Msk (0x3ff0000UL) /*!< USED (Bitfield-Mask: 0x3ff) */ +/* =================================================== MMCTL_POOL_STATUS =================================================== */ + #define R_ETHSW_MMCTL_POOL_STATUS_QUEUE_FULL_Pos (0UL) /*!< QUEUE_FULL (Bit 0) */ + #define R_ETHSW_MMCTL_POOL_STATUS_QUEUE_FULL_Msk (0xffUL) /*!< QUEUE_FULL (Bitfield-Mask: 0xff) */ +/* ==================================================== MMCTL_POOL_QMAP ==================================================== */ + #define R_ETHSW_MMCTL_POOL_QMAP_Q0_MAP_Pos (0UL) /*!< Q0_MAP (Bit 0) */ + #define R_ETHSW_MMCTL_POOL_QMAP_Q0_MAP_Msk (0x1UL) /*!< Q0_MAP (Bitfield-Mask: 0x01) */ + #define R_ETHSW_MMCTL_POOL_QMAP_Q0_ENA_Pos (3UL) /*!< Q0_ENA (Bit 3) */ + #define R_ETHSW_MMCTL_POOL_QMAP_Q0_ENA_Msk (0x8UL) /*!< Q0_ENA (Bitfield-Mask: 0x01) */ + #define R_ETHSW_MMCTL_POOL_QMAP_Q1_MAP_Pos (4UL) /*!< Q1_MAP (Bit 4) */ + #define R_ETHSW_MMCTL_POOL_QMAP_Q1_MAP_Msk (0x10UL) /*!< Q1_MAP (Bitfield-Mask: 0x01) */ + #define R_ETHSW_MMCTL_POOL_QMAP_Q1_ENA_Pos (7UL) /*!< Q1_ENA (Bit 7) */ + #define R_ETHSW_MMCTL_POOL_QMAP_Q1_ENA_Msk (0x80UL) /*!< Q1_ENA (Bitfield-Mask: 0x01) */ + #define R_ETHSW_MMCTL_POOL_QMAP_Q2_MAP_Pos (8UL) /*!< Q2_MAP (Bit 8) */ + #define R_ETHSW_MMCTL_POOL_QMAP_Q2_MAP_Msk (0x100UL) /*!< Q2_MAP (Bitfield-Mask: 0x01) */ + #define R_ETHSW_MMCTL_POOL_QMAP_Q2_ENA_Pos (11UL) /*!< Q2_ENA (Bit 11) */ + #define R_ETHSW_MMCTL_POOL_QMAP_Q2_ENA_Msk (0x800UL) /*!< Q2_ENA (Bitfield-Mask: 0x01) */ + #define R_ETHSW_MMCTL_POOL_QMAP_Q3_MAP_Pos (12UL) /*!< Q3_MAP (Bit 12) */ + #define R_ETHSW_MMCTL_POOL_QMAP_Q3_MAP_Msk (0x1000UL) /*!< Q3_MAP (Bitfield-Mask: 0x01) */ + #define R_ETHSW_MMCTL_POOL_QMAP_Q3_ENA_Pos (15UL) /*!< Q3_ENA (Bit 15) */ + #define R_ETHSW_MMCTL_POOL_QMAP_Q3_ENA_Msk (0x8000UL) /*!< Q3_ENA (Bitfield-Mask: 0x01) */ + #define R_ETHSW_MMCTL_POOL_QMAP_Q4_MAP_Pos (16UL) /*!< Q4_MAP (Bit 16) */ + #define R_ETHSW_MMCTL_POOL_QMAP_Q4_MAP_Msk (0x10000UL) /*!< Q4_MAP (Bitfield-Mask: 0x01) */ + #define R_ETHSW_MMCTL_POOL_QMAP_Q4_ENA_Pos (19UL) /*!< Q4_ENA (Bit 19) */ + #define R_ETHSW_MMCTL_POOL_QMAP_Q4_ENA_Msk (0x80000UL) /*!< Q4_ENA (Bitfield-Mask: 0x01) */ + #define R_ETHSW_MMCTL_POOL_QMAP_Q5_MAP_Pos (20UL) /*!< Q5_MAP (Bit 20) */ + #define R_ETHSW_MMCTL_POOL_QMAP_Q5_MAP_Msk (0x100000UL) /*!< Q5_MAP (Bitfield-Mask: 0x01) */ + #define R_ETHSW_MMCTL_POOL_QMAP_Q5_ENA_Pos (23UL) /*!< Q5_ENA (Bit 23) */ + #define R_ETHSW_MMCTL_POOL_QMAP_Q5_ENA_Msk (0x800000UL) /*!< Q5_ENA (Bitfield-Mask: 0x01) */ + #define R_ETHSW_MMCTL_POOL_QMAP_Q6_MAP_Pos (24UL) /*!< Q6_MAP (Bit 24) */ + #define R_ETHSW_MMCTL_POOL_QMAP_Q6_MAP_Msk (0x1000000UL) /*!< Q6_MAP (Bitfield-Mask: 0x01) */ + #define R_ETHSW_MMCTL_POOL_QMAP_Q6_ENA_Pos (27UL) /*!< Q6_ENA (Bit 27) */ + #define R_ETHSW_MMCTL_POOL_QMAP_Q6_ENA_Msk (0x8000000UL) /*!< Q6_ENA (Bitfield-Mask: 0x01) */ + #define R_ETHSW_MMCTL_POOL_QMAP_Q7_MAP_Pos (28UL) /*!< Q7_MAP (Bit 28) */ + #define R_ETHSW_MMCTL_POOL_QMAP_Q7_MAP_Msk (0x10000000UL) /*!< Q7_MAP (Bitfield-Mask: 0x01) */ + #define R_ETHSW_MMCTL_POOL_QMAP_Q7_ENA_Pos (31UL) /*!< Q7_ENA (Bit 31) */ + #define R_ETHSW_MMCTL_POOL_QMAP_Q7_ENA_Msk (0x80000000UL) /*!< Q7_ENA (Bitfield-Mask: 0x01) */ +/* ====================================================== MMCTL_QGATE ====================================================== */ + #define R_ETHSW_MMCTL_QGATE_PORT_MASK_Pos (0UL) /*!< PORT_MASK (Bit 0) */ + #define R_ETHSW_MMCTL_QGATE_PORT_MASK_Msk (0xfUL) /*!< PORT_MASK (Bitfield-Mask: 0x0f) */ + #define R_ETHSW_MMCTL_QGATE_QUEUE_GATE_Pos (16UL) /*!< QUEUE_GATE (Bit 16) */ + #define R_ETHSW_MMCTL_QGATE_QUEUE_GATE_Msk (0xffff0000UL) /*!< QUEUE_GATE (Bitfield-Mask: 0xffff) */ +/* ====================================================== MMCTL_QTRIG ====================================================== */ + #define R_ETHSW_MMCTL_QTRIG_PORT_MASK_Pos (0UL) /*!< PORT_MASK (Bit 0) */ + #define R_ETHSW_MMCTL_QTRIG_PORT_MASK_Msk (0xfUL) /*!< PORT_MASK (Bitfield-Mask: 0x0f) */ + #define R_ETHSW_MMCTL_QTRIG_QUEUE_TRIG_Pos (16UL) /*!< QUEUE_TRIG (Bit 16) */ + #define R_ETHSW_MMCTL_QTRIG_QUEUE_TRIG_Msk (0xff0000UL) /*!< QUEUE_TRIG (Bitfield-Mask: 0xff) */ +/* ===================================================== MMCTL_QFLUSH ====================================================== */ + #define R_ETHSW_MMCTL_QFLUSH_PORT_MASK_Pos (0UL) /*!< PORT_MASK (Bit 0) */ + #define R_ETHSW_MMCTL_QFLUSH_PORT_MASK_Msk (0xfUL) /*!< PORT_MASK (Bitfield-Mask: 0x0f) */ + #define R_ETHSW_MMCTL_QFLUSH_QUEUE_MASK_Pos (16UL) /*!< QUEUE_MASK (Bit 16) */ + #define R_ETHSW_MMCTL_QFLUSH_QUEUE_MASK_Msk (0xff0000UL) /*!< QUEUE_MASK (Bitfield-Mask: 0xff) */ + #define R_ETHSW_MMCTL_QFLUSH_ACTION_Pos (24UL) /*!< ACTION (Bit 24) */ + #define R_ETHSW_MMCTL_QFLUSH_ACTION_Msk (0x3000000UL) /*!< ACTION (Bitfield-Mask: 0x03) */ +/* =============================================== MMCTL_QCLOSED_STATUS_P0_3 =============================================== */ + #define R_ETHSW_MMCTL_QCLOSED_STATUS_P0_3_P0_STATUS_Pos (0UL) /*!< P0_STATUS (Bit 0) */ + #define R_ETHSW_MMCTL_QCLOSED_STATUS_P0_3_P0_STATUS_Msk (0xffUL) /*!< P0_STATUS (Bitfield-Mask: 0xff) */ + #define R_ETHSW_MMCTL_QCLOSED_STATUS_P0_3_P1_STATUS_Pos (8UL) /*!< P1_STATUS (Bit 8) */ + #define R_ETHSW_MMCTL_QCLOSED_STATUS_P0_3_P1_STATUS_Msk (0xff00UL) /*!< P1_STATUS (Bitfield-Mask: 0xff) */ + #define R_ETHSW_MMCTL_QCLOSED_STATUS_P0_3_P2_STATUS_Pos (16UL) /*!< P2_STATUS (Bit 16) */ + #define R_ETHSW_MMCTL_QCLOSED_STATUS_P0_3_P2_STATUS_Msk (0xff0000UL) /*!< P2_STATUS (Bitfield-Mask: 0xff) */ +/* ================================================== MMCTL_1FRAME_MODE_P ================================================== */ + #define R_ETHSW_MMCTL_1FRAME_MODE_P_Q_1FRAME_ENA_Pos (0UL) /*!< Q_1FRAME_ENA (Bit 0) */ + #define R_ETHSW_MMCTL_1FRAME_MODE_P_Q_1FRAME_ENA_Msk (0xffUL) /*!< Q_1FRAME_ENA (Bitfield-Mask: 0xff) */ + #define R_ETHSW_MMCTL_1FRAME_MODE_P_Q_BUF_ENA_Pos (16UL) /*!< Q_BUF_ENA (Bit 16) */ + #define R_ETHSW_MMCTL_1FRAME_MODE_P_Q_BUF_ENA_Msk (0xff0000UL) /*!< Q_BUF_ENA (Bitfield-Mask: 0xff) */ +/* ================================================ MMCTL_P0_3_QUEUE_STATUS ================================================ */ + #define R_ETHSW_MMCTL_P0_3_QUEUE_STATUS_P0_Q_STATUS_Pos (0UL) /*!< P0_Q_STATUS (Bit 0) */ + #define R_ETHSW_MMCTL_P0_3_QUEUE_STATUS_P0_Q_STATUS_Msk (0xffUL) /*!< P0_Q_STATUS (Bitfield-Mask: 0xff) */ + #define R_ETHSW_MMCTL_P0_3_QUEUE_STATUS_P1_Q_STATUS_Pos (8UL) /*!< P1_Q_STATUS (Bit 8) */ + #define R_ETHSW_MMCTL_P0_3_QUEUE_STATUS_P1_Q_STATUS_Msk (0xff00UL) /*!< P1_Q_STATUS (Bitfield-Mask: 0xff) */ + #define R_ETHSW_MMCTL_P0_3_QUEUE_STATUS_P2_Q_STATUS_Pos (16UL) /*!< P2_Q_STATUS (Bit 16) */ + #define R_ETHSW_MMCTL_P0_3_QUEUE_STATUS_P2_Q_STATUS_Msk (0xff0000UL) /*!< P2_Q_STATUS (Bitfield-Mask: 0xff) */ +/* ================================================ MMCTL_P0_3_FLUSH_STATUS ================================================ */ + #define R_ETHSW_MMCTL_P0_3_FLUSH_STATUS_P0_F_STATUS_Pos (0UL) /*!< P0_F_STATUS (Bit 0) */ + #define R_ETHSW_MMCTL_P0_3_FLUSH_STATUS_P0_F_STATUS_Msk (0xffUL) /*!< P0_F_STATUS (Bitfield-Mask: 0xff) */ + #define R_ETHSW_MMCTL_P0_3_FLUSH_STATUS_P1_F_STATUS_Pos (8UL) /*!< P1_F_STATUS (Bit 8) */ + #define R_ETHSW_MMCTL_P0_3_FLUSH_STATUS_P1_F_STATUS_Msk (0xff00UL) /*!< P1_F_STATUS (Bitfield-Mask: 0xff) */ + #define R_ETHSW_MMCTL_P0_3_FLUSH_STATUS_P2_F_STATUS_Pos (16UL) /*!< P2_F_STATUS (Bit 16) */ + #define R_ETHSW_MMCTL_P0_3_FLUSH_STATUS_P2_F_STATUS_Msk (0xff0000UL) /*!< P2_F_STATUS (Bitfield-Mask: 0xff) */ +/* ================================================ MMCTL_DLY_QTRIGGER_CTRL ================================================ */ + #define R_ETHSW_MMCTL_DLY_QTRIGGER_CTRL_DELAY_TIME_Pos (0UL) /*!< DELAY_TIME (Bit 0) */ + #define R_ETHSW_MMCTL_DLY_QTRIGGER_CTRL_DELAY_TIME_Msk (0x3fffffffUL) /*!< DELAY_TIME (Bitfield-Mask: 0x3fffffff) */ + #define R_ETHSW_MMCTL_DLY_QTRIGGER_CTRL_TIMER_SEL_Pos (30UL) /*!< TIMER_SEL (Bit 30) */ + #define R_ETHSW_MMCTL_DLY_QTRIGGER_CTRL_TIMER_SEL_Msk (0x40000000UL) /*!< TIMER_SEL (Bitfield-Mask: 0x01) */ +/* ================================================= MMCTL_PREEMPT_QUEUES ================================================== */ + #define R_ETHSW_MMCTL_PREEMPT_QUEUES_PREEMPT_ENA_Pos (0UL) /*!< PREEMPT_ENA (Bit 0) */ + #define R_ETHSW_MMCTL_PREEMPT_QUEUES_PREEMPT_ENA_Msk (0xffUL) /*!< PREEMPT_ENA (Bitfield-Mask: 0xff) */ + #define R_ETHSW_MMCTL_PREEMPT_QUEUES_PREEMPT_ON_QCLOSE_Pos (8UL) /*!< PREEMPT_ON_QCLOSE (Bit 8) */ + #define R_ETHSW_MMCTL_PREEMPT_QUEUES_PREEMPT_ON_QCLOSE_Msk (0xff00UL) /*!< PREEMPT_ON_QCLOSE (Bitfield-Mask: 0xff) */ +/* ================================================== MMCTL_HOLD_CONTROL =================================================== */ + #define R_ETHSW_MMCTL_HOLD_CONTROL_Q_HOLD_REQ_FORCE_Pos (0UL) /*!< Q_HOLD_REQ_FORCE (Bit 0) */ + #define R_ETHSW_MMCTL_HOLD_CONTROL_Q_HOLD_REQ_FORCE_Msk (0x7UL) /*!< Q_HOLD_REQ_FORCE (Bitfield-Mask: 0x07) */ + #define R_ETHSW_MMCTL_HOLD_CONTROL_Q_HOLD_REQ_RELEASE_Pos (16UL) /*!< Q_HOLD_REQ_RELEASE (Bit 16) */ + #define R_ETHSW_MMCTL_HOLD_CONTROL_Q_HOLD_REQ_RELEASE_Msk (0x70000UL) /*!< Q_HOLD_REQ_RELEASE (Bitfield-Mask: 0x07) */ +/* ================================================= MMCTL_PREEMPT_STATUS ================================================== */ + #define R_ETHSW_MMCTL_PREEMPT_STATUS_PREEMPT_STATE_Pos (0UL) /*!< PREEMPT_STATE (Bit 0) */ + #define R_ETHSW_MMCTL_PREEMPT_STATUS_PREEMPT_STATE_Msk (0x7UL) /*!< PREEMPT_STATE (Bitfield-Mask: 0x07) */ + #define R_ETHSW_MMCTL_PREEMPT_STATUS_HOLD_REQ_STATE_Pos (16UL) /*!< HOLD_REQ_STATE (Bit 16) */ + #define R_ETHSW_MMCTL_PREEMPT_STATUS_HOLD_REQ_STATE_Msk (0x70000UL) /*!< HOLD_REQ_STATE (Bitfield-Mask: 0x07) */ +/* =================================================== MMCTL_CQF_CTRL_P ==================================================== */ + #define R_ETHSW_MMCTL_CQF_CTRL_P_PRIO_ENABLE0_Pos (0UL) /*!< PRIO_ENABLE0 (Bit 0) */ + #define R_ETHSW_MMCTL_CQF_CTRL_P_PRIO_ENABLE0_Msk (0xffUL) /*!< PRIO_ENABLE0 (Bitfield-Mask: 0xff) */ + #define R_ETHSW_MMCTL_CQF_CTRL_P_QUEUE_SEL0_Pos (8UL) /*!< QUEUE_SEL0 (Bit 8) */ + #define R_ETHSW_MMCTL_CQF_CTRL_P_QUEUE_SEL0_Msk (0x700UL) /*!< QUEUE_SEL0 (Bitfield-Mask: 0x07) */ + #define R_ETHSW_MMCTL_CQF_CTRL_P_GATE_SEL0_Pos (11UL) /*!< GATE_SEL0 (Bit 11) */ + #define R_ETHSW_MMCTL_CQF_CTRL_P_GATE_SEL0_Msk (0x3800UL) /*!< GATE_SEL0 (Bitfield-Mask: 0x07) */ + #define R_ETHSW_MMCTL_CQF_CTRL_P_USE_SOP0_Pos (14UL) /*!< USE_SOP0 (Bit 14) */ + #define R_ETHSW_MMCTL_CQF_CTRL_P_USE_SOP0_Msk (0x4000UL) /*!< USE_SOP0 (Bitfield-Mask: 0x01) */ + #define R_ETHSW_MMCTL_CQF_CTRL_P_REF_SEL0_Pos (15UL) /*!< REF_SEL0 (Bit 15) */ + #define R_ETHSW_MMCTL_CQF_CTRL_P_REF_SEL0_Msk (0x8000UL) /*!< REF_SEL0 (Bitfield-Mask: 0x01) */ +/* ============================================== MMCTL_P0_3_QCLOSED_NONEMPTY ============================================== */ + #define R_ETHSW_MMCTL_P0_3_QCLOSED_NONEMPTY_P0_Q_STATUS_Pos (0UL) /*!< P0_Q_STATUS (Bit 0) */ + #define R_ETHSW_MMCTL_P0_3_QCLOSED_NONEMPTY_P0_Q_STATUS_Msk (0xffUL) /*!< P0_Q_STATUS (Bitfield-Mask: 0xff) */ + #define R_ETHSW_MMCTL_P0_3_QCLOSED_NONEMPTY_P1_Q_STATUS_Pos (8UL) /*!< P1_Q_STATUS (Bit 8) */ + #define R_ETHSW_MMCTL_P0_3_QCLOSED_NONEMPTY_P1_Q_STATUS_Msk (0xff00UL) /*!< P1_Q_STATUS (Bitfield-Mask: 0xff) */ + #define R_ETHSW_MMCTL_P0_3_QCLOSED_NONEMPTY_P2_Q_STATUS_Pos (16UL) /*!< P2_Q_STATUS (Bit 16) */ + #define R_ETHSW_MMCTL_P0_3_QCLOSED_NONEMPTY_P2_Q_STATUS_Msk (0xff0000UL) /*!< P2_Q_STATUS (Bitfield-Mask: 0xff) */ + #define R_ETHSW_MMCTL_P0_3_QCLOSED_NONEMPTY_P3_Q_STATUS_Pos (24UL) /*!< P3_Q_STATUS (Bit 24) */ + #define R_ETHSW_MMCTL_P0_3_QCLOSED_NONEMPTY_P3_Q_STATUS_Msk (0xff000000UL) /*!< P3_Q_STATUS (Bitfield-Mask: 0xff) */ +/* ================================================== MMCTL_PREEMPT_EXTRA ================================================== */ + #define R_ETHSW_MMCTL_PREEMPT_EXTRA_MIN_PFRM_ADJ_Pos (0UL) /*!< MIN_PFRM_ADJ (Bit 0) */ + #define R_ETHSW_MMCTL_PREEMPT_EXTRA_MIN_PFRM_ADJ_Msk (0xfUL) /*!< MIN_PFRM_ADJ (Bitfield-Mask: 0x0f) */ + #define R_ETHSW_MMCTL_PREEMPT_EXTRA_LAST_PFRM_ADJ_Pos (4UL) /*!< LAST_PFRM_ADJ (Bit 4) */ + #define R_ETHSW_MMCTL_PREEMPT_EXTRA_LAST_PFRM_ADJ_Msk (0xf0UL) /*!< LAST_PFRM_ADJ (Bitfield-Mask: 0x0f) */ +/* ====================================================== DLR_CONTROL ====================================================== */ + #define R_ETHSW_DLR_CONTROL_ENABLE_Pos (0UL) /*!< ENABLE (Bit 0) */ + #define R_ETHSW_DLR_CONTROL_ENABLE_Msk (0x1UL) /*!< ENABLE (Bitfield-Mask: 0x01) */ + #define R_ETHSW_DLR_CONTROL_AUTOFLUSH_Pos (1UL) /*!< AUTOFLUSH (Bit 1) */ + #define R_ETHSW_DLR_CONTROL_AUTOFLUSH_Msk (0x2UL) /*!< AUTOFLUSH (Bitfield-Mask: 0x01) */ + #define R_ETHSW_DLR_CONTROL_LOOP_FILTER_ENA_Pos (2UL) /*!< LOOP_FILTER_ENA (Bit 2) */ + #define R_ETHSW_DLR_CONTROL_LOOP_FILTER_ENA_Msk (0x4UL) /*!< LOOP_FILTER_ENA (Bitfield-Mask: 0x01) */ + #define R_ETHSW_DLR_CONTROL_IGNORE_INVTM_Pos (4UL) /*!< IGNORE_INVTM (Bit 4) */ + #define R_ETHSW_DLR_CONTROL_IGNORE_INVTM_Msk (0x10UL) /*!< IGNORE_INVTM (Bitfield-Mask: 0x01) */ + #define R_ETHSW_DLR_CONTROL_US_TIME_Pos (8UL) /*!< US_TIME (Bit 8) */ + #define R_ETHSW_DLR_CONTROL_US_TIME_Msk (0xfff00UL) /*!< US_TIME (Bitfield-Mask: 0xfff) */ +/* ====================================================== DLR_STATUS ======================================================= */ + #define R_ETHSW_DLR_STATUS_LastBcnRcvPort_Pos (0UL) /*!< LastBcnRcvPort (Bit 0) */ + #define R_ETHSW_DLR_STATUS_LastBcnRcvPort_Msk (0x3UL) /*!< LastBcnRcvPort (Bitfield-Mask: 0x03) */ + #define R_ETHSW_DLR_STATUS_NODE_STATE_Pos (8UL) /*!< NODE_STATE (Bit 8) */ + #define R_ETHSW_DLR_STATUS_NODE_STATE_Msk (0xff00UL) /*!< NODE_STATE (Bitfield-Mask: 0xff) */ + #define R_ETHSW_DLR_STATUS_LINK_STATUS_Pos (16UL) /*!< LINK_STATUS (Bit 16) */ + #define R_ETHSW_DLR_STATUS_LINK_STATUS_Msk (0x30000UL) /*!< LINK_STATUS (Bitfield-Mask: 0x03) */ + #define R_ETHSW_DLR_STATUS_TOPOLOGY_Pos (24UL) /*!< TOPOLOGY (Bit 24) */ + #define R_ETHSW_DLR_STATUS_TOPOLOGY_Msk (0xff000000UL) /*!< TOPOLOGY (Bitfield-Mask: 0xff) */ +/* ====================================================== DLR_ETH_TYP ====================================================== */ + #define R_ETHSW_DLR_ETH_TYP_DLR_ETH_TYP_Pos (0UL) /*!< DLR_ETH_TYP (Bit 0) */ + #define R_ETHSW_DLR_ETH_TYP_DLR_ETH_TYP_Msk (0xffffUL) /*!< DLR_ETH_TYP (Bitfield-Mask: 0xffff) */ +/* ==================================================== DLR_IRQ_CONTROL ==================================================== */ + #define R_ETHSW_DLR_IRQ_CONTROL_IRQ_state_chng_ena_Pos (0UL) /*!< IRQ_state_chng_ena (Bit 0) */ + #define R_ETHSW_DLR_IRQ_CONTROL_IRQ_state_chng_ena_Msk (0x1UL) /*!< IRQ_state_chng_ena (Bitfield-Mask: 0x01) */ + #define R_ETHSW_DLR_IRQ_CONTROL_IRQ_flush_macaddr_ena_Pos (1UL) /*!< IRQ_flush_macaddr_ena (Bit 1) */ + #define R_ETHSW_DLR_IRQ_CONTROL_IRQ_flush_macaddr_ena_Msk (0x2UL) /*!< IRQ_flush_macaddr_ena (Bitfield-Mask: 0x01) */ + #define R_ETHSW_DLR_IRQ_CONTROL_IRQ_stop_nbchk0_ena_Pos (2UL) /*!< IRQ_stop_nbchk0_ena (Bit 2) */ + #define R_ETHSW_DLR_IRQ_CONTROL_IRQ_stop_nbchk0_ena_Msk (0x4UL) /*!< IRQ_stop_nbchk0_ena (Bitfield-Mask: 0x01) */ + #define R_ETHSW_DLR_IRQ_CONTROL_IRQ_stop_nbchk1_ena_Pos (3UL) /*!< IRQ_stop_nbchk1_ena (Bit 3) */ + #define R_ETHSW_DLR_IRQ_CONTROL_IRQ_stop_nbchk1_ena_Msk (0x8UL) /*!< IRQ_stop_nbchk1_ena (Bitfield-Mask: 0x01) */ + #define R_ETHSW_DLR_IRQ_CONTROL_IRQ_bec_tmr0_exp_ena_Pos (4UL) /*!< IRQ_bec_tmr0_exp_ena (Bit 4) */ + #define R_ETHSW_DLR_IRQ_CONTROL_IRQ_bec_tmr0_exp_ena_Msk (0x10UL) /*!< IRQ_bec_tmr0_exp_ena (Bitfield-Mask: 0x01) */ + #define R_ETHSW_DLR_IRQ_CONTROL_IRQ_bec_tmr1_exp_ena_Pos (5UL) /*!< IRQ_bec_tmr1_exp_ena (Bit 5) */ + #define R_ETHSW_DLR_IRQ_CONTROL_IRQ_bec_tmr1_exp_ena_Msk (0x20UL) /*!< IRQ_bec_tmr1_exp_ena (Bitfield-Mask: 0x01) */ + #define R_ETHSW_DLR_IRQ_CONTROL_IRQ_supr_chng_ena_Pos (6UL) /*!< IRQ_supr_chng_ena (Bit 6) */ + #define R_ETHSW_DLR_IRQ_CONTROL_IRQ_supr_chng_ena_Msk (0x40UL) /*!< IRQ_supr_chng_ena (Bitfield-Mask: 0x01) */ + #define R_ETHSW_DLR_IRQ_CONTROL_IRQ_link_chng0_ena_Pos (7UL) /*!< IRQ_link_chng0_ena (Bit 7) */ + #define R_ETHSW_DLR_IRQ_CONTROL_IRQ_link_chng0_ena_Msk (0x80UL) /*!< IRQ_link_chng0_ena (Bitfield-Mask: 0x01) */ + #define R_ETHSW_DLR_IRQ_CONTROL_IRQ_link_chng1_ena_Pos (8UL) /*!< IRQ_link_chng1_ena (Bit 8) */ + #define R_ETHSW_DLR_IRQ_CONTROL_IRQ_link_chng1_ena_Msk (0x100UL) /*!< IRQ_link_chng1_ena (Bitfield-Mask: 0x01) */ + #define R_ETHSW_DLR_IRQ_CONTROL_IRQ_sup_ignord_ena_Pos (9UL) /*!< IRQ_sup_ignord_ena (Bit 9) */ + #define R_ETHSW_DLR_IRQ_CONTROL_IRQ_sup_ignord_ena_Msk (0x200UL) /*!< IRQ_sup_ignord_ena (Bitfield-Mask: 0x01) */ + #define R_ETHSW_DLR_IRQ_CONTROL_IRQ_ip_addr_chng_ena_Pos (10UL) /*!< IRQ_ip_addr_chng_ena (Bit 10) */ + #define R_ETHSW_DLR_IRQ_CONTROL_IRQ_ip_addr_chng_ena_Msk (0x400UL) /*!< IRQ_ip_addr_chng_ena (Bitfield-Mask: 0x01) */ + #define R_ETHSW_DLR_IRQ_CONTROL_IRQ_invalid_tmr_ena_Pos (11UL) /*!< IRQ_invalid_tmr_ena (Bit 11) */ + #define R_ETHSW_DLR_IRQ_CONTROL_IRQ_invalid_tmr_ena_Msk (0x800UL) /*!< IRQ_invalid_tmr_ena (Bitfield-Mask: 0x01) */ + #define R_ETHSW_DLR_IRQ_CONTROL_IRQ_bec_rcv0_ena_Pos (12UL) /*!< IRQ_bec_rcv0_ena (Bit 12) */ + #define R_ETHSW_DLR_IRQ_CONTROL_IRQ_bec_rcv0_ena_Msk (0x1000UL) /*!< IRQ_bec_rcv0_ena (Bitfield-Mask: 0x01) */ + #define R_ETHSW_DLR_IRQ_CONTROL_IRQ_bec_rcv1_ena_Pos (13UL) /*!< IRQ_bec_rcv1_ena (Bit 13) */ + #define R_ETHSW_DLR_IRQ_CONTROL_IRQ_bec_rcv1_ena_Msk (0x2000UL) /*!< IRQ_bec_rcv1_ena (Bitfield-Mask: 0x01) */ + #define R_ETHSW_DLR_IRQ_CONTROL_IRQ_frm_dscrd0_Pos (14UL) /*!< IRQ_frm_dscrd0 (Bit 14) */ + #define R_ETHSW_DLR_IRQ_CONTROL_IRQ_frm_dscrd0_Msk (0x4000UL) /*!< IRQ_frm_dscrd0 (Bitfield-Mask: 0x01) */ + #define R_ETHSW_DLR_IRQ_CONTROL_IRQ_frm_dscrd1_Pos (15UL) /*!< IRQ_frm_dscrd1 (Bit 15) */ + #define R_ETHSW_DLR_IRQ_CONTROL_IRQ_frm_dscrd1_Msk (0x8000UL) /*!< IRQ_frm_dscrd1 (Bitfield-Mask: 0x01) */ + #define R_ETHSW_DLR_IRQ_CONTROL_low_int_en_Pos (29UL) /*!< low_int_en (Bit 29) */ + #define R_ETHSW_DLR_IRQ_CONTROL_low_int_en_Msk (0x20000000UL) /*!< low_int_en (Bitfield-Mask: 0x01) */ + #define R_ETHSW_DLR_IRQ_CONTROL_atomic_OR_Pos (30UL) /*!< atomic_OR (Bit 30) */ + #define R_ETHSW_DLR_IRQ_CONTROL_atomic_OR_Msk (0x40000000UL) /*!< atomic_OR (Bitfield-Mask: 0x01) */ + #define R_ETHSW_DLR_IRQ_CONTROL_atomic_AND_Pos (31UL) /*!< atomic_AND (Bit 31) */ + #define R_ETHSW_DLR_IRQ_CONTROL_atomic_AND_Msk (0x80000000UL) /*!< atomic_AND (Bitfield-Mask: 0x01) */ +/* =================================================== DLR_IRQ_STAT_ACK ==================================================== */ + #define R_ETHSW_DLR_IRQ_STAT_ACK_state_chng_IRQ_pending_Pos (0UL) /*!< state_chng_IRQ_pending (Bit 0) */ + #define R_ETHSW_DLR_IRQ_STAT_ACK_state_chng_IRQ_pending_Msk (0x1UL) /*!< state_chng_IRQ_pending (Bitfield-Mask: 0x01) */ + #define R_ETHSW_DLR_IRQ_STAT_ACK_flush_IRQ_pending_Pos (1UL) /*!< flush_IRQ_pending (Bit 1) */ + #define R_ETHSW_DLR_IRQ_STAT_ACK_flush_IRQ_pending_Msk (0x2UL) /*!< flush_IRQ_pending (Bitfield-Mask: 0x01) */ + #define R_ETHSW_DLR_IRQ_STAT_ACK_nbchk0_IRQ_pending_Pos (2UL) /*!< nbchk0_IRQ_pending (Bit 2) */ + #define R_ETHSW_DLR_IRQ_STAT_ACK_nbchk0_IRQ_pending_Msk (0x4UL) /*!< nbchk0_IRQ_pending (Bitfield-Mask: 0x01) */ + #define R_ETHSW_DLR_IRQ_STAT_ACK_nbchk1_IRQ_pending_Pos (3UL) /*!< nbchk1_IRQ_pending (Bit 3) */ + #define R_ETHSW_DLR_IRQ_STAT_ACK_nbchk1_IRQ_pending_Msk (0x8UL) /*!< nbchk1_IRQ_pending (Bitfield-Mask: 0x01) */ + #define R_ETHSW_DLR_IRQ_STAT_ACK_bec_tmr0_IRQ_pending_Pos (4UL) /*!< bec_tmr0_IRQ_pending (Bit 4) */ + #define R_ETHSW_DLR_IRQ_STAT_ACK_bec_tmr0_IRQ_pending_Msk (0x10UL) /*!< bec_tmr0_IRQ_pending (Bitfield-Mask: 0x01) */ + #define R_ETHSW_DLR_IRQ_STAT_ACK_bec_tmr1_IRQ_pending_Pos (5UL) /*!< bec_tmr1_IRQ_pending (Bit 5) */ + #define R_ETHSW_DLR_IRQ_STAT_ACK_bec_tmr1_IRQ_pending_Msk (0x20UL) /*!< bec_tmr1_IRQ_pending (Bitfield-Mask: 0x01) */ + #define R_ETHSW_DLR_IRQ_STAT_ACK_supr_chng_IRQ_pending_Pos (6UL) /*!< supr_chng_IRQ_pending (Bit 6) */ + #define R_ETHSW_DLR_IRQ_STAT_ACK_supr_chng_IRQ_pending_Msk (0x40UL) /*!< supr_chng_IRQ_pending (Bitfield-Mask: 0x01) */ + #define R_ETHSW_DLR_IRQ_STAT_ACK_Link0_IRQ_pending_Pos (7UL) /*!< Link0_IRQ_pending (Bit 7) */ + #define R_ETHSW_DLR_IRQ_STAT_ACK_Link0_IRQ_pending_Msk (0x80UL) /*!< Link0_IRQ_pending (Bitfield-Mask: 0x01) */ + #define R_ETHSW_DLR_IRQ_STAT_ACK_Link1_IRQ_pending_Pos (8UL) /*!< Link1_IRQ_pending (Bit 8) */ + #define R_ETHSW_DLR_IRQ_STAT_ACK_Link1_IRQ_pending_Msk (0x100UL) /*!< Link1_IRQ_pending (Bitfield-Mask: 0x01) */ + #define R_ETHSW_DLR_IRQ_STAT_ACK_sup_ignord_IRQ_pending_Pos (9UL) /*!< sup_ignord_IRQ_pending (Bit 9) */ + #define R_ETHSW_DLR_IRQ_STAT_ACK_sup_ignord_IRQ_pending_Msk (0x200UL) /*!< sup_ignord_IRQ_pending (Bitfield-Mask: 0x01) */ + #define R_ETHSW_DLR_IRQ_STAT_ACK_ip_chng_IRQ_pending_Pos (10UL) /*!< ip_chng_IRQ_pending (Bit 10) */ + #define R_ETHSW_DLR_IRQ_STAT_ACK_ip_chng_IRQ_pending_Msk (0x400UL) /*!< ip_chng_IRQ_pending (Bitfield-Mask: 0x01) */ + #define R_ETHSW_DLR_IRQ_STAT_ACK_invalid_tmr_IRQ_pending_Pos (11UL) /*!< invalid_tmr_IRQ_pending (Bit 11) */ + #define R_ETHSW_DLR_IRQ_STAT_ACK_invalid_tmr_IRQ_pending_Msk (0x800UL) /*!< invalid_tmr_IRQ_pending (Bitfield-Mask: 0x01) */ + #define R_ETHSW_DLR_IRQ_STAT_ACK_bec_rcv0_IRQ_pending_Pos (12UL) /*!< bec_rcv0_IRQ_pending (Bit 12) */ + #define R_ETHSW_DLR_IRQ_STAT_ACK_bec_rcv0_IRQ_pending_Msk (0x1000UL) /*!< bec_rcv0_IRQ_pending (Bitfield-Mask: 0x01) */ + #define R_ETHSW_DLR_IRQ_STAT_ACK_bec_rcv1_IRQ_pending_Pos (13UL) /*!< bec_rcv1_IRQ_pending (Bit 13) */ + #define R_ETHSW_DLR_IRQ_STAT_ACK_bec_rcv1_IRQ_pending_Msk (0x2000UL) /*!< bec_rcv1_IRQ_pending (Bitfield-Mask: 0x01) */ + #define R_ETHSW_DLR_IRQ_STAT_ACK_frm_dscrd0_IRQ_pending_Pos (14UL) /*!< frm_dscrd0_IRQ_pending (Bit 14) */ + #define R_ETHSW_DLR_IRQ_STAT_ACK_frm_dscrd0_IRQ_pending_Msk (0x4000UL) /*!< frm_dscrd0_IRQ_pending (Bitfield-Mask: 0x01) */ + #define R_ETHSW_DLR_IRQ_STAT_ACK_frm_dscrd1_IRQ_pending_Pos (15UL) /*!< frm_dscrd1_IRQ_pending (Bit 15) */ + #define R_ETHSW_DLR_IRQ_STAT_ACK_frm_dscrd1_IRQ_pending_Msk (0x8000UL) /*!< frm_dscrd1_IRQ_pending (Bitfield-Mask: 0x01) */ +/* ===================================================== DLR_LOC_MAClo ===================================================== */ + #define R_ETHSW_DLR_LOC_MAClo_LOC_MAC_Pos (0UL) /*!< LOC_MAC (Bit 0) */ + #define R_ETHSW_DLR_LOC_MAClo_LOC_MAC_Msk (0xffffffffUL) /*!< LOC_MAC (Bitfield-Mask: 0xffffffff) */ +/* ===================================================== DLR_LOC_MAChi ===================================================== */ + #define R_ETHSW_DLR_LOC_MAChi_LOC_MAC_Pos (0UL) /*!< LOC_MAC (Bit 0) */ + #define R_ETHSW_DLR_LOC_MAChi_LOC_MAC_Msk (0xffffUL) /*!< LOC_MAC (Bitfield-Mask: 0xffff) */ +/* ==================================================== DLR_SUPR_MAClo ===================================================== */ + #define R_ETHSW_DLR_SUPR_MAClo_SUPR_MAC_Pos (0UL) /*!< SUPR_MAC (Bit 0) */ + #define R_ETHSW_DLR_SUPR_MAClo_SUPR_MAC_Msk (0xffffffffUL) /*!< SUPR_MAC (Bitfield-Mask: 0xffffffff) */ +/* ==================================================== DLR_SUPR_MAChi ===================================================== */ + #define R_ETHSW_DLR_SUPR_MAChi_SUPR_MAC_Pos (0UL) /*!< SUPR_MAC (Bit 0) */ + #define R_ETHSW_DLR_SUPR_MAChi_SUPR_MAC_Msk (0xffffUL) /*!< SUPR_MAC (Bitfield-Mask: 0xffff) */ + #define R_ETHSW_DLR_SUPR_MAChi_PRECE_Pos (16UL) /*!< PRECE (Bit 16) */ + #define R_ETHSW_DLR_SUPR_MAChi_PRECE_Msk (0xff0000UL) /*!< PRECE (Bitfield-Mask: 0xff) */ +/* ==================================================== DLR_STATE_VLAN ===================================================== */ + #define R_ETHSW_DLR_STATE_VLAN_RINGSTAT_Pos (0UL) /*!< RINGSTAT (Bit 0) */ + #define R_ETHSW_DLR_STATE_VLAN_RINGSTAT_Msk (0xffUL) /*!< RINGSTAT (Bitfield-Mask: 0xff) */ + #define R_ETHSW_DLR_STATE_VLAN_VLANVALID_Pos (8UL) /*!< VLANVALID (Bit 8) */ + #define R_ETHSW_DLR_STATE_VLAN_VLANVALID_Msk (0x100UL) /*!< VLANVALID (Bitfield-Mask: 0x01) */ + #define R_ETHSW_DLR_STATE_VLAN_VLANINFO_Pos (16UL) /*!< VLANINFO (Bit 16) */ + #define R_ETHSW_DLR_STATE_VLAN_VLANINFO_Msk (0xffff0000UL) /*!< VLANINFO (Bitfield-Mask: 0xffff) */ +/* ===================================================== DLR_BEC_TMOUT ===================================================== */ + #define R_ETHSW_DLR_BEC_TMOUT_BEC_TMOUT_Pos (0UL) /*!< BEC_TMOUT (Bit 0) */ + #define R_ETHSW_DLR_BEC_TMOUT_BEC_TMOUT_Msk (0xffffffffUL) /*!< BEC_TMOUT (Bitfield-Mask: 0xffffffff) */ +/* ==================================================== DLR_BEC_INTRVL ===================================================== */ + #define R_ETHSW_DLR_BEC_INTRVL_BEC_INTRVL_Pos (0UL) /*!< BEC_INTRVL (Bit 0) */ + #define R_ETHSW_DLR_BEC_INTRVL_BEC_INTRVL_Msk (0xffffffffUL) /*!< BEC_INTRVL (Bitfield-Mask: 0xffffffff) */ +/* ==================================================== DLR_SUPR_IPADR ===================================================== */ + #define R_ETHSW_DLR_SUPR_IPADR_SUPR_IPADR_Pos (0UL) /*!< SUPR_IPADR (Bit 0) */ + #define R_ETHSW_DLR_SUPR_IPADR_SUPR_IPADR_Msk (0xffffffffUL) /*!< SUPR_IPADR (Bitfield-Mask: 0xffffffff) */ +/* =================================================== DLR_ETH_STYP_VER ==================================================== */ + #define R_ETHSW_DLR_ETH_STYP_VER_SUBTYPE_Pos (0UL) /*!< SUBTYPE (Bit 0) */ + #define R_ETHSW_DLR_ETH_STYP_VER_SUBTYPE_Msk (0xffUL) /*!< SUBTYPE (Bitfield-Mask: 0xff) */ + #define R_ETHSW_DLR_ETH_STYP_VER_PROTVER_Pos (8UL) /*!< PROTVER (Bit 8) */ + #define R_ETHSW_DLR_ETH_STYP_VER_PROTVER_Msk (0xff00UL) /*!< PROTVER (Bitfield-Mask: 0xff) */ + #define R_ETHSW_DLR_ETH_STYP_VER_SPORT_Pos (16UL) /*!< SPORT (Bit 16) */ + #define R_ETHSW_DLR_ETH_STYP_VER_SPORT_Msk (0xff0000UL) /*!< SPORT (Bitfield-Mask: 0xff) */ +/* ===================================================== DLR_INV_TMOUT ===================================================== */ + #define R_ETHSW_DLR_INV_TMOUT_INV_TMOUT_Pos (0UL) /*!< INV_TMOUT (Bit 0) */ + #define R_ETHSW_DLR_INV_TMOUT_INV_TMOUT_Msk (0xffffffffUL) /*!< INV_TMOUT (Bitfield-Mask: 0xffffffff) */ +/* ====================================================== DLR_SEQ_ID ======================================================= */ + #define R_ETHSW_DLR_SEQ_ID_SEQ_ID_Pos (0UL) /*!< SEQ_ID (Bit 0) */ + #define R_ETHSW_DLR_SEQ_ID_SEQ_ID_Msk (0xffffffffUL) /*!< SEQ_ID (Bitfield-Mask: 0xffffffff) */ +/* ======================================================= DLR_DSTlo ======================================================= */ + #define R_ETHSW_DLR_DSTlo_DLR_DST_Pos (0UL) /*!< DLR_DST (Bit 0) */ + #define R_ETHSW_DLR_DSTlo_DLR_DST_Msk (0xffffffffUL) /*!< DLR_DST (Bitfield-Mask: 0xffffffff) */ +/* ======================================================= DLR_DSThi ======================================================= */ + #define R_ETHSW_DLR_DSThi_DLR_DST_Pos (0UL) /*!< DLR_DST (Bit 0) */ + #define R_ETHSW_DLR_DSThi_DLR_DST_Msk (0xffffUL) /*!< DLR_DST (Bitfield-Mask: 0xffff) */ +/* ===================================================== DLR_RX_STAT0 ====================================================== */ + #define R_ETHSW_DLR_RX_STAT0_RX_STAT0_Pos (0UL) /*!< RX_STAT0 (Bit 0) */ + #define R_ETHSW_DLR_RX_STAT0_RX_STAT0_Msk (0xffffffffUL) /*!< RX_STAT0 (Bitfield-Mask: 0xffffffff) */ +/* =================================================== DLR_RX_ERR_STAT0 ==================================================== */ + #define R_ETHSW_DLR_RX_ERR_STAT0_RX_ERR_STAT0_Pos (0UL) /*!< RX_ERR_STAT0 (Bit 0) */ + #define R_ETHSW_DLR_RX_ERR_STAT0_RX_ERR_STAT0_Msk (0xffffffffUL) /*!< RX_ERR_STAT0 (Bitfield-Mask: 0xffffffff) */ +/* ==================================================== DLR_RX_LF_STAT0 ==================================================== */ + #define R_ETHSW_DLR_RX_LF_STAT0_RX_LF_STAT0_Pos (0UL) /*!< RX_LF_STAT0 (Bit 0) */ + #define R_ETHSW_DLR_RX_LF_STAT0_RX_LF_STAT0_Msk (0xffUL) /*!< RX_LF_STAT0 (Bitfield-Mask: 0xff) */ +/* ===================================================== DLR_RX_STAT1 ====================================================== */ + #define R_ETHSW_DLR_RX_STAT1_RX_STAT1_Pos (0UL) /*!< RX_STAT1 (Bit 0) */ + #define R_ETHSW_DLR_RX_STAT1_RX_STAT1_Msk (0xffffffffUL) /*!< RX_STAT1 (Bitfield-Mask: 0xffffffff) */ +/* =================================================== DLR_RX_ERR_STAT1 ==================================================== */ + #define R_ETHSW_DLR_RX_ERR_STAT1_RX_ERR_STAT1_Pos (0UL) /*!< RX_ERR_STAT1 (Bit 0) */ + #define R_ETHSW_DLR_RX_ERR_STAT1_RX_ERR_STAT1_Msk (0xffffffffUL) /*!< RX_ERR_STAT1 (Bitfield-Mask: 0xffffffff) */ +/* ==================================================== DLR_RX_LF_STAT1 ==================================================== */ + #define R_ETHSW_DLR_RX_LF_STAT1_RX_LF_STAT1_Pos (0UL) /*!< RX_LF_STAT1 (Bit 0) */ + #define R_ETHSW_DLR_RX_LF_STAT1_RX_LF_STAT1_Msk (0xffUL) /*!< RX_LF_STAT1 (Bitfield-Mask: 0xff) */ +/* ====================================================== PRP_CONFIG ======================================================= */ + #define R_ETHSW_PRP_CONFIG_PRP_ENA_Pos (0UL) /*!< PRP_ENA (Bit 0) */ + #define R_ETHSW_PRP_CONFIG_PRP_ENA_Msk (0x1UL) /*!< PRP_ENA (Bitfield-Mask: 0x01) */ + #define R_ETHSW_PRP_CONFIG_RX_DUP_ACCEPT_Pos (1UL) /*!< RX_DUP_ACCEPT (Bit 1) */ + #define R_ETHSW_PRP_CONFIG_RX_DUP_ACCEPT_Msk (0x2UL) /*!< RX_DUP_ACCEPT (Bitfield-Mask: 0x01) */ + #define R_ETHSW_PRP_CONFIG_RX_REMOVE_RCT_Pos (2UL) /*!< RX_REMOVE_RCT (Bit 2) */ + #define R_ETHSW_PRP_CONFIG_RX_REMOVE_RCT_Msk (0x4UL) /*!< RX_REMOVE_RCT (Bitfield-Mask: 0x01) */ + #define R_ETHSW_PRP_CONFIG_TX_RCT_MODE_Pos (3UL) /*!< TX_RCT_MODE (Bit 3) */ + #define R_ETHSW_PRP_CONFIG_TX_RCT_MODE_Msk (0x18UL) /*!< TX_RCT_MODE (Bitfield-Mask: 0x03) */ + #define R_ETHSW_PRP_CONFIG_TX_RCT_BROADCAST_Pos (5UL) /*!< TX_RCT_BROADCAST (Bit 5) */ + #define R_ETHSW_PRP_CONFIG_TX_RCT_BROADCAST_Msk (0x20UL) /*!< TX_RCT_BROADCAST (Bitfield-Mask: 0x01) */ + #define R_ETHSW_PRP_CONFIG_TX_RCT_MULTICAST_Pos (6UL) /*!< TX_RCT_MULTICAST (Bit 6) */ + #define R_ETHSW_PRP_CONFIG_TX_RCT_MULTICAST_Msk (0x40UL) /*!< TX_RCT_MULTICAST (Bitfield-Mask: 0x01) */ + #define R_ETHSW_PRP_CONFIG_TX_RCT_UNKNOWN_Pos (7UL) /*!< TX_RCT_UNKNOWN (Bit 7) */ + #define R_ETHSW_PRP_CONFIG_TX_RCT_UNKNOWN_Msk (0x80UL) /*!< TX_RCT_UNKNOWN (Bitfield-Mask: 0x01) */ + #define R_ETHSW_PRP_CONFIG_TX_RCT_1588_Pos (8UL) /*!< TX_RCT_1588 (Bit 8) */ + #define R_ETHSW_PRP_CONFIG_TX_RCT_1588_Msk (0x100UL) /*!< TX_RCT_1588 (Bitfield-Mask: 0x01) */ + #define R_ETHSW_PRP_CONFIG_RCT_LEN_CHK_DIS_Pos (9UL) /*!< RCT_LEN_CHK_DIS (Bit 9) */ + #define R_ETHSW_PRP_CONFIG_RCT_LEN_CHK_DIS_Msk (0x200UL) /*!< RCT_LEN_CHK_DIS (Bitfield-Mask: 0x01) */ + #define R_ETHSW_PRP_CONFIG_PRP_AGE_ENA_Pos (16UL) /*!< PRP_AGE_ENA (Bit 16) */ + #define R_ETHSW_PRP_CONFIG_PRP_AGE_ENA_Msk (0x10000UL) /*!< PRP_AGE_ENA (Bitfield-Mask: 0x01) */ +/* ======================================================= PRP_GROUP ======================================================= */ + #define R_ETHSW_PRP_GROUP_PRP_GROUP_Pos (0UL) /*!< PRP_GROUP (Bit 0) */ + #define R_ETHSW_PRP_GROUP_PRP_GROUP_Msk (0x7UL) /*!< PRP_GROUP (Bitfield-Mask: 0x07) */ + #define R_ETHSW_PRP_GROUP_LANB_MASK_Pos (16UL) /*!< LANB_MASK (Bit 16) */ + #define R_ETHSW_PRP_GROUP_LANB_MASK_Msk (0x70000UL) /*!< LANB_MASK (Bitfield-Mask: 0x07) */ +/* ====================================================== PRP_SUFFIX ======================================================= */ + #define R_ETHSW_PRP_SUFFIX_PRP_SUFFIX_Pos (0UL) /*!< PRP_SUFFIX (Bit 0) */ + #define R_ETHSW_PRP_SUFFIX_PRP_SUFFIX_Msk (0xffffUL) /*!< PRP_SUFFIX (Bitfield-Mask: 0xffff) */ +/* ======================================================= PRP_LANID ======================================================= */ + #define R_ETHSW_PRP_LANID_LANAID_Pos (0UL) /*!< LANAID (Bit 0) */ + #define R_ETHSW_PRP_LANID_LANAID_Msk (0xfUL) /*!< LANAID (Bitfield-Mask: 0x0f) */ + #define R_ETHSW_PRP_LANID_LANBID_Pos (4UL) /*!< LANBID (Bit 4) */ + #define R_ETHSW_PRP_LANID_LANBID_Msk (0xf0UL) /*!< LANBID (Bitfield-Mask: 0x0f) */ +/* ========================================================= DUP_W ========================================================= */ + #define R_ETHSW_DUP_W_DUP_W_Pos (0UL) /*!< DUP_W (Bit 0) */ + #define R_ETHSW_DUP_W_DUP_W_Msk (0xffUL) /*!< DUP_W (Bitfield-Mask: 0xff) */ +/* ====================================================== PRP_AGETIME ====================================================== */ + #define R_ETHSW_PRP_AGETIME_PRP_AGETIME_Pos (0UL) /*!< PRP_AGETIME (Bit 0) */ + #define R_ETHSW_PRP_AGETIME_PRP_AGETIME_Msk (0xffffffUL) /*!< PRP_AGETIME (Bitfield-Mask: 0xffffff) */ +/* ==================================================== PRP_IRQ_CONTROL ==================================================== */ + #define R_ETHSW_PRP_IRQ_CONTROL_MEMTOOLATE_Pos (0UL) /*!< MEMTOOLATE (Bit 0) */ + #define R_ETHSW_PRP_IRQ_CONTROL_MEMTOOLATE_Msk (0x1UL) /*!< MEMTOOLATE (Bitfield-Mask: 0x01) */ + #define R_ETHSW_PRP_IRQ_CONTROL_WRONGLAN_Pos (1UL) /*!< WRONGLAN (Bit 1) */ + #define R_ETHSW_PRP_IRQ_CONTROL_WRONGLAN_Msk (0x2UL) /*!< WRONGLAN (Bitfield-Mask: 0x01) */ + #define R_ETHSW_PRP_IRQ_CONTROL_OUTOFSEQ_Pos (2UL) /*!< OUTOFSEQ (Bit 2) */ + #define R_ETHSW_PRP_IRQ_CONTROL_OUTOFSEQ_Msk (0x4UL) /*!< OUTOFSEQ (Bitfield-Mask: 0x01) */ + #define R_ETHSW_PRP_IRQ_CONTROL_SEQMISSING_Pos (3UL) /*!< SEQMISSING (Bit 3) */ + #define R_ETHSW_PRP_IRQ_CONTROL_SEQMISSING_Msk (0x8UL) /*!< SEQMISSING (Bitfield-Mask: 0x01) */ +/* =================================================== PRP_IRQ_STAT_ACK ==================================================== */ + #define R_ETHSW_PRP_IRQ_STAT_ACK_MEMTOOLATE_Pos (0UL) /*!< MEMTOOLATE (Bit 0) */ + #define R_ETHSW_PRP_IRQ_STAT_ACK_MEMTOOLATE_Msk (0x1UL) /*!< MEMTOOLATE (Bitfield-Mask: 0x01) */ + #define R_ETHSW_PRP_IRQ_STAT_ACK_WRONGLAN_Pos (1UL) /*!< WRONGLAN (Bit 1) */ + #define R_ETHSW_PRP_IRQ_STAT_ACK_WRONGLAN_Msk (0x2UL) /*!< WRONGLAN (Bitfield-Mask: 0x01) */ + #define R_ETHSW_PRP_IRQ_STAT_ACK_OUTOFSEQ_Pos (2UL) /*!< OUTOFSEQ (Bit 2) */ + #define R_ETHSW_PRP_IRQ_STAT_ACK_OUTOFSEQ_Msk (0x4UL) /*!< OUTOFSEQ (Bitfield-Mask: 0x01) */ + #define R_ETHSW_PRP_IRQ_STAT_ACK_SEQMISSING_Pos (3UL) /*!< SEQMISSING (Bit 3) */ + #define R_ETHSW_PRP_IRQ_STAT_ACK_SEQMISSING_Msk (0x8UL) /*!< SEQMISSING (Bitfield-Mask: 0x01) */ +/* ===================================================== RM_ADDR_CTRL ====================================================== */ + #define R_ETHSW_RM_ADDR_CTRL_address_Pos (0UL) /*!< address (Bit 0) */ + #define R_ETHSW_RM_ADDR_CTRL_address_Msk (0xfffUL) /*!< address (Bitfield-Mask: 0xfff) */ + #define R_ETHSW_RM_ADDR_CTRL_CLEAR_DYNAMIC_Pos (22UL) /*!< CLEAR_DYNAMIC (Bit 22) */ + #define R_ETHSW_RM_ADDR_CTRL_CLEAR_DYNAMIC_Msk (0x400000UL) /*!< CLEAR_DYNAMIC (Bitfield-Mask: 0x01) */ + #define R_ETHSW_RM_ADDR_CTRL_CLEAR_MEMORY_Pos (23UL) /*!< CLEAR_MEMORY (Bit 23) */ + #define R_ETHSW_RM_ADDR_CTRL_CLEAR_MEMORY_Msk (0x800000UL) /*!< CLEAR_MEMORY (Bitfield-Mask: 0x01) */ + #define R_ETHSW_RM_ADDR_CTRL_WRITE_Pos (25UL) /*!< WRITE (Bit 25) */ + #define R_ETHSW_RM_ADDR_CTRL_WRITE_Msk (0x2000000UL) /*!< WRITE (Bitfield-Mask: 0x01) */ + #define R_ETHSW_RM_ADDR_CTRL_READ_Pos (26UL) /*!< READ (Bit 26) */ + #define R_ETHSW_RM_ADDR_CTRL_READ_Msk (0x4000000UL) /*!< READ (Bitfield-Mask: 0x01) */ + #define R_ETHSW_RM_ADDR_CTRL_CLEAR_Pos (29UL) /*!< CLEAR (Bit 29) */ + #define R_ETHSW_RM_ADDR_CTRL_CLEAR_Msk (0x20000000UL) /*!< CLEAR (Bitfield-Mask: 0x01) */ + #define R_ETHSW_RM_ADDR_CTRL_BUSY_Pos (31UL) /*!< BUSY (Bit 31) */ + #define R_ETHSW_RM_ADDR_CTRL_BUSY_Msk (0x80000000UL) /*!< BUSY (Bitfield-Mask: 0x01) */ +/* ======================================================== RM_DATA ======================================================== */ + #define R_ETHSW_RM_DATA_RM_DATA_Pos (0UL) /*!< RM_DATA (Bit 0) */ + #define R_ETHSW_RM_DATA_RM_DATA_Msk (0xffffffffUL) /*!< RM_DATA (Bitfield-Mask: 0xffffffff) */ +/* ====================================================== RM_DATA_HI ======================================================= */ + #define R_ETHSW_RM_DATA_HI_RM_DATA_HI_Pos (0UL) /*!< RM_DATA_HI (Bit 0) */ + #define R_ETHSW_RM_DATA_HI_RM_DATA_HI_Msk (0xffffffffUL) /*!< RM_DATA_HI (Bitfield-Mask: 0xffffffff) */ +/* ======================================================= RM_STATUS ======================================================= */ + #define R_ETHSW_RM_STATUS_ageaddress_Pos (0UL) /*!< ageaddress (Bit 0) */ + #define R_ETHSW_RM_STATUS_ageaddress_Msk (0xfffUL) /*!< ageaddress (Bitfield-Mask: 0xfff) */ +/* ===================================================== TxSeqTooLate ====================================================== */ + #define R_ETHSW_TxSeqTooLate_TxSeqTooLate_Pos (0UL) /*!< TxSeqTooLate (Bit 0) */ + #define R_ETHSW_TxSeqTooLate_TxSeqTooLate_Msk (0xfUL) /*!< TxSeqTooLate (Bitfield-Mask: 0x0f) */ +/* ==================================================== CntErrWrongLanA ==================================================== */ + #define R_ETHSW_CntErrWrongLanA_CntErrWrongLanA_Pos (0UL) /*!< CntErrWrongLanA (Bit 0) */ + #define R_ETHSW_CntErrWrongLanA_CntErrWrongLanA_Msk (0xffffffffUL) /*!< CntErrWrongLanA (Bitfield-Mask: 0xffffffff) */ +/* ==================================================== CntErrWrongLanB ==================================================== */ + #define R_ETHSW_CntErrWrongLanB_CntErrWrongLanB_Pos (0UL) /*!< CntErrWrongLanB (Bit 0) */ + #define R_ETHSW_CntErrWrongLanB_CntErrWrongLanB_Msk (0xffffffffUL) /*!< CntErrWrongLanB (Bitfield-Mask: 0xffffffff) */ +/* ====================================================== CntDupLanA ======================================================= */ + #define R_ETHSW_CntDupLanA_CntDupLanA_Pos (0UL) /*!< CntDupLanA (Bit 0) */ + #define R_ETHSW_CntDupLanA_CntDupLanA_Msk (0xffffffffUL) /*!< CntDupLanA (Bitfield-Mask: 0xffffffff) */ +/* ====================================================== CntDupLanB ======================================================= */ + #define R_ETHSW_CntDupLanB_CntDupLanB_Pos (0UL) /*!< CntDupLanB (Bit 0) */ + #define R_ETHSW_CntDupLanB_CntDupLanB_Msk (0xffffffffUL) /*!< CntDupLanB (Bitfield-Mask: 0xffffffff) */ +/* ==================================================== CntOutOfSeqLowA ==================================================== */ + #define R_ETHSW_CntOutOfSeqLowA_CntOutOfSeqLowA_Pos (0UL) /*!< CntOutOfSeqLowA (Bit 0) */ + #define R_ETHSW_CntOutOfSeqLowA_CntOutOfSeqLowA_Msk (0xffffffffUL) /*!< CntOutOfSeqLowA (Bitfield-Mask: 0xffffffff) */ +/* ==================================================== CntOutOfSeqLowB ==================================================== */ + #define R_ETHSW_CntOutOfSeqLowB_CntOutOfSeqLowB_Pos (0UL) /*!< CntOutOfSeqLowB (Bit 0) */ + #define R_ETHSW_CntOutOfSeqLowB_CntOutOfSeqLowB_Msk (0xffffffffUL) /*!< CntOutOfSeqLowB (Bitfield-Mask: 0xffffffff) */ +/* ===================================================== CntOutOfSeqA ====================================================== */ + #define R_ETHSW_CntOutOfSeqA_CntOutOfSeqA_Pos (0UL) /*!< CntOutOfSeqA (Bit 0) */ + #define R_ETHSW_CntOutOfSeqA_CntOutOfSeqA_Msk (0xffffffffUL) /*!< CntOutOfSeqA (Bitfield-Mask: 0xffffffff) */ +/* ===================================================== CntOutOfSeqB ====================================================== */ + #define R_ETHSW_CntOutOfSeqB_CntOutOfSeqB_Pos (0UL) /*!< CntOutOfSeqB (Bit 0) */ + #define R_ETHSW_CntOutOfSeqB_CntOutOfSeqB_Msk (0xffffffffUL) /*!< CntOutOfSeqB (Bitfield-Mask: 0xffffffff) */ +/* ====================================================== CntAcceptA ======================================================= */ + #define R_ETHSW_CntAcceptA_CntAcceptA_Pos (0UL) /*!< CntAcceptA (Bit 0) */ + #define R_ETHSW_CntAcceptA_CntAcceptA_Msk (0xffffffffUL) /*!< CntAcceptA (Bitfield-Mask: 0xffffffff) */ +/* ====================================================== CntAcceptB ======================================================= */ + #define R_ETHSW_CntAcceptB_CntAcceptB_Pos (0UL) /*!< CntAcceptB (Bit 0) */ + #define R_ETHSW_CntAcceptB_CntAcceptB_Msk (0xffffffffUL) /*!< CntAcceptB (Bitfield-Mask: 0xffffffff) */ +/* ====================================================== CntMissing ======================================================= */ + #define R_ETHSW_CntMissing_CntMissing_Pos (0UL) /*!< CntMissing (Bit 0) */ + #define R_ETHSW_CntMissing_CntMissing_Msk (0xffffffffUL) /*!< CntMissing (Bitfield-Mask: 0xffffffff) */ +/* ====================================================== HUB_CONFIG ======================================================= */ + #define R_ETHSW_HUB_CONFIG_HUB_ENA_Pos (0UL) /*!< HUB_ENA (Bit 0) */ + #define R_ETHSW_HUB_CONFIG_HUB_ENA_Msk (0x1UL) /*!< HUB_ENA (Bitfield-Mask: 0x01) */ + #define R_ETHSW_HUB_CONFIG_RETRANSMIT_ENA_Pos (1UL) /*!< RETRANSMIT_ENA (Bit 1) */ + #define R_ETHSW_HUB_CONFIG_RETRANSMIT_ENA_Msk (0x2UL) /*!< RETRANSMIT_ENA (Bitfield-Mask: 0x01) */ + #define R_ETHSW_HUB_CONFIG_TRIGGER_MODE_Pos (2UL) /*!< TRIGGER_MODE (Bit 2) */ + #define R_ETHSW_HUB_CONFIG_TRIGGER_MODE_Msk (0x4UL) /*!< TRIGGER_MODE (Bitfield-Mask: 0x01) */ + #define R_ETHSW_HUB_CONFIG_HUB_ISOLATE_Pos (3UL) /*!< HUB_ISOLATE (Bit 3) */ + #define R_ETHSW_HUB_CONFIG_HUB_ISOLATE_Msk (0x8UL) /*!< HUB_ISOLATE (Bitfield-Mask: 0x01) */ + #define R_ETHSW_HUB_CONFIG_TIMER_SEL_Pos (4UL) /*!< TIMER_SEL (Bit 4) */ + #define R_ETHSW_HUB_CONFIG_TIMER_SEL_Msk (0x10UL) /*!< TIMER_SEL (Bitfield-Mask: 0x01) */ + #define R_ETHSW_HUB_CONFIG_IPG_WAIT_Pos (6UL) /*!< IPG_WAIT (Bit 6) */ + #define R_ETHSW_HUB_CONFIG_IPG_WAIT_Msk (0x1c0UL) /*!< IPG_WAIT (Bitfield-Mask: 0x07) */ + #define R_ETHSW_HUB_CONFIG_CRS_GEN_Pos (9UL) /*!< CRS_GEN (Bit 9) */ + #define R_ETHSW_HUB_CONFIG_CRS_GEN_Msk (0x200UL) /*!< CRS_GEN (Bitfield-Mask: 0x01) */ + #define R_ETHSW_HUB_CONFIG_PRMB_GEN_DIS_Pos (10UL) /*!< PRMB_GEN_DIS (Bit 10) */ + #define R_ETHSW_HUB_CONFIG_PRMB_GEN_DIS_Msk (0x400UL) /*!< PRMB_GEN_DIS (Bitfield-Mask: 0x01) */ + #define R_ETHSW_HUB_CONFIG_JAM_WAIT_IDLE_Pos (11UL) /*!< JAM_WAIT_IDLE (Bit 11) */ + #define R_ETHSW_HUB_CONFIG_JAM_WAIT_IDLE_Msk (0x800UL) /*!< JAM_WAIT_IDLE (Bitfield-Mask: 0x01) */ +/* ======================================================= HUB_GROUP ======================================================= */ + #define R_ETHSW_HUB_GROUP_HUB_GROUP_Pos (0UL) /*!< HUB_GROUP (Bit 0) */ + #define R_ETHSW_HUB_GROUP_HUB_GROUP_Msk (0x7UL) /*!< HUB_GROUP (Bitfield-Mask: 0x07) */ +/* ====================================================== HUB_DEFPORT ====================================================== */ + #define R_ETHSW_HUB_DEFPORT_HUB_DEFPORT_Pos (0UL) /*!< HUB_DEFPORT (Bit 0) */ + #define R_ETHSW_HUB_DEFPORT_HUB_DEFPORT_Msk (0x7UL) /*!< HUB_DEFPORT (Bitfield-Mask: 0x07) */ +/* ================================================= HUB_TRIGGER_IMMEDIATE ================================================= */ + #define R_ETHSW_HUB_TRIGGER_IMMEDIATE_HUB_TRIGGER_IMMEDIATE_Pos (0UL) /*!< HUB_TRIGGER_IMMEDIATE (Bit 0) */ + #define R_ETHSW_HUB_TRIGGER_IMMEDIATE_HUB_TRIGGER_IMMEDIATE_Msk (0x7UL) /*!< HUB_TRIGGER_IMMEDIATE (Bitfield-Mask: 0x07) */ +/* ==================================================== HUB_TRIGGER_AT ===================================================== */ + #define R_ETHSW_HUB_TRIGGER_AT_HUB_TRIGGER_AT_Pos (0UL) /*!< HUB_TRIGGER_AT (Bit 0) */ + #define R_ETHSW_HUB_TRIGGER_AT_HUB_TRIGGER_AT_Msk (0x7UL) /*!< HUB_TRIGGER_AT (Bitfield-Mask: 0x07) */ +/* ======================================================= HUB_TTIME ======================================================= */ + #define R_ETHSW_HUB_TTIME_HUB_TTIME_Pos (0UL) /*!< HUB_TTIME (Bit 0) */ + #define R_ETHSW_HUB_TTIME_HUB_TTIME_Msk (0xffffffffUL) /*!< HUB_TTIME (Bitfield-Mask: 0xffffffff) */ +/* ==================================================== HUB_IRQ_CONTROL ==================================================== */ + #define R_ETHSW_HUB_IRQ_CONTROL_RX_TRIGGER_Pos (0UL) /*!< RX_TRIGGER (Bit 0) */ + #define R_ETHSW_HUB_IRQ_CONTROL_RX_TRIGGER_Msk (0x7UL) /*!< RX_TRIGGER (Bitfield-Mask: 0x07) */ + #define R_ETHSW_HUB_IRQ_CONTROL_CHANGE_DET_Pos (3UL) /*!< CHANGE_DET (Bit 3) */ + #define R_ETHSW_HUB_IRQ_CONTROL_CHANGE_DET_Msk (0x8UL) /*!< CHANGE_DET (Bitfield-Mask: 0x01) */ + #define R_ETHSW_HUB_IRQ_CONTROL_TRIGGER_IMMEDIATE_Pos (4UL) /*!< TRIGGER_IMMEDIATE (Bit 4) */ + #define R_ETHSW_HUB_IRQ_CONTROL_TRIGGER_IMMEDIATE_Msk (0x10UL) /*!< TRIGGER_IMMEDIATE (Bitfield-Mask: 0x01) */ + #define R_ETHSW_HUB_IRQ_CONTROL_TRIGGER_TIMER_Pos (5UL) /*!< TRIGGER_TIMER (Bit 5) */ + #define R_ETHSW_HUB_IRQ_CONTROL_TRIGGER_TIMER_Msk (0x20UL) /*!< TRIGGER_TIMER (Bitfield-Mask: 0x01) */ +/* =================================================== HUB_IRQ_STAT_ACK ==================================================== */ + #define R_ETHSW_HUB_IRQ_STAT_ACK_RX_TRIGGER_Pos (0UL) /*!< RX_TRIGGER (Bit 0) */ + #define R_ETHSW_HUB_IRQ_STAT_ACK_RX_TRIGGER_Msk (0x7UL) /*!< RX_TRIGGER (Bitfield-Mask: 0x07) */ + #define R_ETHSW_HUB_IRQ_STAT_ACK_CHANGE_DET_Pos (3UL) /*!< CHANGE_DET (Bit 3) */ + #define R_ETHSW_HUB_IRQ_STAT_ACK_CHANGE_DET_Msk (0x8UL) /*!< CHANGE_DET (Bitfield-Mask: 0x01) */ + #define R_ETHSW_HUB_IRQ_STAT_ACK_TRIGGER_IMMEDIATE_Pos (4UL) /*!< TRIGGER_IMMEDIATE (Bit 4) */ + #define R_ETHSW_HUB_IRQ_STAT_ACK_TRIGGER_IMMEDIATE_Msk (0x10UL) /*!< TRIGGER_IMMEDIATE (Bitfield-Mask: 0x01) */ + #define R_ETHSW_HUB_IRQ_STAT_ACK_TRIGGER_TIMER_Pos (5UL) /*!< TRIGGER_TIMER (Bit 5) */ + #define R_ETHSW_HUB_IRQ_STAT_ACK_TRIGGER_TIMER_Msk (0x20UL) /*!< TRIGGER_TIMER (Bitfield-Mask: 0x01) */ +/* ====================================================== HUB_STATUS ======================================================= */ + #define R_ETHSW_HUB_STATUS_PORTS_ACTIVE_Pos (0UL) /*!< PORTS_ACTIVE (Bit 0) */ + #define R_ETHSW_HUB_STATUS_PORTS_ACTIVE_Msk (0x7UL) /*!< PORTS_ACTIVE (Bitfield-Mask: 0x07) */ + #define R_ETHSW_HUB_STATUS_TX_ACTIVE_Pos (9UL) /*!< TX_ACTIVE (Bit 9) */ + #define R_ETHSW_HUB_STATUS_TX_ACTIVE_Msk (0x200UL) /*!< TX_ACTIVE (Bitfield-Mask: 0x01) */ + #define R_ETHSW_HUB_STATUS_TX_BUSY_Pos (10UL) /*!< TX_BUSY (Bit 10) */ + #define R_ETHSW_HUB_STATUS_TX_BUSY_Msk (0x400UL) /*!< TX_BUSY (Bitfield-Mask: 0x01) */ + #define R_ETHSW_HUB_STATUS_Speed_OK_Pos (11UL) /*!< Speed_OK (Bit 11) */ + #define R_ETHSW_HUB_STATUS_Speed_OK_Msk (0x800UL) /*!< Speed_OK (Bitfield-Mask: 0x01) */ + #define R_ETHSW_HUB_STATUS_TX_Change_Pending_Pos (12UL) /*!< TX_Change_Pending (Bit 12) */ + #define R_ETHSW_HUB_STATUS_TX_Change_Pending_Msk (0x1000UL) /*!< TX_Change_Pending (Bitfield-Mask: 0x01) */ +/* =================================================== HUB_OPORT_STATUS ==================================================== */ + #define R_ETHSW_HUB_OPORT_STATUS_HUB_OPORT_STATUS_Pos (0UL) /*!< HUB_OPORT_STATUS (Bit 0) */ + #define R_ETHSW_HUB_OPORT_STATUS_HUB_OPORT_STATUS_Msk (0x7UL) /*!< HUB_OPORT_STATUS (Bitfield-Mask: 0x07) */ +/* ====================================================== TDMA_CONFIG ====================================================== */ + #define R_ETHSW_TDMA_CONFIG_TDMA_ENA_Pos (0UL) /*!< TDMA_ENA (Bit 0) */ + #define R_ETHSW_TDMA_CONFIG_TDMA_ENA_Msk (0x1UL) /*!< TDMA_ENA (Bitfield-Mask: 0x01) */ + #define R_ETHSW_TDMA_CONFIG_WAIT_START_Pos (1UL) /*!< WAIT_START (Bit 1) */ + #define R_ETHSW_TDMA_CONFIG_WAIT_START_Msk (0x2UL) /*!< WAIT_START (Bitfield-Mask: 0x01) */ + #define R_ETHSW_TDMA_CONFIG_TIMER_SEL_Pos (2UL) /*!< TIMER_SEL (Bit 2) */ + #define R_ETHSW_TDMA_CONFIG_TIMER_SEL_Msk (0x4UL) /*!< TIMER_SEL (Bitfield-Mask: 0x01) */ + #define R_ETHSW_TDMA_CONFIG_RED_PERIOD_Pos (4UL) /*!< RED_PERIOD (Bit 4) */ + #define R_ETHSW_TDMA_CONFIG_RED_PERIOD_Msk (0x10UL) /*!< RED_PERIOD (Bitfield-Mask: 0x01) */ + #define R_ETHSW_TDMA_CONFIG_RED_OVRD_ENA_Pos (5UL) /*!< RED_OVRD_ENA (Bit 5) */ + #define R_ETHSW_TDMA_CONFIG_RED_OVRD_ENA_Msk (0x20UL) /*!< RED_OVRD_ENA (Bitfield-Mask: 0x01) */ + #define R_ETHSW_TDMA_CONFIG_RED_OVRD_Pos (6UL) /*!< RED_OVRD (Bit 6) */ + #define R_ETHSW_TDMA_CONFIG_RED_OVRD_Msk (0x40UL) /*!< RED_OVRD (Bitfield-Mask: 0x01) */ + #define R_ETHSW_TDMA_CONFIG_IN_CT_WREN_Pos (7UL) /*!< IN_CT_WREN (Bit 7) */ + #define R_ETHSW_TDMA_CONFIG_IN_CT_WREN_Msk (0x80UL) /*!< IN_CT_WREN (Bitfield-Mask: 0x01) */ + #define R_ETHSW_TDMA_CONFIG_OUT_CT_WREN_Pos (8UL) /*!< OUT_CT_WREN (Bit 8) */ + #define R_ETHSW_TDMA_CONFIG_OUT_CT_WREN_Msk (0x100UL) /*!< OUT_CT_WREN (Bitfield-Mask: 0x01) */ + #define R_ETHSW_TDMA_CONFIG_HOLD_REQ_CLR_Pos (9UL) /*!< HOLD_REQ_CLR (Bit 9) */ + #define R_ETHSW_TDMA_CONFIG_HOLD_REQ_CLR_Msk (0x200UL) /*!< HOLD_REQ_CLR (Bitfield-Mask: 0x01) */ + #define R_ETHSW_TDMA_CONFIG_TIMER_SEL_ACTIVE_Pos (12UL) /*!< TIMER_SEL_ACTIVE (Bit 12) */ + #define R_ETHSW_TDMA_CONFIG_TIMER_SEL_ACTIVE_Msk (0x1000UL) /*!< TIMER_SEL_ACTIVE (Bitfield-Mask: 0x01) */ + #define R_ETHSW_TDMA_CONFIG_IN_CT_ENA_Pos (16UL) /*!< IN_CT_ENA (Bit 16) */ + #define R_ETHSW_TDMA_CONFIG_IN_CT_ENA_Msk (0xf0000UL) /*!< IN_CT_ENA (Bitfield-Mask: 0x0f) */ + #define R_ETHSW_TDMA_CONFIG_OUT_CT_ENA_Pos (24UL) /*!< OUT_CT_ENA (Bit 24) */ + #define R_ETHSW_TDMA_CONFIG_OUT_CT_ENA_Msk (0xf000000UL) /*!< OUT_CT_ENA (Bitfield-Mask: 0x0f) */ +/* ===================================================== TDMA_ENA_CTRL ===================================================== */ + #define R_ETHSW_TDMA_ENA_CTRL_PORT_ENA_Pos (0UL) /*!< PORT_ENA (Bit 0) */ + #define R_ETHSW_TDMA_ENA_CTRL_PORT_ENA_Msk (0xfUL) /*!< PORT_ENA (Bitfield-Mask: 0x0f) */ + #define R_ETHSW_TDMA_ENA_CTRL_QGATE_DIS_Pos (16UL) /*!< QGATE_DIS (Bit 16) */ + #define R_ETHSW_TDMA_ENA_CTRL_QGATE_DIS_Msk (0xff0000UL) /*!< QGATE_DIS (Bitfield-Mask: 0xff) */ + #define R_ETHSW_TDMA_ENA_CTRL_QTRIG_DIS_Pos (24UL) /*!< QTRIG_DIS (Bit 24) */ + #define R_ETHSW_TDMA_ENA_CTRL_QTRIG_DIS_Msk (0xff000000UL) /*!< QTRIG_DIS (Bitfield-Mask: 0xff) */ +/* ====================================================== TDMA_START ======================================================= */ + #define R_ETHSW_TDMA_START_TDMA_START_Pos (0UL) /*!< TDMA_START (Bit 0) */ + #define R_ETHSW_TDMA_START_TDMA_START_Msk (0xffffffffUL) /*!< TDMA_START (Bitfield-Mask: 0xffffffff) */ +/* ====================================================== TDMA_MODULO ====================================================== */ + #define R_ETHSW_TDMA_MODULO_TDMA_MODULO_Pos (0UL) /*!< TDMA_MODULO (Bit 0) */ + #define R_ETHSW_TDMA_MODULO_TDMA_MODULO_Msk (0xffffffffUL) /*!< TDMA_MODULO (Bitfield-Mask: 0xffffffff) */ +/* ====================================================== TDMA_CYCLE ======================================================= */ + #define R_ETHSW_TDMA_CYCLE_TDMA_CYCLE_Pos (0UL) /*!< TDMA_CYCLE (Bit 0) */ + #define R_ETHSW_TDMA_CYCLE_TDMA_CYCLE_Msk (0xffffffffUL) /*!< TDMA_CYCLE (Bitfield-Mask: 0xffffffff) */ +/* ===================================================== TCV_SEQ_ADDR ====================================================== */ + #define R_ETHSW_TCV_SEQ_ADDR_TCV_S_ADDR_Pos (0UL) /*!< TCV_S_ADDR (Bit 0) */ + #define R_ETHSW_TCV_SEQ_ADDR_TCV_S_ADDR_Msk (0xfffUL) /*!< TCV_S_ADDR (Bitfield-Mask: 0xfff) */ + #define R_ETHSW_TCV_SEQ_ADDR_ADDR_AINC_Pos (31UL) /*!< ADDR_AINC (Bit 31) */ + #define R_ETHSW_TCV_SEQ_ADDR_ADDR_AINC_Msk (0x80000000UL) /*!< ADDR_AINC (Bitfield-Mask: 0x01) */ +/* ===================================================== TCV_SEQ_CTRL ====================================================== */ + #define R_ETHSW_TCV_SEQ_CTRL_START_Pos (0UL) /*!< START (Bit 0) */ + #define R_ETHSW_TCV_SEQ_CTRL_START_Msk (0x1UL) /*!< START (Bitfield-Mask: 0x01) */ + #define R_ETHSW_TCV_SEQ_CTRL_INT_Pos (1UL) /*!< INT (Bit 1) */ + #define R_ETHSW_TCV_SEQ_CTRL_INT_Msk (0x2UL) /*!< INT (Bitfield-Mask: 0x01) */ + #define R_ETHSW_TCV_SEQ_CTRL_TCV_D_IDX_Pos (2UL) /*!< TCV_D_IDX (Bit 2) */ + #define R_ETHSW_TCV_SEQ_CTRL_TCV_D_IDX_Msk (0x7fcUL) /*!< TCV_D_IDX (Bitfield-Mask: 0x1ff) */ + #define R_ETHSW_TCV_SEQ_CTRL_GPIO_Pos (22UL) /*!< GPIO (Bit 22) */ + #define R_ETHSW_TCV_SEQ_CTRL_GPIO_Msk (0x3fc00000UL) /*!< GPIO (Bitfield-Mask: 0xff) */ + #define R_ETHSW_TCV_SEQ_CTRL_READ_MODE_Pos (31UL) /*!< READ_MODE (Bit 31) */ + #define R_ETHSW_TCV_SEQ_CTRL_READ_MODE_Msk (0x80000000UL) /*!< READ_MODE (Bitfield-Mask: 0x01) */ +/* ===================================================== TCV_SEQ_LAST ====================================================== */ + #define R_ETHSW_TCV_SEQ_LAST_LAST_Pos (0UL) /*!< LAST (Bit 0) */ + #define R_ETHSW_TCV_SEQ_LAST_LAST_Msk (0xfffUL) /*!< LAST (Bitfield-Mask: 0xfff) */ + #define R_ETHSW_TCV_SEQ_LAST_ACTIVE_Pos (16UL) /*!< ACTIVE (Bit 16) */ + #define R_ETHSW_TCV_SEQ_LAST_ACTIVE_Msk (0xfff0000UL) /*!< ACTIVE (Bitfield-Mask: 0xfff) */ +/* ====================================================== TCV_D_ADDR ======================================================= */ + #define R_ETHSW_TCV_D_ADDR_ADDR_Pos (0UL) /*!< ADDR (Bit 0) */ + #define R_ETHSW_TCV_D_ADDR_ADDR_Msk (0x1ffUL) /*!< ADDR (Bitfield-Mask: 0x1ff) */ + #define R_ETHSW_TCV_D_ADDR_AINC_WR_ENA_Pos (31UL) /*!< AINC_WR_ENA (Bit 31) */ + #define R_ETHSW_TCV_D_ADDR_AINC_WR_ENA_Msk (0x80000000UL) /*!< AINC_WR_ENA (Bitfield-Mask: 0x01) */ +/* ===================================================== TCV_D_OFFSET ====================================================== */ + #define R_ETHSW_TCV_D_OFFSET_TCV_D_OFFSET_Pos (0UL) /*!< TCV_D_OFFSET (Bit 0) */ + #define R_ETHSW_TCV_D_OFFSET_TCV_D_OFFSET_Msk (0xffffffffUL) /*!< TCV_D_OFFSET (Bitfield-Mask: 0xffffffff) */ +/* ====================================================== TCV_D_CTRL ======================================================= */ + #define R_ETHSW_TCV_D_CTRL_INC_CTR0_Pos (0UL) /*!< INC_CTR0 (Bit 0) */ + #define R_ETHSW_TCV_D_CTRL_INC_CTR0_Msk (0x1UL) /*!< INC_CTR0 (Bitfield-Mask: 0x01) */ + #define R_ETHSW_TCV_D_CTRL_INC_CTR1_Pos (1UL) /*!< INC_CTR1 (Bit 1) */ + #define R_ETHSW_TCV_D_CTRL_INC_CTR1_Msk (0x2UL) /*!< INC_CTR1 (Bitfield-Mask: 0x01) */ + #define R_ETHSW_TCV_D_CTRL_RED_PERIOD_Pos (2UL) /*!< RED_PERIOD (Bit 2) */ + #define R_ETHSW_TCV_D_CTRL_RED_PERIOD_Msk (0x4UL) /*!< RED_PERIOD (Bitfield-Mask: 0x01) */ + #define R_ETHSW_TCV_D_CTRL_OUT_CT_ENA_Pos (3UL) /*!< OUT_CT_ENA (Bit 3) */ + #define R_ETHSW_TCV_D_CTRL_OUT_CT_ENA_Msk (0x8UL) /*!< OUT_CT_ENA (Bitfield-Mask: 0x01) */ + #define R_ETHSW_TCV_D_CTRL_IN_CT_ENA_Pos (4UL) /*!< IN_CT_ENA (Bit 4) */ + #define R_ETHSW_TCV_D_CTRL_IN_CT_ENA_Msk (0x10UL) /*!< IN_CT_ENA (Bitfield-Mask: 0x01) */ + #define R_ETHSW_TCV_D_CTRL_TRIGGER_MODE_Pos (5UL) /*!< TRIGGER_MODE (Bit 5) */ + #define R_ETHSW_TCV_D_CTRL_TRIGGER_MODE_Msk (0x20UL) /*!< TRIGGER_MODE (Bitfield-Mask: 0x01) */ + #define R_ETHSW_TCV_D_CTRL_GATE_MODE_Pos (6UL) /*!< GATE_MODE (Bit 6) */ + #define R_ETHSW_TCV_D_CTRL_GATE_MODE_Msk (0x40UL) /*!< GATE_MODE (Bitfield-Mask: 0x01) */ + #define R_ETHSW_TCV_D_CTRL_HOLD_REQ_Pos (7UL) /*!< HOLD_REQ (Bit 7) */ + #define R_ETHSW_TCV_D_CTRL_HOLD_REQ_Msk (0x80UL) /*!< HOLD_REQ (Bitfield-Mask: 0x01) */ + #define R_ETHSW_TCV_D_CTRL_QGATE_Pos (8UL) /*!< QGATE (Bit 8) */ + #define R_ETHSW_TCV_D_CTRL_QGATE_Msk (0xff00UL) /*!< QGATE (Bitfield-Mask: 0xff) */ + #define R_ETHSW_TCV_D_CTRL_PMASK_Pos (16UL) /*!< PMASK (Bit 16) */ + #define R_ETHSW_TCV_D_CTRL_PMASK_Msk (0xf0000UL) /*!< PMASK (Bitfield-Mask: 0x0f) */ +/* ======================================================= TDMA_CTR0 ======================================================= */ + #define R_ETHSW_TDMA_CTR0_TDMA_CTR0_Pos (0UL) /*!< TDMA_CTR0 (Bit 0) */ + #define R_ETHSW_TDMA_CTR0_TDMA_CTR0_Msk (0xffffffffUL) /*!< TDMA_CTR0 (Bitfield-Mask: 0xffffffff) */ +/* ======================================================= TDMA_CTR1 ======================================================= */ + #define R_ETHSW_TDMA_CTR1_VALUE_Pos (0UL) /*!< VALUE (Bit 0) */ + #define R_ETHSW_TDMA_CTR1_VALUE_Msk (0xffUL) /*!< VALUE (Bitfield-Mask: 0xff) */ + #define R_ETHSW_TDMA_CTR1_WRITE_ENA_Pos (8UL) /*!< WRITE_ENA (Bit 8) */ + #define R_ETHSW_TDMA_CTR1_WRITE_ENA_Msk (0x100UL) /*!< WRITE_ENA (Bitfield-Mask: 0x01) */ + #define R_ETHSW_TDMA_CTR1_MAX_Pos (16UL) /*!< MAX (Bit 16) */ + #define R_ETHSW_TDMA_CTR1_MAX_Msk (0xff0000UL) /*!< MAX (Bitfield-Mask: 0xff) */ + #define R_ETHSW_TDMA_CTR1_INT_VALUE_Pos (24UL) /*!< INT_VALUE (Bit 24) */ + #define R_ETHSW_TDMA_CTR1_INT_VALUE_Msk (0xff000000UL) /*!< INT_VALUE (Bitfield-Mask: 0xff) */ +/* ==================================================== TDMA_TCV_START ===================================================== */ + #define R_ETHSW_TDMA_TCV_START_TDMA_TCV_START_Pos (0UL) /*!< TDMA_TCV_START (Bit 0) */ + #define R_ETHSW_TDMA_TCV_START_TDMA_TCV_START_Msk (0xfffUL) /*!< TDMA_TCV_START (Bitfield-Mask: 0xfff) */ +/* ==================================================== TIME_LOAD_NEXT ===================================================== */ + #define R_ETHSW_TIME_LOAD_NEXT_TIME_LOAD_NEXT_Pos (0UL) /*!< TIME_LOAD_NEXT (Bit 0) */ + #define R_ETHSW_TIME_LOAD_NEXT_TIME_LOAD_NEXT_Msk (0xffffffffUL) /*!< TIME_LOAD_NEXT (Bitfield-Mask: 0xffffffff) */ +/* =================================================== TDMA_IRQ_CONTROL ==================================================== */ + #define R_ETHSW_TDMA_IRQ_CONTROL_TCV_INT_EN_Pos (0UL) /*!< TCV_INT_EN (Bit 0) */ + #define R_ETHSW_TDMA_IRQ_CONTROL_TCV_INT_EN_Msk (0x1UL) /*!< TCV_INT_EN (Bitfield-Mask: 0x01) */ + #define R_ETHSW_TDMA_IRQ_CONTROL_CTR1_INT_EN_Pos (13UL) /*!< CTR1_INT_EN (Bit 13) */ + #define R_ETHSW_TDMA_IRQ_CONTROL_CTR1_INT_EN_Msk (0x2000UL) /*!< CTR1_INT_EN (Bitfield-Mask: 0x01) */ +/* =================================================== TDMA_IRQ_STAT_ACK =================================================== */ + #define R_ETHSW_TDMA_IRQ_STAT_ACK_TCV_ACK_Pos (0UL) /*!< TCV_ACK (Bit 0) */ + #define R_ETHSW_TDMA_IRQ_STAT_ACK_TCV_ACK_Msk (0x1UL) /*!< TCV_ACK (Bitfield-Mask: 0x01) */ + #define R_ETHSW_TDMA_IRQ_STAT_ACK_CTR1_ACK_Pos (13UL) /*!< CTR1_ACK (Bit 13) */ + #define R_ETHSW_TDMA_IRQ_STAT_ACK_CTR1_ACK_Msk (0x2000UL) /*!< CTR1_ACK (Bitfield-Mask: 0x01) */ +/* ======================================================= TDMA_GPIO ======================================================= */ + #define R_ETHSW_TDMA_GPIO_GPIO_STATUS_Pos (0UL) /*!< GPIO_STATUS (Bit 0) */ + #define R_ETHSW_TDMA_GPIO_GPIO_STATUS_Msk (0xffUL) /*!< GPIO_STATUS (Bitfield-Mask: 0xff) */ + #define R_ETHSW_TDMA_GPIO_GPIO_MODE_Pos (16UL) /*!< GPIO_MODE (Bit 16) */ + #define R_ETHSW_TDMA_GPIO_GPIO_MODE_Msk (0xffff0000UL) /*!< GPIO_MODE (Bitfield-Mask: 0xffff) */ +/* ==================================================== RXMATCH_CONFIG ===================================================== */ + #define R_ETHSW_RXMATCH_CONFIG_PATTERN_EN_Pos (0UL) /*!< PATTERN_EN (Bit 0) */ + #define R_ETHSW_RXMATCH_CONFIG_PATTERN_EN_Msk (0xfffUL) /*!< PATTERN_EN (Bitfield-Mask: 0xfff) */ +/* ===================================================== PATTERN_CTRL ====================================================== */ + #define R_ETHSW_PATTERN_CTRL_MATCH_NOT_Pos (0UL) /*!< MATCH_NOT (Bit 0) */ + #define R_ETHSW_PATTERN_CTRL_MATCH_NOT_Msk (0x1UL) /*!< MATCH_NOT (Bitfield-Mask: 0x01) */ + #define R_ETHSW_PATTERN_CTRL_MGMTFWD_Pos (1UL) /*!< MGMTFWD (Bit 1) */ + #define R_ETHSW_PATTERN_CTRL_MGMTFWD_Msk (0x2UL) /*!< MGMTFWD (Bitfield-Mask: 0x01) */ + #define R_ETHSW_PATTERN_CTRL_DISCARD_Pos (2UL) /*!< DISCARD (Bit 2) */ + #define R_ETHSW_PATTERN_CTRL_DISCARD_Msk (0x4UL) /*!< DISCARD (Bitfield-Mask: 0x01) */ + #define R_ETHSW_PATTERN_CTRL_SET_PRIO_Pos (3UL) /*!< SET_PRIO (Bit 3) */ + #define R_ETHSW_PATTERN_CTRL_SET_PRIO_Msk (0x8UL) /*!< SET_PRIO (Bitfield-Mask: 0x01) */ + #define R_ETHSW_PATTERN_CTRL_MODE_Pos (4UL) /*!< MODE (Bit 4) */ + #define R_ETHSW_PATTERN_CTRL_MODE_Msk (0x30UL) /*!< MODE (Bitfield-Mask: 0x03) */ + #define R_ETHSW_PATTERN_CTRL_TIMER_SEL_OVR_Pos (6UL) /*!< TIMER_SEL_OVR (Bit 6) */ + #define R_ETHSW_PATTERN_CTRL_TIMER_SEL_OVR_Msk (0x40UL) /*!< TIMER_SEL_OVR (Bitfield-Mask: 0x01) */ + #define R_ETHSW_PATTERN_CTRL_FORCE_FORWARD_Pos (7UL) /*!< FORCE_FORWARD (Bit 7) */ + #define R_ETHSW_PATTERN_CTRL_FORCE_FORWARD_Msk (0x80UL) /*!< FORCE_FORWARD (Bitfield-Mask: 0x01) */ + #define R_ETHSW_PATTERN_CTRL_HUBTRIGGER_Pos (8UL) /*!< HUBTRIGGER (Bit 8) */ + #define R_ETHSW_PATTERN_CTRL_HUBTRIGGER_Msk (0x100UL) /*!< HUBTRIGGER (Bitfield-Mask: 0x01) */ + #define R_ETHSW_PATTERN_CTRL_MATCH_RED_Pos (9UL) /*!< MATCH_RED (Bit 9) */ + #define R_ETHSW_PATTERN_CTRL_MATCH_RED_Msk (0x200UL) /*!< MATCH_RED (Bitfield-Mask: 0x01) */ + #define R_ETHSW_PATTERN_CTRL_MATCH_NOT_RED_Pos (10UL) /*!< MATCH_NOT_RED (Bit 10) */ + #define R_ETHSW_PATTERN_CTRL_MATCH_NOT_RED_Msk (0x400UL) /*!< MATCH_NOT_RED (Bitfield-Mask: 0x01) */ + #define R_ETHSW_PATTERN_CTRL_VLAN_SKIP_Pos (11UL) /*!< VLAN_SKIP (Bit 11) */ + #define R_ETHSW_PATTERN_CTRL_VLAN_SKIP_Msk (0x800UL) /*!< VLAN_SKIP (Bitfield-Mask: 0x01) */ + #define R_ETHSW_PATTERN_CTRL_PRIORITY_Pos (12UL) /*!< PRIORITY (Bit 12) */ + #define R_ETHSW_PATTERN_CTRL_PRIORITY_Msk (0x7000UL) /*!< PRIORITY (Bitfield-Mask: 0x07) */ + #define R_ETHSW_PATTERN_CTRL_LEARNING_DIS_Pos (15UL) /*!< LEARNING_DIS (Bit 15) */ + #define R_ETHSW_PATTERN_CTRL_LEARNING_DIS_Msk (0x8000UL) /*!< LEARNING_DIS (Bitfield-Mask: 0x01) */ + #define R_ETHSW_PATTERN_CTRL_PORTMASK_Pos (16UL) /*!< PORTMASK (Bit 16) */ + #define R_ETHSW_PATTERN_CTRL_PORTMASK_Msk (0xf0000UL) /*!< PORTMASK (Bitfield-Mask: 0x0f) */ + #define R_ETHSW_PATTERN_CTRL_IMC_TRIGGER_Pos (22UL) /*!< IMC_TRIGGER (Bit 22) */ + #define R_ETHSW_PATTERN_CTRL_IMC_TRIGGER_Msk (0x400000UL) /*!< IMC_TRIGGER (Bitfield-Mask: 0x01) */ + #define R_ETHSW_PATTERN_CTRL_IMC_TRIGGER_DLY_Pos (23UL) /*!< IMC_TRIGGER_DLY (Bit 23) */ + #define R_ETHSW_PATTERN_CTRL_IMC_TRIGGER_DLY_Msk (0x800000UL) /*!< IMC_TRIGGER_DLY (Bitfield-Mask: 0x01) */ + #define R_ETHSW_PATTERN_CTRL_SWAP_BYTES_Pos (24UL) /*!< SWAP_BYTES (Bit 24) */ + #define R_ETHSW_PATTERN_CTRL_SWAP_BYTES_Msk (0x1000000UL) /*!< SWAP_BYTES (Bitfield-Mask: 0x01) */ + #define R_ETHSW_PATTERN_CTRL_MATCH_LT_Pos (25UL) /*!< MATCH_LT (Bit 25) */ + #define R_ETHSW_PATTERN_CTRL_MATCH_LT_Msk (0x2000000UL) /*!< MATCH_LT (Bitfield-Mask: 0x01) */ + #define R_ETHSW_PATTERN_CTRL_TIMER_SEL_Pos (26UL) /*!< TIMER_SEL (Bit 26) */ + #define R_ETHSW_PATTERN_CTRL_TIMER_SEL_Msk (0x4000000UL) /*!< TIMER_SEL (Bitfield-Mask: 0x01) */ + #define R_ETHSW_PATTERN_CTRL_QUEUESEL_Pos (28UL) /*!< QUEUESEL (Bit 28) */ + #define R_ETHSW_PATTERN_CTRL_QUEUESEL_Msk (0xf0000000UL) /*!< QUEUESEL (Bitfield-Mask: 0x0f) */ +/* ================================================== PATTERN_IRQ_CONTROL ================================================== */ + #define R_ETHSW_PATTERN_IRQ_CONTROL_MATCHINT_Pos (0UL) /*!< MATCHINT (Bit 0) */ + #define R_ETHSW_PATTERN_IRQ_CONTROL_MATCHINT_Msk (0xfffUL) /*!< MATCHINT (Bitfield-Mask: 0xfff) */ + #define R_ETHSW_PATTERN_IRQ_CONTROL_ERROR_INT_Pos (16UL) /*!< ERROR_INT (Bit 16) */ + #define R_ETHSW_PATTERN_IRQ_CONTROL_ERROR_INT_Msk (0xf0000UL) /*!< ERROR_INT (Bitfield-Mask: 0x0f) */ +/* ================================================= PATTERN_IRQ_STAT_ACK ================================================== */ + #define R_ETHSW_PATTERN_IRQ_STAT_ACK_MATCHINT_Pos (0UL) /*!< MATCHINT (Bit 0) */ + #define R_ETHSW_PATTERN_IRQ_STAT_ACK_MATCHINT_Msk (0xfffUL) /*!< MATCHINT (Bitfield-Mask: 0xfff) */ + #define R_ETHSW_PATTERN_IRQ_STAT_ACK_ERROR_INT_Pos (16UL) /*!< ERROR_INT (Bit 16) */ + #define R_ETHSW_PATTERN_IRQ_STAT_ACK_ERROR_INT_Msk (0xf0000UL) /*!< ERROR_INT (Bitfield-Mask: 0x0f) */ +/* ====================================================== PTRN_VLANID ====================================================== */ + #define R_ETHSW_PTRN_VLANID_PTRN_VLANID_Pos (0UL) /*!< PTRN_VLANID (Bit 0) */ + #define R_ETHSW_PTRN_VLANID_PTRN_VLANID_Msk (0xffffUL) /*!< PTRN_VLANID (Bitfield-Mask: 0xffff) */ +/* ====================================================== PATTERN_SEL ====================================================== */ + #define R_ETHSW_PATTERN_SEL_PATTERN_SEL_Pos (0UL) /*!< PATTERN_SEL (Bit 0) */ + #define R_ETHSW_PATTERN_SEL_PATTERN_SEL_Msk (0xfUL) /*!< PATTERN_SEL (Bitfield-Mask: 0x0f) */ +/* ====================================================== PTRN_CMP_30 ====================================================== */ + #define R_ETHSW_PTRN_CMP_30_PTRN_CMP_30_Pos (0UL) /*!< PTRN_CMP_30 (Bit 0) */ + #define R_ETHSW_PTRN_CMP_30_PTRN_CMP_30_Msk (0xffffffffUL) /*!< PTRN_CMP_30 (Bitfield-Mask: 0xffffffff) */ +/* ====================================================== PTRN_CMP_74 ====================================================== */ + #define R_ETHSW_PTRN_CMP_74_PTRN_CMP_74_Pos (0UL) /*!< PTRN_CMP_74 (Bit 0) */ + #define R_ETHSW_PTRN_CMP_74_PTRN_CMP_74_Msk (0xffffffffUL) /*!< PTRN_CMP_74 (Bitfield-Mask: 0xffffffff) */ +/* ===================================================== PTRN_CMP_118 ====================================================== */ + #define R_ETHSW_PTRN_CMP_118_PTRN_CMP_118_Pos (0UL) /*!< PTRN_CMP_118 (Bit 0) */ + #define R_ETHSW_PTRN_CMP_118_PTRN_CMP_118_Msk (0xffffffffUL) /*!< PTRN_CMP_118 (Bitfield-Mask: 0xffffffff) */ +/* ====================================================== PTRN_MSK_30 ====================================================== */ + #define R_ETHSW_PTRN_MSK_30_PTRN_MSK_30_Pos (0UL) /*!< PTRN_MSK_30 (Bit 0) */ + #define R_ETHSW_PTRN_MSK_30_PTRN_MSK_30_Msk (0xffffffffUL) /*!< PTRN_MSK_30 (Bitfield-Mask: 0xffffffff) */ +/* ====================================================== PTRN_MSK_74 ====================================================== */ + #define R_ETHSW_PTRN_MSK_74_PTRN_MSK_74_Pos (0UL) /*!< PTRN_MSK_74 (Bit 0) */ + #define R_ETHSW_PTRN_MSK_74_PTRN_MSK_74_Msk (0xffffffffUL) /*!< PTRN_MSK_74 (Bitfield-Mask: 0xffffffff) */ +/* ===================================================== PTRN_MSK_118 ====================================================== */ + #define R_ETHSW_PTRN_MSK_118_PTRN_MSK_118_Pos (0UL) /*!< PTRN_MSK_118 (Bit 0) */ + #define R_ETHSW_PTRN_MSK_118_PTRN_MSK_118_Msk (0xffffffffUL) /*!< PTRN_MSK_118 (Bitfield-Mask: 0xffffffff) */ + +/* =========================================================================================================================== */ +/* ================ R_ESC ================ */ +/* =========================================================================================================================== */ + +/* ========================================================= TYPE ========================================================== */ + #define R_ESC_TYPE_TYPE_Pos (0UL) /*!< TYPE (Bit 0) */ + #define R_ESC_TYPE_TYPE_Msk (0xffUL) /*!< TYPE (Bitfield-Mask: 0xff) */ +/* ======================================================= REVISION ======================================================== */ + #define R_ESC_REVISION_REV_Pos (0UL) /*!< REV (Bit 0) */ + #define R_ESC_REVISION_REV_Msk (0xffUL) /*!< REV (Bitfield-Mask: 0xff) */ +/* ========================================================= BUILD ========================================================= */ + #define R_ESC_BUILD_BUILD_Pos (0UL) /*!< BUILD (Bit 0) */ + #define R_ESC_BUILD_BUILD_Msk (0xffUL) /*!< BUILD (Bitfield-Mask: 0xff) */ +/* ======================================================= FMMU_NUM ======================================================== */ + #define R_ESC_FMMU_NUM_NUMFMMU_Pos (0UL) /*!< NUMFMMU (Bit 0) */ + #define R_ESC_FMMU_NUM_NUMFMMU_Msk (0xffUL) /*!< NUMFMMU (Bitfield-Mask: 0xff) */ +/* ===================================================== SYNC_MANAGER ====================================================== */ + #define R_ESC_SYNC_MANAGER_NUMSYNC_Pos (0UL) /*!< NUMSYNC (Bit 0) */ + #define R_ESC_SYNC_MANAGER_NUMSYNC_Msk (0xffUL) /*!< NUMSYNC (Bitfield-Mask: 0xff) */ +/* ======================================================= RAM_SIZE ======================================================== */ + #define R_ESC_RAM_SIZE_RAMSIZE_Pos (0UL) /*!< RAMSIZE (Bit 0) */ + #define R_ESC_RAM_SIZE_RAMSIZE_Msk (0xffUL) /*!< RAMSIZE (Bitfield-Mask: 0xff) */ +/* ======================================================= PORT_DESC ======================================================= */ + #define R_ESC_PORT_DESC_P0_Pos (0UL) /*!< P0 (Bit 0) */ + #define R_ESC_PORT_DESC_P0_Msk (0x3UL) /*!< P0 (Bitfield-Mask: 0x03) */ + #define R_ESC_PORT_DESC_P1_Pos (2UL) /*!< P1 (Bit 2) */ + #define R_ESC_PORT_DESC_P1_Msk (0xcUL) /*!< P1 (Bitfield-Mask: 0x03) */ + #define R_ESC_PORT_DESC_P2_Pos (4UL) /*!< P2 (Bit 4) */ + #define R_ESC_PORT_DESC_P2_Msk (0x30UL) /*!< P2 (Bitfield-Mask: 0x03) */ + #define R_ESC_PORT_DESC_P3_Pos (6UL) /*!< P3 (Bit 6) */ + #define R_ESC_PORT_DESC_P3_Msk (0xc0UL) /*!< P3 (Bitfield-Mask: 0x03) */ +/* ======================================================== FEATURE ======================================================== */ + #define R_ESC_FEATURE_FMMU_Pos (0UL) /*!< FMMU (Bit 0) */ + #define R_ESC_FEATURE_FMMU_Msk (0x1UL) /*!< FMMU (Bitfield-Mask: 0x01) */ + #define R_ESC_FEATURE_DC_Pos (2UL) /*!< DC (Bit 2) */ + #define R_ESC_FEATURE_DC_Msk (0x4UL) /*!< DC (Bitfield-Mask: 0x01) */ + #define R_ESC_FEATURE_DCWID_Pos (3UL) /*!< DCWID (Bit 3) */ + #define R_ESC_FEATURE_DCWID_Msk (0x8UL) /*!< DCWID (Bitfield-Mask: 0x01) */ + #define R_ESC_FEATURE_LINKDECMII_Pos (6UL) /*!< LINKDECMII (Bit 6) */ + #define R_ESC_FEATURE_LINKDECMII_Msk (0x40UL) /*!< LINKDECMII (Bitfield-Mask: 0x01) */ + #define R_ESC_FEATURE_FCS_Pos (7UL) /*!< FCS (Bit 7) */ + #define R_ESC_FEATURE_FCS_Msk (0x80UL) /*!< FCS (Bitfield-Mask: 0x01) */ + #define R_ESC_FEATURE_DCSYNC_Pos (8UL) /*!< DCSYNC (Bit 8) */ + #define R_ESC_FEATURE_DCSYNC_Msk (0x100UL) /*!< DCSYNC (Bitfield-Mask: 0x01) */ + #define R_ESC_FEATURE_LRW_Pos (9UL) /*!< LRW (Bit 9) */ + #define R_ESC_FEATURE_LRW_Msk (0x200UL) /*!< LRW (Bitfield-Mask: 0x01) */ + #define R_ESC_FEATURE_RWSUPP_Pos (10UL) /*!< RWSUPP (Bit 10) */ + #define R_ESC_FEATURE_RWSUPP_Msk (0x400UL) /*!< RWSUPP (Bitfield-Mask: 0x01) */ + #define R_ESC_FEATURE_FSCONFIG_Pos (11UL) /*!< FSCONFIG (Bit 11) */ + #define R_ESC_FEATURE_FSCONFIG_Msk (0x800UL) /*!< FSCONFIG (Bitfield-Mask: 0x01) */ +/* ====================================================== STATION_ADR ====================================================== */ + #define R_ESC_STATION_ADR_NODADDR_Pos (0UL) /*!< NODADDR (Bit 0) */ + #define R_ESC_STATION_ADR_NODADDR_Msk (0xffffUL) /*!< NODADDR (Bitfield-Mask: 0xffff) */ +/* ===================================================== STATION_ALIAS ===================================================== */ + #define R_ESC_STATION_ALIAS_NODALIADDR_Pos (0UL) /*!< NODALIADDR (Bit 0) */ + #define R_ESC_STATION_ALIAS_NODALIADDR_Msk (0xffffUL) /*!< NODALIADDR (Bitfield-Mask: 0xffff) */ +/* ===================================================== WR_REG_ENABLE ===================================================== */ + #define R_ESC_WR_REG_ENABLE_ENABLE_Pos (0UL) /*!< ENABLE (Bit 0) */ + #define R_ESC_WR_REG_ENABLE_ENABLE_Msk (0x1UL) /*!< ENABLE (Bitfield-Mask: 0x01) */ +/* ==================================================== WR_REG_PROTECT ===================================================== */ + #define R_ESC_WR_REG_PROTECT_PROTECT_Pos (0UL) /*!< PROTECT (Bit 0) */ + #define R_ESC_WR_REG_PROTECT_PROTECT_Msk (0x1UL) /*!< PROTECT (Bitfield-Mask: 0x01) */ +/* ===================================================== ESC_WR_ENABLE ===================================================== */ + #define R_ESC_ESC_WR_ENABLE_ENABLE_Pos (0UL) /*!< ENABLE (Bit 0) */ + #define R_ESC_ESC_WR_ENABLE_ENABLE_Msk (0x1UL) /*!< ENABLE (Bitfield-Mask: 0x01) */ +/* ==================================================== ESC_WR_PROTECT ===================================================== */ + #define R_ESC_ESC_WR_PROTECT_PROTECT_Pos (0UL) /*!< PROTECT (Bit 0) */ + #define R_ESC_ESC_WR_PROTECT_PROTECT_Msk (0x1UL) /*!< PROTECT (Bitfield-Mask: 0x01) */ +/* =================================================== ESC_RESET_ECAT_R ==================================================== */ + #define R_ESC_ESC_RESET_ECAT_R_RESET_ECAT_Pos (0UL) /*!< RESET_ECAT (Bit 0) */ + #define R_ESC_ESC_RESET_ECAT_R_RESET_ECAT_Msk (0x3UL) /*!< RESET_ECAT (Bitfield-Mask: 0x03) */ +/* =================================================== ESC_RESET_ECAT_W ==================================================== */ + #define R_ESC_ESC_RESET_ECAT_W_RESET_ECAT_Pos (0UL) /*!< RESET_ECAT (Bit 0) */ + #define R_ESC_ESC_RESET_ECAT_W_RESET_ECAT_Msk (0xffUL) /*!< RESET_ECAT (Bitfield-Mask: 0xff) */ +/* ==================================================== ESC_RESET_PDI_R ==================================================== */ + #define R_ESC_ESC_RESET_PDI_R_RESET_PDI_Pos (0UL) /*!< RESET_PDI (Bit 0) */ + #define R_ESC_ESC_RESET_PDI_R_RESET_PDI_Msk (0x3UL) /*!< RESET_PDI (Bitfield-Mask: 0x03) */ +/* ==================================================== ESC_RESET_PDI_W ==================================================== */ + #define R_ESC_ESC_RESET_PDI_W_RESET_PDI_Pos (0UL) /*!< RESET_PDI (Bit 0) */ + #define R_ESC_ESC_RESET_PDI_W_RESET_PDI_Msk (0xffUL) /*!< RESET_PDI (Bitfield-Mask: 0xff) */ +/* ==================================================== ESC_DL_CONTROL ===================================================== */ + #define R_ESC_ESC_DL_CONTROL_FWDRULE_Pos (0UL) /*!< FWDRULE (Bit 0) */ + #define R_ESC_ESC_DL_CONTROL_FWDRULE_Msk (0x1UL) /*!< FWDRULE (Bitfield-Mask: 0x01) */ + #define R_ESC_ESC_DL_CONTROL_TEMPUSE_Pos (1UL) /*!< TEMPUSE (Bit 1) */ + #define R_ESC_ESC_DL_CONTROL_TEMPUSE_Msk (0x2UL) /*!< TEMPUSE (Bitfield-Mask: 0x01) */ + #define R_ESC_ESC_DL_CONTROL_LP0_Pos (8UL) /*!< LP0 (Bit 8) */ + #define R_ESC_ESC_DL_CONTROL_LP0_Msk (0x300UL) /*!< LP0 (Bitfield-Mask: 0x03) */ + #define R_ESC_ESC_DL_CONTROL_LP1_Pos (10UL) /*!< LP1 (Bit 10) */ + #define R_ESC_ESC_DL_CONTROL_LP1_Msk (0xc00UL) /*!< LP1 (Bitfield-Mask: 0x03) */ + #define R_ESC_ESC_DL_CONTROL_LP2_Pos (12UL) /*!< LP2 (Bit 12) */ + #define R_ESC_ESC_DL_CONTROL_LP2_Msk (0x3000UL) /*!< LP2 (Bitfield-Mask: 0x03) */ + #define R_ESC_ESC_DL_CONTROL_LP3_Pos (14UL) /*!< LP3 (Bit 14) */ + #define R_ESC_ESC_DL_CONTROL_LP3_Msk (0xc000UL) /*!< LP3 (Bitfield-Mask: 0x03) */ + #define R_ESC_ESC_DL_CONTROL_RXFIFO_Pos (16UL) /*!< RXFIFO (Bit 16) */ + #define R_ESC_ESC_DL_CONTROL_RXFIFO_Msk (0x70000UL) /*!< RXFIFO (Bitfield-Mask: 0x07) */ + #define R_ESC_ESC_DL_CONTROL_STAALIAS_Pos (24UL) /*!< STAALIAS (Bit 24) */ + #define R_ESC_ESC_DL_CONTROL_STAALIAS_Msk (0x1000000UL) /*!< STAALIAS (Bitfield-Mask: 0x01) */ +/* ================================================== PHYSICAL_RW_OFFSET =================================================== */ + #define R_ESC_PHYSICAL_RW_OFFSET_RWOFFSET_Pos (0UL) /*!< RWOFFSET (Bit 0) */ + #define R_ESC_PHYSICAL_RW_OFFSET_RWOFFSET_Msk (0xffffUL) /*!< RWOFFSET (Bitfield-Mask: 0xffff) */ +/* ===================================================== ESC_DL_STATUS ===================================================== */ + #define R_ESC_ESC_DL_STATUS_PDIOPE_Pos (0UL) /*!< PDIOPE (Bit 0) */ + #define R_ESC_ESC_DL_STATUS_PDIOPE_Msk (0x1UL) /*!< PDIOPE (Bitfield-Mask: 0x01) */ + #define R_ESC_ESC_DL_STATUS_PDIWDST_Pos (1UL) /*!< PDIWDST (Bit 1) */ + #define R_ESC_ESC_DL_STATUS_PDIWDST_Msk (0x2UL) /*!< PDIWDST (Bitfield-Mask: 0x01) */ + #define R_ESC_ESC_DL_STATUS_ENHLINKD_Pos (2UL) /*!< ENHLINKD (Bit 2) */ + #define R_ESC_ESC_DL_STATUS_ENHLINKD_Msk (0x4UL) /*!< ENHLINKD (Bitfield-Mask: 0x01) */ + #define R_ESC_ESC_DL_STATUS_PHYP0_Pos (4UL) /*!< PHYP0 (Bit 4) */ + #define R_ESC_ESC_DL_STATUS_PHYP0_Msk (0x10UL) /*!< PHYP0 (Bitfield-Mask: 0x01) */ + #define R_ESC_ESC_DL_STATUS_PHYP1_Pos (5UL) /*!< PHYP1 (Bit 5) */ + #define R_ESC_ESC_DL_STATUS_PHYP1_Msk (0x20UL) /*!< PHYP1 (Bitfield-Mask: 0x01) */ + #define R_ESC_ESC_DL_STATUS_PHYP2_Pos (6UL) /*!< PHYP2 (Bit 6) */ + #define R_ESC_ESC_DL_STATUS_PHYP2_Msk (0x40UL) /*!< PHYP2 (Bitfield-Mask: 0x01) */ + #define R_ESC_ESC_DL_STATUS_PHYP3_Pos (7UL) /*!< PHYP3 (Bit 7) */ + #define R_ESC_ESC_DL_STATUS_PHYP3_Msk (0x80UL) /*!< PHYP3 (Bitfield-Mask: 0x01) */ + #define R_ESC_ESC_DL_STATUS_LP0_Pos (8UL) /*!< LP0 (Bit 8) */ + #define R_ESC_ESC_DL_STATUS_LP0_Msk (0x100UL) /*!< LP0 (Bitfield-Mask: 0x01) */ + #define R_ESC_ESC_DL_STATUS_COMP0_Pos (9UL) /*!< COMP0 (Bit 9) */ + #define R_ESC_ESC_DL_STATUS_COMP0_Msk (0x200UL) /*!< COMP0 (Bitfield-Mask: 0x01) */ + #define R_ESC_ESC_DL_STATUS_LP1_Pos (10UL) /*!< LP1 (Bit 10) */ + #define R_ESC_ESC_DL_STATUS_LP1_Msk (0x400UL) /*!< LP1 (Bitfield-Mask: 0x01) */ + #define R_ESC_ESC_DL_STATUS_COMP1_Pos (11UL) /*!< COMP1 (Bit 11) */ + #define R_ESC_ESC_DL_STATUS_COMP1_Msk (0x800UL) /*!< COMP1 (Bitfield-Mask: 0x01) */ + #define R_ESC_ESC_DL_STATUS_LP2_Pos (12UL) /*!< LP2 (Bit 12) */ + #define R_ESC_ESC_DL_STATUS_LP2_Msk (0x1000UL) /*!< LP2 (Bitfield-Mask: 0x01) */ + #define R_ESC_ESC_DL_STATUS_COMP2_Pos (13UL) /*!< COMP2 (Bit 13) */ + #define R_ESC_ESC_DL_STATUS_COMP2_Msk (0x2000UL) /*!< COMP2 (Bitfield-Mask: 0x01) */ + #define R_ESC_ESC_DL_STATUS_LP3_Pos (14UL) /*!< LP3 (Bit 14) */ + #define R_ESC_ESC_DL_STATUS_LP3_Msk (0x4000UL) /*!< LP3 (Bitfield-Mask: 0x01) */ + #define R_ESC_ESC_DL_STATUS_COMP3_Pos (15UL) /*!< COMP3 (Bit 15) */ + #define R_ESC_ESC_DL_STATUS_COMP3_Msk (0x8000UL) /*!< COMP3 (Bitfield-Mask: 0x01) */ +/* ====================================================== AL_CONTROL ======================================================= */ + #define R_ESC_AL_CONTROL_INISTATE_Pos (0UL) /*!< INISTATE (Bit 0) */ + #define R_ESC_AL_CONTROL_INISTATE_Msk (0xfUL) /*!< INISTATE (Bitfield-Mask: 0x0f) */ + #define R_ESC_AL_CONTROL_ERRINDACK_Pos (4UL) /*!< ERRINDACK (Bit 4) */ + #define R_ESC_AL_CONTROL_ERRINDACK_Msk (0x10UL) /*!< ERRINDACK (Bitfield-Mask: 0x01) */ + #define R_ESC_AL_CONTROL_DEVICEID_Pos (5UL) /*!< DEVICEID (Bit 5) */ + #define R_ESC_AL_CONTROL_DEVICEID_Msk (0x20UL) /*!< DEVICEID (Bitfield-Mask: 0x01) */ +/* ======================================================= AL_STATUS ======================================================= */ + #define R_ESC_AL_STATUS_ACTSTATE_Pos (0UL) /*!< ACTSTATE (Bit 0) */ + #define R_ESC_AL_STATUS_ACTSTATE_Msk (0xfUL) /*!< ACTSTATE (Bitfield-Mask: 0x0f) */ + #define R_ESC_AL_STATUS_ERR_Pos (4UL) /*!< ERR (Bit 4) */ + #define R_ESC_AL_STATUS_ERR_Msk (0x10UL) /*!< ERR (Bitfield-Mask: 0x01) */ + #define R_ESC_AL_STATUS_DEVICEID_Pos (5UL) /*!< DEVICEID (Bit 5) */ + #define R_ESC_AL_STATUS_DEVICEID_Msk (0x20UL) /*!< DEVICEID (Bitfield-Mask: 0x01) */ +/* ==================================================== AL_STATUS_CODE ===================================================== */ + #define R_ESC_AL_STATUS_CODE_STATUSCODE_Pos (0UL) /*!< STATUSCODE (Bit 0) */ + #define R_ESC_AL_STATUS_CODE_STATUSCODE_Msk (0xffffUL) /*!< STATUSCODE (Bitfield-Mask: 0xffff) */ +/* =================================================== RUN_LED_OVERRIDE ==================================================== */ + #define R_ESC_RUN_LED_OVERRIDE_LEDCODE_Pos (0UL) /*!< LEDCODE (Bit 0) */ + #define R_ESC_RUN_LED_OVERRIDE_LEDCODE_Msk (0xfUL) /*!< LEDCODE (Bitfield-Mask: 0x0f) */ + #define R_ESC_RUN_LED_OVERRIDE_OVERRIDEEN_Pos (4UL) /*!< OVERRIDEEN (Bit 4) */ + #define R_ESC_RUN_LED_OVERRIDE_OVERRIDEEN_Msk (0x10UL) /*!< OVERRIDEEN (Bitfield-Mask: 0x01) */ +/* =================================================== ERR_LED_OVERRIDE ==================================================== */ + #define R_ESC_ERR_LED_OVERRIDE_LEDCODE_Pos (0UL) /*!< LEDCODE (Bit 0) */ + #define R_ESC_ERR_LED_OVERRIDE_LEDCODE_Msk (0xfUL) /*!< LEDCODE (Bitfield-Mask: 0x0f) */ + #define R_ESC_ERR_LED_OVERRIDE_OVERRIDEEN_Pos (4UL) /*!< OVERRIDEEN (Bit 4) */ + #define R_ESC_ERR_LED_OVERRIDE_OVERRIDEEN_Msk (0x10UL) /*!< OVERRIDEEN (Bitfield-Mask: 0x01) */ +/* ====================================================== PDI_CONTROL ====================================================== */ + #define R_ESC_PDI_CONTROL_PDI_Pos (0UL) /*!< PDI (Bit 0) */ + #define R_ESC_PDI_CONTROL_PDI_Msk (0xffUL) /*!< PDI (Bitfield-Mask: 0xff) */ +/* ====================================================== ESC_CONFIG ======================================================= */ + #define R_ESC_ESC_CONFIG_DEVEMU_Pos (0UL) /*!< DEVEMU (Bit 0) */ + #define R_ESC_ESC_CONFIG_DEVEMU_Msk (0x1UL) /*!< DEVEMU (Bitfield-Mask: 0x01) */ + #define R_ESC_ESC_CONFIG_ENLALLP_Pos (1UL) /*!< ENLALLP (Bit 1) */ + #define R_ESC_ESC_CONFIG_ENLALLP_Msk (0x2UL) /*!< ENLALLP (Bitfield-Mask: 0x01) */ + #define R_ESC_ESC_CONFIG_DCSYNC_Pos (2UL) /*!< DCSYNC (Bit 2) */ + #define R_ESC_ESC_CONFIG_DCSYNC_Msk (0x4UL) /*!< DCSYNC (Bitfield-Mask: 0x01) */ + #define R_ESC_ESC_CONFIG_DCLATCH_Pos (3UL) /*!< DCLATCH (Bit 3) */ + #define R_ESC_ESC_CONFIG_DCLATCH_Msk (0x8UL) /*!< DCLATCH (Bitfield-Mask: 0x01) */ + #define R_ESC_ESC_CONFIG_ENLP0_Pos (4UL) /*!< ENLP0 (Bit 4) */ + #define R_ESC_ESC_CONFIG_ENLP0_Msk (0x10UL) /*!< ENLP0 (Bitfield-Mask: 0x01) */ + #define R_ESC_ESC_CONFIG_ENLP1_Pos (5UL) /*!< ENLP1 (Bit 5) */ + #define R_ESC_ESC_CONFIG_ENLP1_Msk (0x20UL) /*!< ENLP1 (Bitfield-Mask: 0x01) */ + #define R_ESC_ESC_CONFIG_ENLP2_Pos (6UL) /*!< ENLP2 (Bit 6) */ + #define R_ESC_ESC_CONFIG_ENLP2_Msk (0x40UL) /*!< ENLP2 (Bitfield-Mask: 0x01) */ + #define R_ESC_ESC_CONFIG_ENLP3_Pos (7UL) /*!< ENLP3 (Bit 7) */ + #define R_ESC_ESC_CONFIG_ENLP3_Msk (0x80UL) /*!< ENLP3 (Bitfield-Mask: 0x01) */ +/* ====================================================== PDI_CONFIG ======================================================= */ + #define R_ESC_PDI_CONFIG_ONCHIPBUSCLK_Pos (0UL) /*!< ONCHIPBUSCLK (Bit 0) */ + #define R_ESC_PDI_CONFIG_ONCHIPBUSCLK_Msk (0x1fUL) /*!< ONCHIPBUSCLK (Bitfield-Mask: 0x1f) */ + #define R_ESC_PDI_CONFIG_ONCHIPBUS_Pos (5UL) /*!< ONCHIPBUS (Bit 5) */ + #define R_ESC_PDI_CONFIG_ONCHIPBUS_Msk (0xe0UL) /*!< ONCHIPBUS (Bitfield-Mask: 0x07) */ +/* =================================================== SYNC_LATCH_CONFIG =================================================== */ + #define R_ESC_SYNC_LATCH_CONFIG_SYNC0OUT_Pos (0UL) /*!< SYNC0OUT (Bit 0) */ + #define R_ESC_SYNC_LATCH_CONFIG_SYNC0OUT_Msk (0x3UL) /*!< SYNC0OUT (Bitfield-Mask: 0x03) */ + #define R_ESC_SYNC_LATCH_CONFIG_SYNCLAT0_Pos (2UL) /*!< SYNCLAT0 (Bit 2) */ + #define R_ESC_SYNC_LATCH_CONFIG_SYNCLAT0_Msk (0x4UL) /*!< SYNCLAT0 (Bitfield-Mask: 0x01) */ + #define R_ESC_SYNC_LATCH_CONFIG_SYNC0MAP_Pos (3UL) /*!< SYNC0MAP (Bit 3) */ + #define R_ESC_SYNC_LATCH_CONFIG_SYNC0MAP_Msk (0x8UL) /*!< SYNC0MAP (Bitfield-Mask: 0x01) */ + #define R_ESC_SYNC_LATCH_CONFIG_SYNC1OUT_Pos (4UL) /*!< SYNC1OUT (Bit 4) */ + #define R_ESC_SYNC_LATCH_CONFIG_SYNC1OUT_Msk (0x30UL) /*!< SYNC1OUT (Bitfield-Mask: 0x03) */ + #define R_ESC_SYNC_LATCH_CONFIG_SYNCLAT1_Pos (6UL) /*!< SYNCLAT1 (Bit 6) */ + #define R_ESC_SYNC_LATCH_CONFIG_SYNCLAT1_Msk (0x40UL) /*!< SYNCLAT1 (Bitfield-Mask: 0x01) */ + #define R_ESC_SYNC_LATCH_CONFIG_SYNC1MAP_Pos (7UL) /*!< SYNC1MAP (Bit 7) */ + #define R_ESC_SYNC_LATCH_CONFIG_SYNC1MAP_Msk (0x80UL) /*!< SYNC1MAP (Bitfield-Mask: 0x01) */ +/* ==================================================== EXT_PDI_CONFIG ===================================================== */ + #define R_ESC_EXT_PDI_CONFIG_DATABUSWID_Pos (0UL) /*!< DATABUSWID (Bit 0) */ + #define R_ESC_EXT_PDI_CONFIG_DATABUSWID_Msk (0x3UL) /*!< DATABUSWID (Bitfield-Mask: 0x03) */ +/* ==================================================== ECAT_EVENT_MASK ==================================================== */ + #define R_ESC_ECAT_EVENT_MASK_ECATEVMASK_Pos (0UL) /*!< ECATEVMASK (Bit 0) */ + #define R_ESC_ECAT_EVENT_MASK_ECATEVMASK_Msk (0xffffUL) /*!< ECATEVMASK (Bitfield-Mask: 0xffff) */ +/* ===================================================== AL_EVENT_MASK ===================================================== */ + #define R_ESC_AL_EVENT_MASK_ALEVMASK_Pos (0UL) /*!< ALEVMASK (Bit 0) */ + #define R_ESC_AL_EVENT_MASK_ALEVMASK_Msk (0xffffffffUL) /*!< ALEVMASK (Bitfield-Mask: 0xffffffff) */ +/* ==================================================== ECAT_EVENT_REQ ===================================================== */ + #define R_ESC_ECAT_EVENT_REQ_DCLATCH_Pos (0UL) /*!< DCLATCH (Bit 0) */ + #define R_ESC_ECAT_EVENT_REQ_DCLATCH_Msk (0x1UL) /*!< DCLATCH (Bitfield-Mask: 0x01) */ + #define R_ESC_ECAT_EVENT_REQ_DLSTA_Pos (2UL) /*!< DLSTA (Bit 2) */ + #define R_ESC_ECAT_EVENT_REQ_DLSTA_Msk (0x4UL) /*!< DLSTA (Bitfield-Mask: 0x01) */ + #define R_ESC_ECAT_EVENT_REQ_ALSTA_Pos (3UL) /*!< ALSTA (Bit 3) */ + #define R_ESC_ECAT_EVENT_REQ_ALSTA_Msk (0x8UL) /*!< ALSTA (Bitfield-Mask: 0x01) */ + #define R_ESC_ECAT_EVENT_REQ_SMSTA0_Pos (4UL) /*!< SMSTA0 (Bit 4) */ + #define R_ESC_ECAT_EVENT_REQ_SMSTA0_Msk (0x10UL) /*!< SMSTA0 (Bitfield-Mask: 0x01) */ + #define R_ESC_ECAT_EVENT_REQ_SMSTA1_Pos (5UL) /*!< SMSTA1 (Bit 5) */ + #define R_ESC_ECAT_EVENT_REQ_SMSTA1_Msk (0x20UL) /*!< SMSTA1 (Bitfield-Mask: 0x01) */ + #define R_ESC_ECAT_EVENT_REQ_SMSTA2_Pos (6UL) /*!< SMSTA2 (Bit 6) */ + #define R_ESC_ECAT_EVENT_REQ_SMSTA2_Msk (0x40UL) /*!< SMSTA2 (Bitfield-Mask: 0x01) */ + #define R_ESC_ECAT_EVENT_REQ_SMSTA3_Pos (7UL) /*!< SMSTA3 (Bit 7) */ + #define R_ESC_ECAT_EVENT_REQ_SMSTA3_Msk (0x80UL) /*!< SMSTA3 (Bitfield-Mask: 0x01) */ + #define R_ESC_ECAT_EVENT_REQ_SMSTA4_Pos (8UL) /*!< SMSTA4 (Bit 8) */ + #define R_ESC_ECAT_EVENT_REQ_SMSTA4_Msk (0x100UL) /*!< SMSTA4 (Bitfield-Mask: 0x01) */ + #define R_ESC_ECAT_EVENT_REQ_SMSTA5_Pos (9UL) /*!< SMSTA5 (Bit 9) */ + #define R_ESC_ECAT_EVENT_REQ_SMSTA5_Msk (0x200UL) /*!< SMSTA5 (Bitfield-Mask: 0x01) */ + #define R_ESC_ECAT_EVENT_REQ_SMSTA6_Pos (10UL) /*!< SMSTA6 (Bit 10) */ + #define R_ESC_ECAT_EVENT_REQ_SMSTA6_Msk (0x400UL) /*!< SMSTA6 (Bitfield-Mask: 0x01) */ + #define R_ESC_ECAT_EVENT_REQ_SMSTA7_Pos (11UL) /*!< SMSTA7 (Bit 11) */ + #define R_ESC_ECAT_EVENT_REQ_SMSTA7_Msk (0x800UL) /*!< SMSTA7 (Bitfield-Mask: 0x01) */ +/* ===================================================== AL_EVENT_REQ ====================================================== */ + #define R_ESC_AL_EVENT_REQ_ALCTRL_Pos (0UL) /*!< ALCTRL (Bit 0) */ + #define R_ESC_AL_EVENT_REQ_ALCTRL_Msk (0x1UL) /*!< ALCTRL (Bitfield-Mask: 0x01) */ + #define R_ESC_AL_EVENT_REQ_DCLATCH_Pos (1UL) /*!< DCLATCH (Bit 1) */ + #define R_ESC_AL_EVENT_REQ_DCLATCH_Msk (0x2UL) /*!< DCLATCH (Bitfield-Mask: 0x01) */ + #define R_ESC_AL_EVENT_REQ_DCSYNC0STA_Pos (2UL) /*!< DCSYNC0STA (Bit 2) */ + #define R_ESC_AL_EVENT_REQ_DCSYNC0STA_Msk (0x4UL) /*!< DCSYNC0STA (Bitfield-Mask: 0x01) */ + #define R_ESC_AL_EVENT_REQ_DCSYNC1STA_Pos (3UL) /*!< DCSYNC1STA (Bit 3) */ + #define R_ESC_AL_EVENT_REQ_DCSYNC1STA_Msk (0x8UL) /*!< DCSYNC1STA (Bitfield-Mask: 0x01) */ + #define R_ESC_AL_EVENT_REQ_SYNCACT_Pos (4UL) /*!< SYNCACT (Bit 4) */ + #define R_ESC_AL_EVENT_REQ_SYNCACT_Msk (0x10UL) /*!< SYNCACT (Bitfield-Mask: 0x01) */ + #define R_ESC_AL_EVENT_REQ_WDPD_Pos (6UL) /*!< WDPD (Bit 6) */ + #define R_ESC_AL_EVENT_REQ_WDPD_Msk (0x40UL) /*!< WDPD (Bitfield-Mask: 0x01) */ + #define R_ESC_AL_EVENT_REQ_SMINT0_Pos (8UL) /*!< SMINT0 (Bit 8) */ + #define R_ESC_AL_EVENT_REQ_SMINT0_Msk (0x100UL) /*!< SMINT0 (Bitfield-Mask: 0x01) */ + #define R_ESC_AL_EVENT_REQ_SMINT1_Pos (9UL) /*!< SMINT1 (Bit 9) */ + #define R_ESC_AL_EVENT_REQ_SMINT1_Msk (0x200UL) /*!< SMINT1 (Bitfield-Mask: 0x01) */ + #define R_ESC_AL_EVENT_REQ_SMINT2_Pos (10UL) /*!< SMINT2 (Bit 10) */ + #define R_ESC_AL_EVENT_REQ_SMINT2_Msk (0x400UL) /*!< SMINT2 (Bitfield-Mask: 0x01) */ + #define R_ESC_AL_EVENT_REQ_SMINT3_Pos (11UL) /*!< SMINT3 (Bit 11) */ + #define R_ESC_AL_EVENT_REQ_SMINT3_Msk (0x800UL) /*!< SMINT3 (Bitfield-Mask: 0x01) */ + #define R_ESC_AL_EVENT_REQ_SMINT4_Pos (12UL) /*!< SMINT4 (Bit 12) */ + #define R_ESC_AL_EVENT_REQ_SMINT4_Msk (0x1000UL) /*!< SMINT4 (Bitfield-Mask: 0x01) */ + #define R_ESC_AL_EVENT_REQ_SMINT5_Pos (13UL) /*!< SMINT5 (Bit 13) */ + #define R_ESC_AL_EVENT_REQ_SMINT5_Msk (0x2000UL) /*!< SMINT5 (Bitfield-Mask: 0x01) */ + #define R_ESC_AL_EVENT_REQ_SMINT6_Pos (14UL) /*!< SMINT6 (Bit 14) */ + #define R_ESC_AL_EVENT_REQ_SMINT6_Msk (0x4000UL) /*!< SMINT6 (Bitfield-Mask: 0x01) */ + #define R_ESC_AL_EVENT_REQ_SMINT7_Pos (15UL) /*!< SMINT7 (Bit 15) */ + #define R_ESC_AL_EVENT_REQ_SMINT7_Msk (0x8000UL) /*!< SMINT7 (Bitfield-Mask: 0x01) */ +/* ===================================================== RX_ERR_COUNT ====================================================== */ + #define R_ESC_RX_ERR_COUNT_INVFRMCNT_Pos (0UL) /*!< INVFRMCNT (Bit 0) */ + #define R_ESC_RX_ERR_COUNT_INVFRMCNT_Msk (0xffUL) /*!< INVFRMCNT (Bitfield-Mask: 0xff) */ + #define R_ESC_RX_ERR_COUNT_RXERRCNT_Pos (8UL) /*!< RXERRCNT (Bit 8) */ + #define R_ESC_RX_ERR_COUNT_RXERRCNT_Msk (0xff00UL) /*!< RXERRCNT (Bitfield-Mask: 0xff) */ +/* =================================================== FWD_RX_ERR_COUNT ==================================================== */ + #define R_ESC_FWD_RX_ERR_COUNT_FWDERRCNT_Pos (0UL) /*!< FWDERRCNT (Bit 0) */ + #define R_ESC_FWD_RX_ERR_COUNT_FWDERRCNT_Msk (0xffUL) /*!< FWDERRCNT (Bitfield-Mask: 0xff) */ +/* ================================================== ECAT_PROC_ERR_COUNT ================================================== */ + #define R_ESC_ECAT_PROC_ERR_COUNT_EPUERRCNT_Pos (0UL) /*!< EPUERRCNT (Bit 0) */ + #define R_ESC_ECAT_PROC_ERR_COUNT_EPUERRCNT_Msk (0xffUL) /*!< EPUERRCNT (Bitfield-Mask: 0xff) */ +/* ===================================================== PDI_ERR_COUNT ===================================================== */ + #define R_ESC_PDI_ERR_COUNT_PDIERRCNT_Pos (0UL) /*!< PDIERRCNT (Bit 0) */ + #define R_ESC_PDI_ERR_COUNT_PDIERRCNT_Msk (0xffUL) /*!< PDIERRCNT (Bitfield-Mask: 0xff) */ +/* ==================================================== LOST_LINK_COUNT ==================================================== */ + #define R_ESC_LOST_LINK_COUNT_LOSTLINKCNT_Pos (0UL) /*!< LOSTLINKCNT (Bit 0) */ + #define R_ESC_LOST_LINK_COUNT_LOSTLINKCNT_Msk (0xffUL) /*!< LOSTLINKCNT (Bitfield-Mask: 0xff) */ +/* ======================================================= WD_DIVIDE ======================================================= */ + #define R_ESC_WD_DIVIDE_WDDIV_Pos (0UL) /*!< WDDIV (Bit 0) */ + #define R_ESC_WD_DIVIDE_WDDIV_Msk (0xffffUL) /*!< WDDIV (Bitfield-Mask: 0xffff) */ +/* ======================================================== WDT_PDI ======================================================== */ + #define R_ESC_WDT_PDI_WDTIMPDI_Pos (0UL) /*!< WDTIMPDI (Bit 0) */ + #define R_ESC_WDT_PDI_WDTIMPDI_Msk (0xffffUL) /*!< WDTIMPDI (Bitfield-Mask: 0xffff) */ +/* ======================================================= WDT_DATA ======================================================== */ + #define R_ESC_WDT_DATA_WDTIMPD_Pos (0UL) /*!< WDTIMPD (Bit 0) */ + #define R_ESC_WDT_DATA_WDTIMPD_Msk (0xffffUL) /*!< WDTIMPD (Bitfield-Mask: 0xffff) */ +/* ======================================================= WDS_DATA ======================================================== */ + #define R_ESC_WDS_DATA_WDSTAPD_Pos (0UL) /*!< WDSTAPD (Bit 0) */ + #define R_ESC_WDS_DATA_WDSTAPD_Msk (0x1UL) /*!< WDSTAPD (Bitfield-Mask: 0x01) */ +/* ======================================================= WDC_DATA ======================================================== */ + #define R_ESC_WDC_DATA_WDCNTPD_Pos (0UL) /*!< WDCNTPD (Bit 0) */ + #define R_ESC_WDC_DATA_WDCNTPD_Msk (0xffUL) /*!< WDCNTPD (Bitfield-Mask: 0xff) */ +/* ======================================================== WDC_PDI ======================================================== */ + #define R_ESC_WDC_PDI_WDCNTPDI_Pos (0UL) /*!< WDCNTPDI (Bit 0) */ + #define R_ESC_WDC_PDI_WDCNTPDI_Msk (0xffUL) /*!< WDCNTPDI (Bitfield-Mask: 0xff) */ +/* ======================================================= EEP_CONF ======================================================== */ + #define R_ESC_EEP_CONF_CTRLPDI_Pos (0UL) /*!< CTRLPDI (Bit 0) */ + #define R_ESC_EEP_CONF_CTRLPDI_Msk (0x1UL) /*!< CTRLPDI (Bitfield-Mask: 0x01) */ + #define R_ESC_EEP_CONF_FORCEECAT_Pos (1UL) /*!< FORCEECAT (Bit 1) */ + #define R_ESC_EEP_CONF_FORCEECAT_Msk (0x2UL) /*!< FORCEECAT (Bitfield-Mask: 0x01) */ +/* ======================================================= EEP_STATE ======================================================= */ + #define R_ESC_EEP_STATE_PDIACCESS_Pos (0UL) /*!< PDIACCESS (Bit 0) */ + #define R_ESC_EEP_STATE_PDIACCESS_Msk (0x1UL) /*!< PDIACCESS (Bitfield-Mask: 0x01) */ +/* ===================================================== EEP_CONT_STAT ===================================================== */ + #define R_ESC_EEP_CONT_STAT_ECATWREN_Pos (0UL) /*!< ECATWREN (Bit 0) */ + #define R_ESC_EEP_CONT_STAT_ECATWREN_Msk (0x1UL) /*!< ECATWREN (Bitfield-Mask: 0x01) */ + #define R_ESC_EEP_CONT_STAT_READBYTE_Pos (6UL) /*!< READBYTE (Bit 6) */ + #define R_ESC_EEP_CONT_STAT_READBYTE_Msk (0x40UL) /*!< READBYTE (Bitfield-Mask: 0x01) */ + #define R_ESC_EEP_CONT_STAT_PROMSIZE_Pos (7UL) /*!< PROMSIZE (Bit 7) */ + #define R_ESC_EEP_CONT_STAT_PROMSIZE_Msk (0x80UL) /*!< PROMSIZE (Bitfield-Mask: 0x01) */ + #define R_ESC_EEP_CONT_STAT_COMMAND_Pos (8UL) /*!< COMMAND (Bit 8) */ + #define R_ESC_EEP_CONT_STAT_COMMAND_Msk (0x700UL) /*!< COMMAND (Bitfield-Mask: 0x07) */ + #define R_ESC_EEP_CONT_STAT_CKSUMERR_Pos (11UL) /*!< CKSUMERR (Bit 11) */ + #define R_ESC_EEP_CONT_STAT_CKSUMERR_Msk (0x800UL) /*!< CKSUMERR (Bitfield-Mask: 0x01) */ + #define R_ESC_EEP_CONT_STAT_LOADSTA_Pos (12UL) /*!< LOADSTA (Bit 12) */ + #define R_ESC_EEP_CONT_STAT_LOADSTA_Msk (0x1000UL) /*!< LOADSTA (Bitfield-Mask: 0x01) */ + #define R_ESC_EEP_CONT_STAT_ACKCMDERR_Pos (13UL) /*!< ACKCMDERR (Bit 13) */ + #define R_ESC_EEP_CONT_STAT_ACKCMDERR_Msk (0x2000UL) /*!< ACKCMDERR (Bitfield-Mask: 0x01) */ + #define R_ESC_EEP_CONT_STAT_WRENERR_Pos (14UL) /*!< WRENERR (Bit 14) */ + #define R_ESC_EEP_CONT_STAT_WRENERR_Msk (0x4000UL) /*!< WRENERR (Bitfield-Mask: 0x01) */ + #define R_ESC_EEP_CONT_STAT_BUSY_Pos (15UL) /*!< BUSY (Bit 15) */ + #define R_ESC_EEP_CONT_STAT_BUSY_Msk (0x8000UL) /*!< BUSY (Bitfield-Mask: 0x01) */ +/* ======================================================== EEP_ADR ======================================================== */ + #define R_ESC_EEP_ADR_ADDRESS_Pos (0UL) /*!< ADDRESS (Bit 0) */ + #define R_ESC_EEP_ADR_ADDRESS_Msk (0xffffffffUL) /*!< ADDRESS (Bitfield-Mask: 0xffffffff) */ +/* ======================================================= EEP_DATA ======================================================== */ + #define R_ESC_EEP_DATA_LODATA_Pos (0UL) /*!< LODATA (Bit 0) */ + #define R_ESC_EEP_DATA_LODATA_Msk (0xffffUL) /*!< LODATA (Bitfield-Mask: 0xffff) */ + #define R_ESC_EEP_DATA_HIDATA_Pos (16UL) /*!< HIDATA (Bit 16) */ + #define R_ESC_EEP_DATA_HIDATA_Msk (0xffff0000UL) /*!< HIDATA (Bitfield-Mask: 0xffff) */ +/* ===================================================== MII_CONT_STAT ===================================================== */ + #define R_ESC_MII_CONT_STAT_WREN_Pos (0UL) /*!< WREN (Bit 0) */ + #define R_ESC_MII_CONT_STAT_WREN_Msk (0x1UL) /*!< WREN (Bitfield-Mask: 0x01) */ + #define R_ESC_MII_CONT_STAT_PDICTRL_Pos (1UL) /*!< PDICTRL (Bit 1) */ + #define R_ESC_MII_CONT_STAT_PDICTRL_Msk (0x2UL) /*!< PDICTRL (Bitfield-Mask: 0x01) */ + #define R_ESC_MII_CONT_STAT_MILINK_Pos (2UL) /*!< MILINK (Bit 2) */ + #define R_ESC_MII_CONT_STAT_MILINK_Msk (0x4UL) /*!< MILINK (Bitfield-Mask: 0x01) */ + #define R_ESC_MII_CONT_STAT_PHYOFFSET_Pos (3UL) /*!< PHYOFFSET (Bit 3) */ + #define R_ESC_MII_CONT_STAT_PHYOFFSET_Msk (0xf8UL) /*!< PHYOFFSET (Bitfield-Mask: 0x1f) */ + #define R_ESC_MII_CONT_STAT_COMMAND_Pos (8UL) /*!< COMMAND (Bit 8) */ + #define R_ESC_MII_CONT_STAT_COMMAND_Msk (0x300UL) /*!< COMMAND (Bitfield-Mask: 0x03) */ + #define R_ESC_MII_CONT_STAT_READERR_Pos (13UL) /*!< READERR (Bit 13) */ + #define R_ESC_MII_CONT_STAT_READERR_Msk (0x2000UL) /*!< READERR (Bitfield-Mask: 0x01) */ + #define R_ESC_MII_CONT_STAT_CMDERR_Pos (14UL) /*!< CMDERR (Bit 14) */ + #define R_ESC_MII_CONT_STAT_CMDERR_Msk (0x4000UL) /*!< CMDERR (Bitfield-Mask: 0x01) */ + #define R_ESC_MII_CONT_STAT_BUSY_Pos (15UL) /*!< BUSY (Bit 15) */ + #define R_ESC_MII_CONT_STAT_BUSY_Msk (0x8000UL) /*!< BUSY (Bitfield-Mask: 0x01) */ +/* ======================================================== PHY_ADR ======================================================== */ + #define R_ESC_PHY_ADR_PHYADDR_Pos (0UL) /*!< PHYADDR (Bit 0) */ + #define R_ESC_PHY_ADR_PHYADDR_Msk (0x1fUL) /*!< PHYADDR (Bitfield-Mask: 0x1f) */ +/* ====================================================== PHY_REG_ADR ====================================================== */ + #define R_ESC_PHY_REG_ADR_PHYREGADDR_Pos (0UL) /*!< PHYREGADDR (Bit 0) */ + #define R_ESC_PHY_REG_ADR_PHYREGADDR_Msk (0x1fUL) /*!< PHYREGADDR (Bitfield-Mask: 0x1f) */ +/* ======================================================= PHY_DATA ======================================================== */ + #define R_ESC_PHY_DATA_PHYREGDATA_Pos (0UL) /*!< PHYREGDATA (Bit 0) */ + #define R_ESC_PHY_DATA_PHYREGDATA_Msk (0xffffUL) /*!< PHYREGDATA (Bitfield-Mask: 0xffff) */ +/* =================================================== MII_ECAT_ACS_STAT =================================================== */ + #define R_ESC_MII_ECAT_ACS_STAT_ACSMII_Pos (0UL) /*!< ACSMII (Bit 0) */ + #define R_ESC_MII_ECAT_ACS_STAT_ACSMII_Msk (0x1UL) /*!< ACSMII (Bitfield-Mask: 0x01) */ +/* =================================================== MII_PDI_ACS_STAT ==================================================== */ + #define R_ESC_MII_PDI_ACS_STAT_ACSMII_Pos (0UL) /*!< ACSMII (Bit 0) */ + #define R_ESC_MII_PDI_ACS_STAT_ACSMII_Msk (0x1UL) /*!< ACSMII (Bitfield-Mask: 0x01) */ + #define R_ESC_MII_PDI_ACS_STAT_FORPDI_Pos (1UL) /*!< FORPDI (Bit 1) */ + #define R_ESC_MII_PDI_ACS_STAT_FORPDI_Msk (0x2UL) /*!< FORPDI (Bitfield-Mask: 0x01) */ +/* =================================================== DC_RCV_TIME_PORT ==================================================== */ + #define R_ESC_DC_RCV_TIME_PORT_RCVTIME0_Pos (0UL) /*!< RCVTIME0 (Bit 0) */ + #define R_ESC_DC_RCV_TIME_PORT_RCVTIME0_Msk (0xffffffffUL) /*!< RCVTIME0 (Bitfield-Mask: 0xffffffff) */ +/* ===================================================== DC_SYS_TIME_L ===================================================== */ +/* ===================================================== DC_SYS_TIME_H ===================================================== */ +/* ================================================== DC_RCV_TIME_UNIT_L =================================================== */ +/* ================================================== DC_RCV_TIME_UNIT_H =================================================== */ +/* ================================================= DC_SYS_TIME_OFFSET_L ================================================== */ +/* ================================================= DC_SYS_TIME_OFFSET_H ================================================== */ +/* =================================================== DC_SYS_TIME_DELAY =================================================== */ + #define R_ESC_DC_SYS_TIME_DELAY_SYSTIMDLY_Pos (0UL) /*!< SYSTIMDLY (Bit 0) */ + #define R_ESC_DC_SYS_TIME_DELAY_SYSTIMDLY_Msk (0xffffffffUL) /*!< SYSTIMDLY (Bitfield-Mask: 0xffffffff) */ +/* =================================================== DC_SYS_TIME_DIFF ==================================================== */ + #define R_ESC_DC_SYS_TIME_DIFF_DIFF_Pos (0UL) /*!< DIFF (Bit 0) */ + #define R_ESC_DC_SYS_TIME_DIFF_DIFF_Msk (0x7fffffffUL) /*!< DIFF (Bitfield-Mask: 0x7fffffff) */ + #define R_ESC_DC_SYS_TIME_DIFF_LCP_Pos (31UL) /*!< LCP (Bit 31) */ + #define R_ESC_DC_SYS_TIME_DIFF_LCP_Msk (0x80000000UL) /*!< LCP (Bitfield-Mask: 0x01) */ +/* ================================================= DC_SPEED_COUNT_START ================================================== */ + #define R_ESC_DC_SPEED_COUNT_START_SPDCNTSTRT_Pos (0UL) /*!< SPDCNTSTRT (Bit 0) */ + #define R_ESC_DC_SPEED_COUNT_START_SPDCNTSTRT_Msk (0x7fffUL) /*!< SPDCNTSTRT (Bitfield-Mask: 0x7fff) */ +/* ================================================== DC_SPEED_COUNT_DIFF ================================================== */ + #define R_ESC_DC_SPEED_COUNT_DIFF_SPDCNTDIFF_Pos (0UL) /*!< SPDCNTDIFF (Bit 0) */ + #define R_ESC_DC_SPEED_COUNT_DIFF_SPDCNTDIFF_Msk (0xffffUL) /*!< SPDCNTDIFF (Bitfield-Mask: 0xffff) */ +/* ============================================== DC_SYS_TIME_DIFF_FIL_DEPTH =============================================== */ + #define R_ESC_DC_SYS_TIME_DIFF_FIL_DEPTH_SYSTIMDEP_Pos (0UL) /*!< SYSTIMDEP (Bit 0) */ + #define R_ESC_DC_SYS_TIME_DIFF_FIL_DEPTH_SYSTIMDEP_Msk (0xfUL) /*!< SYSTIMDEP (Bitfield-Mask: 0x0f) */ +/* =============================================== DC_SPEED_COUNT_FIL_DEPTH ================================================ */ + #define R_ESC_DC_SPEED_COUNT_FIL_DEPTH_CLKPERDEP_Pos (0UL) /*!< CLKPERDEP (Bit 0) */ + #define R_ESC_DC_SPEED_COUNT_FIL_DEPTH_CLKPERDEP_Msk (0xfUL) /*!< CLKPERDEP (Bitfield-Mask: 0x0f) */ +/* ====================================================== DC_CYC_CONT ====================================================== */ + #define R_ESC_DC_CYC_CONT_SYNCOUT_Pos (0UL) /*!< SYNCOUT (Bit 0) */ + #define R_ESC_DC_CYC_CONT_SYNCOUT_Msk (0x1UL) /*!< SYNCOUT (Bitfield-Mask: 0x01) */ + #define R_ESC_DC_CYC_CONT_LATCH0_Pos (4UL) /*!< LATCH0 (Bit 4) */ + #define R_ESC_DC_CYC_CONT_LATCH0_Msk (0x10UL) /*!< LATCH0 (Bitfield-Mask: 0x01) */ + #define R_ESC_DC_CYC_CONT_LATCH1_Pos (5UL) /*!< LATCH1 (Bit 5) */ + #define R_ESC_DC_CYC_CONT_LATCH1_Msk (0x20UL) /*!< LATCH1 (Bitfield-Mask: 0x01) */ +/* ======================================================== DC_ACT ========================================================= */ + #define R_ESC_DC_ACT_SYNCACT_Pos (0UL) /*!< SYNCACT (Bit 0) */ + #define R_ESC_DC_ACT_SYNCACT_Msk (0x1UL) /*!< SYNCACT (Bitfield-Mask: 0x01) */ + #define R_ESC_DC_ACT_SYNC0_Pos (1UL) /*!< SYNC0 (Bit 1) */ + #define R_ESC_DC_ACT_SYNC0_Msk (0x2UL) /*!< SYNC0 (Bitfield-Mask: 0x01) */ + #define R_ESC_DC_ACT_SYNC1_Pos (2UL) /*!< SYNC1 (Bit 2) */ + #define R_ESC_DC_ACT_SYNC1_Msk (0x4UL) /*!< SYNC1 (Bitfield-Mask: 0x01) */ + #define R_ESC_DC_ACT_AUTOACT_Pos (3UL) /*!< AUTOACT (Bit 3) */ + #define R_ESC_DC_ACT_AUTOACT_Msk (0x8UL) /*!< AUTOACT (Bitfield-Mask: 0x01) */ + #define R_ESC_DC_ACT_EXTSTARTTIME_Pos (4UL) /*!< EXTSTARTTIME (Bit 4) */ + #define R_ESC_DC_ACT_EXTSTARTTIME_Msk (0x10UL) /*!< EXTSTARTTIME (Bitfield-Mask: 0x01) */ + #define R_ESC_DC_ACT_STARTTIME_Pos (5UL) /*!< STARTTIME (Bit 5) */ + #define R_ESC_DC_ACT_STARTTIME_Msk (0x20UL) /*!< STARTTIME (Bitfield-Mask: 0x01) */ + #define R_ESC_DC_ACT_NEARFUTURE_Pos (6UL) /*!< NEARFUTURE (Bit 6) */ + #define R_ESC_DC_ACT_NEARFUTURE_Msk (0x40UL) /*!< NEARFUTURE (Bitfield-Mask: 0x01) */ + #define R_ESC_DC_ACT_DBGPULSE_Pos (7UL) /*!< DBGPULSE (Bit 7) */ + #define R_ESC_DC_ACT_DBGPULSE_Msk (0x80UL) /*!< DBGPULSE (Bitfield-Mask: 0x01) */ +/* ===================================================== DC_PULSE_LEN ====================================================== */ + #define R_ESC_DC_PULSE_LEN_PULSELEN_Pos (0UL) /*!< PULSELEN (Bit 0) */ + #define R_ESC_DC_PULSE_LEN_PULSELEN_Msk (0xffffUL) /*!< PULSELEN (Bitfield-Mask: 0xffff) */ +/* ====================================================== DC_ACT_STAT ====================================================== */ + #define R_ESC_DC_ACT_STAT_SYNC0ACT_Pos (0UL) /*!< SYNC0ACT (Bit 0) */ + #define R_ESC_DC_ACT_STAT_SYNC0ACT_Msk (0x1UL) /*!< SYNC0ACT (Bitfield-Mask: 0x01) */ + #define R_ESC_DC_ACT_STAT_SYNC1ACT_Pos (1UL) /*!< SYNC1ACT (Bit 1) */ + #define R_ESC_DC_ACT_STAT_SYNC1ACT_Msk (0x2UL) /*!< SYNC1ACT (Bitfield-Mask: 0x01) */ + #define R_ESC_DC_ACT_STAT_STARTTIME_Pos (2UL) /*!< STARTTIME (Bit 2) */ + #define R_ESC_DC_ACT_STAT_STARTTIME_Msk (0x4UL) /*!< STARTTIME (Bitfield-Mask: 0x01) */ +/* ===================================================== DC_SYNC0_STAT ===================================================== */ + #define R_ESC_DC_SYNC0_STAT_SYNC0STA_Pos (0UL) /*!< SYNC0STA (Bit 0) */ + #define R_ESC_DC_SYNC0_STAT_SYNC0STA_Msk (0x1UL) /*!< SYNC0STA (Bitfield-Mask: 0x01) */ +/* ===================================================== DC_SYNC1_STAT ===================================================== */ + #define R_ESC_DC_SYNC1_STAT_SYNC1STA_Pos (0UL) /*!< SYNC1STA (Bit 0) */ + #define R_ESC_DC_SYNC1_STAT_SYNC1STA_Msk (0x1UL) /*!< SYNC1STA (Bitfield-Mask: 0x01) */ +/* ================================================== DC_CYC_START_TIME_L ================================================== */ +/* ================================================== DC_CYC_START_TIME_H ================================================== */ +/* ================================================= DC_NEXT_SYNC1_PULSE_L ================================================= */ +/* ================================================= DC_NEXT_SYNC1_PULSE_H ================================================= */ +/* =================================================== DC_SYNC0_CYC_TIME =================================================== */ + #define R_ESC_DC_SYNC0_CYC_TIME_SYNC0CYC_Pos (0UL) /*!< SYNC0CYC (Bit 0) */ + #define R_ESC_DC_SYNC0_CYC_TIME_SYNC0CYC_Msk (0xffffffffUL) /*!< SYNC0CYC (Bitfield-Mask: 0xffffffff) */ +/* =================================================== DC_SYNC1_CYC_TIME =================================================== */ + #define R_ESC_DC_SYNC1_CYC_TIME_SYNC1CYC_Pos (0UL) /*!< SYNC1CYC (Bit 0) */ + #define R_ESC_DC_SYNC1_CYC_TIME_SYNC1CYC_Msk (0xffffffffUL) /*!< SYNC1CYC (Bitfield-Mask: 0xffffffff) */ +/* ==================================================== DC_LATCH0_CONT ===================================================== */ + #define R_ESC_DC_LATCH0_CONT_POSEDGE_Pos (0UL) /*!< POSEDGE (Bit 0) */ + #define R_ESC_DC_LATCH0_CONT_POSEDGE_Msk (0x1UL) /*!< POSEDGE (Bitfield-Mask: 0x01) */ + #define R_ESC_DC_LATCH0_CONT_NEGEDGE_Pos (1UL) /*!< NEGEDGE (Bit 1) */ + #define R_ESC_DC_LATCH0_CONT_NEGEDGE_Msk (0x2UL) /*!< NEGEDGE (Bitfield-Mask: 0x01) */ +/* ==================================================== DC_LATCH1_CONT ===================================================== */ + #define R_ESC_DC_LATCH1_CONT_POSEDGE_Pos (0UL) /*!< POSEDGE (Bit 0) */ + #define R_ESC_DC_LATCH1_CONT_POSEDGE_Msk (0x1UL) /*!< POSEDGE (Bitfield-Mask: 0x01) */ + #define R_ESC_DC_LATCH1_CONT_NEGEDGE_Pos (1UL) /*!< NEGEDGE (Bit 1) */ + #define R_ESC_DC_LATCH1_CONT_NEGEDGE_Msk (0x2UL) /*!< NEGEDGE (Bitfield-Mask: 0x01) */ +/* ==================================================== DC_LATCH0_STAT ===================================================== */ + #define R_ESC_DC_LATCH0_STAT_EVENTPOS_Pos (0UL) /*!< EVENTPOS (Bit 0) */ + #define R_ESC_DC_LATCH0_STAT_EVENTPOS_Msk (0x1UL) /*!< EVENTPOS (Bitfield-Mask: 0x01) */ + #define R_ESC_DC_LATCH0_STAT_EVENTNEG_Pos (1UL) /*!< EVENTNEG (Bit 1) */ + #define R_ESC_DC_LATCH0_STAT_EVENTNEG_Msk (0x2UL) /*!< EVENTNEG (Bitfield-Mask: 0x01) */ + #define R_ESC_DC_LATCH0_STAT_PINSTATE_Pos (2UL) /*!< PINSTATE (Bit 2) */ + #define R_ESC_DC_LATCH0_STAT_PINSTATE_Msk (0x4UL) /*!< PINSTATE (Bitfield-Mask: 0x01) */ +/* ==================================================== DC_LATCH1_STAT ===================================================== */ + #define R_ESC_DC_LATCH1_STAT_EVENTPOS_Pos (0UL) /*!< EVENTPOS (Bit 0) */ + #define R_ESC_DC_LATCH1_STAT_EVENTPOS_Msk (0x1UL) /*!< EVENTPOS (Bitfield-Mask: 0x01) */ + #define R_ESC_DC_LATCH1_STAT_EVENTNEG_Pos (1UL) /*!< EVENTNEG (Bit 1) */ + #define R_ESC_DC_LATCH1_STAT_EVENTNEG_Msk (0x2UL) /*!< EVENTNEG (Bitfield-Mask: 0x01) */ + #define R_ESC_DC_LATCH1_STAT_PINSTATE_Pos (2UL) /*!< PINSTATE (Bit 2) */ + #define R_ESC_DC_LATCH1_STAT_PINSTATE_Msk (0x4UL) /*!< PINSTATE (Bitfield-Mask: 0x01) */ +/* ================================================= DC_LATCH0_TIME_POS_L ================================================== */ +/* ================================================= DC_LATCH0_TIME_POS_H ================================================== */ +/* ================================================= DC_LATCH0_TIME_NEG_L ================================================== */ +/* ================================================= DC_LATCH0_TIME_NEG_H ================================================== */ +/* ================================================= DC_LATCH1_TIME_POS_L ================================================== */ +/* ================================================= DC_LATCH1_TIME_POS_H ================================================== */ +/* ================================================= DC_LATCH1_TIME_NEG_L ================================================== */ +/* ================================================= DC_LATCH1_TIME_NEG_H ================================================== */ +/* ================================================== DC_ECAT_CNG_EV_TIME ================================================== */ + #define R_ESC_DC_ECAT_CNG_EV_TIME_ECATCHANGE_Pos (0UL) /*!< ECATCHANGE (Bit 0) */ + #define R_ESC_DC_ECAT_CNG_EV_TIME_ECATCHANGE_Msk (0xffffffffUL) /*!< ECATCHANGE (Bitfield-Mask: 0xffffffff) */ +/* ================================================= DC_PDI_START_EV_TIME ================================================== */ + #define R_ESC_DC_PDI_START_EV_TIME_PDISTART_Pos (0UL) /*!< PDISTART (Bit 0) */ + #define R_ESC_DC_PDI_START_EV_TIME_PDISTART_Msk (0xffffffffUL) /*!< PDISTART (Bitfield-Mask: 0xffffffff) */ +/* ================================================== DC_PDI_CNG_EV_TIME =================================================== */ + #define R_ESC_DC_PDI_CNG_EV_TIME_PDICHANGE_Pos (0UL) /*!< PDICHANGE (Bit 0) */ + #define R_ESC_DC_PDI_CNG_EV_TIME_PDICHANGE_Msk (0xffffffffUL) /*!< PDICHANGE (Bitfield-Mask: 0xffffffff) */ +/* ===================================================== PRODUCT_ID_L ====================================================== */ +/* ===================================================== PRODUCT_ID_H ====================================================== */ +/* ====================================================== VENDOR_ID_L ====================================================== */ + #define R_ESC_VENDOR_ID_L_VENDORID_Pos (0UL) /*!< VENDORID (Bit 0) */ + #define R_ESC_VENDOR_ID_L_VENDORID_Msk (0xffffffffUL) /*!< VENDORID (Bitfield-Mask: 0xffffffff) */ + +/* =========================================================================================================================== */ +/* ================ R_USBHC ================ */ +/* =========================================================================================================================== */ + +/* ====================================================== HCREVISION ======================================================= */ + #define R_USBHC_HCREVISION_REV_Pos (0UL) /*!< REV (Bit 0) */ + #define R_USBHC_HCREVISION_REV_Msk (0xffUL) /*!< REV (Bitfield-Mask: 0xff) */ +/* ======================================================= HCCONTROL ======================================================= */ + #define R_USBHC_HCCONTROL_CBSR_Pos (0UL) /*!< CBSR (Bit 0) */ + #define R_USBHC_HCCONTROL_CBSR_Msk (0x3UL) /*!< CBSR (Bitfield-Mask: 0x03) */ + #define R_USBHC_HCCONTROL_PLE_Pos (2UL) /*!< PLE (Bit 2) */ + #define R_USBHC_HCCONTROL_PLE_Msk (0x4UL) /*!< PLE (Bitfield-Mask: 0x01) */ + #define R_USBHC_HCCONTROL_IE_Pos (3UL) /*!< IE (Bit 3) */ + #define R_USBHC_HCCONTROL_IE_Msk (0x8UL) /*!< IE (Bitfield-Mask: 0x01) */ + #define R_USBHC_HCCONTROL_CLE_Pos (4UL) /*!< CLE (Bit 4) */ + #define R_USBHC_HCCONTROL_CLE_Msk (0x10UL) /*!< CLE (Bitfield-Mask: 0x01) */ + #define R_USBHC_HCCONTROL_BLE_Pos (5UL) /*!< BLE (Bit 5) */ + #define R_USBHC_HCCONTROL_BLE_Msk (0x20UL) /*!< BLE (Bitfield-Mask: 0x01) */ + #define R_USBHC_HCCONTROL_HCFS_Pos (6UL) /*!< HCFS (Bit 6) */ + #define R_USBHC_HCCONTROL_HCFS_Msk (0xc0UL) /*!< HCFS (Bitfield-Mask: 0x03) */ + #define R_USBHC_HCCONTROL_IR_Pos (8UL) /*!< IR (Bit 8) */ + #define R_USBHC_HCCONTROL_IR_Msk (0x100UL) /*!< IR (Bitfield-Mask: 0x01) */ + #define R_USBHC_HCCONTROL_RWC_Pos (9UL) /*!< RWC (Bit 9) */ + #define R_USBHC_HCCONTROL_RWC_Msk (0x200UL) /*!< RWC (Bitfield-Mask: 0x01) */ + #define R_USBHC_HCCONTROL_RWE_Pos (10UL) /*!< RWE (Bit 10) */ + #define R_USBHC_HCCONTROL_RWE_Msk (0x400UL) /*!< RWE (Bitfield-Mask: 0x01) */ +/* ==================================================== HCCOMMANDSTATUS ==================================================== */ + #define R_USBHC_HCCOMMANDSTATUS_HCR_Pos (0UL) /*!< HCR (Bit 0) */ + #define R_USBHC_HCCOMMANDSTATUS_HCR_Msk (0x1UL) /*!< HCR (Bitfield-Mask: 0x01) */ + #define R_USBHC_HCCOMMANDSTATUS_CLF_Pos (1UL) /*!< CLF (Bit 1) */ + #define R_USBHC_HCCOMMANDSTATUS_CLF_Msk (0x2UL) /*!< CLF (Bitfield-Mask: 0x01) */ + #define R_USBHC_HCCOMMANDSTATUS_BLF_Pos (2UL) /*!< BLF (Bit 2) */ + #define R_USBHC_HCCOMMANDSTATUS_BLF_Msk (0x4UL) /*!< BLF (Bitfield-Mask: 0x01) */ + #define R_USBHC_HCCOMMANDSTATUS_OCR_Pos (3UL) /*!< OCR (Bit 3) */ + #define R_USBHC_HCCOMMANDSTATUS_OCR_Msk (0x8UL) /*!< OCR (Bitfield-Mask: 0x01) */ + #define R_USBHC_HCCOMMANDSTATUS_SOC_Pos (16UL) /*!< SOC (Bit 16) */ + #define R_USBHC_HCCOMMANDSTATUS_SOC_Msk (0x30000UL) /*!< SOC (Bitfield-Mask: 0x03) */ +/* =================================================== HCINTERRUPTSTATUS =================================================== */ + #define R_USBHC_HCINTERRUPTSTATUS_SO_Pos (0UL) /*!< SO (Bit 0) */ + #define R_USBHC_HCINTERRUPTSTATUS_SO_Msk (0x1UL) /*!< SO (Bitfield-Mask: 0x01) */ + #define R_USBHC_HCINTERRUPTSTATUS_WDH_Pos (1UL) /*!< WDH (Bit 1) */ + #define R_USBHC_HCINTERRUPTSTATUS_WDH_Msk (0x2UL) /*!< WDH (Bitfield-Mask: 0x01) */ + #define R_USBHC_HCINTERRUPTSTATUS_SF_Pos (2UL) /*!< SF (Bit 2) */ + #define R_USBHC_HCINTERRUPTSTATUS_SF_Msk (0x4UL) /*!< SF (Bitfield-Mask: 0x01) */ + #define R_USBHC_HCINTERRUPTSTATUS_RD_Pos (3UL) /*!< RD (Bit 3) */ + #define R_USBHC_HCINTERRUPTSTATUS_RD_Msk (0x8UL) /*!< RD (Bitfield-Mask: 0x01) */ + #define R_USBHC_HCINTERRUPTSTATUS_UE_Pos (4UL) /*!< UE (Bit 4) */ + #define R_USBHC_HCINTERRUPTSTATUS_UE_Msk (0x10UL) /*!< UE (Bitfield-Mask: 0x01) */ + #define R_USBHC_HCINTERRUPTSTATUS_FNO_Pos (5UL) /*!< FNO (Bit 5) */ + #define R_USBHC_HCINTERRUPTSTATUS_FNO_Msk (0x20UL) /*!< FNO (Bitfield-Mask: 0x01) */ + #define R_USBHC_HCINTERRUPTSTATUS_RHSC_Pos (6UL) /*!< RHSC (Bit 6) */ + #define R_USBHC_HCINTERRUPTSTATUS_RHSC_Msk (0x40UL) /*!< RHSC (Bitfield-Mask: 0x01) */ + #define R_USBHC_HCINTERRUPTSTATUS_OC_Pos (30UL) /*!< OC (Bit 30) */ + #define R_USBHC_HCINTERRUPTSTATUS_OC_Msk (0x40000000UL) /*!< OC (Bitfield-Mask: 0x01) */ +/* =================================================== HCINTERRUPTENABLE =================================================== */ + #define R_USBHC_HCINTERRUPTENABLE_SOE_Pos (0UL) /*!< SOE (Bit 0) */ + #define R_USBHC_HCINTERRUPTENABLE_SOE_Msk (0x1UL) /*!< SOE (Bitfield-Mask: 0x01) */ + #define R_USBHC_HCINTERRUPTENABLE_WDHE_Pos (1UL) /*!< WDHE (Bit 1) */ + #define R_USBHC_HCINTERRUPTENABLE_WDHE_Msk (0x2UL) /*!< WDHE (Bitfield-Mask: 0x01) */ + #define R_USBHC_HCINTERRUPTENABLE_SFE_Pos (2UL) /*!< SFE (Bit 2) */ + #define R_USBHC_HCINTERRUPTENABLE_SFE_Msk (0x4UL) /*!< SFE (Bitfield-Mask: 0x01) */ + #define R_USBHC_HCINTERRUPTENABLE_RDE_Pos (3UL) /*!< RDE (Bit 3) */ + #define R_USBHC_HCINTERRUPTENABLE_RDE_Msk (0x8UL) /*!< RDE (Bitfield-Mask: 0x01) */ + #define R_USBHC_HCINTERRUPTENABLE_UEE_Pos (4UL) /*!< UEE (Bit 4) */ + #define R_USBHC_HCINTERRUPTENABLE_UEE_Msk (0x10UL) /*!< UEE (Bitfield-Mask: 0x01) */ + #define R_USBHC_HCINTERRUPTENABLE_FNOE_Pos (5UL) /*!< FNOE (Bit 5) */ + #define R_USBHC_HCINTERRUPTENABLE_FNOE_Msk (0x20UL) /*!< FNOE (Bitfield-Mask: 0x01) */ + #define R_USBHC_HCINTERRUPTENABLE_RHSCE_Pos (6UL) /*!< RHSCE (Bit 6) */ + #define R_USBHC_HCINTERRUPTENABLE_RHSCE_Msk (0x40UL) /*!< RHSCE (Bitfield-Mask: 0x01) */ + #define R_USBHC_HCINTERRUPTENABLE_OCE_Pos (30UL) /*!< OCE (Bit 30) */ + #define R_USBHC_HCINTERRUPTENABLE_OCE_Msk (0x40000000UL) /*!< OCE (Bitfield-Mask: 0x01) */ + #define R_USBHC_HCINTERRUPTENABLE_MIE_Pos (31UL) /*!< MIE (Bit 31) */ + #define R_USBHC_HCINTERRUPTENABLE_MIE_Msk (0x80000000UL) /*!< MIE (Bitfield-Mask: 0x01) */ +/* ================================================== HCINTERRUPTDISABLE =================================================== */ + #define R_USBHC_HCINTERRUPTDISABLE_SOD_Pos (0UL) /*!< SOD (Bit 0) */ + #define R_USBHC_HCINTERRUPTDISABLE_SOD_Msk (0x1UL) /*!< SOD (Bitfield-Mask: 0x01) */ + #define R_USBHC_HCINTERRUPTDISABLE_WDHD_Pos (1UL) /*!< WDHD (Bit 1) */ + #define R_USBHC_HCINTERRUPTDISABLE_WDHD_Msk (0x2UL) /*!< WDHD (Bitfield-Mask: 0x01) */ + #define R_USBHC_HCINTERRUPTDISABLE_SFD_Pos (2UL) /*!< SFD (Bit 2) */ + #define R_USBHC_HCINTERRUPTDISABLE_SFD_Msk (0x4UL) /*!< SFD (Bitfield-Mask: 0x01) */ + #define R_USBHC_HCINTERRUPTDISABLE_RDD_Pos (3UL) /*!< RDD (Bit 3) */ + #define R_USBHC_HCINTERRUPTDISABLE_RDD_Msk (0x8UL) /*!< RDD (Bitfield-Mask: 0x01) */ + #define R_USBHC_HCINTERRUPTDISABLE_UED_Pos (4UL) /*!< UED (Bit 4) */ + #define R_USBHC_HCINTERRUPTDISABLE_UED_Msk (0x10UL) /*!< UED (Bitfield-Mask: 0x01) */ + #define R_USBHC_HCINTERRUPTDISABLE_FNOD_Pos (5UL) /*!< FNOD (Bit 5) */ + #define R_USBHC_HCINTERRUPTDISABLE_FNOD_Msk (0x20UL) /*!< FNOD (Bitfield-Mask: 0x01) */ + #define R_USBHC_HCINTERRUPTDISABLE_RHSCD_Pos (6UL) /*!< RHSCD (Bit 6) */ + #define R_USBHC_HCINTERRUPTDISABLE_RHSCD_Msk (0x40UL) /*!< RHSCD (Bitfield-Mask: 0x01) */ + #define R_USBHC_HCINTERRUPTDISABLE_OCD_Pos (30UL) /*!< OCD (Bit 30) */ + #define R_USBHC_HCINTERRUPTDISABLE_OCD_Msk (0x40000000UL) /*!< OCD (Bitfield-Mask: 0x01) */ + #define R_USBHC_HCINTERRUPTDISABLE_MID_Pos (31UL) /*!< MID (Bit 31) */ + #define R_USBHC_HCINTERRUPTDISABLE_MID_Msk (0x80000000UL) /*!< MID (Bitfield-Mask: 0x01) */ +/* ======================================================== HCHCCA ========================================================= */ + #define R_USBHC_HCHCCA_RAMBA_Pos (8UL) /*!< RAMBA (Bit 8) */ + #define R_USBHC_HCHCCA_RAMBA_Msk (0xffffff00UL) /*!< RAMBA (Bitfield-Mask: 0xffffff) */ +/* ================================================== HCPERIODCCURRENTIED ================================================== */ + #define R_USBHC_HCPERIODCCURRENTIED_PCED_Pos (4UL) /*!< PCED (Bit 4) */ + #define R_USBHC_HCPERIODCCURRENTIED_PCED_Msk (0xfffffff0UL) /*!< PCED (Bitfield-Mask: 0xfffffff) */ +/* ==================================================== HCCONTROLHEADED ==================================================== */ + #define R_USBHC_HCCONTROLHEADED_CHED_Pos (4UL) /*!< CHED (Bit 4) */ + #define R_USBHC_HCCONTROLHEADED_CHED_Msk (0xfffffff0UL) /*!< CHED (Bitfield-Mask: 0xfffffff) */ +/* ================================================== HCCONTROLCURRENTED =================================================== */ + #define R_USBHC_HCCONTROLCURRENTED_CCED_Pos (4UL) /*!< CCED (Bit 4) */ + #define R_USBHC_HCCONTROLCURRENTED_CCED_Msk (0xfffffff0UL) /*!< CCED (Bitfield-Mask: 0xfffffff) */ +/* ===================================================== HCBULKHEADED ====================================================== */ + #define R_USBHC_HCBULKHEADED_BHED_Pos (4UL) /*!< BHED (Bit 4) */ + #define R_USBHC_HCBULKHEADED_BHED_Msk (0xfffffff0UL) /*!< BHED (Bitfield-Mask: 0xfffffff) */ +/* ==================================================== HCBULKCURRENTED ==================================================== */ + #define R_USBHC_HCBULKCURRENTED_BCED_Pos (4UL) /*!< BCED (Bit 4) */ + #define R_USBHC_HCBULKCURRENTED_BCED_Msk (0xfffffff0UL) /*!< BCED (Bitfield-Mask: 0xfffffff) */ +/* ====================================================== HCDONEHEAD ======================================================= */ + #define R_USBHC_HCDONEHEAD_DH_Pos (4UL) /*!< DH (Bit 4) */ + #define R_USBHC_HCDONEHEAD_DH_Msk (0xfffffff0UL) /*!< DH (Bitfield-Mask: 0xfffffff) */ +/* ===================================================== HCFMINTERVAL ====================================================== */ + #define R_USBHC_HCFMINTERVAL_FI_Pos (0UL) /*!< FI (Bit 0) */ + #define R_USBHC_HCFMINTERVAL_FI_Msk (0x3fffUL) /*!< FI (Bitfield-Mask: 0x3fff) */ + #define R_USBHC_HCFMINTERVAL_FSMPS_Pos (16UL) /*!< FSMPS (Bit 16) */ + #define R_USBHC_HCFMINTERVAL_FSMPS_Msk (0x7fff0000UL) /*!< FSMPS (Bitfield-Mask: 0x7fff) */ + #define R_USBHC_HCFMINTERVAL_FIT_Pos (31UL) /*!< FIT (Bit 31) */ + #define R_USBHC_HCFMINTERVAL_FIT_Msk (0x80000000UL) /*!< FIT (Bitfield-Mask: 0x01) */ +/* ===================================================== HCFNREMAINING ===================================================== */ + #define R_USBHC_HCFNREMAINING_FR_Pos (0UL) /*!< FR (Bit 0) */ + #define R_USBHC_HCFNREMAINING_FR_Msk (0x3fffUL) /*!< FR (Bitfield-Mask: 0x3fff) */ + #define R_USBHC_HCFNREMAINING_FRT_Pos (31UL) /*!< FRT (Bit 31) */ + #define R_USBHC_HCFNREMAINING_FRT_Msk (0x80000000UL) /*!< FRT (Bitfield-Mask: 0x01) */ +/* ====================================================== HCFMNUMBER ======================================================= */ + #define R_USBHC_HCFMNUMBER_FN_Pos (0UL) /*!< FN (Bit 0) */ + #define R_USBHC_HCFMNUMBER_FN_Msk (0xffffUL) /*!< FN (Bitfield-Mask: 0xffff) */ +/* ===================================================== HCPERIODSTART ===================================================== */ + #define R_USBHC_HCPERIODSTART_PS_Pos (0UL) /*!< PS (Bit 0) */ + #define R_USBHC_HCPERIODSTART_PS_Msk (0x3fffUL) /*!< PS (Bitfield-Mask: 0x3fff) */ +/* ===================================================== HCLSTHRESHOLD ===================================================== */ + #define R_USBHC_HCLSTHRESHOLD_LS_Pos (0UL) /*!< LS (Bit 0) */ + #define R_USBHC_HCLSTHRESHOLD_LS_Msk (0xfffUL) /*!< LS (Bitfield-Mask: 0xfff) */ +/* ==================================================== HCRHDESCRIPTORA ==================================================== */ + #define R_USBHC_HCRHDESCRIPTORA_NDP_Pos (0UL) /*!< NDP (Bit 0) */ + #define R_USBHC_HCRHDESCRIPTORA_NDP_Msk (0xffUL) /*!< NDP (Bitfield-Mask: 0xff) */ + #define R_USBHC_HCRHDESCRIPTORA_PSM_Pos (8UL) /*!< PSM (Bit 8) */ + #define R_USBHC_HCRHDESCRIPTORA_PSM_Msk (0x100UL) /*!< PSM (Bitfield-Mask: 0x01) */ + #define R_USBHC_HCRHDESCRIPTORA_NPS_Pos (9UL) /*!< NPS (Bit 9) */ + #define R_USBHC_HCRHDESCRIPTORA_NPS_Msk (0x200UL) /*!< NPS (Bitfield-Mask: 0x01) */ + #define R_USBHC_HCRHDESCRIPTORA_DT_Pos (10UL) /*!< DT (Bit 10) */ + #define R_USBHC_HCRHDESCRIPTORA_DT_Msk (0x400UL) /*!< DT (Bitfield-Mask: 0x01) */ + #define R_USBHC_HCRHDESCRIPTORA_OCPM_Pos (11UL) /*!< OCPM (Bit 11) */ + #define R_USBHC_HCRHDESCRIPTORA_OCPM_Msk (0x800UL) /*!< OCPM (Bitfield-Mask: 0x01) */ + #define R_USBHC_HCRHDESCRIPTORA_NOCP_Pos (12UL) /*!< NOCP (Bit 12) */ + #define R_USBHC_HCRHDESCRIPTORA_NOCP_Msk (0x1000UL) /*!< NOCP (Bitfield-Mask: 0x01) */ + #define R_USBHC_HCRHDESCRIPTORA_POTPGT_Pos (24UL) /*!< POTPGT (Bit 24) */ + #define R_USBHC_HCRHDESCRIPTORA_POTPGT_Msk (0xff000000UL) /*!< POTPGT (Bitfield-Mask: 0xff) */ +/* ==================================================== HCRHDESCRIPTORB ==================================================== */ + #define R_USBHC_HCRHDESCRIPTORB_DR_Pos (0UL) /*!< DR (Bit 0) */ + #define R_USBHC_HCRHDESCRIPTORB_DR_Msk (0xffffUL) /*!< DR (Bitfield-Mask: 0xffff) */ + #define R_USBHC_HCRHDESCRIPTORB_PPCM_Pos (16UL) /*!< PPCM (Bit 16) */ + #define R_USBHC_HCRHDESCRIPTORB_PPCM_Msk (0xffff0000UL) /*!< PPCM (Bitfield-Mask: 0xffff) */ +/* ====================================================== HCRHSTATUS ======================================================= */ + #define R_USBHC_HCRHSTATUS_LPS_Pos (0UL) /*!< LPS (Bit 0) */ + #define R_USBHC_HCRHSTATUS_LPS_Msk (0x1UL) /*!< LPS (Bitfield-Mask: 0x01) */ + #define R_USBHC_HCRHSTATUS_OCI_Pos (1UL) /*!< OCI (Bit 1) */ + #define R_USBHC_HCRHSTATUS_OCI_Msk (0x2UL) /*!< OCI (Bitfield-Mask: 0x01) */ + #define R_USBHC_HCRHSTATUS_DRWE_Pos (15UL) /*!< DRWE (Bit 15) */ + #define R_USBHC_HCRHSTATUS_DRWE_Msk (0x8000UL) /*!< DRWE (Bitfield-Mask: 0x01) */ + #define R_USBHC_HCRHSTATUS_LPSC_Pos (16UL) /*!< LPSC (Bit 16) */ + #define R_USBHC_HCRHSTATUS_LPSC_Msk (0x10000UL) /*!< LPSC (Bitfield-Mask: 0x01) */ + #define R_USBHC_HCRHSTATUS_OCIC_Pos (17UL) /*!< OCIC (Bit 17) */ + #define R_USBHC_HCRHSTATUS_OCIC_Msk (0x20000UL) /*!< OCIC (Bitfield-Mask: 0x01) */ + #define R_USBHC_HCRHSTATUS_CRWE_Pos (31UL) /*!< CRWE (Bit 31) */ + #define R_USBHC_HCRHSTATUS_CRWE_Msk (0x80000000UL) /*!< CRWE (Bitfield-Mask: 0x01) */ +/* ==================================================== HCRHPORTSTATUS1 ==================================================== */ + #define R_USBHC_HCRHPORTSTATUS1_CCS_Pos (0UL) /*!< CCS (Bit 0) */ + #define R_USBHC_HCRHPORTSTATUS1_CCS_Msk (0x1UL) /*!< CCS (Bitfield-Mask: 0x01) */ + #define R_USBHC_HCRHPORTSTATUS1_PES_Pos (1UL) /*!< PES (Bit 1) */ + #define R_USBHC_HCRHPORTSTATUS1_PES_Msk (0x2UL) /*!< PES (Bitfield-Mask: 0x01) */ + #define R_USBHC_HCRHPORTSTATUS1_PSS_Pos (2UL) /*!< PSS (Bit 2) */ + #define R_USBHC_HCRHPORTSTATUS1_PSS_Msk (0x4UL) /*!< PSS (Bitfield-Mask: 0x01) */ + #define R_USBHC_HCRHPORTSTATUS1_POCI_Pos (3UL) /*!< POCI (Bit 3) */ + #define R_USBHC_HCRHPORTSTATUS1_POCI_Msk (0x8UL) /*!< POCI (Bitfield-Mask: 0x01) */ + #define R_USBHC_HCRHPORTSTATUS1_PRS_Pos (4UL) /*!< PRS (Bit 4) */ + #define R_USBHC_HCRHPORTSTATUS1_PRS_Msk (0x10UL) /*!< PRS (Bitfield-Mask: 0x01) */ + #define R_USBHC_HCRHPORTSTATUS1_PPS_Pos (8UL) /*!< PPS (Bit 8) */ + #define R_USBHC_HCRHPORTSTATUS1_PPS_Msk (0x100UL) /*!< PPS (Bitfield-Mask: 0x01) */ + #define R_USBHC_HCRHPORTSTATUS1_LSDA_Pos (9UL) /*!< LSDA (Bit 9) */ + #define R_USBHC_HCRHPORTSTATUS1_LSDA_Msk (0x200UL) /*!< LSDA (Bitfield-Mask: 0x01) */ + #define R_USBHC_HCRHPORTSTATUS1_CSC_Pos (16UL) /*!< CSC (Bit 16) */ + #define R_USBHC_HCRHPORTSTATUS1_CSC_Msk (0x10000UL) /*!< CSC (Bitfield-Mask: 0x01) */ + #define R_USBHC_HCRHPORTSTATUS1_PESC_Pos (17UL) /*!< PESC (Bit 17) */ + #define R_USBHC_HCRHPORTSTATUS1_PESC_Msk (0x20000UL) /*!< PESC (Bitfield-Mask: 0x01) */ + #define R_USBHC_HCRHPORTSTATUS1_PSSC_Pos (18UL) /*!< PSSC (Bit 18) */ + #define R_USBHC_HCRHPORTSTATUS1_PSSC_Msk (0x40000UL) /*!< PSSC (Bitfield-Mask: 0x01) */ + #define R_USBHC_HCRHPORTSTATUS1_OCIC_Pos (19UL) /*!< OCIC (Bit 19) */ + #define R_USBHC_HCRHPORTSTATUS1_OCIC_Msk (0x80000UL) /*!< OCIC (Bitfield-Mask: 0x01) */ + #define R_USBHC_HCRHPORTSTATUS1_PRSC_Pos (20UL) /*!< PRSC (Bit 20) */ + #define R_USBHC_HCRHPORTSTATUS1_PRSC_Msk (0x100000UL) /*!< PRSC (Bitfield-Mask: 0x01) */ +/* ===================================================== CAPL_VERSION ====================================================== */ + #define R_USBHC_CAPL_VERSION_CRL_Pos (0UL) /*!< CRL (Bit 0) */ + #define R_USBHC_CAPL_VERSION_CRL_Msk (0xffUL) /*!< CRL (Bitfield-Mask: 0xff) */ + #define R_USBHC_CAPL_VERSION_HCIVN_Pos (16UL) /*!< HCIVN (Bit 16) */ + #define R_USBHC_CAPL_VERSION_HCIVN_Msk (0xffff0000UL) /*!< HCIVN (Bitfield-Mask: 0xffff) */ +/* ======================================================= HCSPARAMS ======================================================= */ + #define R_USBHC_HCSPARAMS_N_PORTS_Pos (0UL) /*!< N_PORTS (Bit 0) */ + #define R_USBHC_HCSPARAMS_N_PORTS_Msk (0xfUL) /*!< N_PORTS (Bitfield-Mask: 0x0f) */ + #define R_USBHC_HCSPARAMS_PPC_Pos (4UL) /*!< PPC (Bit 4) */ + #define R_USBHC_HCSPARAMS_PPC_Msk (0x10UL) /*!< PPC (Bitfield-Mask: 0x01) */ + #define R_USBHC_HCSPARAMS_PTRR_Pos (7UL) /*!< PTRR (Bit 7) */ + #define R_USBHC_HCSPARAMS_PTRR_Msk (0x80UL) /*!< PTRR (Bitfield-Mask: 0x01) */ + #define R_USBHC_HCSPARAMS_N_PCC_Pos (8UL) /*!< N_PCC (Bit 8) */ + #define R_USBHC_HCSPARAMS_N_PCC_Msk (0xf00UL) /*!< N_PCC (Bitfield-Mask: 0x0f) */ + #define R_USBHC_HCSPARAMS_N_CC_Pos (12UL) /*!< N_CC (Bit 12) */ + #define R_USBHC_HCSPARAMS_N_CC_Msk (0xf000UL) /*!< N_CC (Bitfield-Mask: 0x0f) */ + #define R_USBHC_HCSPARAMS_P_INDICATOR_Pos (16UL) /*!< P_INDICATOR (Bit 16) */ + #define R_USBHC_HCSPARAMS_P_INDICATOR_Msk (0x10000UL) /*!< P_INDICATOR (Bitfield-Mask: 0x01) */ + #define R_USBHC_HCSPARAMS_DBGPTNUM_Pos (20UL) /*!< DBGPTNUM (Bit 20) */ + #define R_USBHC_HCSPARAMS_DBGPTNUM_Msk (0xf00000UL) /*!< DBGPTNUM (Bitfield-Mask: 0x0f) */ +/* ======================================================= HCCPARAMS ======================================================= */ + #define R_USBHC_HCCPARAMS_AC64_Pos (0UL) /*!< AC64 (Bit 0) */ + #define R_USBHC_HCCPARAMS_AC64_Msk (0x1UL) /*!< AC64 (Bitfield-Mask: 0x01) */ + #define R_USBHC_HCCPARAMS_PFLF_Pos (1UL) /*!< PFLF (Bit 1) */ + #define R_USBHC_HCCPARAMS_PFLF_Msk (0x2UL) /*!< PFLF (Bitfield-Mask: 0x01) */ + #define R_USBHC_HCCPARAMS_ASPC_Pos (2UL) /*!< ASPC (Bit 2) */ + #define R_USBHC_HCCPARAMS_ASPC_Msk (0x4UL) /*!< ASPC (Bitfield-Mask: 0x01) */ + #define R_USBHC_HCCPARAMS_IST_Pos (4UL) /*!< IST (Bit 4) */ + #define R_USBHC_HCCPARAMS_IST_Msk (0xf0UL) /*!< IST (Bitfield-Mask: 0x0f) */ + #define R_USBHC_HCCPARAMS_EECP_Pos (8UL) /*!< EECP (Bit 8) */ + #define R_USBHC_HCCPARAMS_EECP_Msk (0xff00UL) /*!< EECP (Bitfield-Mask: 0xff) */ + #define R_USBHC_HCCPARAMS_HP_Pos (16UL) /*!< HP (Bit 16) */ + #define R_USBHC_HCCPARAMS_HP_Msk (0x10000UL) /*!< HP (Bitfield-Mask: 0x01) */ + #define R_USBHC_HCCPARAMS_LPMC_Pos (17UL) /*!< LPMC (Bit 17) */ + #define R_USBHC_HCCPARAMS_LPMC_Msk (0x20000UL) /*!< LPMC (Bitfield-Mask: 0x01) */ + #define R_USBHC_HCCPARAMS_PCEC_Pos (18UL) /*!< PCEC (Bit 18) */ + #define R_USBHC_HCCPARAMS_PCEC_Msk (0x40000UL) /*!< PCEC (Bitfield-Mask: 0x01) */ + #define R_USBHC_HCCPARAMS_PL32_Pos (19UL) /*!< PL32 (Bit 19) */ + #define R_USBHC_HCCPARAMS_PL32_Msk (0x80000UL) /*!< PL32 (Bitfield-Mask: 0x01) */ +/* ==================================================== HCSP_PORTROUTE ===================================================== */ +/* ======================================================== USBCMD ========================================================= */ + #define R_USBHC_USBCMD_RS_Pos (0UL) /*!< RS (Bit 0) */ + #define R_USBHC_USBCMD_RS_Msk (0x1UL) /*!< RS (Bitfield-Mask: 0x01) */ + #define R_USBHC_USBCMD_HCRESET_Pos (1UL) /*!< HCRESET (Bit 1) */ + #define R_USBHC_USBCMD_HCRESET_Msk (0x2UL) /*!< HCRESET (Bitfield-Mask: 0x01) */ + #define R_USBHC_USBCMD_FLS_Pos (2UL) /*!< FLS (Bit 2) */ + #define R_USBHC_USBCMD_FLS_Msk (0xcUL) /*!< FLS (Bitfield-Mask: 0x03) */ + #define R_USBHC_USBCMD_PSE_Pos (4UL) /*!< PSE (Bit 4) */ + #define R_USBHC_USBCMD_PSE_Msk (0x10UL) /*!< PSE (Bitfield-Mask: 0x01) */ + #define R_USBHC_USBCMD_ASYNSE_Pos (5UL) /*!< ASYNSE (Bit 5) */ + #define R_USBHC_USBCMD_ASYNSE_Msk (0x20UL) /*!< ASYNSE (Bitfield-Mask: 0x01) */ + #define R_USBHC_USBCMD_IAAD_Pos (6UL) /*!< IAAD (Bit 6) */ + #define R_USBHC_USBCMD_IAAD_Msk (0x40UL) /*!< IAAD (Bitfield-Mask: 0x01) */ + #define R_USBHC_USBCMD_LHCR_Pos (7UL) /*!< LHCR (Bit 7) */ + #define R_USBHC_USBCMD_LHCR_Msk (0x80UL) /*!< LHCR (Bitfield-Mask: 0x01) */ + #define R_USBHC_USBCMD_ASPMC_Pos (8UL) /*!< ASPMC (Bit 8) */ + #define R_USBHC_USBCMD_ASPMC_Msk (0x300UL) /*!< ASPMC (Bitfield-Mask: 0x03) */ + #define R_USBHC_USBCMD_ASPME_Pos (11UL) /*!< ASPME (Bit 11) */ + #define R_USBHC_USBCMD_ASPME_Msk (0x800UL) /*!< ASPME (Bitfield-Mask: 0x01) */ + #define R_USBHC_USBCMD_PPCEE_Pos (15UL) /*!< PPCEE (Bit 15) */ + #define R_USBHC_USBCMD_PPCEE_Msk (0x8000UL) /*!< PPCEE (Bitfield-Mask: 0x01) */ + #define R_USBHC_USBCMD_ITC_Pos (16UL) /*!< ITC (Bit 16) */ + #define R_USBHC_USBCMD_ITC_Msk (0xff0000UL) /*!< ITC (Bitfield-Mask: 0xff) */ + #define R_USBHC_USBCMD_HIRD_Pos (24UL) /*!< HIRD (Bit 24) */ + #define R_USBHC_USBCMD_HIRD_Msk (0xf000000UL) /*!< HIRD (Bitfield-Mask: 0x0f) */ +/* ======================================================== USBSTS ========================================================= */ + #define R_USBHC_USBSTS_USBINT_Pos (0UL) /*!< USBINT (Bit 0) */ + #define R_USBHC_USBSTS_USBINT_Msk (0x1UL) /*!< USBINT (Bitfield-Mask: 0x01) */ + #define R_USBHC_USBSTS_USBERRINT_Pos (1UL) /*!< USBERRINT (Bit 1) */ + #define R_USBHC_USBSTS_USBERRINT_Msk (0x2UL) /*!< USBERRINT (Bitfield-Mask: 0x01) */ + #define R_USBHC_USBSTS_PTCGDET_Pos (2UL) /*!< PTCGDET (Bit 2) */ + #define R_USBHC_USBSTS_PTCGDET_Msk (0x4UL) /*!< PTCGDET (Bitfield-Mask: 0x01) */ + #define R_USBHC_USBSTS_FLROV_Pos (3UL) /*!< FLROV (Bit 3) */ + #define R_USBHC_USBSTS_FLROV_Msk (0x8UL) /*!< FLROV (Bitfield-Mask: 0x01) */ + #define R_USBHC_USBSTS_HSYSE_Pos (4UL) /*!< HSYSE (Bit 4) */ + #define R_USBHC_USBSTS_HSYSE_Msk (0x10UL) /*!< HSYSE (Bitfield-Mask: 0x01) */ + #define R_USBHC_USBSTS_IAAIS_Pos (5UL) /*!< IAAIS (Bit 5) */ + #define R_USBHC_USBSTS_IAAIS_Msk (0x20UL) /*!< IAAIS (Bitfield-Mask: 0x01) */ + #define R_USBHC_USBSTS_EHCSTS_Pos (12UL) /*!< EHCSTS (Bit 12) */ + #define R_USBHC_USBSTS_EHCSTS_Msk (0x1000UL) /*!< EHCSTS (Bitfield-Mask: 0x01) */ + #define R_USBHC_USBSTS_RECLAM_Pos (13UL) /*!< RECLAM (Bit 13) */ + #define R_USBHC_USBSTS_RECLAM_Msk (0x2000UL) /*!< RECLAM (Bitfield-Mask: 0x01) */ + #define R_USBHC_USBSTS_PSCHSTS_Pos (14UL) /*!< PSCHSTS (Bit 14) */ + #define R_USBHC_USBSTS_PSCHSTS_Msk (0x4000UL) /*!< PSCHSTS (Bitfield-Mask: 0x01) */ + #define R_USBHC_USBSTS_ASS_Pos (15UL) /*!< ASS (Bit 15) */ + #define R_USBHC_USBSTS_ASS_Msk (0x8000UL) /*!< ASS (Bitfield-Mask: 0x01) */ + #define R_USBHC_USBSTS_PTCGDETC_Pos (16UL) /*!< PTCGDETC (Bit 16) */ + #define R_USBHC_USBSTS_PTCGDETC_Msk (0xffff0000UL) /*!< PTCGDETC (Bitfield-Mask: 0xffff) */ +/* ======================================================== USBINTR ======================================================== */ + #define R_USBHC_USBINTR_USBIE_Pos (0UL) /*!< USBIE (Bit 0) */ + #define R_USBHC_USBINTR_USBIE_Msk (0x1UL) /*!< USBIE (Bitfield-Mask: 0x01) */ + #define R_USBHC_USBINTR_USBEIE_Pos (1UL) /*!< USBEIE (Bit 1) */ + #define R_USBHC_USBINTR_USBEIE_Msk (0x2UL) /*!< USBEIE (Bitfield-Mask: 0x01) */ + #define R_USBHC_USBINTR_PTCGIE_Pos (2UL) /*!< PTCGIE (Bit 2) */ + #define R_USBHC_USBINTR_PTCGIE_Msk (0x4UL) /*!< PTCGIE (Bitfield-Mask: 0x01) */ + #define R_USBHC_USBINTR_FMLSTROE_Pos (3UL) /*!< FMLSTROE (Bit 3) */ + #define R_USBHC_USBINTR_FMLSTROE_Msk (0x8UL) /*!< FMLSTROE (Bitfield-Mask: 0x01) */ + #define R_USBHC_USBINTR_HSEE_Pos (4UL) /*!< HSEE (Bit 4) */ + #define R_USBHC_USBINTR_HSEE_Msk (0x10UL) /*!< HSEE (Bitfield-Mask: 0x01) */ + #define R_USBHC_USBINTR_INTAADVE_Pos (5UL) /*!< INTAADVE (Bit 5) */ + #define R_USBHC_USBINTR_INTAADVE_Msk (0x20UL) /*!< INTAADVE (Bitfield-Mask: 0x01) */ + #define R_USBHC_USBINTR_PCGIE_Pos (16UL) /*!< PCGIE (Bit 16) */ + #define R_USBHC_USBINTR_PCGIE_Msk (0xffff0000UL) /*!< PCGIE (Bitfield-Mask: 0xffff) */ +/* ======================================================== FRINDEX ======================================================== */ + #define R_USBHC_FRINDEX_FRAMEINDEX_Pos (0UL) /*!< FRAMEINDEX (Bit 0) */ + #define R_USBHC_FRINDEX_FRAMEINDEX_Msk (0x3fffUL) /*!< FRAMEINDEX (Bitfield-Mask: 0x3fff) */ +/* ===================================================== CTRLDSSEGMENT ===================================================== */ +/* =================================================== PERIODICLISTBASE ==================================================== */ + #define R_USBHC_PERIODICLISTBASE_PFLSA_Pos (12UL) /*!< PFLSA (Bit 12) */ + #define R_USBHC_PERIODICLISTBASE_PFLSA_Msk (0xfffff000UL) /*!< PFLSA (Bitfield-Mask: 0xfffff) */ +/* ===================================================== ASYNCLISTADDR ===================================================== */ + #define R_USBHC_ASYNCLISTADDR_LPL_Pos (5UL) /*!< LPL (Bit 5) */ + #define R_USBHC_ASYNCLISTADDR_LPL_Msk (0xffffffe0UL) /*!< LPL (Bitfield-Mask: 0x7ffffff) */ +/* ====================================================== CONFIGFLAG ======================================================= */ + #define R_USBHC_CONFIGFLAG_CF_Pos (0UL) /*!< CF (Bit 0) */ + #define R_USBHC_CONFIGFLAG_CF_Msk (0x1UL) /*!< CF (Bitfield-Mask: 0x01) */ +/* ======================================================== PORTSC1 ======================================================== */ + #define R_USBHC_PORTSC1_CCSTS_Pos (0UL) /*!< CCSTS (Bit 0) */ + #define R_USBHC_PORTSC1_CCSTS_Msk (0x1UL) /*!< CCSTS (Bitfield-Mask: 0x01) */ + #define R_USBHC_PORTSC1_CSC_Pos (1UL) /*!< CSC (Bit 1) */ + #define R_USBHC_PORTSC1_CSC_Msk (0x2UL) /*!< CSC (Bitfield-Mask: 0x01) */ + #define R_USBHC_PORTSC1_PTE_Pos (2UL) /*!< PTE (Bit 2) */ + #define R_USBHC_PORTSC1_PTE_Msk (0x4UL) /*!< PTE (Bitfield-Mask: 0x01) */ + #define R_USBHC_PORTSC1_PTESC_Pos (3UL) /*!< PTESC (Bit 3) */ + #define R_USBHC_PORTSC1_PTESC_Msk (0x8UL) /*!< PTESC (Bitfield-Mask: 0x01) */ + #define R_USBHC_PORTSC1_OVCACT_Pos (4UL) /*!< OVCACT (Bit 4) */ + #define R_USBHC_PORTSC1_OVCACT_Msk (0x10UL) /*!< OVCACT (Bitfield-Mask: 0x01) */ + #define R_USBHC_PORTSC1_OVCC_Pos (5UL) /*!< OVCC (Bit 5) */ + #define R_USBHC_PORTSC1_OVCC_Msk (0x20UL) /*!< OVCC (Bitfield-Mask: 0x01) */ + #define R_USBHC_PORTSC1_FRCPTRSM_Pos (6UL) /*!< FRCPTRSM (Bit 6) */ + #define R_USBHC_PORTSC1_FRCPTRSM_Msk (0x40UL) /*!< FRCPTRSM (Bitfield-Mask: 0x01) */ + #define R_USBHC_PORTSC1_SUSPEND_Pos (7UL) /*!< SUSPEND (Bit 7) */ + #define R_USBHC_PORTSC1_SUSPEND_Msk (0x80UL) /*!< SUSPEND (Bitfield-Mask: 0x01) */ + #define R_USBHC_PORTSC1_PTRST_Pos (8UL) /*!< PTRST (Bit 8) */ + #define R_USBHC_PORTSC1_PTRST_Msk (0x100UL) /*!< PTRST (Bitfield-Mask: 0x01) */ + #define R_USBHC_PORTSC1_LPMCTL_Pos (9UL) /*!< LPMCTL (Bit 9) */ + #define R_USBHC_PORTSC1_LPMCTL_Msk (0x200UL) /*!< LPMCTL (Bitfield-Mask: 0x01) */ + #define R_USBHC_PORTSC1_LINESTS_Pos (10UL) /*!< LINESTS (Bit 10) */ + #define R_USBHC_PORTSC1_LINESTS_Msk (0xc00UL) /*!< LINESTS (Bitfield-Mask: 0x03) */ + #define R_USBHC_PORTSC1_PP_Pos (12UL) /*!< PP (Bit 12) */ + #define R_USBHC_PORTSC1_PP_Msk (0x1000UL) /*!< PP (Bitfield-Mask: 0x01) */ + #define R_USBHC_PORTSC1_PTOWNR_Pos (13UL) /*!< PTOWNR (Bit 13) */ + #define R_USBHC_PORTSC1_PTOWNR_Msk (0x2000UL) /*!< PTOWNR (Bitfield-Mask: 0x01) */ + #define R_USBHC_PORTSC1_PTINDCTL_Pos (14UL) /*!< PTINDCTL (Bit 14) */ + #define R_USBHC_PORTSC1_PTINDCTL_Msk (0xc000UL) /*!< PTINDCTL (Bitfield-Mask: 0x03) */ + #define R_USBHC_PORTSC1_PTTST_Pos (16UL) /*!< PTTST (Bit 16) */ + #define R_USBHC_PORTSC1_PTTST_Msk (0xf0000UL) /*!< PTTST (Bitfield-Mask: 0x0f) */ + #define R_USBHC_PORTSC1_WKCNNT_E_Pos (20UL) /*!< WKCNNT_E (Bit 20) */ + #define R_USBHC_PORTSC1_WKCNNT_E_Msk (0x100000UL) /*!< WKCNNT_E (Bitfield-Mask: 0x01) */ + #define R_USBHC_PORTSC1_WKDSCNNT_E_Pos (21UL) /*!< WKDSCNNT_E (Bit 21) */ + #define R_USBHC_PORTSC1_WKDSCNNT_E_Msk (0x200000UL) /*!< WKDSCNNT_E (Bitfield-Mask: 0x01) */ + #define R_USBHC_PORTSC1_WKOC_E_Pos (22UL) /*!< WKOC_E (Bit 22) */ + #define R_USBHC_PORTSC1_WKOC_E_Msk (0x400000UL) /*!< WKOC_E (Bitfield-Mask: 0x01) */ + #define R_USBHC_PORTSC1_SUSPSTS_Pos (23UL) /*!< SUSPSTS (Bit 23) */ + #define R_USBHC_PORTSC1_SUSPSTS_Msk (0x1800000UL) /*!< SUSPSTS (Bitfield-Mask: 0x03) */ + #define R_USBHC_PORTSC1_DVADDR_Pos (25UL) /*!< DVADDR (Bit 25) */ + #define R_USBHC_PORTSC1_DVADDR_Msk (0xfe000000UL) /*!< DVADDR (Bitfield-Mask: 0x7f) */ +/* ======================================================= INTENABLE ======================================================= */ + #define R_USBHC_INTENABLE_AHB_INTEN_Pos (0UL) /*!< AHB_INTEN (Bit 0) */ + #define R_USBHC_INTENABLE_AHB_INTEN_Msk (0x1UL) /*!< AHB_INTEN (Bitfield-Mask: 0x01) */ + #define R_USBHC_INTENABLE_USBH_INTAEN_Pos (1UL) /*!< USBH_INTAEN (Bit 1) */ + #define R_USBHC_INTENABLE_USBH_INTAEN_Msk (0x2UL) /*!< USBH_INTAEN (Bitfield-Mask: 0x01) */ + #define R_USBHC_INTENABLE_USBH_INTBEN_Pos (2UL) /*!< USBH_INTBEN (Bit 2) */ + #define R_USBHC_INTENABLE_USBH_INTBEN_Msk (0x4UL) /*!< USBH_INTBEN (Bitfield-Mask: 0x01) */ + #define R_USBHC_INTENABLE_UCOM_INTEN_Pos (3UL) /*!< UCOM_INTEN (Bit 3) */ + #define R_USBHC_INTENABLE_UCOM_INTEN_Msk (0x8UL) /*!< UCOM_INTEN (Bitfield-Mask: 0x01) */ + #define R_USBHC_INTENABLE_WAKEON_INTEN_Pos (4UL) /*!< WAKEON_INTEN (Bit 4) */ + #define R_USBHC_INTENABLE_WAKEON_INTEN_Msk (0x10UL) /*!< WAKEON_INTEN (Bitfield-Mask: 0x01) */ +/* ======================================================= INTSTATUS ======================================================= */ + #define R_USBHC_INTSTATUS_AHB_INT_Pos (0UL) /*!< AHB_INT (Bit 0) */ + #define R_USBHC_INTSTATUS_AHB_INT_Msk (0x1UL) /*!< AHB_INT (Bitfield-Mask: 0x01) */ + #define R_USBHC_INTSTATUS_USBH_INTA_Pos (1UL) /*!< USBH_INTA (Bit 1) */ + #define R_USBHC_INTSTATUS_USBH_INTA_Msk (0x2UL) /*!< USBH_INTA (Bitfield-Mask: 0x01) */ + #define R_USBHC_INTSTATUS_USBH_INTB_Pos (2UL) /*!< USBH_INTB (Bit 2) */ + #define R_USBHC_INTSTATUS_USBH_INTB_Msk (0x4UL) /*!< USBH_INTB (Bitfield-Mask: 0x01) */ + #define R_USBHC_INTSTATUS_UCOM_INT_Pos (3UL) /*!< UCOM_INT (Bit 3) */ + #define R_USBHC_INTSTATUS_UCOM_INT_Msk (0x8UL) /*!< UCOM_INT (Bitfield-Mask: 0x01) */ + #define R_USBHC_INTSTATUS_WAKEON_INT_Pos (4UL) /*!< WAKEON_INT (Bit 4) */ + #define R_USBHC_INTSTATUS_WAKEON_INT_Msk (0x10UL) /*!< WAKEON_INT (Bitfield-Mask: 0x01) */ +/* ======================================================= AHBBUSCTR ======================================================= */ + #define R_USBHC_AHBBUSCTR_MAX_BURST_LEN_Pos (0UL) /*!< MAX_BURST_LEN (Bit 0) */ + #define R_USBHC_AHBBUSCTR_MAX_BURST_LEN_Msk (0x3UL) /*!< MAX_BURST_LEN (Bitfield-Mask: 0x03) */ + #define R_USBHC_AHBBUSCTR_ALIGN_ADDRESS_Pos (4UL) /*!< ALIGN_ADDRESS (Bit 4) */ + #define R_USBHC_AHBBUSCTR_ALIGN_ADDRESS_Msk (0x30UL) /*!< ALIGN_ADDRESS (Bitfield-Mask: 0x03) */ + #define R_USBHC_AHBBUSCTR_PROT_MODE_Pos (8UL) /*!< PROT_MODE (Bit 8) */ + #define R_USBHC_AHBBUSCTR_PROT_MODE_Msk (0x100UL) /*!< PROT_MODE (Bitfield-Mask: 0x01) */ + #define R_USBHC_AHBBUSCTR_PROT_TYPE_Pos (12UL) /*!< PROT_TYPE (Bit 12) */ + #define R_USBHC_AHBBUSCTR_PROT_TYPE_Msk (0xf000UL) /*!< PROT_TYPE (Bitfield-Mask: 0x0f) */ +/* ======================================================== USBCTR ========================================================= */ + #define R_USBHC_USBCTR_USBH_RST_Pos (0UL) /*!< USBH_RST (Bit 0) */ + #define R_USBHC_USBCTR_USBH_RST_Msk (0x1UL) /*!< USBH_RST (Bitfield-Mask: 0x01) */ + #define R_USBHC_USBCTR_PLL_RST_Pos (1UL) /*!< PLL_RST (Bit 1) */ + #define R_USBHC_USBCTR_PLL_RST_Msk (0x2UL) /*!< PLL_RST (Bitfield-Mask: 0x01) */ + #define R_USBHC_USBCTR_DIRPD_Pos (2UL) /*!< DIRPD (Bit 2) */ + #define R_USBHC_USBCTR_DIRPD_Msk (0x4UL) /*!< DIRPD (Bitfield-Mask: 0x01) */ +/* ========================================================= REVID ========================================================= */ + #define R_USBHC_REVID_MINV_Pos (0UL) /*!< MINV (Bit 0) */ + #define R_USBHC_REVID_MINV_Msk (0xffUL) /*!< MINV (Bitfield-Mask: 0xff) */ + #define R_USBHC_REVID_MAJV_Pos (8UL) /*!< MAJV (Bit 8) */ + #define R_USBHC_REVID_MAJV_Msk (0xff00UL) /*!< MAJV (Bitfield-Mask: 0xff) */ + #define R_USBHC_REVID_COREID_Pos (24UL) /*!< COREID (Bit 24) */ + #define R_USBHC_REVID_COREID_Msk (0xff000000UL) /*!< COREID (Bitfield-Mask: 0xff) */ +/* ====================================================== OCSLPTIMSET ====================================================== */ + #define R_USBHC_OCSLPTIMSET_TIMER_OC_Pos (0UL) /*!< TIMER_OC (Bit 0) */ + #define R_USBHC_OCSLPTIMSET_TIMER_OC_Msk (0xfffffUL) /*!< TIMER_OC (Bitfield-Mask: 0xfffff) */ + #define R_USBHC_OCSLPTIMSET_TIMER_SLEEP_Pos (20UL) /*!< TIMER_SLEEP (Bit 20) */ + #define R_USBHC_OCSLPTIMSET_TIMER_SLEEP_Msk (0x1ff00000UL) /*!< TIMER_SLEEP (Bitfield-Mask: 0x1ff) */ +/* ======================================================= COMMCTRL ======================================================== */ + #define R_USBHC_COMMCTRL_PERI_Pos (31UL) /*!< PERI (Bit 31) */ + #define R_USBHC_COMMCTRL_PERI_Msk (0x80000000UL) /*!< PERI (Bitfield-Mask: 0x01) */ +/* ======================================================= OBINTSTA ======================================================== */ + #define R_USBHC_OBINTSTA_IDCHG_STA_Pos (0UL) /*!< IDCHG_STA (Bit 0) */ + #define R_USBHC_OBINTSTA_IDCHG_STA_Msk (0x1UL) /*!< IDCHG_STA (Bitfield-Mask: 0x01) */ + #define R_USBHC_OBINTSTA_OCINT_STA_Pos (1UL) /*!< OCINT_STA (Bit 1) */ + #define R_USBHC_OBINTSTA_OCINT_STA_Msk (0x2UL) /*!< OCINT_STA (Bitfield-Mask: 0x01) */ + #define R_USBHC_OBINTSTA_VBSTACHG_STA_Pos (2UL) /*!< VBSTACHG_STA (Bit 2) */ + #define R_USBHC_OBINTSTA_VBSTACHG_STA_Msk (0x4UL) /*!< VBSTACHG_STA (Bitfield-Mask: 0x01) */ + #define R_USBHC_OBINTSTA_VBSTAINT_STA_Pos (3UL) /*!< VBSTAINT_STA (Bit 3) */ + #define R_USBHC_OBINTSTA_VBSTAINT_STA_Msk (0x8UL) /*!< VBSTAINT_STA (Bitfield-Mask: 0x01) */ + #define R_USBHC_OBINTSTA_DMMONCHG_STA_Pos (16UL) /*!< DMMONCHG_STA (Bit 16) */ + #define R_USBHC_OBINTSTA_DMMONCHG_STA_Msk (0x10000UL) /*!< DMMONCHG_STA (Bitfield-Mask: 0x01) */ + #define R_USBHC_OBINTSTA_DPMONCHG_STA_Pos (17UL) /*!< DPMONCHG_STA (Bit 17) */ + #define R_USBHC_OBINTSTA_DPMONCHG_STA_Msk (0x20000UL) /*!< DPMONCHG_STA (Bitfield-Mask: 0x01) */ +/* ======================================================== OBINTEN ======================================================== */ + #define R_USBHC_OBINTEN_IDCHG_EN_Pos (0UL) /*!< IDCHG_EN (Bit 0) */ + #define R_USBHC_OBINTEN_IDCHG_EN_Msk (0x1UL) /*!< IDCHG_EN (Bitfield-Mask: 0x01) */ + #define R_USBHC_OBINTEN_OCINT_EN_Pos (1UL) /*!< OCINT_EN (Bit 1) */ + #define R_USBHC_OBINTEN_OCINT_EN_Msk (0x2UL) /*!< OCINT_EN (Bitfield-Mask: 0x01) */ + #define R_USBHC_OBINTEN_VBSTACHG_EN_Pos (2UL) /*!< VBSTACHG_EN (Bit 2) */ + #define R_USBHC_OBINTEN_VBSTACHG_EN_Msk (0x4UL) /*!< VBSTACHG_EN (Bitfield-Mask: 0x01) */ + #define R_USBHC_OBINTEN_VBSTAINT_EN_Pos (3UL) /*!< VBSTAINT_EN (Bit 3) */ + #define R_USBHC_OBINTEN_VBSTAINT_EN_Msk (0x8UL) /*!< VBSTAINT_EN (Bitfield-Mask: 0x01) */ + #define R_USBHC_OBINTEN_DMMONCHG_EN_Pos (16UL) /*!< DMMONCHG_EN (Bit 16) */ + #define R_USBHC_OBINTEN_DMMONCHG_EN_Msk (0x10000UL) /*!< DMMONCHG_EN (Bitfield-Mask: 0x01) */ + #define R_USBHC_OBINTEN_DPMONCHG_EN_Pos (17UL) /*!< DPMONCHG_EN (Bit 17) */ + #define R_USBHC_OBINTEN_DPMONCHG_EN_Msk (0x20000UL) /*!< DPMONCHG_EN (Bitfield-Mask: 0x01) */ +/* ======================================================== VBCTRL ========================================================= */ + #define R_USBHC_VBCTRL_VBOUT_Pos (0UL) /*!< VBOUT (Bit 0) */ + #define R_USBHC_VBCTRL_VBOUT_Msk (0x1UL) /*!< VBOUT (Bitfield-Mask: 0x01) */ + #define R_USBHC_VBCTRL_VBUSENSEL_Pos (1UL) /*!< VBUSENSEL (Bit 1) */ + #define R_USBHC_VBCTRL_VBUSENSEL_Msk (0x2UL) /*!< VBUSENSEL (Bitfield-Mask: 0x01) */ + #define R_USBHC_VBCTRL_VGPUO_Pos (4UL) /*!< VGPUO (Bit 4) */ + #define R_USBHC_VBCTRL_VGPUO_Msk (0x10UL) /*!< VGPUO (Bitfield-Mask: 0x01) */ + #define R_USBHC_VBCTRL_OCCLRIEN_Pos (16UL) /*!< OCCLRIEN (Bit 16) */ + #define R_USBHC_VBCTRL_OCCLRIEN_Msk (0x10000UL) /*!< OCCLRIEN (Bitfield-Mask: 0x01) */ + #define R_USBHC_VBCTRL_OCISEL_Pos (17UL) /*!< OCISEL (Bit 17) */ + #define R_USBHC_VBCTRL_OCISEL_Msk (0x20000UL) /*!< OCISEL (Bitfield-Mask: 0x01) */ + #define R_USBHC_VBCTRL_VBLVL_Pos (20UL) /*!< VBLVL (Bit 20) */ + #define R_USBHC_VBCTRL_VBLVL_Msk (0xf00000UL) /*!< VBLVL (Bitfield-Mask: 0x0f) */ + #define R_USBHC_VBCTRL_VBSTA_Pos (28UL) /*!< VBSTA (Bit 28) */ + #define R_USBHC_VBCTRL_VBSTA_Msk (0xf0000000UL) /*!< VBSTA (Bitfield-Mask: 0x0f) */ +/* ======================================================= LINECTRL1 ======================================================= */ + #define R_USBHC_LINECTRL1_IDMON_Pos (0UL) /*!< IDMON (Bit 0) */ + #define R_USBHC_LINECTRL1_IDMON_Msk (0x1UL) /*!< IDMON (Bitfield-Mask: 0x01) */ + #define R_USBHC_LINECTRL1_DMMON_Pos (2UL) /*!< DMMON (Bit 2) */ + #define R_USBHC_LINECTRL1_DMMON_Msk (0x4UL) /*!< DMMON (Bitfield-Mask: 0x01) */ + #define R_USBHC_LINECTRL1_DPMON_Pos (3UL) /*!< DPMON (Bit 3) */ + #define R_USBHC_LINECTRL1_DPMON_Msk (0x8UL) /*!< DPMON (Bitfield-Mask: 0x01) */ + #define R_USBHC_LINECTRL1_DM_RPD_Pos (16UL) /*!< DM_RPD (Bit 16) */ + #define R_USBHC_LINECTRL1_DM_RPD_Msk (0x10000UL) /*!< DM_RPD (Bitfield-Mask: 0x01) */ + #define R_USBHC_LINECTRL1_DMRPD_EN_Pos (17UL) /*!< DMRPD_EN (Bit 17) */ + #define R_USBHC_LINECTRL1_DMRPD_EN_Msk (0x20000UL) /*!< DMRPD_EN (Bitfield-Mask: 0x01) */ + #define R_USBHC_LINECTRL1_DP_RPD_Pos (18UL) /*!< DP_RPD (Bit 18) */ + #define R_USBHC_LINECTRL1_DP_RPD_Msk (0x40000UL) /*!< DP_RPD (Bitfield-Mask: 0x01) */ + #define R_USBHC_LINECTRL1_DPRPD_EN_Pos (19UL) /*!< DPRPD_EN (Bit 19) */ + #define R_USBHC_LINECTRL1_DPRPD_EN_Msk (0x80000UL) /*!< DPRPD_EN (Bitfield-Mask: 0x01) */ + +/* =========================================================================================================================== */ +/* ================ R_USBF ================ */ +/* =========================================================================================================================== */ + +/* ======================================================== SYSCFG0 ======================================================== */ + #define R_USBF_SYSCFG0_USBE_Pos (0UL) /*!< USBE (Bit 0) */ + #define R_USBF_SYSCFG0_USBE_Msk (0x1UL) /*!< USBE (Bitfield-Mask: 0x01) */ + #define R_USBF_SYSCFG0_DPRPU_Pos (4UL) /*!< DPRPU (Bit 4) */ + #define R_USBF_SYSCFG0_DPRPU_Msk (0x10UL) /*!< DPRPU (Bitfield-Mask: 0x01) */ + #define R_USBF_SYSCFG0_DRPD_Pos (5UL) /*!< DRPD (Bit 5) */ + #define R_USBF_SYSCFG0_DRPD_Msk (0x20UL) /*!< DRPD (Bitfield-Mask: 0x01) */ + #define R_USBF_SYSCFG0_HSE_Pos (7UL) /*!< HSE (Bit 7) */ + #define R_USBF_SYSCFG0_HSE_Msk (0x80UL) /*!< HSE (Bitfield-Mask: 0x01) */ + #define R_USBF_SYSCFG0_CNEN_Pos (8UL) /*!< CNEN (Bit 8) */ + #define R_USBF_SYSCFG0_CNEN_Msk (0x100UL) /*!< CNEN (Bitfield-Mask: 0x01) */ +/* ======================================================== SYSCFG1 ======================================================== */ + #define R_USBF_SYSCFG1_BWAIT_Pos (0UL) /*!< BWAIT (Bit 0) */ + #define R_USBF_SYSCFG1_BWAIT_Msk (0x3fUL) /*!< BWAIT (Bitfield-Mask: 0x3f) */ + #define R_USBF_SYSCFG1_AWAIT_Pos (8UL) /*!< AWAIT (Bit 8) */ + #define R_USBF_SYSCFG1_AWAIT_Msk (0x3f00UL) /*!< AWAIT (Bitfield-Mask: 0x3f) */ +/* ======================================================== SYSSTS0 ======================================================== */ + #define R_USBF_SYSSTS0_LNST_Pos (0UL) /*!< LNST (Bit 0) */ + #define R_USBF_SYSSTS0_LNST_Msk (0x3UL) /*!< LNST (Bitfield-Mask: 0x03) */ +/* ======================================================= DVSTCTR0 ======================================================== */ + #define R_USBF_DVSTCTR0_RHST_Pos (0UL) /*!< RHST (Bit 0) */ + #define R_USBF_DVSTCTR0_RHST_Msk (0x7UL) /*!< RHST (Bitfield-Mask: 0x07) */ + #define R_USBF_DVSTCTR0_WKUP_Pos (8UL) /*!< WKUP (Bit 8) */ + #define R_USBF_DVSTCTR0_WKUP_Msk (0x100UL) /*!< WKUP (Bitfield-Mask: 0x01) */ +/* ======================================================= TESTMODE ======================================================== */ + #define R_USBF_TESTMODE_UTST_Pos (0UL) /*!< UTST (Bit 0) */ + #define R_USBF_TESTMODE_UTST_Msk (0xfUL) /*!< UTST (Bitfield-Mask: 0x0f) */ +/* ========================================================= CFIFO ========================================================= */ + #define R_USBF_CFIFO_FIFOPORT_Pos (0UL) /*!< FIFOPORT (Bit 0) */ + #define R_USBF_CFIFO_FIFOPORT_Msk (0xffffffffUL) /*!< FIFOPORT (Bitfield-Mask: 0xffffffff) */ +/* ======================================================== CFIFOL ========================================================= */ +/* ======================================================== CFIFOLL ======================================================== */ +/* ======================================================== CFIFOH ========================================================= */ + #define R_USBF_CFIFOH_FIFOPORT_Pos (0UL) /*!< FIFOPORT (Bit 0) */ + #define R_USBF_CFIFOH_FIFOPORT_Msk (0xffffUL) /*!< FIFOPORT (Bitfield-Mask: 0xffff) */ +/* ======================================================== CFIFOHH ======================================================== */ + #define R_USBF_CFIFOHH_FIFOPORT_Pos (0UL) /*!< FIFOPORT (Bit 0) */ + #define R_USBF_CFIFOHH_FIFOPORT_Msk (0xffUL) /*!< FIFOPORT (Bitfield-Mask: 0xff) */ +/* ======================================================== D0FIFO ========================================================= */ + #define R_USBF_D0FIFO_FIFOPORT_Pos (0UL) /*!< FIFOPORT (Bit 0) */ + #define R_USBF_D0FIFO_FIFOPORT_Msk (0xffffffffUL) /*!< FIFOPORT (Bitfield-Mask: 0xffffffff) */ +/* ======================================================== D0FIFOL ======================================================== */ +/* ======================================================= D0FIFOLL ======================================================== */ +/* ======================================================== D0FIFOH ======================================================== */ + #define R_USBF_D0FIFOH_FIFOPORT_Pos (0UL) /*!< FIFOPORT (Bit 0) */ + #define R_USBF_D0FIFOH_FIFOPORT_Msk (0xffffUL) /*!< FIFOPORT (Bitfield-Mask: 0xffff) */ +/* ======================================================= D0FIFOHH ======================================================== */ + #define R_USBF_D0FIFOHH_FIFOPORT_Pos (0UL) /*!< FIFOPORT (Bit 0) */ + #define R_USBF_D0FIFOHH_FIFOPORT_Msk (0xffUL) /*!< FIFOPORT (Bitfield-Mask: 0xff) */ +/* ======================================================== D1FIFO ========================================================= */ + #define R_USBF_D1FIFO_FIFOPORT_Pos (0UL) /*!< FIFOPORT (Bit 0) */ + #define R_USBF_D1FIFO_FIFOPORT_Msk (0xffffffffUL) /*!< FIFOPORT (Bitfield-Mask: 0xffffffff) */ +/* ======================================================== D1FIFOL ======================================================== */ +/* ======================================================= D1FIFOLL ======================================================== */ +/* ======================================================== D1FIFOH ======================================================== */ + #define R_USBF_D1FIFOH_FIFOPORT_Pos (0UL) /*!< FIFOPORT (Bit 0) */ + #define R_USBF_D1FIFOH_FIFOPORT_Msk (0xffffUL) /*!< FIFOPORT (Bitfield-Mask: 0xffff) */ +/* ======================================================= D1FIFOHH ======================================================== */ + #define R_USBF_D1FIFOHH_FIFOPORT_Pos (0UL) /*!< FIFOPORT (Bit 0) */ + #define R_USBF_D1FIFOHH_FIFOPORT_Msk (0xffUL) /*!< FIFOPORT (Bitfield-Mask: 0xff) */ +/* ======================================================= CFIFOSEL ======================================================== */ + #define R_USBF_CFIFOSEL_CURPIPE_Pos (0UL) /*!< CURPIPE (Bit 0) */ + #define R_USBF_CFIFOSEL_CURPIPE_Msk (0xfUL) /*!< CURPIPE (Bitfield-Mask: 0x0f) */ + #define R_USBF_CFIFOSEL_ISEL_Pos (5UL) /*!< ISEL (Bit 5) */ + #define R_USBF_CFIFOSEL_ISEL_Msk (0x20UL) /*!< ISEL (Bitfield-Mask: 0x01) */ + #define R_USBF_CFIFOSEL_BIGEND_Pos (8UL) /*!< BIGEND (Bit 8) */ + #define R_USBF_CFIFOSEL_BIGEND_Msk (0x100UL) /*!< BIGEND (Bitfield-Mask: 0x01) */ + #define R_USBF_CFIFOSEL_MBW_Pos (10UL) /*!< MBW (Bit 10) */ + #define R_USBF_CFIFOSEL_MBW_Msk (0xc00UL) /*!< MBW (Bitfield-Mask: 0x03) */ + #define R_USBF_CFIFOSEL_REW_Pos (14UL) /*!< REW (Bit 14) */ + #define R_USBF_CFIFOSEL_REW_Msk (0x4000UL) /*!< REW (Bitfield-Mask: 0x01) */ + #define R_USBF_CFIFOSEL_RCNT_Pos (15UL) /*!< RCNT (Bit 15) */ + #define R_USBF_CFIFOSEL_RCNT_Msk (0x8000UL) /*!< RCNT (Bitfield-Mask: 0x01) */ +/* ======================================================= CFIFOCTR ======================================================== */ + #define R_USBF_CFIFOCTR_DTLN_Pos (0UL) /*!< DTLN (Bit 0) */ + #define R_USBF_CFIFOCTR_DTLN_Msk (0xfffUL) /*!< DTLN (Bitfield-Mask: 0xfff) */ + #define R_USBF_CFIFOCTR_FRDY_Pos (13UL) /*!< FRDY (Bit 13) */ + #define R_USBF_CFIFOCTR_FRDY_Msk (0x2000UL) /*!< FRDY (Bitfield-Mask: 0x01) */ + #define R_USBF_CFIFOCTR_BCLR_Pos (14UL) /*!< BCLR (Bit 14) */ + #define R_USBF_CFIFOCTR_BCLR_Msk (0x4000UL) /*!< BCLR (Bitfield-Mask: 0x01) */ + #define R_USBF_CFIFOCTR_BVAL_Pos (15UL) /*!< BVAL (Bit 15) */ + #define R_USBF_CFIFOCTR_BVAL_Msk (0x8000UL) /*!< BVAL (Bitfield-Mask: 0x01) */ +/* ======================================================= D0FIFOSEL ======================================================= */ + #define R_USBF_D0FIFOSEL_CURPIPE_Pos (0UL) /*!< CURPIPE (Bit 0) */ + #define R_USBF_D0FIFOSEL_CURPIPE_Msk (0xfUL) /*!< CURPIPE (Bitfield-Mask: 0x0f) */ + #define R_USBF_D0FIFOSEL_BIGEND_Pos (8UL) /*!< BIGEND (Bit 8) */ + #define R_USBF_D0FIFOSEL_BIGEND_Msk (0x100UL) /*!< BIGEND (Bitfield-Mask: 0x01) */ + #define R_USBF_D0FIFOSEL_MBW_Pos (10UL) /*!< MBW (Bit 10) */ + #define R_USBF_D0FIFOSEL_MBW_Msk (0xc00UL) /*!< MBW (Bitfield-Mask: 0x03) */ + #define R_USBF_D0FIFOSEL_DREQE_Pos (12UL) /*!< DREQE (Bit 12) */ + #define R_USBF_D0FIFOSEL_DREQE_Msk (0x1000UL) /*!< DREQE (Bitfield-Mask: 0x01) */ + #define R_USBF_D0FIFOSEL_DCLRM_Pos (13UL) /*!< DCLRM (Bit 13) */ + #define R_USBF_D0FIFOSEL_DCLRM_Msk (0x2000UL) /*!< DCLRM (Bitfield-Mask: 0x01) */ + #define R_USBF_D0FIFOSEL_REW_Pos (14UL) /*!< REW (Bit 14) */ + #define R_USBF_D0FIFOSEL_REW_Msk (0x4000UL) /*!< REW (Bitfield-Mask: 0x01) */ + #define R_USBF_D0FIFOSEL_RCNT_Pos (15UL) /*!< RCNT (Bit 15) */ + #define R_USBF_D0FIFOSEL_RCNT_Msk (0x8000UL) /*!< RCNT (Bitfield-Mask: 0x01) */ +/* ======================================================= D1FIFOSEL ======================================================= */ + #define R_USBF_D1FIFOSEL_CURPIPE_Pos (0UL) /*!< CURPIPE (Bit 0) */ + #define R_USBF_D1FIFOSEL_CURPIPE_Msk (0xfUL) /*!< CURPIPE (Bitfield-Mask: 0x0f) */ + #define R_USBF_D1FIFOSEL_BIGEND_Pos (8UL) /*!< BIGEND (Bit 8) */ + #define R_USBF_D1FIFOSEL_BIGEND_Msk (0x100UL) /*!< BIGEND (Bitfield-Mask: 0x01) */ + #define R_USBF_D1FIFOSEL_MBW_Pos (10UL) /*!< MBW (Bit 10) */ + #define R_USBF_D1FIFOSEL_MBW_Msk (0xc00UL) /*!< MBW (Bitfield-Mask: 0x03) */ + #define R_USBF_D1FIFOSEL_DREQE_Pos (12UL) /*!< DREQE (Bit 12) */ + #define R_USBF_D1FIFOSEL_DREQE_Msk (0x1000UL) /*!< DREQE (Bitfield-Mask: 0x01) */ + #define R_USBF_D1FIFOSEL_DCLRM_Pos (13UL) /*!< DCLRM (Bit 13) */ + #define R_USBF_D1FIFOSEL_DCLRM_Msk (0x2000UL) /*!< DCLRM (Bitfield-Mask: 0x01) */ + #define R_USBF_D1FIFOSEL_REW_Pos (14UL) /*!< REW (Bit 14) */ + #define R_USBF_D1FIFOSEL_REW_Msk (0x4000UL) /*!< REW (Bitfield-Mask: 0x01) */ + #define R_USBF_D1FIFOSEL_RCNT_Pos (15UL) /*!< RCNT (Bit 15) */ + #define R_USBF_D1FIFOSEL_RCNT_Msk (0x8000UL) /*!< RCNT (Bitfield-Mask: 0x01) */ +/* ======================================================= D0FIFOCTR ======================================================= */ + #define R_USBF_D0FIFOCTR_DTLN_Pos (0UL) /*!< DTLN (Bit 0) */ + #define R_USBF_D0FIFOCTR_DTLN_Msk (0xfffUL) /*!< DTLN (Bitfield-Mask: 0xfff) */ + #define R_USBF_D0FIFOCTR_FRDY_Pos (13UL) /*!< FRDY (Bit 13) */ + #define R_USBF_D0FIFOCTR_FRDY_Msk (0x2000UL) /*!< FRDY (Bitfield-Mask: 0x01) */ + #define R_USBF_D0FIFOCTR_BCLR_Pos (14UL) /*!< BCLR (Bit 14) */ + #define R_USBF_D0FIFOCTR_BCLR_Msk (0x4000UL) /*!< BCLR (Bitfield-Mask: 0x01) */ + #define R_USBF_D0FIFOCTR_BVAL_Pos (15UL) /*!< BVAL (Bit 15) */ + #define R_USBF_D0FIFOCTR_BVAL_Msk (0x8000UL) /*!< BVAL (Bitfield-Mask: 0x01) */ +/* ======================================================= D1FIFOCTR ======================================================= */ + #define R_USBF_D1FIFOCTR_DTLN_Pos (0UL) /*!< DTLN (Bit 0) */ + #define R_USBF_D1FIFOCTR_DTLN_Msk (0xfffUL) /*!< DTLN (Bitfield-Mask: 0xfff) */ + #define R_USBF_D1FIFOCTR_FRDY_Pos (13UL) /*!< FRDY (Bit 13) */ + #define R_USBF_D1FIFOCTR_FRDY_Msk (0x2000UL) /*!< FRDY (Bitfield-Mask: 0x01) */ + #define R_USBF_D1FIFOCTR_BCLR_Pos (14UL) /*!< BCLR (Bit 14) */ + #define R_USBF_D1FIFOCTR_BCLR_Msk (0x4000UL) /*!< BCLR (Bitfield-Mask: 0x01) */ + #define R_USBF_D1FIFOCTR_BVAL_Pos (15UL) /*!< BVAL (Bit 15) */ + #define R_USBF_D1FIFOCTR_BVAL_Msk (0x8000UL) /*!< BVAL (Bitfield-Mask: 0x01) */ +/* ======================================================== INTENB0 ======================================================== */ + #define R_USBF_INTENB0_BRDYE_Pos (8UL) /*!< BRDYE (Bit 8) */ + #define R_USBF_INTENB0_BRDYE_Msk (0x100UL) /*!< BRDYE (Bitfield-Mask: 0x01) */ + #define R_USBF_INTENB0_NRDYE_Pos (9UL) /*!< NRDYE (Bit 9) */ + #define R_USBF_INTENB0_NRDYE_Msk (0x200UL) /*!< NRDYE (Bitfield-Mask: 0x01) */ + #define R_USBF_INTENB0_BEMPE_Pos (10UL) /*!< BEMPE (Bit 10) */ + #define R_USBF_INTENB0_BEMPE_Msk (0x400UL) /*!< BEMPE (Bitfield-Mask: 0x01) */ + #define R_USBF_INTENB0_CTRE_Pos (11UL) /*!< CTRE (Bit 11) */ + #define R_USBF_INTENB0_CTRE_Msk (0x800UL) /*!< CTRE (Bitfield-Mask: 0x01) */ + #define R_USBF_INTENB0_DVSE_Pos (12UL) /*!< DVSE (Bit 12) */ + #define R_USBF_INTENB0_DVSE_Msk (0x1000UL) /*!< DVSE (Bitfield-Mask: 0x01) */ + #define R_USBF_INTENB0_SOFE_Pos (13UL) /*!< SOFE (Bit 13) */ + #define R_USBF_INTENB0_SOFE_Msk (0x2000UL) /*!< SOFE (Bitfield-Mask: 0x01) */ + #define R_USBF_INTENB0_RSME_Pos (14UL) /*!< RSME (Bit 14) */ + #define R_USBF_INTENB0_RSME_Msk (0x4000UL) /*!< RSME (Bitfield-Mask: 0x01) */ + #define R_USBF_INTENB0_VBSE_Pos (15UL) /*!< VBSE (Bit 15) */ + #define R_USBF_INTENB0_VBSE_Msk (0x8000UL) /*!< VBSE (Bitfield-Mask: 0x01) */ +/* ======================================================== INTENB1 ======================================================== */ + #define R_USBF_INTENB1_PDDETINTE_Pos (0UL) /*!< PDDETINTE (Bit 0) */ + #define R_USBF_INTENB1_PDDETINTE_Msk (0x1UL) /*!< PDDETINTE (Bitfield-Mask: 0x01) */ +/* ======================================================== BRDYENB ======================================================== */ + #define R_USBF_BRDYENB_PIPEBRDYE_Pos (0UL) /*!< PIPEBRDYE (Bit 0) */ + #define R_USBF_BRDYENB_PIPEBRDYE_Msk (0x3ffUL) /*!< PIPEBRDYE (Bitfield-Mask: 0x3ff) */ +/* ======================================================== NRDYENB ======================================================== */ + #define R_USBF_NRDYENB_PIPENRDYE_Pos (0UL) /*!< PIPENRDYE (Bit 0) */ + #define R_USBF_NRDYENB_PIPENRDYE_Msk (0x3ffUL) /*!< PIPENRDYE (Bitfield-Mask: 0x3ff) */ +/* ======================================================== BEMPENB ======================================================== */ + #define R_USBF_BEMPENB_PIPEBEMPE_Pos (0UL) /*!< PIPEBEMPE (Bit 0) */ + #define R_USBF_BEMPENB_PIPEBEMPE_Msk (0x3ffUL) /*!< PIPEBEMPE (Bitfield-Mask: 0x3ff) */ +/* ======================================================== SOFCFG ========================================================= */ + #define R_USBF_SOFCFG_EDGESTS_Pos (4UL) /*!< EDGESTS (Bit 4) */ + #define R_USBF_SOFCFG_EDGESTS_Msk (0x10UL) /*!< EDGESTS (Bitfield-Mask: 0x01) */ + #define R_USBF_SOFCFG_INTL_Pos (5UL) /*!< INTL (Bit 5) */ + #define R_USBF_SOFCFG_INTL_Msk (0x20UL) /*!< INTL (Bitfield-Mask: 0x01) */ + #define R_USBF_SOFCFG_BRDYM_Pos (6UL) /*!< BRDYM (Bit 6) */ + #define R_USBF_SOFCFG_BRDYM_Msk (0x40UL) /*!< BRDYM (Bitfield-Mask: 0x01) */ +/* ======================================================== INTSTS0 ======================================================== */ + #define R_USBF_INTSTS0_CTSQ_Pos (0UL) /*!< CTSQ (Bit 0) */ + #define R_USBF_INTSTS0_CTSQ_Msk (0x7UL) /*!< CTSQ (Bitfield-Mask: 0x07) */ + #define R_USBF_INTSTS0_VALID_Pos (3UL) /*!< VALID (Bit 3) */ + #define R_USBF_INTSTS0_VALID_Msk (0x8UL) /*!< VALID (Bitfield-Mask: 0x01) */ + #define R_USBF_INTSTS0_DVSQ_Pos (4UL) /*!< DVSQ (Bit 4) */ + #define R_USBF_INTSTS0_DVSQ_Msk (0x70UL) /*!< DVSQ (Bitfield-Mask: 0x07) */ + #define R_USBF_INTSTS0_VBSTS_Pos (7UL) /*!< VBSTS (Bit 7) */ + #define R_USBF_INTSTS0_VBSTS_Msk (0x80UL) /*!< VBSTS (Bitfield-Mask: 0x01) */ + #define R_USBF_INTSTS0_BRDY_Pos (8UL) /*!< BRDY (Bit 8) */ + #define R_USBF_INTSTS0_BRDY_Msk (0x100UL) /*!< BRDY (Bitfield-Mask: 0x01) */ + #define R_USBF_INTSTS0_NRDY_Pos (9UL) /*!< NRDY (Bit 9) */ + #define R_USBF_INTSTS0_NRDY_Msk (0x200UL) /*!< NRDY (Bitfield-Mask: 0x01) */ + #define R_USBF_INTSTS0_BEMP_Pos (10UL) /*!< BEMP (Bit 10) */ + #define R_USBF_INTSTS0_BEMP_Msk (0x400UL) /*!< BEMP (Bitfield-Mask: 0x01) */ + #define R_USBF_INTSTS0_CTRT_Pos (11UL) /*!< CTRT (Bit 11) */ + #define R_USBF_INTSTS0_CTRT_Msk (0x800UL) /*!< CTRT (Bitfield-Mask: 0x01) */ + #define R_USBF_INTSTS0_DVST_Pos (12UL) /*!< DVST (Bit 12) */ + #define R_USBF_INTSTS0_DVST_Msk (0x1000UL) /*!< DVST (Bitfield-Mask: 0x01) */ + #define R_USBF_INTSTS0_SOFR_Pos (13UL) /*!< SOFR (Bit 13) */ + #define R_USBF_INTSTS0_SOFR_Msk (0x2000UL) /*!< SOFR (Bitfield-Mask: 0x01) */ + #define R_USBF_INTSTS0_RESM_Pos (14UL) /*!< RESM (Bit 14) */ + #define R_USBF_INTSTS0_RESM_Msk (0x4000UL) /*!< RESM (Bitfield-Mask: 0x01) */ + #define R_USBF_INTSTS0_VBINT_Pos (15UL) /*!< VBINT (Bit 15) */ + #define R_USBF_INTSTS0_VBINT_Msk (0x8000UL) /*!< VBINT (Bitfield-Mask: 0x01) */ +/* ======================================================== INTSTS1 ======================================================== */ + #define R_USBF_INTSTS1_PDDETINT_Pos (0UL) /*!< PDDETINT (Bit 0) */ + #define R_USBF_INTSTS1_PDDETINT_Msk (0x1UL) /*!< PDDETINT (Bitfield-Mask: 0x01) */ +/* ======================================================== BRDYSTS ======================================================== */ + #define R_USBF_BRDYSTS_PIPEBRDY_Pos (0UL) /*!< PIPEBRDY (Bit 0) */ + #define R_USBF_BRDYSTS_PIPEBRDY_Msk (0x3ffUL) /*!< PIPEBRDY (Bitfield-Mask: 0x3ff) */ +/* ======================================================== NRDYSTS ======================================================== */ + #define R_USBF_NRDYSTS_PIPENRDY_Pos (0UL) /*!< PIPENRDY (Bit 0) */ + #define R_USBF_NRDYSTS_PIPENRDY_Msk (0x3ffUL) /*!< PIPENRDY (Bitfield-Mask: 0x3ff) */ +/* ======================================================== BEMPSTS ======================================================== */ + #define R_USBF_BEMPSTS_PIPEBEMP_Pos (0UL) /*!< PIPEBEMP (Bit 0) */ + #define R_USBF_BEMPSTS_PIPEBEMP_Msk (0x3ffUL) /*!< PIPEBEMP (Bitfield-Mask: 0x3ff) */ +/* ======================================================== FRMNUM ========================================================= */ + #define R_USBF_FRMNUM_FRNM_Pos (0UL) /*!< FRNM (Bit 0) */ + #define R_USBF_FRMNUM_FRNM_Msk (0x7ffUL) /*!< FRNM (Bitfield-Mask: 0x7ff) */ + #define R_USBF_FRMNUM_CRCE_Pos (14UL) /*!< CRCE (Bit 14) */ + #define R_USBF_FRMNUM_CRCE_Msk (0x4000UL) /*!< CRCE (Bitfield-Mask: 0x01) */ + #define R_USBF_FRMNUM_OVRN_Pos (15UL) /*!< OVRN (Bit 15) */ + #define R_USBF_FRMNUM_OVRN_Msk (0x8000UL) /*!< OVRN (Bitfield-Mask: 0x01) */ +/* ======================================================== UFRMNUM ======================================================== */ + #define R_USBF_UFRMNUM_UFRNM_Pos (0UL) /*!< UFRNM (Bit 0) */ + #define R_USBF_UFRMNUM_UFRNM_Msk (0x7UL) /*!< UFRNM (Bitfield-Mask: 0x07) */ +/* ======================================================== USBADDR ======================================================== */ + #define R_USBF_USBADDR_USBADDR_Pos (0UL) /*!< USBADDR (Bit 0) */ + #define R_USBF_USBADDR_USBADDR_Msk (0x7fUL) /*!< USBADDR (Bitfield-Mask: 0x7f) */ +/* ======================================================== USBREQ ========================================================= */ + #define R_USBF_USBREQ_BMREQUESTTYPE_Pos (0UL) /*!< BMREQUESTTYPE (Bit 0) */ + #define R_USBF_USBREQ_BMREQUESTTYPE_Msk (0xffUL) /*!< BMREQUESTTYPE (Bitfield-Mask: 0xff) */ + #define R_USBF_USBREQ_BREQUEST_Pos (8UL) /*!< BREQUEST (Bit 8) */ + #define R_USBF_USBREQ_BREQUEST_Msk (0xff00UL) /*!< BREQUEST (Bitfield-Mask: 0xff) */ +/* ======================================================== USBVAL ========================================================= */ + #define R_USBF_USBVAL_WVALUE_Pos (0UL) /*!< WVALUE (Bit 0) */ + #define R_USBF_USBVAL_WVALUE_Msk (0xffffUL) /*!< WVALUE (Bitfield-Mask: 0xffff) */ +/* ======================================================== USBINDX ======================================================== */ + #define R_USBF_USBINDX_WINDEX_Pos (0UL) /*!< WINDEX (Bit 0) */ + #define R_USBF_USBINDX_WINDEX_Msk (0xffffUL) /*!< WINDEX (Bitfield-Mask: 0xffff) */ +/* ======================================================== USBLENG ======================================================== */ + #define R_USBF_USBLENG_WLENGTH_Pos (0UL) /*!< WLENGTH (Bit 0) */ + #define R_USBF_USBLENG_WLENGTH_Msk (0xffffUL) /*!< WLENGTH (Bitfield-Mask: 0xffff) */ +/* ======================================================== DCPCFG ========================================================= */ + #define R_USBF_DCPCFG_SHTNAK_Pos (7UL) /*!< SHTNAK (Bit 7) */ + #define R_USBF_DCPCFG_SHTNAK_Msk (0x80UL) /*!< SHTNAK (Bitfield-Mask: 0x01) */ + #define R_USBF_DCPCFG_CNTMD_Pos (8UL) /*!< CNTMD (Bit 8) */ + #define R_USBF_DCPCFG_CNTMD_Msk (0x100UL) /*!< CNTMD (Bitfield-Mask: 0x01) */ +/* ======================================================== DCPMAXP ======================================================== */ + #define R_USBF_DCPMAXP_MXPS_Pos (0UL) /*!< MXPS (Bit 0) */ + #define R_USBF_DCPMAXP_MXPS_Msk (0x7fUL) /*!< MXPS (Bitfield-Mask: 0x7f) */ +/* ======================================================== DCPCTR ========================================================= */ + #define R_USBF_DCPCTR_PID_Pos (0UL) /*!< PID (Bit 0) */ + #define R_USBF_DCPCTR_PID_Msk (0x3UL) /*!< PID (Bitfield-Mask: 0x03) */ + #define R_USBF_DCPCTR_CCPL_Pos (2UL) /*!< CCPL (Bit 2) */ + #define R_USBF_DCPCTR_CCPL_Msk (0x4UL) /*!< CCPL (Bitfield-Mask: 0x01) */ + #define R_USBF_DCPCTR_PBUSY_Pos (5UL) /*!< PBUSY (Bit 5) */ + #define R_USBF_DCPCTR_PBUSY_Msk (0x20UL) /*!< PBUSY (Bitfield-Mask: 0x01) */ + #define R_USBF_DCPCTR_SQMON_Pos (6UL) /*!< SQMON (Bit 6) */ + #define R_USBF_DCPCTR_SQMON_Msk (0x40UL) /*!< SQMON (Bitfield-Mask: 0x01) */ + #define R_USBF_DCPCTR_SQSET_Pos (7UL) /*!< SQSET (Bit 7) */ + #define R_USBF_DCPCTR_SQSET_Msk (0x80UL) /*!< SQSET (Bitfield-Mask: 0x01) */ + #define R_USBF_DCPCTR_SQCLR_Pos (8UL) /*!< SQCLR (Bit 8) */ + #define R_USBF_DCPCTR_SQCLR_Msk (0x100UL) /*!< SQCLR (Bitfield-Mask: 0x01) */ + #define R_USBF_DCPCTR_BSTS_Pos (15UL) /*!< BSTS (Bit 15) */ + #define R_USBF_DCPCTR_BSTS_Msk (0x8000UL) /*!< BSTS (Bitfield-Mask: 0x01) */ +/* ======================================================== PIPESEL ======================================================== */ + #define R_USBF_PIPESEL_PIPESEL_Pos (0UL) /*!< PIPESEL (Bit 0) */ + #define R_USBF_PIPESEL_PIPESEL_Msk (0xfUL) /*!< PIPESEL (Bitfield-Mask: 0x0f) */ +/* ======================================================== PIPECFG ======================================================== */ + #define R_USBF_PIPECFG_EPNUM_Pos (0UL) /*!< EPNUM (Bit 0) */ + #define R_USBF_PIPECFG_EPNUM_Msk (0xfUL) /*!< EPNUM (Bitfield-Mask: 0x0f) */ + #define R_USBF_PIPECFG_DIR_Pos (4UL) /*!< DIR (Bit 4) */ + #define R_USBF_PIPECFG_DIR_Msk (0x10UL) /*!< DIR (Bitfield-Mask: 0x01) */ + #define R_USBF_PIPECFG_SHTNAK_Pos (7UL) /*!< SHTNAK (Bit 7) */ + #define R_USBF_PIPECFG_SHTNAK_Msk (0x80UL) /*!< SHTNAK (Bitfield-Mask: 0x01) */ + #define R_USBF_PIPECFG_CNTMD_Pos (8UL) /*!< CNTMD (Bit 8) */ + #define R_USBF_PIPECFG_CNTMD_Msk (0x100UL) /*!< CNTMD (Bitfield-Mask: 0x01) */ + #define R_USBF_PIPECFG_DBLB_Pos (9UL) /*!< DBLB (Bit 9) */ + #define R_USBF_PIPECFG_DBLB_Msk (0x200UL) /*!< DBLB (Bitfield-Mask: 0x01) */ + #define R_USBF_PIPECFG_BFRE_Pos (10UL) /*!< BFRE (Bit 10) */ + #define R_USBF_PIPECFG_BFRE_Msk (0x400UL) /*!< BFRE (Bitfield-Mask: 0x01) */ + #define R_USBF_PIPECFG_TYPE_Pos (14UL) /*!< TYPE (Bit 14) */ + #define R_USBF_PIPECFG_TYPE_Msk (0xc000UL) /*!< TYPE (Bitfield-Mask: 0x03) */ +/* ======================================================== PIPEBUF ======================================================== */ + #define R_USBF_PIPEBUF_BUFNMB_Pos (0UL) /*!< BUFNMB (Bit 0) */ + #define R_USBF_PIPEBUF_BUFNMB_Msk (0xffUL) /*!< BUFNMB (Bitfield-Mask: 0xff) */ + #define R_USBF_PIPEBUF_BUFSIZE_Pos (10UL) /*!< BUFSIZE (Bit 10) */ + #define R_USBF_PIPEBUF_BUFSIZE_Msk (0x7c00UL) /*!< BUFSIZE (Bitfield-Mask: 0x1f) */ +/* ======================================================= PIPEMAXP ======================================================== */ + #define R_USBF_PIPEMAXP_MXPS_Pos (0UL) /*!< MXPS (Bit 0) */ + #define R_USBF_PIPEMAXP_MXPS_Msk (0x7ffUL) /*!< MXPS (Bitfield-Mask: 0x7ff) */ +/* ======================================================= PIPEPERI ======================================================== */ + #define R_USBF_PIPEPERI_IITV_Pos (0UL) /*!< IITV (Bit 0) */ + #define R_USBF_PIPEPERI_IITV_Msk (0x7UL) /*!< IITV (Bitfield-Mask: 0x07) */ + #define R_USBF_PIPEPERI_IFIS_Pos (12UL) /*!< IFIS (Bit 12) */ + #define R_USBF_PIPEPERI_IFIS_Msk (0x1000UL) /*!< IFIS (Bitfield-Mask: 0x01) */ +/* ======================================================= PIPE_CTR ======================================================== */ + #define R_USBF_PIPE_CTR_PID_Pos (0UL) /*!< PID (Bit 0) */ + #define R_USBF_PIPE_CTR_PID_Msk (0x3UL) /*!< PID (Bitfield-Mask: 0x03) */ + #define R_USBF_PIPE_CTR_PBUSY_Pos (5UL) /*!< PBUSY (Bit 5) */ + #define R_USBF_PIPE_CTR_PBUSY_Msk (0x20UL) /*!< PBUSY (Bitfield-Mask: 0x01) */ + #define R_USBF_PIPE_CTR_SQMON_Pos (6UL) /*!< SQMON (Bit 6) */ + #define R_USBF_PIPE_CTR_SQMON_Msk (0x40UL) /*!< SQMON (Bitfield-Mask: 0x01) */ + #define R_USBF_PIPE_CTR_SQSET_Pos (7UL) /*!< SQSET (Bit 7) */ + #define R_USBF_PIPE_CTR_SQSET_Msk (0x80UL) /*!< SQSET (Bitfield-Mask: 0x01) */ + #define R_USBF_PIPE_CTR_SQCLR_Pos (8UL) /*!< SQCLR (Bit 8) */ + #define R_USBF_PIPE_CTR_SQCLR_Msk (0x100UL) /*!< SQCLR (Bitfield-Mask: 0x01) */ + #define R_USBF_PIPE_CTR_ACLRM_Pos (9UL) /*!< ACLRM (Bit 9) */ + #define R_USBF_PIPE_CTR_ACLRM_Msk (0x200UL) /*!< ACLRM (Bitfield-Mask: 0x01) */ + #define R_USBF_PIPE_CTR_ATREPM_Pos (10UL) /*!< ATREPM (Bit 10) */ + #define R_USBF_PIPE_CTR_ATREPM_Msk (0x400UL) /*!< ATREPM (Bitfield-Mask: 0x01) */ + #define R_USBF_PIPE_CTR_INBUFM_Pos (14UL) /*!< INBUFM (Bit 14) */ + #define R_USBF_PIPE_CTR_INBUFM_Msk (0x4000UL) /*!< INBUFM (Bitfield-Mask: 0x01) */ + #define R_USBF_PIPE_CTR_BSTS_Pos (15UL) /*!< BSTS (Bit 15) */ + #define R_USBF_PIPE_CTR_BSTS_Msk (0x8000UL) /*!< BSTS (Bitfield-Mask: 0x01) */ +/* ========================================================= LPSTS ========================================================= */ + #define R_USBF_LPSTS_SUSPM_Pos (14UL) /*!< SUSPM (Bit 14) */ + #define R_USBF_LPSTS_SUSPM_Msk (0x4000UL) /*!< SUSPM (Bitfield-Mask: 0x01) */ +/* ========================================================= DCTRL ========================================================= */ + #define R_USBF_DCTRL_PR_Pos (0UL) /*!< PR (Bit 0) */ + #define R_USBF_DCTRL_PR_Msk (0x1UL) /*!< PR (Bitfield-Mask: 0x01) */ + #define R_USBF_DCTRL_LDPR_Pos (16UL) /*!< LDPR (Bit 16) */ + #define R_USBF_DCTRL_LDPR_Msk (0xf0000UL) /*!< LDPR (Bitfield-Mask: 0x0f) */ + #define R_USBF_DCTRL_LWPR_Pos (24UL) /*!< LWPR (Bit 24) */ + #define R_USBF_DCTRL_LWPR_Msk (0xf000000UL) /*!< LWPR (Bitfield-Mask: 0x0f) */ +/* ======================================================== DSCITVL ======================================================== */ + #define R_USBF_DSCITVL_DITVL_Pos (8UL) /*!< DITVL (Bit 8) */ + #define R_USBF_DSCITVL_DITVL_Msk (0xff00UL) /*!< DITVL (Bitfield-Mask: 0xff) */ +/* ======================================================= DSTAT_EN ======================================================== */ + #define R_USBF_DSTAT_EN_EN0_Pos (0UL) /*!< EN0 (Bit 0) */ + #define R_USBF_DSTAT_EN_EN0_Msk (0x1UL) /*!< EN0 (Bitfield-Mask: 0x01) */ + #define R_USBF_DSTAT_EN_EN1_Pos (1UL) /*!< EN1 (Bit 1) */ + #define R_USBF_DSTAT_EN_EN1_Msk (0x2UL) /*!< EN1 (Bitfield-Mask: 0x01) */ +/* ======================================================= DSTAT_ER ======================================================== */ + #define R_USBF_DSTAT_ER_ER0_Pos (0UL) /*!< ER0 (Bit 0) */ + #define R_USBF_DSTAT_ER_ER0_Msk (0x1UL) /*!< ER0 (Bitfield-Mask: 0x01) */ + #define R_USBF_DSTAT_ER_ER1_Pos (1UL) /*!< ER1 (Bit 1) */ + #define R_USBF_DSTAT_ER_ER1_Msk (0x2UL) /*!< ER1 (Bitfield-Mask: 0x01) */ +/* ======================================================= DSTAT_END ======================================================= */ + #define R_USBF_DSTAT_END_END0_Pos (0UL) /*!< END0 (Bit 0) */ + #define R_USBF_DSTAT_END_END0_Msk (0x1UL) /*!< END0 (Bitfield-Mask: 0x01) */ + #define R_USBF_DSTAT_END_END1_Pos (1UL) /*!< END1 (Bit 1) */ + #define R_USBF_DSTAT_END_END1_Msk (0x2UL) /*!< END1 (Bitfield-Mask: 0x01) */ +/* ======================================================= DSTAT_TC ======================================================== */ + #define R_USBF_DSTAT_TC_TC0_Pos (0UL) /*!< TC0 (Bit 0) */ + #define R_USBF_DSTAT_TC_TC0_Msk (0x1UL) /*!< TC0 (Bitfield-Mask: 0x01) */ + #define R_USBF_DSTAT_TC_TC1_Pos (1UL) /*!< TC1 (Bit 1) */ + #define R_USBF_DSTAT_TC_TC1_Msk (0x2UL) /*!< TC1 (Bitfield-Mask: 0x01) */ +/* ======================================================= DSTAT_SUS ======================================================= */ + #define R_USBF_DSTAT_SUS_SUS0_Pos (0UL) /*!< SUS0 (Bit 0) */ + #define R_USBF_DSTAT_SUS_SUS0_Msk (0x1UL) /*!< SUS0 (Bitfield-Mask: 0x01) */ + #define R_USBF_DSTAT_SUS_SUS1_Pos (1UL) /*!< SUS1 (Bit 1) */ + #define R_USBF_DSTAT_SUS_SUS1_Msk (0x2UL) /*!< SUS1 (Bitfield-Mask: 0x01) */ + +/* =========================================================================================================================== */ +/* ================ R_BSC ================ */ +/* =========================================================================================================================== */ + +/* ========================================================= CMNCR ========================================================= */ + #define R_BSC_CMNCR_DPRTY_Pos (9UL) /*!< DPRTY (Bit 9) */ + #define R_BSC_CMNCR_DPRTY_Msk (0x600UL) /*!< DPRTY (Bitfield-Mask: 0x03) */ + #define R_BSC_CMNCR_AL_Pos (24UL) /*!< AL (Bit 24) */ + #define R_BSC_CMNCR_AL_Msk (0x1000000UL) /*!< AL (Bitfield-Mask: 0x01) */ + #define R_BSC_CMNCR_TL_Pos (28UL) /*!< TL (Bit 28) */ + #define R_BSC_CMNCR_TL_Msk (0x10000000UL) /*!< TL (Bitfield-Mask: 0x01) */ +/* ======================================================== CSnBCR ========================================================= */ + #define R_BSC_CSnBCR_BSZ_Pos (9UL) /*!< BSZ (Bit 9) */ + #define R_BSC_CSnBCR_BSZ_Msk (0x600UL) /*!< BSZ (Bitfield-Mask: 0x03) */ + #define R_BSC_CSnBCR_TYPE_Pos (12UL) /*!< TYPE (Bit 12) */ + #define R_BSC_CSnBCR_TYPE_Msk (0x7000UL) /*!< TYPE (Bitfield-Mask: 0x07) */ + #define R_BSC_CSnBCR_IWRRS_Pos (16UL) /*!< IWRRS (Bit 16) */ + #define R_BSC_CSnBCR_IWRRS_Msk (0x70000UL) /*!< IWRRS (Bitfield-Mask: 0x07) */ + #define R_BSC_CSnBCR_IWRRD_Pos (19UL) /*!< IWRRD (Bit 19) */ + #define R_BSC_CSnBCR_IWRRD_Msk (0x380000UL) /*!< IWRRD (Bitfield-Mask: 0x07) */ + #define R_BSC_CSnBCR_IWRWS_Pos (22UL) /*!< IWRWS (Bit 22) */ + #define R_BSC_CSnBCR_IWRWS_Msk (0x1c00000UL) /*!< IWRWS (Bitfield-Mask: 0x07) */ + #define R_BSC_CSnBCR_IWRWD_Pos (25UL) /*!< IWRWD (Bit 25) */ + #define R_BSC_CSnBCR_IWRWD_Msk (0xe000000UL) /*!< IWRWD (Bitfield-Mask: 0x07) */ + #define R_BSC_CSnBCR_IWW_Pos (28UL) /*!< IWW (Bit 28) */ + #define R_BSC_CSnBCR_IWW_Msk (0x70000000UL) /*!< IWW (Bitfield-Mask: 0x07) */ +/* ======================================================= CS0WCR_0 ======================================================== */ + #define R_BSC_CS0WCR_0_HW_Pos (0UL) /*!< HW (Bit 0) */ + #define R_BSC_CS0WCR_0_HW_Msk (0x3UL) /*!< HW (Bitfield-Mask: 0x03) */ + #define R_BSC_CS0WCR_0_WM_Pos (6UL) /*!< WM (Bit 6) */ + #define R_BSC_CS0WCR_0_WM_Msk (0x40UL) /*!< WM (Bitfield-Mask: 0x01) */ + #define R_BSC_CS0WCR_0_WR_Pos (7UL) /*!< WR (Bit 7) */ + #define R_BSC_CS0WCR_0_WR_Msk (0x780UL) /*!< WR (Bitfield-Mask: 0x0f) */ + #define R_BSC_CS0WCR_0_SW_Pos (11UL) /*!< SW (Bit 11) */ + #define R_BSC_CS0WCR_0_SW_Msk (0x1800UL) /*!< SW (Bitfield-Mask: 0x03) */ + #define R_BSC_CS0WCR_0_BAS_Pos (20UL) /*!< BAS (Bit 20) */ + #define R_BSC_CS0WCR_0_BAS_Msk (0x100000UL) /*!< BAS (Bitfield-Mask: 0x01) */ +/* ======================================================= CS0WCR_1 ======================================================== */ + #define R_BSC_CS0WCR_1_WM_Pos (6UL) /*!< WM (Bit 6) */ + #define R_BSC_CS0WCR_1_WM_Msk (0x40UL) /*!< WM (Bitfield-Mask: 0x01) */ + #define R_BSC_CS0WCR_1_W_Pos (7UL) /*!< W (Bit 7) */ + #define R_BSC_CS0WCR_1_W_Msk (0x780UL) /*!< W (Bitfield-Mask: 0x0f) */ + #define R_BSC_CS0WCR_1_BW_Pos (16UL) /*!< BW (Bit 16) */ + #define R_BSC_CS0WCR_1_BW_Msk (0x30000UL) /*!< BW (Bitfield-Mask: 0x03) */ + #define R_BSC_CS0WCR_1_BST_Pos (20UL) /*!< BST (Bit 20) */ + #define R_BSC_CS0WCR_1_BST_Msk (0x300000UL) /*!< BST (Bitfield-Mask: 0x03) */ +/* ======================================================= CS0WCR_2 ======================================================== */ + #define R_BSC_CS0WCR_2_WM_Pos (6UL) /*!< WM (Bit 6) */ + #define R_BSC_CS0WCR_2_WM_Msk (0x40UL) /*!< WM (Bitfield-Mask: 0x01) */ + #define R_BSC_CS0WCR_2_W_Pos (7UL) /*!< W (Bit 7) */ + #define R_BSC_CS0WCR_2_W_Msk (0x780UL) /*!< W (Bitfield-Mask: 0x0f) */ + #define R_BSC_CS0WCR_2_BW_Pos (16UL) /*!< BW (Bit 16) */ + #define R_BSC_CS0WCR_2_BW_Msk (0x30000UL) /*!< BW (Bitfield-Mask: 0x03) */ +/* ======================================================= CS2WCR_0 ======================================================== */ + #define R_BSC_CS2WCR_0_WM_Pos (6UL) /*!< WM (Bit 6) */ + #define R_BSC_CS2WCR_0_WM_Msk (0x40UL) /*!< WM (Bitfield-Mask: 0x01) */ + #define R_BSC_CS2WCR_0_WR_Pos (7UL) /*!< WR (Bit 7) */ + #define R_BSC_CS2WCR_0_WR_Msk (0x780UL) /*!< WR (Bitfield-Mask: 0x0f) */ + #define R_BSC_CS2WCR_0_BAS_Pos (20UL) /*!< BAS (Bit 20) */ + #define R_BSC_CS2WCR_0_BAS_Msk (0x100000UL) /*!< BAS (Bitfield-Mask: 0x01) */ +/* ======================================================= CS2WCR_1 ======================================================== */ + #define R_BSC_CS2WCR_1_A2CL_Pos (7UL) /*!< A2CL (Bit 7) */ + #define R_BSC_CS2WCR_1_A2CL_Msk (0x180UL) /*!< A2CL (Bitfield-Mask: 0x03) */ +/* ======================================================= CS3WCR_0 ======================================================== */ + #define R_BSC_CS3WCR_0_WM_Pos (6UL) /*!< WM (Bit 6) */ + #define R_BSC_CS3WCR_0_WM_Msk (0x40UL) /*!< WM (Bitfield-Mask: 0x01) */ + #define R_BSC_CS3WCR_0_WR_Pos (7UL) /*!< WR (Bit 7) */ + #define R_BSC_CS3WCR_0_WR_Msk (0x780UL) /*!< WR (Bitfield-Mask: 0x0f) */ + #define R_BSC_CS3WCR_0_BAS_Pos (20UL) /*!< BAS (Bit 20) */ + #define R_BSC_CS3WCR_0_BAS_Msk (0x100000UL) /*!< BAS (Bitfield-Mask: 0x01) */ +/* ======================================================= CS3WCR_1 ======================================================== */ + #define R_BSC_CS3WCR_1_WTRC_Pos (0UL) /*!< WTRC (Bit 0) */ + #define R_BSC_CS3WCR_1_WTRC_Msk (0x3UL) /*!< WTRC (Bitfield-Mask: 0x03) */ + #define R_BSC_CS3WCR_1_TRWL_Pos (3UL) /*!< TRWL (Bit 3) */ + #define R_BSC_CS3WCR_1_TRWL_Msk (0x18UL) /*!< TRWL (Bitfield-Mask: 0x03) */ + #define R_BSC_CS3WCR_1_A3CL_Pos (7UL) /*!< A3CL (Bit 7) */ + #define R_BSC_CS3WCR_1_A3CL_Msk (0x180UL) /*!< A3CL (Bitfield-Mask: 0x03) */ + #define R_BSC_CS3WCR_1_WTRCD_Pos (10UL) /*!< WTRCD (Bit 10) */ + #define R_BSC_CS3WCR_1_WTRCD_Msk (0xc00UL) /*!< WTRCD (Bitfield-Mask: 0x03) */ + #define R_BSC_CS3WCR_1_WTRP_Pos (13UL) /*!< WTRP (Bit 13) */ + #define R_BSC_CS3WCR_1_WTRP_Msk (0x6000UL) /*!< WTRP (Bitfield-Mask: 0x03) */ +/* ======================================================== CS5WCR ========================================================= */ + #define R_BSC_CS5WCR_HW_Pos (0UL) /*!< HW (Bit 0) */ + #define R_BSC_CS5WCR_HW_Msk (0x3UL) /*!< HW (Bitfield-Mask: 0x03) */ + #define R_BSC_CS5WCR_WM_Pos (6UL) /*!< WM (Bit 6) */ + #define R_BSC_CS5WCR_WM_Msk (0x40UL) /*!< WM (Bitfield-Mask: 0x01) */ + #define R_BSC_CS5WCR_WR_Pos (7UL) /*!< WR (Bit 7) */ + #define R_BSC_CS5WCR_WR_Msk (0x780UL) /*!< WR (Bitfield-Mask: 0x0f) */ + #define R_BSC_CS5WCR_SW_Pos (11UL) /*!< SW (Bit 11) */ + #define R_BSC_CS5WCR_SW_Msk (0x1800UL) /*!< SW (Bitfield-Mask: 0x03) */ + #define R_BSC_CS5WCR_WW_Pos (16UL) /*!< WW (Bit 16) */ + #define R_BSC_CS5WCR_WW_Msk (0x70000UL) /*!< WW (Bitfield-Mask: 0x07) */ + #define R_BSC_CS5WCR_MPXWSBAS_Pos (20UL) /*!< MPXWSBAS (Bit 20) */ + #define R_BSC_CS5WCR_MPXWSBAS_Msk (0x100000UL) /*!< MPXWSBAS (Bitfield-Mask: 0x01) */ + #define R_BSC_CS5WCR_SZSEL_Pos (21UL) /*!< SZSEL (Bit 21) */ + #define R_BSC_CS5WCR_SZSEL_Msk (0x200000UL) /*!< SZSEL (Bitfield-Mask: 0x01) */ +/* ========================================================= SDCR ========================================================== */ + #define R_BSC_SDCR_A3COL_Pos (0UL) /*!< A3COL (Bit 0) */ + #define R_BSC_SDCR_A3COL_Msk (0x3UL) /*!< A3COL (Bitfield-Mask: 0x03) */ + #define R_BSC_SDCR_A3ROW_Pos (3UL) /*!< A3ROW (Bit 3) */ + #define R_BSC_SDCR_A3ROW_Msk (0x18UL) /*!< A3ROW (Bitfield-Mask: 0x03) */ + #define R_BSC_SDCR_BACTV_Pos (8UL) /*!< BACTV (Bit 8) */ + #define R_BSC_SDCR_BACTV_Msk (0x100UL) /*!< BACTV (Bitfield-Mask: 0x01) */ + #define R_BSC_SDCR_PDOWN_Pos (9UL) /*!< PDOWN (Bit 9) */ + #define R_BSC_SDCR_PDOWN_Msk (0x200UL) /*!< PDOWN (Bitfield-Mask: 0x01) */ + #define R_BSC_SDCR_RMODE_Pos (10UL) /*!< RMODE (Bit 10) */ + #define R_BSC_SDCR_RMODE_Msk (0x400UL) /*!< RMODE (Bitfield-Mask: 0x01) */ + #define R_BSC_SDCR_RFSH_Pos (11UL) /*!< RFSH (Bit 11) */ + #define R_BSC_SDCR_RFSH_Msk (0x800UL) /*!< RFSH (Bitfield-Mask: 0x01) */ + #define R_BSC_SDCR_DEEP_Pos (13UL) /*!< DEEP (Bit 13) */ + #define R_BSC_SDCR_DEEP_Msk (0x2000UL) /*!< DEEP (Bitfield-Mask: 0x01) */ + #define R_BSC_SDCR_A2COL_Pos (16UL) /*!< A2COL (Bit 16) */ + #define R_BSC_SDCR_A2COL_Msk (0x30000UL) /*!< A2COL (Bitfield-Mask: 0x03) */ + #define R_BSC_SDCR_A2ROW_Pos (19UL) /*!< A2ROW (Bit 19) */ + #define R_BSC_SDCR_A2ROW_Msk (0x180000UL) /*!< A2ROW (Bitfield-Mask: 0x03) */ +/* ========================================================= RTCSR ========================================================= */ +/* ========================================================= RTCNT ========================================================= */ +/* ========================================================= RTCOR ========================================================= */ +/* ======================================================== TOSCOR ========================================================= */ + #define R_BSC_TOSCOR_TOCNUM_Pos (0UL) /*!< TOCNUM (Bit 0) */ + #define R_BSC_TOSCOR_TOCNUM_Msk (0xffffUL) /*!< TOCNUM (Bitfield-Mask: 0xffff) */ +/* ========================================================= TOSTR ========================================================= */ + #define R_BSC_TOSTR_CS0TOSTF_Pos (0UL) /*!< CS0TOSTF (Bit 0) */ + #define R_BSC_TOSTR_CS0TOSTF_Msk (0x1UL) /*!< CS0TOSTF (Bitfield-Mask: 0x01) */ + #define R_BSC_TOSTR_CS2TOSTF_Pos (2UL) /*!< CS2TOSTF (Bit 2) */ + #define R_BSC_TOSTR_CS2TOSTF_Msk (0x4UL) /*!< CS2TOSTF (Bitfield-Mask: 0x01) */ + #define R_BSC_TOSTR_CS3TOSTF_Pos (3UL) /*!< CS3TOSTF (Bit 3) */ + #define R_BSC_TOSTR_CS3TOSTF_Msk (0x8UL) /*!< CS3TOSTF (Bitfield-Mask: 0x01) */ + #define R_BSC_TOSTR_CS5TOSTF_Pos (5UL) /*!< CS5TOSTF (Bit 5) */ + #define R_BSC_TOSTR_CS5TOSTF_Msk (0x20UL) /*!< CS5TOSTF (Bitfield-Mask: 0x01) */ +/* ========================================================= TOENR ========================================================= */ + #define R_BSC_TOENR_CS0TOEN_Pos (0UL) /*!< CS0TOEN (Bit 0) */ + #define R_BSC_TOENR_CS0TOEN_Msk (0x1UL) /*!< CS0TOEN (Bitfield-Mask: 0x01) */ + #define R_BSC_TOENR_CS2TOEN_Pos (2UL) /*!< CS2TOEN (Bit 2) */ + #define R_BSC_TOENR_CS2TOEN_Msk (0x4UL) /*!< CS2TOEN (Bitfield-Mask: 0x01) */ + #define R_BSC_TOENR_CS3TOEN_Pos (3UL) /*!< CS3TOEN (Bit 3) */ + #define R_BSC_TOENR_CS3TOEN_Msk (0x8UL) /*!< CS3TOEN (Bitfield-Mask: 0x01) */ + #define R_BSC_TOENR_CS5TOEN_Pos (5UL) /*!< CS5TOEN (Bit 5) */ + #define R_BSC_TOENR_CS5TOEN_Msk (0x20UL) /*!< CS5TOEN (Bitfield-Mask: 0x01) */ + +/* =========================================================================================================================== */ +/* ================ R_XSPI0 ================ */ +/* =========================================================================================================================== */ + +/* ======================================================== WRAPCFG ======================================================== */ + #define R_XSPI0_WRAPCFG_DSSFTCS0_Pos (8UL) /*!< DSSFTCS0 (Bit 8) */ + #define R_XSPI0_WRAPCFG_DSSFTCS0_Msk (0x1f00UL) /*!< DSSFTCS0 (Bitfield-Mask: 0x1f) */ + #define R_XSPI0_WRAPCFG_DSSFTCS1_Pos (24UL) /*!< DSSFTCS1 (Bit 24) */ + #define R_XSPI0_WRAPCFG_DSSFTCS1_Msk (0x1f000000UL) /*!< DSSFTCS1 (Bitfield-Mask: 0x1f) */ +/* ======================================================== COMCFG ========================================================= */ + #define R_XSPI0_COMCFG_OEASTEX_Pos (16UL) /*!< OEASTEX (Bit 16) */ + #define R_XSPI0_COMCFG_OEASTEX_Msk (0x10000UL) /*!< OEASTEX (Bitfield-Mask: 0x01) */ + #define R_XSPI0_COMCFG_OENEGEX_Pos (17UL) /*!< OENEGEX (Bit 17) */ + #define R_XSPI0_COMCFG_OENEGEX_Msk (0x20000UL) /*!< OENEGEX (Bitfield-Mask: 0x01) */ +/* ========================================================= BMCFG ========================================================= */ + #define R_XSPI0_BMCFG_WRMD_Pos (0UL) /*!< WRMD (Bit 0) */ + #define R_XSPI0_BMCFG_WRMD_Msk (0x1UL) /*!< WRMD (Bitfield-Mask: 0x01) */ + #define R_XSPI0_BMCFG_MWRCOMB_Pos (7UL) /*!< MWRCOMB (Bit 7) */ + #define R_XSPI0_BMCFG_MWRCOMB_Msk (0x80UL) /*!< MWRCOMB (Bitfield-Mask: 0x01) */ + #define R_XSPI0_BMCFG_MWRSIZE_Pos (8UL) /*!< MWRSIZE (Bit 8) */ + #define R_XSPI0_BMCFG_MWRSIZE_Msk (0xff00UL) /*!< MWRSIZE (Bitfield-Mask: 0xff) */ + #define R_XSPI0_BMCFG_PREEN_Pos (16UL) /*!< PREEN (Bit 16) */ + #define R_XSPI0_BMCFG_PREEN_Msk (0x10000UL) /*!< PREEN (Bitfield-Mask: 0x01) */ +/* ======================================================= LIOCFGCS ======================================================== */ + #define R_XSPI0_LIOCFGCS_PRTMD_Pos (0UL) /*!< PRTMD (Bit 0) */ + #define R_XSPI0_LIOCFGCS_PRTMD_Msk (0x3ffUL) /*!< PRTMD (Bitfield-Mask: 0x3ff) */ + #define R_XSPI0_LIOCFGCS_LATEMD_Pos (10UL) /*!< LATEMD (Bit 10) */ + #define R_XSPI0_LIOCFGCS_LATEMD_Msk (0x400UL) /*!< LATEMD (Bitfield-Mask: 0x01) */ + #define R_XSPI0_LIOCFGCS_WRMSKMD_Pos (11UL) /*!< WRMSKMD (Bit 11) */ + #define R_XSPI0_LIOCFGCS_WRMSKMD_Msk (0x800UL) /*!< WRMSKMD (Bitfield-Mask: 0x01) */ + #define R_XSPI0_LIOCFGCS_CSMIN_Pos (16UL) /*!< CSMIN (Bit 16) */ + #define R_XSPI0_LIOCFGCS_CSMIN_Msk (0xf0000UL) /*!< CSMIN (Bitfield-Mask: 0x0f) */ + #define R_XSPI0_LIOCFGCS_CSASTEX_Pos (20UL) /*!< CSASTEX (Bit 20) */ + #define R_XSPI0_LIOCFGCS_CSASTEX_Msk (0x100000UL) /*!< CSASTEX (Bitfield-Mask: 0x01) */ + #define R_XSPI0_LIOCFGCS_CSNEGEX_Pos (21UL) /*!< CSNEGEX (Bit 21) */ + #define R_XSPI0_LIOCFGCS_CSNEGEX_Msk (0x200000UL) /*!< CSNEGEX (Bitfield-Mask: 0x01) */ + #define R_XSPI0_LIOCFGCS_SDRDRV_Pos (22UL) /*!< SDRDRV (Bit 22) */ + #define R_XSPI0_LIOCFGCS_SDRDRV_Msk (0x400000UL) /*!< SDRDRV (Bitfield-Mask: 0x01) */ + #define R_XSPI0_LIOCFGCS_SDRSMPMD_Pos (23UL) /*!< SDRSMPMD (Bit 23) */ + #define R_XSPI0_LIOCFGCS_SDRSMPMD_Msk (0x800000UL) /*!< SDRSMPMD (Bitfield-Mask: 0x01) */ + #define R_XSPI0_LIOCFGCS_SDRSMPSFT_Pos (24UL) /*!< SDRSMPSFT (Bit 24) */ + #define R_XSPI0_LIOCFGCS_SDRSMPSFT_Msk (0xf000000UL) /*!< SDRSMPSFT (Bitfield-Mask: 0x0f) */ + #define R_XSPI0_LIOCFGCS_DDRSMPEX_Pos (28UL) /*!< DDRSMPEX (Bit 28) */ + #define R_XSPI0_LIOCFGCS_DDRSMPEX_Msk (0xf0000000UL) /*!< DDRSMPEX (Bitfield-Mask: 0x0f) */ +/* ======================================================== BMCTL0 ========================================================= */ + #define R_XSPI0_BMCTL0_CS0ACC_Pos (0UL) /*!< CS0ACC (Bit 0) */ + #define R_XSPI0_BMCTL0_CS0ACC_Msk (0x3UL) /*!< CS0ACC (Bitfield-Mask: 0x03) */ + #define R_XSPI0_BMCTL0_CS1ACC_Pos (2UL) /*!< CS1ACC (Bit 2) */ + #define R_XSPI0_BMCTL0_CS1ACC_Msk (0xcUL) /*!< CS1ACC (Bitfield-Mask: 0x03) */ +/* ======================================================== BMCTL1 ========================================================= */ + #define R_XSPI0_BMCTL1_MWRPUSH_Pos (8UL) /*!< MWRPUSH (Bit 8) */ + #define R_XSPI0_BMCTL1_MWRPUSH_Msk (0x100UL) /*!< MWRPUSH (Bitfield-Mask: 0x01) */ + #define R_XSPI0_BMCTL1_PBUFCLR_Pos (10UL) /*!< PBUFCLR (Bit 10) */ + #define R_XSPI0_BMCTL1_PBUFCLR_Msk (0x400UL) /*!< PBUFCLR (Bitfield-Mask: 0x01) */ +/* ========================================================= CMCTL ========================================================= */ + #define R_XSPI0_CMCTL_XIPENCODE_Pos (0UL) /*!< XIPENCODE (Bit 0) */ + #define R_XSPI0_CMCTL_XIPENCODE_Msk (0xffUL) /*!< XIPENCODE (Bitfield-Mask: 0xff) */ + #define R_XSPI0_CMCTL_XIPEXCODE_Pos (8UL) /*!< XIPEXCODE (Bit 8) */ + #define R_XSPI0_CMCTL_XIPEXCODE_Msk (0xff00UL) /*!< XIPEXCODE (Bitfield-Mask: 0xff) */ + #define R_XSPI0_CMCTL_XIPEN_Pos (16UL) /*!< XIPEN (Bit 16) */ + #define R_XSPI0_CMCTL_XIPEN_Msk (0x10000UL) /*!< XIPEN (Bitfield-Mask: 0x01) */ +/* ======================================================== CSSCTL ========================================================= */ + #define R_XSPI0_CSSCTL_CS0SIZE_Pos (0UL) /*!< CS0SIZE (Bit 0) */ + #define R_XSPI0_CSSCTL_CS0SIZE_Msk (0x3fUL) /*!< CS0SIZE (Bitfield-Mask: 0x3f) */ + #define R_XSPI0_CSSCTL_CS1SIZE_Pos (8UL) /*!< CS1SIZE (Bit 8) */ + #define R_XSPI0_CSSCTL_CS1SIZE_Msk (0x3f00UL) /*!< CS1SIZE (Bitfield-Mask: 0x3f) */ +/* ======================================================== CDCTL0 ========================================================= */ + #define R_XSPI0_CDCTL0_TRREQ_Pos (0UL) /*!< TRREQ (Bit 0) */ + #define R_XSPI0_CDCTL0_TRREQ_Msk (0x1UL) /*!< TRREQ (Bitfield-Mask: 0x01) */ + #define R_XSPI0_CDCTL0_PERMD_Pos (1UL) /*!< PERMD (Bit 1) */ + #define R_XSPI0_CDCTL0_PERMD_Msk (0x2UL) /*!< PERMD (Bitfield-Mask: 0x01) */ + #define R_XSPI0_CDCTL0_CSSEL_Pos (3UL) /*!< CSSEL (Bit 3) */ + #define R_XSPI0_CDCTL0_CSSEL_Msk (0x8UL) /*!< CSSEL (Bitfield-Mask: 0x01) */ + #define R_XSPI0_CDCTL0_TRNUM_Pos (4UL) /*!< TRNUM (Bit 4) */ + #define R_XSPI0_CDCTL0_TRNUM_Msk (0x30UL) /*!< TRNUM (Bitfield-Mask: 0x03) */ + #define R_XSPI0_CDCTL0_PERITV_Pos (16UL) /*!< PERITV (Bit 16) */ + #define R_XSPI0_CDCTL0_PERITV_Msk (0x1f0000UL) /*!< PERITV (Bitfield-Mask: 0x1f) */ + #define R_XSPI0_CDCTL0_PERREP_Pos (24UL) /*!< PERREP (Bit 24) */ + #define R_XSPI0_CDCTL0_PERREP_Msk (0xf000000UL) /*!< PERREP (Bitfield-Mask: 0x0f) */ +/* ======================================================== CDCTL1 ========================================================= */ + #define R_XSPI0_CDCTL1_PEREXP_Pos (0UL) /*!< PEREXP (Bit 0) */ + #define R_XSPI0_CDCTL1_PEREXP_Msk (0xffffffffUL) /*!< PEREXP (Bitfield-Mask: 0xffffffff) */ +/* ======================================================== CDCTL2 ========================================================= */ + #define R_XSPI0_CDCTL2_PERMSK_Pos (0UL) /*!< PERMSK (Bit 0) */ + #define R_XSPI0_CDCTL2_PERMSK_Msk (0xffffffffUL) /*!< PERMSK (Bitfield-Mask: 0xffffffff) */ +/* ======================================================== LPCTL0 ========================================================= */ + #define R_XSPI0_LPCTL0_PATREQ_Pos (0UL) /*!< PATREQ (Bit 0) */ + #define R_XSPI0_LPCTL0_PATREQ_Msk (0x1UL) /*!< PATREQ (Bitfield-Mask: 0x01) */ + #define R_XSPI0_LPCTL0_CSSEL_Pos (3UL) /*!< CSSEL (Bit 3) */ + #define R_XSPI0_LPCTL0_CSSEL_Msk (0x8UL) /*!< CSSEL (Bitfield-Mask: 0x01) */ + #define R_XSPI0_LPCTL0_XDPIN_Pos (4UL) /*!< XDPIN (Bit 4) */ + #define R_XSPI0_LPCTL0_XDPIN_Msk (0x30UL) /*!< XDPIN (Bitfield-Mask: 0x03) */ + #define R_XSPI0_LPCTL0_XD1LEN_Pos (16UL) /*!< XD1LEN (Bit 16) */ + #define R_XSPI0_LPCTL0_XD1LEN_Msk (0x1f0000UL) /*!< XD1LEN (Bitfield-Mask: 0x1f) */ + #define R_XSPI0_LPCTL0_XD1VAL_Pos (23UL) /*!< XD1VAL (Bit 23) */ + #define R_XSPI0_LPCTL0_XD1VAL_Msk (0x800000UL) /*!< XD1VAL (Bitfield-Mask: 0x01) */ + #define R_XSPI0_LPCTL0_XD2LEN_Pos (24UL) /*!< XD2LEN (Bit 24) */ + #define R_XSPI0_LPCTL0_XD2LEN_Msk (0x1f000000UL) /*!< XD2LEN (Bitfield-Mask: 0x1f) */ + #define R_XSPI0_LPCTL0_XD2VAL_Pos (31UL) /*!< XD2VAL (Bit 31) */ + #define R_XSPI0_LPCTL0_XD2VAL_Msk (0x80000000UL) /*!< XD2VAL (Bitfield-Mask: 0x01) */ +/* ======================================================== LPCTL1 ========================================================= */ + #define R_XSPI0_LPCTL1_PATREQ_Pos (0UL) /*!< PATREQ (Bit 0) */ + #define R_XSPI0_LPCTL1_PATREQ_Msk (0x3UL) /*!< PATREQ (Bitfield-Mask: 0x03) */ + #define R_XSPI0_LPCTL1_CSSEL_Pos (3UL) /*!< CSSEL (Bit 3) */ + #define R_XSPI0_LPCTL1_CSSEL_Msk (0x8UL) /*!< CSSEL (Bitfield-Mask: 0x01) */ + #define R_XSPI0_LPCTL1_RSTREP_Pos (4UL) /*!< RSTREP (Bit 4) */ + #define R_XSPI0_LPCTL1_RSTREP_Msk (0x30UL) /*!< RSTREP (Bitfield-Mask: 0x03) */ + #define R_XSPI0_LPCTL1_RSTWID_Pos (8UL) /*!< RSTWID (Bit 8) */ + #define R_XSPI0_LPCTL1_RSTWID_Msk (0x700UL) /*!< RSTWID (Bitfield-Mask: 0x07) */ + #define R_XSPI0_LPCTL1_RSTSU_Pos (12UL) /*!< RSTSU (Bit 12) */ + #define R_XSPI0_LPCTL1_RSTSU_Msk (0x7000UL) /*!< RSTSU (Bitfield-Mask: 0x07) */ +/* ======================================================== LIOCTL ========================================================= */ + #define R_XSPI0_LIOCTL_WPCS0_Pos (0UL) /*!< WPCS0 (Bit 0) */ + #define R_XSPI0_LIOCTL_WPCS0_Msk (0x1UL) /*!< WPCS0 (Bitfield-Mask: 0x01) */ + #define R_XSPI0_LIOCTL_WPCS1_Pos (1UL) /*!< WPCS1 (Bit 1) */ + #define R_XSPI0_LIOCTL_WPCS1_Msk (0x2UL) /*!< WPCS1 (Bitfield-Mask: 0x01) */ + #define R_XSPI0_LIOCTL_RSTCS0_Pos (16UL) /*!< RSTCS0 (Bit 16) */ + #define R_XSPI0_LIOCTL_RSTCS0_Msk (0x10000UL) /*!< RSTCS0 (Bitfield-Mask: 0x01) */ + #define R_XSPI0_LIOCTL_RSTCS1_Pos (17UL) /*!< RSTCS1 (Bit 17) */ + #define R_XSPI0_LIOCTL_RSTCS1_Msk (0x20000UL) /*!< RSTCS1 (Bitfield-Mask: 0x01) */ +/* ======================================================== VERSTT ========================================================= */ + #define R_XSPI0_VERSTT_VER_Pos (0UL) /*!< VER (Bit 0) */ + #define R_XSPI0_VERSTT_VER_Msk (0xffffffffUL) /*!< VER (Bitfield-Mask: 0xffffffff) */ +/* ======================================================== COMSTT ========================================================= */ + #define R_XSPI0_COMSTT_MEMACC_Pos (0UL) /*!< MEMACC (Bit 0) */ + #define R_XSPI0_COMSTT_MEMACC_Msk (0x1UL) /*!< MEMACC (Bitfield-Mask: 0x01) */ + #define R_XSPI0_COMSTT_PBUFNE_Pos (4UL) /*!< PBUFNE (Bit 4) */ + #define R_XSPI0_COMSTT_PBUFNE_Msk (0x10UL) /*!< PBUFNE (Bitfield-Mask: 0x01) */ + #define R_XSPI0_COMSTT_WRBUFNE_Pos (6UL) /*!< WRBUFNE (Bit 6) */ + #define R_XSPI0_COMSTT_WRBUFNE_Msk (0x40UL) /*!< WRBUFNE (Bitfield-Mask: 0x01) */ + #define R_XSPI0_COMSTT_ECSCS0_Pos (16UL) /*!< ECSCS0 (Bit 16) */ + #define R_XSPI0_COMSTT_ECSCS0_Msk (0x10000UL) /*!< ECSCS0 (Bitfield-Mask: 0x01) */ + #define R_XSPI0_COMSTT_INTCS0_Pos (17UL) /*!< INTCS0 (Bit 17) */ + #define R_XSPI0_COMSTT_INTCS0_Msk (0x20000UL) /*!< INTCS0 (Bitfield-Mask: 0x01) */ + #define R_XSPI0_COMSTT_RSTOCS0_Pos (18UL) /*!< RSTOCS0 (Bit 18) */ + #define R_XSPI0_COMSTT_RSTOCS0_Msk (0x40000UL) /*!< RSTOCS0 (Bitfield-Mask: 0x01) */ + #define R_XSPI0_COMSTT_ECSCS1_Pos (20UL) /*!< ECSCS1 (Bit 20) */ + #define R_XSPI0_COMSTT_ECSCS1_Msk (0x100000UL) /*!< ECSCS1 (Bitfield-Mask: 0x01) */ + #define R_XSPI0_COMSTT_INTCS1_Pos (21UL) /*!< INTCS1 (Bit 21) */ + #define R_XSPI0_COMSTT_INTCS1_Msk (0x200000UL) /*!< INTCS1 (Bitfield-Mask: 0x01) */ + #define R_XSPI0_COMSTT_RSTOCS1_Pos (22UL) /*!< RSTOCS1 (Bit 22) */ + #define R_XSPI0_COMSTT_RSTOCS1_Msk (0x400000UL) /*!< RSTOCS1 (Bitfield-Mask: 0x01) */ +/* ======================================================== CASTTCS ======================================================== */ + #define R_XSPI0_CASTTCS_CASUC_Pos (0UL) /*!< CASUC (Bit 0) */ + #define R_XSPI0_CASTTCS_CASUC_Msk (0xffffffffUL) /*!< CASUC (Bitfield-Mask: 0xffffffff) */ +/* ========================================================= INTS ========================================================== */ + #define R_XSPI0_INTS_CMDCMP_Pos (0UL) /*!< CMDCMP (Bit 0) */ + #define R_XSPI0_INTS_CMDCMP_Msk (0x1UL) /*!< CMDCMP (Bitfield-Mask: 0x01) */ + #define R_XSPI0_INTS_PATCMP_Pos (1UL) /*!< PATCMP (Bit 1) */ + #define R_XSPI0_INTS_PATCMP_Msk (0x2UL) /*!< PATCMP (Bitfield-Mask: 0x01) */ + #define R_XSPI0_INTS_INICMP_Pos (2UL) /*!< INICMP (Bit 2) */ + #define R_XSPI0_INTS_INICMP_Msk (0x4UL) /*!< INICMP (Bitfield-Mask: 0x01) */ + #define R_XSPI0_INTS_PERTO_Pos (3UL) /*!< PERTO (Bit 3) */ + #define R_XSPI0_INTS_PERTO_Msk (0x8UL) /*!< PERTO (Bitfield-Mask: 0x01) */ + #define R_XSPI0_INTS_DSTOCS0_Pos (4UL) /*!< DSTOCS0 (Bit 4) */ + #define R_XSPI0_INTS_DSTOCS0_Msk (0x10UL) /*!< DSTOCS0 (Bitfield-Mask: 0x01) */ + #define R_XSPI0_INTS_DSTOCS1_Pos (5UL) /*!< DSTOCS1 (Bit 5) */ + #define R_XSPI0_INTS_DSTOCS1_Msk (0x20UL) /*!< DSTOCS1 (Bitfield-Mask: 0x01) */ + #define R_XSPI0_INTS_ECSCS0_Pos (8UL) /*!< ECSCS0 (Bit 8) */ + #define R_XSPI0_INTS_ECSCS0_Msk (0x100UL) /*!< ECSCS0 (Bitfield-Mask: 0x01) */ + #define R_XSPI0_INTS_ECSCS1_Pos (9UL) /*!< ECSCS1 (Bit 9) */ + #define R_XSPI0_INTS_ECSCS1_Msk (0x200UL) /*!< ECSCS1 (Bitfield-Mask: 0x01) */ + #define R_XSPI0_INTS_INTCS0_Pos (12UL) /*!< INTCS0 (Bit 12) */ + #define R_XSPI0_INTS_INTCS0_Msk (0x1000UL) /*!< INTCS0 (Bitfield-Mask: 0x01) */ + #define R_XSPI0_INTS_INTCS1_Pos (13UL) /*!< INTCS1 (Bit 13) */ + #define R_XSPI0_INTS_INTCS1_Msk (0x2000UL) /*!< INTCS1 (Bitfield-Mask: 0x01) */ + #define R_XSPI0_INTS_BRGOF_Pos (16UL) /*!< BRGOF (Bit 16) */ + #define R_XSPI0_INTS_BRGOF_Msk (0x10000UL) /*!< BRGOF (Bitfield-Mask: 0x01) */ + #define R_XSPI0_INTS_BRGUF_Pos (18UL) /*!< BRGUF (Bit 18) */ + #define R_XSPI0_INTS_BRGUF_Msk (0x40000UL) /*!< BRGUF (Bitfield-Mask: 0x01) */ + #define R_XSPI0_INTS_BUSERR_Pos (20UL) /*!< BUSERR (Bit 20) */ + #define R_XSPI0_INTS_BUSERR_Msk (0x100000UL) /*!< BUSERR (Bitfield-Mask: 0x01) */ + #define R_XSPI0_INTS_CAFAILCS0_Pos (28UL) /*!< CAFAILCS0 (Bit 28) */ + #define R_XSPI0_INTS_CAFAILCS0_Msk (0x10000000UL) /*!< CAFAILCS0 (Bitfield-Mask: 0x01) */ + #define R_XSPI0_INTS_CAFAILCS1_Pos (29UL) /*!< CAFAILCS1 (Bit 29) */ + #define R_XSPI0_INTS_CAFAILCS1_Msk (0x20000000UL) /*!< CAFAILCS1 (Bitfield-Mask: 0x01) */ + #define R_XSPI0_INTS_CASUCCS0_Pos (30UL) /*!< CASUCCS0 (Bit 30) */ + #define R_XSPI0_INTS_CASUCCS0_Msk (0x40000000UL) /*!< CASUCCS0 (Bitfield-Mask: 0x01) */ + #define R_XSPI0_INTS_CASUCCS1_Pos (31UL) /*!< CASUCCS1 (Bit 31) */ + #define R_XSPI0_INTS_CASUCCS1_Msk (0x80000000UL) /*!< CASUCCS1 (Bitfield-Mask: 0x01) */ +/* ========================================================= INTC ========================================================== */ + #define R_XSPI0_INTC_CMDCMPC_Pos (0UL) /*!< CMDCMPC (Bit 0) */ + #define R_XSPI0_INTC_CMDCMPC_Msk (0x1UL) /*!< CMDCMPC (Bitfield-Mask: 0x01) */ + #define R_XSPI0_INTC_PATCMPC_Pos (1UL) /*!< PATCMPC (Bit 1) */ + #define R_XSPI0_INTC_PATCMPC_Msk (0x2UL) /*!< PATCMPC (Bitfield-Mask: 0x01) */ + #define R_XSPI0_INTC_INICMPC_Pos (2UL) /*!< INICMPC (Bit 2) */ + #define R_XSPI0_INTC_INICMPC_Msk (0x4UL) /*!< INICMPC (Bitfield-Mask: 0x01) */ + #define R_XSPI0_INTC_PERTOC_Pos (3UL) /*!< PERTOC (Bit 3) */ + #define R_XSPI0_INTC_PERTOC_Msk (0x8UL) /*!< PERTOC (Bitfield-Mask: 0x01) */ + #define R_XSPI0_INTC_DSTOCS0C_Pos (4UL) /*!< DSTOCS0C (Bit 4) */ + #define R_XSPI0_INTC_DSTOCS0C_Msk (0x10UL) /*!< DSTOCS0C (Bitfield-Mask: 0x01) */ + #define R_XSPI0_INTC_DSTOCS1C_Pos (5UL) /*!< DSTOCS1C (Bit 5) */ + #define R_XSPI0_INTC_DSTOCS1C_Msk (0x20UL) /*!< DSTOCS1C (Bitfield-Mask: 0x01) */ + #define R_XSPI0_INTC_ECSCS0C_Pos (8UL) /*!< ECSCS0C (Bit 8) */ + #define R_XSPI0_INTC_ECSCS0C_Msk (0x100UL) /*!< ECSCS0C (Bitfield-Mask: 0x01) */ + #define R_XSPI0_INTC_ECSCS1C_Pos (9UL) /*!< ECSCS1C (Bit 9) */ + #define R_XSPI0_INTC_ECSCS1C_Msk (0x200UL) /*!< ECSCS1C (Bitfield-Mask: 0x01) */ + #define R_XSPI0_INTC_INTCS0C_Pos (12UL) /*!< INTCS0C (Bit 12) */ + #define R_XSPI0_INTC_INTCS0C_Msk (0x1000UL) /*!< INTCS0C (Bitfield-Mask: 0x01) */ + #define R_XSPI0_INTC_INTCS1C_Pos (13UL) /*!< INTCS1C (Bit 13) */ + #define R_XSPI0_INTC_INTCS1C_Msk (0x2000UL) /*!< INTCS1C (Bitfield-Mask: 0x01) */ + #define R_XSPI0_INTC_BRGOFC_Pos (16UL) /*!< BRGOFC (Bit 16) */ + #define R_XSPI0_INTC_BRGOFC_Msk (0x10000UL) /*!< BRGOFC (Bitfield-Mask: 0x01) */ + #define R_XSPI0_INTC_BRGUFC_Pos (18UL) /*!< BRGUFC (Bit 18) */ + #define R_XSPI0_INTC_BRGUFC_Msk (0x40000UL) /*!< BRGUFC (Bitfield-Mask: 0x01) */ + #define R_XSPI0_INTC_BUSERRC_Pos (20UL) /*!< BUSERRC (Bit 20) */ + #define R_XSPI0_INTC_BUSERRC_Msk (0x100000UL) /*!< BUSERRC (Bitfield-Mask: 0x01) */ + #define R_XSPI0_INTC_CAFAILCS0C_Pos (28UL) /*!< CAFAILCS0C (Bit 28) */ + #define R_XSPI0_INTC_CAFAILCS0C_Msk (0x10000000UL) /*!< CAFAILCS0C (Bitfield-Mask: 0x01) */ + #define R_XSPI0_INTC_CAFAILCS1C_Pos (29UL) /*!< CAFAILCS1C (Bit 29) */ + #define R_XSPI0_INTC_CAFAILCS1C_Msk (0x20000000UL) /*!< CAFAILCS1C (Bitfield-Mask: 0x01) */ + #define R_XSPI0_INTC_CASUCCS0C_Pos (30UL) /*!< CASUCCS0C (Bit 30) */ + #define R_XSPI0_INTC_CASUCCS0C_Msk (0x40000000UL) /*!< CASUCCS0C (Bitfield-Mask: 0x01) */ + #define R_XSPI0_INTC_CASUCCS1C_Pos (31UL) /*!< CASUCCS1C (Bit 31) */ + #define R_XSPI0_INTC_CASUCCS1C_Msk (0x80000000UL) /*!< CASUCCS1C (Bitfield-Mask: 0x01) */ +/* ========================================================= INTE ========================================================== */ + #define R_XSPI0_INTE_CMDCMPE_Pos (0UL) /*!< CMDCMPE (Bit 0) */ + #define R_XSPI0_INTE_CMDCMPE_Msk (0x1UL) /*!< CMDCMPE (Bitfield-Mask: 0x01) */ + #define R_XSPI0_INTE_PATCMPE_Pos (1UL) /*!< PATCMPE (Bit 1) */ + #define R_XSPI0_INTE_PATCMPE_Msk (0x2UL) /*!< PATCMPE (Bitfield-Mask: 0x01) */ + #define R_XSPI0_INTE_INICMPE_Pos (2UL) /*!< INICMPE (Bit 2) */ + #define R_XSPI0_INTE_INICMPE_Msk (0x4UL) /*!< INICMPE (Bitfield-Mask: 0x01) */ + #define R_XSPI0_INTE_PERTOE_Pos (3UL) /*!< PERTOE (Bit 3) */ + #define R_XSPI0_INTE_PERTOE_Msk (0x8UL) /*!< PERTOE (Bitfield-Mask: 0x01) */ + #define R_XSPI0_INTE_DSTOCS0E_Pos (4UL) /*!< DSTOCS0E (Bit 4) */ + #define R_XSPI0_INTE_DSTOCS0E_Msk (0x10UL) /*!< DSTOCS0E (Bitfield-Mask: 0x01) */ + #define R_XSPI0_INTE_DSTOCS1E_Pos (5UL) /*!< DSTOCS1E (Bit 5) */ + #define R_XSPI0_INTE_DSTOCS1E_Msk (0x20UL) /*!< DSTOCS1E (Bitfield-Mask: 0x01) */ + #define R_XSPI0_INTE_ECSCS0E_Pos (8UL) /*!< ECSCS0E (Bit 8) */ + #define R_XSPI0_INTE_ECSCS0E_Msk (0x100UL) /*!< ECSCS0E (Bitfield-Mask: 0x01) */ + #define R_XSPI0_INTE_ECSCS1E_Pos (9UL) /*!< ECSCS1E (Bit 9) */ + #define R_XSPI0_INTE_ECSCS1E_Msk (0x200UL) /*!< ECSCS1E (Bitfield-Mask: 0x01) */ + #define R_XSPI0_INTE_INTCS0E_Pos (12UL) /*!< INTCS0E (Bit 12) */ + #define R_XSPI0_INTE_INTCS0E_Msk (0x1000UL) /*!< INTCS0E (Bitfield-Mask: 0x01) */ + #define R_XSPI0_INTE_INTCS1E_Pos (13UL) /*!< INTCS1E (Bit 13) */ + #define R_XSPI0_INTE_INTCS1E_Msk (0x2000UL) /*!< INTCS1E (Bitfield-Mask: 0x01) */ + #define R_XSPI0_INTE_BRGOFE_Pos (16UL) /*!< BRGOFE (Bit 16) */ + #define R_XSPI0_INTE_BRGOFE_Msk (0x10000UL) /*!< BRGOFE (Bitfield-Mask: 0x01) */ + #define R_XSPI0_INTE_BRGUFE_Pos (18UL) /*!< BRGUFE (Bit 18) */ + #define R_XSPI0_INTE_BRGUFE_Msk (0x40000UL) /*!< BRGUFE (Bitfield-Mask: 0x01) */ + #define R_XSPI0_INTE_BUSERRE_Pos (20UL) /*!< BUSERRE (Bit 20) */ + #define R_XSPI0_INTE_BUSERRE_Msk (0x100000UL) /*!< BUSERRE (Bitfield-Mask: 0x01) */ + #define R_XSPI0_INTE_CAFAILCS0E_Pos (28UL) /*!< CAFAILCS0E (Bit 28) */ + #define R_XSPI0_INTE_CAFAILCS0E_Msk (0x10000000UL) /*!< CAFAILCS0E (Bitfield-Mask: 0x01) */ + #define R_XSPI0_INTE_CAFAILCS1E_Pos (29UL) /*!< CAFAILCS1E (Bit 29) */ + #define R_XSPI0_INTE_CAFAILCS1E_Msk (0x20000000UL) /*!< CAFAILCS1E (Bitfield-Mask: 0x01) */ + #define R_XSPI0_INTE_CASUCCS0E_Pos (30UL) /*!< CASUCCS0E (Bit 30) */ + #define R_XSPI0_INTE_CASUCCS0E_Msk (0x40000000UL) /*!< CASUCCS0E (Bitfield-Mask: 0x01) */ + #define R_XSPI0_INTE_CASUCCS1E_Pos (31UL) /*!< CASUCCS1E (Bit 31) */ + #define R_XSPI0_INTE_CASUCCS1E_Msk (0x80000000UL) /*!< CASUCCS1E (Bitfield-Mask: 0x01) */ + +/* =========================================================================================================================== */ +/* ================ R_MBXSEM ================ */ +/* =========================================================================================================================== */ + +/* ========================================================== SEM ========================================================== */ + #define R_MBXSEM_SEM_SEM_Pos (0UL) /*!< SEM (Bit 0) */ + #define R_MBXSEM_SEM_SEM_Msk (0x1UL) /*!< SEM (Bitfield-Mask: 0x01) */ +/* ======================================================== SEMRCEN ======================================================== */ + #define R_MBXSEM_SEMRCEN_SEMRCEN0_Pos (0UL) /*!< SEMRCEN0 (Bit 0) */ + #define R_MBXSEM_SEMRCEN_SEMRCEN0_Msk (0x1UL) /*!< SEMRCEN0 (Bitfield-Mask: 0x01) */ + #define R_MBXSEM_SEMRCEN_SEMRCEN1_Pos (1UL) /*!< SEMRCEN1 (Bit 1) */ + #define R_MBXSEM_SEMRCEN_SEMRCEN1_Msk (0x2UL) /*!< SEMRCEN1 (Bitfield-Mask: 0x01) */ + #define R_MBXSEM_SEMRCEN_SEMRCEN2_Pos (2UL) /*!< SEMRCEN2 (Bit 2) */ + #define R_MBXSEM_SEMRCEN_SEMRCEN2_Msk (0x4UL) /*!< SEMRCEN2 (Bitfield-Mask: 0x01) */ + #define R_MBXSEM_SEMRCEN_SEMRCEN3_Pos (3UL) /*!< SEMRCEN3 (Bit 3) */ + #define R_MBXSEM_SEMRCEN_SEMRCEN3_Msk (0x8UL) /*!< SEMRCEN3 (Bitfield-Mask: 0x01) */ + #define R_MBXSEM_SEMRCEN_SEMRCEN4_Pos (4UL) /*!< SEMRCEN4 (Bit 4) */ + #define R_MBXSEM_SEMRCEN_SEMRCEN4_Msk (0x10UL) /*!< SEMRCEN4 (Bitfield-Mask: 0x01) */ + #define R_MBXSEM_SEMRCEN_SEMRCEN5_Pos (5UL) /*!< SEMRCEN5 (Bit 5) */ + #define R_MBXSEM_SEMRCEN_SEMRCEN5_Msk (0x20UL) /*!< SEMRCEN5 (Bitfield-Mask: 0x01) */ + #define R_MBXSEM_SEMRCEN_SEMRCEN6_Pos (6UL) /*!< SEMRCEN6 (Bit 6) */ + #define R_MBXSEM_SEMRCEN_SEMRCEN6_Msk (0x40UL) /*!< SEMRCEN6 (Bitfield-Mask: 0x01) */ + #define R_MBXSEM_SEMRCEN_SEMRCEN7_Pos (7UL) /*!< SEMRCEN7 (Bit 7) */ + #define R_MBXSEM_SEMRCEN_SEMRCEN7_Msk (0x80UL) /*!< SEMRCEN7 (Bitfield-Mask: 0x01) */ +/* ======================================================== MBXH2C ========================================================= */ + #define R_MBXSEM_MBXH2C_MBX_Pos (0UL) /*!< MBX (Bit 0) */ + #define R_MBXSEM_MBXH2C_MBX_Msk (0xffffffffUL) /*!< MBX (Bitfield-Mask: 0xffffffff) */ +/* ====================================================== MBXISETH2C ======================================================= */ + #define R_MBXSEM_MBXISETH2C_MBX_INT0S_Pos (0UL) /*!< MBX_INT0S (Bit 0) */ + #define R_MBXSEM_MBXISETH2C_MBX_INT0S_Msk (0x1UL) /*!< MBX_INT0S (Bitfield-Mask: 0x01) */ + #define R_MBXSEM_MBXISETH2C_MBX_INT1S_Pos (1UL) /*!< MBX_INT1S (Bit 1) */ + #define R_MBXSEM_MBXISETH2C_MBX_INT1S_Msk (0x2UL) /*!< MBX_INT1S (Bitfield-Mask: 0x01) */ + #define R_MBXSEM_MBXISETH2C_MBX_INT2S_Pos (2UL) /*!< MBX_INT2S (Bit 2) */ + #define R_MBXSEM_MBXISETH2C_MBX_INT2S_Msk (0x4UL) /*!< MBX_INT2S (Bitfield-Mask: 0x01) */ + #define R_MBXSEM_MBXISETH2C_MBX_INT3S_Pos (3UL) /*!< MBX_INT3S (Bit 3) */ + #define R_MBXSEM_MBXISETH2C_MBX_INT3S_Msk (0x8UL) /*!< MBX_INT3S (Bitfield-Mask: 0x01) */ +/* ====================================================== MBXICLRH2C ======================================================= */ + #define R_MBXSEM_MBXICLRH2C_MBX_INT0C_Pos (0UL) /*!< MBX_INT0C (Bit 0) */ + #define R_MBXSEM_MBXICLRH2C_MBX_INT0C_Msk (0x1UL) /*!< MBX_INT0C (Bitfield-Mask: 0x01) */ + #define R_MBXSEM_MBXICLRH2C_MBX_INT1C_Pos (1UL) /*!< MBX_INT1C (Bit 1) */ + #define R_MBXSEM_MBXICLRH2C_MBX_INT1C_Msk (0x2UL) /*!< MBX_INT1C (Bitfield-Mask: 0x01) */ + #define R_MBXSEM_MBXICLRH2C_MBX_INT2C_Pos (2UL) /*!< MBX_INT2C (Bit 2) */ + #define R_MBXSEM_MBXICLRH2C_MBX_INT2C_Msk (0x4UL) /*!< MBX_INT2C (Bitfield-Mask: 0x01) */ + #define R_MBXSEM_MBXICLRH2C_MBX_INT3C_Pos (3UL) /*!< MBX_INT3C (Bit 3) */ + #define R_MBXSEM_MBXICLRH2C_MBX_INT3C_Msk (0x8UL) /*!< MBX_INT3C (Bitfield-Mask: 0x01) */ +/* ======================================================== MBXC2H ========================================================= */ + #define R_MBXSEM_MBXC2H_MBX_Pos (0UL) /*!< MBX (Bit 0) */ + #define R_MBXSEM_MBXC2H_MBX_Msk (0xffffffffUL) /*!< MBX (Bitfield-Mask: 0xffffffff) */ +/* ====================================================== MBXISETC2H ======================================================= */ + #define R_MBXSEM_MBXISETC2H_MBX_HINT0S_Pos (0UL) /*!< MBX_HINT0S (Bit 0) */ + #define R_MBXSEM_MBXISETC2H_MBX_HINT0S_Msk (0x1UL) /*!< MBX_HINT0S (Bitfield-Mask: 0x01) */ + #define R_MBXSEM_MBXISETC2H_MBX_HINT1S_Pos (1UL) /*!< MBX_HINT1S (Bit 1) */ + #define R_MBXSEM_MBXISETC2H_MBX_HINT1S_Msk (0x2UL) /*!< MBX_HINT1S (Bitfield-Mask: 0x01) */ + #define R_MBXSEM_MBXISETC2H_MBX_HINT2S_Pos (2UL) /*!< MBX_HINT2S (Bit 2) */ + #define R_MBXSEM_MBXISETC2H_MBX_HINT2S_Msk (0x4UL) /*!< MBX_HINT2S (Bitfield-Mask: 0x01) */ + #define R_MBXSEM_MBXISETC2H_MBX_HINT3S_Pos (3UL) /*!< MBX_HINT3S (Bit 3) */ + #define R_MBXSEM_MBXISETC2H_MBX_HINT3S_Msk (0x8UL) /*!< MBX_HINT3S (Bitfield-Mask: 0x01) */ +/* ====================================================== MBXICLRC2H ======================================================= */ + #define R_MBXSEM_MBXICLRC2H_MBX_HINT0C_Pos (0UL) /*!< MBX_HINT0C (Bit 0) */ + #define R_MBXSEM_MBXICLRC2H_MBX_HINT0C_Msk (0x1UL) /*!< MBX_HINT0C (Bitfield-Mask: 0x01) */ + #define R_MBXSEM_MBXICLRC2H_MBX_HINT1C_Pos (1UL) /*!< MBX_HINT1C (Bit 1) */ + #define R_MBXSEM_MBXICLRC2H_MBX_HINT1C_Msk (0x2UL) /*!< MBX_HINT1C (Bitfield-Mask: 0x01) */ + #define R_MBXSEM_MBXICLRC2H_MBX_HINT2C_Pos (2UL) /*!< MBX_HINT2C (Bit 2) */ + #define R_MBXSEM_MBXICLRC2H_MBX_HINT2C_Msk (0x4UL) /*!< MBX_HINT2C (Bitfield-Mask: 0x01) */ + #define R_MBXSEM_MBXICLRC2H_MBX_HINT3C_Pos (3UL) /*!< MBX_HINT3C (Bit 3) */ + #define R_MBXSEM_MBXICLRC2H_MBX_HINT3C_Msk (0x8UL) /*!< MBX_HINT3C (Bitfield-Mask: 0x01) */ + +/* =========================================================================================================================== */ +/* ================ R_SHOSTIF ================ */ +/* =========================================================================================================================== */ + +/* ======================================================== CTRLR0 ========================================================= */ + #define R_SHOSTIF_CTRLR0_SCPH_Pos (8UL) /*!< SCPH (Bit 8) */ + #define R_SHOSTIF_CTRLR0_SCPH_Msk (0x100UL) /*!< SCPH (Bitfield-Mask: 0x01) */ + #define R_SHOSTIF_CTRLR0_SCPOL_Pos (9UL) /*!< SCPOL (Bit 9) */ + #define R_SHOSTIF_CTRLR0_SCPOL_Msk (0x200UL) /*!< SCPOL (Bitfield-Mask: 0x01) */ +/* ========================================================== ENR ========================================================== */ + #define R_SHOSTIF_ENR_ENABLE_Pos (0UL) /*!< ENABLE (Bit 0) */ + #define R_SHOSTIF_ENR_ENABLE_Msk (0x1UL) /*!< ENABLE (Bitfield-Mask: 0x01) */ +/* ======================================================== RXFBTR ========================================================= */ + #define R_SHOSTIF_RXFBTR_RXFBTL_Pos (0UL) /*!< RXFBTL (Bit 0) */ + #define R_SHOSTIF_RXFBTR_RXFBTL_Msk (0x3fUL) /*!< RXFBTL (Bitfield-Mask: 0x3f) */ +/* ======================================================== TXFTLR ========================================================= */ + #define R_SHOSTIF_TXFTLR_TFT_Pos (0UL) /*!< TFT (Bit 0) */ + #define R_SHOSTIF_TXFTLR_TFT_Msk (0x3fUL) /*!< TFT (Bitfield-Mask: 0x3f) */ +/* ======================================================== RXFTLR ========================================================= */ + #define R_SHOSTIF_RXFTLR_RFT_Pos (0UL) /*!< RFT (Bit 0) */ + #define R_SHOSTIF_RXFTLR_RFT_Msk (0x3fUL) /*!< RFT (Bitfield-Mask: 0x3f) */ +/* ========================================================== SR =========================================================== */ + #define R_SHOSTIF_SR_BUSY_Pos (0UL) /*!< BUSY (Bit 0) */ + #define R_SHOSTIF_SR_BUSY_Msk (0x1UL) /*!< BUSY (Bitfield-Mask: 0x01) */ +/* ========================================================== IMR ========================================================== */ + #define R_SHOSTIF_IMR_TXEIM_Pos (0UL) /*!< TXEIM (Bit 0) */ + #define R_SHOSTIF_IMR_TXEIM_Msk (0x1UL) /*!< TXEIM (Bitfield-Mask: 0x01) */ + #define R_SHOSTIF_IMR_RXOIM_Pos (3UL) /*!< RXOIM (Bit 3) */ + #define R_SHOSTIF_IMR_RXOIM_Msk (0x8UL) /*!< RXOIM (Bitfield-Mask: 0x01) */ + #define R_SHOSTIF_IMR_RXFIM_Pos (4UL) /*!< RXFIM (Bit 4) */ + #define R_SHOSTIF_IMR_RXFIM_Msk (0x10UL) /*!< RXFIM (Bitfield-Mask: 0x01) */ + #define R_SHOSTIF_IMR_TXUIM_Pos (7UL) /*!< TXUIM (Bit 7) */ + #define R_SHOSTIF_IMR_TXUIM_Msk (0x80UL) /*!< TXUIM (Bitfield-Mask: 0x01) */ + #define R_SHOSTIF_IMR_AHBEM_Pos (8UL) /*!< AHBEM (Bit 8) */ + #define R_SHOSTIF_IMR_AHBEM_Msk (0x100UL) /*!< AHBEM (Bitfield-Mask: 0x01) */ + #define R_SHOSTIF_IMR_SPIMEM_Pos (9UL) /*!< SPIMEM (Bit 9) */ + #define R_SHOSTIF_IMR_SPIMEM_Msk (0x200UL) /*!< SPIMEM (Bitfield-Mask: 0x01) */ +/* ========================================================== ISR ========================================================== */ + #define R_SHOSTIF_ISR_TXEIS_Pos (0UL) /*!< TXEIS (Bit 0) */ + #define R_SHOSTIF_ISR_TXEIS_Msk (0x1UL) /*!< TXEIS (Bitfield-Mask: 0x01) */ + #define R_SHOSTIF_ISR_RXOIS_Pos (3UL) /*!< RXOIS (Bit 3) */ + #define R_SHOSTIF_ISR_RXOIS_Msk (0x8UL) /*!< RXOIS (Bitfield-Mask: 0x01) */ + #define R_SHOSTIF_ISR_RXFIS_Pos (4UL) /*!< RXFIS (Bit 4) */ + #define R_SHOSTIF_ISR_RXFIS_Msk (0x10UL) /*!< RXFIS (Bitfield-Mask: 0x01) */ + #define R_SHOSTIF_ISR_TXUIS_Pos (7UL) /*!< TXUIS (Bit 7) */ + #define R_SHOSTIF_ISR_TXUIS_Msk (0x80UL) /*!< TXUIS (Bitfield-Mask: 0x01) */ + #define R_SHOSTIF_ISR_AHBES_Pos (8UL) /*!< AHBES (Bit 8) */ + #define R_SHOSTIF_ISR_AHBES_Msk (0x100UL) /*!< AHBES (Bitfield-Mask: 0x01) */ + #define R_SHOSTIF_ISR_SPIMES_Pos (9UL) /*!< SPIMES (Bit 9) */ + #define R_SHOSTIF_ISR_SPIMES_Msk (0x200UL) /*!< SPIMES (Bitfield-Mask: 0x01) */ +/* ========================================================= RISR ========================================================== */ + #define R_SHOSTIF_RISR_TXEIR_Pos (0UL) /*!< TXEIR (Bit 0) */ + #define R_SHOSTIF_RISR_TXEIR_Msk (0x1UL) /*!< TXEIR (Bitfield-Mask: 0x01) */ + #define R_SHOSTIF_RISR_RXOIR_Pos (3UL) /*!< RXOIR (Bit 3) */ + #define R_SHOSTIF_RISR_RXOIR_Msk (0x8UL) /*!< RXOIR (Bitfield-Mask: 0x01) */ + #define R_SHOSTIF_RISR_RXFIR_Pos (4UL) /*!< RXFIR (Bit 4) */ + #define R_SHOSTIF_RISR_RXFIR_Msk (0x10UL) /*!< RXFIR (Bitfield-Mask: 0x01) */ + #define R_SHOSTIF_RISR_TXUIR_Pos (7UL) /*!< TXUIR (Bit 7) */ + #define R_SHOSTIF_RISR_TXUIR_Msk (0x80UL) /*!< TXUIR (Bitfield-Mask: 0x01) */ + #define R_SHOSTIF_RISR_AHBER_Pos (8UL) /*!< AHBER (Bit 8) */ + #define R_SHOSTIF_RISR_AHBER_Msk (0x100UL) /*!< AHBER (Bitfield-Mask: 0x01) */ + #define R_SHOSTIF_RISR_SPIMER_Pos (9UL) /*!< SPIMER (Bit 9) */ + #define R_SHOSTIF_RISR_SPIMER_Msk (0x200UL) /*!< SPIMER (Bitfield-Mask: 0x01) */ +/* ======================================================== TXUICR ========================================================= */ + #define R_SHOSTIF_TXUICR_TXUICR_Pos (0UL) /*!< TXUICR (Bit 0) */ + #define R_SHOSTIF_TXUICR_TXUICR_Msk (0x1UL) /*!< TXUICR (Bitfield-Mask: 0x01) */ +/* ======================================================== RXOICR ========================================================= */ + #define R_SHOSTIF_RXOICR_RXOICR_Pos (0UL) /*!< RXOICR (Bit 0) */ + #define R_SHOSTIF_RXOICR_RXOICR_Msk (0x1UL) /*!< RXOICR (Bitfield-Mask: 0x01) */ +/* ======================================================== SPIMECR ======================================================== */ + #define R_SHOSTIF_SPIMECR_SPIMECR_Pos (0UL) /*!< SPIMECR (Bit 0) */ + #define R_SHOSTIF_SPIMECR_SPIMECR_Msk (0x1UL) /*!< SPIMECR (Bitfield-Mask: 0x01) */ +/* ======================================================== AHBECR ========================================================= */ + #define R_SHOSTIF_AHBECR_AHBECR_Pos (0UL) /*!< AHBECR (Bit 0) */ + #define R_SHOSTIF_AHBECR_AHBECR_Msk (0x1UL) /*!< AHBECR (Bitfield-Mask: 0x01) */ +/* ========================================================== ICR ========================================================== */ + #define R_SHOSTIF_ICR_ICR_Pos (0UL) /*!< ICR (Bit 0) */ + #define R_SHOSTIF_ICR_ICR_Msk (0x1UL) /*!< ICR (Bitfield-Mask: 0x01) */ + +/* =========================================================================================================================== */ +/* ================ R_PHOSTIF ================ */ +/* =========================================================================================================================== */ + +/* ======================================================== HIFBCC ========================================================= */ + #define R_PHOSTIF_HIFBCC_RBUFON0_Pos (0UL) /*!< RBUFON0 (Bit 0) */ + #define R_PHOSTIF_HIFBCC_RBUFON0_Msk (0x1UL) /*!< RBUFON0 (Bitfield-Mask: 0x01) */ + #define R_PHOSTIF_HIFBCC_RBUFON1_Pos (1UL) /*!< RBUFON1 (Bit 1) */ + #define R_PHOSTIF_HIFBCC_RBUFON1_Msk (0x2UL) /*!< RBUFON1 (Bitfield-Mask: 0x01) */ + #define R_PHOSTIF_HIFBCC_RBUFON2_Pos (2UL) /*!< RBUFON2 (Bit 2) */ + #define R_PHOSTIF_HIFBCC_RBUFON2_Msk (0x4UL) /*!< RBUFON2 (Bitfield-Mask: 0x01) */ + #define R_PHOSTIF_HIFBCC_RBUFON3_Pos (3UL) /*!< RBUFON3 (Bit 3) */ + #define R_PHOSTIF_HIFBCC_RBUFON3_Msk (0x8UL) /*!< RBUFON3 (Bitfield-Mask: 0x01) */ + #define R_PHOSTIF_HIFBCC_RBUFON4_Pos (4UL) /*!< RBUFON4 (Bit 4) */ + #define R_PHOSTIF_HIFBCC_RBUFON4_Msk (0x10UL) /*!< RBUFON4 (Bitfield-Mask: 0x01) */ + #define R_PHOSTIF_HIFBCC_RBUFON5_Pos (5UL) /*!< RBUFON5 (Bit 5) */ + #define R_PHOSTIF_HIFBCC_RBUFON5_Msk (0x20UL) /*!< RBUFON5 (Bitfield-Mask: 0x01) */ + #define R_PHOSTIF_HIFBCC_RBUFONX_Pos (8UL) /*!< RBUFONX (Bit 8) */ + #define R_PHOSTIF_HIFBCC_RBUFONX_Msk (0x100UL) /*!< RBUFONX (Bitfield-Mask: 0x01) */ + #define R_PHOSTIF_HIFBCC_BSTON_Pos (12UL) /*!< BSTON (Bit 12) */ + #define R_PHOSTIF_HIFBCC_BSTON_Msk (0x1000UL) /*!< BSTON (Bitfield-Mask: 0x01) */ + #define R_PHOSTIF_HIFBCC_WRPON_Pos (13UL) /*!< WRPON (Bit 13) */ + #define R_PHOSTIF_HIFBCC_WRPON_Msk (0x2000UL) /*!< WRPON (Bitfield-Mask: 0x01) */ +/* ======================================================== HIFBTC ========================================================= */ + #define R_PHOSTIF_HIFBTC_WRSTD_Pos (0UL) /*!< WRSTD (Bit 0) */ + #define R_PHOSTIF_HIFBTC_WRSTD_Msk (0x7UL) /*!< WRSTD (Bitfield-Mask: 0x07) */ + #define R_PHOSTIF_HIFBTC_RDSTD_Pos (4UL) /*!< RDSTD (Bit 4) */ + #define R_PHOSTIF_HIFBTC_RDSTD_Msk (0x30UL) /*!< RDSTD (Bitfield-Mask: 0x03) */ + #define R_PHOSTIF_HIFBTC_PASTD_Pos (8UL) /*!< PASTD (Bit 8) */ + #define R_PHOSTIF_HIFBTC_PASTD_Msk (0x700UL) /*!< PASTD (Bitfield-Mask: 0x07) */ + #define R_PHOSTIF_HIFBTC_RDDTS_Pos (12UL) /*!< RDDTS (Bit 12) */ + #define R_PHOSTIF_HIFBTC_RDDTS_Msk (0x3000UL) /*!< RDDTS (Bitfield-Mask: 0x03) */ +/* ======================================================== HIFPRC ========================================================= */ + #define R_PHOSTIF_HIFPRC_PAGEON0_Pos (0UL) /*!< PAGEON0 (Bit 0) */ + #define R_PHOSTIF_HIFPRC_PAGEON0_Msk (0x1UL) /*!< PAGEON0 (Bitfield-Mask: 0x01) */ + #define R_PHOSTIF_HIFPRC_PAGEON1_Pos (1UL) /*!< PAGEON1 (Bit 1) */ + #define R_PHOSTIF_HIFPRC_PAGEON1_Msk (0x2UL) /*!< PAGEON1 (Bitfield-Mask: 0x01) */ + #define R_PHOSTIF_HIFPRC_PAGEON2_Pos (2UL) /*!< PAGEON2 (Bit 2) */ + #define R_PHOSTIF_HIFPRC_PAGEON2_Msk (0x4UL) /*!< PAGEON2 (Bitfield-Mask: 0x01) */ + #define R_PHOSTIF_HIFPRC_PAGEON3_Pos (3UL) /*!< PAGEON3 (Bit 3) */ + #define R_PHOSTIF_HIFPRC_PAGEON3_Msk (0x8UL) /*!< PAGEON3 (Bitfield-Mask: 0x01) */ + #define R_PHOSTIF_HIFPRC_PAGEON4_Pos (4UL) /*!< PAGEON4 (Bit 4) */ + #define R_PHOSTIF_HIFPRC_PAGEON4_Msk (0x10UL) /*!< PAGEON4 (Bitfield-Mask: 0x01) */ + #define R_PHOSTIF_HIFPRC_PAGEON5_Pos (5UL) /*!< PAGEON5 (Bit 5) */ + #define R_PHOSTIF_HIFPRC_PAGEON5_Msk (0x20UL) /*!< PAGEON5 (Bitfield-Mask: 0x01) */ + #define R_PHOSTIF_HIFPRC_PAGEONX_Pos (8UL) /*!< PAGEONX (Bit 8) */ + #define R_PHOSTIF_HIFPRC_PAGEONX_Msk (0x100UL) /*!< PAGEONX (Bitfield-Mask: 0x01) */ + #define R_PHOSTIF_HIFPRC_PAGESZ_Pos (12UL) /*!< PAGESZ (Bit 12) */ + #define R_PHOSTIF_HIFPRC_PAGESZ_Msk (0x1000UL) /*!< PAGESZ (Bitfield-Mask: 0x01) */ +/* ======================================================== HIFIRC ========================================================= */ + #define R_PHOSTIF_HIFIRC_ERRRSP_Pos (0UL) /*!< ERRRSP (Bit 0) */ + #define R_PHOSTIF_HIFIRC_ERRRSP_Msk (0x1UL) /*!< ERRRSP (Bitfield-Mask: 0x01) */ +/* ======================================================== HIFECR0 ======================================================== */ + #define R_PHOSTIF_HIFECR0_ERRADDR_Pos (0UL) /*!< ERRADDR (Bit 0) */ + #define R_PHOSTIF_HIFECR0_ERRADDR_Msk (0xffffffffUL) /*!< ERRADDR (Bitfield-Mask: 0xffffffff) */ +/* ======================================================== HIFECR1 ======================================================== */ + #define R_PHOSTIF_HIFECR1_ERRSZ_Pos (0UL) /*!< ERRSZ (Bit 0) */ + #define R_PHOSTIF_HIFECR1_ERRSZ_Msk (0x7UL) /*!< ERRSZ (Bitfield-Mask: 0x07) */ + #define R_PHOSTIF_HIFECR1_ERRWR_Pos (3UL) /*!< ERRWR (Bit 3) */ + #define R_PHOSTIF_HIFECR1_ERRWR_Msk (0x8UL) /*!< ERRWR (Bitfield-Mask: 0x01) */ +/* ======================================================== HIFMON1 ======================================================== */ + #define R_PHOSTIF_HIFMON1_HIFRDY_Pos (0UL) /*!< HIFRDY (Bit 0) */ + #define R_PHOSTIF_HIFMON1_HIFRDY_Msk (0x1UL) /*!< HIFRDY (Bitfield-Mask: 0x01) */ + #define R_PHOSTIF_HIFMON1_BUSSEL_Pos (1UL) /*!< BUSSEL (Bit 1) */ + #define R_PHOSTIF_HIFMON1_BUSSEL_Msk (0x2UL) /*!< BUSSEL (Bitfield-Mask: 0x01) */ + #define R_PHOSTIF_HIFMON1_HIFSYNC_Pos (3UL) /*!< HIFSYNC (Bit 3) */ + #define R_PHOSTIF_HIFMON1_HIFSYNC_Msk (0x8UL) /*!< HIFSYNC (Bitfield-Mask: 0x01) */ +/* ======================================================== HIFMON2 ======================================================== */ + #define R_PHOSTIF_HIFMON2_HIFBCC_Pos (0UL) /*!< HIFBCC (Bit 0) */ + #define R_PHOSTIF_HIFMON2_HIFBCC_Msk (0x1UL) /*!< HIFBCC (Bitfield-Mask: 0x01) */ + #define R_PHOSTIF_HIFMON2_HIFBTC_Pos (1UL) /*!< HIFBTC (Bit 1) */ + #define R_PHOSTIF_HIFMON2_HIFBTC_Msk (0x2UL) /*!< HIFBTC (Bitfield-Mask: 0x01) */ + #define R_PHOSTIF_HIFMON2_HIFPRC_Pos (2UL) /*!< HIFPRC (Bit 2) */ + #define R_PHOSTIF_HIFMON2_HIFPRC_Msk (0x4UL) /*!< HIFPRC (Bitfield-Mask: 0x01) */ + #define R_PHOSTIF_HIFMON2_HIFIRC_Pos (3UL) /*!< HIFIRC (Bit 3) */ + #define R_PHOSTIF_HIFMON2_HIFIRC_Msk (0x8UL) /*!< HIFIRC (Bitfield-Mask: 0x01) */ + #define R_PHOSTIF_HIFMON2_HIFXAL_Pos (4UL) /*!< HIFXAL (Bit 4) */ + #define R_PHOSTIF_HIFMON2_HIFXAL_Msk (0x10UL) /*!< HIFXAL (Bitfield-Mask: 0x01) */ + #define R_PHOSTIF_HIFMON2_HIFXAH_Pos (5UL) /*!< HIFXAH (Bit 5) */ + #define R_PHOSTIF_HIFMON2_HIFXAH_Msk (0x20UL) /*!< HIFXAH (Bitfield-Mask: 0x01) */ +/* ======================================================== HIFMON3 ======================================================== */ + #define R_PHOSTIF_HIFMON3_HIFEXT0_Pos (0UL) /*!< HIFEXT0 (Bit 0) */ + #define R_PHOSTIF_HIFMON3_HIFEXT0_Msk (0x1UL) /*!< HIFEXT0 (Bitfield-Mask: 0x01) */ + #define R_PHOSTIF_HIFMON3_HIFEXT1_Pos (1UL) /*!< HIFEXT1 (Bit 1) */ + #define R_PHOSTIF_HIFMON3_HIFEXT1_Msk (0x2UL) /*!< HIFEXT1 (Bitfield-Mask: 0x01) */ +/* ======================================================== HIFXAL ========================================================= */ + #define R_PHOSTIF_HIFXAL_XADDRL_Pos (0UL) /*!< XADDRL (Bit 0) */ + #define R_PHOSTIF_HIFXAL_XADDRL_Msk (0x1ffUL) /*!< XADDRL (Bitfield-Mask: 0x1ff) */ +/* ======================================================== HIFXAH ========================================================= */ + #define R_PHOSTIF_HIFXAH_XADDRH_Pos (0UL) /*!< XADDRH (Bit 0) */ + #define R_PHOSTIF_HIFXAH_XADDRH_Msk (0x1ffUL) /*!< XADDRH (Bitfield-Mask: 0x1ff) */ +/* ======================================================== HIFEXT0 ======================================================== */ + #define R_PHOSTIF_HIFEXT0_KESSBI_Pos (0UL) /*!< KESSBI (Bit 0) */ + #define R_PHOSTIF_HIFEXT0_KESSBI_Msk (0x1UL) /*!< KESSBI (Bitfield-Mask: 0x01) */ + #define R_PHOSTIF_HIFEXT0_KESDTI_Pos (2UL) /*!< KESDTI (Bit 2) */ + #define R_PHOSTIF_HIFEXT0_KESDTI_Msk (0x4UL) /*!< KESDTI (Bitfield-Mask: 0x01) */ + #define R_PHOSTIF_HIFEXT0_KESAVI_Pos (3UL) /*!< KESAVI (Bit 3) */ + #define R_PHOSTIF_HIFEXT0_KESAVI_Msk (0x8UL) /*!< KESAVI (Bitfield-Mask: 0x01) */ + #define R_PHOSTIF_HIFEXT0_KESDTO_Pos (4UL) /*!< KESDTO (Bit 4) */ + #define R_PHOSTIF_HIFEXT0_KESDTO_Msk (0x10UL) /*!< KESDTO (Bitfield-Mask: 0x01) */ + #define R_PHOSTIF_HIFEXT0_KESWTO_Pos (5UL) /*!< KESWTO (Bit 5) */ + #define R_PHOSTIF_HIFEXT0_KESWTO_Msk (0x20UL) /*!< KESWTO (Bitfield-Mask: 0x01) */ + #define R_PHOSTIF_HIFEXT0_CNDWEO_Pos (9UL) /*!< CNDWEO (Bit 9) */ + #define R_PHOSTIF_HIFEXT0_CNDWEO_Msk (0x200UL) /*!< CNDWEO (Bitfield-Mask: 0x01) */ + #define R_PHOSTIF_HIFEXT0_MODTRN_Pos (15UL) /*!< MODTRN (Bit 15) */ + #define R_PHOSTIF_HIFEXT0_MODTRN_Msk (0x8000UL) /*!< MODTRN (Bitfield-Mask: 0x01) */ +/* ======================================================== HIFEXT1 ======================================================== */ + #define R_PHOSTIF_HIFEXT1_DLYWA_Pos (0UL) /*!< DLYWA (Bit 0) */ + #define R_PHOSTIF_HIFEXT1_DLYWA_Msk (0xfUL) /*!< DLYWA (Bitfield-Mask: 0x0f) */ + #define R_PHOSTIF_HIFEXT1_DLYRA_Pos (8UL) /*!< DLYRA (Bit 8) */ + #define R_PHOSTIF_HIFEXT1_DLYRA_Msk (0xf00UL) /*!< DLYRA (Bitfield-Mask: 0x0f) */ + +/* =========================================================================================================================== */ +/* ================ R_SYSC_NS ================ */ +/* =========================================================================================================================== */ + +/* ========================================================= SCKCR ========================================================= */ + #define R_SYSC_NS_SCKCR_FSELXSPI0_Pos (0UL) /*!< FSELXSPI0 (Bit 0) */ + #define R_SYSC_NS_SCKCR_FSELXSPI0_Msk (0x7UL) /*!< FSELXSPI0 (Bitfield-Mask: 0x07) */ + #define R_SYSC_NS_SCKCR_DIVSELXSPI0_Pos (6UL) /*!< DIVSELXSPI0 (Bit 6) */ + #define R_SYSC_NS_SCKCR_DIVSELXSPI0_Msk (0x40UL) /*!< DIVSELXSPI0 (Bitfield-Mask: 0x01) */ + #define R_SYSC_NS_SCKCR_FSELXSPI1_Pos (8UL) /*!< FSELXSPI1 (Bit 8) */ + #define R_SYSC_NS_SCKCR_FSELXSPI1_Msk (0x700UL) /*!< FSELXSPI1 (Bitfield-Mask: 0x07) */ + #define R_SYSC_NS_SCKCR_DIVSELXSPI1_Pos (14UL) /*!< DIVSELXSPI1 (Bit 14) */ + #define R_SYSC_NS_SCKCR_DIVSELXSPI1_Msk (0x4000UL) /*!< DIVSELXSPI1 (Bitfield-Mask: 0x01) */ + #define R_SYSC_NS_SCKCR_CKIO_Pos (16UL) /*!< CKIO (Bit 16) */ + #define R_SYSC_NS_SCKCR_CKIO_Msk (0x70000UL) /*!< CKIO (Bitfield-Mask: 0x07) */ + #define R_SYSC_NS_SCKCR_FSELCANFD_Pos (20UL) /*!< FSELCANFD (Bit 20) */ + #define R_SYSC_NS_SCKCR_FSELCANFD_Msk (0x100000UL) /*!< FSELCANFD (Bitfield-Mask: 0x01) */ + #define R_SYSC_NS_SCKCR_PHYSEL_Pos (21UL) /*!< PHYSEL (Bit 21) */ + #define R_SYSC_NS_SCKCR_PHYSEL_Msk (0x200000UL) /*!< PHYSEL (Bitfield-Mask: 0x01) */ + #define R_SYSC_NS_SCKCR_CLMASEL_Pos (22UL) /*!< CLMASEL (Bit 22) */ + #define R_SYSC_NS_SCKCR_CLMASEL_Msk (0x400000UL) /*!< CLMASEL (Bitfield-Mask: 0x01) */ + #define R_SYSC_NS_SCKCR_SPI0ASYNCSEL_Pos (24UL) /*!< SPI0ASYNCSEL (Bit 24) */ + #define R_SYSC_NS_SCKCR_SPI0ASYNCSEL_Msk (0x1000000UL) /*!< SPI0ASYNCSEL (Bitfield-Mask: 0x01) */ + #define R_SYSC_NS_SCKCR_SPI1ASYNCSEL_Pos (25UL) /*!< SPI1ASYNCSEL (Bit 25) */ + #define R_SYSC_NS_SCKCR_SPI1ASYNCSEL_Msk (0x2000000UL) /*!< SPI1ASYNCSEL (Bitfield-Mask: 0x01) */ + #define R_SYSC_NS_SCKCR_SPI2ASYNCSEL_Pos (26UL) /*!< SPI2ASYNCSEL (Bit 26) */ + #define R_SYSC_NS_SCKCR_SPI2ASYNCSEL_Msk (0x4000000UL) /*!< SPI2ASYNCSEL (Bitfield-Mask: 0x01) */ + #define R_SYSC_NS_SCKCR_SCI0ASYNCSEL_Pos (27UL) /*!< SCI0ASYNCSEL (Bit 27) */ + #define R_SYSC_NS_SCKCR_SCI0ASYNCSEL_Msk (0x8000000UL) /*!< SCI0ASYNCSEL (Bitfield-Mask: 0x01) */ + #define R_SYSC_NS_SCKCR_SCI1ASYNCSEL_Pos (28UL) /*!< SCI1ASYNCSEL (Bit 28) */ + #define R_SYSC_NS_SCKCR_SCI1ASYNCSEL_Msk (0x10000000UL) /*!< SCI1ASYNCSEL (Bitfield-Mask: 0x01) */ + #define R_SYSC_NS_SCKCR_SCI2ASYNCSEL_Pos (29UL) /*!< SCI2ASYNCSEL (Bit 29) */ + #define R_SYSC_NS_SCKCR_SCI2ASYNCSEL_Msk (0x20000000UL) /*!< SCI2ASYNCSEL (Bitfield-Mask: 0x01) */ + #define R_SYSC_NS_SCKCR_SCI3ASYNCSEL_Pos (30UL) /*!< SCI3ASYNCSEL (Bit 30) */ + #define R_SYSC_NS_SCKCR_SCI3ASYNCSEL_Msk (0x40000000UL) /*!< SCI3ASYNCSEL (Bitfield-Mask: 0x01) */ + #define R_SYSC_NS_SCKCR_SCI4ASYNCSEL_Pos (31UL) /*!< SCI4ASYNCSEL (Bit 31) */ + #define R_SYSC_NS_SCKCR_SCI4ASYNCSEL_Msk (0x80000000UL) /*!< SCI4ASYNCSEL (Bitfield-Mask: 0x01) */ +/* ======================================================== RSTSR0 ========================================================= */ + #define R_SYSC_NS_RSTSR0_TRF_Pos (1UL) /*!< TRF (Bit 1) */ + #define R_SYSC_NS_RSTSR0_TRF_Msk (0x2UL) /*!< TRF (Bitfield-Mask: 0x01) */ + #define R_SYSC_NS_RSTSR0_ERRF_Pos (2UL) /*!< ERRF (Bit 2) */ + #define R_SYSC_NS_RSTSR0_ERRF_Msk (0x4UL) /*!< ERRF (Bitfield-Mask: 0x01) */ + #define R_SYSC_NS_RSTSR0_SWRSF_Pos (3UL) /*!< SWRSF (Bit 3) */ + #define R_SYSC_NS_RSTSR0_SWRSF_Msk (0x8UL) /*!< SWRSF (Bitfield-Mask: 0x01) */ + #define R_SYSC_NS_RSTSR0_SWR0F_Pos (4UL) /*!< SWR0F (Bit 4) */ + #define R_SYSC_NS_RSTSR0_SWR0F_Msk (0x10UL) /*!< SWR0F (Bitfield-Mask: 0x01) */ +/* ======================================================== MRCTLA ========================================================= */ + #define R_SYSC_NS_MRCTLA_MRCTLA04_Pos (4UL) /*!< MRCTLA04 (Bit 4) */ + #define R_SYSC_NS_MRCTLA_MRCTLA04_Msk (0x10UL) /*!< MRCTLA04 (Bitfield-Mask: 0x01) */ + #define R_SYSC_NS_MRCTLA_MRCTLA05_Pos (5UL) /*!< MRCTLA05 (Bit 5) */ + #define R_SYSC_NS_MRCTLA_MRCTLA05_Msk (0x20UL) /*!< MRCTLA05 (Bitfield-Mask: 0x01) */ +/* ======================================================== MRCTLE ========================================================= */ + #define R_SYSC_NS_MRCTLE_MRCTLE00_Pos (0UL) /*!< MRCTLE00 (Bit 0) */ + #define R_SYSC_NS_MRCTLE_MRCTLE00_Msk (0x1UL) /*!< MRCTLE00 (Bitfield-Mask: 0x01) */ + #define R_SYSC_NS_MRCTLE_MRCTLE01_Pos (1UL) /*!< MRCTLE01 (Bit 1) */ + #define R_SYSC_NS_MRCTLE_MRCTLE01_Msk (0x2UL) /*!< MRCTLE01 (Bitfield-Mask: 0x01) */ + #define R_SYSC_NS_MRCTLE_MRCTLE02_Pos (2UL) /*!< MRCTLE02 (Bit 2) */ + #define R_SYSC_NS_MRCTLE_MRCTLE02_Msk (0x4UL) /*!< MRCTLE02 (Bitfield-Mask: 0x01) */ + #define R_SYSC_NS_MRCTLE_MRCTLE03_Pos (3UL) /*!< MRCTLE03 (Bit 3) */ + #define R_SYSC_NS_MRCTLE_MRCTLE03_Msk (0x8UL) /*!< MRCTLE03 (Bitfield-Mask: 0x01) */ + #define R_SYSC_NS_MRCTLE_MRCTLE04_Pos (4UL) /*!< MRCTLE04 (Bit 4) */ + #define R_SYSC_NS_MRCTLE_MRCTLE04_Msk (0x10UL) /*!< MRCTLE04 (Bitfield-Mask: 0x01) */ + #define R_SYSC_NS_MRCTLE_MRCTLE05_Pos (5UL) /*!< MRCTLE05 (Bit 5) */ + #define R_SYSC_NS_MRCTLE_MRCTLE05_Msk (0x20UL) /*!< MRCTLE05 (Bitfield-Mask: 0x01) */ + #define R_SYSC_NS_MRCTLE_MRCTLE06_Pos (6UL) /*!< MRCTLE06 (Bit 6) */ + #define R_SYSC_NS_MRCTLE_MRCTLE06_Msk (0x40UL) /*!< MRCTLE06 (Bitfield-Mask: 0x01) */ +/* ======================================================== MSTPCRA ======================================================== */ + #define R_SYSC_NS_MSTPCRA_MSTPCRA00_Pos (0UL) /*!< MSTPCRA00 (Bit 0) */ + #define R_SYSC_NS_MSTPCRA_MSTPCRA00_Msk (0x1UL) /*!< MSTPCRA00 (Bitfield-Mask: 0x01) */ + #define R_SYSC_NS_MSTPCRA_MSTPCRA04_Pos (4UL) /*!< MSTPCRA04 (Bit 4) */ + #define R_SYSC_NS_MSTPCRA_MSTPCRA04_Msk (0x10UL) /*!< MSTPCRA04 (Bitfield-Mask: 0x01) */ + #define R_SYSC_NS_MSTPCRA_MSTPCRA05_Pos (5UL) /*!< MSTPCRA05 (Bit 5) */ + #define R_SYSC_NS_MSTPCRA_MSTPCRA05_Msk (0x20UL) /*!< MSTPCRA05 (Bitfield-Mask: 0x01) */ + #define R_SYSC_NS_MSTPCRA_MSTPCRA08_Pos (8UL) /*!< MSTPCRA08 (Bit 8) */ + #define R_SYSC_NS_MSTPCRA_MSTPCRA08_Msk (0x100UL) /*!< MSTPCRA08 (Bitfield-Mask: 0x01) */ + #define R_SYSC_NS_MSTPCRA_MSTPCRA09_Pos (9UL) /*!< MSTPCRA09 (Bit 9) */ + #define R_SYSC_NS_MSTPCRA_MSTPCRA09_Msk (0x200UL) /*!< MSTPCRA09 (Bitfield-Mask: 0x01) */ + #define R_SYSC_NS_MSTPCRA_MSTPCRA10_Pos (10UL) /*!< MSTPCRA10 (Bit 10) */ + #define R_SYSC_NS_MSTPCRA_MSTPCRA10_Msk (0x400UL) /*!< MSTPCRA10 (Bitfield-Mask: 0x01) */ + #define R_SYSC_NS_MSTPCRA_MSTPCRA11_Pos (11UL) /*!< MSTPCRA11 (Bit 11) */ + #define R_SYSC_NS_MSTPCRA_MSTPCRA11_Msk (0x800UL) /*!< MSTPCRA11 (Bitfield-Mask: 0x01) */ + #define R_SYSC_NS_MSTPCRA_MSTPCRA12_Pos (12UL) /*!< MSTPCRA12 (Bit 12) */ + #define R_SYSC_NS_MSTPCRA_MSTPCRA12_Msk (0x1000UL) /*!< MSTPCRA12 (Bitfield-Mask: 0x01) */ +/* ======================================================== MSTPCRB ======================================================== */ + #define R_SYSC_NS_MSTPCRB_MSTPCRB00_Pos (0UL) /*!< MSTPCRB00 (Bit 0) */ + #define R_SYSC_NS_MSTPCRB_MSTPCRB00_Msk (0x1UL) /*!< MSTPCRB00 (Bitfield-Mask: 0x01) */ + #define R_SYSC_NS_MSTPCRB_MSTPCRB01_Pos (1UL) /*!< MSTPCRB01 (Bit 1) */ + #define R_SYSC_NS_MSTPCRB_MSTPCRB01_Msk (0x2UL) /*!< MSTPCRB01 (Bitfield-Mask: 0x01) */ + #define R_SYSC_NS_MSTPCRB_MSTPCRB04_Pos (4UL) /*!< MSTPCRB04 (Bit 4) */ + #define R_SYSC_NS_MSTPCRB_MSTPCRB04_Msk (0x10UL) /*!< MSTPCRB04 (Bitfield-Mask: 0x01) */ + #define R_SYSC_NS_MSTPCRB_MSTPCRB05_Pos (5UL) /*!< MSTPCRB05 (Bit 5) */ + #define R_SYSC_NS_MSTPCRB_MSTPCRB05_Msk (0x20UL) /*!< MSTPCRB05 (Bitfield-Mask: 0x01) */ + #define R_SYSC_NS_MSTPCRB_MSTPCRB06_Pos (6UL) /*!< MSTPCRB06 (Bit 6) */ + #define R_SYSC_NS_MSTPCRB_MSTPCRB06_Msk (0x40UL) /*!< MSTPCRB06 (Bitfield-Mask: 0x01) */ +/* ======================================================== MSTPCRC ======================================================== */ + #define R_SYSC_NS_MSTPCRC_MSTPCRC00_Pos (0UL) /*!< MSTPCRC00 (Bit 0) */ + #define R_SYSC_NS_MSTPCRC_MSTPCRC00_Msk (0x1UL) /*!< MSTPCRC00 (Bitfield-Mask: 0x01) */ + #define R_SYSC_NS_MSTPCRC_MSTPCRC01_Pos (1UL) /*!< MSTPCRC01 (Bit 1) */ + #define R_SYSC_NS_MSTPCRC_MSTPCRC01_Msk (0x2UL) /*!< MSTPCRC01 (Bitfield-Mask: 0x01) */ + #define R_SYSC_NS_MSTPCRC_MSTPCRC02_Pos (2UL) /*!< MSTPCRC02 (Bit 2) */ + #define R_SYSC_NS_MSTPCRC_MSTPCRC02_Msk (0x4UL) /*!< MSTPCRC02 (Bitfield-Mask: 0x01) */ + #define R_SYSC_NS_MSTPCRC_MSTPCRC05_Pos (5UL) /*!< MSTPCRC05 (Bit 5) */ + #define R_SYSC_NS_MSTPCRC_MSTPCRC05_Msk (0x20UL) /*!< MSTPCRC05 (Bitfield-Mask: 0x01) */ + #define R_SYSC_NS_MSTPCRC_MSTPCRC06_Pos (6UL) /*!< MSTPCRC06 (Bit 6) */ + #define R_SYSC_NS_MSTPCRC_MSTPCRC06_Msk (0x40UL) /*!< MSTPCRC06 (Bitfield-Mask: 0x01) */ + #define R_SYSC_NS_MSTPCRC_MSTPCRC07_Pos (7UL) /*!< MSTPCRC07 (Bit 7) */ + #define R_SYSC_NS_MSTPCRC_MSTPCRC07_Msk (0x80UL) /*!< MSTPCRC07 (Bitfield-Mask: 0x01) */ +/* ======================================================== MSTPCRD ======================================================== */ + #define R_SYSC_NS_MSTPCRD_MSTPCRD00_Pos (0UL) /*!< MSTPCRD00 (Bit 0) */ + #define R_SYSC_NS_MSTPCRD_MSTPCRD00_Msk (0x1UL) /*!< MSTPCRD00 (Bitfield-Mask: 0x01) */ + #define R_SYSC_NS_MSTPCRD_MSTPCRD01_Pos (1UL) /*!< MSTPCRD01 (Bit 1) */ + #define R_SYSC_NS_MSTPCRD_MSTPCRD01_Msk (0x2UL) /*!< MSTPCRD01 (Bitfield-Mask: 0x01) */ + #define R_SYSC_NS_MSTPCRD_MSTPCRD02_Pos (2UL) /*!< MSTPCRD02 (Bit 2) */ + #define R_SYSC_NS_MSTPCRD_MSTPCRD02_Msk (0x4UL) /*!< MSTPCRD02 (Bitfield-Mask: 0x01) */ + #define R_SYSC_NS_MSTPCRD_MSTPCRD03_Pos (3UL) /*!< MSTPCRD03 (Bit 3) */ + #define R_SYSC_NS_MSTPCRD_MSTPCRD03_Msk (0x8UL) /*!< MSTPCRD03 (Bitfield-Mask: 0x01) */ + #define R_SYSC_NS_MSTPCRD_MSTPCRD04_Pos (4UL) /*!< MSTPCRD04 (Bit 4) */ + #define R_SYSC_NS_MSTPCRD_MSTPCRD04_Msk (0x10UL) /*!< MSTPCRD04 (Bitfield-Mask: 0x01) */ + #define R_SYSC_NS_MSTPCRD_MSTPCRD05_Pos (5UL) /*!< MSTPCRD05 (Bit 5) */ + #define R_SYSC_NS_MSTPCRD_MSTPCRD05_Msk (0x20UL) /*!< MSTPCRD05 (Bitfield-Mask: 0x01) */ + #define R_SYSC_NS_MSTPCRD_MSTPCRD06_Pos (6UL) /*!< MSTPCRD06 (Bit 6) */ + #define R_SYSC_NS_MSTPCRD_MSTPCRD06_Msk (0x40UL) /*!< MSTPCRD06 (Bitfield-Mask: 0x01) */ + #define R_SYSC_NS_MSTPCRD_MSTPCRD07_Pos (7UL) /*!< MSTPCRD07 (Bit 7) */ + #define R_SYSC_NS_MSTPCRD_MSTPCRD07_Msk (0x80UL) /*!< MSTPCRD07 (Bitfield-Mask: 0x01) */ + #define R_SYSC_NS_MSTPCRD_MSTPCRD08_Pos (8UL) /*!< MSTPCRD08 (Bit 8) */ + #define R_SYSC_NS_MSTPCRD_MSTPCRD08_Msk (0x100UL) /*!< MSTPCRD08 (Bitfield-Mask: 0x01) */ + #define R_SYSC_NS_MSTPCRD_MSTPCRD09_Pos (9UL) /*!< MSTPCRD09 (Bit 9) */ + #define R_SYSC_NS_MSTPCRD_MSTPCRD09_Msk (0x200UL) /*!< MSTPCRD09 (Bitfield-Mask: 0x01) */ + #define R_SYSC_NS_MSTPCRD_MSTPCRD10_Pos (10UL) /*!< MSTPCRD10 (Bit 10) */ + #define R_SYSC_NS_MSTPCRD_MSTPCRD10_Msk (0x400UL) /*!< MSTPCRD10 (Bitfield-Mask: 0x01) */ + #define R_SYSC_NS_MSTPCRD_MSTPCRD11_Pos (11UL) /*!< MSTPCRD11 (Bit 11) */ + #define R_SYSC_NS_MSTPCRD_MSTPCRD11_Msk (0x800UL) /*!< MSTPCRD11 (Bitfield-Mask: 0x01) */ +/* ======================================================== MSTPCRE ======================================================== */ + #define R_SYSC_NS_MSTPCRE_MSTPCRE00_Pos (0UL) /*!< MSTPCRE00 (Bit 0) */ + #define R_SYSC_NS_MSTPCRE_MSTPCRE00_Msk (0x1UL) /*!< MSTPCRE00 (Bitfield-Mask: 0x01) */ + #define R_SYSC_NS_MSTPCRE_MSTPCRE01_Pos (1UL) /*!< MSTPCRE01 (Bit 1) */ + #define R_SYSC_NS_MSTPCRE_MSTPCRE01_Msk (0x2UL) /*!< MSTPCRE01 (Bitfield-Mask: 0x01) */ + #define R_SYSC_NS_MSTPCRE_MSTPCRE02_Pos (2UL) /*!< MSTPCRE02 (Bit 2) */ + #define R_SYSC_NS_MSTPCRE_MSTPCRE02_Msk (0x4UL) /*!< MSTPCRE02 (Bitfield-Mask: 0x01) */ + #define R_SYSC_NS_MSTPCRE_MSTPCRE03_Pos (3UL) /*!< MSTPCRE03 (Bit 3) */ + #define R_SYSC_NS_MSTPCRE_MSTPCRE03_Msk (0x8UL) /*!< MSTPCRE03 (Bitfield-Mask: 0x01) */ + #define R_SYSC_NS_MSTPCRE_MSTPCRE08_Pos (8UL) /*!< MSTPCRE08 (Bit 8) */ + #define R_SYSC_NS_MSTPCRE_MSTPCRE08_Msk (0x100UL) /*!< MSTPCRE08 (Bitfield-Mask: 0x01) */ +/* ======================================================== MD_MON ========================================================= */ + #define R_SYSC_NS_MD_MON_MDDMON_Pos (0UL) /*!< MDDMON (Bit 0) */ + #define R_SYSC_NS_MD_MON_MDDMON_Msk (0x1UL) /*!< MDDMON (Bitfield-Mask: 0x01) */ + #define R_SYSC_NS_MD_MON_MDP_Pos (8UL) /*!< MDP (Bit 8) */ + #define R_SYSC_NS_MD_MON_MDP_Msk (0x100UL) /*!< MDP (Bitfield-Mask: 0x01) */ + #define R_SYSC_NS_MD_MON_MD0MON_Pos (12UL) /*!< MD0MON (Bit 12) */ + #define R_SYSC_NS_MD_MON_MD0MON_Msk (0x1000UL) /*!< MD0MON (Bitfield-Mask: 0x01) */ + #define R_SYSC_NS_MD_MON_MD1MON_Pos (13UL) /*!< MD1MON (Bit 13) */ + #define R_SYSC_NS_MD_MON_MD1MON_Msk (0x2000UL) /*!< MD1MON (Bitfield-Mask: 0x01) */ + #define R_SYSC_NS_MD_MON_MD2MON_Pos (14UL) /*!< MD2MON (Bit 14) */ + #define R_SYSC_NS_MD_MON_MD2MON_Msk (0x4000UL) /*!< MD2MON (Bitfield-Mask: 0x01) */ + #define R_SYSC_NS_MD_MON_MDV0MON_Pos (16UL) /*!< MDV0MON (Bit 16) */ + #define R_SYSC_NS_MD_MON_MDV0MON_Msk (0x10000UL) /*!< MDV0MON (Bitfield-Mask: 0x01) */ + #define R_SYSC_NS_MD_MON_MDV1MON_Pos (17UL) /*!< MDV1MON (Bit 17) */ + #define R_SYSC_NS_MD_MON_MDV1MON_Msk (0x20000UL) /*!< MDV1MON (Bitfield-Mask: 0x01) */ + #define R_SYSC_NS_MD_MON_MDV2MON_Pos (18UL) /*!< MDV2MON (Bit 18) */ + #define R_SYSC_NS_MD_MON_MDV2MON_Msk (0x40000UL) /*!< MDV2MON (Bitfield-Mask: 0x01) */ + #define R_SYSC_NS_MD_MON_MDV3MON_Pos (19UL) /*!< MDV3MON (Bit 19) */ + #define R_SYSC_NS_MD_MON_MDV3MON_Msk (0x80000UL) /*!< MDV3MON (Bitfield-Mask: 0x01) */ + #define R_SYSC_NS_MD_MON_MDV4MON_Pos (20UL) /*!< MDV4MON (Bit 20) */ + #define R_SYSC_NS_MD_MON_MDV4MON_Msk (0x100000UL) /*!< MDV4MON (Bitfield-Mask: 0x01) */ + +/* =========================================================================================================================== */ +/* ================ R_ELO ================ */ +/* =========================================================================================================================== */ + +/* ========================================================= ELOPA ========================================================= */ + #define R_ELO_ELOPA_MTU0MD_Pos (0UL) /*!< MTU0MD (Bit 0) */ + #define R_ELO_ELOPA_MTU0MD_Msk (0x3UL) /*!< MTU0MD (Bitfield-Mask: 0x03) */ + #define R_ELO_ELOPA_MTU3MD_Pos (6UL) /*!< MTU3MD (Bit 6) */ + #define R_ELO_ELOPA_MTU3MD_Msk (0xc0UL) /*!< MTU3MD (Bitfield-Mask: 0x03) */ +/* ========================================================= ELOPB ========================================================= */ + #define R_ELO_ELOPB_MTU4MD_Pos (0UL) /*!< MTU4MD (Bit 0) */ + #define R_ELO_ELOPB_MTU4MD_Msk (0x3UL) /*!< MTU4MD (Bitfield-Mask: 0x03) */ + +/* =========================================================================================================================== */ +/* ================ R_RWP_NS ================ */ +/* =========================================================================================================================== */ + +/* ========================================================= PRCRN ========================================================= */ + #define R_RWP_NS_PRCRN_PRC0_Pos (0UL) /*!< PRC0 (Bit 0) */ + #define R_RWP_NS_PRCRN_PRC0_Msk (0x1UL) /*!< PRC0 (Bitfield-Mask: 0x01) */ + #define R_RWP_NS_PRCRN_PRC1_Pos (1UL) /*!< PRC1 (Bit 1) */ + #define R_RWP_NS_PRCRN_PRC1_Msk (0x2UL) /*!< PRC1 (Bitfield-Mask: 0x01) */ + #define R_RWP_NS_PRCRN_PRC2_Pos (2UL) /*!< PRC2 (Bit 2) */ + #define R_RWP_NS_PRCRN_PRC2_Msk (0x4UL) /*!< PRC2 (Bitfield-Mask: 0x01) */ + #define R_RWP_NS_PRCRN_PRKEY_Pos (8UL) /*!< PRKEY (Bit 8) */ + #define R_RWP_NS_PRCRN_PRKEY_Msk (0xff00UL) /*!< PRKEY (Bitfield-Mask: 0xff) */ + +/* =========================================================================================================================== */ +/* ================ R_RTC ================ */ +/* =========================================================================================================================== */ + +/* ======================================================= RTCA0CTL0 ======================================================= */ + #define R_RTC_RTCA0CTL0_RTCA0SLSB_Pos (4UL) /*!< RTCA0SLSB (Bit 4) */ + #define R_RTC_RTCA0CTL0_RTCA0SLSB_Msk (0x10UL) /*!< RTCA0SLSB (Bitfield-Mask: 0x01) */ + #define R_RTC_RTCA0CTL0_RTCA0AMPM_Pos (5UL) /*!< RTCA0AMPM (Bit 5) */ + #define R_RTC_RTCA0CTL0_RTCA0AMPM_Msk (0x20UL) /*!< RTCA0AMPM (Bitfield-Mask: 0x01) */ + #define R_RTC_RTCA0CTL0_RTCA0CEST_Pos (6UL) /*!< RTCA0CEST (Bit 6) */ + #define R_RTC_RTCA0CTL0_RTCA0CEST_Msk (0x40UL) /*!< RTCA0CEST (Bitfield-Mask: 0x01) */ + #define R_RTC_RTCA0CTL0_RTCA0CE_Pos (7UL) /*!< RTCA0CE (Bit 7) */ + #define R_RTC_RTCA0CTL0_RTCA0CE_Msk (0x80UL) /*!< RTCA0CE (Bitfield-Mask: 0x01) */ +/* ======================================================= RTCA0CTL1 ======================================================= */ + #define R_RTC_RTCA0CTL1_RTCA0CT_Pos (0UL) /*!< RTCA0CT (Bit 0) */ + #define R_RTC_RTCA0CTL1_RTCA0CT_Msk (0x7UL) /*!< RTCA0CT (Bitfield-Mask: 0x07) */ + #define R_RTC_RTCA0CTL1_RTCA01SE_Pos (3UL) /*!< RTCA01SE (Bit 3) */ + #define R_RTC_RTCA0CTL1_RTCA01SE_Msk (0x8UL) /*!< RTCA01SE (Bitfield-Mask: 0x01) */ + #define R_RTC_RTCA0CTL1_RTCA0ALME_Pos (4UL) /*!< RTCA0ALME (Bit 4) */ + #define R_RTC_RTCA0CTL1_RTCA0ALME_Msk (0x10UL) /*!< RTCA0ALME (Bitfield-Mask: 0x01) */ + #define R_RTC_RTCA0CTL1_RTCA01HZE_Pos (5UL) /*!< RTCA01HZE (Bit 5) */ + #define R_RTC_RTCA0CTL1_RTCA01HZE_Msk (0x20UL) /*!< RTCA01HZE (Bitfield-Mask: 0x01) */ +/* ======================================================= RTCA0CTL2 ======================================================= */ + #define R_RTC_RTCA0CTL2_RTCA0WAIT_Pos (0UL) /*!< RTCA0WAIT (Bit 0) */ + #define R_RTC_RTCA0CTL2_RTCA0WAIT_Msk (0x1UL) /*!< RTCA0WAIT (Bitfield-Mask: 0x01) */ + #define R_RTC_RTCA0CTL2_RTCA0WST_Pos (1UL) /*!< RTCA0WST (Bit 1) */ + #define R_RTC_RTCA0CTL2_RTCA0WST_Msk (0x2UL) /*!< RTCA0WST (Bitfield-Mask: 0x01) */ + #define R_RTC_RTCA0CTL2_RTCA0RSUB_Pos (2UL) /*!< RTCA0RSUB (Bit 2) */ + #define R_RTC_RTCA0CTL2_RTCA0RSUB_Msk (0x4UL) /*!< RTCA0RSUB (Bitfield-Mask: 0x01) */ + #define R_RTC_RTCA0CTL2_RTCA0RSST_Pos (3UL) /*!< RTCA0RSST (Bit 3) */ + #define R_RTC_RTCA0CTL2_RTCA0RSST_Msk (0x8UL) /*!< RTCA0RSST (Bitfield-Mask: 0x01) */ + #define R_RTC_RTCA0CTL2_RTCA0WSST_Pos (4UL) /*!< RTCA0WSST (Bit 4) */ + #define R_RTC_RTCA0CTL2_RTCA0WSST_Msk (0x10UL) /*!< RTCA0WSST (Bitfield-Mask: 0x01) */ +/* ======================================================= RTCA0SUBC ======================================================= */ + #define R_RTC_RTCA0SUBC_RTCA0SUBC_Pos (0UL) /*!< RTCA0SUBC (Bit 0) */ + #define R_RTC_RTCA0SUBC_RTCA0SUBC_Msk (0x3fffffUL) /*!< RTCA0SUBC (Bitfield-Mask: 0x3fffff) */ +/* ======================================================= RTCA0SRBU ======================================================= */ + #define R_RTC_RTCA0SRBU_RTCA0SRBU_Pos (0UL) /*!< RTCA0SRBU (Bit 0) */ + #define R_RTC_RTCA0SRBU_RTCA0SRBU_Msk (0x3fffffUL) /*!< RTCA0SRBU (Bitfield-Mask: 0x3fffff) */ +/* ======================================================= RTCA0SEC ======================================================== */ + #define R_RTC_RTCA0SEC_RTCA0SEC_Pos (0UL) /*!< RTCA0SEC (Bit 0) */ + #define R_RTC_RTCA0SEC_RTCA0SEC_Msk (0x7fUL) /*!< RTCA0SEC (Bitfield-Mask: 0x7f) */ +/* ======================================================= RTCA0MIN ======================================================== */ + #define R_RTC_RTCA0MIN_RTCA0MIN_Pos (0UL) /*!< RTCA0MIN (Bit 0) */ + #define R_RTC_RTCA0MIN_RTCA0MIN_Msk (0x7fUL) /*!< RTCA0MIN (Bitfield-Mask: 0x7f) */ +/* ======================================================= RTCA0HOUR ======================================================= */ + #define R_RTC_RTCA0HOUR_RTCA0HOUR_Pos (0UL) /*!< RTCA0HOUR (Bit 0) */ + #define R_RTC_RTCA0HOUR_RTCA0HOUR_Msk (0x3fUL) /*!< RTCA0HOUR (Bitfield-Mask: 0x3f) */ +/* ======================================================= RTCA0WEEK ======================================================= */ + #define R_RTC_RTCA0WEEK_RTCA0WEEK_Pos (0UL) /*!< RTCA0WEEK (Bit 0) */ + #define R_RTC_RTCA0WEEK_RTCA0WEEK_Msk (0x7UL) /*!< RTCA0WEEK (Bitfield-Mask: 0x07) */ +/* ======================================================= RTCA0DAY ======================================================== */ + #define R_RTC_RTCA0DAY_RTCA0DAY_Pos (0UL) /*!< RTCA0DAY (Bit 0) */ + #define R_RTC_RTCA0DAY_RTCA0DAY_Msk (0x3fUL) /*!< RTCA0DAY (Bitfield-Mask: 0x3f) */ +/* ====================================================== RTCA0MONTH ======================================================= */ + #define R_RTC_RTCA0MONTH_RTCA0MONTH_Pos (0UL) /*!< RTCA0MONTH (Bit 0) */ + #define R_RTC_RTCA0MONTH_RTCA0MONTH_Msk (0x1fUL) /*!< RTCA0MONTH (Bitfield-Mask: 0x1f) */ +/* ======================================================= RTCA0YEAR ======================================================= */ + #define R_RTC_RTCA0YEAR_RTCA0YEAR_Pos (0UL) /*!< RTCA0YEAR (Bit 0) */ + #define R_RTC_RTCA0YEAR_RTCA0YEAR_Msk (0xffUL) /*!< RTCA0YEAR (Bitfield-Mask: 0xff) */ +/* ======================================================= RTCA0TIME ======================================================= */ + #define R_RTC_RTCA0TIME_RTCA0SEC_Pos (0UL) /*!< RTCA0SEC (Bit 0) */ + #define R_RTC_RTCA0TIME_RTCA0SEC_Msk (0xffUL) /*!< RTCA0SEC (Bitfield-Mask: 0xff) */ + #define R_RTC_RTCA0TIME_RTCA0MIN_Pos (8UL) /*!< RTCA0MIN (Bit 8) */ + #define R_RTC_RTCA0TIME_RTCA0MIN_Msk (0xff00UL) /*!< RTCA0MIN (Bitfield-Mask: 0xff) */ + #define R_RTC_RTCA0TIME_RTCA0HOUR_Pos (16UL) /*!< RTCA0HOUR (Bit 16) */ + #define R_RTC_RTCA0TIME_RTCA0HOUR_Msk (0xff0000UL) /*!< RTCA0HOUR (Bitfield-Mask: 0xff) */ +/* ======================================================= RTCA0CAL ======================================================== */ + #define R_RTC_RTCA0CAL_RTCA0WEEK_Pos (0UL) /*!< RTCA0WEEK (Bit 0) */ + #define R_RTC_RTCA0CAL_RTCA0WEEK_Msk (0xffUL) /*!< RTCA0WEEK (Bitfield-Mask: 0xff) */ + #define R_RTC_RTCA0CAL_RTCA0DAY_Pos (8UL) /*!< RTCA0DAY (Bit 8) */ + #define R_RTC_RTCA0CAL_RTCA0DAY_Msk (0xff00UL) /*!< RTCA0DAY (Bitfield-Mask: 0xff) */ + #define R_RTC_RTCA0CAL_RTCA0MONTH_Pos (16UL) /*!< RTCA0MONTH (Bit 16) */ + #define R_RTC_RTCA0CAL_RTCA0MONTH_Msk (0xff0000UL) /*!< RTCA0MONTH (Bitfield-Mask: 0xff) */ + #define R_RTC_RTCA0CAL_RTCA0YEAR_Pos (24UL) /*!< RTCA0YEAR (Bit 24) */ + #define R_RTC_RTCA0CAL_RTCA0YEAR_Msk (0xff000000UL) /*!< RTCA0YEAR (Bitfield-Mask: 0xff) */ +/* ======================================================= RTCA0SCMP ======================================================= */ + #define R_RTC_RTCA0SCMP_RTCA0SCMP_Pos (0UL) /*!< RTCA0SCMP (Bit 0) */ + #define R_RTC_RTCA0SCMP_RTCA0SCMP_Msk (0x3fffffUL) /*!< RTCA0SCMP (Bitfield-Mask: 0x3fffff) */ +/* ======================================================= RTCA0ALM ======================================================== */ + #define R_RTC_RTCA0ALM_RTCA0ALM_Pos (0UL) /*!< RTCA0ALM (Bit 0) */ + #define R_RTC_RTCA0ALM_RTCA0ALM_Msk (0x7fUL) /*!< RTCA0ALM (Bitfield-Mask: 0x7f) */ +/* ======================================================= RTCA0ALH ======================================================== */ + #define R_RTC_RTCA0ALH_RTCA0ALH_Pos (0UL) /*!< RTCA0ALH (Bit 0) */ + #define R_RTC_RTCA0ALH_RTCA0ALH_Msk (0x3fUL) /*!< RTCA0ALH (Bitfield-Mask: 0x3f) */ +/* ======================================================= RTCA0ALW ======================================================== */ + #define R_RTC_RTCA0ALW_RTCA0ALW0_Pos (0UL) /*!< RTCA0ALW0 (Bit 0) */ + #define R_RTC_RTCA0ALW_RTCA0ALW0_Msk (0x1UL) /*!< RTCA0ALW0 (Bitfield-Mask: 0x01) */ + #define R_RTC_RTCA0ALW_RTCA0ALW1_Pos (1UL) /*!< RTCA0ALW1 (Bit 1) */ + #define R_RTC_RTCA0ALW_RTCA0ALW1_Msk (0x2UL) /*!< RTCA0ALW1 (Bitfield-Mask: 0x01) */ + #define R_RTC_RTCA0ALW_RTCA0ALW2_Pos (2UL) /*!< RTCA0ALW2 (Bit 2) */ + #define R_RTC_RTCA0ALW_RTCA0ALW2_Msk (0x4UL) /*!< RTCA0ALW2 (Bitfield-Mask: 0x01) */ + #define R_RTC_RTCA0ALW_RTCA0ALW3_Pos (3UL) /*!< RTCA0ALW3 (Bit 3) */ + #define R_RTC_RTCA0ALW_RTCA0ALW3_Msk (0x8UL) /*!< RTCA0ALW3 (Bitfield-Mask: 0x01) */ + #define R_RTC_RTCA0ALW_RTCA0ALW4_Pos (4UL) /*!< RTCA0ALW4 (Bit 4) */ + #define R_RTC_RTCA0ALW_RTCA0ALW4_Msk (0x10UL) /*!< RTCA0ALW4 (Bitfield-Mask: 0x01) */ + #define R_RTC_RTCA0ALW_RTCA0ALW5_Pos (5UL) /*!< RTCA0ALW5 (Bit 5) */ + #define R_RTC_RTCA0ALW_RTCA0ALW5_Msk (0x20UL) /*!< RTCA0ALW5 (Bitfield-Mask: 0x01) */ + #define R_RTC_RTCA0ALW_RTCA0ALW6_Pos (6UL) /*!< RTCA0ALW6 (Bit 6) */ + #define R_RTC_RTCA0ALW_RTCA0ALW6_Msk (0x40UL) /*!< RTCA0ALW6 (Bitfield-Mask: 0x01) */ +/* ======================================================= RTCA0SECC ======================================================= */ + #define R_RTC_RTCA0SECC_RTCA0SECC_Pos (0UL) /*!< RTCA0SECC (Bit 0) */ + #define R_RTC_RTCA0SECC_RTCA0SECC_Msk (0x7fUL) /*!< RTCA0SECC (Bitfield-Mask: 0x7f) */ +/* ======================================================= RTCA0MINC ======================================================= */ + #define R_RTC_RTCA0MINC_RTCA0MINC_Pos (0UL) /*!< RTCA0MINC (Bit 0) */ + #define R_RTC_RTCA0MINC_RTCA0MINC_Msk (0x7fUL) /*!< RTCA0MINC (Bitfield-Mask: 0x7f) */ +/* ====================================================== RTCA0HOURC ======================================================= */ + #define R_RTC_RTCA0HOURC_RTCA0HOURC_Pos (0UL) /*!< RTCA0HOURC (Bit 0) */ + #define R_RTC_RTCA0HOURC_RTCA0HOURC_Msk (0x3fUL) /*!< RTCA0HOURC (Bitfield-Mask: 0x3f) */ +/* ====================================================== RTCA0WEEKC ======================================================= */ + #define R_RTC_RTCA0WEEKC_RTCA0WEEKC_Pos (0UL) /*!< RTCA0WEEKC (Bit 0) */ + #define R_RTC_RTCA0WEEKC_RTCA0WEEKC_Msk (0x7UL) /*!< RTCA0WEEKC (Bitfield-Mask: 0x07) */ +/* ======================================================= RTCA0DAYC ======================================================= */ + #define R_RTC_RTCA0DAYC_RTCA0DAYC_Pos (0UL) /*!< RTCA0DAYC (Bit 0) */ + #define R_RTC_RTCA0DAYC_RTCA0DAYC_Msk (0x3fUL) /*!< RTCA0DAYC (Bitfield-Mask: 0x3f) */ +/* ======================================================= RTCA0MONC ======================================================= */ + #define R_RTC_RTCA0MONC_RTCA0MONC_Pos (0UL) /*!< RTCA0MONC (Bit 0) */ + #define R_RTC_RTCA0MONC_RTCA0MONC_Msk (0x1fUL) /*!< RTCA0MONC (Bitfield-Mask: 0x1f) */ +/* ====================================================== RTCA0YEARC ======================================================= */ + #define R_RTC_RTCA0YEARC_RTCA0YEARC_Pos (0UL) /*!< RTCA0YEARC (Bit 0) */ + #define R_RTC_RTCA0YEARC_RTCA0YEARC_Msk (0xffUL) /*!< RTCA0YEARC (Bitfield-Mask: 0xff) */ +/* ====================================================== RTCA0TIMEC ======================================================= */ + #define R_RTC_RTCA0TIMEC_RTCA0SECC_Pos (0UL) /*!< RTCA0SECC (Bit 0) */ + #define R_RTC_RTCA0TIMEC_RTCA0SECC_Msk (0xffUL) /*!< RTCA0SECC (Bitfield-Mask: 0xff) */ + #define R_RTC_RTCA0TIMEC_RTCA0MINC_Pos (8UL) /*!< RTCA0MINC (Bit 8) */ + #define R_RTC_RTCA0TIMEC_RTCA0MINC_Msk (0xff00UL) /*!< RTCA0MINC (Bitfield-Mask: 0xff) */ + #define R_RTC_RTCA0TIMEC_RTCA0HOURC_Pos (16UL) /*!< RTCA0HOURC (Bit 16) */ + #define R_RTC_RTCA0TIMEC_RTCA0HOURC_Msk (0xff0000UL) /*!< RTCA0HOURC (Bitfield-Mask: 0xff) */ +/* ======================================================= RTCA0CALC ======================================================= */ + #define R_RTC_RTCA0CALC_RTCA0WEEKC_Pos (0UL) /*!< RTCA0WEEKC (Bit 0) */ + #define R_RTC_RTCA0CALC_RTCA0WEEKC_Msk (0xffUL) /*!< RTCA0WEEKC (Bitfield-Mask: 0xff) */ + #define R_RTC_RTCA0CALC_RTCA0DAYC_Pos (8UL) /*!< RTCA0DAYC (Bit 8) */ + #define R_RTC_RTCA0CALC_RTCA0DAYC_Msk (0xff00UL) /*!< RTCA0DAYC (Bitfield-Mask: 0xff) */ + #define R_RTC_RTCA0CALC_RTCA0MONC_Pos (16UL) /*!< RTCA0MONC (Bit 16) */ + #define R_RTC_RTCA0CALC_RTCA0MONC_Msk (0xff0000UL) /*!< RTCA0MONC (Bitfield-Mask: 0xff) */ + #define R_RTC_RTCA0CALC_RTCA0YEARC_Pos (24UL) /*!< RTCA0YEARC (Bit 24) */ + #define R_RTC_RTCA0CALC_RTCA0YEARC_Msk (0xff000000UL) /*!< RTCA0YEARC (Bitfield-Mask: 0xff) */ + +/* =========================================================================================================================== */ +/* ================ R_POEG2 ================ */ +/* =========================================================================================================================== */ + +/* ======================================================== POEG2GA ======================================================== */ + #define R_POEG2_POEG2GA_PIDF_Pos (0UL) /*!< PIDF (Bit 0) */ + #define R_POEG2_POEG2GA_PIDF_Msk (0x1UL) /*!< PIDF (Bitfield-Mask: 0x01) */ + #define R_POEG2_POEG2GA_IOCF_Pos (1UL) /*!< IOCF (Bit 1) */ + #define R_POEG2_POEG2GA_IOCF_Msk (0x2UL) /*!< IOCF (Bitfield-Mask: 0x01) */ + #define R_POEG2_POEG2GA_OSTPF_Pos (2UL) /*!< OSTPF (Bit 2) */ + #define R_POEG2_POEG2GA_OSTPF_Msk (0x4UL) /*!< OSTPF (Bitfield-Mask: 0x01) */ + #define R_POEG2_POEG2GA_SSF_Pos (3UL) /*!< SSF (Bit 3) */ + #define R_POEG2_POEG2GA_SSF_Msk (0x8UL) /*!< SSF (Bitfield-Mask: 0x01) */ + #define R_POEG2_POEG2GA_PIDE_Pos (4UL) /*!< PIDE (Bit 4) */ + #define R_POEG2_POEG2GA_PIDE_Msk (0x10UL) /*!< PIDE (Bitfield-Mask: 0x01) */ + #define R_POEG2_POEG2GA_IOCE_Pos (5UL) /*!< IOCE (Bit 5) */ + #define R_POEG2_POEG2GA_IOCE_Msk (0x20UL) /*!< IOCE (Bitfield-Mask: 0x01) */ + #define R_POEG2_POEG2GA_OSTPE_Pos (6UL) /*!< OSTPE (Bit 6) */ + #define R_POEG2_POEG2GA_OSTPE_Msk (0x40UL) /*!< OSTPE (Bitfield-Mask: 0x01) */ + #define R_POEG2_POEG2GA_ST_Pos (16UL) /*!< ST (Bit 16) */ + #define R_POEG2_POEG2GA_ST_Msk (0x10000UL) /*!< ST (Bitfield-Mask: 0x01) */ + #define R_POEG2_POEG2GA_INV_Pos (28UL) /*!< INV (Bit 28) */ + #define R_POEG2_POEG2GA_INV_Msk (0x10000000UL) /*!< INV (Bitfield-Mask: 0x01) */ + #define R_POEG2_POEG2GA_NFEN_Pos (29UL) /*!< NFEN (Bit 29) */ + #define R_POEG2_POEG2GA_NFEN_Msk (0x20000000UL) /*!< NFEN (Bitfield-Mask: 0x01) */ + #define R_POEG2_POEG2GA_NFCS_Pos (30UL) /*!< NFCS (Bit 30) */ + #define R_POEG2_POEG2GA_NFCS_Msk (0xc0000000UL) /*!< NFCS (Bitfield-Mask: 0x03) */ +/* ======================================================== POEG2GB ======================================================== */ + #define R_POEG2_POEG2GB_PIDF_Pos (0UL) /*!< PIDF (Bit 0) */ + #define R_POEG2_POEG2GB_PIDF_Msk (0x1UL) /*!< PIDF (Bitfield-Mask: 0x01) */ + #define R_POEG2_POEG2GB_IOCF_Pos (1UL) /*!< IOCF (Bit 1) */ + #define R_POEG2_POEG2GB_IOCF_Msk (0x2UL) /*!< IOCF (Bitfield-Mask: 0x01) */ + #define R_POEG2_POEG2GB_OSTPF_Pos (2UL) /*!< OSTPF (Bit 2) */ + #define R_POEG2_POEG2GB_OSTPF_Msk (0x4UL) /*!< OSTPF (Bitfield-Mask: 0x01) */ + #define R_POEG2_POEG2GB_SSF_Pos (3UL) /*!< SSF (Bit 3) */ + #define R_POEG2_POEG2GB_SSF_Msk (0x8UL) /*!< SSF (Bitfield-Mask: 0x01) */ + #define R_POEG2_POEG2GB_PIDE_Pos (4UL) /*!< PIDE (Bit 4) */ + #define R_POEG2_POEG2GB_PIDE_Msk (0x10UL) /*!< PIDE (Bitfield-Mask: 0x01) */ + #define R_POEG2_POEG2GB_IOCE_Pos (5UL) /*!< IOCE (Bit 5) */ + #define R_POEG2_POEG2GB_IOCE_Msk (0x20UL) /*!< IOCE (Bitfield-Mask: 0x01) */ + #define R_POEG2_POEG2GB_OSTPE_Pos (6UL) /*!< OSTPE (Bit 6) */ + #define R_POEG2_POEG2GB_OSTPE_Msk (0x40UL) /*!< OSTPE (Bitfield-Mask: 0x01) */ + #define R_POEG2_POEG2GB_ST_Pos (16UL) /*!< ST (Bit 16) */ + #define R_POEG2_POEG2GB_ST_Msk (0x10000UL) /*!< ST (Bitfield-Mask: 0x01) */ + #define R_POEG2_POEG2GB_INV_Pos (28UL) /*!< INV (Bit 28) */ + #define R_POEG2_POEG2GB_INV_Msk (0x10000000UL) /*!< INV (Bitfield-Mask: 0x01) */ + #define R_POEG2_POEG2GB_NFEN_Pos (29UL) /*!< NFEN (Bit 29) */ + #define R_POEG2_POEG2GB_NFEN_Msk (0x20000000UL) /*!< NFEN (Bitfield-Mask: 0x01) */ + #define R_POEG2_POEG2GB_NFCS_Pos (30UL) /*!< NFCS (Bit 30) */ + #define R_POEG2_POEG2GB_NFCS_Msk (0xc0000000UL) /*!< NFCS (Bitfield-Mask: 0x03) */ +/* ======================================================== POEG2GC ======================================================== */ + #define R_POEG2_POEG2GC_PIDF_Pos (0UL) /*!< PIDF (Bit 0) */ + #define R_POEG2_POEG2GC_PIDF_Msk (0x1UL) /*!< PIDF (Bitfield-Mask: 0x01) */ + #define R_POEG2_POEG2GC_IOCF_Pos (1UL) /*!< IOCF (Bit 1) */ + #define R_POEG2_POEG2GC_IOCF_Msk (0x2UL) /*!< IOCF (Bitfield-Mask: 0x01) */ + #define R_POEG2_POEG2GC_OSTPF_Pos (2UL) /*!< OSTPF (Bit 2) */ + #define R_POEG2_POEG2GC_OSTPF_Msk (0x4UL) /*!< OSTPF (Bitfield-Mask: 0x01) */ + #define R_POEG2_POEG2GC_SSF_Pos (3UL) /*!< SSF (Bit 3) */ + #define R_POEG2_POEG2GC_SSF_Msk (0x8UL) /*!< SSF (Bitfield-Mask: 0x01) */ + #define R_POEG2_POEG2GC_PIDE_Pos (4UL) /*!< PIDE (Bit 4) */ + #define R_POEG2_POEG2GC_PIDE_Msk (0x10UL) /*!< PIDE (Bitfield-Mask: 0x01) */ + #define R_POEG2_POEG2GC_IOCE_Pos (5UL) /*!< IOCE (Bit 5) */ + #define R_POEG2_POEG2GC_IOCE_Msk (0x20UL) /*!< IOCE (Bitfield-Mask: 0x01) */ + #define R_POEG2_POEG2GC_OSTPE_Pos (6UL) /*!< OSTPE (Bit 6) */ + #define R_POEG2_POEG2GC_OSTPE_Msk (0x40UL) /*!< OSTPE (Bitfield-Mask: 0x01) */ + #define R_POEG2_POEG2GC_ST_Pos (16UL) /*!< ST (Bit 16) */ + #define R_POEG2_POEG2GC_ST_Msk (0x10000UL) /*!< ST (Bitfield-Mask: 0x01) */ + #define R_POEG2_POEG2GC_INV_Pos (28UL) /*!< INV (Bit 28) */ + #define R_POEG2_POEG2GC_INV_Msk (0x10000000UL) /*!< INV (Bitfield-Mask: 0x01) */ + #define R_POEG2_POEG2GC_NFEN_Pos (29UL) /*!< NFEN (Bit 29) */ + #define R_POEG2_POEG2GC_NFEN_Msk (0x20000000UL) /*!< NFEN (Bitfield-Mask: 0x01) */ + #define R_POEG2_POEG2GC_NFCS_Pos (30UL) /*!< NFCS (Bit 30) */ + #define R_POEG2_POEG2GC_NFCS_Msk (0xc0000000UL) /*!< NFCS (Bitfield-Mask: 0x03) */ +/* ======================================================== POEG2GD ======================================================== */ + #define R_POEG2_POEG2GD_PIDF_Pos (0UL) /*!< PIDF (Bit 0) */ + #define R_POEG2_POEG2GD_PIDF_Msk (0x1UL) /*!< PIDF (Bitfield-Mask: 0x01) */ + #define R_POEG2_POEG2GD_IOCF_Pos (1UL) /*!< IOCF (Bit 1) */ + #define R_POEG2_POEG2GD_IOCF_Msk (0x2UL) /*!< IOCF (Bitfield-Mask: 0x01) */ + #define R_POEG2_POEG2GD_OSTPF_Pos (2UL) /*!< OSTPF (Bit 2) */ + #define R_POEG2_POEG2GD_OSTPF_Msk (0x4UL) /*!< OSTPF (Bitfield-Mask: 0x01) */ + #define R_POEG2_POEG2GD_SSF_Pos (3UL) /*!< SSF (Bit 3) */ + #define R_POEG2_POEG2GD_SSF_Msk (0x8UL) /*!< SSF (Bitfield-Mask: 0x01) */ + #define R_POEG2_POEG2GD_PIDE_Pos (4UL) /*!< PIDE (Bit 4) */ + #define R_POEG2_POEG2GD_PIDE_Msk (0x10UL) /*!< PIDE (Bitfield-Mask: 0x01) */ + #define R_POEG2_POEG2GD_IOCE_Pos (5UL) /*!< IOCE (Bit 5) */ + #define R_POEG2_POEG2GD_IOCE_Msk (0x20UL) /*!< IOCE (Bitfield-Mask: 0x01) */ + #define R_POEG2_POEG2GD_OSTPE_Pos (6UL) /*!< OSTPE (Bit 6) */ + #define R_POEG2_POEG2GD_OSTPE_Msk (0x40UL) /*!< OSTPE (Bitfield-Mask: 0x01) */ + #define R_POEG2_POEG2GD_ST_Pos (16UL) /*!< ST (Bit 16) */ + #define R_POEG2_POEG2GD_ST_Msk (0x10000UL) /*!< ST (Bitfield-Mask: 0x01) */ + #define R_POEG2_POEG2GD_INV_Pos (28UL) /*!< INV (Bit 28) */ + #define R_POEG2_POEG2GD_INV_Msk (0x10000000UL) /*!< INV (Bitfield-Mask: 0x01) */ + #define R_POEG2_POEG2GD_NFEN_Pos (29UL) /*!< NFEN (Bit 29) */ + #define R_POEG2_POEG2GD_NFEN_Msk (0x20000000UL) /*!< NFEN (Bitfield-Mask: 0x01) */ + #define R_POEG2_POEG2GD_NFCS_Pos (30UL) /*!< NFCS (Bit 30) */ + #define R_POEG2_POEG2GD_NFCS_Msk (0xc0000000UL) /*!< NFCS (Bitfield-Mask: 0x03) */ + +/* =========================================================================================================================== */ +/* ================ R_OTP ================ */ +/* =========================================================================================================================== */ + +/* ======================================================== OTPPWR ========================================================= */ + #define R_OTP_OTPPWR_PWR_Pos (0UL) /*!< PWR (Bit 0) */ + #define R_OTP_OTPPWR_PWR_Msk (0x1UL) /*!< PWR (Bitfield-Mask: 0x01) */ + #define R_OTP_OTPPWR_ACCL_Pos (4UL) /*!< ACCL (Bit 4) */ + #define R_OTP_OTPPWR_ACCL_Msk (0x10UL) /*!< ACCL (Bitfield-Mask: 0x01) */ +/* ======================================================== OTPSTR ========================================================= */ + #define R_OTP_OTPSTR_CMD_RDY_Pos (0UL) /*!< CMD_RDY (Bit 0) */ + #define R_OTP_OTPSTR_CMD_RDY_Msk (0x1UL) /*!< CMD_RDY (Bitfield-Mask: 0x01) */ + #define R_OTP_OTPSTR_ERR_WR_Pos (1UL) /*!< ERR_WR (Bit 1) */ + #define R_OTP_OTPSTR_ERR_WR_Msk (0x6UL) /*!< ERR_WR (Bitfield-Mask: 0x03) */ + #define R_OTP_OTPSTR_ERR_WP_Pos (3UL) /*!< ERR_WP (Bit 3) */ + #define R_OTP_OTPSTR_ERR_WP_Msk (0x8UL) /*!< ERR_WP (Bitfield-Mask: 0x01) */ + #define R_OTP_OTPSTR_ERR_RP_Pos (4UL) /*!< ERR_RP (Bit 4) */ + #define R_OTP_OTPSTR_ERR_RP_Msk (0x10UL) /*!< ERR_RP (Bitfield-Mask: 0x01) */ + #define R_OTP_OTPSTR_ERR_RDY_WR_Pos (8UL) /*!< ERR_RDY_WR (Bit 8) */ + #define R_OTP_OTPSTR_ERR_RDY_WR_Msk (0x100UL) /*!< ERR_RDY_WR (Bitfield-Mask: 0x01) */ + #define R_OTP_OTPSTR_ERR_RDY_RD_Pos (9UL) /*!< ERR_RDY_RD (Bit 9) */ + #define R_OTP_OTPSTR_ERR_RDY_RD_Msk (0x200UL) /*!< ERR_RDY_RD (Bitfield-Mask: 0x01) */ + #define R_OTP_OTPSTR_CNT_ST_IDLE_Pos (15UL) /*!< CNT_ST_IDLE (Bit 15) */ + #define R_OTP_OTPSTR_CNT_ST_IDLE_Msk (0x8000UL) /*!< CNT_ST_IDLE (Bitfield-Mask: 0x01) */ +/* ======================================================= OTPSTAWR ======================================================== */ + #define R_OTP_OTPSTAWR_STAWR_Pos (0UL) /*!< STAWR (Bit 0) */ + #define R_OTP_OTPSTAWR_STAWR_Msk (0x1UL) /*!< STAWR (Bitfield-Mask: 0x01) */ +/* ======================================================= OTPADRWR ======================================================== */ + #define R_OTP_OTPADRWR_ADRWR_Pos (0UL) /*!< ADRWR (Bit 0) */ + #define R_OTP_OTPADRWR_ADRWR_Msk (0x1ffUL) /*!< ADRWR (Bitfield-Mask: 0x1ff) */ +/* ======================================================= OTPDATAWR ======================================================= */ + #define R_OTP_OTPDATAWR_DATAWR_Pos (0UL) /*!< DATAWR (Bit 0) */ + #define R_OTP_OTPDATAWR_DATAWR_Msk (0xffffUL) /*!< DATAWR (Bitfield-Mask: 0xffff) */ +/* ======================================================= OTPADRRD ======================================================== */ + #define R_OTP_OTPADRRD_ADRRD_Pos (0UL) /*!< ADRRD (Bit 0) */ + #define R_OTP_OTPADRRD_ADRRD_Msk (0x1ffUL) /*!< ADRRD (Bitfield-Mask: 0x1ff) */ +/* ======================================================= OTPDATARD ======================================================= */ + #define R_OTP_OTPDATARD_DATARD_Pos (0UL) /*!< DATARD (Bit 0) */ + #define R_OTP_OTPDATARD_DATARD_Msk (0xffffUL) /*!< DATARD (Bitfield-Mask: 0xffff) */ + +/* =========================================================================================================================== */ +/* ================ R_PTADR ================ */ +/* =========================================================================================================================== */ + +/* ========================================================= RSELP ========================================================= */ + #define R_PTADR_RSELP_RS0_Pos (0UL) /*!< RS0 (Bit 0) */ + #define R_PTADR_RSELP_RS0_Msk (0x1UL) /*!< RS0 (Bitfield-Mask: 0x01) */ + #define R_PTADR_RSELP_RS1_Pos (1UL) /*!< RS1 (Bit 1) */ + #define R_PTADR_RSELP_RS1_Msk (0x2UL) /*!< RS1 (Bitfield-Mask: 0x01) */ + #define R_PTADR_RSELP_RS2_Pos (2UL) /*!< RS2 (Bit 2) */ + #define R_PTADR_RSELP_RS2_Msk (0x4UL) /*!< RS2 (Bitfield-Mask: 0x01) */ + #define R_PTADR_RSELP_RS3_Pos (3UL) /*!< RS3 (Bit 3) */ + #define R_PTADR_RSELP_RS3_Msk (0x8UL) /*!< RS3 (Bitfield-Mask: 0x01) */ + #define R_PTADR_RSELP_RS4_Pos (4UL) /*!< RS4 (Bit 4) */ + #define R_PTADR_RSELP_RS4_Msk (0x10UL) /*!< RS4 (Bitfield-Mask: 0x01) */ + #define R_PTADR_RSELP_RS5_Pos (5UL) /*!< RS5 (Bit 5) */ + #define R_PTADR_RSELP_RS5_Msk (0x20UL) /*!< RS5 (Bitfield-Mask: 0x01) */ + #define R_PTADR_RSELP_RS6_Pos (6UL) /*!< RS6 (Bit 6) */ + #define R_PTADR_RSELP_RS6_Msk (0x40UL) /*!< RS6 (Bitfield-Mask: 0x01) */ + #define R_PTADR_RSELP_RS7_Pos (7UL) /*!< RS7 (Bit 7) */ + #define R_PTADR_RSELP_RS7_Msk (0x80UL) /*!< RS7 (Bitfield-Mask: 0x01) */ + +/* =========================================================================================================================== */ +/* ================ R_SYSRAM0 ================ */ +/* =========================================================================================================================== */ + +/* =========================================================================================================================== */ +/* ================ R_ICU ================ */ +/* =========================================================================================================================== */ + +/* ======================================================== S_SWINT ======================================================== */ + #define R_ICU_S_SWINT_IC6_Pos (0UL) /*!< IC6 (Bit 0) */ + #define R_ICU_S_SWINT_IC6_Msk (0x1UL) /*!< IC6 (Bitfield-Mask: 0x01) */ + #define R_ICU_S_SWINT_IC7_Pos (1UL) /*!< IC7 (Bit 1) */ + #define R_ICU_S_SWINT_IC7_Msk (0x2UL) /*!< IC7 (Bitfield-Mask: 0x01) */ +/* ==================================================== S_PORTNF_FLTSEL ==================================================== */ + #define R_ICU_S_PORTNF_FLTSEL_FLT14_Pos (0UL) /*!< FLT14 (Bit 0) */ + #define R_ICU_S_PORTNF_FLTSEL_FLT14_Msk (0x1UL) /*!< FLT14 (Bitfield-Mask: 0x01) */ + #define R_ICU_S_PORTNF_FLTSEL_FLT15_Pos (1UL) /*!< FLT15 (Bit 1) */ + #define R_ICU_S_PORTNF_FLTSEL_FLT15_Msk (0x2UL) /*!< FLT15 (Bitfield-Mask: 0x01) */ + #define R_ICU_S_PORTNF_FLTSEL_FLTNMI_Pos (2UL) /*!< FLTNMI (Bit 2) */ + #define R_ICU_S_PORTNF_FLTSEL_FLTNMI_Msk (0x4UL) /*!< FLTNMI (Bitfield-Mask: 0x01) */ +/* ==================================================== S_PORTNF_CLKSEL ==================================================== */ + #define R_ICU_S_PORTNF_CLKSEL_CKSEL14_Pos (0UL) /*!< CKSEL14 (Bit 0) */ + #define R_ICU_S_PORTNF_CLKSEL_CKSEL14_Msk (0x3UL) /*!< CKSEL14 (Bitfield-Mask: 0x03) */ + #define R_ICU_S_PORTNF_CLKSEL_CKSEL15_Pos (2UL) /*!< CKSEL15 (Bit 2) */ + #define R_ICU_S_PORTNF_CLKSEL_CKSEL15_Msk (0xcUL) /*!< CKSEL15 (Bitfield-Mask: 0x03) */ + #define R_ICU_S_PORTNF_CLKSEL_CKSELNMI_Pos (4UL) /*!< CKSELNMI (Bit 4) */ + #define R_ICU_S_PORTNF_CLKSEL_CKSELNMI_Msk (0x30UL) /*!< CKSELNMI (Bitfield-Mask: 0x03) */ +/* ====================================================== S_PORTNF_MD ====================================================== */ + #define R_ICU_S_PORTNF_MD_MD14_Pos (0UL) /*!< MD14 (Bit 0) */ + #define R_ICU_S_PORTNF_MD_MD14_Msk (0x3UL) /*!< MD14 (Bitfield-Mask: 0x03) */ + #define R_ICU_S_PORTNF_MD_MD15_Pos (2UL) /*!< MD15 (Bit 2) */ + #define R_ICU_S_PORTNF_MD_MD15_Msk (0xcUL) /*!< MD15 (Bitfield-Mask: 0x03) */ + #define R_ICU_S_PORTNF_MD_MDNMI_Pos (4UL) /*!< MDNMI (Bit 4) */ + #define R_ICU_S_PORTNF_MD_MDNMI_Msk (0x30UL) /*!< MDNMI (Bitfield-Mask: 0x03) */ +/* ===================================================== CPU0ERR_STAT ====================================================== */ + #define R_ICU_CPU0ERR_STAT_ER_ST0_Pos (0UL) /*!< ER_ST0 (Bit 0) */ + #define R_ICU_CPU0ERR_STAT_ER_ST0_Msk (0x1UL) /*!< ER_ST0 (Bitfield-Mask: 0x01) */ + #define R_ICU_CPU0ERR_STAT_ER_ST1_Pos (1UL) /*!< ER_ST1 (Bit 1) */ + #define R_ICU_CPU0ERR_STAT_ER_ST1_Msk (0x2UL) /*!< ER_ST1 (Bitfield-Mask: 0x01) */ + #define R_ICU_CPU0ERR_STAT_ER_ST2_Pos (2UL) /*!< ER_ST2 (Bit 2) */ + #define R_ICU_CPU0ERR_STAT_ER_ST2_Msk (0x4UL) /*!< ER_ST2 (Bitfield-Mask: 0x01) */ + #define R_ICU_CPU0ERR_STAT_ER_ST3_Pos (3UL) /*!< ER_ST3 (Bit 3) */ + #define R_ICU_CPU0ERR_STAT_ER_ST3_Msk (0x8UL) /*!< ER_ST3 (Bitfield-Mask: 0x01) */ + #define R_ICU_CPU0ERR_STAT_ER_ST4_Pos (4UL) /*!< ER_ST4 (Bit 4) */ + #define R_ICU_CPU0ERR_STAT_ER_ST4_Msk (0x10UL) /*!< ER_ST4 (Bitfield-Mask: 0x01) */ + #define R_ICU_CPU0ERR_STAT_ER_ST5_Pos (5UL) /*!< ER_ST5 (Bit 5) */ + #define R_ICU_CPU0ERR_STAT_ER_ST5_Msk (0x20UL) /*!< ER_ST5 (Bitfield-Mask: 0x01) */ + #define R_ICU_CPU0ERR_STAT_ER_ST6_Pos (6UL) /*!< ER_ST6 (Bit 6) */ + #define R_ICU_CPU0ERR_STAT_ER_ST6_Msk (0x40UL) /*!< ER_ST6 (Bitfield-Mask: 0x01) */ + #define R_ICU_CPU0ERR_STAT_ER_ST7_Pos (7UL) /*!< ER_ST7 (Bit 7) */ + #define R_ICU_CPU0ERR_STAT_ER_ST7_Msk (0x80UL) /*!< ER_ST7 (Bitfield-Mask: 0x01) */ + #define R_ICU_CPU0ERR_STAT_ER_ST8_Pos (8UL) /*!< ER_ST8 (Bit 8) */ + #define R_ICU_CPU0ERR_STAT_ER_ST8_Msk (0x100UL) /*!< ER_ST8 (Bitfield-Mask: 0x01) */ + #define R_ICU_CPU0ERR_STAT_ER_ST9_Pos (9UL) /*!< ER_ST9 (Bit 9) */ + #define R_ICU_CPU0ERR_STAT_ER_ST9_Msk (0x200UL) /*!< ER_ST9 (Bitfield-Mask: 0x01) */ + #define R_ICU_CPU0ERR_STAT_ER_ST10_Pos (10UL) /*!< ER_ST10 (Bit 10) */ + #define R_ICU_CPU0ERR_STAT_ER_ST10_Msk (0x400UL) /*!< ER_ST10 (Bitfield-Mask: 0x01) */ + #define R_ICU_CPU0ERR_STAT_ER_ST11_Pos (11UL) /*!< ER_ST11 (Bit 11) */ + #define R_ICU_CPU0ERR_STAT_ER_ST11_Msk (0x800UL) /*!< ER_ST11 (Bitfield-Mask: 0x01) */ + #define R_ICU_CPU0ERR_STAT_ER_ST12_Pos (12UL) /*!< ER_ST12 (Bit 12) */ + #define R_ICU_CPU0ERR_STAT_ER_ST12_Msk (0x1000UL) /*!< ER_ST12 (Bitfield-Mask: 0x01) */ + #define R_ICU_CPU0ERR_STAT_ER_ST13_Pos (13UL) /*!< ER_ST13 (Bit 13) */ + #define R_ICU_CPU0ERR_STAT_ER_ST13_Msk (0x2000UL) /*!< ER_ST13 (Bitfield-Mask: 0x01) */ + #define R_ICU_CPU0ERR_STAT_ER_ST14_Pos (14UL) /*!< ER_ST14 (Bit 14) */ + #define R_ICU_CPU0ERR_STAT_ER_ST14_Msk (0x4000UL) /*!< ER_ST14 (Bitfield-Mask: 0x01) */ + #define R_ICU_CPU0ERR_STAT_ER_ST15_Pos (15UL) /*!< ER_ST15 (Bit 15) */ + #define R_ICU_CPU0ERR_STAT_ER_ST15_Msk (0x8000UL) /*!< ER_ST15 (Bitfield-Mask: 0x01) */ + #define R_ICU_CPU0ERR_STAT_ER_ST16_Pos (16UL) /*!< ER_ST16 (Bit 16) */ + #define R_ICU_CPU0ERR_STAT_ER_ST16_Msk (0x10000UL) /*!< ER_ST16 (Bitfield-Mask: 0x01) */ + #define R_ICU_CPU0ERR_STAT_ER_ST17_Pos (17UL) /*!< ER_ST17 (Bit 17) */ + #define R_ICU_CPU0ERR_STAT_ER_ST17_Msk (0x20000UL) /*!< ER_ST17 (Bitfield-Mask: 0x01) */ + #define R_ICU_CPU0ERR_STAT_ER_ST18_Pos (18UL) /*!< ER_ST18 (Bit 18) */ + #define R_ICU_CPU0ERR_STAT_ER_ST18_Msk (0x40000UL) /*!< ER_ST18 (Bitfield-Mask: 0x01) */ + #define R_ICU_CPU0ERR_STAT_ER_ST19_Pos (19UL) /*!< ER_ST19 (Bit 19) */ + #define R_ICU_CPU0ERR_STAT_ER_ST19_Msk (0x80000UL) /*!< ER_ST19 (Bitfield-Mask: 0x01) */ + #define R_ICU_CPU0ERR_STAT_ER_ST20_Pos (20UL) /*!< ER_ST20 (Bit 20) */ + #define R_ICU_CPU0ERR_STAT_ER_ST20_Msk (0x100000UL) /*!< ER_ST20 (Bitfield-Mask: 0x01) */ + #define R_ICU_CPU0ERR_STAT_ER_ST21_Pos (21UL) /*!< ER_ST21 (Bit 21) */ + #define R_ICU_CPU0ERR_STAT_ER_ST21_Msk (0x200000UL) /*!< ER_ST21 (Bitfield-Mask: 0x01) */ + #define R_ICU_CPU0ERR_STAT_ER_ST22_Pos (22UL) /*!< ER_ST22 (Bit 22) */ + #define R_ICU_CPU0ERR_STAT_ER_ST22_Msk (0x400000UL) /*!< ER_ST22 (Bitfield-Mask: 0x01) */ + #define R_ICU_CPU0ERR_STAT_ER_ST23_Pos (23UL) /*!< ER_ST23 (Bit 23) */ + #define R_ICU_CPU0ERR_STAT_ER_ST23_Msk (0x800000UL) /*!< ER_ST23 (Bitfield-Mask: 0x01) */ + #define R_ICU_CPU0ERR_STAT_ER_ST24_Pos (24UL) /*!< ER_ST24 (Bit 24) */ + #define R_ICU_CPU0ERR_STAT_ER_ST24_Msk (0x1000000UL) /*!< ER_ST24 (Bitfield-Mask: 0x01) */ + #define R_ICU_CPU0ERR_STAT_ER_ST25_Pos (25UL) /*!< ER_ST25 (Bit 25) */ + #define R_ICU_CPU0ERR_STAT_ER_ST25_Msk (0x2000000UL) /*!< ER_ST25 (Bitfield-Mask: 0x01) */ +/* ===================================================== PERIERR_STAT0 ===================================================== */ + #define R_ICU_PERIERR_STAT0_ER_ST0_Pos (0UL) /*!< ER_ST0 (Bit 0) */ + #define R_ICU_PERIERR_STAT0_ER_ST0_Msk (0x1UL) /*!< ER_ST0 (Bitfield-Mask: 0x01) */ + #define R_ICU_PERIERR_STAT0_ER_ST1_Pos (1UL) /*!< ER_ST1 (Bit 1) */ + #define R_ICU_PERIERR_STAT0_ER_ST1_Msk (0x2UL) /*!< ER_ST1 (Bitfield-Mask: 0x01) */ + #define R_ICU_PERIERR_STAT0_ER_ST2_Pos (2UL) /*!< ER_ST2 (Bit 2) */ + #define R_ICU_PERIERR_STAT0_ER_ST2_Msk (0x4UL) /*!< ER_ST2 (Bitfield-Mask: 0x01) */ + #define R_ICU_PERIERR_STAT0_ER_ST3_Pos (3UL) /*!< ER_ST3 (Bit 3) */ + #define R_ICU_PERIERR_STAT0_ER_ST3_Msk (0x8UL) /*!< ER_ST3 (Bitfield-Mask: 0x01) */ + #define R_ICU_PERIERR_STAT0_ER_ST4_Pos (4UL) /*!< ER_ST4 (Bit 4) */ + #define R_ICU_PERIERR_STAT0_ER_ST4_Msk (0x10UL) /*!< ER_ST4 (Bitfield-Mask: 0x01) */ + #define R_ICU_PERIERR_STAT0_ER_ST5_Pos (5UL) /*!< ER_ST5 (Bit 5) */ + #define R_ICU_PERIERR_STAT0_ER_ST5_Msk (0x20UL) /*!< ER_ST5 (Bitfield-Mask: 0x01) */ + #define R_ICU_PERIERR_STAT0_ER_ST6_Pos (6UL) /*!< ER_ST6 (Bit 6) */ + #define R_ICU_PERIERR_STAT0_ER_ST6_Msk (0x40UL) /*!< ER_ST6 (Bitfield-Mask: 0x01) */ + #define R_ICU_PERIERR_STAT0_ER_ST7_Pos (7UL) /*!< ER_ST7 (Bit 7) */ + #define R_ICU_PERIERR_STAT0_ER_ST7_Msk (0x80UL) /*!< ER_ST7 (Bitfield-Mask: 0x01) */ + #define R_ICU_PERIERR_STAT0_ER_ST9_Pos (9UL) /*!< ER_ST9 (Bit 9) */ + #define R_ICU_PERIERR_STAT0_ER_ST9_Msk (0x200UL) /*!< ER_ST9 (Bitfield-Mask: 0x01) */ + #define R_ICU_PERIERR_STAT0_ER_ST10_Pos (10UL) /*!< ER_ST10 (Bit 10) */ + #define R_ICU_PERIERR_STAT0_ER_ST10_Msk (0x400UL) /*!< ER_ST10 (Bitfield-Mask: 0x01) */ + #define R_ICU_PERIERR_STAT0_ER_ST11_Pos (11UL) /*!< ER_ST11 (Bit 11) */ + #define R_ICU_PERIERR_STAT0_ER_ST11_Msk (0x800UL) /*!< ER_ST11 (Bitfield-Mask: 0x01) */ + #define R_ICU_PERIERR_STAT0_ER_ST12_Pos (12UL) /*!< ER_ST12 (Bit 12) */ + #define R_ICU_PERIERR_STAT0_ER_ST12_Msk (0x1000UL) /*!< ER_ST12 (Bitfield-Mask: 0x01) */ + #define R_ICU_PERIERR_STAT0_ER_ST13_Pos (13UL) /*!< ER_ST13 (Bit 13) */ + #define R_ICU_PERIERR_STAT0_ER_ST13_Msk (0x2000UL) /*!< ER_ST13 (Bitfield-Mask: 0x01) */ + #define R_ICU_PERIERR_STAT0_ER_ST14_Pos (14UL) /*!< ER_ST14 (Bit 14) */ + #define R_ICU_PERIERR_STAT0_ER_ST14_Msk (0x4000UL) /*!< ER_ST14 (Bitfield-Mask: 0x01) */ + #define R_ICU_PERIERR_STAT0_ER_ST15_Pos (15UL) /*!< ER_ST15 (Bit 15) */ + #define R_ICU_PERIERR_STAT0_ER_ST15_Msk (0x8000UL) /*!< ER_ST15 (Bitfield-Mask: 0x01) */ + #define R_ICU_PERIERR_STAT0_ER_ST16_Pos (16UL) /*!< ER_ST16 (Bit 16) */ + #define R_ICU_PERIERR_STAT0_ER_ST16_Msk (0x10000UL) /*!< ER_ST16 (Bitfield-Mask: 0x01) */ + #define R_ICU_PERIERR_STAT0_ER_ST17_Pos (17UL) /*!< ER_ST17 (Bit 17) */ + #define R_ICU_PERIERR_STAT0_ER_ST17_Msk (0x20000UL) /*!< ER_ST17 (Bitfield-Mask: 0x01) */ + #define R_ICU_PERIERR_STAT0_ER_ST18_Pos (18UL) /*!< ER_ST18 (Bit 18) */ + #define R_ICU_PERIERR_STAT0_ER_ST18_Msk (0x40000UL) /*!< ER_ST18 (Bitfield-Mask: 0x01) */ + #define R_ICU_PERIERR_STAT0_ER_ST19_Pos (19UL) /*!< ER_ST19 (Bit 19) */ + #define R_ICU_PERIERR_STAT0_ER_ST19_Msk (0x80000UL) /*!< ER_ST19 (Bitfield-Mask: 0x01) */ + #define R_ICU_PERIERR_STAT0_ER_ST20_Pos (20UL) /*!< ER_ST20 (Bit 20) */ + #define R_ICU_PERIERR_STAT0_ER_ST20_Msk (0x100000UL) /*!< ER_ST20 (Bitfield-Mask: 0x01) */ + #define R_ICU_PERIERR_STAT0_ER_ST21_Pos (21UL) /*!< ER_ST21 (Bit 21) */ + #define R_ICU_PERIERR_STAT0_ER_ST21_Msk (0x200000UL) /*!< ER_ST21 (Bitfield-Mask: 0x01) */ + #define R_ICU_PERIERR_STAT0_ER_ST22_Pos (22UL) /*!< ER_ST22 (Bit 22) */ + #define R_ICU_PERIERR_STAT0_ER_ST22_Msk (0x400000UL) /*!< ER_ST22 (Bitfield-Mask: 0x01) */ + #define R_ICU_PERIERR_STAT0_ER_ST23_Pos (23UL) /*!< ER_ST23 (Bit 23) */ + #define R_ICU_PERIERR_STAT0_ER_ST23_Msk (0x800000UL) /*!< ER_ST23 (Bitfield-Mask: 0x01) */ + #define R_ICU_PERIERR_STAT0_ER_ST24_Pos (24UL) /*!< ER_ST24 (Bit 24) */ + #define R_ICU_PERIERR_STAT0_ER_ST24_Msk (0x1000000UL) /*!< ER_ST24 (Bitfield-Mask: 0x01) */ + #define R_ICU_PERIERR_STAT0_ER_ST25_Pos (25UL) /*!< ER_ST25 (Bit 25) */ + #define R_ICU_PERIERR_STAT0_ER_ST25_Msk (0x2000000UL) /*!< ER_ST25 (Bitfield-Mask: 0x01) */ + #define R_ICU_PERIERR_STAT0_ER_ST26_Pos (26UL) /*!< ER_ST26 (Bit 26) */ + #define R_ICU_PERIERR_STAT0_ER_ST26_Msk (0x4000000UL) /*!< ER_ST26 (Bitfield-Mask: 0x01) */ + #define R_ICU_PERIERR_STAT0_ER_ST27_Pos (27UL) /*!< ER_ST27 (Bit 27) */ + #define R_ICU_PERIERR_STAT0_ER_ST27_Msk (0x8000000UL) /*!< ER_ST27 (Bitfield-Mask: 0x01) */ + #define R_ICU_PERIERR_STAT0_ER_ST28_Pos (28UL) /*!< ER_ST28 (Bit 28) */ + #define R_ICU_PERIERR_STAT0_ER_ST28_Msk (0x10000000UL) /*!< ER_ST28 (Bitfield-Mask: 0x01) */ + #define R_ICU_PERIERR_STAT0_ER_ST29_Pos (29UL) /*!< ER_ST29 (Bit 29) */ + #define R_ICU_PERIERR_STAT0_ER_ST29_Msk (0x20000000UL) /*!< ER_ST29 (Bitfield-Mask: 0x01) */ + #define R_ICU_PERIERR_STAT0_ER_ST30_Pos (30UL) /*!< ER_ST30 (Bit 30) */ + #define R_ICU_PERIERR_STAT0_ER_ST30_Msk (0x40000000UL) /*!< ER_ST30 (Bitfield-Mask: 0x01) */ + #define R_ICU_PERIERR_STAT0_ER_ST31_Pos (31UL) /*!< ER_ST31 (Bit 31) */ + #define R_ICU_PERIERR_STAT0_ER_ST31_Msk (0x80000000UL) /*!< ER_ST31 (Bitfield-Mask: 0x01) */ +/* ===================================================== PERIERR_STAT1 ===================================================== */ + #define R_ICU_PERIERR_STAT1_ER_ST0_Pos (0UL) /*!< ER_ST0 (Bit 0) */ + #define R_ICU_PERIERR_STAT1_ER_ST0_Msk (0x1UL) /*!< ER_ST0 (Bitfield-Mask: 0x01) */ + #define R_ICU_PERIERR_STAT1_ER_ST1_Pos (1UL) /*!< ER_ST1 (Bit 1) */ + #define R_ICU_PERIERR_STAT1_ER_ST1_Msk (0x2UL) /*!< ER_ST1 (Bitfield-Mask: 0x01) */ + #define R_ICU_PERIERR_STAT1_ER_ST2_Pos (2UL) /*!< ER_ST2 (Bit 2) */ + #define R_ICU_PERIERR_STAT1_ER_ST2_Msk (0x4UL) /*!< ER_ST2 (Bitfield-Mask: 0x01) */ + #define R_ICU_PERIERR_STAT1_ER_ST3_Pos (3UL) /*!< ER_ST3 (Bit 3) */ + #define R_ICU_PERIERR_STAT1_ER_ST3_Msk (0x8UL) /*!< ER_ST3 (Bitfield-Mask: 0x01) */ + #define R_ICU_PERIERR_STAT1_ER_ST4_Pos (4UL) /*!< ER_ST4 (Bit 4) */ + #define R_ICU_PERIERR_STAT1_ER_ST4_Msk (0x10UL) /*!< ER_ST4 (Bitfield-Mask: 0x01) */ + #define R_ICU_PERIERR_STAT1_ER_ST5_Pos (5UL) /*!< ER_ST5 (Bit 5) */ + #define R_ICU_PERIERR_STAT1_ER_ST5_Msk (0x20UL) /*!< ER_ST5 (Bitfield-Mask: 0x01) */ + #define R_ICU_PERIERR_STAT1_ER_ST6_Pos (6UL) /*!< ER_ST6 (Bit 6) */ + #define R_ICU_PERIERR_STAT1_ER_ST6_Msk (0x40UL) /*!< ER_ST6 (Bitfield-Mask: 0x01) */ + #define R_ICU_PERIERR_STAT1_ER_ST7_Pos (7UL) /*!< ER_ST7 (Bit 7) */ + #define R_ICU_PERIERR_STAT1_ER_ST7_Msk (0x80UL) /*!< ER_ST7 (Bitfield-Mask: 0x01) */ + #define R_ICU_PERIERR_STAT1_ER_ST8_Pos (8UL) /*!< ER_ST8 (Bit 8) */ + #define R_ICU_PERIERR_STAT1_ER_ST8_Msk (0x100UL) /*!< ER_ST8 (Bitfield-Mask: 0x01) */ + #define R_ICU_PERIERR_STAT1_ER_ST9_Pos (9UL) /*!< ER_ST9 (Bit 9) */ + #define R_ICU_PERIERR_STAT1_ER_ST9_Msk (0x200UL) /*!< ER_ST9 (Bitfield-Mask: 0x01) */ + #define R_ICU_PERIERR_STAT1_ER_ST13_Pos (13UL) /*!< ER_ST13 (Bit 13) */ + #define R_ICU_PERIERR_STAT1_ER_ST13_Msk (0x2000UL) /*!< ER_ST13 (Bitfield-Mask: 0x01) */ + #define R_ICU_PERIERR_STAT1_ER_ST15_Pos (15UL) /*!< ER_ST15 (Bit 15) */ + #define R_ICU_PERIERR_STAT1_ER_ST15_Msk (0x8000UL) /*!< ER_ST15 (Bitfield-Mask: 0x01) */ + #define R_ICU_PERIERR_STAT1_ER_ST16_Pos (16UL) /*!< ER_ST16 (Bit 16) */ + #define R_ICU_PERIERR_STAT1_ER_ST16_Msk (0x10000UL) /*!< ER_ST16 (Bitfield-Mask: 0x01) */ + #define R_ICU_PERIERR_STAT1_ER_ST17_Pos (17UL) /*!< ER_ST17 (Bit 17) */ + #define R_ICU_PERIERR_STAT1_ER_ST17_Msk (0x20000UL) /*!< ER_ST17 (Bitfield-Mask: 0x01) */ + #define R_ICU_PERIERR_STAT1_ER_ST18_Pos (18UL) /*!< ER_ST18 (Bit 18) */ + #define R_ICU_PERIERR_STAT1_ER_ST18_Msk (0x40000UL) /*!< ER_ST18 (Bitfield-Mask: 0x01) */ + #define R_ICU_PERIERR_STAT1_ER_ST19_Pos (19UL) /*!< ER_ST19 (Bit 19) */ + #define R_ICU_PERIERR_STAT1_ER_ST19_Msk (0x80000UL) /*!< ER_ST19 (Bitfield-Mask: 0x01) */ + #define R_ICU_PERIERR_STAT1_ER_ST20_Pos (20UL) /*!< ER_ST20 (Bit 20) */ + #define R_ICU_PERIERR_STAT1_ER_ST20_Msk (0x100000UL) /*!< ER_ST20 (Bitfield-Mask: 0x01) */ + #define R_ICU_PERIERR_STAT1_ER_ST21_Pos (21UL) /*!< ER_ST21 (Bit 21) */ + #define R_ICU_PERIERR_STAT1_ER_ST21_Msk (0x200000UL) /*!< ER_ST21 (Bitfield-Mask: 0x01) */ + #define R_ICU_PERIERR_STAT1_ER_ST22_Pos (22UL) /*!< ER_ST22 (Bit 22) */ + #define R_ICU_PERIERR_STAT1_ER_ST22_Msk (0x400000UL) /*!< ER_ST22 (Bitfield-Mask: 0x01) */ + #define R_ICU_PERIERR_STAT1_ER_ST23_Pos (23UL) /*!< ER_ST23 (Bit 23) */ + #define R_ICU_PERIERR_STAT1_ER_ST23_Msk (0x800000UL) /*!< ER_ST23 (Bitfield-Mask: 0x01) */ + #define R_ICU_PERIERR_STAT1_ER_ST24_Pos (24UL) /*!< ER_ST24 (Bit 24) */ + #define R_ICU_PERIERR_STAT1_ER_ST24_Msk (0x1000000UL) /*!< ER_ST24 (Bitfield-Mask: 0x01) */ + #define R_ICU_PERIERR_STAT1_ER_ST27_Pos (27UL) /*!< ER_ST27 (Bit 27) */ + #define R_ICU_PERIERR_STAT1_ER_ST27_Msk (0x8000000UL) /*!< ER_ST27 (Bitfield-Mask: 0x01) */ + #define R_ICU_PERIERR_STAT1_ER_ST28_Pos (28UL) /*!< ER_ST28 (Bit 28) */ + #define R_ICU_PERIERR_STAT1_ER_ST28_Msk (0x10000000UL) /*!< ER_ST28 (Bitfield-Mask: 0x01) */ +/* ====================================================== CPU0ERR_CLR ====================================================== */ + #define R_ICU_CPU0ERR_CLR_ER_CL0_Pos (0UL) /*!< ER_CL0 (Bit 0) */ + #define R_ICU_CPU0ERR_CLR_ER_CL0_Msk (0x1UL) /*!< ER_CL0 (Bitfield-Mask: 0x01) */ + #define R_ICU_CPU0ERR_CLR_ER_CL1_Pos (1UL) /*!< ER_CL1 (Bit 1) */ + #define R_ICU_CPU0ERR_CLR_ER_CL1_Msk (0x2UL) /*!< ER_CL1 (Bitfield-Mask: 0x01) */ + #define R_ICU_CPU0ERR_CLR_ER_CL2_Pos (2UL) /*!< ER_CL2 (Bit 2) */ + #define R_ICU_CPU0ERR_CLR_ER_CL2_Msk (0x4UL) /*!< ER_CL2 (Bitfield-Mask: 0x01) */ + #define R_ICU_CPU0ERR_CLR_ER_CL3_Pos (3UL) /*!< ER_CL3 (Bit 3) */ + #define R_ICU_CPU0ERR_CLR_ER_CL3_Msk (0x8UL) /*!< ER_CL3 (Bitfield-Mask: 0x01) */ + #define R_ICU_CPU0ERR_CLR_ER_CL4_Pos (4UL) /*!< ER_CL4 (Bit 4) */ + #define R_ICU_CPU0ERR_CLR_ER_CL4_Msk (0x10UL) /*!< ER_CL4 (Bitfield-Mask: 0x01) */ + #define R_ICU_CPU0ERR_CLR_ER_CL5_Pos (5UL) /*!< ER_CL5 (Bit 5) */ + #define R_ICU_CPU0ERR_CLR_ER_CL5_Msk (0x20UL) /*!< ER_CL5 (Bitfield-Mask: 0x01) */ + #define R_ICU_CPU0ERR_CLR_ER_CL6_Pos (6UL) /*!< ER_CL6 (Bit 6) */ + #define R_ICU_CPU0ERR_CLR_ER_CL6_Msk (0x40UL) /*!< ER_CL6 (Bitfield-Mask: 0x01) */ + #define R_ICU_CPU0ERR_CLR_ER_CL7_Pos (7UL) /*!< ER_CL7 (Bit 7) */ + #define R_ICU_CPU0ERR_CLR_ER_CL7_Msk (0x80UL) /*!< ER_CL7 (Bitfield-Mask: 0x01) */ + #define R_ICU_CPU0ERR_CLR_ER_CL8_Pos (8UL) /*!< ER_CL8 (Bit 8) */ + #define R_ICU_CPU0ERR_CLR_ER_CL8_Msk (0x100UL) /*!< ER_CL8 (Bitfield-Mask: 0x01) */ + #define R_ICU_CPU0ERR_CLR_ER_CL9_Pos (9UL) /*!< ER_CL9 (Bit 9) */ + #define R_ICU_CPU0ERR_CLR_ER_CL9_Msk (0x200UL) /*!< ER_CL9 (Bitfield-Mask: 0x01) */ + #define R_ICU_CPU0ERR_CLR_ER_CL10_Pos (10UL) /*!< ER_CL10 (Bit 10) */ + #define R_ICU_CPU0ERR_CLR_ER_CL10_Msk (0x400UL) /*!< ER_CL10 (Bitfield-Mask: 0x01) */ + #define R_ICU_CPU0ERR_CLR_ER_CL11_Pos (11UL) /*!< ER_CL11 (Bit 11) */ + #define R_ICU_CPU0ERR_CLR_ER_CL11_Msk (0x800UL) /*!< ER_CL11 (Bitfield-Mask: 0x01) */ + #define R_ICU_CPU0ERR_CLR_ER_CL12_Pos (12UL) /*!< ER_CL12 (Bit 12) */ + #define R_ICU_CPU0ERR_CLR_ER_CL12_Msk (0x1000UL) /*!< ER_CL12 (Bitfield-Mask: 0x01) */ + #define R_ICU_CPU0ERR_CLR_ER_CL13_Pos (13UL) /*!< ER_CL13 (Bit 13) */ + #define R_ICU_CPU0ERR_CLR_ER_CL13_Msk (0x2000UL) /*!< ER_CL13 (Bitfield-Mask: 0x01) */ + #define R_ICU_CPU0ERR_CLR_ER_CL14_Pos (14UL) /*!< ER_CL14 (Bit 14) */ + #define R_ICU_CPU0ERR_CLR_ER_CL14_Msk (0x4000UL) /*!< ER_CL14 (Bitfield-Mask: 0x01) */ + #define R_ICU_CPU0ERR_CLR_ER_CL15_Pos (15UL) /*!< ER_CL15 (Bit 15) */ + #define R_ICU_CPU0ERR_CLR_ER_CL15_Msk (0x8000UL) /*!< ER_CL15 (Bitfield-Mask: 0x01) */ + #define R_ICU_CPU0ERR_CLR_ER_CL16_Pos (16UL) /*!< ER_CL16 (Bit 16) */ + #define R_ICU_CPU0ERR_CLR_ER_CL16_Msk (0x10000UL) /*!< ER_CL16 (Bitfield-Mask: 0x01) */ + #define R_ICU_CPU0ERR_CLR_ER_CL17_Pos (17UL) /*!< ER_CL17 (Bit 17) */ + #define R_ICU_CPU0ERR_CLR_ER_CL17_Msk (0x20000UL) /*!< ER_CL17 (Bitfield-Mask: 0x01) */ + #define R_ICU_CPU0ERR_CLR_ER_CL18_Pos (18UL) /*!< ER_CL18 (Bit 18) */ + #define R_ICU_CPU0ERR_CLR_ER_CL18_Msk (0x40000UL) /*!< ER_CL18 (Bitfield-Mask: 0x01) */ + #define R_ICU_CPU0ERR_CLR_ER_CL19_Pos (19UL) /*!< ER_CL19 (Bit 19) */ + #define R_ICU_CPU0ERR_CLR_ER_CL19_Msk (0x80000UL) /*!< ER_CL19 (Bitfield-Mask: 0x01) */ + #define R_ICU_CPU0ERR_CLR_ER_CL20_Pos (20UL) /*!< ER_CL20 (Bit 20) */ + #define R_ICU_CPU0ERR_CLR_ER_CL20_Msk (0x100000UL) /*!< ER_CL20 (Bitfield-Mask: 0x01) */ + #define R_ICU_CPU0ERR_CLR_ER_CL21_Pos (21UL) /*!< ER_CL21 (Bit 21) */ + #define R_ICU_CPU0ERR_CLR_ER_CL21_Msk (0x200000UL) /*!< ER_CL21 (Bitfield-Mask: 0x01) */ + #define R_ICU_CPU0ERR_CLR_ER_CL22_Pos (22UL) /*!< ER_CL22 (Bit 22) */ + #define R_ICU_CPU0ERR_CLR_ER_CL22_Msk (0x400000UL) /*!< ER_CL22 (Bitfield-Mask: 0x01) */ + #define R_ICU_CPU0ERR_CLR_ER_CL23_Pos (23UL) /*!< ER_CL23 (Bit 23) */ + #define R_ICU_CPU0ERR_CLR_ER_CL23_Msk (0x800000UL) /*!< ER_CL23 (Bitfield-Mask: 0x01) */ + #define R_ICU_CPU0ERR_CLR_ER_CL24_Pos (24UL) /*!< ER_CL24 (Bit 24) */ + #define R_ICU_CPU0ERR_CLR_ER_CL24_Msk (0x1000000UL) /*!< ER_CL24 (Bitfield-Mask: 0x01) */ + #define R_ICU_CPU0ERR_CLR_ER_CL25_Pos (25UL) /*!< ER_CL25 (Bit 25) */ + #define R_ICU_CPU0ERR_CLR_ER_CL25_Msk (0x2000000UL) /*!< ER_CL25 (Bitfield-Mask: 0x01) */ +/* ===================================================== PERIERR_CLR0 ====================================================== */ + #define R_ICU_PERIERR_CLR0_ER_CL0_Pos (0UL) /*!< ER_CL0 (Bit 0) */ + #define R_ICU_PERIERR_CLR0_ER_CL0_Msk (0x1UL) /*!< ER_CL0 (Bitfield-Mask: 0x01) */ + #define R_ICU_PERIERR_CLR0_ER_CL1_Pos (1UL) /*!< ER_CL1 (Bit 1) */ + #define R_ICU_PERIERR_CLR0_ER_CL1_Msk (0x2UL) /*!< ER_CL1 (Bitfield-Mask: 0x01) */ + #define R_ICU_PERIERR_CLR0_ER_CL2_Pos (2UL) /*!< ER_CL2 (Bit 2) */ + #define R_ICU_PERIERR_CLR0_ER_CL2_Msk (0x4UL) /*!< ER_CL2 (Bitfield-Mask: 0x01) */ + #define R_ICU_PERIERR_CLR0_ER_CL3_Pos (3UL) /*!< ER_CL3 (Bit 3) */ + #define R_ICU_PERIERR_CLR0_ER_CL3_Msk (0x8UL) /*!< ER_CL3 (Bitfield-Mask: 0x01) */ + #define R_ICU_PERIERR_CLR0_ER_CL4_Pos (4UL) /*!< ER_CL4 (Bit 4) */ + #define R_ICU_PERIERR_CLR0_ER_CL4_Msk (0x10UL) /*!< ER_CL4 (Bitfield-Mask: 0x01) */ + #define R_ICU_PERIERR_CLR0_ER_CL5_Pos (5UL) /*!< ER_CL5 (Bit 5) */ + #define R_ICU_PERIERR_CLR0_ER_CL5_Msk (0x20UL) /*!< ER_CL5 (Bitfield-Mask: 0x01) */ + #define R_ICU_PERIERR_CLR0_ER_CL6_Pos (6UL) /*!< ER_CL6 (Bit 6) */ + #define R_ICU_PERIERR_CLR0_ER_CL6_Msk (0x40UL) /*!< ER_CL6 (Bitfield-Mask: 0x01) */ + #define R_ICU_PERIERR_CLR0_ER_CL7_Pos (7UL) /*!< ER_CL7 (Bit 7) */ + #define R_ICU_PERIERR_CLR0_ER_CL7_Msk (0x80UL) /*!< ER_CL7 (Bitfield-Mask: 0x01) */ + #define R_ICU_PERIERR_CLR0_ER_CL9_Pos (9UL) /*!< ER_CL9 (Bit 9) */ + #define R_ICU_PERIERR_CLR0_ER_CL9_Msk (0x200UL) /*!< ER_CL9 (Bitfield-Mask: 0x01) */ + #define R_ICU_PERIERR_CLR0_ER_CL10_Pos (10UL) /*!< ER_CL10 (Bit 10) */ + #define R_ICU_PERIERR_CLR0_ER_CL10_Msk (0x400UL) /*!< ER_CL10 (Bitfield-Mask: 0x01) */ + #define R_ICU_PERIERR_CLR0_ER_CL11_Pos (11UL) /*!< ER_CL11 (Bit 11) */ + #define R_ICU_PERIERR_CLR0_ER_CL11_Msk (0x800UL) /*!< ER_CL11 (Bitfield-Mask: 0x01) */ + #define R_ICU_PERIERR_CLR0_ER_CL12_Pos (12UL) /*!< ER_CL12 (Bit 12) */ + #define R_ICU_PERIERR_CLR0_ER_CL12_Msk (0x1000UL) /*!< ER_CL12 (Bitfield-Mask: 0x01) */ + #define R_ICU_PERIERR_CLR0_ER_CL13_Pos (13UL) /*!< ER_CL13 (Bit 13) */ + #define R_ICU_PERIERR_CLR0_ER_CL13_Msk (0x2000UL) /*!< ER_CL13 (Bitfield-Mask: 0x01) */ + #define R_ICU_PERIERR_CLR0_ER_CL14_Pos (14UL) /*!< ER_CL14 (Bit 14) */ + #define R_ICU_PERIERR_CLR0_ER_CL14_Msk (0x4000UL) /*!< ER_CL14 (Bitfield-Mask: 0x01) */ + #define R_ICU_PERIERR_CLR0_ER_CL15_Pos (15UL) /*!< ER_CL15 (Bit 15) */ + #define R_ICU_PERIERR_CLR0_ER_CL15_Msk (0x8000UL) /*!< ER_CL15 (Bitfield-Mask: 0x01) */ + #define R_ICU_PERIERR_CLR0_ER_CL16_Pos (16UL) /*!< ER_CL16 (Bit 16) */ + #define R_ICU_PERIERR_CLR0_ER_CL16_Msk (0x10000UL) /*!< ER_CL16 (Bitfield-Mask: 0x01) */ + #define R_ICU_PERIERR_CLR0_ER_CL17_Pos (17UL) /*!< ER_CL17 (Bit 17) */ + #define R_ICU_PERIERR_CLR0_ER_CL17_Msk (0x20000UL) /*!< ER_CL17 (Bitfield-Mask: 0x01) */ + #define R_ICU_PERIERR_CLR0_ER_CL18_Pos (18UL) /*!< ER_CL18 (Bit 18) */ + #define R_ICU_PERIERR_CLR0_ER_CL18_Msk (0x40000UL) /*!< ER_CL18 (Bitfield-Mask: 0x01) */ + #define R_ICU_PERIERR_CLR0_ER_CL19_Pos (19UL) /*!< ER_CL19 (Bit 19) */ + #define R_ICU_PERIERR_CLR0_ER_CL19_Msk (0x80000UL) /*!< ER_CL19 (Bitfield-Mask: 0x01) */ + #define R_ICU_PERIERR_CLR0_ER_CL20_Pos (20UL) /*!< ER_CL20 (Bit 20) */ + #define R_ICU_PERIERR_CLR0_ER_CL20_Msk (0x100000UL) /*!< ER_CL20 (Bitfield-Mask: 0x01) */ + #define R_ICU_PERIERR_CLR0_ER_CL21_Pos (21UL) /*!< ER_CL21 (Bit 21) */ + #define R_ICU_PERIERR_CLR0_ER_CL21_Msk (0x200000UL) /*!< ER_CL21 (Bitfield-Mask: 0x01) */ + #define R_ICU_PERIERR_CLR0_ER_CL22_Pos (22UL) /*!< ER_CL22 (Bit 22) */ + #define R_ICU_PERIERR_CLR0_ER_CL22_Msk (0x400000UL) /*!< ER_CL22 (Bitfield-Mask: 0x01) */ + #define R_ICU_PERIERR_CLR0_ER_CL23_Pos (23UL) /*!< ER_CL23 (Bit 23) */ + #define R_ICU_PERIERR_CLR0_ER_CL23_Msk (0x800000UL) /*!< ER_CL23 (Bitfield-Mask: 0x01) */ + #define R_ICU_PERIERR_CLR0_ER_CL24_Pos (24UL) /*!< ER_CL24 (Bit 24) */ + #define R_ICU_PERIERR_CLR0_ER_CL24_Msk (0x1000000UL) /*!< ER_CL24 (Bitfield-Mask: 0x01) */ + #define R_ICU_PERIERR_CLR0_ER_CL25_Pos (25UL) /*!< ER_CL25 (Bit 25) */ + #define R_ICU_PERIERR_CLR0_ER_CL25_Msk (0x2000000UL) /*!< ER_CL25 (Bitfield-Mask: 0x01) */ + #define R_ICU_PERIERR_CLR0_ER_CL26_Pos (26UL) /*!< ER_CL26 (Bit 26) */ + #define R_ICU_PERIERR_CLR0_ER_CL26_Msk (0x4000000UL) /*!< ER_CL26 (Bitfield-Mask: 0x01) */ + #define R_ICU_PERIERR_CLR0_ER_CL27_Pos (27UL) /*!< ER_CL27 (Bit 27) */ + #define R_ICU_PERIERR_CLR0_ER_CL27_Msk (0x8000000UL) /*!< ER_CL27 (Bitfield-Mask: 0x01) */ + #define R_ICU_PERIERR_CLR0_ER_CL28_Pos (28UL) /*!< ER_CL28 (Bit 28) */ + #define R_ICU_PERIERR_CLR0_ER_CL28_Msk (0x10000000UL) /*!< ER_CL28 (Bitfield-Mask: 0x01) */ + #define R_ICU_PERIERR_CLR0_ER_CL29_Pos (29UL) /*!< ER_CL29 (Bit 29) */ + #define R_ICU_PERIERR_CLR0_ER_CL29_Msk (0x20000000UL) /*!< ER_CL29 (Bitfield-Mask: 0x01) */ + #define R_ICU_PERIERR_CLR0_ER_CL30_Pos (30UL) /*!< ER_CL30 (Bit 30) */ + #define R_ICU_PERIERR_CLR0_ER_CL30_Msk (0x40000000UL) /*!< ER_CL30 (Bitfield-Mask: 0x01) */ + #define R_ICU_PERIERR_CLR0_ER_CL31_Pos (31UL) /*!< ER_CL31 (Bit 31) */ + #define R_ICU_PERIERR_CLR0_ER_CL31_Msk (0x80000000UL) /*!< ER_CL31 (Bitfield-Mask: 0x01) */ +/* ===================================================== PERIERR_CLR1 ====================================================== */ + #define R_ICU_PERIERR_CLR1_ER_CL0_Pos (0UL) /*!< ER_CL0 (Bit 0) */ + #define R_ICU_PERIERR_CLR1_ER_CL0_Msk (0x1UL) /*!< ER_CL0 (Bitfield-Mask: 0x01) */ + #define R_ICU_PERIERR_CLR1_ER_CL1_Pos (1UL) /*!< ER_CL1 (Bit 1) */ + #define R_ICU_PERIERR_CLR1_ER_CL1_Msk (0x2UL) /*!< ER_CL1 (Bitfield-Mask: 0x01) */ + #define R_ICU_PERIERR_CLR1_ER_CL2_Pos (2UL) /*!< ER_CL2 (Bit 2) */ + #define R_ICU_PERIERR_CLR1_ER_CL2_Msk (0x4UL) /*!< ER_CL2 (Bitfield-Mask: 0x01) */ + #define R_ICU_PERIERR_CLR1_ER_CL3_Pos (3UL) /*!< ER_CL3 (Bit 3) */ + #define R_ICU_PERIERR_CLR1_ER_CL3_Msk (0x8UL) /*!< ER_CL3 (Bitfield-Mask: 0x01) */ + #define R_ICU_PERIERR_CLR1_ER_CL4_Pos (4UL) /*!< ER_CL4 (Bit 4) */ + #define R_ICU_PERIERR_CLR1_ER_CL4_Msk (0x10UL) /*!< ER_CL4 (Bitfield-Mask: 0x01) */ + #define R_ICU_PERIERR_CLR1_ER_CL5_Pos (5UL) /*!< ER_CL5 (Bit 5) */ + #define R_ICU_PERIERR_CLR1_ER_CL5_Msk (0x20UL) /*!< ER_CL5 (Bitfield-Mask: 0x01) */ + #define R_ICU_PERIERR_CLR1_ER_CL6_Pos (6UL) /*!< ER_CL6 (Bit 6) */ + #define R_ICU_PERIERR_CLR1_ER_CL6_Msk (0x40UL) /*!< ER_CL6 (Bitfield-Mask: 0x01) */ + #define R_ICU_PERIERR_CLR1_ER_CL7_Pos (7UL) /*!< ER_CL7 (Bit 7) */ + #define R_ICU_PERIERR_CLR1_ER_CL7_Msk (0x80UL) /*!< ER_CL7 (Bitfield-Mask: 0x01) */ + #define R_ICU_PERIERR_CLR1_ER_CL8_Pos (8UL) /*!< ER_CL8 (Bit 8) */ + #define R_ICU_PERIERR_CLR1_ER_CL8_Msk (0x100UL) /*!< ER_CL8 (Bitfield-Mask: 0x01) */ + #define R_ICU_PERIERR_CLR1_ER_CL9_Pos (9UL) /*!< ER_CL9 (Bit 9) */ + #define R_ICU_PERIERR_CLR1_ER_CL9_Msk (0x200UL) /*!< ER_CL9 (Bitfield-Mask: 0x01) */ + #define R_ICU_PERIERR_CLR1_ER_CL13_Pos (13UL) /*!< ER_CL13 (Bit 13) */ + #define R_ICU_PERIERR_CLR1_ER_CL13_Msk (0x2000UL) /*!< ER_CL13 (Bitfield-Mask: 0x01) */ + #define R_ICU_PERIERR_CLR1_ER_CL15_Pos (15UL) /*!< ER_CL15 (Bit 15) */ + #define R_ICU_PERIERR_CLR1_ER_CL15_Msk (0x8000UL) /*!< ER_CL15 (Bitfield-Mask: 0x01) */ + #define R_ICU_PERIERR_CLR1_ER_CL16_Pos (16UL) /*!< ER_CL16 (Bit 16) */ + #define R_ICU_PERIERR_CLR1_ER_CL16_Msk (0x10000UL) /*!< ER_CL16 (Bitfield-Mask: 0x01) */ + #define R_ICU_PERIERR_CLR1_ER_CL17_Pos (17UL) /*!< ER_CL17 (Bit 17) */ + #define R_ICU_PERIERR_CLR1_ER_CL17_Msk (0x20000UL) /*!< ER_CL17 (Bitfield-Mask: 0x01) */ + #define R_ICU_PERIERR_CLR1_ER_CL18_Pos (18UL) /*!< ER_CL18 (Bit 18) */ + #define R_ICU_PERIERR_CLR1_ER_CL18_Msk (0x40000UL) /*!< ER_CL18 (Bitfield-Mask: 0x01) */ + #define R_ICU_PERIERR_CLR1_ER_CL19_Pos (19UL) /*!< ER_CL19 (Bit 19) */ + #define R_ICU_PERIERR_CLR1_ER_CL19_Msk (0x80000UL) /*!< ER_CL19 (Bitfield-Mask: 0x01) */ + #define R_ICU_PERIERR_CLR1_ER_CL20_Pos (20UL) /*!< ER_CL20 (Bit 20) */ + #define R_ICU_PERIERR_CLR1_ER_CL20_Msk (0x100000UL) /*!< ER_CL20 (Bitfield-Mask: 0x01) */ + #define R_ICU_PERIERR_CLR1_ER_CL21_Pos (21UL) /*!< ER_CL21 (Bit 21) */ + #define R_ICU_PERIERR_CLR1_ER_CL21_Msk (0x200000UL) /*!< ER_CL21 (Bitfield-Mask: 0x01) */ + #define R_ICU_PERIERR_CLR1_ER_CL22_Pos (22UL) /*!< ER_CL22 (Bit 22) */ + #define R_ICU_PERIERR_CLR1_ER_CL22_Msk (0x400000UL) /*!< ER_CL22 (Bitfield-Mask: 0x01) */ + #define R_ICU_PERIERR_CLR1_ER_CL23_Pos (23UL) /*!< ER_CL23 (Bit 23) */ + #define R_ICU_PERIERR_CLR1_ER_CL23_Msk (0x800000UL) /*!< ER_CL23 (Bitfield-Mask: 0x01) */ + #define R_ICU_PERIERR_CLR1_ER_CL24_Pos (24UL) /*!< ER_CL24 (Bit 24) */ + #define R_ICU_PERIERR_CLR1_ER_CL24_Msk (0x1000000UL) /*!< ER_CL24 (Bitfield-Mask: 0x01) */ + #define R_ICU_PERIERR_CLR1_ER_CL27_Pos (27UL) /*!< ER_CL27 (Bit 27) */ + #define R_ICU_PERIERR_CLR1_ER_CL27_Msk (0x8000000UL) /*!< ER_CL27 (Bitfield-Mask: 0x01) */ + #define R_ICU_PERIERR_CLR1_ER_CL28_Pos (28UL) /*!< ER_CL28 (Bit 28) */ + #define R_ICU_PERIERR_CLR1_ER_CL28_Msk (0x10000000UL) /*!< ER_CL28 (Bitfield-Mask: 0x01) */ +/* ==================================================== CPU0ERR_RSTMSK ===================================================== */ + #define R_ICU_CPU0ERR_RSTMSK_RS_MK0_Pos (0UL) /*!< RS_MK0 (Bit 0) */ + #define R_ICU_CPU0ERR_RSTMSK_RS_MK0_Msk (0x1UL) /*!< RS_MK0 (Bitfield-Mask: 0x01) */ + #define R_ICU_CPU0ERR_RSTMSK_RS_MK1_Pos (1UL) /*!< RS_MK1 (Bit 1) */ + #define R_ICU_CPU0ERR_RSTMSK_RS_MK1_Msk (0x2UL) /*!< RS_MK1 (Bitfield-Mask: 0x01) */ + #define R_ICU_CPU0ERR_RSTMSK_RS_MK2_Pos (2UL) /*!< RS_MK2 (Bit 2) */ + #define R_ICU_CPU0ERR_RSTMSK_RS_MK2_Msk (0x4UL) /*!< RS_MK2 (Bitfield-Mask: 0x01) */ + #define R_ICU_CPU0ERR_RSTMSK_RS_MK3_Pos (3UL) /*!< RS_MK3 (Bit 3) */ + #define R_ICU_CPU0ERR_RSTMSK_RS_MK3_Msk (0x8UL) /*!< RS_MK3 (Bitfield-Mask: 0x01) */ + #define R_ICU_CPU0ERR_RSTMSK_RS_MK4_Pos (4UL) /*!< RS_MK4 (Bit 4) */ + #define R_ICU_CPU0ERR_RSTMSK_RS_MK4_Msk (0x10UL) /*!< RS_MK4 (Bitfield-Mask: 0x01) */ + #define R_ICU_CPU0ERR_RSTMSK_RS_MK5_Pos (5UL) /*!< RS_MK5 (Bit 5) */ + #define R_ICU_CPU0ERR_RSTMSK_RS_MK5_Msk (0x20UL) /*!< RS_MK5 (Bitfield-Mask: 0x01) */ + #define R_ICU_CPU0ERR_RSTMSK_RS_MK6_Pos (6UL) /*!< RS_MK6 (Bit 6) */ + #define R_ICU_CPU0ERR_RSTMSK_RS_MK6_Msk (0x40UL) /*!< RS_MK6 (Bitfield-Mask: 0x01) */ + #define R_ICU_CPU0ERR_RSTMSK_RS_MK7_Pos (7UL) /*!< RS_MK7 (Bit 7) */ + #define R_ICU_CPU0ERR_RSTMSK_RS_MK7_Msk (0x80UL) /*!< RS_MK7 (Bitfield-Mask: 0x01) */ + #define R_ICU_CPU0ERR_RSTMSK_RS_MK8_Pos (8UL) /*!< RS_MK8 (Bit 8) */ + #define R_ICU_CPU0ERR_RSTMSK_RS_MK8_Msk (0x100UL) /*!< RS_MK8 (Bitfield-Mask: 0x01) */ + #define R_ICU_CPU0ERR_RSTMSK_RS_MK9_Pos (9UL) /*!< RS_MK9 (Bit 9) */ + #define R_ICU_CPU0ERR_RSTMSK_RS_MK9_Msk (0x200UL) /*!< RS_MK9 (Bitfield-Mask: 0x01) */ + #define R_ICU_CPU0ERR_RSTMSK_RS_MK10_Pos (10UL) /*!< RS_MK10 (Bit 10) */ + #define R_ICU_CPU0ERR_RSTMSK_RS_MK10_Msk (0x400UL) /*!< RS_MK10 (Bitfield-Mask: 0x01) */ + #define R_ICU_CPU0ERR_RSTMSK_RS_MK11_Pos (11UL) /*!< RS_MK11 (Bit 11) */ + #define R_ICU_CPU0ERR_RSTMSK_RS_MK11_Msk (0x800UL) /*!< RS_MK11 (Bitfield-Mask: 0x01) */ + #define R_ICU_CPU0ERR_RSTMSK_RS_MK12_Pos (12UL) /*!< RS_MK12 (Bit 12) */ + #define R_ICU_CPU0ERR_RSTMSK_RS_MK12_Msk (0x1000UL) /*!< RS_MK12 (Bitfield-Mask: 0x01) */ + #define R_ICU_CPU0ERR_RSTMSK_RS_MK13_Pos (13UL) /*!< RS_MK13 (Bit 13) */ + #define R_ICU_CPU0ERR_RSTMSK_RS_MK13_Msk (0x2000UL) /*!< RS_MK13 (Bitfield-Mask: 0x01) */ + #define R_ICU_CPU0ERR_RSTMSK_RS_MK14_Pos (14UL) /*!< RS_MK14 (Bit 14) */ + #define R_ICU_CPU0ERR_RSTMSK_RS_MK14_Msk (0x4000UL) /*!< RS_MK14 (Bitfield-Mask: 0x01) */ + #define R_ICU_CPU0ERR_RSTMSK_RS_MK15_Pos (15UL) /*!< RS_MK15 (Bit 15) */ + #define R_ICU_CPU0ERR_RSTMSK_RS_MK15_Msk (0x8000UL) /*!< RS_MK15 (Bitfield-Mask: 0x01) */ + #define R_ICU_CPU0ERR_RSTMSK_RS_MK16_Pos (16UL) /*!< RS_MK16 (Bit 16) */ + #define R_ICU_CPU0ERR_RSTMSK_RS_MK16_Msk (0x10000UL) /*!< RS_MK16 (Bitfield-Mask: 0x01) */ + #define R_ICU_CPU0ERR_RSTMSK_RS_MK17_Pos (17UL) /*!< RS_MK17 (Bit 17) */ + #define R_ICU_CPU0ERR_RSTMSK_RS_MK17_Msk (0x20000UL) /*!< RS_MK17 (Bitfield-Mask: 0x01) */ + #define R_ICU_CPU0ERR_RSTMSK_RS_MK18_Pos (18UL) /*!< RS_MK18 (Bit 18) */ + #define R_ICU_CPU0ERR_RSTMSK_RS_MK18_Msk (0x40000UL) /*!< RS_MK18 (Bitfield-Mask: 0x01) */ + #define R_ICU_CPU0ERR_RSTMSK_RS_MK19_Pos (19UL) /*!< RS_MK19 (Bit 19) */ + #define R_ICU_CPU0ERR_RSTMSK_RS_MK19_Msk (0x80000UL) /*!< RS_MK19 (Bitfield-Mask: 0x01) */ + #define R_ICU_CPU0ERR_RSTMSK_RS_MK20_Pos (20UL) /*!< RS_MK20 (Bit 20) */ + #define R_ICU_CPU0ERR_RSTMSK_RS_MK20_Msk (0x100000UL) /*!< RS_MK20 (Bitfield-Mask: 0x01) */ + #define R_ICU_CPU0ERR_RSTMSK_RS_MK21_Pos (21UL) /*!< RS_MK21 (Bit 21) */ + #define R_ICU_CPU0ERR_RSTMSK_RS_MK21_Msk (0x200000UL) /*!< RS_MK21 (Bitfield-Mask: 0x01) */ + #define R_ICU_CPU0ERR_RSTMSK_RS_MK22_Pos (22UL) /*!< RS_MK22 (Bit 22) */ + #define R_ICU_CPU0ERR_RSTMSK_RS_MK22_Msk (0x400000UL) /*!< RS_MK22 (Bitfield-Mask: 0x01) */ + #define R_ICU_CPU0ERR_RSTMSK_RS_MK23_Pos (23UL) /*!< RS_MK23 (Bit 23) */ + #define R_ICU_CPU0ERR_RSTMSK_RS_MK23_Msk (0x800000UL) /*!< RS_MK23 (Bitfield-Mask: 0x01) */ + #define R_ICU_CPU0ERR_RSTMSK_RS_MK24_Pos (24UL) /*!< RS_MK24 (Bit 24) */ + #define R_ICU_CPU0ERR_RSTMSK_RS_MK24_Msk (0x1000000UL) /*!< RS_MK24 (Bitfield-Mask: 0x01) */ + #define R_ICU_CPU0ERR_RSTMSK_RS_MK25_Pos (25UL) /*!< RS_MK25 (Bit 25) */ + #define R_ICU_CPU0ERR_RSTMSK_RS_MK25_Msk (0x2000000UL) /*!< RS_MK25 (Bitfield-Mask: 0x01) */ +/* ==================================================== PERIERR_RSTMSK0 ==================================================== */ + #define R_ICU_PERIERR_RSTMSK0_RS_MK0_Pos (0UL) /*!< RS_MK0 (Bit 0) */ + #define R_ICU_PERIERR_RSTMSK0_RS_MK0_Msk (0x1UL) /*!< RS_MK0 (Bitfield-Mask: 0x01) */ + #define R_ICU_PERIERR_RSTMSK0_RS_MK1_Pos (1UL) /*!< RS_MK1 (Bit 1) */ + #define R_ICU_PERIERR_RSTMSK0_RS_MK1_Msk (0x2UL) /*!< RS_MK1 (Bitfield-Mask: 0x01) */ + #define R_ICU_PERIERR_RSTMSK0_RS_MK2_Pos (2UL) /*!< RS_MK2 (Bit 2) */ + #define R_ICU_PERIERR_RSTMSK0_RS_MK2_Msk (0x4UL) /*!< RS_MK2 (Bitfield-Mask: 0x01) */ + #define R_ICU_PERIERR_RSTMSK0_RS_MK3_Pos (3UL) /*!< RS_MK3 (Bit 3) */ + #define R_ICU_PERIERR_RSTMSK0_RS_MK3_Msk (0x8UL) /*!< RS_MK3 (Bitfield-Mask: 0x01) */ + #define R_ICU_PERIERR_RSTMSK0_RS_MK4_Pos (4UL) /*!< RS_MK4 (Bit 4) */ + #define R_ICU_PERIERR_RSTMSK0_RS_MK4_Msk (0x10UL) /*!< RS_MK4 (Bitfield-Mask: 0x01) */ + #define R_ICU_PERIERR_RSTMSK0_RS_MK5_Pos (5UL) /*!< RS_MK5 (Bit 5) */ + #define R_ICU_PERIERR_RSTMSK0_RS_MK5_Msk (0x20UL) /*!< RS_MK5 (Bitfield-Mask: 0x01) */ + #define R_ICU_PERIERR_RSTMSK0_RS_MK6_Pos (6UL) /*!< RS_MK6 (Bit 6) */ + #define R_ICU_PERIERR_RSTMSK0_RS_MK6_Msk (0x40UL) /*!< RS_MK6 (Bitfield-Mask: 0x01) */ + #define R_ICU_PERIERR_RSTMSK0_RS_MK7_Pos (7UL) /*!< RS_MK7 (Bit 7) */ + #define R_ICU_PERIERR_RSTMSK0_RS_MK7_Msk (0x80UL) /*!< RS_MK7 (Bitfield-Mask: 0x01) */ + #define R_ICU_PERIERR_RSTMSK0_RS_MK9_Pos (9UL) /*!< RS_MK9 (Bit 9) */ + #define R_ICU_PERIERR_RSTMSK0_RS_MK9_Msk (0x200UL) /*!< RS_MK9 (Bitfield-Mask: 0x01) */ + #define R_ICU_PERIERR_RSTMSK0_RS_MK10_Pos (10UL) /*!< RS_MK10 (Bit 10) */ + #define R_ICU_PERIERR_RSTMSK0_RS_MK10_Msk (0x400UL) /*!< RS_MK10 (Bitfield-Mask: 0x01) */ + #define R_ICU_PERIERR_RSTMSK0_RS_MK11_Pos (11UL) /*!< RS_MK11 (Bit 11) */ + #define R_ICU_PERIERR_RSTMSK0_RS_MK11_Msk (0x800UL) /*!< RS_MK11 (Bitfield-Mask: 0x01) */ + #define R_ICU_PERIERR_RSTMSK0_RS_MK12_Pos (12UL) /*!< RS_MK12 (Bit 12) */ + #define R_ICU_PERIERR_RSTMSK0_RS_MK12_Msk (0x1000UL) /*!< RS_MK12 (Bitfield-Mask: 0x01) */ + #define R_ICU_PERIERR_RSTMSK0_RS_MK13_Pos (13UL) /*!< RS_MK13 (Bit 13) */ + #define R_ICU_PERIERR_RSTMSK0_RS_MK13_Msk (0x2000UL) /*!< RS_MK13 (Bitfield-Mask: 0x01) */ + #define R_ICU_PERIERR_RSTMSK0_RS_MK14_Pos (14UL) /*!< RS_MK14 (Bit 14) */ + #define R_ICU_PERIERR_RSTMSK0_RS_MK14_Msk (0x4000UL) /*!< RS_MK14 (Bitfield-Mask: 0x01) */ + #define R_ICU_PERIERR_RSTMSK0_RS_MK15_Pos (15UL) /*!< RS_MK15 (Bit 15) */ + #define R_ICU_PERIERR_RSTMSK0_RS_MK15_Msk (0x8000UL) /*!< RS_MK15 (Bitfield-Mask: 0x01) */ + #define R_ICU_PERIERR_RSTMSK0_RS_MK16_Pos (16UL) /*!< RS_MK16 (Bit 16) */ + #define R_ICU_PERIERR_RSTMSK0_RS_MK16_Msk (0x10000UL) /*!< RS_MK16 (Bitfield-Mask: 0x01) */ + #define R_ICU_PERIERR_RSTMSK0_RS_MK17_Pos (17UL) /*!< RS_MK17 (Bit 17) */ + #define R_ICU_PERIERR_RSTMSK0_RS_MK17_Msk (0x20000UL) /*!< RS_MK17 (Bitfield-Mask: 0x01) */ + #define R_ICU_PERIERR_RSTMSK0_RS_MK18_Pos (18UL) /*!< RS_MK18 (Bit 18) */ + #define R_ICU_PERIERR_RSTMSK0_RS_MK18_Msk (0x40000UL) /*!< RS_MK18 (Bitfield-Mask: 0x01) */ + #define R_ICU_PERIERR_RSTMSK0_RS_MK19_Pos (19UL) /*!< RS_MK19 (Bit 19) */ + #define R_ICU_PERIERR_RSTMSK0_RS_MK19_Msk (0x80000UL) /*!< RS_MK19 (Bitfield-Mask: 0x01) */ + #define R_ICU_PERIERR_RSTMSK0_RS_MK20_Pos (20UL) /*!< RS_MK20 (Bit 20) */ + #define R_ICU_PERIERR_RSTMSK0_RS_MK20_Msk (0x100000UL) /*!< RS_MK20 (Bitfield-Mask: 0x01) */ + #define R_ICU_PERIERR_RSTMSK0_RS_MK21_Pos (21UL) /*!< RS_MK21 (Bit 21) */ + #define R_ICU_PERIERR_RSTMSK0_RS_MK21_Msk (0x200000UL) /*!< RS_MK21 (Bitfield-Mask: 0x01) */ + #define R_ICU_PERIERR_RSTMSK0_RS_MK22_Pos (22UL) /*!< RS_MK22 (Bit 22) */ + #define R_ICU_PERIERR_RSTMSK0_RS_MK22_Msk (0x400000UL) /*!< RS_MK22 (Bitfield-Mask: 0x01) */ + #define R_ICU_PERIERR_RSTMSK0_RS_MK23_Pos (23UL) /*!< RS_MK23 (Bit 23) */ + #define R_ICU_PERIERR_RSTMSK0_RS_MK23_Msk (0x800000UL) /*!< RS_MK23 (Bitfield-Mask: 0x01) */ + #define R_ICU_PERIERR_RSTMSK0_RS_MK24_Pos (24UL) /*!< RS_MK24 (Bit 24) */ + #define R_ICU_PERIERR_RSTMSK0_RS_MK24_Msk (0x1000000UL) /*!< RS_MK24 (Bitfield-Mask: 0x01) */ + #define R_ICU_PERIERR_RSTMSK0_RS_MK25_Pos (25UL) /*!< RS_MK25 (Bit 25) */ + #define R_ICU_PERIERR_RSTMSK0_RS_MK25_Msk (0x2000000UL) /*!< RS_MK25 (Bitfield-Mask: 0x01) */ + #define R_ICU_PERIERR_RSTMSK0_RS_MK26_Pos (26UL) /*!< RS_MK26 (Bit 26) */ + #define R_ICU_PERIERR_RSTMSK0_RS_MK26_Msk (0x4000000UL) /*!< RS_MK26 (Bitfield-Mask: 0x01) */ + #define R_ICU_PERIERR_RSTMSK0_RS_MK27_Pos (27UL) /*!< RS_MK27 (Bit 27) */ + #define R_ICU_PERIERR_RSTMSK0_RS_MK27_Msk (0x8000000UL) /*!< RS_MK27 (Bitfield-Mask: 0x01) */ + #define R_ICU_PERIERR_RSTMSK0_RS_MK28_Pos (28UL) /*!< RS_MK28 (Bit 28) */ + #define R_ICU_PERIERR_RSTMSK0_RS_MK28_Msk (0x10000000UL) /*!< RS_MK28 (Bitfield-Mask: 0x01) */ + #define R_ICU_PERIERR_RSTMSK0_RS_MK29_Pos (29UL) /*!< RS_MK29 (Bit 29) */ + #define R_ICU_PERIERR_RSTMSK0_RS_MK29_Msk (0x20000000UL) /*!< RS_MK29 (Bitfield-Mask: 0x01) */ + #define R_ICU_PERIERR_RSTMSK0_RS_MK30_Pos (30UL) /*!< RS_MK30 (Bit 30) */ + #define R_ICU_PERIERR_RSTMSK0_RS_MK30_Msk (0x40000000UL) /*!< RS_MK30 (Bitfield-Mask: 0x01) */ + #define R_ICU_PERIERR_RSTMSK0_RS_MK31_Pos (31UL) /*!< RS_MK31 (Bit 31) */ + #define R_ICU_PERIERR_RSTMSK0_RS_MK31_Msk (0x80000000UL) /*!< RS_MK31 (Bitfield-Mask: 0x01) */ +/* ==================================================== PERIERR_RSTMSK1 ==================================================== */ + #define R_ICU_PERIERR_RSTMSK1_RS_MK0_Pos (0UL) /*!< RS_MK0 (Bit 0) */ + #define R_ICU_PERIERR_RSTMSK1_RS_MK0_Msk (0x1UL) /*!< RS_MK0 (Bitfield-Mask: 0x01) */ + #define R_ICU_PERIERR_RSTMSK1_RS_MK1_Pos (1UL) /*!< RS_MK1 (Bit 1) */ + #define R_ICU_PERIERR_RSTMSK1_RS_MK1_Msk (0x2UL) /*!< RS_MK1 (Bitfield-Mask: 0x01) */ + #define R_ICU_PERIERR_RSTMSK1_RS_MK2_Pos (2UL) /*!< RS_MK2 (Bit 2) */ + #define R_ICU_PERIERR_RSTMSK1_RS_MK2_Msk (0x4UL) /*!< RS_MK2 (Bitfield-Mask: 0x01) */ + #define R_ICU_PERIERR_RSTMSK1_RS_MK3_Pos (3UL) /*!< RS_MK3 (Bit 3) */ + #define R_ICU_PERIERR_RSTMSK1_RS_MK3_Msk (0x8UL) /*!< RS_MK3 (Bitfield-Mask: 0x01) */ + #define R_ICU_PERIERR_RSTMSK1_RS_MK4_Pos (4UL) /*!< RS_MK4 (Bit 4) */ + #define R_ICU_PERIERR_RSTMSK1_RS_MK4_Msk (0x10UL) /*!< RS_MK4 (Bitfield-Mask: 0x01) */ + #define R_ICU_PERIERR_RSTMSK1_RS_MK5_Pos (5UL) /*!< RS_MK5 (Bit 5) */ + #define R_ICU_PERIERR_RSTMSK1_RS_MK5_Msk (0x20UL) /*!< RS_MK5 (Bitfield-Mask: 0x01) */ + #define R_ICU_PERIERR_RSTMSK1_RS_MK6_Pos (6UL) /*!< RS_MK6 (Bit 6) */ + #define R_ICU_PERIERR_RSTMSK1_RS_MK6_Msk (0x40UL) /*!< RS_MK6 (Bitfield-Mask: 0x01) */ + #define R_ICU_PERIERR_RSTMSK1_RS_MK7_Pos (7UL) /*!< RS_MK7 (Bit 7) */ + #define R_ICU_PERIERR_RSTMSK1_RS_MK7_Msk (0x80UL) /*!< RS_MK7 (Bitfield-Mask: 0x01) */ + #define R_ICU_PERIERR_RSTMSK1_RS_MK8_Pos (8UL) /*!< RS_MK8 (Bit 8) */ + #define R_ICU_PERIERR_RSTMSK1_RS_MK8_Msk (0x100UL) /*!< RS_MK8 (Bitfield-Mask: 0x01) */ + #define R_ICU_PERIERR_RSTMSK1_RS_MK9_Pos (9UL) /*!< RS_MK9 (Bit 9) */ + #define R_ICU_PERIERR_RSTMSK1_RS_MK9_Msk (0x200UL) /*!< RS_MK9 (Bitfield-Mask: 0x01) */ + #define R_ICU_PERIERR_RSTMSK1_RS_MK13_Pos (13UL) /*!< RS_MK13 (Bit 13) */ + #define R_ICU_PERIERR_RSTMSK1_RS_MK13_Msk (0x2000UL) /*!< RS_MK13 (Bitfield-Mask: 0x01) */ + #define R_ICU_PERIERR_RSTMSK1_RS_MK15_Pos (15UL) /*!< RS_MK15 (Bit 15) */ + #define R_ICU_PERIERR_RSTMSK1_RS_MK15_Msk (0x8000UL) /*!< RS_MK15 (Bitfield-Mask: 0x01) */ + #define R_ICU_PERIERR_RSTMSK1_RS_MK16_Pos (16UL) /*!< RS_MK16 (Bit 16) */ + #define R_ICU_PERIERR_RSTMSK1_RS_MK16_Msk (0x10000UL) /*!< RS_MK16 (Bitfield-Mask: 0x01) */ + #define R_ICU_PERIERR_RSTMSK1_RS_MK17_Pos (17UL) /*!< RS_MK17 (Bit 17) */ + #define R_ICU_PERIERR_RSTMSK1_RS_MK17_Msk (0x20000UL) /*!< RS_MK17 (Bitfield-Mask: 0x01) */ + #define R_ICU_PERIERR_RSTMSK1_RS_MK18_Pos (18UL) /*!< RS_MK18 (Bit 18) */ + #define R_ICU_PERIERR_RSTMSK1_RS_MK18_Msk (0x40000UL) /*!< RS_MK18 (Bitfield-Mask: 0x01) */ + #define R_ICU_PERIERR_RSTMSK1_RS_MK19_Pos (19UL) /*!< RS_MK19 (Bit 19) */ + #define R_ICU_PERIERR_RSTMSK1_RS_MK19_Msk (0x80000UL) /*!< RS_MK19 (Bitfield-Mask: 0x01) */ + #define R_ICU_PERIERR_RSTMSK1_RS_MK20_Pos (20UL) /*!< RS_MK20 (Bit 20) */ + #define R_ICU_PERIERR_RSTMSK1_RS_MK20_Msk (0x100000UL) /*!< RS_MK20 (Bitfield-Mask: 0x01) */ + #define R_ICU_PERIERR_RSTMSK1_RS_MK21_Pos (21UL) /*!< RS_MK21 (Bit 21) */ + #define R_ICU_PERIERR_RSTMSK1_RS_MK21_Msk (0x200000UL) /*!< RS_MK21 (Bitfield-Mask: 0x01) */ + #define R_ICU_PERIERR_RSTMSK1_RS_MK22_Pos (22UL) /*!< RS_MK22 (Bit 22) */ + #define R_ICU_PERIERR_RSTMSK1_RS_MK22_Msk (0x400000UL) /*!< RS_MK22 (Bitfield-Mask: 0x01) */ + #define R_ICU_PERIERR_RSTMSK1_RS_MK23_Pos (23UL) /*!< RS_MK23 (Bit 23) */ + #define R_ICU_PERIERR_RSTMSK1_RS_MK23_Msk (0x800000UL) /*!< RS_MK23 (Bitfield-Mask: 0x01) */ + #define R_ICU_PERIERR_RSTMSK1_RS_MK24_Pos (24UL) /*!< RS_MK24 (Bit 24) */ + #define R_ICU_PERIERR_RSTMSK1_RS_MK24_Msk (0x1000000UL) /*!< RS_MK24 (Bitfield-Mask: 0x01) */ + #define R_ICU_PERIERR_RSTMSK1_RS_MK27_Pos (27UL) /*!< RS_MK27 (Bit 27) */ + #define R_ICU_PERIERR_RSTMSK1_RS_MK27_Msk (0x8000000UL) /*!< RS_MK27 (Bitfield-Mask: 0x01) */ + #define R_ICU_PERIERR_RSTMSK1_RS_MK28_Pos (28UL) /*!< RS_MK28 (Bit 28) */ + #define R_ICU_PERIERR_RSTMSK1_RS_MK28_Msk (0x10000000UL) /*!< RS_MK28 (Bitfield-Mask: 0x01) */ +/* ===================================================== CPU0ERR_E0MSK ===================================================== */ + #define R_ICU_CPU0ERR_E0MSK_E0_MK0_Pos (0UL) /*!< E0_MK0 (Bit 0) */ + #define R_ICU_CPU0ERR_E0MSK_E0_MK0_Msk (0x1UL) /*!< E0_MK0 (Bitfield-Mask: 0x01) */ + #define R_ICU_CPU0ERR_E0MSK_E0_MK1_Pos (1UL) /*!< E0_MK1 (Bit 1) */ + #define R_ICU_CPU0ERR_E0MSK_E0_MK1_Msk (0x2UL) /*!< E0_MK1 (Bitfield-Mask: 0x01) */ + #define R_ICU_CPU0ERR_E0MSK_E0_MK2_Pos (2UL) /*!< E0_MK2 (Bit 2) */ + #define R_ICU_CPU0ERR_E0MSK_E0_MK2_Msk (0x4UL) /*!< E0_MK2 (Bitfield-Mask: 0x01) */ + #define R_ICU_CPU0ERR_E0MSK_E0_MK3_Pos (3UL) /*!< E0_MK3 (Bit 3) */ + #define R_ICU_CPU0ERR_E0MSK_E0_MK3_Msk (0x8UL) /*!< E0_MK3 (Bitfield-Mask: 0x01) */ + #define R_ICU_CPU0ERR_E0MSK_E0_MK4_Pos (4UL) /*!< E0_MK4 (Bit 4) */ + #define R_ICU_CPU0ERR_E0MSK_E0_MK4_Msk (0x10UL) /*!< E0_MK4 (Bitfield-Mask: 0x01) */ + #define R_ICU_CPU0ERR_E0MSK_E0_MK5_Pos (5UL) /*!< E0_MK5 (Bit 5) */ + #define R_ICU_CPU0ERR_E0MSK_E0_MK5_Msk (0x20UL) /*!< E0_MK5 (Bitfield-Mask: 0x01) */ + #define R_ICU_CPU0ERR_E0MSK_E0_MK6_Pos (6UL) /*!< E0_MK6 (Bit 6) */ + #define R_ICU_CPU0ERR_E0MSK_E0_MK6_Msk (0x40UL) /*!< E0_MK6 (Bitfield-Mask: 0x01) */ + #define R_ICU_CPU0ERR_E0MSK_E0_MK7_Pos (7UL) /*!< E0_MK7 (Bit 7) */ + #define R_ICU_CPU0ERR_E0MSK_E0_MK7_Msk (0x80UL) /*!< E0_MK7 (Bitfield-Mask: 0x01) */ + #define R_ICU_CPU0ERR_E0MSK_E0_MK8_Pos (8UL) /*!< E0_MK8 (Bit 8) */ + #define R_ICU_CPU0ERR_E0MSK_E0_MK8_Msk (0x100UL) /*!< E0_MK8 (Bitfield-Mask: 0x01) */ + #define R_ICU_CPU0ERR_E0MSK_E0_MK9_Pos (9UL) /*!< E0_MK9 (Bit 9) */ + #define R_ICU_CPU0ERR_E0MSK_E0_MK9_Msk (0x200UL) /*!< E0_MK9 (Bitfield-Mask: 0x01) */ + #define R_ICU_CPU0ERR_E0MSK_E0_MK10_Pos (10UL) /*!< E0_MK10 (Bit 10) */ + #define R_ICU_CPU0ERR_E0MSK_E0_MK10_Msk (0x400UL) /*!< E0_MK10 (Bitfield-Mask: 0x01) */ + #define R_ICU_CPU0ERR_E0MSK_E0_MK11_Pos (11UL) /*!< E0_MK11 (Bit 11) */ + #define R_ICU_CPU0ERR_E0MSK_E0_MK11_Msk (0x800UL) /*!< E0_MK11 (Bitfield-Mask: 0x01) */ + #define R_ICU_CPU0ERR_E0MSK_E0_MK12_Pos (12UL) /*!< E0_MK12 (Bit 12) */ + #define R_ICU_CPU0ERR_E0MSK_E0_MK12_Msk (0x1000UL) /*!< E0_MK12 (Bitfield-Mask: 0x01) */ + #define R_ICU_CPU0ERR_E0MSK_E0_MK13_Pos (13UL) /*!< E0_MK13 (Bit 13) */ + #define R_ICU_CPU0ERR_E0MSK_E0_MK13_Msk (0x2000UL) /*!< E0_MK13 (Bitfield-Mask: 0x01) */ + #define R_ICU_CPU0ERR_E0MSK_E0_MK14_Pos (14UL) /*!< E0_MK14 (Bit 14) */ + #define R_ICU_CPU0ERR_E0MSK_E0_MK14_Msk (0x4000UL) /*!< E0_MK14 (Bitfield-Mask: 0x01) */ + #define R_ICU_CPU0ERR_E0MSK_E0_MK15_Pos (15UL) /*!< E0_MK15 (Bit 15) */ + #define R_ICU_CPU0ERR_E0MSK_E0_MK15_Msk (0x8000UL) /*!< E0_MK15 (Bitfield-Mask: 0x01) */ + #define R_ICU_CPU0ERR_E0MSK_E0_MK16_Pos (16UL) /*!< E0_MK16 (Bit 16) */ + #define R_ICU_CPU0ERR_E0MSK_E0_MK16_Msk (0x10000UL) /*!< E0_MK16 (Bitfield-Mask: 0x01) */ + #define R_ICU_CPU0ERR_E0MSK_E0_MK17_Pos (17UL) /*!< E0_MK17 (Bit 17) */ + #define R_ICU_CPU0ERR_E0MSK_E0_MK17_Msk (0x20000UL) /*!< E0_MK17 (Bitfield-Mask: 0x01) */ + #define R_ICU_CPU0ERR_E0MSK_E0_MK18_Pos (18UL) /*!< E0_MK18 (Bit 18) */ + #define R_ICU_CPU0ERR_E0MSK_E0_MK18_Msk (0x40000UL) /*!< E0_MK18 (Bitfield-Mask: 0x01) */ + #define R_ICU_CPU0ERR_E0MSK_E0_MK19_Pos (19UL) /*!< E0_MK19 (Bit 19) */ + #define R_ICU_CPU0ERR_E0MSK_E0_MK19_Msk (0x80000UL) /*!< E0_MK19 (Bitfield-Mask: 0x01) */ + #define R_ICU_CPU0ERR_E0MSK_E0_MK20_Pos (20UL) /*!< E0_MK20 (Bit 20) */ + #define R_ICU_CPU0ERR_E0MSK_E0_MK20_Msk (0x100000UL) /*!< E0_MK20 (Bitfield-Mask: 0x01) */ + #define R_ICU_CPU0ERR_E0MSK_E0_MK21_Pos (21UL) /*!< E0_MK21 (Bit 21) */ + #define R_ICU_CPU0ERR_E0MSK_E0_MK21_Msk (0x200000UL) /*!< E0_MK21 (Bitfield-Mask: 0x01) */ + #define R_ICU_CPU0ERR_E0MSK_E0_MK22_Pos (22UL) /*!< E0_MK22 (Bit 22) */ + #define R_ICU_CPU0ERR_E0MSK_E0_MK22_Msk (0x400000UL) /*!< E0_MK22 (Bitfield-Mask: 0x01) */ + #define R_ICU_CPU0ERR_E0MSK_E0_MK23_Pos (23UL) /*!< E0_MK23 (Bit 23) */ + #define R_ICU_CPU0ERR_E0MSK_E0_MK23_Msk (0x800000UL) /*!< E0_MK23 (Bitfield-Mask: 0x01) */ + #define R_ICU_CPU0ERR_E0MSK_E0_MK24_Pos (24UL) /*!< E0_MK24 (Bit 24) */ + #define R_ICU_CPU0ERR_E0MSK_E0_MK24_Msk (0x1000000UL) /*!< E0_MK24 (Bitfield-Mask: 0x01) */ + #define R_ICU_CPU0ERR_E0MSK_E0_MK25_Pos (25UL) /*!< E0_MK25 (Bit 25) */ + #define R_ICU_CPU0ERR_E0MSK_E0_MK25_Msk (0x2000000UL) /*!< E0_MK25 (Bitfield-Mask: 0x01) */ +/* ==================================================== PERIERR_E0MSK0 ===================================================== */ + #define R_ICU_PERIERR_E0MSK0_E0_MK0_Pos (0UL) /*!< E0_MK0 (Bit 0) */ + #define R_ICU_PERIERR_E0MSK0_E0_MK0_Msk (0x1UL) /*!< E0_MK0 (Bitfield-Mask: 0x01) */ + #define R_ICU_PERIERR_E0MSK0_E0_MK1_Pos (1UL) /*!< E0_MK1 (Bit 1) */ + #define R_ICU_PERIERR_E0MSK0_E0_MK1_Msk (0x2UL) /*!< E0_MK1 (Bitfield-Mask: 0x01) */ + #define R_ICU_PERIERR_E0MSK0_E0_MK2_Pos (2UL) /*!< E0_MK2 (Bit 2) */ + #define R_ICU_PERIERR_E0MSK0_E0_MK2_Msk (0x4UL) /*!< E0_MK2 (Bitfield-Mask: 0x01) */ + #define R_ICU_PERIERR_E0MSK0_E0_MK3_Pos (3UL) /*!< E0_MK3 (Bit 3) */ + #define R_ICU_PERIERR_E0MSK0_E0_MK3_Msk (0x8UL) /*!< E0_MK3 (Bitfield-Mask: 0x01) */ + #define R_ICU_PERIERR_E0MSK0_E0_MK4_Pos (4UL) /*!< E0_MK4 (Bit 4) */ + #define R_ICU_PERIERR_E0MSK0_E0_MK4_Msk (0x10UL) /*!< E0_MK4 (Bitfield-Mask: 0x01) */ + #define R_ICU_PERIERR_E0MSK0_E0_MK5_Pos (5UL) /*!< E0_MK5 (Bit 5) */ + #define R_ICU_PERIERR_E0MSK0_E0_MK5_Msk (0x20UL) /*!< E0_MK5 (Bitfield-Mask: 0x01) */ + #define R_ICU_PERIERR_E0MSK0_E0_MK6_Pos (6UL) /*!< E0_MK6 (Bit 6) */ + #define R_ICU_PERIERR_E0MSK0_E0_MK6_Msk (0x40UL) /*!< E0_MK6 (Bitfield-Mask: 0x01) */ + #define R_ICU_PERIERR_E0MSK0_E0_MK7_Pos (7UL) /*!< E0_MK7 (Bit 7) */ + #define R_ICU_PERIERR_E0MSK0_E0_MK7_Msk (0x80UL) /*!< E0_MK7 (Bitfield-Mask: 0x01) */ + #define R_ICU_PERIERR_E0MSK0_E0_MK9_Pos (9UL) /*!< E0_MK9 (Bit 9) */ + #define R_ICU_PERIERR_E0MSK0_E0_MK9_Msk (0x200UL) /*!< E0_MK9 (Bitfield-Mask: 0x01) */ + #define R_ICU_PERIERR_E0MSK0_E0_MK10_Pos (10UL) /*!< E0_MK10 (Bit 10) */ + #define R_ICU_PERIERR_E0MSK0_E0_MK10_Msk (0x400UL) /*!< E0_MK10 (Bitfield-Mask: 0x01) */ + #define R_ICU_PERIERR_E0MSK0_E0_MK11_Pos (11UL) /*!< E0_MK11 (Bit 11) */ + #define R_ICU_PERIERR_E0MSK0_E0_MK11_Msk (0x800UL) /*!< E0_MK11 (Bitfield-Mask: 0x01) */ + #define R_ICU_PERIERR_E0MSK0_E0_MK12_Pos (12UL) /*!< E0_MK12 (Bit 12) */ + #define R_ICU_PERIERR_E0MSK0_E0_MK12_Msk (0x1000UL) /*!< E0_MK12 (Bitfield-Mask: 0x01) */ + #define R_ICU_PERIERR_E0MSK0_E0_MK13_Pos (13UL) /*!< E0_MK13 (Bit 13) */ + #define R_ICU_PERIERR_E0MSK0_E0_MK13_Msk (0x2000UL) /*!< E0_MK13 (Bitfield-Mask: 0x01) */ + #define R_ICU_PERIERR_E0MSK0_E0_MK14_Pos (14UL) /*!< E0_MK14 (Bit 14) */ + #define R_ICU_PERIERR_E0MSK0_E0_MK14_Msk (0x4000UL) /*!< E0_MK14 (Bitfield-Mask: 0x01) */ + #define R_ICU_PERIERR_E0MSK0_E0_MK15_Pos (15UL) /*!< E0_MK15 (Bit 15) */ + #define R_ICU_PERIERR_E0MSK0_E0_MK15_Msk (0x8000UL) /*!< E0_MK15 (Bitfield-Mask: 0x01) */ + #define R_ICU_PERIERR_E0MSK0_E0_MK16_Pos (16UL) /*!< E0_MK16 (Bit 16) */ + #define R_ICU_PERIERR_E0MSK0_E0_MK16_Msk (0x10000UL) /*!< E0_MK16 (Bitfield-Mask: 0x01) */ + #define R_ICU_PERIERR_E0MSK0_E0_MK17_Pos (17UL) /*!< E0_MK17 (Bit 17) */ + #define R_ICU_PERIERR_E0MSK0_E0_MK17_Msk (0x20000UL) /*!< E0_MK17 (Bitfield-Mask: 0x01) */ + #define R_ICU_PERIERR_E0MSK0_E0_MK18_Pos (18UL) /*!< E0_MK18 (Bit 18) */ + #define R_ICU_PERIERR_E0MSK0_E0_MK18_Msk (0x40000UL) /*!< E0_MK18 (Bitfield-Mask: 0x01) */ + #define R_ICU_PERIERR_E0MSK0_E0_MK19_Pos (19UL) /*!< E0_MK19 (Bit 19) */ + #define R_ICU_PERIERR_E0MSK0_E0_MK19_Msk (0x80000UL) /*!< E0_MK19 (Bitfield-Mask: 0x01) */ + #define R_ICU_PERIERR_E0MSK0_E0_MK20_Pos (20UL) /*!< E0_MK20 (Bit 20) */ + #define R_ICU_PERIERR_E0MSK0_E0_MK20_Msk (0x100000UL) /*!< E0_MK20 (Bitfield-Mask: 0x01) */ + #define R_ICU_PERIERR_E0MSK0_E0_MK21_Pos (21UL) /*!< E0_MK21 (Bit 21) */ + #define R_ICU_PERIERR_E0MSK0_E0_MK21_Msk (0x200000UL) /*!< E0_MK21 (Bitfield-Mask: 0x01) */ + #define R_ICU_PERIERR_E0MSK0_E0_MK22_Pos (22UL) /*!< E0_MK22 (Bit 22) */ + #define R_ICU_PERIERR_E0MSK0_E0_MK22_Msk (0x400000UL) /*!< E0_MK22 (Bitfield-Mask: 0x01) */ + #define R_ICU_PERIERR_E0MSK0_E0_MK23_Pos (23UL) /*!< E0_MK23 (Bit 23) */ + #define R_ICU_PERIERR_E0MSK0_E0_MK23_Msk (0x800000UL) /*!< E0_MK23 (Bitfield-Mask: 0x01) */ + #define R_ICU_PERIERR_E0MSK0_E0_MK24_Pos (24UL) /*!< E0_MK24 (Bit 24) */ + #define R_ICU_PERIERR_E0MSK0_E0_MK24_Msk (0x1000000UL) /*!< E0_MK24 (Bitfield-Mask: 0x01) */ + #define R_ICU_PERIERR_E0MSK0_E0_MK25_Pos (25UL) /*!< E0_MK25 (Bit 25) */ + #define R_ICU_PERIERR_E0MSK0_E0_MK25_Msk (0x2000000UL) /*!< E0_MK25 (Bitfield-Mask: 0x01) */ + #define R_ICU_PERIERR_E0MSK0_E0_MK26_Pos (26UL) /*!< E0_MK26 (Bit 26) */ + #define R_ICU_PERIERR_E0MSK0_E0_MK26_Msk (0x4000000UL) /*!< E0_MK26 (Bitfield-Mask: 0x01) */ + #define R_ICU_PERIERR_E0MSK0_E0_MK27_Pos (27UL) /*!< E0_MK27 (Bit 27) */ + #define R_ICU_PERIERR_E0MSK0_E0_MK27_Msk (0x8000000UL) /*!< E0_MK27 (Bitfield-Mask: 0x01) */ + #define R_ICU_PERIERR_E0MSK0_E0_MK28_Pos (28UL) /*!< E0_MK28 (Bit 28) */ + #define R_ICU_PERIERR_E0MSK0_E0_MK28_Msk (0x10000000UL) /*!< E0_MK28 (Bitfield-Mask: 0x01) */ + #define R_ICU_PERIERR_E0MSK0_E0_MK29_Pos (29UL) /*!< E0_MK29 (Bit 29) */ + #define R_ICU_PERIERR_E0MSK0_E0_MK29_Msk (0x20000000UL) /*!< E0_MK29 (Bitfield-Mask: 0x01) */ + #define R_ICU_PERIERR_E0MSK0_E0_MK30_Pos (30UL) /*!< E0_MK30 (Bit 30) */ + #define R_ICU_PERIERR_E0MSK0_E0_MK30_Msk (0x40000000UL) /*!< E0_MK30 (Bitfield-Mask: 0x01) */ + #define R_ICU_PERIERR_E0MSK0_E0_MK31_Pos (31UL) /*!< E0_MK31 (Bit 31) */ + #define R_ICU_PERIERR_E0MSK0_E0_MK31_Msk (0x80000000UL) /*!< E0_MK31 (Bitfield-Mask: 0x01) */ +/* ==================================================== PERIERR_E0MSK1 ===================================================== */ + #define R_ICU_PERIERR_E0MSK1_E0_MK0_Pos (0UL) /*!< E0_MK0 (Bit 0) */ + #define R_ICU_PERIERR_E0MSK1_E0_MK0_Msk (0x1UL) /*!< E0_MK0 (Bitfield-Mask: 0x01) */ + #define R_ICU_PERIERR_E0MSK1_E0_MK1_Pos (1UL) /*!< E0_MK1 (Bit 1) */ + #define R_ICU_PERIERR_E0MSK1_E0_MK1_Msk (0x2UL) /*!< E0_MK1 (Bitfield-Mask: 0x01) */ + #define R_ICU_PERIERR_E0MSK1_E0_MK2_Pos (2UL) /*!< E0_MK2 (Bit 2) */ + #define R_ICU_PERIERR_E0MSK1_E0_MK2_Msk (0x4UL) /*!< E0_MK2 (Bitfield-Mask: 0x01) */ + #define R_ICU_PERIERR_E0MSK1_E0_MK3_Pos (3UL) /*!< E0_MK3 (Bit 3) */ + #define R_ICU_PERIERR_E0MSK1_E0_MK3_Msk (0x8UL) /*!< E0_MK3 (Bitfield-Mask: 0x01) */ + #define R_ICU_PERIERR_E0MSK1_E0_MK4_Pos (4UL) /*!< E0_MK4 (Bit 4) */ + #define R_ICU_PERIERR_E0MSK1_E0_MK4_Msk (0x10UL) /*!< E0_MK4 (Bitfield-Mask: 0x01) */ + #define R_ICU_PERIERR_E0MSK1_E0_MK5_Pos (5UL) /*!< E0_MK5 (Bit 5) */ + #define R_ICU_PERIERR_E0MSK1_E0_MK5_Msk (0x20UL) /*!< E0_MK5 (Bitfield-Mask: 0x01) */ + #define R_ICU_PERIERR_E0MSK1_E0_MK6_Pos (6UL) /*!< E0_MK6 (Bit 6) */ + #define R_ICU_PERIERR_E0MSK1_E0_MK6_Msk (0x40UL) /*!< E0_MK6 (Bitfield-Mask: 0x01) */ + #define R_ICU_PERIERR_E0MSK1_E0_MK7_Pos (7UL) /*!< E0_MK7 (Bit 7) */ + #define R_ICU_PERIERR_E0MSK1_E0_MK7_Msk (0x80UL) /*!< E0_MK7 (Bitfield-Mask: 0x01) */ + #define R_ICU_PERIERR_E0MSK1_E0_MK8_Pos (8UL) /*!< E0_MK8 (Bit 8) */ + #define R_ICU_PERIERR_E0MSK1_E0_MK8_Msk (0x100UL) /*!< E0_MK8 (Bitfield-Mask: 0x01) */ + #define R_ICU_PERIERR_E0MSK1_E0_MK9_Pos (9UL) /*!< E0_MK9 (Bit 9) */ + #define R_ICU_PERIERR_E0MSK1_E0_MK9_Msk (0x200UL) /*!< E0_MK9 (Bitfield-Mask: 0x01) */ + #define R_ICU_PERIERR_E0MSK1_E0_MK13_Pos (13UL) /*!< E0_MK13 (Bit 13) */ + #define R_ICU_PERIERR_E0MSK1_E0_MK13_Msk (0x2000UL) /*!< E0_MK13 (Bitfield-Mask: 0x01) */ + #define R_ICU_PERIERR_E0MSK1_E0_MK15_Pos (15UL) /*!< E0_MK15 (Bit 15) */ + #define R_ICU_PERIERR_E0MSK1_E0_MK15_Msk (0x8000UL) /*!< E0_MK15 (Bitfield-Mask: 0x01) */ + #define R_ICU_PERIERR_E0MSK1_E0_MK16_Pos (16UL) /*!< E0_MK16 (Bit 16) */ + #define R_ICU_PERIERR_E0MSK1_E0_MK16_Msk (0x10000UL) /*!< E0_MK16 (Bitfield-Mask: 0x01) */ + #define R_ICU_PERIERR_E0MSK1_E0_MK17_Pos (17UL) /*!< E0_MK17 (Bit 17) */ + #define R_ICU_PERIERR_E0MSK1_E0_MK17_Msk (0x20000UL) /*!< E0_MK17 (Bitfield-Mask: 0x01) */ + #define R_ICU_PERIERR_E0MSK1_E0_MK18_Pos (18UL) /*!< E0_MK18 (Bit 18) */ + #define R_ICU_PERIERR_E0MSK1_E0_MK18_Msk (0x40000UL) /*!< E0_MK18 (Bitfield-Mask: 0x01) */ + #define R_ICU_PERIERR_E0MSK1_E0_MK19_Pos (19UL) /*!< E0_MK19 (Bit 19) */ + #define R_ICU_PERIERR_E0MSK1_E0_MK19_Msk (0x80000UL) /*!< E0_MK19 (Bitfield-Mask: 0x01) */ + #define R_ICU_PERIERR_E0MSK1_E0_MK20_Pos (20UL) /*!< E0_MK20 (Bit 20) */ + #define R_ICU_PERIERR_E0MSK1_E0_MK20_Msk (0x100000UL) /*!< E0_MK20 (Bitfield-Mask: 0x01) */ + #define R_ICU_PERIERR_E0MSK1_E0_MK21_Pos (21UL) /*!< E0_MK21 (Bit 21) */ + #define R_ICU_PERIERR_E0MSK1_E0_MK21_Msk (0x200000UL) /*!< E0_MK21 (Bitfield-Mask: 0x01) */ + #define R_ICU_PERIERR_E0MSK1_E0_MK22_Pos (22UL) /*!< E0_MK22 (Bit 22) */ + #define R_ICU_PERIERR_E0MSK1_E0_MK22_Msk (0x400000UL) /*!< E0_MK22 (Bitfield-Mask: 0x01) */ + #define R_ICU_PERIERR_E0MSK1_E0_MK23_Pos (23UL) /*!< E0_MK23 (Bit 23) */ + #define R_ICU_PERIERR_E0MSK1_E0_MK23_Msk (0x800000UL) /*!< E0_MK23 (Bitfield-Mask: 0x01) */ + #define R_ICU_PERIERR_E0MSK1_E0_MK24_Pos (24UL) /*!< E0_MK24 (Bit 24) */ + #define R_ICU_PERIERR_E0MSK1_E0_MK24_Msk (0x1000000UL) /*!< E0_MK24 (Bitfield-Mask: 0x01) */ + #define R_ICU_PERIERR_E0MSK1_E0_MK27_Pos (27UL) /*!< E0_MK27 (Bit 27) */ + #define R_ICU_PERIERR_E0MSK1_E0_MK27_Msk (0x8000000UL) /*!< E0_MK27 (Bitfield-Mask: 0x01) */ + #define R_ICU_PERIERR_E0MSK1_E0_MK28_Pos (28UL) /*!< E0_MK28 (Bit 28) */ + #define R_ICU_PERIERR_E0MSK1_E0_MK28_Msk (0x10000000UL) /*!< E0_MK28 (Bitfield-Mask: 0x01) */ +/* ===================================================== CPU0ERR_E1MSK ===================================================== */ + #define R_ICU_CPU0ERR_E1MSK_E1_MK0_Pos (0UL) /*!< E1_MK0 (Bit 0) */ + #define R_ICU_CPU0ERR_E1MSK_E1_MK0_Msk (0x1UL) /*!< E1_MK0 (Bitfield-Mask: 0x01) */ + #define R_ICU_CPU0ERR_E1MSK_E1_MK1_Pos (1UL) /*!< E1_MK1 (Bit 1) */ + #define R_ICU_CPU0ERR_E1MSK_E1_MK1_Msk (0x2UL) /*!< E1_MK1 (Bitfield-Mask: 0x01) */ + #define R_ICU_CPU0ERR_E1MSK_E1_MK2_Pos (2UL) /*!< E1_MK2 (Bit 2) */ + #define R_ICU_CPU0ERR_E1MSK_E1_MK2_Msk (0x4UL) /*!< E1_MK2 (Bitfield-Mask: 0x01) */ + #define R_ICU_CPU0ERR_E1MSK_E1_MK3_Pos (3UL) /*!< E1_MK3 (Bit 3) */ + #define R_ICU_CPU0ERR_E1MSK_E1_MK3_Msk (0x8UL) /*!< E1_MK3 (Bitfield-Mask: 0x01) */ + #define R_ICU_CPU0ERR_E1MSK_E1_MK4_Pos (4UL) /*!< E1_MK4 (Bit 4) */ + #define R_ICU_CPU0ERR_E1MSK_E1_MK4_Msk (0x10UL) /*!< E1_MK4 (Bitfield-Mask: 0x01) */ + #define R_ICU_CPU0ERR_E1MSK_E1_MK5_Pos (5UL) /*!< E1_MK5 (Bit 5) */ + #define R_ICU_CPU0ERR_E1MSK_E1_MK5_Msk (0x20UL) /*!< E1_MK5 (Bitfield-Mask: 0x01) */ + #define R_ICU_CPU0ERR_E1MSK_E1_MK6_Pos (6UL) /*!< E1_MK6 (Bit 6) */ + #define R_ICU_CPU0ERR_E1MSK_E1_MK6_Msk (0x40UL) /*!< E1_MK6 (Bitfield-Mask: 0x01) */ + #define R_ICU_CPU0ERR_E1MSK_E1_MK7_Pos (7UL) /*!< E1_MK7 (Bit 7) */ + #define R_ICU_CPU0ERR_E1MSK_E1_MK7_Msk (0x80UL) /*!< E1_MK7 (Bitfield-Mask: 0x01) */ + #define R_ICU_CPU0ERR_E1MSK_E1_MK8_Pos (8UL) /*!< E1_MK8 (Bit 8) */ + #define R_ICU_CPU0ERR_E1MSK_E1_MK8_Msk (0x100UL) /*!< E1_MK8 (Bitfield-Mask: 0x01) */ + #define R_ICU_CPU0ERR_E1MSK_E1_MK9_Pos (9UL) /*!< E1_MK9 (Bit 9) */ + #define R_ICU_CPU0ERR_E1MSK_E1_MK9_Msk (0x200UL) /*!< E1_MK9 (Bitfield-Mask: 0x01) */ + #define R_ICU_CPU0ERR_E1MSK_E1_MK10_Pos (10UL) /*!< E1_MK10 (Bit 10) */ + #define R_ICU_CPU0ERR_E1MSK_E1_MK10_Msk (0x400UL) /*!< E1_MK10 (Bitfield-Mask: 0x01) */ + #define R_ICU_CPU0ERR_E1MSK_E1_MK11_Pos (11UL) /*!< E1_MK11 (Bit 11) */ + #define R_ICU_CPU0ERR_E1MSK_E1_MK11_Msk (0x800UL) /*!< E1_MK11 (Bitfield-Mask: 0x01) */ + #define R_ICU_CPU0ERR_E1MSK_E1_MK12_Pos (12UL) /*!< E1_MK12 (Bit 12) */ + #define R_ICU_CPU0ERR_E1MSK_E1_MK12_Msk (0x1000UL) /*!< E1_MK12 (Bitfield-Mask: 0x01) */ + #define R_ICU_CPU0ERR_E1MSK_E1_MK13_Pos (13UL) /*!< E1_MK13 (Bit 13) */ + #define R_ICU_CPU0ERR_E1MSK_E1_MK13_Msk (0x2000UL) /*!< E1_MK13 (Bitfield-Mask: 0x01) */ + #define R_ICU_CPU0ERR_E1MSK_E1_MK14_Pos (14UL) /*!< E1_MK14 (Bit 14) */ + #define R_ICU_CPU0ERR_E1MSK_E1_MK14_Msk (0x4000UL) /*!< E1_MK14 (Bitfield-Mask: 0x01) */ + #define R_ICU_CPU0ERR_E1MSK_E1_MK15_Pos (15UL) /*!< E1_MK15 (Bit 15) */ + #define R_ICU_CPU0ERR_E1MSK_E1_MK15_Msk (0x8000UL) /*!< E1_MK15 (Bitfield-Mask: 0x01) */ + #define R_ICU_CPU0ERR_E1MSK_E1_MK16_Pos (16UL) /*!< E1_MK16 (Bit 16) */ + #define R_ICU_CPU0ERR_E1MSK_E1_MK16_Msk (0x10000UL) /*!< E1_MK16 (Bitfield-Mask: 0x01) */ + #define R_ICU_CPU0ERR_E1MSK_E1_MK17_Pos (17UL) /*!< E1_MK17 (Bit 17) */ + #define R_ICU_CPU0ERR_E1MSK_E1_MK17_Msk (0x20000UL) /*!< E1_MK17 (Bitfield-Mask: 0x01) */ + #define R_ICU_CPU0ERR_E1MSK_E1_MK18_Pos (18UL) /*!< E1_MK18 (Bit 18) */ + #define R_ICU_CPU0ERR_E1MSK_E1_MK18_Msk (0x40000UL) /*!< E1_MK18 (Bitfield-Mask: 0x01) */ + #define R_ICU_CPU0ERR_E1MSK_E1_MK19_Pos (19UL) /*!< E1_MK19 (Bit 19) */ + #define R_ICU_CPU0ERR_E1MSK_E1_MK19_Msk (0x80000UL) /*!< E1_MK19 (Bitfield-Mask: 0x01) */ + #define R_ICU_CPU0ERR_E1MSK_E1_MK20_Pos (20UL) /*!< E1_MK20 (Bit 20) */ + #define R_ICU_CPU0ERR_E1MSK_E1_MK20_Msk (0x100000UL) /*!< E1_MK20 (Bitfield-Mask: 0x01) */ + #define R_ICU_CPU0ERR_E1MSK_E1_MK21_Pos (21UL) /*!< E1_MK21 (Bit 21) */ + #define R_ICU_CPU0ERR_E1MSK_E1_MK21_Msk (0x200000UL) /*!< E1_MK21 (Bitfield-Mask: 0x01) */ + #define R_ICU_CPU0ERR_E1MSK_E1_MK22_Pos (22UL) /*!< E1_MK22 (Bit 22) */ + #define R_ICU_CPU0ERR_E1MSK_E1_MK22_Msk (0x400000UL) /*!< E1_MK22 (Bitfield-Mask: 0x01) */ + #define R_ICU_CPU0ERR_E1MSK_E1_MK23_Pos (23UL) /*!< E1_MK23 (Bit 23) */ + #define R_ICU_CPU0ERR_E1MSK_E1_MK23_Msk (0x800000UL) /*!< E1_MK23 (Bitfield-Mask: 0x01) */ + #define R_ICU_CPU0ERR_E1MSK_E1_MK24_Pos (24UL) /*!< E1_MK24 (Bit 24) */ + #define R_ICU_CPU0ERR_E1MSK_E1_MK24_Msk (0x1000000UL) /*!< E1_MK24 (Bitfield-Mask: 0x01) */ + #define R_ICU_CPU0ERR_E1MSK_E1_MK25_Pos (25UL) /*!< E1_MK25 (Bit 25) */ + #define R_ICU_CPU0ERR_E1MSK_E1_MK25_Msk (0x2000000UL) /*!< E1_MK25 (Bitfield-Mask: 0x01) */ +/* ==================================================== PERIERR_E1MSK0 ===================================================== */ + #define R_ICU_PERIERR_E1MSK0_E1_MK0_Pos (0UL) /*!< E1_MK0 (Bit 0) */ + #define R_ICU_PERIERR_E1MSK0_E1_MK0_Msk (0x1UL) /*!< E1_MK0 (Bitfield-Mask: 0x01) */ + #define R_ICU_PERIERR_E1MSK0_E1_MK1_Pos (1UL) /*!< E1_MK1 (Bit 1) */ + #define R_ICU_PERIERR_E1MSK0_E1_MK1_Msk (0x2UL) /*!< E1_MK1 (Bitfield-Mask: 0x01) */ + #define R_ICU_PERIERR_E1MSK0_E1_MK2_Pos (2UL) /*!< E1_MK2 (Bit 2) */ + #define R_ICU_PERIERR_E1MSK0_E1_MK2_Msk (0x4UL) /*!< E1_MK2 (Bitfield-Mask: 0x01) */ + #define R_ICU_PERIERR_E1MSK0_E1_MK3_Pos (3UL) /*!< E1_MK3 (Bit 3) */ + #define R_ICU_PERIERR_E1MSK0_E1_MK3_Msk (0x8UL) /*!< E1_MK3 (Bitfield-Mask: 0x01) */ + #define R_ICU_PERIERR_E1MSK0_E1_MK4_Pos (4UL) /*!< E1_MK4 (Bit 4) */ + #define R_ICU_PERIERR_E1MSK0_E1_MK4_Msk (0x10UL) /*!< E1_MK4 (Bitfield-Mask: 0x01) */ + #define R_ICU_PERIERR_E1MSK0_E1_MK5_Pos (5UL) /*!< E1_MK5 (Bit 5) */ + #define R_ICU_PERIERR_E1MSK0_E1_MK5_Msk (0x20UL) /*!< E1_MK5 (Bitfield-Mask: 0x01) */ + #define R_ICU_PERIERR_E1MSK0_E1_MK6_Pos (6UL) /*!< E1_MK6 (Bit 6) */ + #define R_ICU_PERIERR_E1MSK0_E1_MK6_Msk (0x40UL) /*!< E1_MK6 (Bitfield-Mask: 0x01) */ + #define R_ICU_PERIERR_E1MSK0_E1_MK7_Pos (7UL) /*!< E1_MK7 (Bit 7) */ + #define R_ICU_PERIERR_E1MSK0_E1_MK7_Msk (0x80UL) /*!< E1_MK7 (Bitfield-Mask: 0x01) */ + #define R_ICU_PERIERR_E1MSK0_E1_MK9_Pos (9UL) /*!< E1_MK9 (Bit 9) */ + #define R_ICU_PERIERR_E1MSK0_E1_MK9_Msk (0x200UL) /*!< E1_MK9 (Bitfield-Mask: 0x01) */ + #define R_ICU_PERIERR_E1MSK0_E1_MK10_Pos (10UL) /*!< E1_MK10 (Bit 10) */ + #define R_ICU_PERIERR_E1MSK0_E1_MK10_Msk (0x400UL) /*!< E1_MK10 (Bitfield-Mask: 0x01) */ + #define R_ICU_PERIERR_E1MSK0_E1_MK11_Pos (11UL) /*!< E1_MK11 (Bit 11) */ + #define R_ICU_PERIERR_E1MSK0_E1_MK11_Msk (0x800UL) /*!< E1_MK11 (Bitfield-Mask: 0x01) */ + #define R_ICU_PERIERR_E1MSK0_E1_MK12_Pos (12UL) /*!< E1_MK12 (Bit 12) */ + #define R_ICU_PERIERR_E1MSK0_E1_MK12_Msk (0x1000UL) /*!< E1_MK12 (Bitfield-Mask: 0x01) */ + #define R_ICU_PERIERR_E1MSK0_E1_MK13_Pos (13UL) /*!< E1_MK13 (Bit 13) */ + #define R_ICU_PERIERR_E1MSK0_E1_MK13_Msk (0x2000UL) /*!< E1_MK13 (Bitfield-Mask: 0x01) */ + #define R_ICU_PERIERR_E1MSK0_E1_MK14_Pos (14UL) /*!< E1_MK14 (Bit 14) */ + #define R_ICU_PERIERR_E1MSK0_E1_MK14_Msk (0x4000UL) /*!< E1_MK14 (Bitfield-Mask: 0x01) */ + #define R_ICU_PERIERR_E1MSK0_E1_MK15_Pos (15UL) /*!< E1_MK15 (Bit 15) */ + #define R_ICU_PERIERR_E1MSK0_E1_MK15_Msk (0x8000UL) /*!< E1_MK15 (Bitfield-Mask: 0x01) */ + #define R_ICU_PERIERR_E1MSK0_E1_MK16_Pos (16UL) /*!< E1_MK16 (Bit 16) */ + #define R_ICU_PERIERR_E1MSK0_E1_MK16_Msk (0x10000UL) /*!< E1_MK16 (Bitfield-Mask: 0x01) */ + #define R_ICU_PERIERR_E1MSK0_E1_MK17_Pos (17UL) /*!< E1_MK17 (Bit 17) */ + #define R_ICU_PERIERR_E1MSK0_E1_MK17_Msk (0x20000UL) /*!< E1_MK17 (Bitfield-Mask: 0x01) */ + #define R_ICU_PERIERR_E1MSK0_E1_MK18_Pos (18UL) /*!< E1_MK18 (Bit 18) */ + #define R_ICU_PERIERR_E1MSK0_E1_MK18_Msk (0x40000UL) /*!< E1_MK18 (Bitfield-Mask: 0x01) */ + #define R_ICU_PERIERR_E1MSK0_E1_MK19_Pos (19UL) /*!< E1_MK19 (Bit 19) */ + #define R_ICU_PERIERR_E1MSK0_E1_MK19_Msk (0x80000UL) /*!< E1_MK19 (Bitfield-Mask: 0x01) */ + #define R_ICU_PERIERR_E1MSK0_E1_MK20_Pos (20UL) /*!< E1_MK20 (Bit 20) */ + #define R_ICU_PERIERR_E1MSK0_E1_MK20_Msk (0x100000UL) /*!< E1_MK20 (Bitfield-Mask: 0x01) */ + #define R_ICU_PERIERR_E1MSK0_E1_MK21_Pos (21UL) /*!< E1_MK21 (Bit 21) */ + #define R_ICU_PERIERR_E1MSK0_E1_MK21_Msk (0x200000UL) /*!< E1_MK21 (Bitfield-Mask: 0x01) */ + #define R_ICU_PERIERR_E1MSK0_E1_MK22_Pos (22UL) /*!< E1_MK22 (Bit 22) */ + #define R_ICU_PERIERR_E1MSK0_E1_MK22_Msk (0x400000UL) /*!< E1_MK22 (Bitfield-Mask: 0x01) */ + #define R_ICU_PERIERR_E1MSK0_E1_MK23_Pos (23UL) /*!< E1_MK23 (Bit 23) */ + #define R_ICU_PERIERR_E1MSK0_E1_MK23_Msk (0x800000UL) /*!< E1_MK23 (Bitfield-Mask: 0x01) */ + #define R_ICU_PERIERR_E1MSK0_E1_MK24_Pos (24UL) /*!< E1_MK24 (Bit 24) */ + #define R_ICU_PERIERR_E1MSK0_E1_MK24_Msk (0x1000000UL) /*!< E1_MK24 (Bitfield-Mask: 0x01) */ + #define R_ICU_PERIERR_E1MSK0_E1_MK25_Pos (25UL) /*!< E1_MK25 (Bit 25) */ + #define R_ICU_PERIERR_E1MSK0_E1_MK25_Msk (0x2000000UL) /*!< E1_MK25 (Bitfield-Mask: 0x01) */ + #define R_ICU_PERIERR_E1MSK0_E1_MK26_Pos (26UL) /*!< E1_MK26 (Bit 26) */ + #define R_ICU_PERIERR_E1MSK0_E1_MK26_Msk (0x4000000UL) /*!< E1_MK26 (Bitfield-Mask: 0x01) */ + #define R_ICU_PERIERR_E1MSK0_E1_MK27_Pos (27UL) /*!< E1_MK27 (Bit 27) */ + #define R_ICU_PERIERR_E1MSK0_E1_MK27_Msk (0x8000000UL) /*!< E1_MK27 (Bitfield-Mask: 0x01) */ + #define R_ICU_PERIERR_E1MSK0_E1_MK28_Pos (28UL) /*!< E1_MK28 (Bit 28) */ + #define R_ICU_PERIERR_E1MSK0_E1_MK28_Msk (0x10000000UL) /*!< E1_MK28 (Bitfield-Mask: 0x01) */ + #define R_ICU_PERIERR_E1MSK0_E1_MK29_Pos (29UL) /*!< E1_MK29 (Bit 29) */ + #define R_ICU_PERIERR_E1MSK0_E1_MK29_Msk (0x20000000UL) /*!< E1_MK29 (Bitfield-Mask: 0x01) */ + #define R_ICU_PERIERR_E1MSK0_E1_MK30_Pos (30UL) /*!< E1_MK30 (Bit 30) */ + #define R_ICU_PERIERR_E1MSK0_E1_MK30_Msk (0x40000000UL) /*!< E1_MK30 (Bitfield-Mask: 0x01) */ + #define R_ICU_PERIERR_E1MSK0_E1_MK31_Pos (31UL) /*!< E1_MK31 (Bit 31) */ + #define R_ICU_PERIERR_E1MSK0_E1_MK31_Msk (0x80000000UL) /*!< E1_MK31 (Bitfield-Mask: 0x01) */ +/* ==================================================== PERIERR_E1MSK1 ===================================================== */ + #define R_ICU_PERIERR_E1MSK1_E1_MK0_Pos (0UL) /*!< E1_MK0 (Bit 0) */ + #define R_ICU_PERIERR_E1MSK1_E1_MK0_Msk (0x1UL) /*!< E1_MK0 (Bitfield-Mask: 0x01) */ + #define R_ICU_PERIERR_E1MSK1_E1_MK1_Pos (1UL) /*!< E1_MK1 (Bit 1) */ + #define R_ICU_PERIERR_E1MSK1_E1_MK1_Msk (0x2UL) /*!< E1_MK1 (Bitfield-Mask: 0x01) */ + #define R_ICU_PERIERR_E1MSK1_E1_MK2_Pos (2UL) /*!< E1_MK2 (Bit 2) */ + #define R_ICU_PERIERR_E1MSK1_E1_MK2_Msk (0x4UL) /*!< E1_MK2 (Bitfield-Mask: 0x01) */ + #define R_ICU_PERIERR_E1MSK1_E1_MK3_Pos (3UL) /*!< E1_MK3 (Bit 3) */ + #define R_ICU_PERIERR_E1MSK1_E1_MK3_Msk (0x8UL) /*!< E1_MK3 (Bitfield-Mask: 0x01) */ + #define R_ICU_PERIERR_E1MSK1_E1_MK4_Pos (4UL) /*!< E1_MK4 (Bit 4) */ + #define R_ICU_PERIERR_E1MSK1_E1_MK4_Msk (0x10UL) /*!< E1_MK4 (Bitfield-Mask: 0x01) */ + #define R_ICU_PERIERR_E1MSK1_E1_MK5_Pos (5UL) /*!< E1_MK5 (Bit 5) */ + #define R_ICU_PERIERR_E1MSK1_E1_MK5_Msk (0x20UL) /*!< E1_MK5 (Bitfield-Mask: 0x01) */ + #define R_ICU_PERIERR_E1MSK1_E1_MK6_Pos (6UL) /*!< E1_MK6 (Bit 6) */ + #define R_ICU_PERIERR_E1MSK1_E1_MK6_Msk (0x40UL) /*!< E1_MK6 (Bitfield-Mask: 0x01) */ + #define R_ICU_PERIERR_E1MSK1_E1_MK7_Pos (7UL) /*!< E1_MK7 (Bit 7) */ + #define R_ICU_PERIERR_E1MSK1_E1_MK7_Msk (0x80UL) /*!< E1_MK7 (Bitfield-Mask: 0x01) */ + #define R_ICU_PERIERR_E1MSK1_E1_MK8_Pos (8UL) /*!< E1_MK8 (Bit 8) */ + #define R_ICU_PERIERR_E1MSK1_E1_MK8_Msk (0x100UL) /*!< E1_MK8 (Bitfield-Mask: 0x01) */ + #define R_ICU_PERIERR_E1MSK1_E1_MK9_Pos (9UL) /*!< E1_MK9 (Bit 9) */ + #define R_ICU_PERIERR_E1MSK1_E1_MK9_Msk (0x200UL) /*!< E1_MK9 (Bitfield-Mask: 0x01) */ + #define R_ICU_PERIERR_E1MSK1_E1_MK13_Pos (13UL) /*!< E1_MK13 (Bit 13) */ + #define R_ICU_PERIERR_E1MSK1_E1_MK13_Msk (0x2000UL) /*!< E1_MK13 (Bitfield-Mask: 0x01) */ + #define R_ICU_PERIERR_E1MSK1_E1_MK15_Pos (15UL) /*!< E1_MK15 (Bit 15) */ + #define R_ICU_PERIERR_E1MSK1_E1_MK15_Msk (0x8000UL) /*!< E1_MK15 (Bitfield-Mask: 0x01) */ + #define R_ICU_PERIERR_E1MSK1_E1_MK16_Pos (16UL) /*!< E1_MK16 (Bit 16) */ + #define R_ICU_PERIERR_E1MSK1_E1_MK16_Msk (0x10000UL) /*!< E1_MK16 (Bitfield-Mask: 0x01) */ + #define R_ICU_PERIERR_E1MSK1_E1_MK17_Pos (17UL) /*!< E1_MK17 (Bit 17) */ + #define R_ICU_PERIERR_E1MSK1_E1_MK17_Msk (0x20000UL) /*!< E1_MK17 (Bitfield-Mask: 0x01) */ + #define R_ICU_PERIERR_E1MSK1_E1_MK18_Pos (18UL) /*!< E1_MK18 (Bit 18) */ + #define R_ICU_PERIERR_E1MSK1_E1_MK18_Msk (0x40000UL) /*!< E1_MK18 (Bitfield-Mask: 0x01) */ + #define R_ICU_PERIERR_E1MSK1_E1_MK19_Pos (19UL) /*!< E1_MK19 (Bit 19) */ + #define R_ICU_PERIERR_E1MSK1_E1_MK19_Msk (0x80000UL) /*!< E1_MK19 (Bitfield-Mask: 0x01) */ + #define R_ICU_PERIERR_E1MSK1_E1_MK20_Pos (20UL) /*!< E1_MK20 (Bit 20) */ + #define R_ICU_PERIERR_E1MSK1_E1_MK20_Msk (0x100000UL) /*!< E1_MK20 (Bitfield-Mask: 0x01) */ + #define R_ICU_PERIERR_E1MSK1_E1_MK21_Pos (21UL) /*!< E1_MK21 (Bit 21) */ + #define R_ICU_PERIERR_E1MSK1_E1_MK21_Msk (0x200000UL) /*!< E1_MK21 (Bitfield-Mask: 0x01) */ + #define R_ICU_PERIERR_E1MSK1_E1_MK22_Pos (22UL) /*!< E1_MK22 (Bit 22) */ + #define R_ICU_PERIERR_E1MSK1_E1_MK22_Msk (0x400000UL) /*!< E1_MK22 (Bitfield-Mask: 0x01) */ + #define R_ICU_PERIERR_E1MSK1_E1_MK23_Pos (23UL) /*!< E1_MK23 (Bit 23) */ + #define R_ICU_PERIERR_E1MSK1_E1_MK23_Msk (0x800000UL) /*!< E1_MK23 (Bitfield-Mask: 0x01) */ + #define R_ICU_PERIERR_E1MSK1_E1_MK24_Pos (24UL) /*!< E1_MK24 (Bit 24) */ + #define R_ICU_PERIERR_E1MSK1_E1_MK24_Msk (0x1000000UL) /*!< E1_MK24 (Bitfield-Mask: 0x01) */ + #define R_ICU_PERIERR_E1MSK1_E1_MK27_Pos (27UL) /*!< E1_MK27 (Bit 27) */ + #define R_ICU_PERIERR_E1MSK1_E1_MK27_Msk (0x8000000UL) /*!< E1_MK27 (Bitfield-Mask: 0x01) */ + #define R_ICU_PERIERR_E1MSK1_E1_MK28_Pos (28UL) /*!< E1_MK28 (Bit 28) */ + #define R_ICU_PERIERR_E1MSK1_E1_MK28_Msk (0x10000000UL) /*!< E1_MK28 (Bitfield-Mask: 0x01) */ + +/* =========================================================================================================================== */ +/* ================ R_SYSC_S ================ */ +/* =========================================================================================================================== */ + +/* ======================================================== SCKCR2 ========================================================= */ + #define R_SYSC_S_SCKCR2_FSELCPU0_Pos (0UL) /*!< FSELCPU0 (Bit 0) */ + #define R_SYSC_S_SCKCR2_FSELCPU0_Msk (0x1UL) /*!< FSELCPU0 (Bitfield-Mask: 0x01) */ + #define R_SYSC_S_SCKCR2_DIVSELSUB_Pos (5UL) /*!< DIVSELSUB (Bit 5) */ + #define R_SYSC_S_SCKCR2_DIVSELSUB_Msk (0x20UL) /*!< DIVSELSUB (Bitfield-Mask: 0x01) */ + #define R_SYSC_S_SCKCR2_SPI3ASYNCSEL_Pos (24UL) /*!< SPI3ASYNCSEL (Bit 24) */ + #define R_SYSC_S_SCKCR2_SPI3ASYNCSEL_Msk (0x1000000UL) /*!< SPI3ASYNCSEL (Bitfield-Mask: 0x01) */ + #define R_SYSC_S_SCKCR2_SCI5ASYNCSEL_Pos (25UL) /*!< SCI5ASYNCSEL (Bit 25) */ + #define R_SYSC_S_SCKCR2_SCI5ASYNCSEL_Msk (0x2000000UL) /*!< SCI5ASYNCSEL (Bitfield-Mask: 0x01) */ +/* ======================================================== PLL0MON ======================================================== */ + #define R_SYSC_S_PLL0MON_PLL0MON_Pos (0UL) /*!< PLL0MON (Bit 0) */ + #define R_SYSC_S_PLL0MON_PLL0MON_Msk (0x1UL) /*!< PLL0MON (Bitfield-Mask: 0x01) */ +/* ======================================================== PLL1MON ======================================================== */ + #define R_SYSC_S_PLL1MON_PLL1MON_Pos (0UL) /*!< PLL1MON (Bit 0) */ + #define R_SYSC_S_PLL1MON_PLL1MON_Msk (0x1UL) /*!< PLL1MON (Bitfield-Mask: 0x01) */ +/* ======================================================== PLL1EN ========================================================= */ + #define R_SYSC_S_PLL1EN_PLL1EN_Pos (0UL) /*!< PLL1EN (Bit 0) */ + #define R_SYSC_S_PLL1EN_PLL1EN_Msk (0x1UL) /*!< PLL1EN (Bitfield-Mask: 0x01) */ +/* ======================================================== LOCOCR ========================================================= */ + #define R_SYSC_S_LOCOCR_LCSTP_Pos (0UL) /*!< LCSTP (Bit 0) */ + #define R_SYSC_S_LOCOCR_LCSTP_Msk (0x1UL) /*!< LCSTP (Bitfield-Mask: 0x01) */ +/* ======================================================= HIZCTRLEN ======================================================= */ + #define R_SYSC_S_HIZCTRLEN_CLMA3MASK_Pos (0UL) /*!< CLMA3MASK (Bit 0) */ + #define R_SYSC_S_HIZCTRLEN_CLMA3MASK_Msk (0x1UL) /*!< CLMA3MASK (Bitfield-Mask: 0x01) */ + #define R_SYSC_S_HIZCTRLEN_CLMA0MASK_Pos (1UL) /*!< CLMA0MASK (Bit 1) */ + #define R_SYSC_S_HIZCTRLEN_CLMA0MASK_Msk (0x2UL) /*!< CLMA0MASK (Bitfield-Mask: 0x01) */ + #define R_SYSC_S_HIZCTRLEN_CLMA1MASK_Pos (2UL) /*!< CLMA1MASK (Bit 2) */ + #define R_SYSC_S_HIZCTRLEN_CLMA1MASK_Msk (0x4UL) /*!< CLMA1MASK (Bitfield-Mask: 0x01) */ +/* ======================================================== SWRSYS ========================================================= */ + #define R_SYSC_S_SWRSYS_SWR_Pos (0UL) /*!< SWR (Bit 0) */ + #define R_SYSC_S_SWRSYS_SWR_Msk (0xffffffffUL) /*!< SWR (Bitfield-Mask: 0xffffffff) */ +/* ======================================================== SWRCPU0 ======================================================== */ + #define R_SYSC_S_SWRCPU0_SWR_Pos (0UL) /*!< SWR (Bit 0) */ + #define R_SYSC_S_SWRCPU0_SWR_Msk (0xffffffffUL) /*!< SWR (Bitfield-Mask: 0xffffffff) */ +/* ======================================================== MRCTLI ========================================================= */ + #define R_SYSC_S_MRCTLI_MRCTLI00_Pos (0UL) /*!< MRCTLI00 (Bit 0) */ + #define R_SYSC_S_MRCTLI_MRCTLI00_Msk (0x1UL) /*!< MRCTLI00 (Bitfield-Mask: 0x01) */ + #define R_SYSC_S_MRCTLI_MRCTLI01_Pos (1UL) /*!< MRCTLI01 (Bit 1) */ + #define R_SYSC_S_MRCTLI_MRCTLI01_Msk (0x2UL) /*!< MRCTLI01 (Bitfield-Mask: 0x01) */ + #define R_SYSC_S_MRCTLI_MRCTLI02_Pos (2UL) /*!< MRCTLI02 (Bit 2) */ + #define R_SYSC_S_MRCTLI_MRCTLI02_Msk (0x4UL) /*!< MRCTLI02 (Bitfield-Mask: 0x01) */ + #define R_SYSC_S_MRCTLI_MRCTLI03_Pos (3UL) /*!< MRCTLI03 (Bit 3) */ + #define R_SYSC_S_MRCTLI_MRCTLI03_Msk (0x8UL) /*!< MRCTLI03 (Bitfield-Mask: 0x01) */ +/* ======================================================== MSTPCRF ======================================================== */ + #define R_SYSC_S_MSTPCRF_MSTPCRF00_Pos (0UL) /*!< MSTPCRF00 (Bit 0) */ + #define R_SYSC_S_MSTPCRF_MSTPCRF00_Msk (0x1UL) /*!< MSTPCRF00 (Bitfield-Mask: 0x01) */ +/* ======================================================== MSTPCRG ======================================================== */ + #define R_SYSC_S_MSTPCRG_MSTPCRG00_Pos (0UL) /*!< MSTPCRG00 (Bit 0) */ + #define R_SYSC_S_MSTPCRG_MSTPCRG00_Msk (0x1UL) /*!< MSTPCRG00 (Bitfield-Mask: 0x01) */ + #define R_SYSC_S_MSTPCRG_MSTPCRG01_Pos (1UL) /*!< MSTPCRG01 (Bit 1) */ + #define R_SYSC_S_MSTPCRG_MSTPCRG01_Msk (0x2UL) /*!< MSTPCRG01 (Bitfield-Mask: 0x01) */ + #define R_SYSC_S_MSTPCRG_MSTPCRG02_Pos (2UL) /*!< MSTPCRG02 (Bit 2) */ + #define R_SYSC_S_MSTPCRG_MSTPCRG02_Msk (0x4UL) /*!< MSTPCRG02 (Bitfield-Mask: 0x01) */ + #define R_SYSC_S_MSTPCRG_MSTPCRG03_Pos (3UL) /*!< MSTPCRG03 (Bit 3) */ + #define R_SYSC_S_MSTPCRG_MSTPCRG03_Msk (0x8UL) /*!< MSTPCRG03 (Bitfield-Mask: 0x01) */ + #define R_SYSC_S_MSTPCRG_MSTPCRG04_Pos (4UL) /*!< MSTPCRG04 (Bit 4) */ + #define R_SYSC_S_MSTPCRG_MSTPCRG04_Msk (0x10UL) /*!< MSTPCRG04 (Bitfield-Mask: 0x01) */ + #define R_SYSC_S_MSTPCRG_MSTPCRG05_Pos (5UL) /*!< MSTPCRG05 (Bit 5) */ + #define R_SYSC_S_MSTPCRG_MSTPCRG05_Msk (0x20UL) /*!< MSTPCRG05 (Bitfield-Mask: 0x01) */ + #define R_SYSC_S_MSTPCRG_MSTPCRG08_Pos (8UL) /*!< MSTPCRG08 (Bit 8) */ + #define R_SYSC_S_MSTPCRG_MSTPCRG08_Msk (0x100UL) /*!< MSTPCRG08 (Bitfield-Mask: 0x01) */ + #define R_SYSC_S_MSTPCRG_MSTPCRG09_Pos (9UL) /*!< MSTPCRG09 (Bit 9) */ + #define R_SYSC_S_MSTPCRG_MSTPCRG09_Msk (0x200UL) /*!< MSTPCRG09 (Bitfield-Mask: 0x01) */ + #define R_SYSC_S_MSTPCRG_MSTPCRG10_Pos (10UL) /*!< MSTPCRG10 (Bit 10) */ + #define R_SYSC_S_MSTPCRG_MSTPCRG10_Msk (0x400UL) /*!< MSTPCRG10 (Bitfield-Mask: 0x01) */ + #define R_SYSC_S_MSTPCRG_MSTPCRG11_Pos (11UL) /*!< MSTPCRG11 (Bit 11) */ + #define R_SYSC_S_MSTPCRG_MSTPCRG11_Msk (0x800UL) /*!< MSTPCRG11 (Bitfield-Mask: 0x01) */ +/* ======================================================== MSTPCRI ======================================================== */ + #define R_SYSC_S_MSTPCRI_MSTPCRI00_Pos (0UL) /*!< MSTPCRI00 (Bit 0) */ + #define R_SYSC_S_MSTPCRI_MSTPCRI00_Msk (0x1UL) /*!< MSTPCRI00 (Bitfield-Mask: 0x01) */ + #define R_SYSC_S_MSTPCRI_MSTPCRI01_Pos (1UL) /*!< MSTPCRI01 (Bit 1) */ + #define R_SYSC_S_MSTPCRI_MSTPCRI01_Msk (0x2UL) /*!< MSTPCRI01 (Bitfield-Mask: 0x01) */ + +/* =========================================================================================================================== */ +/* ================ R_CLMA0 ================ */ +/* =========================================================================================================================== */ + +/* ========================================================= CTL0 ========================================================== */ + #define R_CLMA0_CTL0_CLME_Pos (0UL) /*!< CLME (Bit 0) */ + #define R_CLMA0_CTL0_CLME_Msk (0x1UL) /*!< CLME (Bitfield-Mask: 0x01) */ +/* ========================================================= CMPL ========================================================== */ + #define R_CLMA0_CMPL_CMPL_Pos (0UL) /*!< CMPL (Bit 0) */ + #define R_CLMA0_CMPL_CMPL_Msk (0xfffUL) /*!< CMPL (Bitfield-Mask: 0xfff) */ +/* ========================================================= CMPH ========================================================== */ + #define R_CLMA0_CMPH_CMPH_Pos (0UL) /*!< CMPH (Bit 0) */ + #define R_CLMA0_CMPH_CMPH_Msk (0xfffUL) /*!< CMPH (Bitfield-Mask: 0xfff) */ +/* ========================================================= PCMD ========================================================== */ +/* ======================================================== PROTSR ========================================================= */ + #define R_CLMA0_PROTSR_PRERR_Pos (0UL) /*!< PRERR (Bit 0) */ + #define R_CLMA0_PROTSR_PRERR_Msk (0x1UL) /*!< PRERR (Bitfield-Mask: 0x01) */ + +/* =========================================================================================================================== */ +/* ================ R_MPU0 ================ */ +/* =========================================================================================================================== */ + +/* ======================================================= ERRINF_R ======================================================== */ + #define R_MPU0_ERRINF_R_VALID_Pos (0UL) /*!< VALID (Bit 0) */ + #define R_MPU0_ERRINF_R_VALID_Msk (0x1UL) /*!< VALID (Bitfield-Mask: 0x01) */ + #define R_MPU0_ERRINF_R_RW_Pos (1UL) /*!< RW (Bit 1) */ + #define R_MPU0_ERRINF_R_RW_Msk (0x2UL) /*!< RW (Bitfield-Mask: 0x01) */ + #define R_MPU0_ERRINF_R_ERRADDR_Pos (2UL) /*!< ERRADDR (Bit 2) */ + #define R_MPU0_ERRINF_R_ERRADDR_Msk (0xfffffffcUL) /*!< ERRADDR (Bitfield-Mask: 0x3fffffff) */ +/* ======================================================= ERRINF_W ======================================================== */ + #define R_MPU0_ERRINF_W_VALID_Pos (0UL) /*!< VALID (Bit 0) */ + #define R_MPU0_ERRINF_W_VALID_Msk (0x1UL) /*!< VALID (Bitfield-Mask: 0x01) */ + #define R_MPU0_ERRINF_W_RW_Pos (1UL) /*!< RW (Bit 1) */ + #define R_MPU0_ERRINF_W_RW_Msk (0x2UL) /*!< RW (Bitfield-Mask: 0x01) */ + #define R_MPU0_ERRINF_W_ERRADDR_Pos (2UL) /*!< ERRADDR (Bit 2) */ + #define R_MPU0_ERRINF_W_ERRADDR_Msk (0xfffffffcUL) /*!< ERRADDR (Bitfield-Mask: 0x3fffffff) */ + +/* =========================================================================================================================== */ +/* ================ R_MPU3 ================ */ +/* =========================================================================================================================== */ + +/* ======================================================== ERRINF ========================================================= */ + #define R_MPU3_ERRINF_VALID_Pos (0UL) /*!< VALID (Bit 0) */ + #define R_MPU3_ERRINF_VALID_Msk (0x1UL) /*!< VALID (Bitfield-Mask: 0x01) */ + #define R_MPU3_ERRINF_RW_Pos (1UL) /*!< RW (Bit 1) */ + #define R_MPU3_ERRINF_RW_Msk (0x2UL) /*!< RW (Bitfield-Mask: 0x01) */ + #define R_MPU3_ERRINF_ERRADDR_Pos (2UL) /*!< ERRADDR (Bit 2) */ + #define R_MPU3_ERRINF_ERRADDR_Msk (0xfffffffcUL) /*!< ERRADDR (Bitfield-Mask: 0x3fffffff) */ + +/* =========================================================================================================================== */ +/* ================ R_SYSRAM_CTL ================ */ +/* =========================================================================================================================== */ + +/* ===================================================== SYSRAM_CTRL0 ====================================================== */ + #define R_SYSRAM_CTL_SYSRAM_CTRL0_VECEN_Pos (0UL) /*!< VECEN (Bit 0) */ + #define R_SYSRAM_CTL_SYSRAM_CTRL0_VECEN_Msk (0x1UL) /*!< VECEN (Bitfield-Mask: 0x01) */ + #define R_SYSRAM_CTL_SYSRAM_CTRL0_VRWEN_Pos (16UL) /*!< VRWEN (Bit 16) */ + #define R_SYSRAM_CTL_SYSRAM_CTRL0_VRWEN_Msk (0xf0000UL) /*!< VRWEN (Bitfield-Mask: 0x0f) */ + #define R_SYSRAM_CTL_SYSRAM_CTRL0_VCEN_Pos (20UL) /*!< VCEN (Bit 20) */ + #define R_SYSRAM_CTL_SYSRAM_CTRL0_VCEN_Msk (0x100000UL) /*!< VCEN (Bitfield-Mask: 0x01) */ + #define R_SYSRAM_CTL_SYSRAM_CTRL0_VLWEN_Pos (21UL) /*!< VLWEN (Bit 21) */ + #define R_SYSRAM_CTL_SYSRAM_CTRL0_VLWEN_Msk (0x200000UL) /*!< VLWEN (Bitfield-Mask: 0x01) */ + #define R_SYSRAM_CTL_SYSRAM_CTRL0_MKICCAXIERR_Pos (24UL) /*!< MKICCAXIERR (Bit 24) */ + #define R_SYSRAM_CTL_SYSRAM_CTRL0_MKICCAXIERR_Msk (0x1000000UL) /*!< MKICCAXIERR (Bitfield-Mask: 0x01) */ +/* ===================================================== SYSRAM_CTRL1 ====================================================== */ + #define R_SYSRAM_CTL_SYSRAM_CTRL1_VECEN_Pos (0UL) /*!< VECEN (Bit 0) */ + #define R_SYSRAM_CTL_SYSRAM_CTRL1_VECEN_Msk (0x1UL) /*!< VECEN (Bitfield-Mask: 0x01) */ + #define R_SYSRAM_CTL_SYSRAM_CTRL1_VRWEN_Pos (16UL) /*!< VRWEN (Bit 16) */ + #define R_SYSRAM_CTL_SYSRAM_CTRL1_VRWEN_Msk (0xf0000UL) /*!< VRWEN (Bitfield-Mask: 0x0f) */ + #define R_SYSRAM_CTL_SYSRAM_CTRL1_VCEN_Pos (20UL) /*!< VCEN (Bit 20) */ + #define R_SYSRAM_CTL_SYSRAM_CTRL1_VCEN_Msk (0x100000UL) /*!< VCEN (Bitfield-Mask: 0x01) */ + #define R_SYSRAM_CTL_SYSRAM_CTRL1_VLWEN_Pos (21UL) /*!< VLWEN (Bit 21) */ + #define R_SYSRAM_CTL_SYSRAM_CTRL1_VLWEN_Msk (0x200000UL) /*!< VLWEN (Bitfield-Mask: 0x01) */ + #define R_SYSRAM_CTL_SYSRAM_CTRL1_MKICCAXIERR_Pos (24UL) /*!< MKICCAXIERR (Bit 24) */ + #define R_SYSRAM_CTL_SYSRAM_CTRL1_MKICCAXIERR_Msk (0x1000000UL) /*!< MKICCAXIERR (Bitfield-Mask: 0x01) */ +/* ===================================================== SYSRAM_CTRL2 ====================================================== */ + #define R_SYSRAM_CTL_SYSRAM_CTRL2_VECEN_Pos (0UL) /*!< VECEN (Bit 0) */ + #define R_SYSRAM_CTL_SYSRAM_CTRL2_VECEN_Msk (0x1UL) /*!< VECEN (Bitfield-Mask: 0x01) */ + #define R_SYSRAM_CTL_SYSRAM_CTRL2_VRWEN_Pos (16UL) /*!< VRWEN (Bit 16) */ + #define R_SYSRAM_CTL_SYSRAM_CTRL2_VRWEN_Msk (0xf0000UL) /*!< VRWEN (Bitfield-Mask: 0x0f) */ + #define R_SYSRAM_CTL_SYSRAM_CTRL2_VCEN_Pos (20UL) /*!< VCEN (Bit 20) */ + #define R_SYSRAM_CTL_SYSRAM_CTRL2_VCEN_Msk (0x100000UL) /*!< VCEN (Bitfield-Mask: 0x01) */ + #define R_SYSRAM_CTL_SYSRAM_CTRL2_VLWEN_Pos (21UL) /*!< VLWEN (Bit 21) */ + #define R_SYSRAM_CTL_SYSRAM_CTRL2_VLWEN_Msk (0x200000UL) /*!< VLWEN (Bitfield-Mask: 0x01) */ + #define R_SYSRAM_CTL_SYSRAM_CTRL2_MKICCAXIERR_Pos (24UL) /*!< MKICCAXIERR (Bit 24) */ + #define R_SYSRAM_CTL_SYSRAM_CTRL2_MKICCAXIERR_Msk (0x1000000UL) /*!< MKICCAXIERR (Bitfield-Mask: 0x01) */ + +/* =========================================================================================================================== */ +/* ================ R_SHOSTIF_CFG ================ */ +/* =========================================================================================================================== */ + +/* ========================================================= SHCFG ========================================================= */ + #define R_SHOSTIF_CFG_SHCFG_SPIMODE_Pos (0UL) /*!< SPIMODE (Bit 0) */ + #define R_SHOSTIF_CFG_SHCFG_SPIMODE_Msk (0x3UL) /*!< SPIMODE (Bitfield-Mask: 0x03) */ + #define R_SHOSTIF_CFG_SHCFG_BYTESWAP_Pos (2UL) /*!< BYTESWAP (Bit 2) */ + #define R_SHOSTIF_CFG_SHCFG_BYTESWAP_Msk (0x4UL) /*!< BYTESWAP (Bitfield-Mask: 0x01) */ + #define R_SHOSTIF_CFG_SHCFG_ADDRESSING_Pos (3UL) /*!< ADDRESSING (Bit 3) */ + #define R_SHOSTIF_CFG_SHCFG_ADDRESSING_Msk (0x8UL) /*!< ADDRESSING (Bitfield-Mask: 0x01) */ + #define R_SHOSTIF_CFG_SHCFG_SLEEP_Pos (4UL) /*!< SLEEP (Bit 4) */ + #define R_SHOSTIF_CFG_SHCFG_SLEEP_Msk (0x10UL) /*!< SLEEP (Bitfield-Mask: 0x01) */ + #define R_SHOSTIF_CFG_SHCFG_INTMASKI_Pos (16UL) /*!< INTMASKI (Bit 16) */ + #define R_SHOSTIF_CFG_SHCFG_INTMASKI_Msk (0x3f0000UL) /*!< INTMASKI (Bitfield-Mask: 0x3f) */ + #define R_SHOSTIF_CFG_SHCFG_INTMASKE_Pos (24UL) /*!< INTMASKE (Bit 24) */ + #define R_SHOSTIF_CFG_SHCFG_INTMASKE_Msk (0x3f000000UL) /*!< INTMASKE (Bitfield-Mask: 0x3f) */ + +/* =========================================================================================================================== */ +/* ================ R_PHOSTIF_CFG ================ */ +/* =========================================================================================================================== */ + +/* ========================================================= PHCFG ========================================================= */ + #define R_PHOSTIF_CFG_PHCFG_MEMIFSEL_Pos (0UL) /*!< MEMIFSEL (Bit 0) */ + #define R_PHOSTIF_CFG_PHCFG_MEMIFSEL_Msk (0x1UL) /*!< MEMIFSEL (Bitfield-Mask: 0x01) */ + #define R_PHOSTIF_CFG_PHCFG_BUSSSEL_Pos (4UL) /*!< BUSSSEL (Bit 4) */ + #define R_PHOSTIF_CFG_PHCFG_BUSSSEL_Msk (0x10UL) /*!< BUSSSEL (Bitfield-Mask: 0x01) */ + #define R_PHOSTIF_CFG_PHCFG_HIFSYNC_Pos (8UL) /*!< HIFSYNC (Bit 8) */ + #define R_PHOSTIF_CFG_PHCFG_HIFSYNC_Msk (0x100UL) /*!< HIFSYNC (Bitfield-Mask: 0x01) */ + #define R_PHOSTIF_CFG_PHCFG_MEMCSEL_Pos (12UL) /*!< MEMCSEL (Bit 12) */ + #define R_PHOSTIF_CFG_PHCFG_MEMCSEL_Msk (0x1000UL) /*!< MEMCSEL (Bitfield-Mask: 0x01) */ + #define R_PHOSTIF_CFG_PHCFG_HWRZSEL_Pos (16UL) /*!< HWRZSEL (Bit 16) */ + #define R_PHOSTIF_CFG_PHCFG_HWRZSEL_Msk (0x10000UL) /*!< HWRZSEL (Bitfield-Mask: 0x01) */ + #define R_PHOSTIF_CFG_PHCFG_ADMUXMODE_Pos (20UL) /*!< ADMUXMODE (Bit 20) */ + #define R_PHOSTIF_CFG_PHCFG_ADMUXMODE_Msk (0x100000UL) /*!< ADMUXMODE (Bitfield-Mask: 0x01) */ +/* ========================================================= PHACC ========================================================= */ + #define R_PHOSTIF_CFG_PHACC_HIFRDYSEL_Pos (0UL) /*!< HIFRDYSEL (Bit 0) */ + #define R_PHOSTIF_CFG_PHACC_HIFRDYSEL_Msk (0x1UL) /*!< HIFRDYSEL (Bitfield-Mask: 0x01) */ + #define R_PHOSTIF_CFG_PHACC_HIFBCCSEL_Pos (8UL) /*!< HIFBCCSEL (Bit 8) */ + #define R_PHOSTIF_CFG_PHACC_HIFBCCSEL_Msk (0x100UL) /*!< HIFBCCSEL (Bitfield-Mask: 0x01) */ + #define R_PHOSTIF_CFG_PHACC_HIFBTCSEL_Pos (9UL) /*!< HIFBTCSEL (Bit 9) */ + #define R_PHOSTIF_CFG_PHACC_HIFBTCSEL_Msk (0x200UL) /*!< HIFBTCSEL (Bitfield-Mask: 0x01) */ + #define R_PHOSTIF_CFG_PHACC_HIFPRCSEL_Pos (10UL) /*!< HIFPRCSEL (Bit 10) */ + #define R_PHOSTIF_CFG_PHACC_HIFPRCSEL_Msk (0x400UL) /*!< HIFPRCSEL (Bitfield-Mask: 0x01) */ + #define R_PHOSTIF_CFG_PHACC_HIFIRCSEL_Pos (11UL) /*!< HIFIRCSEL (Bit 11) */ + #define R_PHOSTIF_CFG_PHACC_HIFIRCSEL_Msk (0x800UL) /*!< HIFIRCSEL (Bitfield-Mask: 0x01) */ + #define R_PHOSTIF_CFG_PHACC_HIFXALSEL_Pos (12UL) /*!< HIFXALSEL (Bit 12) */ + #define R_PHOSTIF_CFG_PHACC_HIFXALSEL_Msk (0x1000UL) /*!< HIFXALSEL (Bitfield-Mask: 0x01) */ + #define R_PHOSTIF_CFG_PHACC_HIFXAHSEL_Pos (13UL) /*!< HIFXAHSEL (Bit 13) */ + #define R_PHOSTIF_CFG_PHACC_HIFXAHSEL_Msk (0x2000UL) /*!< HIFXAHSEL (Bitfield-Mask: 0x01) */ + #define R_PHOSTIF_CFG_PHACC_HIFEXT0SEL_Pos (14UL) /*!< HIFEXT0SEL (Bit 14) */ + #define R_PHOSTIF_CFG_PHACC_HIFEXT0SEL_Msk (0x4000UL) /*!< HIFEXT0SEL (Bitfield-Mask: 0x01) */ + #define R_PHOSTIF_CFG_PHACC_HIFEXT1SEL_Pos (15UL) /*!< HIFEXT1SEL (Bit 15) */ + #define R_PHOSTIF_CFG_PHACC_HIFEXT1SEL_Msk (0x8000UL) /*!< HIFEXT1SEL (Bitfield-Mask: 0x01) */ + #define R_PHOSTIF_CFG_PHACC_CSSWAP_Pos (16UL) /*!< CSSWAP (Bit 16) */ + #define R_PHOSTIF_CFG_PHACC_CSSWAP_Msk (0x10000UL) /*!< CSSWAP (Bitfield-Mask: 0x01) */ + #define R_PHOSTIF_CFG_PHACC_BSCADMUX_Pos (17UL) /*!< BSCADMUX (Bit 17) */ + #define R_PHOSTIF_CFG_PHACC_BSCADMUX_Msk (0x20000UL) /*!< BSCADMUX (Bitfield-Mask: 0x01) */ + +/* =========================================================================================================================== */ +/* ================ R_RWP_S ================ */ +/* =========================================================================================================================== */ + +/* ========================================================= PRCRS ========================================================= */ + #define R_RWP_S_PRCRS_PRC0_Pos (0UL) /*!< PRC0 (Bit 0) */ + #define R_RWP_S_PRCRS_PRC0_Msk (0x1UL) /*!< PRC0 (Bitfield-Mask: 0x01) */ + #define R_RWP_S_PRCRS_PRC1_Pos (1UL) /*!< PRC1 (Bit 1) */ + #define R_RWP_S_PRCRS_PRC1_Msk (0x2UL) /*!< PRC1 (Bitfield-Mask: 0x01) */ + #define R_RWP_S_PRCRS_PRC2_Pos (2UL) /*!< PRC2 (Bit 2) */ + #define R_RWP_S_PRCRS_PRC2_Msk (0x4UL) /*!< PRC2 (Bitfield-Mask: 0x01) */ + #define R_RWP_S_PRCRS_PRC3_Pos (3UL) /*!< PRC3 (Bit 3) */ + #define R_RWP_S_PRCRS_PRC3_Msk (0x8UL) /*!< PRC3 (Bitfield-Mask: 0x01) */ + #define R_RWP_S_PRCRS_PRKEY_Pos (8UL) /*!< PRKEY (Bit 8) */ + #define R_RWP_S_PRCRS_PRKEY_Msk (0xff00UL) /*!< PRKEY (Bitfield-Mask: 0xff) */ + +/* =========================================================================================================================== */ +/* ================ R_MTU ================ */ +/* =========================================================================================================================== */ + +/* ========================================================= TOERA ========================================================= */ + #define R_MTU_TOERA_OE3B_Pos (0UL) /*!< OE3B (Bit 0) */ + #define R_MTU_TOERA_OE3B_Msk (0x1UL) /*!< OE3B (Bitfield-Mask: 0x01) */ + #define R_MTU_TOERA_OE4A_Pos (1UL) /*!< OE4A (Bit 1) */ + #define R_MTU_TOERA_OE4A_Msk (0x2UL) /*!< OE4A (Bitfield-Mask: 0x01) */ + #define R_MTU_TOERA_OE4B_Pos (2UL) /*!< OE4B (Bit 2) */ + #define R_MTU_TOERA_OE4B_Msk (0x4UL) /*!< OE4B (Bitfield-Mask: 0x01) */ + #define R_MTU_TOERA_OE3D_Pos (3UL) /*!< OE3D (Bit 3) */ + #define R_MTU_TOERA_OE3D_Msk (0x8UL) /*!< OE3D (Bitfield-Mask: 0x01) */ + #define R_MTU_TOERA_OE4C_Pos (4UL) /*!< OE4C (Bit 4) */ + #define R_MTU_TOERA_OE4C_Msk (0x10UL) /*!< OE4C (Bitfield-Mask: 0x01) */ + #define R_MTU_TOERA_OE4D_Pos (5UL) /*!< OE4D (Bit 5) */ + #define R_MTU_TOERA_OE4D_Msk (0x20UL) /*!< OE4D (Bitfield-Mask: 0x01) */ +/* ========================================================= TGCRA ========================================================= */ + #define R_MTU_TGCRA_UF_Pos (0UL) /*!< UF (Bit 0) */ + #define R_MTU_TGCRA_UF_Msk (0x1UL) /*!< UF (Bitfield-Mask: 0x01) */ + #define R_MTU_TGCRA_VF_Pos (1UL) /*!< VF (Bit 1) */ + #define R_MTU_TGCRA_VF_Msk (0x2UL) /*!< VF (Bitfield-Mask: 0x01) */ + #define R_MTU_TGCRA_WF_Pos (2UL) /*!< WF (Bit 2) */ + #define R_MTU_TGCRA_WF_Msk (0x4UL) /*!< WF (Bitfield-Mask: 0x01) */ + #define R_MTU_TGCRA_FB_Pos (3UL) /*!< FB (Bit 3) */ + #define R_MTU_TGCRA_FB_Msk (0x8UL) /*!< FB (Bitfield-Mask: 0x01) */ + #define R_MTU_TGCRA_P_Pos (4UL) /*!< P (Bit 4) */ + #define R_MTU_TGCRA_P_Msk (0x10UL) /*!< P (Bitfield-Mask: 0x01) */ + #define R_MTU_TGCRA_N_Pos (5UL) /*!< N (Bit 5) */ + #define R_MTU_TGCRA_N_Msk (0x20UL) /*!< N (Bitfield-Mask: 0x01) */ + #define R_MTU_TGCRA_BDC_Pos (6UL) /*!< BDC (Bit 6) */ + #define R_MTU_TGCRA_BDC_Msk (0x40UL) /*!< BDC (Bitfield-Mask: 0x01) */ +/* ======================================================== TOCR1A ========================================================= */ + #define R_MTU_TOCR1A_OLSP_Pos (0UL) /*!< OLSP (Bit 0) */ + #define R_MTU_TOCR1A_OLSP_Msk (0x1UL) /*!< OLSP (Bitfield-Mask: 0x01) */ + #define R_MTU_TOCR1A_OLSN_Pos (1UL) /*!< OLSN (Bit 1) */ + #define R_MTU_TOCR1A_OLSN_Msk (0x2UL) /*!< OLSN (Bitfield-Mask: 0x01) */ + #define R_MTU_TOCR1A_TOCS_Pos (2UL) /*!< TOCS (Bit 2) */ + #define R_MTU_TOCR1A_TOCS_Msk (0x4UL) /*!< TOCS (Bitfield-Mask: 0x01) */ + #define R_MTU_TOCR1A_TOCL_Pos (3UL) /*!< TOCL (Bit 3) */ + #define R_MTU_TOCR1A_TOCL_Msk (0x8UL) /*!< TOCL (Bitfield-Mask: 0x01) */ + #define R_MTU_TOCR1A_PSYE_Pos (6UL) /*!< PSYE (Bit 6) */ + #define R_MTU_TOCR1A_PSYE_Msk (0x40UL) /*!< PSYE (Bitfield-Mask: 0x01) */ +/* ======================================================== TOCR2A ========================================================= */ + #define R_MTU_TOCR2A_OLS1P_Pos (0UL) /*!< OLS1P (Bit 0) */ + #define R_MTU_TOCR2A_OLS1P_Msk (0x1UL) /*!< OLS1P (Bitfield-Mask: 0x01) */ + #define R_MTU_TOCR2A_OLS1N_Pos (1UL) /*!< OLS1N (Bit 1) */ + #define R_MTU_TOCR2A_OLS1N_Msk (0x2UL) /*!< OLS1N (Bitfield-Mask: 0x01) */ + #define R_MTU_TOCR2A_OLS2P_Pos (2UL) /*!< OLS2P (Bit 2) */ + #define R_MTU_TOCR2A_OLS2P_Msk (0x4UL) /*!< OLS2P (Bitfield-Mask: 0x01) */ + #define R_MTU_TOCR2A_OLS2N_Pos (3UL) /*!< OLS2N (Bit 3) */ + #define R_MTU_TOCR2A_OLS2N_Msk (0x8UL) /*!< OLS2N (Bitfield-Mask: 0x01) */ + #define R_MTU_TOCR2A_OLS3P_Pos (4UL) /*!< OLS3P (Bit 4) */ + #define R_MTU_TOCR2A_OLS3P_Msk (0x10UL) /*!< OLS3P (Bitfield-Mask: 0x01) */ + #define R_MTU_TOCR2A_OLS3N_Pos (5UL) /*!< OLS3N (Bit 5) */ + #define R_MTU_TOCR2A_OLS3N_Msk (0x20UL) /*!< OLS3N (Bitfield-Mask: 0x01) */ + #define R_MTU_TOCR2A_BF_Pos (6UL) /*!< BF (Bit 6) */ + #define R_MTU_TOCR2A_BF_Msk (0xc0UL) /*!< BF (Bitfield-Mask: 0x03) */ +/* ========================================================= TCDRA ========================================================= */ +/* ========================================================= TDDRA ========================================================= */ +/* ======================================================== TCNTSA ========================================================= */ +/* ========================================================= TCBRA ========================================================= */ +/* ======================================================== TITCR1A ======================================================== */ + #define R_MTU_TITCR1A_T4VCOR_Pos (0UL) /*!< T4VCOR (Bit 0) */ + #define R_MTU_TITCR1A_T4VCOR_Msk (0x7UL) /*!< T4VCOR (Bitfield-Mask: 0x07) */ + #define R_MTU_TITCR1A_T4VEN_Pos (3UL) /*!< T4VEN (Bit 3) */ + #define R_MTU_TITCR1A_T4VEN_Msk (0x8UL) /*!< T4VEN (Bitfield-Mask: 0x01) */ + #define R_MTU_TITCR1A_T3ACOR_Pos (4UL) /*!< T3ACOR (Bit 4) */ + #define R_MTU_TITCR1A_T3ACOR_Msk (0x70UL) /*!< T3ACOR (Bitfield-Mask: 0x07) */ + #define R_MTU_TITCR1A_T3AEN_Pos (7UL) /*!< T3AEN (Bit 7) */ + #define R_MTU_TITCR1A_T3AEN_Msk (0x80UL) /*!< T3AEN (Bitfield-Mask: 0x01) */ +/* ======================================================= TITCNT1A ======================================================== */ + #define R_MTU_TITCNT1A_T4VCNT_Pos (0UL) /*!< T4VCNT (Bit 0) */ + #define R_MTU_TITCNT1A_T4VCNT_Msk (0x7UL) /*!< T4VCNT (Bitfield-Mask: 0x07) */ + #define R_MTU_TITCNT1A_T3ACNT_Pos (4UL) /*!< T3ACNT (Bit 4) */ + #define R_MTU_TITCNT1A_T3ACNT_Msk (0x70UL) /*!< T3ACNT (Bitfield-Mask: 0x07) */ +/* ======================================================== TBTERA ========================================================= */ + #define R_MTU_TBTERA_BTE_Pos (0UL) /*!< BTE (Bit 0) */ + #define R_MTU_TBTERA_BTE_Msk (0x3UL) /*!< BTE (Bitfield-Mask: 0x03) */ +/* ========================================================= TDERA ========================================================= */ + #define R_MTU_TDERA_TDER_Pos (0UL) /*!< TDER (Bit 0) */ + #define R_MTU_TDERA_TDER_Msk (0x1UL) /*!< TDER (Bitfield-Mask: 0x01) */ +/* ======================================================== TOLBRA ========================================================= */ + #define R_MTU_TOLBRA_OLS1P_Pos (0UL) /*!< OLS1P (Bit 0) */ + #define R_MTU_TOLBRA_OLS1P_Msk (0x1UL) /*!< OLS1P (Bitfield-Mask: 0x01) */ + #define R_MTU_TOLBRA_OLS1N_Pos (1UL) /*!< OLS1N (Bit 1) */ + #define R_MTU_TOLBRA_OLS1N_Msk (0x2UL) /*!< OLS1N (Bitfield-Mask: 0x01) */ + #define R_MTU_TOLBRA_OLS2P_Pos (2UL) /*!< OLS2P (Bit 2) */ + #define R_MTU_TOLBRA_OLS2P_Msk (0x4UL) /*!< OLS2P (Bitfield-Mask: 0x01) */ + #define R_MTU_TOLBRA_OLS2N_Pos (3UL) /*!< OLS2N (Bit 3) */ + #define R_MTU_TOLBRA_OLS2N_Msk (0x8UL) /*!< OLS2N (Bitfield-Mask: 0x01) */ + #define R_MTU_TOLBRA_OLS3P_Pos (4UL) /*!< OLS3P (Bit 4) */ + #define R_MTU_TOLBRA_OLS3P_Msk (0x10UL) /*!< OLS3P (Bitfield-Mask: 0x01) */ + #define R_MTU_TOLBRA_OLS3N_Pos (5UL) /*!< OLS3N (Bit 5) */ + #define R_MTU_TOLBRA_OLS3N_Msk (0x20UL) /*!< OLS3N (Bitfield-Mask: 0x01) */ +/* ======================================================== TITMRA ========================================================= */ + #define R_MTU_TITMRA_TITM_Pos (0UL) /*!< TITM (Bit 0) */ + #define R_MTU_TITMRA_TITM_Msk (0x1UL) /*!< TITM (Bitfield-Mask: 0x01) */ +/* ======================================================== TITCR2A ======================================================== */ + #define R_MTU_TITCR2A_TRG4COR_Pos (0UL) /*!< TRG4COR (Bit 0) */ + #define R_MTU_TITCR2A_TRG4COR_Msk (0x7UL) /*!< TRG4COR (Bitfield-Mask: 0x07) */ +/* ======================================================= TITCNT2A ======================================================== */ + #define R_MTU_TITCNT2A_TRG4CNT_Pos (0UL) /*!< TRG4CNT (Bit 0) */ + #define R_MTU_TITCNT2A_TRG4CNT_Msk (0x7UL) /*!< TRG4CNT (Bitfield-Mask: 0x07) */ +/* ========================================================= TWCRA ========================================================= */ + #define R_MTU_TWCRA_WRE_Pos (0UL) /*!< WRE (Bit 0) */ + #define R_MTU_TWCRA_WRE_Msk (0x1UL) /*!< WRE (Bitfield-Mask: 0x01) */ + #define R_MTU_TWCRA_SCC_Pos (1UL) /*!< SCC (Bit 1) */ + #define R_MTU_TWCRA_SCC_Msk (0x2UL) /*!< SCC (Bitfield-Mask: 0x01) */ + #define R_MTU_TWCRA_CCE_Pos (7UL) /*!< CCE (Bit 7) */ + #define R_MTU_TWCRA_CCE_Msk (0x80UL) /*!< CCE (Bitfield-Mask: 0x01) */ +/* ======================================================== TMDR2A ========================================================= */ + #define R_MTU_TMDR2A_DRS_Pos (0UL) /*!< DRS (Bit 0) */ + #define R_MTU_TMDR2A_DRS_Msk (0x1UL) /*!< DRS (Bitfield-Mask: 0x01) */ +/* ========================================================= TSTRA ========================================================= */ + #define R_MTU_TSTRA_CST0_Pos (0UL) /*!< CST0 (Bit 0) */ + #define R_MTU_TSTRA_CST0_Msk (0x1UL) /*!< CST0 (Bitfield-Mask: 0x01) */ + #define R_MTU_TSTRA_CST1_Pos (1UL) /*!< CST1 (Bit 1) */ + #define R_MTU_TSTRA_CST1_Msk (0x2UL) /*!< CST1 (Bitfield-Mask: 0x01) */ + #define R_MTU_TSTRA_CST2_Pos (2UL) /*!< CST2 (Bit 2) */ + #define R_MTU_TSTRA_CST2_Msk (0x4UL) /*!< CST2 (Bitfield-Mask: 0x01) */ + #define R_MTU_TSTRA_CST8_Pos (3UL) /*!< CST8 (Bit 3) */ + #define R_MTU_TSTRA_CST8_Msk (0x8UL) /*!< CST8 (Bitfield-Mask: 0x01) */ + #define R_MTU_TSTRA_CST3_Pos (6UL) /*!< CST3 (Bit 6) */ + #define R_MTU_TSTRA_CST3_Msk (0x40UL) /*!< CST3 (Bitfield-Mask: 0x01) */ + #define R_MTU_TSTRA_CST4_Pos (7UL) /*!< CST4 (Bit 7) */ + #define R_MTU_TSTRA_CST4_Msk (0x80UL) /*!< CST4 (Bitfield-Mask: 0x01) */ +/* ========================================================= TSYRA ========================================================= */ + #define R_MTU_TSYRA_SYNC0_Pos (0UL) /*!< SYNC0 (Bit 0) */ + #define R_MTU_TSYRA_SYNC0_Msk (0x1UL) /*!< SYNC0 (Bitfield-Mask: 0x01) */ + #define R_MTU_TSYRA_SYNC1_Pos (1UL) /*!< SYNC1 (Bit 1) */ + #define R_MTU_TSYRA_SYNC1_Msk (0x2UL) /*!< SYNC1 (Bitfield-Mask: 0x01) */ + #define R_MTU_TSYRA_SYNC2_Pos (2UL) /*!< SYNC2 (Bit 2) */ + #define R_MTU_TSYRA_SYNC2_Msk (0x4UL) /*!< SYNC2 (Bitfield-Mask: 0x01) */ + #define R_MTU_TSYRA_SYNC3_Pos (6UL) /*!< SYNC3 (Bit 6) */ + #define R_MTU_TSYRA_SYNC3_Msk (0x40UL) /*!< SYNC3 (Bitfield-Mask: 0x01) */ + #define R_MTU_TSYRA_SYNC4_Pos (7UL) /*!< SYNC4 (Bit 7) */ + #define R_MTU_TSYRA_SYNC4_Msk (0x80UL) /*!< SYNC4 (Bitfield-Mask: 0x01) */ +/* ======================================================== TCSYSTR ======================================================== */ + #define R_MTU_TCSYSTR_SCH7_Pos (0UL) /*!< SCH7 (Bit 0) */ + #define R_MTU_TCSYSTR_SCH7_Msk (0x1UL) /*!< SCH7 (Bitfield-Mask: 0x01) */ + #define R_MTU_TCSYSTR_SCH6_Pos (1UL) /*!< SCH6 (Bit 1) */ + #define R_MTU_TCSYSTR_SCH6_Msk (0x2UL) /*!< SCH6 (Bitfield-Mask: 0x01) */ + #define R_MTU_TCSYSTR_SCH4_Pos (3UL) /*!< SCH4 (Bit 3) */ + #define R_MTU_TCSYSTR_SCH4_Msk (0x8UL) /*!< SCH4 (Bitfield-Mask: 0x01) */ + #define R_MTU_TCSYSTR_SCH3_Pos (4UL) /*!< SCH3 (Bit 4) */ + #define R_MTU_TCSYSTR_SCH3_Msk (0x10UL) /*!< SCH3 (Bitfield-Mask: 0x01) */ + #define R_MTU_TCSYSTR_SCH2_Pos (5UL) /*!< SCH2 (Bit 5) */ + #define R_MTU_TCSYSTR_SCH2_Msk (0x20UL) /*!< SCH2 (Bitfield-Mask: 0x01) */ + #define R_MTU_TCSYSTR_SCH1_Pos (6UL) /*!< SCH1 (Bit 6) */ + #define R_MTU_TCSYSTR_SCH1_Msk (0x40UL) /*!< SCH1 (Bitfield-Mask: 0x01) */ + #define R_MTU_TCSYSTR_SCH0_Pos (7UL) /*!< SCH0 (Bit 7) */ + #define R_MTU_TCSYSTR_SCH0_Msk (0x80UL) /*!< SCH0 (Bitfield-Mask: 0x01) */ +/* ======================================================== TRWERA ========================================================= */ + #define R_MTU_TRWERA_RWE_Pos (0UL) /*!< RWE (Bit 0) */ + #define R_MTU_TRWERA_RWE_Msk (0x1UL) /*!< RWE (Bitfield-Mask: 0x01) */ +/* ========================================================= TOERB ========================================================= */ + #define R_MTU_TOERB_OE6B_Pos (0UL) /*!< OE6B (Bit 0) */ + #define R_MTU_TOERB_OE6B_Msk (0x1UL) /*!< OE6B (Bitfield-Mask: 0x01) */ + #define R_MTU_TOERB_OE7A_Pos (1UL) /*!< OE7A (Bit 1) */ + #define R_MTU_TOERB_OE7A_Msk (0x2UL) /*!< OE7A (Bitfield-Mask: 0x01) */ + #define R_MTU_TOERB_OE7B_Pos (2UL) /*!< OE7B (Bit 2) */ + #define R_MTU_TOERB_OE7B_Msk (0x4UL) /*!< OE7B (Bitfield-Mask: 0x01) */ + #define R_MTU_TOERB_OE6D_Pos (3UL) /*!< OE6D (Bit 3) */ + #define R_MTU_TOERB_OE6D_Msk (0x8UL) /*!< OE6D (Bitfield-Mask: 0x01) */ + #define R_MTU_TOERB_OE7C_Pos (4UL) /*!< OE7C (Bit 4) */ + #define R_MTU_TOERB_OE7C_Msk (0x10UL) /*!< OE7C (Bitfield-Mask: 0x01) */ + #define R_MTU_TOERB_OE7D_Pos (5UL) /*!< OE7D (Bit 5) */ + #define R_MTU_TOERB_OE7D_Msk (0x20UL) /*!< OE7D (Bitfield-Mask: 0x01) */ +/* ======================================================== TOCR1B ========================================================= */ + #define R_MTU_TOCR1B_OLSP_Pos (0UL) /*!< OLSP (Bit 0) */ + #define R_MTU_TOCR1B_OLSP_Msk (0x1UL) /*!< OLSP (Bitfield-Mask: 0x01) */ + #define R_MTU_TOCR1B_OLSN_Pos (1UL) /*!< OLSN (Bit 1) */ + #define R_MTU_TOCR1B_OLSN_Msk (0x2UL) /*!< OLSN (Bitfield-Mask: 0x01) */ + #define R_MTU_TOCR1B_TOCS_Pos (2UL) /*!< TOCS (Bit 2) */ + #define R_MTU_TOCR1B_TOCS_Msk (0x4UL) /*!< TOCS (Bitfield-Mask: 0x01) */ + #define R_MTU_TOCR1B_TOCL_Pos (3UL) /*!< TOCL (Bit 3) */ + #define R_MTU_TOCR1B_TOCL_Msk (0x8UL) /*!< TOCL (Bitfield-Mask: 0x01) */ + #define R_MTU_TOCR1B_PSYE_Pos (6UL) /*!< PSYE (Bit 6) */ + #define R_MTU_TOCR1B_PSYE_Msk (0x40UL) /*!< PSYE (Bitfield-Mask: 0x01) */ +/* ======================================================== TOCR2B ========================================================= */ + #define R_MTU_TOCR2B_OLS1P_Pos (0UL) /*!< OLS1P (Bit 0) */ + #define R_MTU_TOCR2B_OLS1P_Msk (0x1UL) /*!< OLS1P (Bitfield-Mask: 0x01) */ + #define R_MTU_TOCR2B_OLS1N_Pos (1UL) /*!< OLS1N (Bit 1) */ + #define R_MTU_TOCR2B_OLS1N_Msk (0x2UL) /*!< OLS1N (Bitfield-Mask: 0x01) */ + #define R_MTU_TOCR2B_OLS2P_Pos (2UL) /*!< OLS2P (Bit 2) */ + #define R_MTU_TOCR2B_OLS2P_Msk (0x4UL) /*!< OLS2P (Bitfield-Mask: 0x01) */ + #define R_MTU_TOCR2B_OLS2N_Pos (3UL) /*!< OLS2N (Bit 3) */ + #define R_MTU_TOCR2B_OLS2N_Msk (0x8UL) /*!< OLS2N (Bitfield-Mask: 0x01) */ + #define R_MTU_TOCR2B_OLS3P_Pos (4UL) /*!< OLS3P (Bit 4) */ + #define R_MTU_TOCR2B_OLS3P_Msk (0x10UL) /*!< OLS3P (Bitfield-Mask: 0x01) */ + #define R_MTU_TOCR2B_OLS3N_Pos (5UL) /*!< OLS3N (Bit 5) */ + #define R_MTU_TOCR2B_OLS3N_Msk (0x20UL) /*!< OLS3N (Bitfield-Mask: 0x01) */ + #define R_MTU_TOCR2B_BF_Pos (6UL) /*!< BF (Bit 6) */ + #define R_MTU_TOCR2B_BF_Msk (0xc0UL) /*!< BF (Bitfield-Mask: 0x03) */ +/* ========================================================= TCDRB ========================================================= */ +/* ========================================================= TDDRB ========================================================= */ +/* ======================================================== TCNTSB ========================================================= */ +/* ========================================================= TCBRB ========================================================= */ +/* ======================================================== TITCR1B ======================================================== */ + #define R_MTU_TITCR1B_T7VCOR_Pos (0UL) /*!< T7VCOR (Bit 0) */ + #define R_MTU_TITCR1B_T7VCOR_Msk (0x7UL) /*!< T7VCOR (Bitfield-Mask: 0x07) */ + #define R_MTU_TITCR1B_T7VEN_Pos (3UL) /*!< T7VEN (Bit 3) */ + #define R_MTU_TITCR1B_T7VEN_Msk (0x8UL) /*!< T7VEN (Bitfield-Mask: 0x01) */ + #define R_MTU_TITCR1B_T6ACOR_Pos (4UL) /*!< T6ACOR (Bit 4) */ + #define R_MTU_TITCR1B_T6ACOR_Msk (0x70UL) /*!< T6ACOR (Bitfield-Mask: 0x07) */ + #define R_MTU_TITCR1B_T6AEN_Pos (7UL) /*!< T6AEN (Bit 7) */ + #define R_MTU_TITCR1B_T6AEN_Msk (0x80UL) /*!< T6AEN (Bitfield-Mask: 0x01) */ +/* ======================================================= TITCNT1B ======================================================== */ + #define R_MTU_TITCNT1B_T7VCNT_Pos (0UL) /*!< T7VCNT (Bit 0) */ + #define R_MTU_TITCNT1B_T7VCNT_Msk (0x7UL) /*!< T7VCNT (Bitfield-Mask: 0x07) */ + #define R_MTU_TITCNT1B_T6ACNT_Pos (4UL) /*!< T6ACNT (Bit 4) */ + #define R_MTU_TITCNT1B_T6ACNT_Msk (0x70UL) /*!< T6ACNT (Bitfield-Mask: 0x07) */ +/* ======================================================== TBTERB ========================================================= */ + #define R_MTU_TBTERB_BTE_Pos (0UL) /*!< BTE (Bit 0) */ + #define R_MTU_TBTERB_BTE_Msk (0x3UL) /*!< BTE (Bitfield-Mask: 0x03) */ +/* ========================================================= TDERB ========================================================= */ + #define R_MTU_TDERB_TDER_Pos (0UL) /*!< TDER (Bit 0) */ + #define R_MTU_TDERB_TDER_Msk (0x1UL) /*!< TDER (Bitfield-Mask: 0x01) */ +/* ======================================================== TOLBRB ========================================================= */ + #define R_MTU_TOLBRB_OLS1P_Pos (0UL) /*!< OLS1P (Bit 0) */ + #define R_MTU_TOLBRB_OLS1P_Msk (0x1UL) /*!< OLS1P (Bitfield-Mask: 0x01) */ + #define R_MTU_TOLBRB_OLS1N_Pos (1UL) /*!< OLS1N (Bit 1) */ + #define R_MTU_TOLBRB_OLS1N_Msk (0x2UL) /*!< OLS1N (Bitfield-Mask: 0x01) */ + #define R_MTU_TOLBRB_OLS2P_Pos (2UL) /*!< OLS2P (Bit 2) */ + #define R_MTU_TOLBRB_OLS2P_Msk (0x4UL) /*!< OLS2P (Bitfield-Mask: 0x01) */ + #define R_MTU_TOLBRB_OLS2N_Pos (3UL) /*!< OLS2N (Bit 3) */ + #define R_MTU_TOLBRB_OLS2N_Msk (0x8UL) /*!< OLS2N (Bitfield-Mask: 0x01) */ + #define R_MTU_TOLBRB_OLS3P_Pos (4UL) /*!< OLS3P (Bit 4) */ + #define R_MTU_TOLBRB_OLS3P_Msk (0x10UL) /*!< OLS3P (Bitfield-Mask: 0x01) */ + #define R_MTU_TOLBRB_OLS3N_Pos (5UL) /*!< OLS3N (Bit 5) */ + #define R_MTU_TOLBRB_OLS3N_Msk (0x20UL) /*!< OLS3N (Bitfield-Mask: 0x01) */ +/* ======================================================== TITMRB ========================================================= */ + #define R_MTU_TITMRB_TITM_Pos (0UL) /*!< TITM (Bit 0) */ + #define R_MTU_TITMRB_TITM_Msk (0x1UL) /*!< TITM (Bitfield-Mask: 0x01) */ +/* ======================================================== TITCR2B ======================================================== */ + #define R_MTU_TITCR2B_TRG7COR_Pos (0UL) /*!< TRG7COR (Bit 0) */ + #define R_MTU_TITCR2B_TRG7COR_Msk (0x7UL) /*!< TRG7COR (Bitfield-Mask: 0x07) */ +/* ======================================================= TITCNT2B ======================================================== */ + #define R_MTU_TITCNT2B_TRG7CNT_Pos (0UL) /*!< TRG7CNT (Bit 0) */ + #define R_MTU_TITCNT2B_TRG7CNT_Msk (0x7UL) /*!< TRG7CNT (Bitfield-Mask: 0x07) */ +/* ========================================================= TWCRB ========================================================= */ + #define R_MTU_TWCRB_WRE_Pos (0UL) /*!< WRE (Bit 0) */ + #define R_MTU_TWCRB_WRE_Msk (0x1UL) /*!< WRE (Bitfield-Mask: 0x01) */ + #define R_MTU_TWCRB_SCC_Pos (1UL) /*!< SCC (Bit 1) */ + #define R_MTU_TWCRB_SCC_Msk (0x2UL) /*!< SCC (Bitfield-Mask: 0x01) */ + #define R_MTU_TWCRB_CCE_Pos (7UL) /*!< CCE (Bit 7) */ + #define R_MTU_TWCRB_CCE_Msk (0x80UL) /*!< CCE (Bitfield-Mask: 0x01) */ +/* ======================================================== TMDR2B ========================================================= */ + #define R_MTU_TMDR2B_DRS_Pos (0UL) /*!< DRS (Bit 0) */ + #define R_MTU_TMDR2B_DRS_Msk (0x1UL) /*!< DRS (Bitfield-Mask: 0x01) */ +/* ========================================================= TSTRB ========================================================= */ + #define R_MTU_TSTRB_CST6_Pos (6UL) /*!< CST6 (Bit 6) */ + #define R_MTU_TSTRB_CST6_Msk (0x40UL) /*!< CST6 (Bitfield-Mask: 0x01) */ + #define R_MTU_TSTRB_CST7_Pos (7UL) /*!< CST7 (Bit 7) */ + #define R_MTU_TSTRB_CST7_Msk (0x80UL) /*!< CST7 (Bitfield-Mask: 0x01) */ +/* ========================================================= TSYRB ========================================================= */ + #define R_MTU_TSYRB_SYNC6_Pos (6UL) /*!< SYNC6 (Bit 6) */ + #define R_MTU_TSYRB_SYNC6_Msk (0x40UL) /*!< SYNC6 (Bitfield-Mask: 0x01) */ + #define R_MTU_TSYRB_SYNC7_Pos (7UL) /*!< SYNC7 (Bit 7) */ + #define R_MTU_TSYRB_SYNC7_Msk (0x80UL) /*!< SYNC7 (Bitfield-Mask: 0x01) */ +/* ======================================================== TRWERB ========================================================= */ + #define R_MTU_TRWERB_RWE_Pos (0UL) /*!< RWE (Bit 0) */ + #define R_MTU_TRWERB_RWE_Msk (0x1UL) /*!< RWE (Bitfield-Mask: 0x01) */ + +/* =========================================================================================================================== */ +/* ================ R_MTU3 ================ */ +/* =========================================================================================================================== */ + +/* ========================================================== TCR ========================================================== */ + #define R_MTU3_TCR_TPSC_Pos (0UL) /*!< TPSC (Bit 0) */ + #define R_MTU3_TCR_TPSC_Msk (0x7UL) /*!< TPSC (Bitfield-Mask: 0x07) */ + #define R_MTU3_TCR_CKEG_Pos (3UL) /*!< CKEG (Bit 3) */ + #define R_MTU3_TCR_CKEG_Msk (0x18UL) /*!< CKEG (Bitfield-Mask: 0x03) */ + #define R_MTU3_TCR_CCLR_Pos (5UL) /*!< CCLR (Bit 5) */ + #define R_MTU3_TCR_CCLR_Msk (0xe0UL) /*!< CCLR (Bitfield-Mask: 0x07) */ +/* ========================================================= TMDR1 ========================================================= */ + #define R_MTU3_TMDR1_MD_Pos (0UL) /*!< MD (Bit 0) */ + #define R_MTU3_TMDR1_MD_Msk (0xfUL) /*!< MD (Bitfield-Mask: 0x0f) */ + #define R_MTU3_TMDR1_BFA_Pos (4UL) /*!< BFA (Bit 4) */ + #define R_MTU3_TMDR1_BFA_Msk (0x10UL) /*!< BFA (Bitfield-Mask: 0x01) */ + #define R_MTU3_TMDR1_BFB_Pos (5UL) /*!< BFB (Bit 5) */ + #define R_MTU3_TMDR1_BFB_Msk (0x20UL) /*!< BFB (Bitfield-Mask: 0x01) */ +/* ========================================================= TIORH ========================================================= */ + #define R_MTU3_TIORH_IOA_Pos (0UL) /*!< IOA (Bit 0) */ + #define R_MTU3_TIORH_IOA_Msk (0xfUL) /*!< IOA (Bitfield-Mask: 0x0f) */ + #define R_MTU3_TIORH_IOB_Pos (4UL) /*!< IOB (Bit 4) */ + #define R_MTU3_TIORH_IOB_Msk (0xf0UL) /*!< IOB (Bitfield-Mask: 0x0f) */ +/* ========================================================= TIORL ========================================================= */ + #define R_MTU3_TIORL_IOC_Pos (0UL) /*!< IOC (Bit 0) */ + #define R_MTU3_TIORL_IOC_Msk (0xfUL) /*!< IOC (Bitfield-Mask: 0x0f) */ + #define R_MTU3_TIORL_IOD_Pos (4UL) /*!< IOD (Bit 4) */ + #define R_MTU3_TIORL_IOD_Msk (0xf0UL) /*!< IOD (Bitfield-Mask: 0x0f) */ +/* ========================================================= TIER ========================================================== */ + #define R_MTU3_TIER_TGIEA_Pos (0UL) /*!< TGIEA (Bit 0) */ + #define R_MTU3_TIER_TGIEA_Msk (0x1UL) /*!< TGIEA (Bitfield-Mask: 0x01) */ + #define R_MTU3_TIER_TGIEB_Pos (1UL) /*!< TGIEB (Bit 1) */ + #define R_MTU3_TIER_TGIEB_Msk (0x2UL) /*!< TGIEB (Bitfield-Mask: 0x01) */ + #define R_MTU3_TIER_TGIEC_Pos (2UL) /*!< TGIEC (Bit 2) */ + #define R_MTU3_TIER_TGIEC_Msk (0x4UL) /*!< TGIEC (Bitfield-Mask: 0x01) */ + #define R_MTU3_TIER_TGIED_Pos (3UL) /*!< TGIED (Bit 3) */ + #define R_MTU3_TIER_TGIED_Msk (0x8UL) /*!< TGIED (Bitfield-Mask: 0x01) */ + #define R_MTU3_TIER_TCIEV_Pos (4UL) /*!< TCIEV (Bit 4) */ + #define R_MTU3_TIER_TCIEV_Msk (0x10UL) /*!< TCIEV (Bitfield-Mask: 0x01) */ + #define R_MTU3_TIER_TTGE_Pos (7UL) /*!< TTGE (Bit 7) */ + #define R_MTU3_TIER_TTGE_Msk (0x80UL) /*!< TTGE (Bitfield-Mask: 0x01) */ +/* ========================================================= TCNT ========================================================== */ +/* ========================================================= TGRA ========================================================== */ +/* ========================================================= TGRB ========================================================== */ +/* ========================================================= TGRC ========================================================== */ +/* ========================================================= TGRD ========================================================== */ +/* ========================================================== TSR ========================================================== */ + #define R_MTU3_TSR_TGFA_Pos (0UL) /*!< TGFA (Bit 0) */ + #define R_MTU3_TSR_TGFA_Msk (0x1UL) /*!< TGFA (Bitfield-Mask: 0x01) */ + #define R_MTU3_TSR_TGFB_Pos (1UL) /*!< TGFB (Bit 1) */ + #define R_MTU3_TSR_TGFB_Msk (0x2UL) /*!< TGFB (Bitfield-Mask: 0x01) */ + #define R_MTU3_TSR_TGFC_Pos (2UL) /*!< TGFC (Bit 2) */ + #define R_MTU3_TSR_TGFC_Msk (0x4UL) /*!< TGFC (Bitfield-Mask: 0x01) */ + #define R_MTU3_TSR_TGFD_Pos (3UL) /*!< TGFD (Bit 3) */ + #define R_MTU3_TSR_TGFD_Msk (0x8UL) /*!< TGFD (Bitfield-Mask: 0x01) */ + #define R_MTU3_TSR_TCFV_Pos (4UL) /*!< TCFV (Bit 4) */ + #define R_MTU3_TSR_TCFV_Msk (0x10UL) /*!< TCFV (Bitfield-Mask: 0x01) */ + #define R_MTU3_TSR_TCFU_Pos (5UL) /*!< TCFU (Bit 5) */ + #define R_MTU3_TSR_TCFU_Msk (0x20UL) /*!< TCFU (Bitfield-Mask: 0x01) */ + #define R_MTU3_TSR_TCFD_Pos (7UL) /*!< TCFD (Bit 7) */ + #define R_MTU3_TSR_TCFD_Msk (0x80UL) /*!< TCFD (Bitfield-Mask: 0x01) */ +/* ========================================================= TBTM ========================================================== */ + #define R_MTU3_TBTM_TTSA_Pos (0UL) /*!< TTSA (Bit 0) */ + #define R_MTU3_TBTM_TTSA_Msk (0x1UL) /*!< TTSA (Bitfield-Mask: 0x01) */ + #define R_MTU3_TBTM_TTSB_Pos (1UL) /*!< TTSB (Bit 1) */ + #define R_MTU3_TBTM_TTSB_Msk (0x2UL) /*!< TTSB (Bitfield-Mask: 0x01) */ +/* ========================================================= TCR2 ========================================================== */ + #define R_MTU3_TCR2_TPSC2_Pos (0UL) /*!< TPSC2 (Bit 0) */ + #define R_MTU3_TCR2_TPSC2_Msk (0x7UL) /*!< TPSC2 (Bitfield-Mask: 0x07) */ +/* ========================================================= TGRE ========================================================== */ + +/* =========================================================================================================================== */ +/* ================ R_MTU4 ================ */ +/* =========================================================================================================================== */ + +/* ========================================================== TCR ========================================================== */ + #define R_MTU4_TCR_TPSC_Pos (0UL) /*!< TPSC (Bit 0) */ + #define R_MTU4_TCR_TPSC_Msk (0x7UL) /*!< TPSC (Bitfield-Mask: 0x07) */ + #define R_MTU4_TCR_CKEG_Pos (3UL) /*!< CKEG (Bit 3) */ + #define R_MTU4_TCR_CKEG_Msk (0x18UL) /*!< CKEG (Bitfield-Mask: 0x03) */ + #define R_MTU4_TCR_CCLR_Pos (5UL) /*!< CCLR (Bit 5) */ + #define R_MTU4_TCR_CCLR_Msk (0xe0UL) /*!< CCLR (Bitfield-Mask: 0x07) */ +/* ========================================================= TMDR1 ========================================================= */ + #define R_MTU4_TMDR1_MD_Pos (0UL) /*!< MD (Bit 0) */ + #define R_MTU4_TMDR1_MD_Msk (0xfUL) /*!< MD (Bitfield-Mask: 0x0f) */ + #define R_MTU4_TMDR1_BFA_Pos (4UL) /*!< BFA (Bit 4) */ + #define R_MTU4_TMDR1_BFA_Msk (0x10UL) /*!< BFA (Bitfield-Mask: 0x01) */ + #define R_MTU4_TMDR1_BFB_Pos (5UL) /*!< BFB (Bit 5) */ + #define R_MTU4_TMDR1_BFB_Msk (0x20UL) /*!< BFB (Bitfield-Mask: 0x01) */ +/* ========================================================= TIORH ========================================================= */ + #define R_MTU4_TIORH_IOA_Pos (0UL) /*!< IOA (Bit 0) */ + #define R_MTU4_TIORH_IOA_Msk (0xfUL) /*!< IOA (Bitfield-Mask: 0x0f) */ + #define R_MTU4_TIORH_IOB_Pos (4UL) /*!< IOB (Bit 4) */ + #define R_MTU4_TIORH_IOB_Msk (0xf0UL) /*!< IOB (Bitfield-Mask: 0x0f) */ +/* ========================================================= TIORL ========================================================= */ + #define R_MTU4_TIORL_IOC_Pos (0UL) /*!< IOC (Bit 0) */ + #define R_MTU4_TIORL_IOC_Msk (0xfUL) /*!< IOC (Bitfield-Mask: 0x0f) */ + #define R_MTU4_TIORL_IOD_Pos (4UL) /*!< IOD (Bit 4) */ + #define R_MTU4_TIORL_IOD_Msk (0xf0UL) /*!< IOD (Bitfield-Mask: 0x0f) */ +/* ========================================================= TIER ========================================================== */ + #define R_MTU4_TIER_TGIEA_Pos (0UL) /*!< TGIEA (Bit 0) */ + #define R_MTU4_TIER_TGIEA_Msk (0x1UL) /*!< TGIEA (Bitfield-Mask: 0x01) */ + #define R_MTU4_TIER_TGIEB_Pos (1UL) /*!< TGIEB (Bit 1) */ + #define R_MTU4_TIER_TGIEB_Msk (0x2UL) /*!< TGIEB (Bitfield-Mask: 0x01) */ + #define R_MTU4_TIER_TGIEC_Pos (2UL) /*!< TGIEC (Bit 2) */ + #define R_MTU4_TIER_TGIEC_Msk (0x4UL) /*!< TGIEC (Bitfield-Mask: 0x01) */ + #define R_MTU4_TIER_TGIED_Pos (3UL) /*!< TGIED (Bit 3) */ + #define R_MTU4_TIER_TGIED_Msk (0x8UL) /*!< TGIED (Bitfield-Mask: 0x01) */ + #define R_MTU4_TIER_TCIEV_Pos (4UL) /*!< TCIEV (Bit 4) */ + #define R_MTU4_TIER_TCIEV_Msk (0x10UL) /*!< TCIEV (Bitfield-Mask: 0x01) */ + #define R_MTU4_TIER_TTGE2_Pos (6UL) /*!< TTGE2 (Bit 6) */ + #define R_MTU4_TIER_TTGE2_Msk (0x40UL) /*!< TTGE2 (Bitfield-Mask: 0x01) */ + #define R_MTU4_TIER_TTGE_Pos (7UL) /*!< TTGE (Bit 7) */ + #define R_MTU4_TIER_TTGE_Msk (0x80UL) /*!< TTGE (Bitfield-Mask: 0x01) */ +/* ========================================================= TCNT ========================================================== */ +/* ========================================================= TGRA ========================================================== */ +/* ========================================================= TGRB ========================================================== */ +/* ========================================================= TGRC ========================================================== */ +/* ========================================================= TGRD ========================================================== */ +/* ========================================================== TSR ========================================================== */ + #define R_MTU4_TSR_TGFA_Pos (0UL) /*!< TGFA (Bit 0) */ + #define R_MTU4_TSR_TGFA_Msk (0x1UL) /*!< TGFA (Bitfield-Mask: 0x01) */ + #define R_MTU4_TSR_TGFB_Pos (1UL) /*!< TGFB (Bit 1) */ + #define R_MTU4_TSR_TGFB_Msk (0x2UL) /*!< TGFB (Bitfield-Mask: 0x01) */ + #define R_MTU4_TSR_TGFC_Pos (2UL) /*!< TGFC (Bit 2) */ + #define R_MTU4_TSR_TGFC_Msk (0x4UL) /*!< TGFC (Bitfield-Mask: 0x01) */ + #define R_MTU4_TSR_TGFD_Pos (3UL) /*!< TGFD (Bit 3) */ + #define R_MTU4_TSR_TGFD_Msk (0x8UL) /*!< TGFD (Bitfield-Mask: 0x01) */ + #define R_MTU4_TSR_TCFV_Pos (4UL) /*!< TCFV (Bit 4) */ + #define R_MTU4_TSR_TCFV_Msk (0x10UL) /*!< TCFV (Bitfield-Mask: 0x01) */ + #define R_MTU4_TSR_TCFU_Pos (5UL) /*!< TCFU (Bit 5) */ + #define R_MTU4_TSR_TCFU_Msk (0x20UL) /*!< TCFU (Bitfield-Mask: 0x01) */ + #define R_MTU4_TSR_TCFD_Pos (7UL) /*!< TCFD (Bit 7) */ + #define R_MTU4_TSR_TCFD_Msk (0x80UL) /*!< TCFD (Bitfield-Mask: 0x01) */ +/* ========================================================= TBTM ========================================================== */ + #define R_MTU4_TBTM_TTSA_Pos (0UL) /*!< TTSA (Bit 0) */ + #define R_MTU4_TBTM_TTSA_Msk (0x1UL) /*!< TTSA (Bitfield-Mask: 0x01) */ + #define R_MTU4_TBTM_TTSB_Pos (1UL) /*!< TTSB (Bit 1) */ + #define R_MTU4_TBTM_TTSB_Msk (0x2UL) /*!< TTSB (Bitfield-Mask: 0x01) */ +/* ========================================================= TADCR ========================================================= */ + #define R_MTU4_TADCR_ITB4VE_Pos (0UL) /*!< ITB4VE (Bit 0) */ + #define R_MTU4_TADCR_ITB4VE_Msk (0x1UL) /*!< ITB4VE (Bitfield-Mask: 0x01) */ + #define R_MTU4_TADCR_ITB3AE_Pos (1UL) /*!< ITB3AE (Bit 1) */ + #define R_MTU4_TADCR_ITB3AE_Msk (0x2UL) /*!< ITB3AE (Bitfield-Mask: 0x01) */ + #define R_MTU4_TADCR_ITA4VE_Pos (2UL) /*!< ITA4VE (Bit 2) */ + #define R_MTU4_TADCR_ITA4VE_Msk (0x4UL) /*!< ITA4VE (Bitfield-Mask: 0x01) */ + #define R_MTU4_TADCR_ITA3AE_Pos (3UL) /*!< ITA3AE (Bit 3) */ + #define R_MTU4_TADCR_ITA3AE_Msk (0x8UL) /*!< ITA3AE (Bitfield-Mask: 0x01) */ + #define R_MTU4_TADCR_DT4BE_Pos (4UL) /*!< DT4BE (Bit 4) */ + #define R_MTU4_TADCR_DT4BE_Msk (0x10UL) /*!< DT4BE (Bitfield-Mask: 0x01) */ + #define R_MTU4_TADCR_UT4BE_Pos (5UL) /*!< UT4BE (Bit 5) */ + #define R_MTU4_TADCR_UT4BE_Msk (0x20UL) /*!< UT4BE (Bitfield-Mask: 0x01) */ + #define R_MTU4_TADCR_DT4AE_Pos (6UL) /*!< DT4AE (Bit 6) */ + #define R_MTU4_TADCR_DT4AE_Msk (0x40UL) /*!< DT4AE (Bitfield-Mask: 0x01) */ + #define R_MTU4_TADCR_UT4AE_Pos (7UL) /*!< UT4AE (Bit 7) */ + #define R_MTU4_TADCR_UT4AE_Msk (0x80UL) /*!< UT4AE (Bitfield-Mask: 0x01) */ + #define R_MTU4_TADCR_BF_Pos (14UL) /*!< BF (Bit 14) */ + #define R_MTU4_TADCR_BF_Msk (0xc000UL) /*!< BF (Bitfield-Mask: 0x03) */ +/* ======================================================== TADCORA ======================================================== */ +/* ======================================================== TADCORB ======================================================== */ +/* ======================================================= TADCOBRA ======================================================== */ +/* ======================================================= TADCOBRB ======================================================== */ +/* ========================================================= TCR2 ========================================================== */ + #define R_MTU4_TCR2_TPSC2_Pos (0UL) /*!< TPSC2 (Bit 0) */ + #define R_MTU4_TCR2_TPSC2_Msk (0x7UL) /*!< TPSC2 (Bitfield-Mask: 0x07) */ +/* ========================================================= TGRE ========================================================== */ +/* ========================================================= TGRF ========================================================== */ + +/* =========================================================================================================================== */ +/* ================ R_MTU_NF ================ */ +/* =========================================================================================================================== */ + +/* ========================================================= NFCR0 ========================================================= */ + #define R_MTU_NF_NFCR0_NFAEN_Pos (0UL) /*!< NFAEN (Bit 0) */ + #define R_MTU_NF_NFCR0_NFAEN_Msk (0x1UL) /*!< NFAEN (Bitfield-Mask: 0x01) */ + #define R_MTU_NF_NFCR0_NFBEN_Pos (1UL) /*!< NFBEN (Bit 1) */ + #define R_MTU_NF_NFCR0_NFBEN_Msk (0x2UL) /*!< NFBEN (Bitfield-Mask: 0x01) */ + #define R_MTU_NF_NFCR0_NFCEN_Pos (2UL) /*!< NFCEN (Bit 2) */ + #define R_MTU_NF_NFCR0_NFCEN_Msk (0x4UL) /*!< NFCEN (Bitfield-Mask: 0x01) */ + #define R_MTU_NF_NFCR0_NFDEN_Pos (3UL) /*!< NFDEN (Bit 3) */ + #define R_MTU_NF_NFCR0_NFDEN_Msk (0x8UL) /*!< NFDEN (Bitfield-Mask: 0x01) */ + #define R_MTU_NF_NFCR0_NFCS_Pos (4UL) /*!< NFCS (Bit 4) */ + #define R_MTU_NF_NFCR0_NFCS_Msk (0x30UL) /*!< NFCS (Bitfield-Mask: 0x03) */ +/* ========================================================= NFCR1 ========================================================= */ + #define R_MTU_NF_NFCR1_NFAEN_Pos (0UL) /*!< NFAEN (Bit 0) */ + #define R_MTU_NF_NFCR1_NFAEN_Msk (0x1UL) /*!< NFAEN (Bitfield-Mask: 0x01) */ + #define R_MTU_NF_NFCR1_NFBEN_Pos (1UL) /*!< NFBEN (Bit 1) */ + #define R_MTU_NF_NFCR1_NFBEN_Msk (0x2UL) /*!< NFBEN (Bitfield-Mask: 0x01) */ + #define R_MTU_NF_NFCR1_NFCS_Pos (4UL) /*!< NFCS (Bit 4) */ + #define R_MTU_NF_NFCR1_NFCS_Msk (0x30UL) /*!< NFCS (Bitfield-Mask: 0x03) */ +/* ========================================================= NFCR2 ========================================================= */ + #define R_MTU_NF_NFCR2_NFAEN_Pos (0UL) /*!< NFAEN (Bit 0) */ + #define R_MTU_NF_NFCR2_NFAEN_Msk (0x1UL) /*!< NFAEN (Bitfield-Mask: 0x01) */ + #define R_MTU_NF_NFCR2_NFBEN_Pos (1UL) /*!< NFBEN (Bit 1) */ + #define R_MTU_NF_NFCR2_NFBEN_Msk (0x2UL) /*!< NFBEN (Bitfield-Mask: 0x01) */ + #define R_MTU_NF_NFCR2_NFCS_Pos (4UL) /*!< NFCS (Bit 4) */ + #define R_MTU_NF_NFCR2_NFCS_Msk (0x30UL) /*!< NFCS (Bitfield-Mask: 0x03) */ +/* ========================================================= NFCR3 ========================================================= */ + #define R_MTU_NF_NFCR3_NFAEN_Pos (0UL) /*!< NFAEN (Bit 0) */ + #define R_MTU_NF_NFCR3_NFAEN_Msk (0x1UL) /*!< NFAEN (Bitfield-Mask: 0x01) */ + #define R_MTU_NF_NFCR3_NFBEN_Pos (1UL) /*!< NFBEN (Bit 1) */ + #define R_MTU_NF_NFCR3_NFBEN_Msk (0x2UL) /*!< NFBEN (Bitfield-Mask: 0x01) */ + #define R_MTU_NF_NFCR3_NFCEN_Pos (2UL) /*!< NFCEN (Bit 2) */ + #define R_MTU_NF_NFCR3_NFCEN_Msk (0x4UL) /*!< NFCEN (Bitfield-Mask: 0x01) */ + #define R_MTU_NF_NFCR3_NFDEN_Pos (3UL) /*!< NFDEN (Bit 3) */ + #define R_MTU_NF_NFCR3_NFDEN_Msk (0x8UL) /*!< NFDEN (Bitfield-Mask: 0x01) */ + #define R_MTU_NF_NFCR3_NFCS_Pos (4UL) /*!< NFCS (Bit 4) */ + #define R_MTU_NF_NFCR3_NFCS_Msk (0x30UL) /*!< NFCS (Bitfield-Mask: 0x03) */ +/* ========================================================= NFCR4 ========================================================= */ + #define R_MTU_NF_NFCR4_NFAEN_Pos (0UL) /*!< NFAEN (Bit 0) */ + #define R_MTU_NF_NFCR4_NFAEN_Msk (0x1UL) /*!< NFAEN (Bitfield-Mask: 0x01) */ + #define R_MTU_NF_NFCR4_NFBEN_Pos (1UL) /*!< NFBEN (Bit 1) */ + #define R_MTU_NF_NFCR4_NFBEN_Msk (0x2UL) /*!< NFBEN (Bitfield-Mask: 0x01) */ + #define R_MTU_NF_NFCR4_NFCEN_Pos (2UL) /*!< NFCEN (Bit 2) */ + #define R_MTU_NF_NFCR4_NFCEN_Msk (0x4UL) /*!< NFCEN (Bitfield-Mask: 0x01) */ + #define R_MTU_NF_NFCR4_NFDEN_Pos (3UL) /*!< NFDEN (Bit 3) */ + #define R_MTU_NF_NFCR4_NFDEN_Msk (0x8UL) /*!< NFDEN (Bitfield-Mask: 0x01) */ + #define R_MTU_NF_NFCR4_NFCS_Pos (4UL) /*!< NFCS (Bit 4) */ + #define R_MTU_NF_NFCR4_NFCS_Msk (0x30UL) /*!< NFCS (Bitfield-Mask: 0x03) */ +/* ========================================================= NFCR8 ========================================================= */ + #define R_MTU_NF_NFCR8_NFAEN_Pos (0UL) /*!< NFAEN (Bit 0) */ + #define R_MTU_NF_NFCR8_NFAEN_Msk (0x1UL) /*!< NFAEN (Bitfield-Mask: 0x01) */ + #define R_MTU_NF_NFCR8_NFBEN_Pos (1UL) /*!< NFBEN (Bit 1) */ + #define R_MTU_NF_NFCR8_NFBEN_Msk (0x2UL) /*!< NFBEN (Bitfield-Mask: 0x01) */ + #define R_MTU_NF_NFCR8_NFCEN_Pos (2UL) /*!< NFCEN (Bit 2) */ + #define R_MTU_NF_NFCR8_NFCEN_Msk (0x4UL) /*!< NFCEN (Bitfield-Mask: 0x01) */ + #define R_MTU_NF_NFCR8_NFDEN_Pos (3UL) /*!< NFDEN (Bit 3) */ + #define R_MTU_NF_NFCR8_NFDEN_Msk (0x8UL) /*!< NFDEN (Bitfield-Mask: 0x01) */ + #define R_MTU_NF_NFCR8_NFCS_Pos (4UL) /*!< NFCS (Bit 4) */ + #define R_MTU_NF_NFCR8_NFCS_Msk (0x30UL) /*!< NFCS (Bitfield-Mask: 0x03) */ +/* ========================================================= NFCRC ========================================================= */ + #define R_MTU_NF_NFCRC_NFAEN_Pos (0UL) /*!< NFAEN (Bit 0) */ + #define R_MTU_NF_NFCRC_NFAEN_Msk (0x1UL) /*!< NFAEN (Bitfield-Mask: 0x01) */ + #define R_MTU_NF_NFCRC_NFBEN_Pos (1UL) /*!< NFBEN (Bit 1) */ + #define R_MTU_NF_NFCRC_NFBEN_Msk (0x2UL) /*!< NFBEN (Bitfield-Mask: 0x01) */ + #define R_MTU_NF_NFCRC_NFCEN_Pos (2UL) /*!< NFCEN (Bit 2) */ + #define R_MTU_NF_NFCRC_NFCEN_Msk (0x4UL) /*!< NFCEN (Bitfield-Mask: 0x01) */ + #define R_MTU_NF_NFCRC_NFDEN_Pos (3UL) /*!< NFDEN (Bit 3) */ + #define R_MTU_NF_NFCRC_NFDEN_Msk (0x8UL) /*!< NFDEN (Bitfield-Mask: 0x01) */ + #define R_MTU_NF_NFCRC_NFCS_Pos (4UL) /*!< NFCS (Bit 4) */ + #define R_MTU_NF_NFCRC_NFCS_Msk (0x30UL) /*!< NFCS (Bitfield-Mask: 0x03) */ +/* ========================================================= NFCR6 ========================================================= */ + #define R_MTU_NF_NFCR6_NFAEN_Pos (0UL) /*!< NFAEN (Bit 0) */ + #define R_MTU_NF_NFCR6_NFAEN_Msk (0x1UL) /*!< NFAEN (Bitfield-Mask: 0x01) */ + #define R_MTU_NF_NFCR6_NFBEN_Pos (1UL) /*!< NFBEN (Bit 1) */ + #define R_MTU_NF_NFCR6_NFBEN_Msk (0x2UL) /*!< NFBEN (Bitfield-Mask: 0x01) */ + #define R_MTU_NF_NFCR6_NFCEN_Pos (2UL) /*!< NFCEN (Bit 2) */ + #define R_MTU_NF_NFCR6_NFCEN_Msk (0x4UL) /*!< NFCEN (Bitfield-Mask: 0x01) */ + #define R_MTU_NF_NFCR6_NFDEN_Pos (3UL) /*!< NFDEN (Bit 3) */ + #define R_MTU_NF_NFCR6_NFDEN_Msk (0x8UL) /*!< NFDEN (Bitfield-Mask: 0x01) */ + #define R_MTU_NF_NFCR6_NFCS_Pos (4UL) /*!< NFCS (Bit 4) */ + #define R_MTU_NF_NFCR6_NFCS_Msk (0x30UL) /*!< NFCS (Bitfield-Mask: 0x03) */ +/* ========================================================= NFCR7 ========================================================= */ + #define R_MTU_NF_NFCR7_NFAEN_Pos (0UL) /*!< NFAEN (Bit 0) */ + #define R_MTU_NF_NFCR7_NFAEN_Msk (0x1UL) /*!< NFAEN (Bitfield-Mask: 0x01) */ + #define R_MTU_NF_NFCR7_NFBEN_Pos (1UL) /*!< NFBEN (Bit 1) */ + #define R_MTU_NF_NFCR7_NFBEN_Msk (0x2UL) /*!< NFBEN (Bitfield-Mask: 0x01) */ + #define R_MTU_NF_NFCR7_NFCEN_Pos (2UL) /*!< NFCEN (Bit 2) */ + #define R_MTU_NF_NFCR7_NFCEN_Msk (0x4UL) /*!< NFCEN (Bitfield-Mask: 0x01) */ + #define R_MTU_NF_NFCR7_NFDEN_Pos (3UL) /*!< NFDEN (Bit 3) */ + #define R_MTU_NF_NFCR7_NFDEN_Msk (0x8UL) /*!< NFDEN (Bitfield-Mask: 0x01) */ + #define R_MTU_NF_NFCR7_NFCS_Pos (4UL) /*!< NFCS (Bit 4) */ + #define R_MTU_NF_NFCR7_NFCS_Msk (0x30UL) /*!< NFCS (Bitfield-Mask: 0x03) */ +/* ========================================================= NFCR5 ========================================================= */ + #define R_MTU_NF_NFCR5_NFUEN_Pos (0UL) /*!< NFUEN (Bit 0) */ + #define R_MTU_NF_NFCR5_NFUEN_Msk (0x1UL) /*!< NFUEN (Bitfield-Mask: 0x01) */ + #define R_MTU_NF_NFCR5_NFVEN_Pos (1UL) /*!< NFVEN (Bit 1) */ + #define R_MTU_NF_NFCR5_NFVEN_Msk (0x2UL) /*!< NFVEN (Bitfield-Mask: 0x01) */ + #define R_MTU_NF_NFCR5_NFWEN_Pos (2UL) /*!< NFWEN (Bit 2) */ + #define R_MTU_NF_NFCR5_NFWEN_Msk (0x4UL) /*!< NFWEN (Bitfield-Mask: 0x01) */ + #define R_MTU_NF_NFCR5_NFCS_Pos (4UL) /*!< NFCS (Bit 4) */ + #define R_MTU_NF_NFCR5_NFCS_Msk (0x30UL) /*!< NFCS (Bitfield-Mask: 0x03) */ + +/* =========================================================================================================================== */ +/* ================ R_MTU0 ================ */ +/* =========================================================================================================================== */ + +/* ========================================================== TCR ========================================================== */ + #define R_MTU0_TCR_TPSC_Pos (0UL) /*!< TPSC (Bit 0) */ + #define R_MTU0_TCR_TPSC_Msk (0x7UL) /*!< TPSC (Bitfield-Mask: 0x07) */ + #define R_MTU0_TCR_CKEG_Pos (3UL) /*!< CKEG (Bit 3) */ + #define R_MTU0_TCR_CKEG_Msk (0x18UL) /*!< CKEG (Bitfield-Mask: 0x03) */ + #define R_MTU0_TCR_CCLR_Pos (5UL) /*!< CCLR (Bit 5) */ + #define R_MTU0_TCR_CCLR_Msk (0xe0UL) /*!< CCLR (Bitfield-Mask: 0x07) */ +/* ========================================================= TMDR1 ========================================================= */ + #define R_MTU0_TMDR1_MD_Pos (0UL) /*!< MD (Bit 0) */ + #define R_MTU0_TMDR1_MD_Msk (0xfUL) /*!< MD (Bitfield-Mask: 0x0f) */ + #define R_MTU0_TMDR1_BFA_Pos (4UL) /*!< BFA (Bit 4) */ + #define R_MTU0_TMDR1_BFA_Msk (0x10UL) /*!< BFA (Bitfield-Mask: 0x01) */ + #define R_MTU0_TMDR1_BFB_Pos (5UL) /*!< BFB (Bit 5) */ + #define R_MTU0_TMDR1_BFB_Msk (0x20UL) /*!< BFB (Bitfield-Mask: 0x01) */ + #define R_MTU0_TMDR1_BFE_Pos (6UL) /*!< BFE (Bit 6) */ + #define R_MTU0_TMDR1_BFE_Msk (0x40UL) /*!< BFE (Bitfield-Mask: 0x01) */ +/* ========================================================= TIORH ========================================================= */ + #define R_MTU0_TIORH_IOA_Pos (0UL) /*!< IOA (Bit 0) */ + #define R_MTU0_TIORH_IOA_Msk (0xfUL) /*!< IOA (Bitfield-Mask: 0x0f) */ + #define R_MTU0_TIORH_IOB_Pos (4UL) /*!< IOB (Bit 4) */ + #define R_MTU0_TIORH_IOB_Msk (0xf0UL) /*!< IOB (Bitfield-Mask: 0x0f) */ +/* ========================================================= TIORL ========================================================= */ + #define R_MTU0_TIORL_IOC_Pos (0UL) /*!< IOC (Bit 0) */ + #define R_MTU0_TIORL_IOC_Msk (0xfUL) /*!< IOC (Bitfield-Mask: 0x0f) */ + #define R_MTU0_TIORL_IOD_Pos (4UL) /*!< IOD (Bit 4) */ + #define R_MTU0_TIORL_IOD_Msk (0xf0UL) /*!< IOD (Bitfield-Mask: 0x0f) */ +/* ========================================================= TIER ========================================================== */ + #define R_MTU0_TIER_TGIEA_Pos (0UL) /*!< TGIEA (Bit 0) */ + #define R_MTU0_TIER_TGIEA_Msk (0x1UL) /*!< TGIEA (Bitfield-Mask: 0x01) */ + #define R_MTU0_TIER_TGIEB_Pos (1UL) /*!< TGIEB (Bit 1) */ + #define R_MTU0_TIER_TGIEB_Msk (0x2UL) /*!< TGIEB (Bitfield-Mask: 0x01) */ + #define R_MTU0_TIER_TGIEC_Pos (2UL) /*!< TGIEC (Bit 2) */ + #define R_MTU0_TIER_TGIEC_Msk (0x4UL) /*!< TGIEC (Bitfield-Mask: 0x01) */ + #define R_MTU0_TIER_TGIED_Pos (3UL) /*!< TGIED (Bit 3) */ + #define R_MTU0_TIER_TGIED_Msk (0x8UL) /*!< TGIED (Bitfield-Mask: 0x01) */ + #define R_MTU0_TIER_TCIEV_Pos (4UL) /*!< TCIEV (Bit 4) */ + #define R_MTU0_TIER_TCIEV_Msk (0x10UL) /*!< TCIEV (Bitfield-Mask: 0x01) */ + #define R_MTU0_TIER_TTGE_Pos (7UL) /*!< TTGE (Bit 7) */ + #define R_MTU0_TIER_TTGE_Msk (0x80UL) /*!< TTGE (Bitfield-Mask: 0x01) */ +/* ========================================================= TCNT ========================================================== */ +/* ========================================================= TGRA ========================================================== */ +/* ========================================================= TGRB ========================================================== */ +/* ========================================================= TGRC ========================================================== */ +/* ========================================================= TGRD ========================================================== */ +/* ========================================================= TGRE ========================================================== */ +/* ========================================================= TGRF ========================================================== */ +/* ========================================================= TIER2 ========================================================= */ + #define R_MTU0_TIER2_TGIEE_Pos (0UL) /*!< TGIEE (Bit 0) */ + #define R_MTU0_TIER2_TGIEE_Msk (0x1UL) /*!< TGIEE (Bitfield-Mask: 0x01) */ + #define R_MTU0_TIER2_TGIEF_Pos (1UL) /*!< TGIEF (Bit 1) */ + #define R_MTU0_TIER2_TGIEF_Msk (0x2UL) /*!< TGIEF (Bitfield-Mask: 0x01) */ + #define R_MTU0_TIER2_TTGE2_Pos (7UL) /*!< TTGE2 (Bit 7) */ + #define R_MTU0_TIER2_TTGE2_Msk (0x80UL) /*!< TTGE2 (Bitfield-Mask: 0x01) */ +/* ========================================================= TBTM ========================================================== */ + #define R_MTU0_TBTM_TTSA_Pos (0UL) /*!< TTSA (Bit 0) */ + #define R_MTU0_TBTM_TTSA_Msk (0x1UL) /*!< TTSA (Bitfield-Mask: 0x01) */ + #define R_MTU0_TBTM_TTSB_Pos (1UL) /*!< TTSB (Bit 1) */ + #define R_MTU0_TBTM_TTSB_Msk (0x2UL) /*!< TTSB (Bitfield-Mask: 0x01) */ + #define R_MTU0_TBTM_TTSE_Pos (2UL) /*!< TTSE (Bit 2) */ + #define R_MTU0_TBTM_TTSE_Msk (0x4UL) /*!< TTSE (Bitfield-Mask: 0x01) */ +/* ========================================================= TCR2 ========================================================== */ + #define R_MTU0_TCR2_TPSC2_Pos (0UL) /*!< TPSC2 (Bit 0) */ + #define R_MTU0_TCR2_TPSC2_Msk (0x7UL) /*!< TPSC2 (Bitfield-Mask: 0x07) */ + +/* =========================================================================================================================== */ +/* ================ R_MTU1 ================ */ +/* =========================================================================================================================== */ + +/* ========================================================== TCR ========================================================== */ + #define R_MTU1_TCR_TPSC_Pos (0UL) /*!< TPSC (Bit 0) */ + #define R_MTU1_TCR_TPSC_Msk (0x7UL) /*!< TPSC (Bitfield-Mask: 0x07) */ + #define R_MTU1_TCR_CKEG_Pos (3UL) /*!< CKEG (Bit 3) */ + #define R_MTU1_TCR_CKEG_Msk (0x18UL) /*!< CKEG (Bitfield-Mask: 0x03) */ + #define R_MTU1_TCR_CCLR_Pos (5UL) /*!< CCLR (Bit 5) */ + #define R_MTU1_TCR_CCLR_Msk (0xe0UL) /*!< CCLR (Bitfield-Mask: 0x07) */ +/* ========================================================= TMDR1 ========================================================= */ + #define R_MTU1_TMDR1_MD_Pos (0UL) /*!< MD (Bit 0) */ + #define R_MTU1_TMDR1_MD_Msk (0xfUL) /*!< MD (Bitfield-Mask: 0x0f) */ +/* ========================================================= TIOR ========================================================== */ + #define R_MTU1_TIOR_IOA_Pos (0UL) /*!< IOA (Bit 0) */ + #define R_MTU1_TIOR_IOA_Msk (0xfUL) /*!< IOA (Bitfield-Mask: 0x0f) */ + #define R_MTU1_TIOR_IOB_Pos (4UL) /*!< IOB (Bit 4) */ + #define R_MTU1_TIOR_IOB_Msk (0xf0UL) /*!< IOB (Bitfield-Mask: 0x0f) */ +/* ========================================================= TIER ========================================================== */ + #define R_MTU1_TIER_TGIEA_Pos (0UL) /*!< TGIEA (Bit 0) */ + #define R_MTU1_TIER_TGIEA_Msk (0x1UL) /*!< TGIEA (Bitfield-Mask: 0x01) */ + #define R_MTU1_TIER_TGIEB_Pos (1UL) /*!< TGIEB (Bit 1) */ + #define R_MTU1_TIER_TGIEB_Msk (0x2UL) /*!< TGIEB (Bitfield-Mask: 0x01) */ + #define R_MTU1_TIER_TCIEV_Pos (4UL) /*!< TCIEV (Bit 4) */ + #define R_MTU1_TIER_TCIEV_Msk (0x10UL) /*!< TCIEV (Bitfield-Mask: 0x01) */ + #define R_MTU1_TIER_TCIEU_Pos (5UL) /*!< TCIEU (Bit 5) */ + #define R_MTU1_TIER_TCIEU_Msk (0x20UL) /*!< TCIEU (Bitfield-Mask: 0x01) */ + #define R_MTU1_TIER_TTGE_Pos (7UL) /*!< TTGE (Bit 7) */ + #define R_MTU1_TIER_TTGE_Msk (0x80UL) /*!< TTGE (Bitfield-Mask: 0x01) */ +/* ========================================================== TSR ========================================================== */ + #define R_MTU1_TSR_TGFA_Pos (0UL) /*!< TGFA (Bit 0) */ + #define R_MTU1_TSR_TGFA_Msk (0x1UL) /*!< TGFA (Bitfield-Mask: 0x01) */ + #define R_MTU1_TSR_TGFB_Pos (1UL) /*!< TGFB (Bit 1) */ + #define R_MTU1_TSR_TGFB_Msk (0x2UL) /*!< TGFB (Bitfield-Mask: 0x01) */ + #define R_MTU1_TSR_TGFC_Pos (2UL) /*!< TGFC (Bit 2) */ + #define R_MTU1_TSR_TGFC_Msk (0x4UL) /*!< TGFC (Bitfield-Mask: 0x01) */ + #define R_MTU1_TSR_TGFD_Pos (3UL) /*!< TGFD (Bit 3) */ + #define R_MTU1_TSR_TGFD_Msk (0x8UL) /*!< TGFD (Bitfield-Mask: 0x01) */ + #define R_MTU1_TSR_TCFV_Pos (4UL) /*!< TCFV (Bit 4) */ + #define R_MTU1_TSR_TCFV_Msk (0x10UL) /*!< TCFV (Bitfield-Mask: 0x01) */ + #define R_MTU1_TSR_TCFU_Pos (5UL) /*!< TCFU (Bit 5) */ + #define R_MTU1_TSR_TCFU_Msk (0x20UL) /*!< TCFU (Bitfield-Mask: 0x01) */ + #define R_MTU1_TSR_TCFD_Pos (7UL) /*!< TCFD (Bit 7) */ + #define R_MTU1_TSR_TCFD_Msk (0x80UL) /*!< TCFD (Bitfield-Mask: 0x01) */ +/* ========================================================= TCNT ========================================================== */ +/* ========================================================= TGRA ========================================================== */ +/* ========================================================= TGRB ========================================================== */ +/* ========================================================= TICCR ========================================================= */ + #define R_MTU1_TICCR_I1AE_Pos (0UL) /*!< I1AE (Bit 0) */ + #define R_MTU1_TICCR_I1AE_Msk (0x1UL) /*!< I1AE (Bitfield-Mask: 0x01) */ + #define R_MTU1_TICCR_I1BE_Pos (1UL) /*!< I1BE (Bit 1) */ + #define R_MTU1_TICCR_I1BE_Msk (0x2UL) /*!< I1BE (Bitfield-Mask: 0x01) */ + #define R_MTU1_TICCR_I2AE_Pos (2UL) /*!< I2AE (Bit 2) */ + #define R_MTU1_TICCR_I2AE_Msk (0x4UL) /*!< I2AE (Bitfield-Mask: 0x01) */ + #define R_MTU1_TICCR_I2BE_Pos (3UL) /*!< I2BE (Bit 3) */ + #define R_MTU1_TICCR_I2BE_Msk (0x8UL) /*!< I2BE (Bitfield-Mask: 0x01) */ +/* ========================================================= TMDR3 ========================================================= */ + #define R_MTU1_TMDR3_LWA_Pos (0UL) /*!< LWA (Bit 0) */ + #define R_MTU1_TMDR3_LWA_Msk (0x1UL) /*!< LWA (Bitfield-Mask: 0x01) */ + #define R_MTU1_TMDR3_PHCKSEL_Pos (1UL) /*!< PHCKSEL (Bit 1) */ + #define R_MTU1_TMDR3_PHCKSEL_Msk (0x2UL) /*!< PHCKSEL (Bitfield-Mask: 0x01) */ +/* ========================================================= TCR2 ========================================================== */ + #define R_MTU1_TCR2_TPSC2_Pos (0UL) /*!< TPSC2 (Bit 0) */ + #define R_MTU1_TCR2_TPSC2_Msk (0x7UL) /*!< TPSC2 (Bitfield-Mask: 0x07) */ + #define R_MTU1_TCR2_PCB_Pos (3UL) /*!< PCB (Bit 3) */ + #define R_MTU1_TCR2_PCB_Msk (0x18UL) /*!< PCB (Bitfield-Mask: 0x03) */ +/* ======================================================== TCNTLW ========================================================= */ +/* ======================================================== TGRALW ========================================================= */ +/* ======================================================== TGRBLW ========================================================= */ + +/* =========================================================================================================================== */ +/* ================ R_MTU2 ================ */ +/* =========================================================================================================================== */ + +/* ========================================================== TCR ========================================================== */ + #define R_MTU2_TCR_TPSC_Pos (0UL) /*!< TPSC (Bit 0) */ + #define R_MTU2_TCR_TPSC_Msk (0x7UL) /*!< TPSC (Bitfield-Mask: 0x07) */ + #define R_MTU2_TCR_CKEG_Pos (3UL) /*!< CKEG (Bit 3) */ + #define R_MTU2_TCR_CKEG_Msk (0x18UL) /*!< CKEG (Bitfield-Mask: 0x03) */ + #define R_MTU2_TCR_CCLR_Pos (5UL) /*!< CCLR (Bit 5) */ + #define R_MTU2_TCR_CCLR_Msk (0xe0UL) /*!< CCLR (Bitfield-Mask: 0x07) */ +/* ========================================================= TMDR1 ========================================================= */ + #define R_MTU2_TMDR1_MD_Pos (0UL) /*!< MD (Bit 0) */ + #define R_MTU2_TMDR1_MD_Msk (0xfUL) /*!< MD (Bitfield-Mask: 0x0f) */ +/* ========================================================= TIOR ========================================================== */ + #define R_MTU2_TIOR_IOA_Pos (0UL) /*!< IOA (Bit 0) */ + #define R_MTU2_TIOR_IOA_Msk (0xfUL) /*!< IOA (Bitfield-Mask: 0x0f) */ + #define R_MTU2_TIOR_IOB_Pos (4UL) /*!< IOB (Bit 4) */ + #define R_MTU2_TIOR_IOB_Msk (0xf0UL) /*!< IOB (Bitfield-Mask: 0x0f) */ +/* ========================================================= TIER ========================================================== */ + #define R_MTU2_TIER_TGIEA_Pos (0UL) /*!< TGIEA (Bit 0) */ + #define R_MTU2_TIER_TGIEA_Msk (0x1UL) /*!< TGIEA (Bitfield-Mask: 0x01) */ + #define R_MTU2_TIER_TGIEB_Pos (1UL) /*!< TGIEB (Bit 1) */ + #define R_MTU2_TIER_TGIEB_Msk (0x2UL) /*!< TGIEB (Bitfield-Mask: 0x01) */ + #define R_MTU2_TIER_TCIEV_Pos (4UL) /*!< TCIEV (Bit 4) */ + #define R_MTU2_TIER_TCIEV_Msk (0x10UL) /*!< TCIEV (Bitfield-Mask: 0x01) */ + #define R_MTU2_TIER_TCIEU_Pos (5UL) /*!< TCIEU (Bit 5) */ + #define R_MTU2_TIER_TCIEU_Msk (0x20UL) /*!< TCIEU (Bitfield-Mask: 0x01) */ + #define R_MTU2_TIER_TTGE_Pos (7UL) /*!< TTGE (Bit 7) */ + #define R_MTU2_TIER_TTGE_Msk (0x80UL) /*!< TTGE (Bitfield-Mask: 0x01) */ +/* ========================================================== TSR ========================================================== */ + #define R_MTU2_TSR_TGFA_Pos (0UL) /*!< TGFA (Bit 0) */ + #define R_MTU2_TSR_TGFA_Msk (0x1UL) /*!< TGFA (Bitfield-Mask: 0x01) */ + #define R_MTU2_TSR_TGFB_Pos (1UL) /*!< TGFB (Bit 1) */ + #define R_MTU2_TSR_TGFB_Msk (0x2UL) /*!< TGFB (Bitfield-Mask: 0x01) */ + #define R_MTU2_TSR_TGFC_Pos (2UL) /*!< TGFC (Bit 2) */ + #define R_MTU2_TSR_TGFC_Msk (0x4UL) /*!< TGFC (Bitfield-Mask: 0x01) */ + #define R_MTU2_TSR_TGFD_Pos (3UL) /*!< TGFD (Bit 3) */ + #define R_MTU2_TSR_TGFD_Msk (0x8UL) /*!< TGFD (Bitfield-Mask: 0x01) */ + #define R_MTU2_TSR_TCFV_Pos (4UL) /*!< TCFV (Bit 4) */ + #define R_MTU2_TSR_TCFV_Msk (0x10UL) /*!< TCFV (Bitfield-Mask: 0x01) */ + #define R_MTU2_TSR_TCFU_Pos (5UL) /*!< TCFU (Bit 5) */ + #define R_MTU2_TSR_TCFU_Msk (0x20UL) /*!< TCFU (Bitfield-Mask: 0x01) */ + #define R_MTU2_TSR_TCFD_Pos (7UL) /*!< TCFD (Bit 7) */ + #define R_MTU2_TSR_TCFD_Msk (0x80UL) /*!< TCFD (Bitfield-Mask: 0x01) */ +/* ========================================================= TCNT ========================================================== */ +/* ========================================================= TGRA ========================================================== */ +/* ========================================================= TGRB ========================================================== */ +/* ========================================================= TCR2 ========================================================== */ + #define R_MTU2_TCR2_TPSC2_Pos (0UL) /*!< TPSC2 (Bit 0) */ + #define R_MTU2_TCR2_TPSC2_Msk (0x7UL) /*!< TPSC2 (Bitfield-Mask: 0x07) */ + #define R_MTU2_TCR2_PCB_Pos (3UL) /*!< PCB (Bit 3) */ + #define R_MTU2_TCR2_PCB_Msk (0x18UL) /*!< PCB (Bitfield-Mask: 0x03) */ + +/* =========================================================================================================================== */ +/* ================ R_MTU8 ================ */ +/* =========================================================================================================================== */ + +/* ========================================================== TCR ========================================================== */ + #define R_MTU8_TCR_TPSC_Pos (0UL) /*!< TPSC (Bit 0) */ + #define R_MTU8_TCR_TPSC_Msk (0x7UL) /*!< TPSC (Bitfield-Mask: 0x07) */ + #define R_MTU8_TCR_CKEG_Pos (3UL) /*!< CKEG (Bit 3) */ + #define R_MTU8_TCR_CKEG_Msk (0x18UL) /*!< CKEG (Bitfield-Mask: 0x03) */ + #define R_MTU8_TCR_CCLR_Pos (5UL) /*!< CCLR (Bit 5) */ + #define R_MTU8_TCR_CCLR_Msk (0xe0UL) /*!< CCLR (Bitfield-Mask: 0x07) */ +/* ========================================================= TMDR1 ========================================================= */ + #define R_MTU8_TMDR1_MD_Pos (0UL) /*!< MD (Bit 0) */ + #define R_MTU8_TMDR1_MD_Msk (0xfUL) /*!< MD (Bitfield-Mask: 0x0f) */ + #define R_MTU8_TMDR1_BFA_Pos (4UL) /*!< BFA (Bit 4) */ + #define R_MTU8_TMDR1_BFA_Msk (0x10UL) /*!< BFA (Bitfield-Mask: 0x01) */ + #define R_MTU8_TMDR1_BFB_Pos (5UL) /*!< BFB (Bit 5) */ + #define R_MTU8_TMDR1_BFB_Msk (0x20UL) /*!< BFB (Bitfield-Mask: 0x01) */ +/* ========================================================= TIORH ========================================================= */ + #define R_MTU8_TIORH_IOA_Pos (0UL) /*!< IOA (Bit 0) */ + #define R_MTU8_TIORH_IOA_Msk (0xfUL) /*!< IOA (Bitfield-Mask: 0x0f) */ + #define R_MTU8_TIORH_IOB_Pos (4UL) /*!< IOB (Bit 4) */ + #define R_MTU8_TIORH_IOB_Msk (0xf0UL) /*!< IOB (Bitfield-Mask: 0x0f) */ +/* ========================================================= TIORL ========================================================= */ + #define R_MTU8_TIORL_IOC_Pos (0UL) /*!< IOC (Bit 0) */ + #define R_MTU8_TIORL_IOC_Msk (0xfUL) /*!< IOC (Bitfield-Mask: 0x0f) */ + #define R_MTU8_TIORL_IOD_Pos (4UL) /*!< IOD (Bit 4) */ + #define R_MTU8_TIORL_IOD_Msk (0xf0UL) /*!< IOD (Bitfield-Mask: 0x0f) */ +/* ========================================================= TIER ========================================================== */ + #define R_MTU8_TIER_TGIEA_Pos (0UL) /*!< TGIEA (Bit 0) */ + #define R_MTU8_TIER_TGIEA_Msk (0x1UL) /*!< TGIEA (Bitfield-Mask: 0x01) */ + #define R_MTU8_TIER_TGIEB_Pos (1UL) /*!< TGIEB (Bit 1) */ + #define R_MTU8_TIER_TGIEB_Msk (0x2UL) /*!< TGIEB (Bitfield-Mask: 0x01) */ + #define R_MTU8_TIER_TGIEC_Pos (2UL) /*!< TGIEC (Bit 2) */ + #define R_MTU8_TIER_TGIEC_Msk (0x4UL) /*!< TGIEC (Bitfield-Mask: 0x01) */ + #define R_MTU8_TIER_TGIED_Pos (3UL) /*!< TGIED (Bit 3) */ + #define R_MTU8_TIER_TGIED_Msk (0x8UL) /*!< TGIED (Bitfield-Mask: 0x01) */ + #define R_MTU8_TIER_TCIEV_Pos (4UL) /*!< TCIEV (Bit 4) */ + #define R_MTU8_TIER_TCIEV_Msk (0x10UL) /*!< TCIEV (Bitfield-Mask: 0x01) */ +/* ========================================================= TCR2 ========================================================== */ + #define R_MTU8_TCR2_TPSC2_Pos (0UL) /*!< TPSC2 (Bit 0) */ + #define R_MTU8_TCR2_TPSC2_Msk (0x7UL) /*!< TPSC2 (Bitfield-Mask: 0x07) */ +/* ========================================================= TCNT ========================================================== */ +/* ========================================================= TGRA ========================================================== */ +/* ========================================================= TGRB ========================================================== */ +/* ========================================================= TGRC ========================================================== */ +/* ========================================================= TGRD ========================================================== */ + +/* =========================================================================================================================== */ +/* ================ R_MTU6 ================ */ +/* =========================================================================================================================== */ + +/* ========================================================== TCR ========================================================== */ + #define R_MTU6_TCR_TPSC_Pos (0UL) /*!< TPSC (Bit 0) */ + #define R_MTU6_TCR_TPSC_Msk (0x7UL) /*!< TPSC (Bitfield-Mask: 0x07) */ + #define R_MTU6_TCR_CKEG_Pos (3UL) /*!< CKEG (Bit 3) */ + #define R_MTU6_TCR_CKEG_Msk (0x18UL) /*!< CKEG (Bitfield-Mask: 0x03) */ + #define R_MTU6_TCR_CCLR_Pos (5UL) /*!< CCLR (Bit 5) */ + #define R_MTU6_TCR_CCLR_Msk (0xe0UL) /*!< CCLR (Bitfield-Mask: 0x07) */ +/* ========================================================= TMDR1 ========================================================= */ + #define R_MTU6_TMDR1_MD_Pos (0UL) /*!< MD (Bit 0) */ + #define R_MTU6_TMDR1_MD_Msk (0xfUL) /*!< MD (Bitfield-Mask: 0x0f) */ + #define R_MTU6_TMDR1_BFA_Pos (4UL) /*!< BFA (Bit 4) */ + #define R_MTU6_TMDR1_BFA_Msk (0x10UL) /*!< BFA (Bitfield-Mask: 0x01) */ + #define R_MTU6_TMDR1_BFB_Pos (5UL) /*!< BFB (Bit 5) */ + #define R_MTU6_TMDR1_BFB_Msk (0x20UL) /*!< BFB (Bitfield-Mask: 0x01) */ +/* ========================================================= TIORH ========================================================= */ + #define R_MTU6_TIORH_IOA_Pos (0UL) /*!< IOA (Bit 0) */ + #define R_MTU6_TIORH_IOA_Msk (0xfUL) /*!< IOA (Bitfield-Mask: 0x0f) */ + #define R_MTU6_TIORH_IOB_Pos (4UL) /*!< IOB (Bit 4) */ + #define R_MTU6_TIORH_IOB_Msk (0xf0UL) /*!< IOB (Bitfield-Mask: 0x0f) */ +/* ========================================================= TIORL ========================================================= */ + #define R_MTU6_TIORL_IOC_Pos (0UL) /*!< IOC (Bit 0) */ + #define R_MTU6_TIORL_IOC_Msk (0xfUL) /*!< IOC (Bitfield-Mask: 0x0f) */ + #define R_MTU6_TIORL_IOD_Pos (4UL) /*!< IOD (Bit 4) */ + #define R_MTU6_TIORL_IOD_Msk (0xf0UL) /*!< IOD (Bitfield-Mask: 0x0f) */ +/* ========================================================= TIER ========================================================== */ + #define R_MTU6_TIER_TGIEA_Pos (0UL) /*!< TGIEA (Bit 0) */ + #define R_MTU6_TIER_TGIEA_Msk (0x1UL) /*!< TGIEA (Bitfield-Mask: 0x01) */ + #define R_MTU6_TIER_TGIEB_Pos (1UL) /*!< TGIEB (Bit 1) */ + #define R_MTU6_TIER_TGIEB_Msk (0x2UL) /*!< TGIEB (Bitfield-Mask: 0x01) */ + #define R_MTU6_TIER_TGIEC_Pos (2UL) /*!< TGIEC (Bit 2) */ + #define R_MTU6_TIER_TGIEC_Msk (0x4UL) /*!< TGIEC (Bitfield-Mask: 0x01) */ + #define R_MTU6_TIER_TGIED_Pos (3UL) /*!< TGIED (Bit 3) */ + #define R_MTU6_TIER_TGIED_Msk (0x8UL) /*!< TGIED (Bitfield-Mask: 0x01) */ + #define R_MTU6_TIER_TCIEV_Pos (4UL) /*!< TCIEV (Bit 4) */ + #define R_MTU6_TIER_TCIEV_Msk (0x10UL) /*!< TCIEV (Bitfield-Mask: 0x01) */ + #define R_MTU6_TIER_TTGE_Pos (7UL) /*!< TTGE (Bit 7) */ + #define R_MTU6_TIER_TTGE_Msk (0x80UL) /*!< TTGE (Bitfield-Mask: 0x01) */ +/* ========================================================= TCNT ========================================================== */ +/* ========================================================= TGRA ========================================================== */ +/* ========================================================= TGRB ========================================================== */ +/* ========================================================= TGRC ========================================================== */ +/* ========================================================= TGRD ========================================================== */ +/* ========================================================== TSR ========================================================== */ + #define R_MTU6_TSR_TGFA_Pos (0UL) /*!< TGFA (Bit 0) */ + #define R_MTU6_TSR_TGFA_Msk (0x1UL) /*!< TGFA (Bitfield-Mask: 0x01) */ + #define R_MTU6_TSR_TGFB_Pos (1UL) /*!< TGFB (Bit 1) */ + #define R_MTU6_TSR_TGFB_Msk (0x2UL) /*!< TGFB (Bitfield-Mask: 0x01) */ + #define R_MTU6_TSR_TGFC_Pos (2UL) /*!< TGFC (Bit 2) */ + #define R_MTU6_TSR_TGFC_Msk (0x4UL) /*!< TGFC (Bitfield-Mask: 0x01) */ + #define R_MTU6_TSR_TGFD_Pos (3UL) /*!< TGFD (Bit 3) */ + #define R_MTU6_TSR_TGFD_Msk (0x8UL) /*!< TGFD (Bitfield-Mask: 0x01) */ + #define R_MTU6_TSR_TCFV_Pos (4UL) /*!< TCFV (Bit 4) */ + #define R_MTU6_TSR_TCFV_Msk (0x10UL) /*!< TCFV (Bitfield-Mask: 0x01) */ + #define R_MTU6_TSR_TCFU_Pos (5UL) /*!< TCFU (Bit 5) */ + #define R_MTU6_TSR_TCFU_Msk (0x20UL) /*!< TCFU (Bitfield-Mask: 0x01) */ + #define R_MTU6_TSR_TCFD_Pos (7UL) /*!< TCFD (Bit 7) */ + #define R_MTU6_TSR_TCFD_Msk (0x80UL) /*!< TCFD (Bitfield-Mask: 0x01) */ +/* ========================================================= TBTM ========================================================== */ + #define R_MTU6_TBTM_TTSA_Pos (0UL) /*!< TTSA (Bit 0) */ + #define R_MTU6_TBTM_TTSA_Msk (0x1UL) /*!< TTSA (Bitfield-Mask: 0x01) */ + #define R_MTU6_TBTM_TTSB_Pos (1UL) /*!< TTSB (Bit 1) */ + #define R_MTU6_TBTM_TTSB_Msk (0x2UL) /*!< TTSB (Bitfield-Mask: 0x01) */ +/* ========================================================= TCR2 ========================================================== */ + #define R_MTU6_TCR2_TPSC2_Pos (0UL) /*!< TPSC2 (Bit 0) */ + #define R_MTU6_TCR2_TPSC2_Msk (0x7UL) /*!< TPSC2 (Bitfield-Mask: 0x07) */ +/* ========================================================= TSYCR ========================================================= */ + #define R_MTU6_TSYCR_CE2B_Pos (0UL) /*!< CE2B (Bit 0) */ + #define R_MTU6_TSYCR_CE2B_Msk (0x1UL) /*!< CE2B (Bitfield-Mask: 0x01) */ + #define R_MTU6_TSYCR_CE2A_Pos (1UL) /*!< CE2A (Bit 1) */ + #define R_MTU6_TSYCR_CE2A_Msk (0x2UL) /*!< CE2A (Bitfield-Mask: 0x01) */ + #define R_MTU6_TSYCR_CE1B_Pos (2UL) /*!< CE1B (Bit 2) */ + #define R_MTU6_TSYCR_CE1B_Msk (0x4UL) /*!< CE1B (Bitfield-Mask: 0x01) */ + #define R_MTU6_TSYCR_CE1A_Pos (3UL) /*!< CE1A (Bit 3) */ + #define R_MTU6_TSYCR_CE1A_Msk (0x8UL) /*!< CE1A (Bitfield-Mask: 0x01) */ + #define R_MTU6_TSYCR_CE0D_Pos (4UL) /*!< CE0D (Bit 4) */ + #define R_MTU6_TSYCR_CE0D_Msk (0x10UL) /*!< CE0D (Bitfield-Mask: 0x01) */ + #define R_MTU6_TSYCR_CE0C_Pos (5UL) /*!< CE0C (Bit 5) */ + #define R_MTU6_TSYCR_CE0C_Msk (0x20UL) /*!< CE0C (Bitfield-Mask: 0x01) */ + #define R_MTU6_TSYCR_CE0B_Pos (6UL) /*!< CE0B (Bit 6) */ + #define R_MTU6_TSYCR_CE0B_Msk (0x40UL) /*!< CE0B (Bitfield-Mask: 0x01) */ + #define R_MTU6_TSYCR_CE0A_Pos (7UL) /*!< CE0A (Bit 7) */ + #define R_MTU6_TSYCR_CE0A_Msk (0x80UL) /*!< CE0A (Bitfield-Mask: 0x01) */ +/* ========================================================= TGRE ========================================================== */ + +/* =========================================================================================================================== */ +/* ================ R_MTU7 ================ */ +/* =========================================================================================================================== */ + +/* ========================================================== TCR ========================================================== */ + #define R_MTU7_TCR_TPSC_Pos (0UL) /*!< TPSC (Bit 0) */ + #define R_MTU7_TCR_TPSC_Msk (0x7UL) /*!< TPSC (Bitfield-Mask: 0x07) */ + #define R_MTU7_TCR_CKEG_Pos (3UL) /*!< CKEG (Bit 3) */ + #define R_MTU7_TCR_CKEG_Msk (0x18UL) /*!< CKEG (Bitfield-Mask: 0x03) */ + #define R_MTU7_TCR_CCLR_Pos (5UL) /*!< CCLR (Bit 5) */ + #define R_MTU7_TCR_CCLR_Msk (0xe0UL) /*!< CCLR (Bitfield-Mask: 0x07) */ +/* ========================================================= TMDR1 ========================================================= */ + #define R_MTU7_TMDR1_MD_Pos (0UL) /*!< MD (Bit 0) */ + #define R_MTU7_TMDR1_MD_Msk (0xfUL) /*!< MD (Bitfield-Mask: 0x0f) */ + #define R_MTU7_TMDR1_BFA_Pos (4UL) /*!< BFA (Bit 4) */ + #define R_MTU7_TMDR1_BFA_Msk (0x10UL) /*!< BFA (Bitfield-Mask: 0x01) */ + #define R_MTU7_TMDR1_BFB_Pos (5UL) /*!< BFB (Bit 5) */ + #define R_MTU7_TMDR1_BFB_Msk (0x20UL) /*!< BFB (Bitfield-Mask: 0x01) */ +/* ========================================================= TIORH ========================================================= */ + #define R_MTU7_TIORH_IOA_Pos (0UL) /*!< IOA (Bit 0) */ + #define R_MTU7_TIORH_IOA_Msk (0xfUL) /*!< IOA (Bitfield-Mask: 0x0f) */ + #define R_MTU7_TIORH_IOB_Pos (4UL) /*!< IOB (Bit 4) */ + #define R_MTU7_TIORH_IOB_Msk (0xf0UL) /*!< IOB (Bitfield-Mask: 0x0f) */ +/* ========================================================= TIORL ========================================================= */ + #define R_MTU7_TIORL_IOC_Pos (0UL) /*!< IOC (Bit 0) */ + #define R_MTU7_TIORL_IOC_Msk (0xfUL) /*!< IOC (Bitfield-Mask: 0x0f) */ + #define R_MTU7_TIORL_IOD_Pos (4UL) /*!< IOD (Bit 4) */ + #define R_MTU7_TIORL_IOD_Msk (0xf0UL) /*!< IOD (Bitfield-Mask: 0x0f) */ +/* ========================================================= TIER ========================================================== */ + #define R_MTU7_TIER_TGIEA_Pos (0UL) /*!< TGIEA (Bit 0) */ + #define R_MTU7_TIER_TGIEA_Msk (0x1UL) /*!< TGIEA (Bitfield-Mask: 0x01) */ + #define R_MTU7_TIER_TGIEB_Pos (1UL) /*!< TGIEB (Bit 1) */ + #define R_MTU7_TIER_TGIEB_Msk (0x2UL) /*!< TGIEB (Bitfield-Mask: 0x01) */ + #define R_MTU7_TIER_TGIEC_Pos (2UL) /*!< TGIEC (Bit 2) */ + #define R_MTU7_TIER_TGIEC_Msk (0x4UL) /*!< TGIEC (Bitfield-Mask: 0x01) */ + #define R_MTU7_TIER_TGIED_Pos (3UL) /*!< TGIED (Bit 3) */ + #define R_MTU7_TIER_TGIED_Msk (0x8UL) /*!< TGIED (Bitfield-Mask: 0x01) */ + #define R_MTU7_TIER_TCIEV_Pos (4UL) /*!< TCIEV (Bit 4) */ + #define R_MTU7_TIER_TCIEV_Msk (0x10UL) /*!< TCIEV (Bitfield-Mask: 0x01) */ + #define R_MTU7_TIER_TTGE2_Pos (6UL) /*!< TTGE2 (Bit 6) */ + #define R_MTU7_TIER_TTGE2_Msk (0x40UL) /*!< TTGE2 (Bitfield-Mask: 0x01) */ + #define R_MTU7_TIER_TTGE_Pos (7UL) /*!< TTGE (Bit 7) */ + #define R_MTU7_TIER_TTGE_Msk (0x80UL) /*!< TTGE (Bitfield-Mask: 0x01) */ +/* ========================================================= TCNT ========================================================== */ +/* ========================================================= TGRA ========================================================== */ +/* ========================================================= TGRB ========================================================== */ +/* ========================================================= TGRC ========================================================== */ +/* ========================================================= TGRD ========================================================== */ +/* ========================================================== TSR ========================================================== */ + #define R_MTU7_TSR_TGFA_Pos (0UL) /*!< TGFA (Bit 0) */ + #define R_MTU7_TSR_TGFA_Msk (0x1UL) /*!< TGFA (Bitfield-Mask: 0x01) */ + #define R_MTU7_TSR_TGFB_Pos (1UL) /*!< TGFB (Bit 1) */ + #define R_MTU7_TSR_TGFB_Msk (0x2UL) /*!< TGFB (Bitfield-Mask: 0x01) */ + #define R_MTU7_TSR_TGFC_Pos (2UL) /*!< TGFC (Bit 2) */ + #define R_MTU7_TSR_TGFC_Msk (0x4UL) /*!< TGFC (Bitfield-Mask: 0x01) */ + #define R_MTU7_TSR_TGFD_Pos (3UL) /*!< TGFD (Bit 3) */ + #define R_MTU7_TSR_TGFD_Msk (0x8UL) /*!< TGFD (Bitfield-Mask: 0x01) */ + #define R_MTU7_TSR_TCFV_Pos (4UL) /*!< TCFV (Bit 4) */ + #define R_MTU7_TSR_TCFV_Msk (0x10UL) /*!< TCFV (Bitfield-Mask: 0x01) */ + #define R_MTU7_TSR_TCFU_Pos (5UL) /*!< TCFU (Bit 5) */ + #define R_MTU7_TSR_TCFU_Msk (0x20UL) /*!< TCFU (Bitfield-Mask: 0x01) */ + #define R_MTU7_TSR_TCFD_Pos (7UL) /*!< TCFD (Bit 7) */ + #define R_MTU7_TSR_TCFD_Msk (0x80UL) /*!< TCFD (Bitfield-Mask: 0x01) */ +/* ========================================================= TBTM ========================================================== */ + #define R_MTU7_TBTM_TTSA_Pos (0UL) /*!< TTSA (Bit 0) */ + #define R_MTU7_TBTM_TTSA_Msk (0x1UL) /*!< TTSA (Bitfield-Mask: 0x01) */ + #define R_MTU7_TBTM_TTSB_Pos (1UL) /*!< TTSB (Bit 1) */ + #define R_MTU7_TBTM_TTSB_Msk (0x2UL) /*!< TTSB (Bitfield-Mask: 0x01) */ +/* ========================================================= TADCR ========================================================= */ + #define R_MTU7_TADCR_ITB7VE_Pos (0UL) /*!< ITB7VE (Bit 0) */ + #define R_MTU7_TADCR_ITB7VE_Msk (0x1UL) /*!< ITB7VE (Bitfield-Mask: 0x01) */ + #define R_MTU7_TADCR_ITB6AE_Pos (1UL) /*!< ITB6AE (Bit 1) */ + #define R_MTU7_TADCR_ITB6AE_Msk (0x2UL) /*!< ITB6AE (Bitfield-Mask: 0x01) */ + #define R_MTU7_TADCR_ITA7VE_Pos (2UL) /*!< ITA7VE (Bit 2) */ + #define R_MTU7_TADCR_ITA7VE_Msk (0x4UL) /*!< ITA7VE (Bitfield-Mask: 0x01) */ + #define R_MTU7_TADCR_ITA6AE_Pos (3UL) /*!< ITA6AE (Bit 3) */ + #define R_MTU7_TADCR_ITA6AE_Msk (0x8UL) /*!< ITA6AE (Bitfield-Mask: 0x01) */ + #define R_MTU7_TADCR_DT7BE_Pos (4UL) /*!< DT7BE (Bit 4) */ + #define R_MTU7_TADCR_DT7BE_Msk (0x10UL) /*!< DT7BE (Bitfield-Mask: 0x01) */ + #define R_MTU7_TADCR_UT7BE_Pos (5UL) /*!< UT7BE (Bit 5) */ + #define R_MTU7_TADCR_UT7BE_Msk (0x20UL) /*!< UT7BE (Bitfield-Mask: 0x01) */ + #define R_MTU7_TADCR_DT7AE_Pos (6UL) /*!< DT7AE (Bit 6) */ + #define R_MTU7_TADCR_DT7AE_Msk (0x40UL) /*!< DT7AE (Bitfield-Mask: 0x01) */ + #define R_MTU7_TADCR_UT7AE_Pos (7UL) /*!< UT7AE (Bit 7) */ + #define R_MTU7_TADCR_UT7AE_Msk (0x80UL) /*!< UT7AE (Bitfield-Mask: 0x01) */ + #define R_MTU7_TADCR_BF_Pos (14UL) /*!< BF (Bit 14) */ + #define R_MTU7_TADCR_BF_Msk (0xc000UL) /*!< BF (Bitfield-Mask: 0x03) */ +/* ======================================================== TADCORA ======================================================== */ +/* ======================================================== TADCORB ======================================================== */ +/* ======================================================= TADCOBRA ======================================================== */ +/* ======================================================= TADCOBRB ======================================================== */ +/* ========================================================= TCR2 ========================================================== */ + #define R_MTU7_TCR2_TPSC2_Pos (0UL) /*!< TPSC2 (Bit 0) */ + #define R_MTU7_TCR2_TPSC2_Msk (0x7UL) /*!< TPSC2 (Bitfield-Mask: 0x07) */ +/* ========================================================= TGRE ========================================================== */ +/* ========================================================= TGRF ========================================================== */ + +/* =========================================================================================================================== */ +/* ================ R_MTU5 ================ */ +/* =========================================================================================================================== */ + +/* ========================================================= TCNTU ========================================================= */ +/* ========================================================= TGRU ========================================================== */ +/* ========================================================= TCRU ========================================================== */ + #define R_MTU5_TCRU_TPSC_Pos (0UL) /*!< TPSC (Bit 0) */ + #define R_MTU5_TCRU_TPSC_Msk (0x3UL) /*!< TPSC (Bitfield-Mask: 0x03) */ +/* ========================================================= TCR2U ========================================================= */ + #define R_MTU5_TCR2U_TPSC2_Pos (0UL) /*!< TPSC2 (Bit 0) */ + #define R_MTU5_TCR2U_TPSC2_Msk (0x7UL) /*!< TPSC2 (Bitfield-Mask: 0x07) */ + #define R_MTU5_TCR2U_CKEG_Pos (3UL) /*!< CKEG (Bit 3) */ + #define R_MTU5_TCR2U_CKEG_Msk (0x18UL) /*!< CKEG (Bitfield-Mask: 0x03) */ +/* ========================================================= TIORU ========================================================= */ + #define R_MTU5_TIORU_IOC_Pos (0UL) /*!< IOC (Bit 0) */ + #define R_MTU5_TIORU_IOC_Msk (0x1fUL) /*!< IOC (Bitfield-Mask: 0x1f) */ +/* ========================================================= TCNTV ========================================================= */ +/* ========================================================= TGRV ========================================================== */ +/* ========================================================= TCRV ========================================================== */ + #define R_MTU5_TCRV_TPSC_Pos (0UL) /*!< TPSC (Bit 0) */ + #define R_MTU5_TCRV_TPSC_Msk (0x3UL) /*!< TPSC (Bitfield-Mask: 0x03) */ +/* ========================================================= TCR2V ========================================================= */ + #define R_MTU5_TCR2V_TPSC2_Pos (0UL) /*!< TPSC2 (Bit 0) */ + #define R_MTU5_TCR2V_TPSC2_Msk (0x7UL) /*!< TPSC2 (Bitfield-Mask: 0x07) */ + #define R_MTU5_TCR2V_CKEG_Pos (3UL) /*!< CKEG (Bit 3) */ + #define R_MTU5_TCR2V_CKEG_Msk (0x18UL) /*!< CKEG (Bitfield-Mask: 0x03) */ +/* ========================================================= TIORV ========================================================= */ + #define R_MTU5_TIORV_IOC_Pos (0UL) /*!< IOC (Bit 0) */ + #define R_MTU5_TIORV_IOC_Msk (0x1fUL) /*!< IOC (Bitfield-Mask: 0x1f) */ +/* ========================================================= TCNTW ========================================================= */ +/* ========================================================= TGRW ========================================================== */ +/* ========================================================= TCRW ========================================================== */ + #define R_MTU5_TCRW_TPSC_Pos (0UL) /*!< TPSC (Bit 0) */ + #define R_MTU5_TCRW_TPSC_Msk (0x3UL) /*!< TPSC (Bitfield-Mask: 0x03) */ +/* ========================================================= TCR2W ========================================================= */ + #define R_MTU5_TCR2W_TPSC2_Pos (0UL) /*!< TPSC2 (Bit 0) */ + #define R_MTU5_TCR2W_TPSC2_Msk (0x7UL) /*!< TPSC2 (Bitfield-Mask: 0x07) */ + #define R_MTU5_TCR2W_CKEG_Pos (3UL) /*!< CKEG (Bit 3) */ + #define R_MTU5_TCR2W_CKEG_Msk (0x18UL) /*!< CKEG (Bitfield-Mask: 0x03) */ +/* ========================================================= TIORW ========================================================= */ + #define R_MTU5_TIORW_IOC_Pos (0UL) /*!< IOC (Bit 0) */ + #define R_MTU5_TIORW_IOC_Msk (0x1fUL) /*!< IOC (Bitfield-Mask: 0x1f) */ +/* ========================================================= TIER ========================================================== */ + #define R_MTU5_TIER_TGIE5W_Pos (0UL) /*!< TGIE5W (Bit 0) */ + #define R_MTU5_TIER_TGIE5W_Msk (0x1UL) /*!< TGIE5W (Bitfield-Mask: 0x01) */ + #define R_MTU5_TIER_TGIE5V_Pos (1UL) /*!< TGIE5V (Bit 1) */ + #define R_MTU5_TIER_TGIE5V_Msk (0x2UL) /*!< TGIE5V (Bitfield-Mask: 0x01) */ + #define R_MTU5_TIER_TGIE5U_Pos (2UL) /*!< TGIE5U (Bit 2) */ + #define R_MTU5_TIER_TGIE5U_Msk (0x4UL) /*!< TGIE5U (Bitfield-Mask: 0x01) */ +/* ========================================================= TSTR ========================================================== */ + #define R_MTU5_TSTR_CSTW5_Pos (0UL) /*!< CSTW5 (Bit 0) */ + #define R_MTU5_TSTR_CSTW5_Msk (0x1UL) /*!< CSTW5 (Bitfield-Mask: 0x01) */ + #define R_MTU5_TSTR_CSTV5_Pos (1UL) /*!< CSTV5 (Bit 1) */ + #define R_MTU5_TSTR_CSTV5_Msk (0x2UL) /*!< CSTV5 (Bitfield-Mask: 0x01) */ + #define R_MTU5_TSTR_CSTU5_Pos (2UL) /*!< CSTU5 (Bit 2) */ + #define R_MTU5_TSTR_CSTU5_Msk (0x4UL) /*!< CSTU5 (Bitfield-Mask: 0x01) */ +/* ====================================================== TCNTCMPCLR ======================================================= */ + #define R_MTU5_TCNTCMPCLR_CMPCLR5W_Pos (0UL) /*!< CMPCLR5W (Bit 0) */ + #define R_MTU5_TCNTCMPCLR_CMPCLR5W_Msk (0x1UL) /*!< CMPCLR5W (Bitfield-Mask: 0x01) */ + #define R_MTU5_TCNTCMPCLR_CMPCLR5V_Pos (1UL) /*!< CMPCLR5V (Bit 1) */ + #define R_MTU5_TCNTCMPCLR_CMPCLR5V_Msk (0x2UL) /*!< CMPCLR5V (Bitfield-Mask: 0x01) */ + #define R_MTU5_TCNTCMPCLR_CMPCLR5U_Pos (2UL) /*!< CMPCLR5U (Bit 2) */ + #define R_MTU5_TCNTCMPCLR_CMPCLR5U_Msk (0x4UL) /*!< CMPCLR5U (Bitfield-Mask: 0x01) */ + +/* =========================================================================================================================== */ +/* ================ R_TFU ================ */ +/* =========================================================================================================================== */ + +/* ======================================================== TRGSTS ========================================================= */ + #define R_TFU_TRGSTS_BSYF_Pos (0UL) /*!< BSYF (Bit 0) */ + #define R_TFU_TRGSTS_BSYF_Msk (0x1UL) /*!< BSYF (Bitfield-Mask: 0x01) */ + #define R_TFU_TRGSTS_ERRF_Pos (1UL) /*!< ERRF (Bit 1) */ + #define R_TFU_TRGSTS_ERRF_Msk (0x2UL) /*!< ERRF (Bitfield-Mask: 0x01) */ +/* ========================================================= SCDT0 ========================================================= */ + #define R_TFU_SCDT0_SCDT0_Pos (0UL) /*!< SCDT0 (Bit 0) */ + #define R_TFU_SCDT0_SCDT0_Msk (0xffffffffUL) /*!< SCDT0 (Bitfield-Mask: 0xffffffff) */ +/* ========================================================= SCDT1 ========================================================= */ + #define R_TFU_SCDT1_SCDT1_Pos (0UL) /*!< SCDT1 (Bit 0) */ + #define R_TFU_SCDT1_SCDT1_Msk (0xffffffffUL) /*!< SCDT1 (Bitfield-Mask: 0xffffffff) */ +/* ========================================================= ATDT0 ========================================================= */ + #define R_TFU_ATDT0_ATDT0_Pos (0UL) /*!< ATDT0 (Bit 0) */ + #define R_TFU_ATDT0_ATDT0_Msk (0xffffffffUL) /*!< ATDT0 (Bitfield-Mask: 0xffffffff) */ +/* ========================================================= ATDT1 ========================================================= */ + #define R_TFU_ATDT1_ATDT1_Pos (0UL) /*!< ATDT1 (Bit 0) */ + #define R_TFU_ATDT1_ATDT1_Msk (0xffffffffUL) /*!< ATDT1 (Bitfield-Mask: 0xffffffff) */ + +/* =========================================================================================================================== */ +/* ================ R_POE3 ================ */ +/* =========================================================================================================================== */ + +/* ========================================================= ICSR1 ========================================================= */ + #define R_POE3_ICSR1_POE0M_Pos (0UL) /*!< POE0M (Bit 0) */ + #define R_POE3_ICSR1_POE0M_Msk (0x3UL) /*!< POE0M (Bitfield-Mask: 0x03) */ + #define R_POE3_ICSR1_PIE1_Pos (8UL) /*!< PIE1 (Bit 8) */ + #define R_POE3_ICSR1_PIE1_Msk (0x100UL) /*!< PIE1 (Bitfield-Mask: 0x01) */ + #define R_POE3_ICSR1_POE0F_Pos (12UL) /*!< POE0F (Bit 12) */ + #define R_POE3_ICSR1_POE0F_Msk (0x1000UL) /*!< POE0F (Bitfield-Mask: 0x01) */ +/* ========================================================= OCSR1 ========================================================= */ + #define R_POE3_OCSR1_OIE1_Pos (8UL) /*!< OIE1 (Bit 8) */ + #define R_POE3_OCSR1_OIE1_Msk (0x100UL) /*!< OIE1 (Bitfield-Mask: 0x01) */ + #define R_POE3_OCSR1_OCE1_Pos (9UL) /*!< OCE1 (Bit 9) */ + #define R_POE3_OCSR1_OCE1_Msk (0x200UL) /*!< OCE1 (Bitfield-Mask: 0x01) */ + #define R_POE3_OCSR1_OSF1_Pos (15UL) /*!< OSF1 (Bit 15) */ + #define R_POE3_OCSR1_OSF1_Msk (0x8000UL) /*!< OSF1 (Bitfield-Mask: 0x01) */ +/* ========================================================= ICSR2 ========================================================= */ + #define R_POE3_ICSR2_POE4M_Pos (0UL) /*!< POE4M (Bit 0) */ + #define R_POE3_ICSR2_POE4M_Msk (0x3UL) /*!< POE4M (Bitfield-Mask: 0x03) */ + #define R_POE3_ICSR2_PIE2_Pos (8UL) /*!< PIE2 (Bit 8) */ + #define R_POE3_ICSR2_PIE2_Msk (0x100UL) /*!< PIE2 (Bitfield-Mask: 0x01) */ + #define R_POE3_ICSR2_POE4F_Pos (12UL) /*!< POE4F (Bit 12) */ + #define R_POE3_ICSR2_POE4F_Msk (0x1000UL) /*!< POE4F (Bitfield-Mask: 0x01) */ +/* ========================================================= OCSR2 ========================================================= */ + #define R_POE3_OCSR2_OIE2_Pos (8UL) /*!< OIE2 (Bit 8) */ + #define R_POE3_OCSR2_OIE2_Msk (0x100UL) /*!< OIE2 (Bitfield-Mask: 0x01) */ + #define R_POE3_OCSR2_OCE2_Pos (9UL) /*!< OCE2 (Bit 9) */ + #define R_POE3_OCSR2_OCE2_Msk (0x200UL) /*!< OCE2 (Bitfield-Mask: 0x01) */ + #define R_POE3_OCSR2_OSF2_Pos (15UL) /*!< OSF2 (Bit 15) */ + #define R_POE3_OCSR2_OSF2_Msk (0x8000UL) /*!< OSF2 (Bitfield-Mask: 0x01) */ +/* ========================================================= ICSR3 ========================================================= */ + #define R_POE3_ICSR3_POE8M_Pos (0UL) /*!< POE8M (Bit 0) */ + #define R_POE3_ICSR3_POE8M_Msk (0x3UL) /*!< POE8M (Bitfield-Mask: 0x03) */ + #define R_POE3_ICSR3_PIE3_Pos (8UL) /*!< PIE3 (Bit 8) */ + #define R_POE3_ICSR3_PIE3_Msk (0x100UL) /*!< PIE3 (Bitfield-Mask: 0x01) */ + #define R_POE3_ICSR3_POE8E_Pos (9UL) /*!< POE8E (Bit 9) */ + #define R_POE3_ICSR3_POE8E_Msk (0x200UL) /*!< POE8E (Bitfield-Mask: 0x01) */ + #define R_POE3_ICSR3_POE8F_Pos (12UL) /*!< POE8F (Bit 12) */ + #define R_POE3_ICSR3_POE8F_Msk (0x1000UL) /*!< POE8F (Bitfield-Mask: 0x01) */ +/* ========================================================= SPOER ========================================================= */ + #define R_POE3_SPOER_MTUCH34HIZ_Pos (0UL) /*!< MTUCH34HIZ (Bit 0) */ + #define R_POE3_SPOER_MTUCH34HIZ_Msk (0x1UL) /*!< MTUCH34HIZ (Bitfield-Mask: 0x01) */ + #define R_POE3_SPOER_MTUCH67HIZ_Pos (1UL) /*!< MTUCH67HIZ (Bit 1) */ + #define R_POE3_SPOER_MTUCH67HIZ_Msk (0x2UL) /*!< MTUCH67HIZ (Bitfield-Mask: 0x01) */ + #define R_POE3_SPOER_MTUCH0HIZ_Pos (2UL) /*!< MTUCH0HIZ (Bit 2) */ + #define R_POE3_SPOER_MTUCH0HIZ_Msk (0x4UL) /*!< MTUCH0HIZ (Bitfield-Mask: 0x01) */ +/* ======================================================== POECR1 ========================================================= */ + #define R_POE3_POECR1_MTU0AZE_Pos (0UL) /*!< MTU0AZE (Bit 0) */ + #define R_POE3_POECR1_MTU0AZE_Msk (0x1UL) /*!< MTU0AZE (Bitfield-Mask: 0x01) */ + #define R_POE3_POECR1_MTU0BZE_Pos (1UL) /*!< MTU0BZE (Bit 1) */ + #define R_POE3_POECR1_MTU0BZE_Msk (0x2UL) /*!< MTU0BZE (Bitfield-Mask: 0x01) */ + #define R_POE3_POECR1_MTU0CZE_Pos (2UL) /*!< MTU0CZE (Bit 2) */ + #define R_POE3_POECR1_MTU0CZE_Msk (0x4UL) /*!< MTU0CZE (Bitfield-Mask: 0x01) */ + #define R_POE3_POECR1_MTU0DZE_Pos (3UL) /*!< MTU0DZE (Bit 3) */ + #define R_POE3_POECR1_MTU0DZE_Msk (0x8UL) /*!< MTU0DZE (Bitfield-Mask: 0x01) */ +/* ======================================================== POECR2 ========================================================= */ + #define R_POE3_POECR2_MTU7BDZE_Pos (0UL) /*!< MTU7BDZE (Bit 0) */ + #define R_POE3_POECR2_MTU7BDZE_Msk (0x1UL) /*!< MTU7BDZE (Bitfield-Mask: 0x01) */ + #define R_POE3_POECR2_MTU7ACZE_Pos (1UL) /*!< MTU7ACZE (Bit 1) */ + #define R_POE3_POECR2_MTU7ACZE_Msk (0x2UL) /*!< MTU7ACZE (Bitfield-Mask: 0x01) */ + #define R_POE3_POECR2_MTU6BDZE_Pos (2UL) /*!< MTU6BDZE (Bit 2) */ + #define R_POE3_POECR2_MTU6BDZE_Msk (0x4UL) /*!< MTU6BDZE (Bitfield-Mask: 0x01) */ + #define R_POE3_POECR2_MTU4BDZE_Pos (8UL) /*!< MTU4BDZE (Bit 8) */ + #define R_POE3_POECR2_MTU4BDZE_Msk (0x100UL) /*!< MTU4BDZE (Bitfield-Mask: 0x01) */ + #define R_POE3_POECR2_MTU4ACZE_Pos (9UL) /*!< MTU4ACZE (Bit 9) */ + #define R_POE3_POECR2_MTU4ACZE_Msk (0x200UL) /*!< MTU4ACZE (Bitfield-Mask: 0x01) */ + #define R_POE3_POECR2_MTU3BDZE_Pos (10UL) /*!< MTU3BDZE (Bit 10) */ + #define R_POE3_POECR2_MTU3BDZE_Msk (0x400UL) /*!< MTU3BDZE (Bitfield-Mask: 0x01) */ +/* ======================================================== POECR4 ========================================================= */ + #define R_POE3_POECR4_IC2ADDMT34ZE_Pos (2UL) /*!< IC2ADDMT34ZE (Bit 2) */ + #define R_POE3_POECR4_IC2ADDMT34ZE_Msk (0x4UL) /*!< IC2ADDMT34ZE (Bitfield-Mask: 0x01) */ + #define R_POE3_POECR4_IC3ADDMT34ZE_Pos (3UL) /*!< IC3ADDMT34ZE (Bit 3) */ + #define R_POE3_POECR4_IC3ADDMT34ZE_Msk (0x8UL) /*!< IC3ADDMT34ZE (Bitfield-Mask: 0x01) */ + #define R_POE3_POECR4_IC4ADDMT34ZE_Pos (4UL) /*!< IC4ADDMT34ZE (Bit 4) */ + #define R_POE3_POECR4_IC4ADDMT34ZE_Msk (0x10UL) /*!< IC4ADDMT34ZE (Bitfield-Mask: 0x01) */ + #define R_POE3_POECR4_IC5ADDMT34ZE_Pos (5UL) /*!< IC5ADDMT34ZE (Bit 5) */ + #define R_POE3_POECR4_IC5ADDMT34ZE_Msk (0x20UL) /*!< IC5ADDMT34ZE (Bitfield-Mask: 0x01) */ + #define R_POE3_POECR4_DE0ADDMT34ZE_Pos (6UL) /*!< DE0ADDMT34ZE (Bit 6) */ + #define R_POE3_POECR4_DE0ADDMT34ZE_Msk (0x40UL) /*!< DE0ADDMT34ZE (Bitfield-Mask: 0x01) */ + #define R_POE3_POECR4_DE1ADDMT34ZE_Pos (7UL) /*!< DE1ADDMT34ZE (Bit 7) */ + #define R_POE3_POECR4_DE1ADDMT34ZE_Msk (0x80UL) /*!< DE1ADDMT34ZE (Bitfield-Mask: 0x01) */ + #define R_POE3_POECR4_IC1ADDMT67ZE_Pos (9UL) /*!< IC1ADDMT67ZE (Bit 9) */ + #define R_POE3_POECR4_IC1ADDMT67ZE_Msk (0x200UL) /*!< IC1ADDMT67ZE (Bitfield-Mask: 0x01) */ + #define R_POE3_POECR4_IC3ADDMT67ZE_Pos (11UL) /*!< IC3ADDMT67ZE (Bit 11) */ + #define R_POE3_POECR4_IC3ADDMT67ZE_Msk (0x800UL) /*!< IC3ADDMT67ZE (Bitfield-Mask: 0x01) */ + #define R_POE3_POECR4_IC4ADDMT67ZE_Pos (12UL) /*!< IC4ADDMT67ZE (Bit 12) */ + #define R_POE3_POECR4_IC4ADDMT67ZE_Msk (0x1000UL) /*!< IC4ADDMT67ZE (Bitfield-Mask: 0x01) */ + #define R_POE3_POECR4_IC5ADDMT67ZE_Pos (13UL) /*!< IC5ADDMT67ZE (Bit 13) */ + #define R_POE3_POECR4_IC5ADDMT67ZE_Msk (0x2000UL) /*!< IC5ADDMT67ZE (Bitfield-Mask: 0x01) */ + #define R_POE3_POECR4_DE0ADDMT67ZE_Pos (14UL) /*!< DE0ADDMT67ZE (Bit 14) */ + #define R_POE3_POECR4_DE0ADDMT67ZE_Msk (0x4000UL) /*!< DE0ADDMT67ZE (Bitfield-Mask: 0x01) */ + #define R_POE3_POECR4_DE1ADDMT67ZE_Pos (15UL) /*!< DE1ADDMT67ZE (Bit 15) */ + #define R_POE3_POECR4_DE1ADDMT67ZE_Msk (0x8000UL) /*!< DE1ADDMT67ZE (Bitfield-Mask: 0x01) */ +/* ======================================================== POECR5 ========================================================= */ + #define R_POE3_POECR5_IC1ADDMT0ZE_Pos (1UL) /*!< IC1ADDMT0ZE (Bit 1) */ + #define R_POE3_POECR5_IC1ADDMT0ZE_Msk (0x2UL) /*!< IC1ADDMT0ZE (Bitfield-Mask: 0x01) */ + #define R_POE3_POECR5_IC2ADDMT0ZE_Pos (2UL) /*!< IC2ADDMT0ZE (Bit 2) */ + #define R_POE3_POECR5_IC2ADDMT0ZE_Msk (0x4UL) /*!< IC2ADDMT0ZE (Bitfield-Mask: 0x01) */ + #define R_POE3_POECR5_IC4ADDMT0ZE_Pos (4UL) /*!< IC4ADDMT0ZE (Bit 4) */ + #define R_POE3_POECR5_IC4ADDMT0ZE_Msk (0x10UL) /*!< IC4ADDMT0ZE (Bitfield-Mask: 0x01) */ + #define R_POE3_POECR5_IC5ADDMT0ZE_Pos (5UL) /*!< IC5ADDMT0ZE (Bit 5) */ + #define R_POE3_POECR5_IC5ADDMT0ZE_Msk (0x20UL) /*!< IC5ADDMT0ZE (Bitfield-Mask: 0x01) */ + #define R_POE3_POECR5_DE0ADDMT0ZE_Pos (6UL) /*!< DE0ADDMT0ZE (Bit 6) */ + #define R_POE3_POECR5_DE0ADDMT0ZE_Msk (0x40UL) /*!< DE0ADDMT0ZE (Bitfield-Mask: 0x01) */ + #define R_POE3_POECR5_DE1ADDMT0ZE_Pos (7UL) /*!< DE1ADDMT0ZE (Bit 7) */ + #define R_POE3_POECR5_DE1ADDMT0ZE_Msk (0x80UL) /*!< DE1ADDMT0ZE (Bitfield-Mask: 0x01) */ +/* ========================================================= ICSR4 ========================================================= */ + #define R_POE3_ICSR4_POE10M_Pos (0UL) /*!< POE10M (Bit 0) */ + #define R_POE3_ICSR4_POE10M_Msk (0x3UL) /*!< POE10M (Bitfield-Mask: 0x03) */ + #define R_POE3_ICSR4_PIE4_Pos (8UL) /*!< PIE4 (Bit 8) */ + #define R_POE3_ICSR4_PIE4_Msk (0x100UL) /*!< PIE4 (Bitfield-Mask: 0x01) */ + #define R_POE3_ICSR4_POE10E_Pos (9UL) /*!< POE10E (Bit 9) */ + #define R_POE3_ICSR4_POE10E_Msk (0x200UL) /*!< POE10E (Bitfield-Mask: 0x01) */ + #define R_POE3_ICSR4_POE10F_Pos (12UL) /*!< POE10F (Bit 12) */ + #define R_POE3_ICSR4_POE10F_Msk (0x1000UL) /*!< POE10F (Bitfield-Mask: 0x01) */ +/* ========================================================= ICSR5 ========================================================= */ + #define R_POE3_ICSR5_POE11M_Pos (0UL) /*!< POE11M (Bit 0) */ + #define R_POE3_ICSR5_POE11M_Msk (0x3UL) /*!< POE11M (Bitfield-Mask: 0x03) */ + #define R_POE3_ICSR5_PIE5_Pos (8UL) /*!< PIE5 (Bit 8) */ + #define R_POE3_ICSR5_PIE5_Msk (0x100UL) /*!< PIE5 (Bitfield-Mask: 0x01) */ + #define R_POE3_ICSR5_POE11E_Pos (9UL) /*!< POE11E (Bit 9) */ + #define R_POE3_ICSR5_POE11E_Msk (0x200UL) /*!< POE11E (Bitfield-Mask: 0x01) */ + #define R_POE3_ICSR5_POE11F_Pos (12UL) /*!< POE11F (Bit 12) */ + #define R_POE3_ICSR5_POE11F_Msk (0x1000UL) /*!< POE11F (Bitfield-Mask: 0x01) */ +/* ========================================================= ALR1 ========================================================== */ + #define R_POE3_ALR1_OLSG0A_Pos (0UL) /*!< OLSG0A (Bit 0) */ + #define R_POE3_ALR1_OLSG0A_Msk (0x1UL) /*!< OLSG0A (Bitfield-Mask: 0x01) */ + #define R_POE3_ALR1_OLSG0B_Pos (1UL) /*!< OLSG0B (Bit 1) */ + #define R_POE3_ALR1_OLSG0B_Msk (0x2UL) /*!< OLSG0B (Bitfield-Mask: 0x01) */ + #define R_POE3_ALR1_OLSG1A_Pos (2UL) /*!< OLSG1A (Bit 2) */ + #define R_POE3_ALR1_OLSG1A_Msk (0x4UL) /*!< OLSG1A (Bitfield-Mask: 0x01) */ + #define R_POE3_ALR1_OLSG1B_Pos (3UL) /*!< OLSG1B (Bit 3) */ + #define R_POE3_ALR1_OLSG1B_Msk (0x8UL) /*!< OLSG1B (Bitfield-Mask: 0x01) */ + #define R_POE3_ALR1_OLSG2A_Pos (4UL) /*!< OLSG2A (Bit 4) */ + #define R_POE3_ALR1_OLSG2A_Msk (0x10UL) /*!< OLSG2A (Bitfield-Mask: 0x01) */ + #define R_POE3_ALR1_OLSG2B_Pos (5UL) /*!< OLSG2B (Bit 5) */ + #define R_POE3_ALR1_OLSG2B_Msk (0x20UL) /*!< OLSG2B (Bitfield-Mask: 0x01) */ + #define R_POE3_ALR1_OLSEN_Pos (7UL) /*!< OLSEN (Bit 7) */ + #define R_POE3_ALR1_OLSEN_Msk (0x80UL) /*!< OLSEN (Bitfield-Mask: 0x01) */ +/* ========================================================= ICSR6 ========================================================= */ + #define R_POE3_ICSR6_OSTSTE_Pos (9UL) /*!< OSTSTE (Bit 9) */ + #define R_POE3_ICSR6_OSTSTE_Msk (0x200UL) /*!< OSTSTE (Bitfield-Mask: 0x01) */ + #define R_POE3_ICSR6_OSTSTF_Pos (12UL) /*!< OSTSTF (Bit 12) */ + #define R_POE3_ICSR6_OSTSTF_Msk (0x1000UL) /*!< OSTSTF (Bitfield-Mask: 0x01) */ +/* ========================================================= ICSR7 ========================================================= */ + #define R_POE3_ICSR7_DERR0IE_Pos (6UL) /*!< DERR0IE (Bit 6) */ + #define R_POE3_ICSR7_DERR0IE_Msk (0x40UL) /*!< DERR0IE (Bitfield-Mask: 0x01) */ + #define R_POE3_ICSR7_DERR1IE_Pos (7UL) /*!< DERR1IE (Bit 7) */ + #define R_POE3_ICSR7_DERR1IE_Msk (0x80UL) /*!< DERR1IE (Bitfield-Mask: 0x01) */ + #define R_POE3_ICSR7_DERR0ST_Pos (13UL) /*!< DERR0ST (Bit 13) */ + #define R_POE3_ICSR7_DERR0ST_Msk (0x2000UL) /*!< DERR0ST (Bitfield-Mask: 0x01) */ + #define R_POE3_ICSR7_DERR1ST_Pos (14UL) /*!< DERR1ST (Bit 14) */ + #define R_POE3_ICSR7_DERR1ST_Msk (0x4000UL) /*!< DERR1ST (Bitfield-Mask: 0x01) */ +/* ======================================================== M0SELR1 ======================================================== */ + #define R_POE3_M0SELR1_M0ASEL_Pos (0UL) /*!< M0ASEL (Bit 0) */ + #define R_POE3_M0SELR1_M0ASEL_Msk (0xfUL) /*!< M0ASEL (Bitfield-Mask: 0x0f) */ + #define R_POE3_M0SELR1_M0BSEL_Pos (4UL) /*!< M0BSEL (Bit 4) */ + #define R_POE3_M0SELR1_M0BSEL_Msk (0xf0UL) /*!< M0BSEL (Bitfield-Mask: 0x0f) */ +/* ======================================================== M0SELR2 ======================================================== */ + #define R_POE3_M0SELR2_M0CSEL_Pos (0UL) /*!< M0CSEL (Bit 0) */ + #define R_POE3_M0SELR2_M0CSEL_Msk (0xfUL) /*!< M0CSEL (Bitfield-Mask: 0x0f) */ + #define R_POE3_M0SELR2_M0DSEL_Pos (4UL) /*!< M0DSEL (Bit 4) */ + #define R_POE3_M0SELR2_M0DSEL_Msk (0xf0UL) /*!< M0DSEL (Bitfield-Mask: 0x0f) */ +/* ======================================================== M3SELR ========================================================= */ + #define R_POE3_M3SELR_M3BSEL_Pos (0UL) /*!< M3BSEL (Bit 0) */ + #define R_POE3_M3SELR_M3BSEL_Msk (0xfUL) /*!< M3BSEL (Bitfield-Mask: 0x0f) */ + #define R_POE3_M3SELR_M3DSEL_Pos (4UL) /*!< M3DSEL (Bit 4) */ + #define R_POE3_M3SELR_M3DSEL_Msk (0xf0UL) /*!< M3DSEL (Bitfield-Mask: 0x0f) */ +/* ======================================================== M4SELR1 ======================================================== */ + #define R_POE3_M4SELR1_M4ASEL_Pos (0UL) /*!< M4ASEL (Bit 0) */ + #define R_POE3_M4SELR1_M4ASEL_Msk (0xfUL) /*!< M4ASEL (Bitfield-Mask: 0x0f) */ + #define R_POE3_M4SELR1_M4CSEL_Pos (4UL) /*!< M4CSEL (Bit 4) */ + #define R_POE3_M4SELR1_M4CSEL_Msk (0xf0UL) /*!< M4CSEL (Bitfield-Mask: 0x0f) */ +/* ======================================================== M4SELR2 ======================================================== */ + #define R_POE3_M4SELR2_M4BSEL_Pos (0UL) /*!< M4BSEL (Bit 0) */ + #define R_POE3_M4SELR2_M4BSEL_Msk (0xfUL) /*!< M4BSEL (Bitfield-Mask: 0x0f) */ + #define R_POE3_M4SELR2_M4DSEL_Pos (4UL) /*!< M4DSEL (Bit 4) */ + #define R_POE3_M4SELR2_M4DSEL_Msk (0xf0UL) /*!< M4DSEL (Bitfield-Mask: 0x0f) */ +/* ======================================================== M6SELR ========================================================= */ + #define R_POE3_M6SELR_M6BSEL_Pos (0UL) /*!< M6BSEL (Bit 0) */ + #define R_POE3_M6SELR_M6BSEL_Msk (0xfUL) /*!< M6BSEL (Bitfield-Mask: 0x0f) */ + #define R_POE3_M6SELR_M6DSEL_Pos (4UL) /*!< M6DSEL (Bit 4) */ + #define R_POE3_M6SELR_M6DSEL_Msk (0xf0UL) /*!< M6DSEL (Bitfield-Mask: 0x0f) */ +/* ======================================================== M7SELR1 ======================================================== */ + #define R_POE3_M7SELR1_M7ASEL_Pos (0UL) /*!< M7ASEL (Bit 0) */ + #define R_POE3_M7SELR1_M7ASEL_Msk (0xfUL) /*!< M7ASEL (Bitfield-Mask: 0x0f) */ + #define R_POE3_M7SELR1_M7CSEL_Pos (4UL) /*!< M7CSEL (Bit 4) */ + #define R_POE3_M7SELR1_M7CSEL_Msk (0xf0UL) /*!< M7CSEL (Bitfield-Mask: 0x0f) */ +/* ======================================================== M7SELR2 ======================================================== */ + #define R_POE3_M7SELR2_M7BSEL_Pos (0UL) /*!< M7BSEL (Bit 0) */ + #define R_POE3_M7SELR2_M7BSEL_Msk (0xfUL) /*!< M7BSEL (Bitfield-Mask: 0x0f) */ + #define R_POE3_M7SELR2_M7DSEL_Pos (4UL) /*!< M7DSEL (Bit 4) */ + #define R_POE3_M7SELR2_M7DSEL_Msk (0xf0UL) /*!< M7DSEL (Bitfield-Mask: 0x0f) */ + +/* =========================================================================================================================== */ +/* ================ R_POEG0 ================ */ +/* =========================================================================================================================== */ + +/* ======================================================== POEG0GA ======================================================== */ + #define R_POEG0_POEG0GA_PIDF_Pos (0UL) /*!< PIDF (Bit 0) */ + #define R_POEG0_POEG0GA_PIDF_Msk (0x1UL) /*!< PIDF (Bitfield-Mask: 0x01) */ + #define R_POEG0_POEG0GA_IOCF_Pos (1UL) /*!< IOCF (Bit 1) */ + #define R_POEG0_POEG0GA_IOCF_Msk (0x2UL) /*!< IOCF (Bitfield-Mask: 0x01) */ + #define R_POEG0_POEG0GA_OSTPF_Pos (2UL) /*!< OSTPF (Bit 2) */ + #define R_POEG0_POEG0GA_OSTPF_Msk (0x4UL) /*!< OSTPF (Bitfield-Mask: 0x01) */ + #define R_POEG0_POEG0GA_SSF_Pos (3UL) /*!< SSF (Bit 3) */ + #define R_POEG0_POEG0GA_SSF_Msk (0x8UL) /*!< SSF (Bitfield-Mask: 0x01) */ + #define R_POEG0_POEG0GA_PIDE_Pos (4UL) /*!< PIDE (Bit 4) */ + #define R_POEG0_POEG0GA_PIDE_Msk (0x10UL) /*!< PIDE (Bitfield-Mask: 0x01) */ + #define R_POEG0_POEG0GA_IOCE_Pos (5UL) /*!< IOCE (Bit 5) */ + #define R_POEG0_POEG0GA_IOCE_Msk (0x20UL) /*!< IOCE (Bitfield-Mask: 0x01) */ + #define R_POEG0_POEG0GA_OSTPE_Pos (6UL) /*!< OSTPE (Bit 6) */ + #define R_POEG0_POEG0GA_OSTPE_Msk (0x40UL) /*!< OSTPE (Bitfield-Mask: 0x01) */ + #define R_POEG0_POEG0GA_ST_Pos (16UL) /*!< ST (Bit 16) */ + #define R_POEG0_POEG0GA_ST_Msk (0x10000UL) /*!< ST (Bitfield-Mask: 0x01) */ + #define R_POEG0_POEG0GA_DERR0ST_Pos (24UL) /*!< DERR0ST (Bit 24) */ + #define R_POEG0_POEG0GA_DERR0ST_Msk (0x1000000UL) /*!< DERR0ST (Bitfield-Mask: 0x01) */ + #define R_POEG0_POEG0GA_DERR1ST_Pos (25UL) /*!< DERR1ST (Bit 25) */ + #define R_POEG0_POEG0GA_DERR1ST_Msk (0x2000000UL) /*!< DERR1ST (Bitfield-Mask: 0x01) */ + #define R_POEG0_POEG0GA_DERR0E_Pos (26UL) /*!< DERR0E (Bit 26) */ + #define R_POEG0_POEG0GA_DERR0E_Msk (0x4000000UL) /*!< DERR0E (Bitfield-Mask: 0x01) */ + #define R_POEG0_POEG0GA_DERR1E_Pos (27UL) /*!< DERR1E (Bit 27) */ + #define R_POEG0_POEG0GA_DERR1E_Msk (0x8000000UL) /*!< DERR1E (Bitfield-Mask: 0x01) */ + #define R_POEG0_POEG0GA_INV_Pos (28UL) /*!< INV (Bit 28) */ + #define R_POEG0_POEG0GA_INV_Msk (0x10000000UL) /*!< INV (Bitfield-Mask: 0x01) */ + #define R_POEG0_POEG0GA_NFEN_Pos (29UL) /*!< NFEN (Bit 29) */ + #define R_POEG0_POEG0GA_NFEN_Msk (0x20000000UL) /*!< NFEN (Bitfield-Mask: 0x01) */ + #define R_POEG0_POEG0GA_NFCS_Pos (30UL) /*!< NFCS (Bit 30) */ + #define R_POEG0_POEG0GA_NFCS_Msk (0xc0000000UL) /*!< NFCS (Bitfield-Mask: 0x03) */ +/* ======================================================== POEG0GB ======================================================== */ + #define R_POEG0_POEG0GB_PIDF_Pos (0UL) /*!< PIDF (Bit 0) */ + #define R_POEG0_POEG0GB_PIDF_Msk (0x1UL) /*!< PIDF (Bitfield-Mask: 0x01) */ + #define R_POEG0_POEG0GB_IOCF_Pos (1UL) /*!< IOCF (Bit 1) */ + #define R_POEG0_POEG0GB_IOCF_Msk (0x2UL) /*!< IOCF (Bitfield-Mask: 0x01) */ + #define R_POEG0_POEG0GB_OSTPF_Pos (2UL) /*!< OSTPF (Bit 2) */ + #define R_POEG0_POEG0GB_OSTPF_Msk (0x4UL) /*!< OSTPF (Bitfield-Mask: 0x01) */ + #define R_POEG0_POEG0GB_SSF_Pos (3UL) /*!< SSF (Bit 3) */ + #define R_POEG0_POEG0GB_SSF_Msk (0x8UL) /*!< SSF (Bitfield-Mask: 0x01) */ + #define R_POEG0_POEG0GB_PIDE_Pos (4UL) /*!< PIDE (Bit 4) */ + #define R_POEG0_POEG0GB_PIDE_Msk (0x10UL) /*!< PIDE (Bitfield-Mask: 0x01) */ + #define R_POEG0_POEG0GB_IOCE_Pos (5UL) /*!< IOCE (Bit 5) */ + #define R_POEG0_POEG0GB_IOCE_Msk (0x20UL) /*!< IOCE (Bitfield-Mask: 0x01) */ + #define R_POEG0_POEG0GB_OSTPE_Pos (6UL) /*!< OSTPE (Bit 6) */ + #define R_POEG0_POEG0GB_OSTPE_Msk (0x40UL) /*!< OSTPE (Bitfield-Mask: 0x01) */ + #define R_POEG0_POEG0GB_ST_Pos (16UL) /*!< ST (Bit 16) */ + #define R_POEG0_POEG0GB_ST_Msk (0x10000UL) /*!< ST (Bitfield-Mask: 0x01) */ + #define R_POEG0_POEG0GB_DERR0ST_Pos (24UL) /*!< DERR0ST (Bit 24) */ + #define R_POEG0_POEG0GB_DERR0ST_Msk (0x1000000UL) /*!< DERR0ST (Bitfield-Mask: 0x01) */ + #define R_POEG0_POEG0GB_DERR1ST_Pos (25UL) /*!< DERR1ST (Bit 25) */ + #define R_POEG0_POEG0GB_DERR1ST_Msk (0x2000000UL) /*!< DERR1ST (Bitfield-Mask: 0x01) */ + #define R_POEG0_POEG0GB_DERR0E_Pos (26UL) /*!< DERR0E (Bit 26) */ + #define R_POEG0_POEG0GB_DERR0E_Msk (0x4000000UL) /*!< DERR0E (Bitfield-Mask: 0x01) */ + #define R_POEG0_POEG0GB_DERR1E_Pos (27UL) /*!< DERR1E (Bit 27) */ + #define R_POEG0_POEG0GB_DERR1E_Msk (0x8000000UL) /*!< DERR1E (Bitfield-Mask: 0x01) */ + #define R_POEG0_POEG0GB_INV_Pos (28UL) /*!< INV (Bit 28) */ + #define R_POEG0_POEG0GB_INV_Msk (0x10000000UL) /*!< INV (Bitfield-Mask: 0x01) */ + #define R_POEG0_POEG0GB_NFEN_Pos (29UL) /*!< NFEN (Bit 29) */ + #define R_POEG0_POEG0GB_NFEN_Msk (0x20000000UL) /*!< NFEN (Bitfield-Mask: 0x01) */ + #define R_POEG0_POEG0GB_NFCS_Pos (30UL) /*!< NFCS (Bit 30) */ + #define R_POEG0_POEG0GB_NFCS_Msk (0xc0000000UL) /*!< NFCS (Bitfield-Mask: 0x03) */ +/* ======================================================== POEG0GC ======================================================== */ + #define R_POEG0_POEG0GC_PIDF_Pos (0UL) /*!< PIDF (Bit 0) */ + #define R_POEG0_POEG0GC_PIDF_Msk (0x1UL) /*!< PIDF (Bitfield-Mask: 0x01) */ + #define R_POEG0_POEG0GC_IOCF_Pos (1UL) /*!< IOCF (Bit 1) */ + #define R_POEG0_POEG0GC_IOCF_Msk (0x2UL) /*!< IOCF (Bitfield-Mask: 0x01) */ + #define R_POEG0_POEG0GC_OSTPF_Pos (2UL) /*!< OSTPF (Bit 2) */ + #define R_POEG0_POEG0GC_OSTPF_Msk (0x4UL) /*!< OSTPF (Bitfield-Mask: 0x01) */ + #define R_POEG0_POEG0GC_SSF_Pos (3UL) /*!< SSF (Bit 3) */ + #define R_POEG0_POEG0GC_SSF_Msk (0x8UL) /*!< SSF (Bitfield-Mask: 0x01) */ + #define R_POEG0_POEG0GC_PIDE_Pos (4UL) /*!< PIDE (Bit 4) */ + #define R_POEG0_POEG0GC_PIDE_Msk (0x10UL) /*!< PIDE (Bitfield-Mask: 0x01) */ + #define R_POEG0_POEG0GC_IOCE_Pos (5UL) /*!< IOCE (Bit 5) */ + #define R_POEG0_POEG0GC_IOCE_Msk (0x20UL) /*!< IOCE (Bitfield-Mask: 0x01) */ + #define R_POEG0_POEG0GC_OSTPE_Pos (6UL) /*!< OSTPE (Bit 6) */ + #define R_POEG0_POEG0GC_OSTPE_Msk (0x40UL) /*!< OSTPE (Bitfield-Mask: 0x01) */ + #define R_POEG0_POEG0GC_ST_Pos (16UL) /*!< ST (Bit 16) */ + #define R_POEG0_POEG0GC_ST_Msk (0x10000UL) /*!< ST (Bitfield-Mask: 0x01) */ + #define R_POEG0_POEG0GC_DERR0ST_Pos (24UL) /*!< DERR0ST (Bit 24) */ + #define R_POEG0_POEG0GC_DERR0ST_Msk (0x1000000UL) /*!< DERR0ST (Bitfield-Mask: 0x01) */ + #define R_POEG0_POEG0GC_DERR1ST_Pos (25UL) /*!< DERR1ST (Bit 25) */ + #define R_POEG0_POEG0GC_DERR1ST_Msk (0x2000000UL) /*!< DERR1ST (Bitfield-Mask: 0x01) */ + #define R_POEG0_POEG0GC_DERR0E_Pos (26UL) /*!< DERR0E (Bit 26) */ + #define R_POEG0_POEG0GC_DERR0E_Msk (0x4000000UL) /*!< DERR0E (Bitfield-Mask: 0x01) */ + #define R_POEG0_POEG0GC_DERR1E_Pos (27UL) /*!< DERR1E (Bit 27) */ + #define R_POEG0_POEG0GC_DERR1E_Msk (0x8000000UL) /*!< DERR1E (Bitfield-Mask: 0x01) */ + #define R_POEG0_POEG0GC_INV_Pos (28UL) /*!< INV (Bit 28) */ + #define R_POEG0_POEG0GC_INV_Msk (0x10000000UL) /*!< INV (Bitfield-Mask: 0x01) */ + #define R_POEG0_POEG0GC_NFEN_Pos (29UL) /*!< NFEN (Bit 29) */ + #define R_POEG0_POEG0GC_NFEN_Msk (0x20000000UL) /*!< NFEN (Bitfield-Mask: 0x01) */ + #define R_POEG0_POEG0GC_NFCS_Pos (30UL) /*!< NFCS (Bit 30) */ + #define R_POEG0_POEG0GC_NFCS_Msk (0xc0000000UL) /*!< NFCS (Bitfield-Mask: 0x03) */ +/* ======================================================== POEG0GD ======================================================== */ + #define R_POEG0_POEG0GD_PIDF_Pos (0UL) /*!< PIDF (Bit 0) */ + #define R_POEG0_POEG0GD_PIDF_Msk (0x1UL) /*!< PIDF (Bitfield-Mask: 0x01) */ + #define R_POEG0_POEG0GD_IOCF_Pos (1UL) /*!< IOCF (Bit 1) */ + #define R_POEG0_POEG0GD_IOCF_Msk (0x2UL) /*!< IOCF (Bitfield-Mask: 0x01) */ + #define R_POEG0_POEG0GD_OSTPF_Pos (2UL) /*!< OSTPF (Bit 2) */ + #define R_POEG0_POEG0GD_OSTPF_Msk (0x4UL) /*!< OSTPF (Bitfield-Mask: 0x01) */ + #define R_POEG0_POEG0GD_SSF_Pos (3UL) /*!< SSF (Bit 3) */ + #define R_POEG0_POEG0GD_SSF_Msk (0x8UL) /*!< SSF (Bitfield-Mask: 0x01) */ + #define R_POEG0_POEG0GD_PIDE_Pos (4UL) /*!< PIDE (Bit 4) */ + #define R_POEG0_POEG0GD_PIDE_Msk (0x10UL) /*!< PIDE (Bitfield-Mask: 0x01) */ + #define R_POEG0_POEG0GD_IOCE_Pos (5UL) /*!< IOCE (Bit 5) */ + #define R_POEG0_POEG0GD_IOCE_Msk (0x20UL) /*!< IOCE (Bitfield-Mask: 0x01) */ + #define R_POEG0_POEG0GD_OSTPE_Pos (6UL) /*!< OSTPE (Bit 6) */ + #define R_POEG0_POEG0GD_OSTPE_Msk (0x40UL) /*!< OSTPE (Bitfield-Mask: 0x01) */ + #define R_POEG0_POEG0GD_ST_Pos (16UL) /*!< ST (Bit 16) */ + #define R_POEG0_POEG0GD_ST_Msk (0x10000UL) /*!< ST (Bitfield-Mask: 0x01) */ + #define R_POEG0_POEG0GD_DERR0ST_Pos (24UL) /*!< DERR0ST (Bit 24) */ + #define R_POEG0_POEG0GD_DERR0ST_Msk (0x1000000UL) /*!< DERR0ST (Bitfield-Mask: 0x01) */ + #define R_POEG0_POEG0GD_DERR1ST_Pos (25UL) /*!< DERR1ST (Bit 25) */ + #define R_POEG0_POEG0GD_DERR1ST_Msk (0x2000000UL) /*!< DERR1ST (Bitfield-Mask: 0x01) */ + #define R_POEG0_POEG0GD_DERR0E_Pos (26UL) /*!< DERR0E (Bit 26) */ + #define R_POEG0_POEG0GD_DERR0E_Msk (0x4000000UL) /*!< DERR0E (Bitfield-Mask: 0x01) */ + #define R_POEG0_POEG0GD_DERR1E_Pos (27UL) /*!< DERR1E (Bit 27) */ + #define R_POEG0_POEG0GD_DERR1E_Msk (0x8000000UL) /*!< DERR1E (Bitfield-Mask: 0x01) */ + #define R_POEG0_POEG0GD_INV_Pos (28UL) /*!< INV (Bit 28) */ + #define R_POEG0_POEG0GD_INV_Msk (0x10000000UL) /*!< INV (Bitfield-Mask: 0x01) */ + #define R_POEG0_POEG0GD_NFEN_Pos (29UL) /*!< NFEN (Bit 29) */ + #define R_POEG0_POEG0GD_NFEN_Msk (0x20000000UL) /*!< NFEN (Bitfield-Mask: 0x01) */ + #define R_POEG0_POEG0GD_NFCS_Pos (30UL) /*!< NFCS (Bit 30) */ + #define R_POEG0_POEG0GD_NFCS_Msk (0xc0000000UL) /*!< NFCS (Bitfield-Mask: 0x03) */ + +/* =========================================================================================================================== */ +/* ================ R_DSMIF0 ================ */ +/* =========================================================================================================================== */ + +/* ======================================================== DSSEICR ======================================================== */ + #define R_DSMIF0_DSSEICR_ISEL_Pos (0UL) /*!< ISEL (Bit 0) */ + #define R_DSMIF0_DSSEICR_ISEL_Msk (0x1UL) /*!< ISEL (Bitfield-Mask: 0x01) */ + #define R_DSMIF0_DSSEICR_ISEH_Pos (1UL) /*!< ISEH (Bit 1) */ + #define R_DSMIF0_DSSEICR_ISEH_Msk (0x2UL) /*!< ISEH (Bitfield-Mask: 0x01) */ +/* ======================================================== DSSECSR ======================================================== */ + #define R_DSMIF0_DSSECSR_SEDM_Pos (0UL) /*!< SEDM (Bit 0) */ + #define R_DSMIF0_DSSECSR_SEDM_Msk (0x7UL) /*!< SEDM (Bitfield-Mask: 0x07) */ +/* ======================================================== DSSELTR ======================================================== */ + #define R_DSMIF0_DSSELTR_SCMPTBL_Pos (0UL) /*!< SCMPTBL (Bit 0) */ + #define R_DSMIF0_DSSELTR_SCMPTBL_Msk (0x3ffffUL) /*!< SCMPTBL (Bitfield-Mask: 0x3ffff) */ +/* ======================================================== DSSEHTR ======================================================== */ + #define R_DSMIF0_DSSEHTR_SCMPTBH_Pos (0UL) /*!< SCMPTBH (Bit 0) */ + #define R_DSMIF0_DSSEHTR_SCMPTBH_Msk (0x3ffffUL) /*!< SCMPTBH (Bitfield-Mask: 0x3ffff) */ +/* ======================================================== DSSECR ========================================================= */ + #define R_DSMIF0_DSSECR_SEEL_Pos (0UL) /*!< SEEL (Bit 0) */ + #define R_DSMIF0_DSSECR_SEEL_Msk (0x1UL) /*!< SEEL (Bitfield-Mask: 0x01) */ + #define R_DSMIF0_DSSECR_SEEH_Pos (1UL) /*!< SEEH (Bit 1) */ + #define R_DSMIF0_DSSECR_SEEH_Msk (0x2UL) /*!< SEEH (Bitfield-Mask: 0x01) */ +/* ======================================================== DSSECDR ======================================================== */ + #define R_DSMIF0_DSSECDR_SECDR_Pos (0UL) /*!< SECDR (Bit 0) */ + #define R_DSMIF0_DSSECDR_SECDR_Msk (0xffffUL) /*!< SECDR (Bitfield-Mask: 0xffff) */ +/* ======================================================= DSCSTRTR ======================================================== */ + #define R_DSMIF0_DSCSTRTR_STRTRG0_Pos (0UL) /*!< STRTRG0 (Bit 0) */ + #define R_DSMIF0_DSCSTRTR_STRTRG0_Msk (0x1UL) /*!< STRTRG0 (Bitfield-Mask: 0x01) */ + #define R_DSMIF0_DSCSTRTR_STRTRG1_Pos (1UL) /*!< STRTRG1 (Bit 1) */ + #define R_DSMIF0_DSCSTRTR_STRTRG1_Msk (0x2UL) /*!< STRTRG1 (Bitfield-Mask: 0x01) */ + #define R_DSMIF0_DSCSTRTR_STRTRG2_Pos (2UL) /*!< STRTRG2 (Bit 2) */ + #define R_DSMIF0_DSCSTRTR_STRTRG2_Msk (0x4UL) /*!< STRTRG2 (Bitfield-Mask: 0x01) */ +/* ======================================================= DSCSTPTR ======================================================== */ + #define R_DSMIF0_DSCSTPTR_STPTRG0_Pos (0UL) /*!< STPTRG0 (Bit 0) */ + #define R_DSMIF0_DSCSTPTR_STPTRG0_Msk (0x1UL) /*!< STPTRG0 (Bitfield-Mask: 0x01) */ + #define R_DSMIF0_DSCSTPTR_STPTRG1_Pos (1UL) /*!< STPTRG1 (Bit 1) */ + #define R_DSMIF0_DSCSTPTR_STPTRG1_Msk (0x2UL) /*!< STPTRG1 (Bitfield-Mask: 0x01) */ + #define R_DSMIF0_DSCSTPTR_STPTRG2_Pos (2UL) /*!< STPTRG2 (Bit 2) */ + #define R_DSMIF0_DSCSTPTR_STPTRG2_Msk (0x4UL) /*!< STPTRG2 (Bitfield-Mask: 0x01) */ +/* ======================================================== DSCESR ========================================================= */ + #define R_DSMIF0_DSCESR_OCFL0_Pos (0UL) /*!< OCFL0 (Bit 0) */ + #define R_DSMIF0_DSCESR_OCFL0_Msk (0x1UL) /*!< OCFL0 (Bitfield-Mask: 0x01) */ + #define R_DSMIF0_DSCESR_OCFL1_Pos (1UL) /*!< OCFL1 (Bit 1) */ + #define R_DSMIF0_DSCESR_OCFL1_Msk (0x2UL) /*!< OCFL1 (Bitfield-Mask: 0x01) */ + #define R_DSMIF0_DSCESR_OCFL2_Pos (2UL) /*!< OCFL2 (Bit 2) */ + #define R_DSMIF0_DSCESR_OCFL2_Msk (0x4UL) /*!< OCFL2 (Bitfield-Mask: 0x01) */ + #define R_DSMIF0_DSCESR_OCFH0_Pos (4UL) /*!< OCFH0 (Bit 4) */ + #define R_DSMIF0_DSCESR_OCFH0_Msk (0x10UL) /*!< OCFH0 (Bitfield-Mask: 0x01) */ + #define R_DSMIF0_DSCESR_OCFH1_Pos (5UL) /*!< OCFH1 (Bit 5) */ + #define R_DSMIF0_DSCESR_OCFH1_Msk (0x20UL) /*!< OCFH1 (Bitfield-Mask: 0x01) */ + #define R_DSMIF0_DSCESR_OCFH2_Pos (6UL) /*!< OCFH2 (Bit 6) */ + #define R_DSMIF0_DSCESR_OCFH2_Msk (0x40UL) /*!< OCFH2 (Bitfield-Mask: 0x01) */ + #define R_DSMIF0_DSCESR_SCF0_Pos (8UL) /*!< SCF0 (Bit 8) */ + #define R_DSMIF0_DSCESR_SCF0_Msk (0x100UL) /*!< SCF0 (Bitfield-Mask: 0x01) */ + #define R_DSMIF0_DSCESR_SCF1_Pos (9UL) /*!< SCF1 (Bit 9) */ + #define R_DSMIF0_DSCESR_SCF1_Msk (0x200UL) /*!< SCF1 (Bitfield-Mask: 0x01) */ + #define R_DSMIF0_DSCESR_SCF2_Pos (10UL) /*!< SCF2 (Bit 10) */ + #define R_DSMIF0_DSCESR_SCF2_Msk (0x400UL) /*!< SCF2 (Bitfield-Mask: 0x01) */ + #define R_DSMIF0_DSCESR_SUMERRL_Pos (16UL) /*!< SUMERRL (Bit 16) */ + #define R_DSMIF0_DSCESR_SUMERRL_Msk (0x10000UL) /*!< SUMERRL (Bitfield-Mask: 0x01) */ + #define R_DSMIF0_DSCESR_SUMERRH_Pos (17UL) /*!< SUMERRH (Bit 17) */ + #define R_DSMIF0_DSCESR_SUMERRH_Msk (0x20000UL) /*!< SUMERRH (Bitfield-Mask: 0x01) */ +/* ========================================================= DSCSR ========================================================= */ + #define R_DSMIF0_DSCSR_DUF0_Pos (0UL) /*!< DUF0 (Bit 0) */ + #define R_DSMIF0_DSCSR_DUF0_Msk (0x1UL) /*!< DUF0 (Bitfield-Mask: 0x01) */ + #define R_DSMIF0_DSCSR_DUF1_Pos (1UL) /*!< DUF1 (Bit 1) */ + #define R_DSMIF0_DSCSR_DUF1_Msk (0x2UL) /*!< DUF1 (Bitfield-Mask: 0x01) */ + #define R_DSMIF0_DSCSR_DUF2_Pos (2UL) /*!< DUF2 (Bit 2) */ + #define R_DSMIF0_DSCSR_DUF2_Msk (0x4UL) /*!< DUF2 (Bitfield-Mask: 0x01) */ +/* ======================================================== DSCSSR ========================================================= */ + #define R_DSMIF0_DSCSSR_CHSTATE0_Pos (0UL) /*!< CHSTATE0 (Bit 0) */ + #define R_DSMIF0_DSCSSR_CHSTATE0_Msk (0x1UL) /*!< CHSTATE0 (Bitfield-Mask: 0x01) */ + #define R_DSMIF0_DSCSSR_CHSTATE1_Pos (4UL) /*!< CHSTATE1 (Bit 4) */ + #define R_DSMIF0_DSCSSR_CHSTATE1_Msk (0x10UL) /*!< CHSTATE1 (Bitfield-Mask: 0x01) */ + #define R_DSMIF0_DSCSSR_CHSTATE2_Pos (8UL) /*!< CHSTATE2 (Bit 8) */ + #define R_DSMIF0_DSCSSR_CHSTATE2_Msk (0x100UL) /*!< CHSTATE2 (Bitfield-Mask: 0x01) */ +/* ======================================================== DSCESCR ======================================================== */ + #define R_DSMIF0_DSCESCR_CLROCFL0_Pos (0UL) /*!< CLROCFL0 (Bit 0) */ + #define R_DSMIF0_DSCESCR_CLROCFL0_Msk (0x1UL) /*!< CLROCFL0 (Bitfield-Mask: 0x01) */ + #define R_DSMIF0_DSCESCR_CLROCFL1_Pos (1UL) /*!< CLROCFL1 (Bit 1) */ + #define R_DSMIF0_DSCESCR_CLROCFL1_Msk (0x2UL) /*!< CLROCFL1 (Bitfield-Mask: 0x01) */ + #define R_DSMIF0_DSCESCR_CLROCFL2_Pos (2UL) /*!< CLROCFL2 (Bit 2) */ + #define R_DSMIF0_DSCESCR_CLROCFL2_Msk (0x4UL) /*!< CLROCFL2 (Bitfield-Mask: 0x01) */ + #define R_DSMIF0_DSCESCR_CLROCFH0_Pos (4UL) /*!< CLROCFH0 (Bit 4) */ + #define R_DSMIF0_DSCESCR_CLROCFH0_Msk (0x10UL) /*!< CLROCFH0 (Bitfield-Mask: 0x01) */ + #define R_DSMIF0_DSCESCR_CLROCFH1_Pos (5UL) /*!< CLROCFH1 (Bit 5) */ + #define R_DSMIF0_DSCESCR_CLROCFH1_Msk (0x20UL) /*!< CLROCFH1 (Bitfield-Mask: 0x01) */ + #define R_DSMIF0_DSCESCR_CLROCFH2_Pos (6UL) /*!< CLROCFH2 (Bit 6) */ + #define R_DSMIF0_DSCESCR_CLROCFH2_Msk (0x40UL) /*!< CLROCFH2 (Bitfield-Mask: 0x01) */ + #define R_DSMIF0_DSCESCR_CLRSCF0_Pos (8UL) /*!< CLRSCF0 (Bit 8) */ + #define R_DSMIF0_DSCESCR_CLRSCF0_Msk (0x100UL) /*!< CLRSCF0 (Bitfield-Mask: 0x01) */ + #define R_DSMIF0_DSCESCR_CLRSCF1_Pos (9UL) /*!< CLRSCF1 (Bit 9) */ + #define R_DSMIF0_DSCESCR_CLRSCF1_Msk (0x200UL) /*!< CLRSCF1 (Bitfield-Mask: 0x01) */ + #define R_DSMIF0_DSCESCR_CLRSCF2_Pos (10UL) /*!< CLRSCF2 (Bit 10) */ + #define R_DSMIF0_DSCESCR_CLRSCF2_Msk (0x400UL) /*!< CLRSCF2 (Bitfield-Mask: 0x01) */ + #define R_DSMIF0_DSCESCR_CLRSUMERRL_Pos (16UL) /*!< CLRSUMERRL (Bit 16) */ + #define R_DSMIF0_DSCESCR_CLRSUMERRL_Msk (0x10000UL) /*!< CLRSUMERRL (Bitfield-Mask: 0x01) */ + #define R_DSMIF0_DSCESCR_CLRSUMERRH_Pos (17UL) /*!< CLRSUMERRH (Bit 17) */ + #define R_DSMIF0_DSCESCR_CLRSUMERRH_Msk (0x20000UL) /*!< CLRSUMERRH (Bitfield-Mask: 0x01) */ +/* ======================================================== DSCSCR ========================================================= */ + #define R_DSMIF0_DSCSCR_CLRDUF0_Pos (0UL) /*!< CLRDUF0 (Bit 0) */ + #define R_DSMIF0_DSCSCR_CLRDUF0_Msk (0x1UL) /*!< CLRDUF0 (Bitfield-Mask: 0x01) */ + #define R_DSMIF0_DSCSCR_CLRDUF1_Pos (1UL) /*!< CLRDUF1 (Bit 1) */ + #define R_DSMIF0_DSCSCR_CLRDUF1_Msk (0x2UL) /*!< CLRDUF1 (Bitfield-Mask: 0x01) */ + #define R_DSMIF0_DSCSCR_CLRDUF2_Pos (2UL) /*!< CLRDUF2 (Bit 2) */ + #define R_DSMIF0_DSCSCR_CLRDUF2_Msk (0x4UL) /*!< CLRDUF2 (Bitfield-Mask: 0x01) */ + +/* =========================================================================================================================== */ +/* ================ R_GSC ================ */ +/* =========================================================================================================================== */ + +/* ========================================================= CNTCR ========================================================= */ + #define R_GSC_CNTCR_EN_Pos (0UL) /*!< EN (Bit 0) */ + #define R_GSC_CNTCR_EN_Msk (0x1UL) /*!< EN (Bitfield-Mask: 0x01) */ + #define R_GSC_CNTCR_HDBG_Pos (1UL) /*!< HDBG (Bit 1) */ + #define R_GSC_CNTCR_HDBG_Msk (0x2UL) /*!< HDBG (Bitfield-Mask: 0x01) */ +/* ========================================================= CNTSR ========================================================= */ + #define R_GSC_CNTSR_DBGH_Pos (1UL) /*!< DBGH (Bit 1) */ + #define R_GSC_CNTSR_DBGH_Msk (0x2UL) /*!< DBGH (Bitfield-Mask: 0x01) */ +/* ======================================================== CNTCVL ========================================================= */ + #define R_GSC_CNTCVL_CNTCVL_L_32_Pos (0UL) /*!< CNTCVL_L_32 (Bit 0) */ + #define R_GSC_CNTCVL_CNTCVL_L_32_Msk (0xffffffffUL) /*!< CNTCVL_L_32 (Bitfield-Mask: 0xffffffff) */ +/* ======================================================== CNTCVU ========================================================= */ + #define R_GSC_CNTCVU_CNTCVU_U_32_Pos (0UL) /*!< CNTCVU_U_32 (Bit 0) */ + #define R_GSC_CNTCVU_CNTCVU_U_32_Msk (0xffffffffUL) /*!< CNTCVU_U_32 (Bitfield-Mask: 0xffffffff) */ +/* ======================================================== CNTFID0 ======================================================== */ + #define R_GSC_CNTFID0_FREQ_Pos (0UL) /*!< FREQ (Bit 0) */ + #define R_GSC_CNTFID0_FREQ_Msk (0xffffffffUL) /*!< FREQ (Bitfield-Mask: 0xffffffff) */ + +/** @} */ /* End of group PosMask_peripherals */ + + #ifdef __cplusplus +} + #endif + +#endif /* R9A07G084_H */ + +/** @} */ /* End of group R9A07G084 */ + +/** @} */ /* End of group Renesas Electronics Corporation */ diff --git a/bsp/renesas/rzn2l_rsk/rzn/fsp/src/bsp/cmsis/Device/RENESAS/Include/renesas.h b/bsp/renesas/rzn2l_rsk/rzn/fsp/src/bsp/cmsis/Device/RENESAS/Include/renesas.h new file mode 100644 index 0000000000..5e369f1b4e --- /dev/null +++ b/bsp/renesas/rzn2l_rsk/rzn/fsp/src/bsp/cmsis/Device/RENESAS/Include/renesas.h @@ -0,0 +1,131 @@ +/*********************************************************************************************************************** + * Copyright [2020-2024] Renesas Electronics Corporation and/or its affiliates. All Rights Reserved. + * + * This software and documentation are supplied by Renesas Electronics Corporation and/or its affiliates and may only + * be used with products of Renesas Electronics Corp. and its affiliates ("Renesas"). No other uses are authorized. + * Renesas products are sold pursuant to Renesas terms and conditions of sale. Purchasers are solely responsible for + * the selection and use of Renesas products and Renesas assumes no liability. No license, express or implied, to any + * intellectual property right is granted by Renesas. This software is protected under all applicable laws, including + * copyright laws. Renesas reserves the right to change or discontinue this software and/or this documentation. + * THE SOFTWARE AND DOCUMENTATION IS DELIVERED TO YOU "AS IS," AND RENESAS MAKES NO REPRESENTATIONS OR WARRANTIES, AND + * TO THE FULLEST EXTENT PERMISSIBLE UNDER APPLICABLE LAW, DISCLAIMS ALL WARRANTIES, WHETHER EXPLICITLY OR IMPLICITLY, + * INCLUDING WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE, AND NONINFRINGEMENT, WITH RESPECT TO THE + * SOFTWARE OR DOCUMENTATION. RENESAS SHALL HAVE NO LIABILITY ARISING OUT OF ANY SECURITY VULNERABILITY OR BREACH. + * TO THE MAXIMUM EXTENT PERMITTED BY LAW, IN NO EVENT WILL RENESAS BE LIABLE TO YOU IN CONNECTION WITH THE SOFTWARE OR + * DOCUMENTATION (OR ANY PERSON OR ENTITY CLAIMING RIGHTS DERIVED FROM YOU) FOR ANY LOSS, DAMAGES, OR CLAIMS WHATSOEVER, + * INCLUDING, WITHOUT LIMITATION, ANY DIRECT, CONSEQUENTIAL, SPECIAL, INDIRECT, PUNITIVE, OR INCIDENTAL DAMAGES; ANY + * LOST PROFITS, OTHER ECONOMIC DAMAGE, PROPERTY DAMAGE, OR PERSONAL INJURY; AND EVEN IF RENESAS HAS BEEN ADVISED OF THE + * POSSIBILITY OF SUCH LOSS, DAMAGES, CLAIMS OR COSTS. + **********************************************************************************************************************/ + +/* Ensure Renesas MCU variation definitions are included to ensure MCU + * specific register variations are handled correctly. */ +#ifndef BSP_FEATURE_H + #error "INTERNAL ERROR: bsp_feature.h must be included before renesas.h." +#endif + +/** @addtogroup Renesas Electronics Corporation + * @{ + */ + +/** @addtogroup RZN2 + * @{ + */ + +#ifndef RZN2_H + #define RZN2_H + + #ifdef __cplusplus +extern "C" { + #endif + +/* Define compiler macros for CPU architecture, used in CMSIS 5. */ + #if defined(__ICCARM__) + #if __ARM_ARCH_6M__ || __ARM_ARCH_7M__ || __ARM_ARCH_7EM__ || __ARM_ARCH_8M_BASE__ || __ARM_ARCH_8M_MAIN__ + +/* Macros already defined */ + #else + #if defined(__ARM8M_MAINLINE__) || defined(__ARM8EM_MAINLINE__) + #define __ARM_ARCH_8M_MAIN__ 1 + #elif defined(__ARM8M_BASELINE__) + #define __ARM_ARCH_8M_BASE__ 1 + #elif defined(__ARM_ARCH_PROFILE) && __ARM_ARCH_PROFILE == 'M' + #if __ARM_ARCH == 6 + #define __ARM_ARCH_6M__ 1 + #elif __ARM_ARCH == 7 + #if __ARM_FEATURE_DSP + #define __ARM_ARCH_7EM__ 1 + #else + #define __ARM_ARCH_7M__ 1 + #endif + #endif /* __ARM_ARCH */ + #endif /* __ARM_ARCH_PROFILE == 'M' */ + #endif + +/* Alternative core deduction for older ICCARM's */ + #if !defined(__ARM_ARCH_6M__) && !defined(__ARM_ARCH_7M__) && !defined(__ARM_ARCH_7EM__) && \ + !defined(__ARM_ARCH_8M_BASE__) && !defined(__ARM_ARCH_8M_MAIN__) + #if defined(__ARM6M__) && (__CORE__ == __ARM6M__) + #define __ARM_ARCH_6M__ 1 + #elif defined(__ARM7M__) && (__CORE__ == __ARM7M__) + #define __ARM_ARCH_7M__ 1 + #elif defined(__ARM7EM__) && (__CORE__ == __ARM7EM__) + #define __ARM_ARCH_7EM__ 1 + #elif defined(__ARM8M_BASELINE__) && (__CORE == __ARM8M_BASELINE__) + #define __ARM_ARCH_8M_BASE__ 1 + #elif defined(__ARM8M_MAINLINE__) && (__CORE == __ARM8M_MAINLINE__) + #define __ARM_ARCH_8M_MAIN__ 1 + #elif defined(__ARM8EM_MAINLINE__) && (__CORE == __ARM8EM_MAINLINE__) + #define __ARM_ARCH_8M_MAIN__ 1 + #elif defined(__ARM8R__) && (__CORE__ == __ARM8R__) + #define __ARM_ARCH_8R__ 1 + #else + #error "Unknown target." + #endif + #endif + #endif + +/** @addtogroup Configuration_of_CMSIS + * @{ + */ + +/* =========================================================================================================================== */ +/* ================ Interrupt Number Definition ================ */ +/* =========================================================================================================================== */ +/* IRQn_Type is generated as part of an FSP project. It can be found in vector_data.h. */ + +/** @} */ /* End of group Configuration_of_CMSIS */ + +/* =========================================================================================================================== */ +/* ================ Processor and Core Peripheral Section ================ */ +/* =========================================================================================================================== */ + + #if __ARM_ARCH_7EM__ + #define RENESAS_CORTEX_M4 + #elif __ARM_ARCH_6M__ + #define RENESAS_CORTEX_M0PLUS + #elif __ARM_ARCH_8M_BASE__ + #define RENESAS_CORTEX_M23 + #elif __ARM_ARCH_8M_MAIN__ + #define RENESAS_CORTEX_M33 + #elif __ARM_ARCH_8R__ + #define RENESAS_CORTEX_R52 + #else + #warning Unsupported Architecture + #endif + + #if BSP_MCU_GROUP_RZN2L + #include "R9A07G084.h" + #else + #warning Unsupported MCU + #endif + + #ifdef __cplusplus +} + #endif + +#endif /* RZN2_H */ + +/** @} */ /* End of group RZN2 */ + +/** @} */ /* End of group Renesas Electronics Corporation */ diff --git a/bsp/renesas/rzn2l_rsk/rzn/fsp/src/bsp/cmsis/Device/RENESAS/Include/system.h b/bsp/renesas/rzn2l_rsk/rzn/fsp/src/bsp/cmsis/Device/RENESAS/Include/system.h new file mode 100644 index 0000000000..2fafe6c0f6 --- /dev/null +++ b/bsp/renesas/rzn2l_rsk/rzn/fsp/src/bsp/cmsis/Device/RENESAS/Include/system.h @@ -0,0 +1,58 @@ +/*********************************************************************************************************************** + * Copyright [2020-2024] Renesas Electronics Corporation and/or its affiliates. All Rights Reserved. + * + * This software and documentation are supplied by Renesas Electronics Corporation and/or its affiliates and may only + * be used with products of Renesas Electronics Corp. and its affiliates ("Renesas"). No other uses are authorized. + * Renesas products are sold pursuant to Renesas terms and conditions of sale. Purchasers are solely responsible for + * the selection and use of Renesas products and Renesas assumes no liability. No license, express or implied, to any + * intellectual property right is granted by Renesas. This software is protected under all applicable laws, including + * copyright laws. Renesas reserves the right to change or discontinue this software and/or this documentation. + * THE SOFTWARE AND DOCUMENTATION IS DELIVERED TO YOU "AS IS," AND RENESAS MAKES NO REPRESENTATIONS OR WARRANTIES, AND + * TO THE FULLEST EXTENT PERMISSIBLE UNDER APPLICABLE LAW, DISCLAIMS ALL WARRANTIES, WHETHER EXPLICITLY OR IMPLICITLY, + * INCLUDING WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE, AND NONINFRINGEMENT, WITH RESPECT TO THE + * SOFTWARE OR DOCUMENTATION. RENESAS SHALL HAVE NO LIABILITY ARISING OUT OF ANY SECURITY VULNERABILITY OR BREACH. + * TO THE MAXIMUM EXTENT PERMITTED BY LAW, IN NO EVENT WILL RENESAS BE LIABLE TO YOU IN CONNECTION WITH THE SOFTWARE OR + * DOCUMENTATION (OR ANY PERSON OR ENTITY CLAIMING RIGHTS DERIVED FROM YOU) FOR ANY LOSS, DAMAGES, OR CLAIMS WHATSOEVER, + * INCLUDING, WITHOUT LIMITATION, ANY DIRECT, CONSEQUENTIAL, SPECIAL, INDIRECT, PUNITIVE, OR INCIDENTAL DAMAGES; ANY + * LOST PROFITS, OTHER ECONOMIC DAMAGE, PROPERTY DAMAGE, OR PERSONAL INJURY; AND EVEN IF RENESAS HAS BEEN ADVISED OF THE + * POSSIBILITY OF SUCH LOSS, DAMAGES, CLAIMS OR COSTS. + **********************************************************************************************************************/ + +#ifndef SYSTEM_RENESAS_ARM_H + #define SYSTEM_RENESAS_ARM_H + + #ifdef __cplusplus +extern "C" { + #endif + + #include + +extern uint32_t SystemCoreClock; /** System Clock Frequency (Core Clock) */ + +/** + * Initialize the system + * + * @param none + * @return none + * + * @brief Setup the microcontroller system. + * Initialize the System and update the SystemCoreClock variable. + */ +extern void SystemInit(void); + +/** + * Update SystemCoreClock variable + * + * @param none + * @return none + * + * @brief Updates the SystemCoreClock with current core Clock + * retrieved from cpu registers. + */ +extern void SystemCoreClockUpdate(void); + + #ifdef __cplusplus +} + #endif + +#endif diff --git a/bsp/renesas/rzn2l_rsk/rzn/fsp/src/bsp/cmsis/Device/RENESAS/Source/cr/startup_core.c b/bsp/renesas/rzn2l_rsk/rzn/fsp/src/bsp/cmsis/Device/RENESAS/Source/cr/startup_core.c new file mode 100644 index 0000000000..3347ca1d08 --- /dev/null +++ b/bsp/renesas/rzn2l_rsk/rzn/fsp/src/bsp/cmsis/Device/RENESAS/Source/cr/startup_core.c @@ -0,0 +1,364 @@ +/*********************************************************************************************************************** + * Copyright [2020-2024] Renesas Electronics Corporation and/or its affiliates. All Rights Reserved. + * + * This software and documentation are supplied by Renesas Electronics Corporation and/or its affiliates and may only + * be used with products of Renesas Electronics Corp. and its affiliates ("Renesas"). No other uses are authorized. + * Renesas products are sold pursuant to Renesas terms and conditions of sale. Purchasers are solely responsible for + * the selection and use of Renesas products and Renesas assumes no liability. No license, express or implied, to any + * intellectual property right is granted by Renesas. This software is protected under all applicable laws, including + * copyright laws. Renesas reserves the right to change or discontinue this software and/or this documentation. + * THE SOFTWARE AND DOCUMENTATION IS DELIVERED TO YOU "AS IS," AND RENESAS MAKES NO REPRESENTATIONS OR WARRANTIES, AND + * TO THE FULLEST EXTENT PERMISSIBLE UNDER APPLICABLE LAW, DISCLAIMS ALL WARRANTIES, WHETHER EXPLICITLY OR IMPLICITLY, + * INCLUDING WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE, AND NONINFRINGEMENT, WITH RESPECT TO THE + * SOFTWARE OR DOCUMENTATION. RENESAS SHALL HAVE NO LIABILITY ARISING OUT OF ANY SECURITY VULNERABILITY OR BREACH. + * TO THE MAXIMUM EXTENT PERMITTED BY LAW, IN NO EVENT WILL RENESAS BE LIABLE TO YOU IN CONNECTION WITH THE SOFTWARE OR + * DOCUMENTATION (OR ANY PERSON OR ENTITY CLAIMING RIGHTS DERIVED FROM YOU) FOR ANY LOSS, DAMAGES, OR CLAIMS WHATSOEVER, + * INCLUDING, WITHOUT LIMITATION, ANY DIRECT, CONSEQUENTIAL, SPECIAL, INDIRECT, PUNITIVE, OR INCIDENTAL DAMAGES; ANY + * LOST PROFITS, OTHER ECONOMIC DAMAGE, PROPERTY DAMAGE, OR PERSONAL INJURY; AND EVEN IF RENESAS HAS BEEN ADVISED OF THE + * POSSIBILITY OF SUCH LOSS, DAMAGES, CLAIMS OR COSTS. + **********************************************************************************************************************/ + +/*********************************************************************************************************************** + * Includes , "Project Includes" + **********************************************************************************************************************/ +#include "bsp_api.h" + +/*********************************************************************************************************************** + * Macro definitions + **********************************************************************************************************************/ +#define BSP_HACTLR_BIT_L (0xB783) /* HACTLR EL1 access enable(0b1011 0111 1000 0011) */ +#define BSP_HCR_HCD_DISABLE (0x20000000) /* HCR.HCD = 1 : HVC disable */ +#define BSP_MODE_MASK (0x1F) /* Bit mask for mode bits in CPSR */ +#define BSP_SVC_MODE (0x13) /* Supervisor mode */ + +#if defined(__ICCARM__) + #define BSP_IRQ_STACK_END_ADDRESS __section_end(".irq_stack") + #define BSP_FIQ_STACK_END_ADDRESS __section_end(".fiq_stack") + #define BSP_SVC_STACK_END_ADDRESS __section_end(".svc_stack") + #define BSP_ABORT_STACK_END_ADDRESS __section_end(".abt_stack") + #define BSP_UNDEFINED_STACK_END_ADDRESS __section_end(".und_stack") + #define BSP_SYSTEM_STACK_END_ADDRESS __section_end(".sys_stack") + +#elif defined(__GNUC__) + #define BSP_IRQ_STACK_END_ADDRESS &__IrqStackLimit + #define BSP_FIQ_STACK_END_ADDRESS &__FiqStackLimit + #define BSP_SVC_STACK_END_ADDRESS &__SvcStackLimit + #define BSP_ABORT_STACK_END_ADDRESS &__AbtStackLimit + #define BSP_UNDEFINED_STACK_END_ADDRESS &__UndStackLimit + #define BSP_SYSTEM_STACK_END_ADDRESS &__SysStackLimit + +#endif + +#define BSP_IMP_BTCMREGIONR_MASK_L (0x1FFC) /* Masked out BASEADDRESS and ENABLEELx bits(L) */ +#define BSP_IMP_BTCMREGIONR_ENABLEEL_L (0x0003) /* Set base address and enable EL2, EL1, EL0 access(L) */ +#define BSP_IMP_BTCMREGIONR_ENABLEEL_H (0x0010) /* Set base address and enable EL2, EL1, EL0 access(H) */ + +/*********************************************************************************************************************** + * Typedef definitions + **********************************************************************************************************************/ + +/*********************************************************************************************************************** + * Exported global variables (to be accessed by other files) + **********************************************************************************************************************/ +#if defined(__ICCARM__) + #pragma section=".irq_stack" + #pragma section=".fiq_stack" + #pragma section=".svc_stack" + #pragma section=".abt_stack" + #pragma section=".und_stack" + #pragma section=".sys_stack" + +#elif defined(__GNUC__) +extern void * __IrqStackLimit; +extern void * __FiqStackLimit; +extern void * __SvcStackLimit; +extern void * __AbtStackLimit; +extern void * __UndStackLimit; +extern void * __SysStackLimit; + +#endif + +/*********************************************************************************************************************** + * Exported global functions (to be accessed by other files) + **********************************************************************************************************************/ +#if __FPU_USED +extern void bsp_fpu_advancedsimd_init(void); + +#endif + +extern void bsp_slavetcm_enable(void); + +/*********************************************************************************************************************** + * Private global variables and functions + **********************************************************************************************************************/ +int32_t main(void); + +BSP_TARGET_ARM BSP_ATTRIBUTE_STACKLESS void system_init(void) BSP_PLACE_IN_SECTION(".loader_text"); +BSP_TARGET_ARM BSP_ATTRIBUTE_STACKLESS void stack_init(void); +BSP_TARGET_ARM void fpu_slavetcm_init(void); + +BSP_TARGET_ARM BSP_ATTRIBUTE_STACKLESS void __Vectors(void) BSP_PLACE_IN_SECTION(".intvec"); +__WEAK BSP_TARGET_ARM BSP_ATTRIBUTE_STACKLESS void IRQ_Handler(void); +__WEAK BSP_TARGET_ARM BSP_ATTRIBUTE_STACKLESS void Reset_Handler(void) BSP_PLACE_IN_SECTION(".reset_handler"); + +void Default_Handler(void); + +/* Stacks */ +BSP_DONT_REMOVE static uint8_t g_fiq_stack[BSP_CFG_STACK_FIQ_BYTES] BSP_ALIGN_VARIABLE(BSP_STACK_ALIGNMENT) +BSP_PLACE_IN_SECTION(BSP_SECTION_FIQ_STACK); +BSP_DONT_REMOVE static uint8_t g_irq_stack[BSP_CFG_STACK_IRQ_BYTES] BSP_ALIGN_VARIABLE(BSP_STACK_ALIGNMENT) +BSP_PLACE_IN_SECTION(BSP_SECTION_IRQ_STACK); +BSP_DONT_REMOVE static uint8_t g_abt_stack[BSP_CFG_STACK_ABT_BYTES] BSP_ALIGN_VARIABLE(BSP_STACK_ALIGNMENT) +BSP_PLACE_IN_SECTION(BSP_SECTION_ABT_STACK); +BSP_DONT_REMOVE static uint8_t g_und_stack[BSP_CFG_STACK_UND_BYTES] BSP_ALIGN_VARIABLE(BSP_STACK_ALIGNMENT) +BSP_PLACE_IN_SECTION(BSP_SECTION_UND_STACK); +BSP_DONT_REMOVE static uint8_t g_sys_stack[BSP_CFG_STACK_SYS_BYTES] BSP_ALIGN_VARIABLE(BSP_STACK_ALIGNMENT) +BSP_PLACE_IN_SECTION(BSP_SECTION_SYS_STACK); +BSP_DONT_REMOVE static uint8_t g_svc_stack[BSP_CFG_STACK_SVC_BYTES] BSP_ALIGN_VARIABLE(BSP_STACK_ALIGNMENT) +BSP_PLACE_IN_SECTION(BSP_SECTION_SVC_STACK); + +/* Heap */ +#if (BSP_CFG_HEAP_BYTES > 0) + +BSP_DONT_REMOVE static uint8_t g_heap[BSP_CFG_HEAP_BYTES] BSP_ALIGN_VARIABLE(BSP_STACK_ALIGNMENT) \ + BSP_PLACE_IN_SECTION(BSP_SECTION_HEAP); +#endif + +#if defined(__GNUC__) +BSP_DONT_REMOVE static const void * g_bsp_dummy BSP_PLACE_IN_SECTION(".dummy"); + + #if BSP_CFG_RAM_EXECUTION +BSP_DONT_REMOVE static const void * g_bsp_loader_dummy BSP_PLACE_IN_SECTION(".loader_dummy"); + + #endif +#endif + +BSP_TARGET_ARM BSP_ATTRIBUTE_STACKLESS void __Vectors (void) +{ + __asm volatile ( + " LDR pc,=Reset_Handler \n" + " LDR pc,=Undefined_Handler \n" + " LDR pc,=SVC_Handler \n" + " LDR pc,=Prefetch_Handler \n" + " LDR pc,=Abort_Handler \n" + " LDR pc,=Reserved_Handler \n" + " LDR pc,=IRQ_Handler \n" + " LDR pc,=FIQ_Handler \n" + ::: "memory"); +} + +/*******************************************************************************************************************//** + * @addtogroup BSP_MCU + * @{ + **********************************************************************************************************************/ + +/*******************************************************************************************************************//** + * Default exception handler. + **********************************************************************************************************************/ +void Default_Handler (void) +{ + /** A error has occurred. The user will need to investigate the cause. Common problems are stack corruption + * or use of an invalid pointer. Use the Fault Status window in e2 studio or manually check the fault status + * registers for more information. + */ + BSP_CFG_HANDLE_UNRECOVERABLE_ERROR(0); +} + +/*******************************************************************************************************************//** + * After boot processing, LSI starts executing here. + **********************************************************************************************************************/ +BSP_TARGET_ARM BSP_ATTRIBUTE_STACKLESS void system_init (void) +{ + __asm volatile ( + "set_hactlr: \n" + " MOVW r0, %[bsp_hactlr_bit_l] \n" /* Set HACTLR bits(L) */ + " MOVT r0, #0 \n" + " MCR p15, #4, r0, c1, c0, #1 \n" /* Write r0 to HACTLR */ + ::[bsp_hactlr_bit_l] "i" (BSP_HACTLR_BIT_L) : "memory"); + + __asm volatile ( + "set_hcr: \n" + " MRC p15, #4, r1, c1, c1, #0 \n" /* Read Hyp Configuration Register */ + " ORR r1, r1, %[bsp_hcr_hcd_disable] \n" /* HVC instruction disable */ + " MCR p15, #4, r1, c1, c1, #0 \n" /* Write Hyp Configuration Register */ + ::[bsp_hcr_hcd_disable] "i" (BSP_HCR_HCD_DISABLE) : "memory"); + + __asm volatile ( + "set_vbar: \n" + " LDR r0, =__Vectors \n" + " MCR p15, #0, r0, c12, c0, #0 \n" /* Write r0 to VBAR */ + ::: "memory"); + + __asm volatile ( + "LLPP_access_enable: \n" + + /* Enable PERIPHPREGIONR (LLPP) */ + " MRC p15, #0, r1, c15, c0,#0 \n" /* PERIPHPREGIONR */ + " ORR r1, r1, #(0x1 << 1) \n" /* Enable PERIPHPREGIONR EL2 */ + " ORR r1, r1, #(0x1) \n" /* Enable PERIPHPREGIONR EL1 and EL0 */ + " DSB \n" /* Ensuring memory access complete */ + " MCR p15, #0, r1, c15, c0,#0 \n" /* PERIPHREGIONR */ + " ISB \n" /* Ensuring Context-changing */ + ::: "memory"); + + __asm volatile ( + "cpsr_save: \n" + " MRS r0, CPSR \n" /* Original PSR value */ + " BIC r0, r0, %[bsp_mode_mask] \n" /* Clear the mode bits */ + " ORR r0, r0, %[bsp_svc_mode] \n" /* Set SVC mode bits */ + " MSR SPSR_hyp, r0 \n" + ::[bsp_mode_mask] "i" (BSP_MODE_MASK), [bsp_svc_mode] "i" (BSP_SVC_MODE) : "memory"); + + __asm volatile ( + "exception_return: \n" + " LDR r1, =stack_init \n" + " MSR ELR_hyp, r1 \n" + " ERET \n" /* Branch to stack_init and enter EL1 */ + ::: "memory"); +} + +/** @} (end addtogroup BSP_MCU) */ + +#if defined(__ICCARM__) + #define BSP_SYSTEMINIT_B_INSTRUCTION SystemInit(); + + #define WEAK_REF_ATTRIBUTE + + #pragma weak Undefined_Handler = Default_Handler + #pragma weak SVC_Handler = Default_Handler + #pragma weak Prefetch_Handler = Default_Handler + #pragma weak Abort_Handler = Default_Handler + #pragma weak Reserved_Handler = Default_Handler + #pragma weak FIQ_Handler = Default_Handler +#elif defined(__GNUC__) + + #define BSP_SYSTEMINIT_B_INSTRUCTION __asm volatile ("B SystemInit"); + + #define WEAK_REF_ATTRIBUTE __attribute__((weak, alias("Default_Handler"))) +#endif + +void Undefined_Handler(void) WEAK_REF_ATTRIBUTE; +void SVC_Handler(void) WEAK_REF_ATTRIBUTE; +void Prefetch_Handler(void) WEAK_REF_ATTRIBUTE; +void Abort_Handler(void) WEAK_REF_ATTRIBUTE; +void Reserved_Handler(void) WEAK_REF_ATTRIBUTE; +void FIQ_Handler(void) WEAK_REF_ATTRIBUTE; + +/*******************************************************************************************************************//** + * After system_init, EL1 settings start here. + **********************************************************************************************************************/ +BSP_TARGET_ARM BSP_ATTRIBUTE_STACKLESS void stack_init (void) +{ + __asm volatile ( + "stack_initialization: \n" + + /* Stack setting for EL1 */ + " CPS #17 \n" /* FIQ mode */ + " MOV sp, %[bsp_fiq_stack_end_address] \n" + " CPS #18 \n" /* IRQ mode */ + " MOV sp, %[bsp_irq_stack_end_address] \n" + " CPS #23 \n" /* Abort mode */ + " MOV sp, %[bsp_abort_stack_end_address] \n" + " CPS #27 \n" /* Undefined mode */ + " MOV sp, %[bsp_undefined_stack_end_address] \n" + " CPS #31 \n" /* System mode */ + " MOV sp, %[bsp_system_stack_end_address] \n" + " CPS #19 \n" /* SVC mode */ + " MOV sp, %[bsp_svc_stack_end_address] \n" + + " B fpu_slavetcm_init \n" /* Branch to fpu_slavetcm_init */ + ::[bsp_fiq_stack_end_address] "r" (BSP_FIQ_STACK_END_ADDRESS), + [bsp_irq_stack_end_address] "r" (BSP_IRQ_STACK_END_ADDRESS), + [bsp_abort_stack_end_address] "r" (BSP_ABORT_STACK_END_ADDRESS), + [bsp_undefined_stack_end_address] "r" (BSP_UNDEFINED_STACK_END_ADDRESS), + [bsp_system_stack_end_address] "r" (BSP_SYSTEM_STACK_END_ADDRESS), + [bsp_svc_stack_end_address] "r" (BSP_SVC_STACK_END_ADDRESS) : "memory"); +} + +/*******************************************************************************************************************//** + * Enable FPU and enable privileged/unprivileged access for TCM. + **********************************************************************************************************************/ +BSP_TARGET_ARM void fpu_slavetcm_init (void) +{ +#if __FPU_USED + + /* Initialize FPU and Advanced SIMD setting */ + bsp_fpu_advancedsimd_init(); +#endif + + /* Enable SLAVEPCTLR TCM access lvl slaves */ + bsp_slavetcm_enable(); + + BSP_SYSTEMINIT_B_INSTRUCTION +} + +__WEAK BSP_TARGET_ARM BSP_ATTRIBUTE_STACKLESS void IRQ_Handler (void) +{ + __asm volatile ( + "SUB lr, lr, #4 \n" + "SRSDB sp!, #31 \n" /* Store LR_irq and SPSR_irq in system mode stack. */ + "CPS #31 \n" /* Switch to system mode. */ + "PUSH {r0-r3, r12} \n" /* Store other AAPCS registers. */ + +#if __FPU_USED + "VMRS r0, FPSCR \n" + "STMDB sp!, {r0} \n" /* Store FPSCR register. */ + "SUB sp, sp, #4 \n" + "VPUSH {d0-d15} \n" /* Store FPU registers. */ + "VPUSH {d16-d31} \n" /* Store FPU registers. */ +#endif + + "MRC p15, #0, r3, c12, c12, #2 \n" /* Read HPPIR1 to r3. */ + "MRC p15, #0, r0, c12, c12, #0 \n" /* Read IAR1 to r0. */ + + "PUSH {r0} \n" /* Store the INTID. */ + "MOV r1, sp \n" /* Make alignment for stack. */ + "AND r1, r1, #4 \n" + "SUB sp, sp, r1 \n" + "PUSH {r1, lr} \n" + + "LDR r1,=bsp_common_interrupt_handler \n" + "BLX r1 \n" /* Jump to bsp_common_interrupt_handler, First argument (r0) = ICC_IAR1 read value. */ + + "POP {r1, lr} \n" + "ADD sp, sp, r1 \n" + "POP {r0} \n" /* Restore the INTID to r0. */ + + "MCR p15, #0, r0, c12, c12, #1 \n" /* Write INTID to EOIR. */ + +#if __FPU_USED + "VPOP {d16-d31} \n" /* Restore FPU registers. */ + "VPOP {d0-d15} \n" /* Restore FPU registers. */ + "ADD sp, sp, #4 \n" + "POP {r0} \n" + "VMSR FPSCR, r0 \n" /* Restore FPSCR register. */ +#endif + + "POP {r0-r3, r12} \n" /* Restore registers. */ + "RFEIA sp! \n" /* Return from system mode tack using RFE. */ + ::: "memory"); +} + +__WEAK BSP_TARGET_ARM BSP_ATTRIBUTE_STACKLESS void Reset_Handler (void) +{ + /* Enable access to BTCM */ + __asm volatile ( + "set_IMP_BTCMREGIONR: \n" + " MRC p15, #0, r0, c9, c1, #1 \n" /* Read IMP_BTCMREGIONR to r0 */ + " MOVW r1, %[bsp_imp_btcmregionr_mask_l] \n" + " MOVT r1, #0 \n" + " AND r0, r0, r1 \n" /* Masked out BASEADDRESS and ENABLEELx bits */ + " MOVW r1, %[bsp_imp_btcmregionr_enableel_l] \n" + " MOVT r1, %[bsp_imp_btcmregionr_enableel_h] \n" + " ORR r0, r0, r1 \n" /* Set base address and enable EL2, EL1, EL0 access */ + " DSB \n" /* Ensuring memory access complete */ + + " MCR p15, #0, r0, c9, c1, #1 \n" /* Write r0 to IMP_BTCMREGIONR */ + " ISB \n" /* Ensuring Context-changing */ + ::[bsp_imp_btcmregionr_mask_l] "i" (BSP_IMP_BTCMREGIONR_MASK_L), + [bsp_imp_btcmregionr_enableel_l] "i" (BSP_IMP_BTCMREGIONR_ENABLEEL_L), + [bsp_imp_btcmregionr_enableel_h] "i" (BSP_IMP_BTCMREGIONR_ENABLEEL_H) : "memory"); + + /* Branch to system_init */ + __asm volatile ("B system_init"); +} diff --git a/bsp/renesas/rzn2l_rsk/rzn/fsp/src/bsp/cmsis/Device/RENESAS/Source/cr/system_core.c b/bsp/renesas/rzn2l_rsk/rzn/fsp/src/bsp/cmsis/Device/RENESAS/Source/cr/system_core.c new file mode 100644 index 0000000000..cc47895c3f --- /dev/null +++ b/bsp/renesas/rzn2l_rsk/rzn/fsp/src/bsp/cmsis/Device/RENESAS/Source/cr/system_core.c @@ -0,0 +1,617 @@ +/*********************************************************************************************************************** + * Copyright [2020-2024] Renesas Electronics Corporation and/or its affiliates. All Rights Reserved. + * + * This software and documentation are supplied by Renesas Electronics Corporation and/or its affiliates and may only + * be used with products of Renesas Electronics Corp. and its affiliates ("Renesas"). No other uses are authorized. + * Renesas products are sold pursuant to Renesas terms and conditions of sale. Purchasers are solely responsible for + * the selection and use of Renesas products and Renesas assumes no liability. No license, express or implied, to any + * intellectual property right is granted by Renesas. This software is protected under all applicable laws, including + * copyright laws. Renesas reserves the right to change or discontinue this software and/or this documentation. + * THE SOFTWARE AND DOCUMENTATION IS DELIVERED TO YOU "AS IS," AND RENESAS MAKES NO REPRESENTATIONS OR WARRANTIES, AND + * TO THE FULLEST EXTENT PERMISSIBLE UNDER APPLICABLE LAW, DISCLAIMS ALL WARRANTIES, WHETHER EXPLICITLY OR IMPLICITLY, + * INCLUDING WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE, AND NONINFRINGEMENT, WITH RESPECT TO THE + * SOFTWARE OR DOCUMENTATION. RENESAS SHALL HAVE NO LIABILITY ARISING OUT OF ANY SECURITY VULNERABILITY OR BREACH. + * TO THE MAXIMUM EXTENT PERMITTED BY LAW, IN NO EVENT WILL RENESAS BE LIABLE TO YOU IN CONNECTION WITH THE SOFTWARE OR + * DOCUMENTATION (OR ANY PERSON OR ENTITY CLAIMING RIGHTS DERIVED FROM YOU) FOR ANY LOSS, DAMAGES, OR CLAIMS WHATSOEVER, + * INCLUDING, WITHOUT LIMITATION, ANY DIRECT, CONSEQUENTIAL, SPECIAL, INDIRECT, PUNITIVE, OR INCIDENTAL DAMAGES; ANY + * LOST PROFITS, OTHER ECONOMIC DAMAGE, PROPERTY DAMAGE, OR PERSONAL INJURY; AND EVEN IF RENESAS HAS BEEN ADVISED OF THE + * POSSIBILITY OF SUCH LOSS, DAMAGES, CLAIMS OR COSTS. + **********************************************************************************************************************/ + +/*********************************************************************************************************************** + * Includes , "Project Includes" + **********************************************************************************************************************/ +#include +#include "bsp_api.h" + +#include "../../../../../mcu/all/bsp_clocks.h" + +/*********************************************************************************************************************** + * Macro definitions + **********************************************************************************************************************/ +#define BSP_CPCAR_CP_ENABLE (0x00F00000) +#define BSP_FPEXC_EN_ENABLE (0x40000000) +#define BSP_TCM_ALL_ACCESS_ENABLE (0x00000003) + +#define BSP_PRIORITY_MASK BSP_FEATURE_BSP_IRQ_PRIORITY_MASK /* Priority mask value for GIC */ +#define BSP_ENABLE_GROUP_INT (0x00000001) /* Enable Group1 interrupt value */ +#define BSP_ICC_CTLR (0x00000001) /* ICC_BPR0 is used for Group1 interrupt */ + +#define BSP_BG_REGION_ENABLE (0x00020000) /* Enable EL1 background region */ +#define BSP_BG_REGION_DISABLE (0x00000000) /* Disable EL1 background region */ +#define BSP_SCTLR_BR_BIT (BSP_CFG_SCTLR_BR_BIT) /* Enable EL1 background region */ + +#define BSP_ICACHE_ENABLE (0x00001000) +#define BSP_ICACHE_DISABLE (0x00000000) + +#define BSP_DATACACHE_ENABLE (0x00000004) +#define BSP_DATACACHE_DISABLE (0x00000000) + +#define BSP_WRITE_THROUGH_TRANSIENT (0x0003) /* Normal-Memory: Write-Through transient */ +#define BSP_NON_CACHEABLE (0x0004) /* Normal-Memory: Non-Cacheable */ +#define BSP_WRITE_BACK_TRANSIENT (0x0007) /* Normal-Memory: Write-Back transient */ +#define BSP_WRITE_NON_THROUGH (0x000B) /* Normal-Memory: Write-Through non-transient. */ +#define BSP_WRITE_BACK_NON_TRANSIENT (0x000F) /* Normal-Memory: Write-Back non-transient. */ + +#define BSP_TYPE_NORMAL_MEMORY (0) +#define BSP_TYPE_DEVICE_MEMORY (1) + +#define BSP_READ_ALLOCATE (0xFFFF) /* Read allocate (bit1=1, "1" mask except bit1) */ +#define BSP_READ_NOT_ALLOCATE (0xFFFD) /* Read not allocate (bit1=0, "1" mask except bit1) */ +#define BSP_WRITE_ALLOCATE (0xFFFF) /* Write allocate (bit0=1, "1" mask except bit0) */ +#define BSP_WRITE_NOT_ALLOCATE (0xFFFE) /* Write not allocate (bit0=0, "1" mask except bit0) */ + +#define BSP_DEVICE_NGNRNE (0x0000) /* Device-nGnRnE memory */ +#define BSP_DEVICE_NGNRE (0x0004) /* Device-nGnRE memory */ +#define BSP_DEVICE_NGRE (0x0008) /* Device-nGRE memory */ +#define BSP_DEVICE_GRE (0x000C) /* Device-GRE memory */ + +#define BSP_OFFSET_ATTR0_INNER (0) +#define BSP_OFFSET_ATTR0_OUTER (4) +#define BSP_OFFSET_ATTR0_DEVICE (0) +#define BSP_OFFSET_ATTR1_INNER (8) +#define BSP_OFFSET_ATTR1_OUTER (12) +#define BSP_OFFSET_ATTR1_DEVICE (8) + +#define BSP_OFFSET_ATTR2_INNER (16) +#define BSP_OFFSET_ATTR2_OUTER (20) +#define BSP_OFFSET_ATTR2_DEVICE (16) +#define BSP_OFFSET_ATTR3_INNER (24) +#define BSP_OFFSET_ATTR3_OUTER (28) +#define BSP_OFFSET_ATTR3_DEVICE (24) + +#define BSP_OFFSET_ATTR4_INNER (0) +#define BSP_OFFSET_ATTR4_OUTER (4) +#define BSP_OFFSET_ATTR4_DEVICE (0) +#define BSP_OFFSET_ATTR5_INNER (8) +#define BSP_OFFSET_ATTR5_OUTER (12) +#define BSP_OFFSET_ATTR5_DEVICE (8) + +#define BSP_OFFSET_ATTR6_INNER (16) +#define BSP_OFFSET_ATTR6_OUTER (20) +#define BSP_OFFSET_ATTR6_DEVICE (16) +#define BSP_OFFSET_ATTR7_INNER (24) +#define BSP_OFFSET_ATTR7_OUTER (28) +#define BSP_OFFSET_ATTR7_DEVICE (24) + +#define BSP_NON_SHAREABLE (0 << 3) +#define BSP_OUTER_SHAREABLE (2 << 3) +#define BSP_INNER_SHAREABLE (3 << 3) +#define BSP_EL1RW_EL0NO (0 << 1) +#define BSP_EL1RW_EL0RW (1 << 1) +#define BSP_EL1RO_EL0NO (2 << 1) +#define BSP_EL1RO_EL0RO (3 << 1) +#define BSP_EXECUTE_ENABLE (0) +#define BSP_EXECUTE_NEVER (1) +#define BSP_REGION_DISABLE (0) +#define BSP_REGION_ENABLE (1) +#define BSP_ATTRINDEX0 (0 << 1) +#define BSP_ATTRINDEX1 (1 << 1) +#define BSP_ATTRINDEX2 (2 << 1) +#define BSP_ATTRINDEX3 (3 << 1) +#define BSP_ATTRINDEX4 (4 << 1) +#define BSP_ATTRINDEX5 (5 << 1) +#define BSP_ATTRINDEX6 (6 << 1) +#define BSP_ATTRINDEX7 (7 << 1) + +/* Attr0 */ +#if BSP_CFG_CPU_MPU_ATTR0_TYPE == BSP_TYPE_DEVICE_MEMORY /* MEMORY TYPE == DEVICE */ + #define BSP_CFG_CPU_MPU_ATTR0 (BSP_CFG_CPU_MPU_ATTR0_DEVICE_TYPE << BSP_OFFSET_ATTR0_DEVICE) +#else /* MEMORY TYPE == NORMAL MEMORY */ + #define BSP_CFG_CPU_MPU_ATTR0 (((BSP_CFG_CPU_MPU_ATTR0_INNER & \ + (BSP_CFG_CPU_MPU_ATTR0_INNER_READ) & \ + (BSP_CFG_CPU_MPU_ATTR0_INNER_WRITE)) << BSP_OFFSET_ATTR0_INNER) | \ + ((BSP_CFG_CPU_MPU_ATTR0_OUTER & \ + (BSP_CFG_CPU_MPU_ATTR0_OUTER_READ) & \ + (BSP_CFG_CPU_MPU_ATTR0_OUTER_WRITE)) << BSP_OFFSET_ATTR0_OUTER)) +#endif /* BSP_CFG_CPU_MPU_ATTR0_TYPE */ + +/* Attr1 */ +#if BSP_CFG_CPU_MPU_ATTR1_TYPE == BSP_TYPE_DEVICE_MEMORY /* MEMORY TYPE == DEVICE */ + #define BSP_CFG_CPU_MPU_ATTR1 (BSP_CFG_CPU_MPU_ATTR1_DEVICE_TYPE << BSP_OFFSET_ATTR1_DEVICE) +#else /* MEMORY TYPE == NORMAL MEMORY */ + #define BSP_CFG_CPU_MPU_ATTR1 (((BSP_CFG_CPU_MPU_ATTR1_INNER & \ + (BSP_CFG_CPU_MPU_ATTR1_INNER_READ) & \ + (BSP_CFG_CPU_MPU_ATTR1_INNER_WRITE)) << BSP_OFFSET_ATTR1_INNER) | \ + ((BSP_CFG_CPU_MPU_ATTR1_OUTER & \ + (BSP_CFG_CPU_MPU_ATTR1_OUTER_READ) & \ + (BSP_CFG_CPU_MPU_ATTR1_OUTER_WRITE)) << BSP_OFFSET_ATTR1_OUTER)) +#endif /* BSP_CFG_CPU_MPU_ATTR1_TYPE */ + +/* Attr2 */ +#if BSP_CFG_CPU_MPU_ATTR2_TYPE == BSP_TYPE_DEVICE_MEMORY /* MEMORY TYPE == DEVICE */ + #define BSP_CFG_CPU_MPU_ATTR2 (BSP_CFG_CPU_MPU_ATTR2_DEVICE_TYPE << BSP_OFFSET_ATTR2_DEVICE) +#else /* MEMORY TYPE == NORMAL MEMORY */ + #define BSP_CFG_CPU_MPU_ATTR2 (((BSP_CFG_CPU_MPU_ATTR2_INNER & \ + (BSP_CFG_CPU_MPU_ATTR2_INNER_READ) & \ + (BSP_CFG_CPU_MPU_ATTR2_INNER_WRITE)) << BSP_OFFSET_ATTR2_INNER) | \ + ((BSP_CFG_CPU_MPU_ATTR2_OUTER & \ + (BSP_CFG_CPU_MPU_ATTR2_OUTER_READ) & \ + (BSP_CFG_CPU_MPU_ATTR2_OUTER_WRITE)) << BSP_OFFSET_ATTR2_OUTER)) +#endif /* BSP_CFG_CPU_MPU_ATTR2_TYPE */ + +/* Attr3 */ +#if BSP_CFG_CPU_MPU_ATTR3_TYPE == BSP_TYPE_DEVICE_MEMORY /* MEMORY TYPE == DEVICE */ + #define BSP_CFG_CPU_MPU_ATTR3 (BSP_CFG_CPU_MPU_ATTR3_DEVICE_TYPE << BSP_OFFSET_ATTR3_DEVICE) +#else /* MEMORY TYPE == NORMAL MEMORY */ + #define BSP_CFG_CPU_MPU_ATTR3 (((BSP_CFG_CPU_MPU_ATTR3_INNER & \ + (BSP_CFG_CPU_MPU_ATTR3_INNER_READ) & \ + (BSP_CFG_CPU_MPU_ATTR3_INNER_WRITE)) << BSP_OFFSET_ATTR3_INNER) | \ + ((BSP_CFG_CPU_MPU_ATTR3_OUTER & \ + (BSP_CFG_CPU_MPU_ATTR3_OUTER_READ) & \ + (BSP_CFG_CPU_MPU_ATTR3_OUTER_WRITE)) << BSP_OFFSET_ATTR3_OUTER)) +#endif /* BSP_CFG_CPU_MPU_ATTR3_TYPE */ + +/* Attr4 */ +#if BSP_CFG_CPU_MPU_ATTR4_TYPE == BSP_TYPE_DEVICE_MEMORY /* MEMORY TYPE == DEVICE */ + #define BSP_CFG_CPU_MPU_ATTR4 (BSP_CFG_CPU_MPU_ATTR4_DEVICE_TYPE << BSP_OFFSET_ATTR4_DEVICE) +#else /* MEMORY TYPE == NORMAL MEMORY */ + #define BSP_CFG_CPU_MPU_ATTR4 (((BSP_CFG_CPU_MPU_ATTR4_INNER & \ + (BSP_CFG_CPU_MPU_ATTR4_INNER_READ) & \ + (BSP_CFG_CPU_MPU_ATTR4_INNER_WRITE)) << BSP_OFFSET_ATTR4_INNER) | \ + ((BSP_CFG_CPU_MPU_ATTR4_OUTER & \ + (BSP_CFG_CPU_MPU_ATTR4_OUTER_READ) & \ + (BSP_CFG_CPU_MPU_ATTR4_OUTER_WRITE)) << BSP_OFFSET_ATTR4_OUTER)) +#endif /* BSP_CFG_CPU_MPU_ATTR4_TYPE */ + +/* Attr5 */ +#if BSP_CFG_CPU_MPU_ATTR5_TYPE == BSP_TYPE_DEVICE_MEMORY /* MEMORY TYPE == DEVICE */ + #define BSP_CFG_CPU_MPU_ATTR5 (BSP_CFG_CPU_MPU_ATTR5_DEVICE_TYPE << BSP_OFFSET_ATTR5_DEVICE) +#else /* MEMORY TYPE == NORMAL MEMORY */ + #define BSP_CFG_CPU_MPU_ATTR5 (((BSP_CFG_CPU_MPU_ATTR5_INNER & \ + (BSP_CFG_CPU_MPU_ATTR5_INNER_READ) & \ + (BSP_CFG_CPU_MPU_ATTR5_INNER_WRITE)) << BSP_OFFSET_ATTR5_INNER) | \ + ((BSP_CFG_CPU_MPU_ATTR5_OUTER & \ + (BSP_CFG_CPU_MPU_ATTR5_OUTER_READ) & \ + (BSP_CFG_CPU_MPU_ATTR5_OUTER_WRITE)) << BSP_OFFSET_ATTR5_OUTER)) +#endif /* BSP_CFG_CPU_MPU_ATTR5_TYPE */ + +/* Attr6 */ +#if BSP_CFG_CPU_MPU_ATTR6_TYPE == BSP_TYPE_DEVICE_MEMORY /* MEMORY TYPE == DEVICE */ + #define BSP_CFG_CPU_MPU_ATTR6 (BSP_CFG_CPU_MPU_ATTR6_DEVICE_TYPE << BSP_OFFSET_ATTR6_DEVICE) +#else /* MEMORY TYPE == NORMAL MEMORY */ + #define BSP_CFG_CPU_MPU_ATTR6 (((BSP_CFG_CPU_MPU_ATTR6_INNER & \ + (BSP_CFG_CPU_MPU_ATTR6_INNER_READ) & \ + (BSP_CFG_CPU_MPU_ATTR6_INNER_WRITE)) << BSP_OFFSET_ATTR6_INNER) | \ + ((BSP_CFG_CPU_MPU_ATTR6_OUTER & \ + (BSP_CFG_CPU_MPU_ATTR6_OUTER_READ) & \ + (BSP_CFG_CPU_MPU_ATTR6_OUTER_WRITE)) << BSP_OFFSET_ATTR6_OUTER)) +#endif /* BSP_CFG_CPU_MPU_ATTR6_TYPE */ + +/* Attr7 */ +#if BSP_CFG_CPU_MPU_ATTR7_TYPE == BSP_TYPE_DEVICE_MEMORY /* MEMORY TYPE == DEVICE */ + #define BSP_CFG_CPU_MPU_ATTR7 (BSP_CFG_CPU_MPU_ATTR7_DEVICE_TYPE << BSP_OFFSET_ATTR7_DEVICE) +#else /* MEMORY TYPE == NORMAL MEMORY */ + #define BSP_CFG_CPU_MPU_ATTR7 (((BSP_CFG_CPU_MPU_ATTR7_INNER & \ + (BSP_CFG_CPU_MPU_ATTR7_INNER_READ) & \ + (BSP_CFG_CPU_MPU_ATTR7_INNER_WRITE)) << BSP_OFFSET_ATTR7_INNER) | \ + ((BSP_CFG_CPU_MPU_ATTR7_OUTER & \ + (BSP_CFG_CPU_MPU_ATTR7_OUTER_READ) & \ + (BSP_CFG_CPU_MPU_ATTR7_OUTER_WRITE)) << BSP_OFFSET_ATTR7_OUTER)) +#endif /* BSP_CFG_CPU_MPU_ATTR7_TYPE */ + +#define ATTR_3_2_1_0 (BSP_CFG_CPU_MPU_ATTR3 | BSP_CFG_CPU_MPU_ATTR2 | BSP_CFG_CPU_MPU_ATTR1 | \ + BSP_CFG_CPU_MPU_ATTR0) +#define ATTR_7_6_5_4 (BSP_CFG_CPU_MPU_ATTR7 | BSP_CFG_CPU_MPU_ATTR6 | BSP_CFG_CPU_MPU_ATTR5 | \ + BSP_CFG_CPU_MPU_ATTR4) + +#if (BSP_TYPE_NORMAL_MEMORY == BSP_CFG_CPU_MPU_ATTR0_TYPE) + #if ((BSP_WRITE_THROUGH_TRANSIENT == BSP_CFG_CPU_MPU_ATTR0_INNER) && \ + (BSP_READ_NOT_ALLOCATE == BSP_CFG_CPU_MPU_ATTR0_INNER_READ) && \ + (BSP_WRITE_NOT_ALLOCATE == BSP_CFG_CPU_MPU_ATTR0_INNER_WRITE)) + #error "If you select Write-Through transient, set either Read or Write to allocate." + #endif + #if ((BSP_WRITE_THROUGH_TRANSIENT == BSP_CFG_CPU_MPU_ATTR0_OUTER) && \ + (BSP_READ_NOT_ALLOCATE == BSP_CFG_CPU_MPU_ATTR0_OUTER_READ) && \ + (BSP_WRITE_NOT_ALLOCATE == BSP_CFG_CPU_MPU_ATTR0_OUTER_WRITE)) + #error "If you select Write-Through transient, set either Read or Write to allocate." + #endif +#endif + +#if (BSP_TYPE_NORMAL_MEMORY == BSP_CFG_CPU_MPU_ATTR1_TYPE) + #if ((BSP_WRITE_THROUGH_TRANSIENT == BSP_CFG_CPU_MPU_ATTR1_INNER) && \ + (BSP_READ_NOT_ALLOCATE == BSP_CFG_CPU_MPU_ATTR1_INNER_READ) && \ + (BSP_WRITE_NOT_ALLOCATE == BSP_CFG_CPU_MPU_ATTR1_INNER_WRITE)) + #error "If you select Write-Through transient, set either Read or Write to allocate." + #endif + #if ((BSP_WRITE_THROUGH_TRANSIENT == BSP_CFG_CPU_MPU_ATTR1_OUTER) && \ + (BSP_READ_NOT_ALLOCATE == BSP_CFG_CPU_MPU_ATTR1_OUTER_READ) && \ + (BSP_WRITE_NOT_ALLOCATE == BSP_CFG_CPU_MPU_ATTR1_OUTER_WRITE)) + #error "If you select Write-Through transient, set either Read or Write to allocate." + #endif +#endif + +#if (BSP_TYPE_NORMAL_MEMORY == BSP_CFG_CPU_MPU_ATTR2_TYPE) + #if ((BSP_WRITE_THROUGH_TRANSIENT == BSP_CFG_CPU_MPU_ATTR2_INNER) && \ + (BSP_READ_NOT_ALLOCATE == BSP_CFG_CPU_MPU_ATTR2_INNER_READ) && \ + (BSP_WRITE_NOT_ALLOCATE == BSP_CFG_CPU_MPU_ATTR2_INNER_WRITE)) + #error "If you select Write-Through transient, set either Read or Write to allocate." + #endif + #if ((BSP_WRITE_THROUGH_TRANSIENT == BSP_CFG_CPU_MPU_ATTR2_OUTER) && \ + (BSP_READ_NOT_ALLOCATE == BSP_CFG_CPU_MPU_ATTR2_OUTER_READ) && \ + (BSP_WRITE_NOT_ALLOCATE == BSP_CFG_CPU_MPU_ATTR2_OUTER_WRITE)) + #error "If you select Write-Through transient, set either Read or Write to allocate." + #endif +#endif + +#if (BSP_TYPE_NORMAL_MEMORY == BSP_CFG_CPU_MPU_ATTR3_TYPE) + #if ((BSP_WRITE_THROUGH_TRANSIENT == BSP_CFG_CPU_MPU_ATTR3_INNER) && \ + (BSP_READ_NOT_ALLOCATE == BSP_CFG_CPU_MPU_ATTR3_INNER_READ) && \ + (BSP_WRITE_NOT_ALLOCATE == BSP_CFG_CPU_MPU_ATTR3_INNER_WRITE)) + #error "If you select Write-Through transient, set either Read or Write to allocate." + #endif + #if ((BSP_WRITE_THROUGH_TRANSIENT == BSP_CFG_CPU_MPU_ATTR3_OUTER) && \ + (BSP_READ_NOT_ALLOCATE == BSP_CFG_CPU_MPU_ATTR3_OUTER_READ) && \ + (BSP_WRITE_NOT_ALLOCATE == BSP_CFG_CPU_MPU_ATTR3_OUTER_WRITE)) + #error "If you select Write-Through transient, set either Read or Write to allocate." + #endif +#endif + +#if (BSP_TYPE_NORMAL_MEMORY == BSP_CFG_CPU_MPU_ATTR4_TYPE) + #if ((BSP_WRITE_THROUGH_TRANSIENT == BSP_CFG_CPU_MPU_ATTR4_INNER) && \ + (BSP_READ_NOT_ALLOCATE == BSP_CFG_CPU_MPU_ATTR4_INNER_READ) && \ + (BSP_WRITE_NOT_ALLOCATE == BSP_CFG_CPU_MPU_ATTR4_INNER_WRITE)) + #error "If you select Write-Through transient, set either Read or Write to allocate." + #endif + #if ((BSP_WRITE_THROUGH_TRANSIENT == BSP_CFG_CPU_MPU_ATTR4_OUTER) && \ + (BSP_READ_NOT_ALLOCATE == BSP_CFG_CPU_MPU_ATTR4_OUTER_READ) && \ + (BSP_WRITE_NOT_ALLOCATE == BSP_CFG_CPU_MPU_ATTR4_OUTER_WRITE)) + #error "If you select Write-Through transient, set either Read or Write to allocate." + #endif +#endif + +#if (BSP_TYPE_NORMAL_MEMORY == BSP_CFG_CPU_MPU_ATTR5_TYPE) + #if ((BSP_WRITE_THROUGH_TRANSIENT == BSP_CFG_CPU_MPU_ATTR5_INNER) && \ + (BSP_READ_NOT_ALLOCATE == BSP_CFG_CPU_MPU_ATTR5_INNER_READ) && \ + (BSP_WRITE_NOT_ALLOCATE == BSP_CFG_CPU_MPU_ATTR5_INNER_WRITE)) + #error "If you select Write-Through transient, set either Read or Write to allocate." + #endif + #if ((BSP_WRITE_THROUGH_TRANSIENT == BSP_CFG_CPU_MPU_ATTR5_OUTER) && \ + (BSP_READ_NOT_ALLOCATE == BSP_CFG_CPU_MPU_ATTR5_OUTER_READ) && \ + (BSP_WRITE_NOT_ALLOCATE == BSP_CFG_CPU_MPU_ATTR5_OUTER_WRITE)) + #error "If you select Write-Through transient, set either Read or Write to allocate." + #endif +#endif + +#if (BSP_TYPE_NORMAL_MEMORY == BSP_CFG_CPU_MPU_ATTR6_TYPE) + #if ((BSP_WRITE_THROUGH_TRANSIENT == BSP_CFG_CPU_MPU_ATTR6_INNER) && \ + (BSP_READ_NOT_ALLOCATE == BSP_CFG_CPU_MPU_ATTR6_INNER_READ) && \ + (BSP_WRITE_NOT_ALLOCATE == BSP_CFG_CPU_MPU_ATTR6_INNER_WRITE)) + #error "If you select Write-Through transient, set either Read or Write to allocate." + #endif + #if ((BSP_WRITE_THROUGH_TRANSIENT == BSP_CFG_CPU_MPU_ATTR6_OUTER) && \ + (BSP_READ_NOT_ALLOCATE == BSP_CFG_CPU_MPU_ATTR6_OUTER_READ) && \ + (BSP_WRITE_NOT_ALLOCATE == BSP_CFG_CPU_MPU_ATTR6_OUTER_WRITE)) + #error "If you select Write-Through transient, set either Read or Write to allocate." + #endif +#endif + +#if (BSP_TYPE_NORMAL_MEMORY == BSP_CFG_CPU_MPU_ATTR7_TYPE) + #if ((BSP_WRITE_THROUGH_TRANSIENT == BSP_CFG_CPU_MPU_ATTR7_INNER) && \ + (BSP_READ_NOT_ALLOCATE == BSP_CFG_CPU_MPU_ATTR7_INNER_READ) && \ + (BSP_WRITE_NOT_ALLOCATE == BSP_CFG_CPU_MPU_ATTR7_INNER_WRITE)) + #error "If you select Write-Through transient, set either Read or Write to allocate." + #endif + #if ((BSP_WRITE_THROUGH_TRANSIENT == BSP_CFG_CPU_MPU_ATTR7_OUTER) && \ + (BSP_READ_NOT_ALLOCATE == BSP_CFG_CPU_MPU_ATTR7_OUTER_READ) && \ + (BSP_WRITE_NOT_ALLOCATE == BSP_CFG_CPU_MPU_ATTR7_OUTER_WRITE)) + #error "If you select Write-Through transient, set either Read or Write to allocate." + #endif +#endif + +/* Region template */ +#define EL1_MPU_REGION_COUNT (24) + +#define EL1_MPU_REGIONXX_BASE(n) ((BSP_CFG_EL1_MPU_REGION ## n ## _BASE & 0xFFFFFFC0) | \ + BSP_CFG_EL1_MPU_REGION ## n ## _SH | \ + BSP_CFG_EL1_MPU_REGION ## n ## _AP | \ + BSP_CFG_EL1_MPU_REGION ## n ## _XN) + +#define EL1_MPU_REGIONXX_LIMIT(n) ((BSP_CFG_EL1_MPU_REGION ## n ## _LIMIT & 0xFFFFFFC0) | \ + BSP_CFG_EL1_MPU_REGION ## n ## _ATTRINDEX | \ + BSP_CFG_EL1_MPU_REGION ## n ## _ENABLE) + +/* region 0 */ +#define EL1_MPU_REGION00_BASE EL1_MPU_REGIONXX_BASE(00) +#define EL1_MPU_REGION00_LIMIT EL1_MPU_REGIONXX_LIMIT(00) + +/* region 1 */ +#define EL1_MPU_REGION01_BASE EL1_MPU_REGIONXX_BASE(01) +#define EL1_MPU_REGION01_LIMIT EL1_MPU_REGIONXX_LIMIT(01) + +/* region 2 */ +#define EL1_MPU_REGION02_BASE EL1_MPU_REGIONXX_BASE(02) +#define EL1_MPU_REGION02_LIMIT EL1_MPU_REGIONXX_LIMIT(02) + +/* region 3 */ +#define EL1_MPU_REGION03_BASE EL1_MPU_REGIONXX_BASE(03) +#define EL1_MPU_REGION03_LIMIT EL1_MPU_REGIONXX_LIMIT(03) + +/* region 4 */ +#define EL1_MPU_REGION04_BASE EL1_MPU_REGIONXX_BASE(04) +#define EL1_MPU_REGION04_LIMIT EL1_MPU_REGIONXX_LIMIT(04) + +/* region 5 */ +#define EL1_MPU_REGION05_BASE EL1_MPU_REGIONXX_BASE(05) +#define EL1_MPU_REGION05_LIMIT EL1_MPU_REGIONXX_LIMIT(05) + +/* region 6 */ +#define EL1_MPU_REGION06_BASE EL1_MPU_REGIONXX_BASE(06) +#define EL1_MPU_REGION06_LIMIT EL1_MPU_REGIONXX_LIMIT(06) + +/* region 7 */ +#define EL1_MPU_REGION07_BASE EL1_MPU_REGIONXX_BASE(07) +#define EL1_MPU_REGION07_LIMIT EL1_MPU_REGIONXX_LIMIT(07) + +/* region 8 */ +#define EL1_MPU_REGION08_BASE EL1_MPU_REGIONXX_BASE(08) +#define EL1_MPU_REGION08_LIMIT EL1_MPU_REGIONXX_LIMIT(08) + +/* region 9 */ +#define EL1_MPU_REGION09_BASE EL1_MPU_REGIONXX_BASE(09) +#define EL1_MPU_REGION09_LIMIT EL1_MPU_REGIONXX_LIMIT(09) + +/* region 10 */ +#define EL1_MPU_REGION10_BASE EL1_MPU_REGIONXX_BASE(10) +#define EL1_MPU_REGION10_LIMIT EL1_MPU_REGIONXX_LIMIT(10) + +/* region 11 */ +#define EL1_MPU_REGION11_BASE EL1_MPU_REGIONXX_BASE(11) +#define EL1_MPU_REGION11_LIMIT EL1_MPU_REGIONXX_LIMIT(11) + +/* region 12 */ +#define EL1_MPU_REGION12_BASE EL1_MPU_REGIONXX_BASE(12) +#define EL1_MPU_REGION12_LIMIT EL1_MPU_REGIONXX_LIMIT(12) + +/* region 13 */ +#define EL1_MPU_REGION13_BASE EL1_MPU_REGIONXX_BASE(13) +#define EL1_MPU_REGION13_LIMIT EL1_MPU_REGIONXX_LIMIT(13) + +/* region 14 */ +#define EL1_MPU_REGION14_BASE EL1_MPU_REGIONXX_BASE(14) +#define EL1_MPU_REGION14_LIMIT EL1_MPU_REGIONXX_LIMIT(14) + +/* region 15 */ +#define EL1_MPU_REGION15_BASE EL1_MPU_REGIONXX_BASE(15) +#define EL1_MPU_REGION15_LIMIT EL1_MPU_REGIONXX_LIMIT(15) + +/* region 16 */ +#define EL1_MPU_REGION16_BASE EL1_MPU_REGIONXX_BASE(16) +#define EL1_MPU_REGION16_LIMIT EL1_MPU_REGIONXX_LIMIT(16) + +/* region 17 */ +#define EL1_MPU_REGION17_BASE EL1_MPU_REGIONXX_BASE(17) +#define EL1_MPU_REGION17_LIMIT EL1_MPU_REGIONXX_LIMIT(17) + +/* region 18 */ +#define EL1_MPU_REGION18_BASE EL1_MPU_REGIONXX_BASE(18) +#define EL1_MPU_REGION18_LIMIT EL1_MPU_REGIONXX_LIMIT(18) + +/* region 19 */ +#define EL1_MPU_REGION19_BASE EL1_MPU_REGIONXX_BASE(19) +#define EL1_MPU_REGION19_LIMIT EL1_MPU_REGIONXX_LIMIT(19) + +/* region 20 */ +#define EL1_MPU_REGION20_BASE EL1_MPU_REGIONXX_BASE(20) +#define EL1_MPU_REGION20_LIMIT EL1_MPU_REGIONXX_LIMIT(20) + +/* region 21 */ +#define EL1_MPU_REGION21_BASE EL1_MPU_REGIONXX_BASE(21) +#define EL1_MPU_REGION21_LIMIT EL1_MPU_REGIONXX_LIMIT(21) + +/* region 22 */ +#define EL1_MPU_REGION22_BASE EL1_MPU_REGIONXX_BASE(22) +#define EL1_MPU_REGION22_LIMIT EL1_MPU_REGIONXX_LIMIT(22) + +/* region 23 */ +#define EL1_MPU_REGION23_BASE EL1_MPU_REGIONXX_BASE(23) +#define EL1_MPU_REGION23_LIMIT EL1_MPU_REGIONXX_LIMIT(23) + +/*********************************************************************************************************************** + * Typedef definitions + **********************************************************************************************************************/ +typedef struct st_bsp_mpu_config +{ + uint32_t base; + uint32_t limit; +} bsp_mpu_config_t; + +/*********************************************************************************************************************** + * Exported global variables (to be accessed by other files) + **********************************************************************************************************************/ + +/*********************************************************************************************************************** + * Exported global functions (to be accessed by other files) + **********************************************************************************************************************/ + +/*********************************************************************************************************************** + * Private global variables and functions + **********************************************************************************************************************/ +static const bsp_mpu_config_t g_bsp_el1_mpu[EL1_MPU_REGION_COUNT] = +{ + {EL1_MPU_REGION00_BASE, EL1_MPU_REGION00_LIMIT}, + {EL1_MPU_REGION01_BASE, EL1_MPU_REGION01_LIMIT}, + {EL1_MPU_REGION02_BASE, EL1_MPU_REGION02_LIMIT}, + {EL1_MPU_REGION03_BASE, EL1_MPU_REGION03_LIMIT}, + {EL1_MPU_REGION04_BASE, EL1_MPU_REGION04_LIMIT}, + {EL1_MPU_REGION05_BASE, EL1_MPU_REGION05_LIMIT}, + {EL1_MPU_REGION06_BASE, EL1_MPU_REGION06_LIMIT}, + {EL1_MPU_REGION07_BASE, EL1_MPU_REGION07_LIMIT}, + {EL1_MPU_REGION08_BASE, EL1_MPU_REGION08_LIMIT}, + {EL1_MPU_REGION09_BASE, EL1_MPU_REGION09_LIMIT}, + {EL1_MPU_REGION10_BASE, EL1_MPU_REGION10_LIMIT}, + {EL1_MPU_REGION11_BASE, EL1_MPU_REGION11_LIMIT}, + {EL1_MPU_REGION12_BASE, EL1_MPU_REGION12_LIMIT}, + {EL1_MPU_REGION13_BASE, EL1_MPU_REGION13_LIMIT}, + {EL1_MPU_REGION14_BASE, EL1_MPU_REGION14_LIMIT}, + {EL1_MPU_REGION15_BASE, EL1_MPU_REGION15_LIMIT}, + {EL1_MPU_REGION16_BASE, EL1_MPU_REGION16_LIMIT}, + {EL1_MPU_REGION17_BASE, EL1_MPU_REGION17_LIMIT}, + {EL1_MPU_REGION18_BASE, EL1_MPU_REGION18_LIMIT}, + {EL1_MPU_REGION19_BASE, EL1_MPU_REGION19_LIMIT}, + {EL1_MPU_REGION20_BASE, EL1_MPU_REGION20_LIMIT}, + {EL1_MPU_REGION21_BASE, EL1_MPU_REGION21_LIMIT}, + {EL1_MPU_REGION22_BASE, EL1_MPU_REGION22_LIMIT}, + {EL1_MPU_REGION23_BASE, EL1_MPU_REGION23_LIMIT}, +}; + +#if __FPU_USED +void bsp_fpu_advancedsimd_init(void); + +#endif + +void bsp_slavetcm_enable(void); +void bsp_memory_protect_setting(void); +void bsp_mpu_init(uint32_t region, uint32_t base, uint32_t limit); +void bsp_irq_cfg_common(void); + +#if __FPU_USED + +/*******************************************************************************************************************//** + * Initialize FPU and Advanced SIMD setting. + **********************************************************************************************************************/ +void bsp_fpu_advancedsimd_init (void) +{ + uint32_t apacr; + uint32_t fpexc; + + /* Enables cp10 and cp11 accessing */ + apacr = __get_CPACR(); + apacr |= BSP_CPCAR_CP_ENABLE; + __set_CPACR(apacr); + __ISB(); + + /* Enables the FPU */ + fpexc = __get_FPEXC(); + fpexc |= BSP_FPEXC_EN_ENABLE; + __set_FPEXC(fpexc); + __ISB(); +} + +#endif + +/*******************************************************************************************************************//** + * Settings the privilege level required for the AXIS to access the TCM. + **********************************************************************************************************************/ +void bsp_slavetcm_enable (void) +{ + uint32_t imp_slavepctlr; + + /* Enable TCM access privilege and non privilege */ + imp_slavepctlr = __get_IMP_SLAVEPCTLR(); + imp_slavepctlr |= BSP_TCM_ALL_ACCESS_ENABLE; + __DSB(); + + __set_IMP_SLAVEPCTLR(imp_slavepctlr); + __ISB(); +} + +/*******************************************************************************************************************//** + * Initialize memory protection settings. + **********************************************************************************************************************/ +void bsp_memory_protect_setting (void) +{ + uint32_t sctlr; + uint32_t mair0; + uint32_t mair1; + uint32_t region; + + /* Adopt EL1 default memory map as background map */ + sctlr = __get_SCTLR(); + sctlr |= BSP_SCTLR_BR_BIT; + __DSB(); + __set_SCTLR(sctlr); + __ISB(); + + /* Configure Memory Attribute Indirection Registers */ + mair0 = ATTR_3_2_1_0; + mair1 = ATTR_7_6_5_4; + __set_MAIR0(mair0); + __set_MAIR1(mair1); + __DSB(); + + /* Setup region. */ + for (region = 0; region < EL1_MPU_REGION_COUNT; region++) + { + bsp_mpu_init(region, g_bsp_el1_mpu[region].base, g_bsp_el1_mpu[region].limit); + } + + R_BSP_CacheInvalidateAll(); + + R_BSP_CacheEnableMemoryProtect(); + +#if (BSP_ICACHE_ENABLE == BSP_CFG_SCTLR_I_BIT) + R_BSP_CacheEnableInst(); +#else + R_BSP_CacheDisableInst(); +#endif + +#if (BSP_DATACACHE_ENABLE == BSP_CFG_SCTLR_C_BIT) + R_BSP_CacheEnableData(); +#else + R_BSP_CacheDisableData(); +#endif +} + +/*******************************************************************************************************************//** + * Core MPU initialization block. + **********************************************************************************************************************/ +void bsp_mpu_init (uint32_t region, uint32_t base, uint32_t limit) +{ + /* Selects the current EL1-controlled MPU region registers, PRBAR, and PRLAR */ + __set_PRSELR(region); + __DSB(); + + /* Set the base address and attributes of the MPU region controlled by EL1 */ + __set_PRBAR(base); + __DSB(); + + /* Set the limit address and attributes of the MPU region controlled by EL1 */ + __set_PRLAR(limit); + __DSB(); +} + +/*******************************************************************************************************************//** + * Initialize common configuration settings for interrupts + **********************************************************************************************************************/ +void bsp_irq_cfg_common (void) +{ + uint32_t icc_pmr; + uint32_t icc_igrpen1; + uint32_t icc_ctlr; + + /* Set priority mask level for CPU interface */ + icc_pmr = BSP_PRIORITY_MASK; + __set_ICC_PMR(icc_pmr); + + /* Enable group 1 interrupts */ + icc_igrpen1 = BSP_ENABLE_GROUP_INT; + __set_ICC_IGRPEN1(icc_igrpen1); + + /* Use ICC_BPR0 for interrupt preemption for both group 0 and group 1 interrupts */ + icc_ctlr = __get_ICC_CTLR(); + icc_ctlr |= BSP_ICC_CTLR; + __set_ICC_CTLR(icc_ctlr); + + __ISB(); +} diff --git a/bsp/renesas/rzn2l_rsk/rzn/fsp/src/bsp/cmsis/Device/RENESAS/Source/startup.c b/bsp/renesas/rzn2l_rsk/rzn/fsp/src/bsp/cmsis/Device/RENESAS/Source/startup.c new file mode 100644 index 0000000000..72bd1de751 --- /dev/null +++ b/bsp/renesas/rzn2l_rsk/rzn/fsp/src/bsp/cmsis/Device/RENESAS/Source/startup.c @@ -0,0 +1,197 @@ +/*********************************************************************************************************************** + * Copyright [2020-2024] Renesas Electronics Corporation and/or its affiliates. All Rights Reserved. + * + * This software and documentation are supplied by Renesas Electronics Corporation and/or its affiliates and may only + * be used with products of Renesas Electronics Corp. and its affiliates ("Renesas"). No other uses are authorized. + * Renesas products are sold pursuant to Renesas terms and conditions of sale. Purchasers are solely responsible for + * the selection and use of Renesas products and Renesas assumes no liability. No license, express or implied, to any + * intellectual property right is granted by Renesas. This software is protected under all applicable laws, including + * copyright laws. Renesas reserves the right to change or discontinue this software and/or this documentation. + * THE SOFTWARE AND DOCUMENTATION IS DELIVERED TO YOU "AS IS," AND RENESAS MAKES NO REPRESENTATIONS OR WARRANTIES, AND + * TO THE FULLEST EXTENT PERMISSIBLE UNDER APPLICABLE LAW, DISCLAIMS ALL WARRANTIES, WHETHER EXPLICITLY OR IMPLICITLY, + * INCLUDING WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE, AND NONINFRINGEMENT, WITH RESPECT TO THE + * SOFTWARE OR DOCUMENTATION. RENESAS SHALL HAVE NO LIABILITY ARISING OUT OF ANY SECURITY VULNERABILITY OR BREACH. + * TO THE MAXIMUM EXTENT PERMITTED BY LAW, IN NO EVENT WILL RENESAS BE LIABLE TO YOU IN CONNECTION WITH THE SOFTWARE OR + * DOCUMENTATION (OR ANY PERSON OR ENTITY CLAIMING RIGHTS DERIVED FROM YOU) FOR ANY LOSS, DAMAGES, OR CLAIMS WHATSOEVER, + * INCLUDING, WITHOUT LIMITATION, ANY DIRECT, CONSEQUENTIAL, SPECIAL, INDIRECT, PUNITIVE, OR INCIDENTAL DAMAGES; ANY + * LOST PROFITS, OTHER ECONOMIC DAMAGE, PROPERTY DAMAGE, OR PERSONAL INJURY; AND EVEN IF RENESAS HAS BEEN ADVISED OF THE + * POSSIBILITY OF SUCH LOSS, DAMAGES, CLAIMS OR COSTS. + **********************************************************************************************************************/ + +/*********************************************************************************************************************** + * Includes , "Project Includes" + **********************************************************************************************************************/ +#include "bsp_api.h" + +/*********************************************************************************************************************** + * Macro definitions + **********************************************************************************************************************/ + +/*********************************************************************************************************************** + * Typedef definitions + **********************************************************************************************************************/ + +/*********************************************************************************************************************** + * Exported global variables (to be accessed by other files) + **********************************************************************************************************************/ + +/*********************************************************************************************************************** + * Exported global functions (to be accessed by other files) + **********************************************************************************************************************/ +extern void bsp_master_mpu_init(void); +extern void bsp_global_system_counter_init(void); + +#if BSP_FEATURE_TFU_SUPPORTED +extern void bsp_tfu_init(void); + +#endif + +#if BSP_CFG_C_RUNTIME_INIT +extern void bsp_loader_data_init(void); +extern void bsp_loader_bss_init(void); +extern void bsp_static_constructor_init(void); + +#endif + +#if !(BSP_CFG_RAM_EXECUTION) +extern void bsp_copy_to_ram(void); +extern void bsp_application_bss_init(void); + +#endif + +#if !BSP_CFG_PORT_PROTECT +extern void bsp_release_port_protect(void); + +#endif + +extern void bsp_memory_protect_setting(void); +extern void bsp_irq_cfg_common(void); + +extern void R_BSP_WarmStart(bsp_warm_start_event_t event); + +/*********************************************************************************************************************** + * Private global variables and functions + **********************************************************************************************************************/ +int32_t main(void); + +#if BSP_CFG_EARLY_INIT +static void bsp_init_uninitialized_vars(void); + +#endif + +/*******************************************************************************************************************//** + * @addtogroup BSP_MCU + * @{ + **********************************************************************************************************************/ + +/*******************************************************************************************************************//** + * Initialize the MCU and the runtime environment. + **********************************************************************************************************************/ +void SystemInit (void) +{ +#if BSP_CFG_EARLY_INIT + + /* Initialize uninitialized BSP variables early for use in R_BSP_WarmStart. */ + bsp_init_uninitialized_vars(); +#endif + + /* Call before initializing clock and variables. */ + R_BSP_WarmStart(BSP_WARM_START_RESET); + + /* Configure system clocks. */ + bsp_clock_init(); + + /* Call post clock initialization hook. */ + R_BSP_WarmStart(BSP_WARM_START_POST_CLOCK); + +#if BSP_CFG_C_RUNTIME_INIT + + /* Copy the loader data from external Flash to internal RAM. */ + bsp_loader_data_init(); + + /* Clear loader bss section in internal RAM. */ + bsp_loader_bss_init(); +#endif + + /* Initialize SystemCoreClock variable. */ + SystemCoreClockUpdate(); + + /* Set memory attributes, etc. */ + bsp_memory_protect_setting(); + +#if !(BSP_CFG_RAM_EXECUTION) + + /* Copy the application program from external Flash to internal RAM. */ + bsp_copy_to_ram(); + + /* Clear bss section in internal RAM. */ + bsp_application_bss_init(); +#endif + +#if BSP_CFG_C_RUNTIME_INIT + + /* Initialize static constructors */ + bsp_static_constructor_init(); +#endif + +#if !BSP_CFG_PORT_PROTECT + + /* When writing to the PRCR register the upper 8-bits must be the correct key. Set lower bits to 0 to + * disable writes. */ + bsp_release_port_protect(); +#endif + + /* Call Post C runtime initialization hook. */ + R_BSP_WarmStart(BSP_WARM_START_POST_C); + + /* Initialize the Master-MPU settings. */ + bsp_master_mpu_init(); + + /* Initialize global system counter. The counter is enabled and is incrementing. */ + bsp_global_system_counter_init(); + + /* GIC initialization */ + bsp_irq_cfg_common(); + + /* Initialize GIC interrupts. */ + bsp_irq_cfg(); + +#if BSP_FEATURE_TFU_SUPPORTED + + /* Initialize the TFU settings. */ + bsp_tfu_init(); +#endif + +#if defined(__GNUC__) + extern void entry(void); + entry(); +#elif defined(__ICCARM__) + extern void __low_level_init(void); + __low_level_init(); +#else + /* Jump to main. */ + main(); +#endif +} + +/** @} (end addtogroup BSP_MCU) */ + +#if BSP_CFG_EARLY_INIT + +/*******************************************************************************************************************//** + * Initialize BSP variables not handled by C runtime startup. + **********************************************************************************************************************/ +static void bsp_init_uninitialized_vars (void) +{ + g_protect_port_counter = 0; + + extern volatile uint16_t g_protect_counters[]; + for (uint32_t i = 0; i < 4; i++) + { + g_protect_counters[i] = 0; + } + + SystemCoreClockUpdate(); +} + +#endif diff --git a/bsp/renesas/rzn2l_rsk/rzn/fsp/src/bsp/cmsis/Device/RENESAS/Source/system.c b/bsp/renesas/rzn2l_rsk/rzn/fsp/src/bsp/cmsis/Device/RENESAS/Source/system.c new file mode 100644 index 0000000000..66d5fa642e --- /dev/null +++ b/bsp/renesas/rzn2l_rsk/rzn/fsp/src/bsp/cmsis/Device/RENESAS/Source/system.c @@ -0,0 +1,822 @@ +/*********************************************************************************************************************** + * Copyright [2020-2024] Renesas Electronics Corporation and/or its affiliates. All Rights Reserved. + * + * This software and documentation are supplied by Renesas Electronics Corporation and/or its affiliates and may only + * be used with products of Renesas Electronics Corp. and its affiliates ("Renesas"). No other uses are authorized. + * Renesas products are sold pursuant to Renesas terms and conditions of sale. Purchasers are solely responsible for + * the selection and use of Renesas products and Renesas assumes no liability. No license, express or implied, to any + * intellectual property right is granted by Renesas. This software is protected under all applicable laws, including + * copyright laws. Renesas reserves the right to change or discontinue this software and/or this documentation. + * THE SOFTWARE AND DOCUMENTATION IS DELIVERED TO YOU "AS IS," AND RENESAS MAKES NO REPRESENTATIONS OR WARRANTIES, AND + * TO THE FULLEST EXTENT PERMISSIBLE UNDER APPLICABLE LAW, DISCLAIMS ALL WARRANTIES, WHETHER EXPLICITLY OR IMPLICITLY, + * INCLUDING WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE, AND NONINFRINGEMENT, WITH RESPECT TO THE + * SOFTWARE OR DOCUMENTATION. RENESAS SHALL HAVE NO LIABILITY ARISING OUT OF ANY SECURITY VULNERABILITY OR BREACH. + * TO THE MAXIMUM EXTENT PERMITTED BY LAW, IN NO EVENT WILL RENESAS BE LIABLE TO YOU IN CONNECTION WITH THE SOFTWARE OR + * DOCUMENTATION (OR ANY PERSON OR ENTITY CLAIMING RIGHTS DERIVED FROM YOU) FOR ANY LOSS, DAMAGES, OR CLAIMS WHATSOEVER, + * INCLUDING, WITHOUT LIMITATION, ANY DIRECT, CONSEQUENTIAL, SPECIAL, INDIRECT, PUNITIVE, OR INCIDENTAL DAMAGES; ANY + * LOST PROFITS, OTHER ECONOMIC DAMAGE, PROPERTY DAMAGE, OR PERSONAL INJURY; AND EVEN IF RENESAS HAS BEEN ADVISED OF THE + * POSSIBILITY OF SUCH LOSS, DAMAGES, CLAIMS OR COSTS. + **********************************************************************************************************************/ + +/*********************************************************************************************************************** + * Includes , "Project Includes" + **********************************************************************************************************************/ +#include "bsp_api.h" + +/*********************************************************************************************************************** + * Macro definitions + **********************************************************************************************************************/ +#define BSP_PRV_MASTER_MPU_REGION_NUM (8) + +#define BSP_PRV_MASTER_MPU_STADD(master, region) (BSP_CFG_MPU ## master ## _STADD ## region | \ + (BSP_CFG_MPU ## master ## _WRITE ## region << 1) | \ + BSP_CFG_MPU ## master ## _READ ## region) + +#define BSP_PRV_MASTER_MPU_ENDADD(master, region) (BSP_CFG_MPU ## master ## _ENDADD ## region) + +#if defined(__ICCARM__) + #if BSP_CFG_C_RUNTIME_INIT + #define BSP_PRV_SECTION_LDR_DATA_ROM_ADDRESS __section_begin("LDR_DATA_RBLOCK") + #define BSP_PRV_SECTION_LDR_DATA_RAM_START __section_begin("LDR_DATA_WBLOCK") + #define BSP_PRV_SECTION_LDR_DATA_RAM_END __section_end("LDR_DATA_WBLOCK") + + #define BSP_PRV_SECTION_LDR_DATA_BSS_START __section_begin("LDR_DATA_ZBLOCK") + #define BSP_PRV_SECTION_LDR_DATA_BSS_END __section_end("LDR_DATA_ZBLOCK") + + #endif + + #if !(BSP_CFG_RAM_EXECUTION) + #define BSP_PRV_SECTION_VECTOR_ROM_ADDRESS __section_begin("VECTOR_RBLOCK") + #define BSP_PRV_SECTION_VECTOR_RAM_START __section_begin("VECTOR_WBLOCK") + #define BSP_PRV_SECTION_VECTOR_RAM_END __section_end("VECTOR_WBLOCK") + + #define BSP_PRV_SECTION_USER_PRG_ROM_ADDRESS __section_begin("USER_PRG_RBLOCK") + #define BSP_PRV_SECTION_USER_PRG_RAM_START __section_begin("USER_PRG_WBLOCK") + #define BSP_PRV_SECTION_USER_PRG_RAM_END __section_end("USER_PRG_WBLOCK") + + #define BSP_PRV_SECTION_USER_DATA_ROM_ADDRESS __section_begin("USER_DATA_RBLOCK") + #define BSP_PRV_SECTION_USER_DATA_RAM_START __section_begin("USER_DATA_WBLOCK") + #define BSP_PRV_SECTION_USER_DATA_RAM_END __section_end("USER_DATA_WBLOCK") + + #define BSP_PRV_SECTION_USER_DATA_NONCACHE_ROM_ADDRESS __section_begin("USER_DATA_NONCACHE_RBLOCK") + #define BSP_PRV_SECTION_USER_DATA_NONCACHE_RAM_START __section_begin("USER_DATA_NONCACHE_WBLOCK") + #define BSP_PRV_SECTION_USER_DATA_NONCACHE_RAM_END __section_end("USER_DATA_NONCACHE_WBLOCK") + + #define BSP_PRV_SECTION_USER_DATA_BSS_START __section_begin("USER_DATA_ZBLOCK") + #define BSP_PRV_SECTION_USER_DATA_BSS_END __section_end("USER_DATA_ZBLOCK") + + #endif + + #if BSP_CFG_RAM_EXECUTION + #define BSP_PRV_SECTION_NONCACHE_BUFFER_BSS_START __section_begin("NONCACHE_BUFFER_ZBLOCK") + #define BSP_PRV_SECTION_NONCACHE_BUFFER_BSS_END __section_end("NONCACHE_BUFFER_ZBLOCK") + + #define BSP_PRV_SECTION_SHARED_NONCACHE_BUFFER_BSS_START __section_begin("SHARED_NONCACHE_BUFFER_ZBLOCK") + #define BSP_PRV_SECTION_SHARED_NONCACHE_BUFFER_BSS_END __section_end("SHARED_NONCACHE_BUFFER_ZBLOCK") + + #define BSP_PRV_SECTION_DMAC_LINK_MODE_BSS_START __section_begin("DMAC_LINK_MODE_ZBLOCK") + #define BSP_PRV_SECTION_DMAC_LINK_MODE_BSS_END __section_end("DMAC_LINK_MODE_ZBLOCK") + + #endif + +#elif defined(__GNUC__) + #if BSP_CFG_C_RUNTIME_INIT + #define BSP_PRV_SECTION_LDR_DATA_ROM_ADDRESS &_mloader_data + #define BSP_PRV_SECTION_LDR_DATA_RAM_START &__loader_data_start + #define BSP_PRV_SECTION_LDR_DATA_RAM_END &__loader_data_end + + #define BSP_PRV_SECTION_LDR_DATA_BSS_START &__loader_bss_start + #define BSP_PRV_SECTION_LDR_DATA_BSS_END &__loader_bss_end + + #endif + + #if !(BSP_CFG_RAM_EXECUTION) + #define BSP_PRV_SECTION_VECTOR_ROM_ADDRESS &_mfvector + #define BSP_PRV_SECTION_VECTOR_RAM_START &_fvector_start + #define BSP_PRV_SECTION_VECTOR_RAM_END &_fvector_end + + #define BSP_PRV_SECTION_USER_PRG_ROM_ADDRESS &_mtext + #define BSP_PRV_SECTION_USER_PRG_RAM_START &_text_start + #define BSP_PRV_SECTION_USER_PRG_RAM_END &_text_end + + #define BSP_PRV_SECTION_USER_DATA_ROM_ADDRESS &_mdata + #define BSP_PRV_SECTION_USER_DATA_RAM_START &_data_start + #define BSP_PRV_SECTION_USER_DATA_RAM_END &_data_end + + #define BSP_PRV_SECTION_USER_DATA_NONCACHE_ROM_ADDRESS &_mdata_noncache + #define BSP_PRV_SECTION_USER_DATA_NONCACHE_RAM_START &_data_noncache_start + #define BSP_PRV_SECTION_USER_DATA_NONCACHE_RAM_END &_data_noncache_end + + #endif + + #define BSP_PRV_SECTION_USER_DATA_BSS_START &__bss_start__ + #define BSP_PRV_SECTION_USER_DATA_BSS_END &__bss_end__ + + #if BSP_CFG_RAM_EXECUTION + #define BSP_PRV_SECTION_NONCACHE_BUFFER_BSS_START &_ncbuffer_start + #define BSP_PRV_SECTION_NONCACHE_BUFFER_BSS_END &_ncbuffer_end + + #define BSP_PRV_SECTION_SHARED_NONCACHE_BUFFER_BSS_START &_sncbuffer_start + #define BSP_PRV_SECTION_SHARED_NONCACHE_BUFFER_BSS_END &_sncbuffer_end + + #define BSP_PRV_SECTION_DMAC_LINK_MODE_BSS_START &_DmacLinkMode_start + #define BSP_PRV_SECTION_DMAC_LINK_MODE_BSS_END &_DmacLinkMode_end + + #endif + +#endif + +/*********************************************************************************************************************** + * Typedef definitions + **********************************************************************************************************************/ + +/*********************************************************************************************************************** + * Exported global variables (to be accessed by other files) + **********************************************************************************************************************/ + +/*******************************************************************************************************************//** + * @addtogroup BSP_MCU + * @{ + **********************************************************************************************************************/ + +/** System Clock Frequency (Core Clock) */ +uint32_t SystemCoreClock = 0U; + +/** @} (end addtogroup BSP_MCU) */ + +#if defined(__ICCARM__) + #if BSP_CFG_C_RUNTIME_INIT + #pragma section="LDR_DATA_RBLOCK" + #pragma section="LDR_DATA_WBLOCK" + #pragma section="LDR_DATA_ZBLOCK" + + #endif + + #if !(BSP_CFG_RAM_EXECUTION) + #pragma section="VECTOR_RBLOCK" + #pragma section="VECTOR_WBLOCK" + + #pragma section="USER_PRG_RBLOCK" + #pragma section="USER_PRG_WBLOCK" + + #pragma section="USER_DATA_RBLOCK" + #pragma section="USER_DATA_WBLOCK" + #pragma section="USER_DATA_ZBLOCK" + + #pragma section="USER_DATA_NONCACHE_RBLOCK" + #pragma section="USER_DATA_NONCACHE_WBLOCK" + + #endif + + #if BSP_CFG_RAM_EXECUTION + #pragma section="NONCACHE_BUFFER_ZBLOCK" + #pragma section="SHARED_NONCACHE_BUFFER_ZBLOCK" + #pragma section="DMAC_LINK_MODE_ZBLOCK" + + #endif + +#elif defined(__GNUC__) + #if BSP_CFG_C_RUNTIME_INIT +extern void * _mloader_data; +extern void * __loader_data_start; +extern void * __loader_data_end; + +extern void * __loader_bss_start; +extern void * __loader_bss_end; + +extern void (* __preinit_array_start[])(void); +extern void (* __preinit_array_end[])(void); +extern void (* __init_array_start[])(void); +extern void (* __init_array_end[])(void); + + #endif + + #if !(BSP_CFG_RAM_EXECUTION) +extern void * _mfvector; +extern void * _fvector_start; +extern void * _fvector_end; + +extern void * _mtext; +extern void * _text_start; +extern void * _text_end; + +extern void * _mdata; +extern void * _data_start; +extern void * _data_end; + +extern void * _mdata_noncache; +extern void * _data_noncache_start; +extern void * _data_noncache_end; + + #endif + +extern void * __bss_start__; +extern void * __bss_end__; + + #if BSP_CFG_RAM_EXECUTION +extern void * _ncbuffer_start; +extern void * _ncbuffer_end; + +extern void * _sncbuffer_start; +extern void * _sncbuffer_end; + +extern void * _DmacLinkMode_start; +extern void * _DmacLinkMode_end; + + #endif +#endif + +/*********************************************************************************************************************** + * Exported global functions (to be accessed by other files) + **********************************************************************************************************************/ +#if defined(__ICCARM__) + #if BSP_CFG_C_RUNTIME_INIT +extern void __iar_data_init3(void); + + #endif +#endif + +/*********************************************************************************************************************** + * Private global variables and functions + **********************************************************************************************************************/ +#if (1 == BSP_FEATURE_BSP_MASTER_MPU0_SUPPORTED) +const uint32_t g_bsp_master_mpu0_cfg[BSP_PRV_MASTER_MPU_REGION_NUM][2] = +{ + {BSP_PRV_MASTER_MPU_STADD(0, 0), BSP_PRV_MASTER_MPU_ENDADD(0, 0)}, + {BSP_PRV_MASTER_MPU_STADD(0, 1), BSP_PRV_MASTER_MPU_ENDADD(0, 1)}, + {BSP_PRV_MASTER_MPU_STADD(0, 2), BSP_PRV_MASTER_MPU_ENDADD(0, 2)}, + {BSP_PRV_MASTER_MPU_STADD(0, 3), BSP_PRV_MASTER_MPU_ENDADD(0, 3)}, + {BSP_PRV_MASTER_MPU_STADD(0, 4), BSP_PRV_MASTER_MPU_ENDADD(0, 4)}, + {BSP_PRV_MASTER_MPU_STADD(0, 5), BSP_PRV_MASTER_MPU_ENDADD(0, 5)}, + {BSP_PRV_MASTER_MPU_STADD(0, 6), BSP_PRV_MASTER_MPU_ENDADD(0, 6)}, + {BSP_PRV_MASTER_MPU_STADD(0, 7), BSP_PRV_MASTER_MPU_ENDADD(0, 7)} +}; + +#endif +#if (1 == BSP_FEATURE_BSP_MASTER_MPU1_SUPPORTED) +const uint32_t g_bsp_master_mpu1_cfg[BSP_PRV_MASTER_MPU_REGION_NUM][2] = +{ + {BSP_PRV_MASTER_MPU_STADD(1, 0), BSP_PRV_MASTER_MPU_ENDADD(1, 0)}, + {BSP_PRV_MASTER_MPU_STADD(1, 1), BSP_PRV_MASTER_MPU_ENDADD(1, 1)}, + {BSP_PRV_MASTER_MPU_STADD(1, 2), BSP_PRV_MASTER_MPU_ENDADD(1, 2)}, + {BSP_PRV_MASTER_MPU_STADD(1, 3), BSP_PRV_MASTER_MPU_ENDADD(1, 3)}, + {BSP_PRV_MASTER_MPU_STADD(1, 4), BSP_PRV_MASTER_MPU_ENDADD(1, 4)}, + {BSP_PRV_MASTER_MPU_STADD(1, 5), BSP_PRV_MASTER_MPU_ENDADD(1, 5)}, + {BSP_PRV_MASTER_MPU_STADD(1, 6), BSP_PRV_MASTER_MPU_ENDADD(1, 6)}, + {BSP_PRV_MASTER_MPU_STADD(1, 7), BSP_PRV_MASTER_MPU_ENDADD(1, 7)} +}; + +#endif +#if (1 == BSP_FEATURE_BSP_MASTER_MPU2_SUPPORTED) +const uint32_t g_bsp_master_mpu2_cfg[BSP_PRV_MASTER_MPU_REGION_NUM][2] = +{ + {BSP_PRV_MASTER_MPU_STADD(2, 0), BSP_PRV_MASTER_MPU_ENDADD(2, 0)}, + {BSP_PRV_MASTER_MPU_STADD(2, 1), BSP_PRV_MASTER_MPU_ENDADD(2, 1)}, + {BSP_PRV_MASTER_MPU_STADD(2, 2), BSP_PRV_MASTER_MPU_ENDADD(2, 2)}, + {BSP_PRV_MASTER_MPU_STADD(2, 3), BSP_PRV_MASTER_MPU_ENDADD(2, 3)}, + {BSP_PRV_MASTER_MPU_STADD(2, 4), BSP_PRV_MASTER_MPU_ENDADD(2, 4)}, + {BSP_PRV_MASTER_MPU_STADD(2, 5), BSP_PRV_MASTER_MPU_ENDADD(2, 5)}, + {BSP_PRV_MASTER_MPU_STADD(2, 6), BSP_PRV_MASTER_MPU_ENDADD(2, 6)}, + {BSP_PRV_MASTER_MPU_STADD(2, 7), BSP_PRV_MASTER_MPU_ENDADD(2, 7)} +}; + +#endif +#if (1 == BSP_FEATURE_BSP_MASTER_MPU3_SUPPORTED) +const uint32_t g_bsp_master_mpu3_cfg[BSP_PRV_MASTER_MPU_REGION_NUM][2] = +{ + {BSP_PRV_MASTER_MPU_STADD(3, 0), BSP_PRV_MASTER_MPU_ENDADD(3, 0)}, + {BSP_PRV_MASTER_MPU_STADD(3, 1), BSP_PRV_MASTER_MPU_ENDADD(3, 1)}, + {BSP_PRV_MASTER_MPU_STADD(3, 2), BSP_PRV_MASTER_MPU_ENDADD(3, 2)}, + {BSP_PRV_MASTER_MPU_STADD(3, 3), BSP_PRV_MASTER_MPU_ENDADD(3, 3)}, + {BSP_PRV_MASTER_MPU_STADD(3, 4), BSP_PRV_MASTER_MPU_ENDADD(3, 4)}, + {BSP_PRV_MASTER_MPU_STADD(3, 5), BSP_PRV_MASTER_MPU_ENDADD(3, 5)}, + {BSP_PRV_MASTER_MPU_STADD(3, 6), BSP_PRV_MASTER_MPU_ENDADD(3, 6)}, + {BSP_PRV_MASTER_MPU_STADD(3, 7), BSP_PRV_MASTER_MPU_ENDADD(3, 7)} +}; + +#endif +#if (1 == BSP_FEATURE_BSP_MASTER_MPU4_SUPPORTED) +const uint32_t g_bsp_master_mpu4_cfg[BSP_PRV_MASTER_MPU_REGION_NUM][2] = +{ + {BSP_PRV_MASTER_MPU_STADD(4, 0), BSP_PRV_MASTER_MPU_ENDADD(4, 0)}, + {BSP_PRV_MASTER_MPU_STADD(4, 1), BSP_PRV_MASTER_MPU_ENDADD(4, 1)}, + {BSP_PRV_MASTER_MPU_STADD(4, 2), BSP_PRV_MASTER_MPU_ENDADD(4, 2)}, + {BSP_PRV_MASTER_MPU_STADD(4, 3), BSP_PRV_MASTER_MPU_ENDADD(4, 3)}, + {BSP_PRV_MASTER_MPU_STADD(4, 4), BSP_PRV_MASTER_MPU_ENDADD(4, 4)}, + {BSP_PRV_MASTER_MPU_STADD(4, 5), BSP_PRV_MASTER_MPU_ENDADD(4, 5)}, + {BSP_PRV_MASTER_MPU_STADD(4, 6), BSP_PRV_MASTER_MPU_ENDADD(4, 6)}, + {BSP_PRV_MASTER_MPU_STADD(4, 7), BSP_PRV_MASTER_MPU_ENDADD(4, 7)} +}; + +#endif +#if (1 == BSP_FEATURE_BSP_MASTER_MPU6_SUPPORTED) +const uint32_t g_bsp_master_mpu6_cfg[BSP_PRV_MASTER_MPU_REGION_NUM][2] = +{ + {BSP_PRV_MASTER_MPU_STADD(6, 0), BSP_PRV_MASTER_MPU_ENDADD(6, 0)}, + {BSP_PRV_MASTER_MPU_STADD(6, 1), BSP_PRV_MASTER_MPU_ENDADD(6, 1)}, + {BSP_PRV_MASTER_MPU_STADD(6, 2), BSP_PRV_MASTER_MPU_ENDADD(6, 2)}, + {BSP_PRV_MASTER_MPU_STADD(6, 3), BSP_PRV_MASTER_MPU_ENDADD(6, 3)}, + {BSP_PRV_MASTER_MPU_STADD(6, 4), BSP_PRV_MASTER_MPU_ENDADD(6, 4)}, + {BSP_PRV_MASTER_MPU_STADD(6, 5), BSP_PRV_MASTER_MPU_ENDADD(6, 5)}, + {BSP_PRV_MASTER_MPU_STADD(6, 6), BSP_PRV_MASTER_MPU_ENDADD(6, 6)}, + {BSP_PRV_MASTER_MPU_STADD(6, 7), BSP_PRV_MASTER_MPU_ENDADD(6, 7)} +}; + +#endif +#if (1 == BSP_FEATURE_BSP_MASTER_MPU7_SUPPORTED) +const uint32_t g_bsp_master_mpu7_cfg[BSP_PRV_MASTER_MPU_REGION_NUM][2] = +{ + {BSP_PRV_MASTER_MPU_STADD(7, 0), BSP_PRV_MASTER_MPU_ENDADD(7, 0)}, + {BSP_PRV_MASTER_MPU_STADD(7, 1), BSP_PRV_MASTER_MPU_ENDADD(7, 1)}, + {BSP_PRV_MASTER_MPU_STADD(7, 2), BSP_PRV_MASTER_MPU_ENDADD(7, 2)}, + {BSP_PRV_MASTER_MPU_STADD(7, 3), BSP_PRV_MASTER_MPU_ENDADD(7, 3)}, + {BSP_PRV_MASTER_MPU_STADD(7, 4), BSP_PRV_MASTER_MPU_ENDADD(7, 4)}, + {BSP_PRV_MASTER_MPU_STADD(7, 5), BSP_PRV_MASTER_MPU_ENDADD(7, 5)}, + {BSP_PRV_MASTER_MPU_STADD(7, 6), BSP_PRV_MASTER_MPU_ENDADD(7, 6)}, + {BSP_PRV_MASTER_MPU_STADD(7, 7), BSP_PRV_MASTER_MPU_ENDADD(7, 7)} +}; + +#endif +#if (1 == BSP_FEATURE_BSP_MASTER_MPU8_SUPPORTED) +const uint32_t g_bsp_master_mpu8_cfg[BSP_PRV_MASTER_MPU_REGION_NUM][2] = +{ + {BSP_PRV_MASTER_MPU_STADD(8, 0), BSP_PRV_MASTER_MPU_ENDADD(8, 0)}, + {BSP_PRV_MASTER_MPU_STADD(8, 1), BSP_PRV_MASTER_MPU_ENDADD(8, 1)}, + {BSP_PRV_MASTER_MPU_STADD(8, 2), BSP_PRV_MASTER_MPU_ENDADD(8, 2)}, + {BSP_PRV_MASTER_MPU_STADD(8, 3), BSP_PRV_MASTER_MPU_ENDADD(8, 3)}, + {BSP_PRV_MASTER_MPU_STADD(8, 4), BSP_PRV_MASTER_MPU_ENDADD(8, 4)}, + {BSP_PRV_MASTER_MPU_STADD(8, 5), BSP_PRV_MASTER_MPU_ENDADD(8, 5)}, + {BSP_PRV_MASTER_MPU_STADD(8, 6), BSP_PRV_MASTER_MPU_ENDADD(8, 6)}, + {BSP_PRV_MASTER_MPU_STADD(8, 7), BSP_PRV_MASTER_MPU_ENDADD(8, 7)} +}; + +#endif + +#if defined(__ICCARM__) + +void R_BSP_WarmStart(bsp_warm_start_event_t event); + + #pragma weak R_BSP_WarmStart + +#elif defined(__GNUC__) || defined(__ARMCC_VERSION) + +void R_BSP_WarmStart(bsp_warm_start_event_t event) __attribute__((weak)); + +#endif + +#if BSP_CFG_C_RUNTIME_INIT +void bsp_loader_data_init(void); +void bsp_loader_bss_init(void); +void bsp_static_constructor_init(void); + +#endif + +void bsp_copy_multibyte(uintptr_t * src, uintptr_t * dst, uintptr_t bytesize); +void bsp_bss_init_multibyte(uintptr_t * src, uintptr_t bytesize); + +#if !(BSP_CFG_RAM_EXECUTION) +void bsp_copy_to_ram(void); +void bsp_application_bss_init(void); + +#endif + +void bsp_master_mpu_init(void); +void bsp_global_system_counter_init(void); + +#if BSP_FEATURE_TFU_SUPPORTED +void bsp_tfu_init(void); + +#endif + +#if !BSP_CFG_PORT_PROTECT +void bsp_release_port_protect(void); + +#endif + +/*******************************************************************************************************************//** + * Initialize the Master-MPU settings. + **********************************************************************************************************************/ +void bsp_master_mpu_init (void) +{ + /* Disable register protection for Master-MPU related registers. */ + R_BSP_RegisterProtectDisable(BSP_REG_PROTECT_SYSTEM); + + for (uint8_t region_num = 0; region_num < BSP_PRV_MASTER_MPU_REGION_NUM; region_num++) + { +#if (1 == BSP_FEATURE_BSP_MASTER_MPU0_SUPPORTED) + R_MPU0->RGN[region_num].STADD = g_bsp_master_mpu0_cfg[region_num][0]; + R_MPU0->RGN[region_num].ENDADD = g_bsp_master_mpu0_cfg[region_num][1]; +#endif +#if (1 == BSP_FEATURE_BSP_MASTER_MPU1_SUPPORTED) + R_MPU1->RGN[region_num].STADD = g_bsp_master_mpu1_cfg[region_num][0]; + R_MPU1->RGN[region_num].ENDADD = g_bsp_master_mpu1_cfg[region_num][1]; +#endif +#if (1 == BSP_FEATURE_BSP_MASTER_MPU2_SUPPORTED) + R_MPU2->RGN[region_num].STADD = g_bsp_master_mpu2_cfg[region_num][0]; + R_MPU2->RGN[region_num].ENDADD = g_bsp_master_mpu2_cfg[region_num][1]; +#endif +#if (1 == BSP_FEATURE_BSP_MASTER_MPU3_SUPPORTED) + R_MPU3->RGN[region_num].STADD = g_bsp_master_mpu3_cfg[region_num][0]; + R_MPU3->RGN[region_num].ENDADD = g_bsp_master_mpu3_cfg[region_num][1]; +#endif +#if (1 == BSP_FEATURE_BSP_MASTER_MPU4_SUPPORTED) + R_MPU4->RGN[region_num].STADD = g_bsp_master_mpu4_cfg[region_num][0]; + R_MPU4->RGN[region_num].ENDADD = g_bsp_master_mpu4_cfg[region_num][1]; +#endif +#if (1 == BSP_FEATURE_BSP_MASTER_MPU6_SUPPORTED) + R_MPU6->RGN[region_num].STADD = g_bsp_master_mpu6_cfg[region_num][0]; + R_MPU6->RGN[region_num].ENDADD = g_bsp_master_mpu6_cfg[region_num][1]; +#endif +#if (1 == BSP_FEATURE_BSP_MASTER_MPU7_SUPPORTED) + R_MPU7->RGN[region_num].STADD = g_bsp_master_mpu7_cfg[region_num][0]; + R_MPU7->RGN[region_num].ENDADD = g_bsp_master_mpu7_cfg[region_num][1]; +#endif +#if (1 == BSP_FEATURE_BSP_MASTER_MPU8_SUPPORTED) + R_MPU8->RGN[region_num].STADD = g_bsp_master_mpu8_cfg[region_num][0]; + R_MPU8->RGN[region_num].ENDADD = g_bsp_master_mpu8_cfg[region_num][1]; +#endif + } + + /* Enable register protection for Master-MPU related registers. */ + R_BSP_RegisterProtectEnable(BSP_REG_PROTECT_SYSTEM); +} + +/*******************************************************************************************************************//** + * Initialize global system counter. The counter is enabled and is incrementing. + **********************************************************************************************************************/ +void bsp_global_system_counter_init (void) +{ + /* Initialize registers related the global system counter. */ + R_GSC->CNTCR &= (uint32_t) (~R_GSC_CNTCR_EN_Msk); + R_GSC->CNTFID0 = BSP_GLOBAL_SYSTEM_COUNTER_CLOCK_HZ; + R_GSC->CNTCVL = 0; + R_GSC->CNTCVU = 0; + R_GSC->CNTCR |= R_GSC_CNTCR_EN_Msk; +} + +/*******************************************************************************************************************//** + * @addtogroup BSP_MCU + * @{ + **********************************************************************************************************************/ + +/*******************************************************************************************************************//** + * This function is called at various points during the startup process. + * This function is declared as a weak symbol higher up in this file because it is meant to be overridden by a user + * implemented version. One of the main uses for this function is to call functional safety code during the startup + * process. To use this function just copy this function into your own code and modify it to meet your needs. + * + * @param[in] event Where the code currently is in the start up process + * + * + * @note All programs to be executed when BSP_WARM_START_RESET or BSP_WARM_START_POST_CLOCK event occurs should be + * placed in BTCM. These events occur before copying the application program in startup code is executed, and + * therefore the application program is located on ROM and cannot be executed at that time. + * Linker script for FSP specifies that .warm_start section is to be placed at BTCM. Adding the section + * designation to function or variable definition makes it easy to place at BTCM. + **********************************************************************************************************************/ +void R_BSP_WarmStart (bsp_warm_start_event_t event) +{ + if (BSP_WARM_START_RESET == event) + { + /* C runtime environment has not been setup so you cannot use globals. System clocks are not setup. */ + } + + if (BSP_WARM_START_POST_CLOCK == event) + { + /* C runtime environment has not been setup so you cannot use globals. Clocks have been initialized. */ + } + else if (BSP_WARM_START_POST_C == event) + { + /* C runtime environment, system clocks, and pins are all setup. */ + } + else + { + /* Do nothing */ + } +} + +/** @} (end addtogroup BSP_MCU) */ + +#if BSP_CFG_C_RUNTIME_INIT + +/*******************************************************************************************************************//** + * Copy the loader data block from external Flash to internal RAM. + **********************************************************************************************************************/ +void bsp_loader_data_init (void) +{ + #if (!defined(__GNUC__) || !(BSP_CFG_RAM_EXECUTION)) + + /* Define destination/source address pointer and block size */ + uintptr_t * src; + uintptr_t * dst; + uintptr_t size; + + /* Copy loader data block */ + src = (uintptr_t *) BSP_PRV_SECTION_LDR_DATA_ROM_ADDRESS; + dst = (uintptr_t *) BSP_PRV_SECTION_LDR_DATA_RAM_START; + size = (uintptr_t) BSP_PRV_SECTION_LDR_DATA_RAM_END - (uintptr_t) BSP_PRV_SECTION_LDR_DATA_RAM_START; + bsp_copy_multibyte(src, dst, size); + #endif +} + +/*******************************************************************************************************************//** + * Clear the loader bss block in internal RAM. + **********************************************************************************************************************/ +void bsp_loader_bss_init (void) +{ + /* Define source address pointer and block size */ + uintptr_t * src; + uintptr_t size; + + /* Clear loader bss block. */ + src = (uintptr_t *) BSP_PRV_SECTION_LDR_DATA_BSS_START; + size = (uintptr_t) BSP_PRV_SECTION_LDR_DATA_BSS_END - (uintptr_t) BSP_PRV_SECTION_LDR_DATA_BSS_START; + bsp_bss_init_multibyte(src, size); + + #if BSP_CFG_RAM_EXECUTION + #if defined(__ICCARM__) + + /* Initialize the application data and clear the application bss. + * This code is for RAM Execution. If you want to boot with ROM, + * enable app_copy and app_bss_init, and disable this code. + * Also need to change icf file. */ + __iar_data_init3(); + #elif defined(__GNUC__) + + /* Clear application bss block. */ + src = (uintptr_t *) BSP_PRV_SECTION_USER_DATA_BSS_START; + size = (uintptr_t) BSP_PRV_SECTION_USER_DATA_BSS_END - (uintptr_t) BSP_PRV_SECTION_USER_DATA_BSS_START; + bsp_bss_init_multibyte(src, size); + #endif + + /* Clear non-cache buffer block. */ + src = (uintptr_t *) BSP_PRV_SECTION_NONCACHE_BUFFER_BSS_START; + size = (uintptr_t) BSP_PRV_SECTION_NONCACHE_BUFFER_BSS_END - + (uintptr_t) BSP_PRV_SECTION_NONCACHE_BUFFER_BSS_START; + bsp_bss_init_multibyte(src, size); + + /* Clear shared non-cache buffer block. */ + src = (uintptr_t *) BSP_PRV_SECTION_SHARED_NONCACHE_BUFFER_BSS_START; + size = (uintptr_t) BSP_PRV_SECTION_SHARED_NONCACHE_BUFFER_BSS_END - + (uintptr_t) BSP_PRV_SECTION_SHARED_NONCACHE_BUFFER_BSS_START; + bsp_bss_init_multibyte(src, size); + + /* Clear DMAC link mode data block. */ + src = (uintptr_t *) BSP_PRV_SECTION_DMAC_LINK_MODE_BSS_START; + size = (uintptr_t) BSP_PRV_SECTION_DMAC_LINK_MODE_BSS_END - + (uintptr_t) BSP_PRV_SECTION_DMAC_LINK_MODE_BSS_START; + bsp_bss_init_multibyte(src, size); + #endif +} + +#endif + +/*******************************************************************************************************************//** + * Copy the memory block from Source address to Destination address by the multi byte unit. + **********************************************************************************************************************/ +void bsp_copy_multibyte (uintptr_t * src, uintptr_t * dst, uintptr_t bytesize) +{ + uintptr_t i; + uintptr_t cnt; + + uintptr_t src_mod; + uint8_t * src_single_byte; + uint8_t * dst_single_byte; + + if (0 != bytesize) + { + /* Copy Count in single byte unit */ + src_mod = (uintptr_t) src % sizeof(uintptr_t); + + if (0 != src_mod) + { + src_single_byte = (uint8_t *) src; + dst_single_byte = (uint8_t *) dst; + + for (i = 0; i < src_mod; i++) + { + *dst_single_byte++ = *src_single_byte++; + } + + dst = (uintptr_t *) dst_single_byte; + src = (uintptr_t *) src_single_byte; + bytesize -= src_mod; + } + else + { + /* Do nothing */ + } + + /* Copy Count in multi byte unit */ + cnt = (bytesize + (sizeof(uintptr_t) - 1)) / sizeof(uintptr_t); + + for (i = 0; i < cnt; i++) + { + *dst++ = *src++; + } + + /* Ensuring data-changing */ + __asm volatile ("DSB SY"); + } + else + { + /* Do nothing */ + } +} + +/*******************************************************************************************************************//** + * Clear the bss block by the multi byte unit. + **********************************************************************************************************************/ +void bsp_bss_init_multibyte (uintptr_t * src, uintptr_t bytesize) +{ + uintptr_t i; + uintptr_t cnt; + uintptr_t zero = 0; + + uintptr_t src_mod; + uint8_t * src_single_byte; + uint8_t zero_single_byte = 0; + + if (0 != bytesize) + { + /* Clear Count in single byte unit */ + src_mod = (uintptr_t) src % sizeof(uintptr_t); + + if (0 != src_mod) + { + src_single_byte = (uint8_t *) src; + + for (i = 0; i < src_mod; i++) + { + *src_single_byte++ = zero_single_byte; + } + + src = (uintptr_t *) src_single_byte; + bytesize -= src_mod; + } + else + { + /* Do nothing */ + } + + /* Clear Count in multi byte unit */ + cnt = (bytesize + (sizeof(uintptr_t) - 1)) / sizeof(uintptr_t); + + for (i = 0; i < cnt; i++) + { + *src++ = zero; + } + + /* Ensuring data-changing */ + __asm volatile ("DSB SY"); + } + else + { + /* Do nothing */ + } +} + +#if !(BSP_CFG_RAM_EXECUTION) + +/*******************************************************************************************************************//** + * Copy the application program block from external Flash to internal RAM. + **********************************************************************************************************************/ +void bsp_copy_to_ram (void) +{ + /* Define destination/source address pointer and block size */ + uintptr_t * src; + uintptr_t * dst; + uintptr_t size; + + /* Copy exception vector block */ + src = (uintptr_t *) BSP_PRV_SECTION_VECTOR_ROM_ADDRESS; + dst = (uintptr_t *) BSP_PRV_SECTION_VECTOR_RAM_START; + size = (uintptr_t) BSP_PRV_SECTION_VECTOR_RAM_END - (uintptr_t) BSP_PRV_SECTION_VECTOR_RAM_START; + bsp_copy_multibyte(src, dst, size); + + /* Copy user program block */ + src = (uintptr_t *) BSP_PRV_SECTION_USER_PRG_ROM_ADDRESS; + dst = (uintptr_t *) BSP_PRV_SECTION_USER_PRG_RAM_START; + size = (uintptr_t) BSP_PRV_SECTION_USER_PRG_RAM_END - (uintptr_t) BSP_PRV_SECTION_USER_PRG_RAM_START; + bsp_copy_multibyte(src, dst, size); + + /* Copy user data block */ + src = (uintptr_t *) BSP_PRV_SECTION_USER_DATA_ROM_ADDRESS; + dst = (uintptr_t *) BSP_PRV_SECTION_USER_DATA_RAM_START; + size = (uintptr_t) BSP_PRV_SECTION_USER_DATA_RAM_END - (uintptr_t) BSP_PRV_SECTION_USER_DATA_RAM_START; + bsp_copy_multibyte(src, dst, size); + + /* Copy user data_noncache block */ + src = (uintptr_t *) BSP_PRV_SECTION_USER_DATA_NONCACHE_ROM_ADDRESS; + dst = (uintptr_t *) BSP_PRV_SECTION_USER_DATA_NONCACHE_RAM_START; + size = (uintptr_t) BSP_PRV_SECTION_USER_DATA_NONCACHE_RAM_END - + (uintptr_t) BSP_PRV_SECTION_USER_DATA_NONCACHE_RAM_START; + bsp_copy_multibyte(src, dst, size); +} + +/*******************************************************************************************************************//** + * Clear the application bss block in internal RAM. + **********************************************************************************************************************/ +void bsp_application_bss_init (void) +{ + /* Define source address pointer and block size */ + uintptr_t * src; + uintptr_t size; + + /* Clear application bss block. */ + src = (uintptr_t *) BSP_PRV_SECTION_USER_DATA_BSS_START; + size = (uintptr_t) BSP_PRV_SECTION_USER_DATA_BSS_END - (uintptr_t) BSP_PRV_SECTION_USER_DATA_BSS_START; + bsp_bss_init_multibyte(src, size); +} + +#endif + +#if BSP_FEATURE_TFU_SUPPORTED +void bsp_tfu_init (void) +{ + R_BSP_RegisterProtectDisable(BSP_REG_PROTECT_LPC_RESET); + R_BSP_MODULE_START(FSP_IP_TFU, 0U); + R_BSP_RegisterProtectEnable(BSP_REG_PROTECT_LPC_RESET); +} + +#endif + +#if !BSP_CFG_PORT_PROTECT +void bsp_release_port_protect (void) +{ + /** When writing to the PRCR register the upper 8-bits must be the correct key. Set lower bits to 0 to + * disable writes. */ + R_RWP_NS->PRCRN = ((R_RWP_NS->PRCRN | BSP_IO_PRV_PRCR_KEY) | BSP_IO_REG_PROTECT_GPIO); + R_RWP_S->PRCRS = ((R_RWP_S->PRCRS | BSP_IO_PRV_PRCR_KEY) | BSP_IO_REG_PROTECT_GPIO); +} + +#endif + +/*******************************************************************************************************************//** + * Initialize static constructors. + **********************************************************************************************************************/ +#if BSP_CFG_C_RUNTIME_INIT +void bsp_static_constructor_init (void) +{ + #if defined(__ICCARM__) + #if !(BSP_CFG_RAM_EXECUTION) + + /* In the case of ROM boot, initialization of static constructors is performed by __iar_data_init3(). */ + __iar_data_init3(); + #endif + #elif defined(__GNUC__) + intptr_t count; + intptr_t i; + + count = __preinit_array_end - __preinit_array_start; + for (i = 0; i < count; i++) + { + __preinit_array_start[i](); + } + + count = __init_array_end - __init_array_start; + for (i = 0; i < count; i++) + { + __init_array_start[i](); + } + #endif +} + +#endif + +/* This vector table is for SGI and PPI interrupts. */ +BSP_DONT_REMOVE fsp_vector_t g_sgi_ppi_vector_table[BSP_CORTEX_VECTOR_TABLE_ENTRIES] = +{ + NULL, /* INTID0 : SOFTWARE_GENERATE_INT0 */ + NULL, /* INTID1 : SOFTWARE_GENERATE_INT1 */ + NULL, /* INTID2 : SOFTWARE_GENERATE_INT2 */ + NULL, /* INTID3 : SOFTWARE_GENERATE_INT3 */ + NULL, /* INTID4 : SOFTWARE_GENERATE_INT4 */ + NULL, /* INTID5 : SOFTWARE_GENERATE_INT5 */ + NULL, /* INTID6 : SOFTWARE_GENERATE_INT6 */ + NULL, /* INTID7 : SOFTWARE_GENERATE_INT7 */ + NULL, /* INTID8 : SOFTWARE_GENERATE_INT8 */ + NULL, /* INTID9 : SOFTWARE_GENERATE_INT9 */ + NULL, /* INTID10 : SOFTWARE_GENERATE_INT10 */ + NULL, /* INTID11 : SOFTWARE_GENERATE_INT11 */ + NULL, /* INTID12 : SOFTWARE_GENERATE_INT12 */ + NULL, /* INTID13 : SOFTWARE_GENERATE_INT13 */ + NULL, /* INTID14 : SOFTWARE_GENERATE_INT14 */ + NULL, /* INTID15 : SOFTWARE_GENERATE_INT15 */ + NULL, /* INTID16 : RESERVED */ + NULL, /* INTID17 : RESERVED */ + NULL, /* INTID18 : RESERVED */ + NULL, /* INTID19 : RESERVED */ + NULL, /* INTID20 : RESERVED */ + NULL, /* INTID21 : RESERVED */ + NULL, /* INTID22 : DEBUG_COMMUNICATIONS_CHANNEL_INT */ + NULL, /* INTID23 : PERFORMANCE_MONITOR_COUNTER_OVERFLOW_INT */ + NULL, /* INTID24 : CROSS_TRIGGER_INTERFACE_INT */ + NULL, /* INTID25 : VIRTUAL_CPU_INTERFACE_MAINTENANCE_INT */ + NULL, /* INTID26 : HYPERVISOR_TIMER_INT */ + NULL, /* INTID27 : VIRTUAL_TIMER_INT */ + NULL, /* INTID28 : RESERVED */ + NULL, /* INTID29 : RESERVED */ + NULL, /* INTID30 : NON-SECURE_PHYSICAL_TIMER_INT */ + NULL, /* INTID31 : RESERVED */ +}; diff --git a/bsp/renesas/rzn2l_rsk/rzn/fsp/src/bsp/mcu/all/bsp_cache.c b/bsp/renesas/rzn2l_rsk/rzn/fsp/src/bsp/mcu/all/bsp_cache.c new file mode 100644 index 0000000000..4a42d4ca6c --- /dev/null +++ b/bsp/renesas/rzn2l_rsk/rzn/fsp/src/bsp/mcu/all/bsp_cache.c @@ -0,0 +1,752 @@ +/*********************************************************************************************************************** + * Copyright [2020-2024] Renesas Electronics Corporation and/or its affiliates. All Rights Reserved. + * + * This software and documentation are supplied by Renesas Electronics Corporation and/or its affiliates and may only + * be used with products of Renesas Electronics Corp. and its affiliates ("Renesas"). No other uses are authorized. + * Renesas products are sold pursuant to Renesas terms and conditions of sale. Purchasers are solely responsible for + * the selection and use of Renesas products and Renesas assumes no liability. No license, express or implied, to any + * intellectual property right is granted by Renesas. This software is protected under all applicable laws, including + * copyright laws. Renesas reserves the right to change or discontinue this software and/or this documentation. + * THE SOFTWARE AND DOCUMENTATION IS DELIVERED TO YOU "AS IS," AND RENESAS MAKES NO REPRESENTATIONS OR WARRANTIES, AND + * TO THE FULLEST EXTENT PERMISSIBLE UNDER APPLICABLE LAW, DISCLAIMS ALL WARRANTIES, WHETHER EXPLICITLY OR IMPLICITLY, + * INCLUDING WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE, AND NONINFRINGEMENT, WITH RESPECT TO THE + * SOFTWARE OR DOCUMENTATION. RENESAS SHALL HAVE NO LIABILITY ARISING OUT OF ANY SECURITY VULNERABILITY OR BREACH. + * TO THE MAXIMUM EXTENT PERMITTED BY LAW, IN NO EVENT WILL RENESAS BE LIABLE TO YOU IN CONNECTION WITH THE SOFTWARE OR + * DOCUMENTATION (OR ANY PERSON OR ENTITY CLAIMING RIGHTS DERIVED FROM YOU) FOR ANY LOSS, DAMAGES, OR CLAIMS WHATSOEVER, + * INCLUDING, WITHOUT LIMITATION, ANY DIRECT, CONSEQUENTIAL, SPECIAL, INDIRECT, PUNITIVE, OR INCIDENTAL DAMAGES; ANY + * LOST PROFITS, OTHER ECONOMIC DAMAGE, PROPERTY DAMAGE, OR PERSONAL INJURY; AND EVEN IF RENESAS HAS BEEN ADVISED OF THE + * POSSIBILITY OF SUCH LOSS, DAMAGES, CLAIMS OR COSTS. + **********************************************************************************************************************/ + +/*********************************************************************************************************************** + * Includes , "Project Includes" + **********************************************************************************************************************/ +#include "bsp_api.h" + +/*********************************************************************************************************************** + * Macro definitions + **********************************************************************************************************************/ +#define BSP_PRV_SCTLR_ELX_BIT_I (0x1000U) +#define BSP_PRV_SCTLR_ELX_BIT_C (0x4U) +#define BSP_PRV_SCTLR_ELX_BIT_M (0x1U) + +#define BSP_PRV_CLIDR_CTYPE_OFFSET (3U) +#define BSP_PRV_CLIDR_CTYPE_MASK (7U) +#define BSP_PRV_CLIDR_CTYPE_EXIST_DATACACHE (2U) +#define BSP_PRV_CLIDR_LOC_OFFSET (24U) +#define BSP_PRV_CLIDR_LOC_MASK (7U) + +#define BSP_PRV_CCSIDR_LINESIZE_OFFSET (0U) +#define BSP_PRV_CCSIDR_LINESIZE_MASK (7U) +#define BSP_PRV_CCSIDR_LINESIZE_ACTUAL_VALUE (4U) +#define BSP_PRV_CCSIDR_ASSOCIATIVITY_OFFSET (3U) +#define BSP_PRV_CCSIDR_ASSOCIATIVITY_MASK (0x3FFU) +#define BSP_PRV_CCSIDR_NUMSETS_OFFSET (13U) +#define BSP_PRV_CCSIDR_NUMSETS_MASK (0x7FFFU) +#define BSP_PRV_CCSIDR_SHIFT_MAX (32U) + +#define BSP_PRV_CSSELR_LEVEL_OFFSET (1U) + +#define BSP_PRV_CTR_IMINLINE_OFFSET (0U) +#define BSP_PRV_CTR_IMINLINE_MASK (0xFU) +#define BSP_PRV_CTR_IMINLINE_NUMBER_OF_WORDS (4U) +#define BSP_PRV_CTR_IMINLINE_ADDRESS_MASK (1U) +#define BSP_PRV_CTR_DMINLINE_OFFSET (16U) +#define BSP_PRV_CTR_DMINLINE_MASK (0xFU) +#define BSP_PRV_CTR_DMINLINE_NUMBER_OF_WORDS (4U) +#define BSP_PRV_CTR_DMINLINE_ADDRESS_MASK (1U) + +/*********************************************************************************************************************** + * Typedef definitions + **********************************************************************************************************************/ + +/*********************************************************************************************************************** + * Exported global variables (to be accessed by other files) + **********************************************************************************************************************/ + +/*********************************************************************************************************************** + * Private global variables and functions + **********************************************************************************************************************/ + +/*******************************************************************************************************************//** + * @addtogroup BSP_MCU + * @{ + **********************************************************************************************************************/ + +/*******************************************************************************************************************//** + * Enable instruction caching. + **********************************************************************************************************************/ +void R_BSP_CacheEnableInst (void) +{ + uintptr_t sctlr; + + sctlr = __get_SCTLR(); + sctlr |= BSP_PRV_SCTLR_ELX_BIT_I; + + __asm volatile ("DSB SY"); + + __set_SCTLR(sctlr); + + __asm volatile ("ISB SY"); +} + +/*******************************************************************************************************************//** + * Enable data caching. + **********************************************************************************************************************/ +void R_BSP_CacheEnableData (void) +{ + uintptr_t sctlr; + + sctlr = __get_SCTLR(); + sctlr |= BSP_PRV_SCTLR_ELX_BIT_C; + + __asm volatile ("DSB SY"); + + __set_SCTLR(sctlr); + + __asm volatile ("ISB SY"); +} + +/*******************************************************************************************************************//** + * Enable memory protect. + **********************************************************************************************************************/ +void R_BSP_CacheEnableMemoryProtect (void) +{ + uintptr_t sctlr; + + sctlr = __get_SCTLR(); + sctlr |= BSP_PRV_SCTLR_ELX_BIT_M; + + __asm volatile ("DSB SY"); + + __set_SCTLR(sctlr); + + __asm volatile ("ISB SY"); +} + +/*******************************************************************************************************************//** + * Disable instruction caching. + **********************************************************************************************************************/ +void R_BSP_CacheDisableInst (void) +{ + uintptr_t sctlr; + + sctlr = __get_SCTLR(); + sctlr &= ~(BSP_PRV_SCTLR_ELX_BIT_I); + + __asm volatile ("DSB SY"); + + __set_SCTLR(sctlr); + + __asm volatile ("ISB SY"); +} + +/*******************************************************************************************************************//** + * Disable data caching. + **********************************************************************************************************************/ +void R_BSP_CacheDisableData (void) +{ + uintptr_t sctlr; + + sctlr = __get_SCTLR(); + sctlr &= ~(BSP_PRV_SCTLR_ELX_BIT_C); + + __asm volatile ("DSB SY"); + + __set_SCTLR(sctlr); + + __asm volatile ("ISB SY"); +} + +/*******************************************************************************************************************//** + * Disable memory protect. + **********************************************************************************************************************/ +void R_BSP_CacheDisableMemoryProtect (void) +{ + uintptr_t sctlr; + + sctlr = __get_SCTLR(); + sctlr &= ~(BSP_PRV_SCTLR_ELX_BIT_M); + + __asm volatile ("DSB SY"); + + __set_SCTLR(sctlr); + + __asm volatile ("ISB SY"); +} + +/*******************************************************************************************************************//** + * Clean data cache by set/way. + * Clean means writing the cache data to memory and clear the dirty bits + * if there is a discrepancy between the cache and memory data. + **********************************************************************************************************************/ +void R_BSP_CacheCleanAll (void) +{ + uintptr_t clidr; + uintptr_t clidr_loc; + uintptr_t clidr_ctype; + uintptr_t clidr_ctype_shift; + + uintptr_t csselr; + uintptr_t csselr_level; + + uintptr_t ccsidr; + uintptr_t ccsidr_linesize; + uintptr_t ccsidr_associativity; + uintptr_t ccsidr_associativity_clz; + uintptr_t ccsidr_associativity_value; + uintptr_t ccsidr_associativity_msb; + uintptr_t ccsidr_numsets; + uintptr_t ccsidr_numsets_total; + + uintptr_t dccsw; + + __asm volatile ("DSB SY"); + + __set_ICIALLU(0); + + __asm volatile ("DMB SY"); + + /* Reads the maximum level of cache implemented */ + clidr = __get_CLIDR(); + clidr_loc = (clidr >> BSP_PRV_CLIDR_LOC_OFFSET) & BSP_PRV_CLIDR_LOC_MASK; + + /* If the cache does not exist, do not process */ + if (0 != clidr_loc) + { + /* Loop until all levels of cache are processed */ + for (csselr = 0; csselr < clidr_loc; csselr++) + { + /* Read the current level cache type */ + clidr_ctype_shift = csselr * BSP_PRV_CLIDR_CTYPE_OFFSET; + clidr_ctype = (clidr >> clidr_ctype_shift) & BSP_PRV_CLIDR_CTYPE_MASK; + + /* If no data cache exists in the current level of cache, do not process */ + if (BSP_PRV_CLIDR_CTYPE_EXIST_DATACACHE <= clidr_ctype) + { + /* Set the current level to Cache Size Selection Register */ + csselr_level = csselr << BSP_PRV_CSSELR_LEVEL_OFFSET; + __set_CSSELR(csselr_level); + + __asm volatile ("DSB SY"); + + /* Read the line size, number of ways, and number of sets for the current level of cache */ + ccsidr = __get_CCSIDR(); + ccsidr_linesize = ((ccsidr >> BSP_PRV_CCSIDR_LINESIZE_OFFSET) & BSP_PRV_CCSIDR_LINESIZE_MASK) + + BSP_PRV_CCSIDR_LINESIZE_ACTUAL_VALUE; + ccsidr_associativity = (ccsidr >> BSP_PRV_CCSIDR_ASSOCIATIVITY_OFFSET) & + BSP_PRV_CCSIDR_ASSOCIATIVITY_MASK; + ccsidr_numsets = (ccsidr >> BSP_PRV_CCSIDR_NUMSETS_OFFSET) & BSP_PRV_CCSIDR_NUMSETS_MASK; + + /* Count consecutive number of 0 starting from the most significant bit (CLZ = Count Leading Zeros) */ + ccsidr_associativity_clz = __CLZ((uint32_t) ccsidr_associativity); + if (BSP_PRV_CCSIDR_SHIFT_MAX == ccsidr_associativity_clz) + { + ccsidr_associativity_clz--; + } + else + { + /* Do Nothing */ + } + + /* Loop until all sets are processed */ + while (1) + { + /* Working copy of number of ways */ + ccsidr_associativity_value = ccsidr_associativity; + + /* Loop until all ways are processed */ + while (1) + { + ccsidr_associativity_msb = (ccsidr_associativity_value << ccsidr_associativity_clz) | + csselr_level; /* Left shift way */ + ccsidr_numsets_total = ccsidr_numsets << ccsidr_linesize; /* Left shift set */ + dccsw = ccsidr_associativity_msb | ccsidr_numsets_total; /* Combine set and way */ + + /* DCCSW - Data or unified Cache line Clean by Set/Way */ + __set_DCCSW(dccsw); + + if (0 != ccsidr_associativity_value) + { + ccsidr_associativity_value--; + } + else + { + break; + } + } + + if (0 != ccsidr_numsets) + { + ccsidr_numsets--; + } + else + { + break; + } + } + } + else + { + /* Do Nothing */ + } + } + + __asm volatile ("DSB SY"); + __asm volatile ("ISB SY"); + } + else + { + /* Do Nothing */ + } +} + +/*******************************************************************************************************************//** + * Invalidate data cache by set/way. + * Also Invalidate instruction cache. + * + * Invalidate means to delete cache data. + **********************************************************************************************************************/ +void R_BSP_CacheInvalidateAll (void) +{ + uintptr_t clidr; + uintptr_t clidr_loc; + uintptr_t clidr_ctype; + uintptr_t clidr_ctype_shift; + + uintptr_t csselr; + uintptr_t csselr_level; + + uintptr_t ccsidr; + uintptr_t ccsidr_linesize; + uintptr_t ccsidr_associativity; + uintptr_t ccsidr_associativity_clz; + uintptr_t ccsidr_associativity_value; + uintptr_t ccsidr_associativity_msb; + uintptr_t ccsidr_numsets; + uintptr_t ccsidr_numsets_total; + + uintptr_t dcisw; + + __asm volatile ("DSB SY"); + + __set_ICIALLU(0); + + __asm volatile ("DMB SY"); + + /* Reads the maximum level of cache implemented */ + clidr = __get_CLIDR(); + clidr_loc = (clidr >> BSP_PRV_CLIDR_LOC_OFFSET) & BSP_PRV_CLIDR_LOC_MASK; + + /* If the cache does not exist, do not process */ + if (0 != clidr_loc) + { + /* Loop until all levels of cache are processed */ + for (csselr = 0; csselr < clidr_loc; csselr++) + { + /* Read the current level cache type */ + clidr_ctype_shift = csselr * BSP_PRV_CLIDR_CTYPE_OFFSET; + clidr_ctype = (clidr >> clidr_ctype_shift) & BSP_PRV_CLIDR_CTYPE_MASK; + + /* If no data cache exists in the current level of cache, do not process */ + if (BSP_PRV_CLIDR_CTYPE_EXIST_DATACACHE <= clidr_ctype) + { + /* Set the current level to Cache Size Selection Register */ + csselr_level = csselr << BSP_PRV_CSSELR_LEVEL_OFFSET; + __set_CSSELR(csselr_level); + + __asm volatile ("DSB SY"); + + /* Read the line size, number of ways, and number of sets for the current level of cache */ + ccsidr = __get_CCSIDR(); + ccsidr_linesize = ((ccsidr >> BSP_PRV_CCSIDR_LINESIZE_OFFSET) & BSP_PRV_CCSIDR_LINESIZE_MASK) + + BSP_PRV_CCSIDR_LINESIZE_ACTUAL_VALUE; + ccsidr_associativity = (ccsidr >> BSP_PRV_CCSIDR_ASSOCIATIVITY_OFFSET) & + BSP_PRV_CCSIDR_ASSOCIATIVITY_MASK; + ccsidr_numsets = (ccsidr >> BSP_PRV_CCSIDR_NUMSETS_OFFSET) & BSP_PRV_CCSIDR_NUMSETS_MASK; + + /* Count consecutive number of 0 starting from the most significant bit (CLZ = Count Leading Zeros) */ + ccsidr_associativity_clz = __CLZ((uint32_t) ccsidr_associativity); + if (BSP_PRV_CCSIDR_SHIFT_MAX == ccsidr_associativity_clz) + { + ccsidr_associativity_clz--; + } + else + { + /* Do Nothing */ + } + + /* Loop until all sets are processed */ + while (1) + { + /* Working copy of number of ways */ + ccsidr_associativity_value = ccsidr_associativity; + + /* Loop until all ways are processed */ + while (1) + { + ccsidr_associativity_msb = (ccsidr_associativity_value << ccsidr_associativity_clz) | + csselr_level; /* Left shift way */ + ccsidr_numsets_total = ccsidr_numsets << ccsidr_linesize; /* Left shift set */ + dcisw = ccsidr_associativity_msb | ccsidr_numsets_total; /* Combine set and way */ + + /* DCISW - Data or unified Cache line Invalidate by Set/Way */ + __set_DCISW(dcisw); + + if (0 != ccsidr_associativity_value) + { + ccsidr_associativity_value--; + } + else + { + break; + } + } + + if (0 != ccsidr_numsets) + { + ccsidr_numsets--; + } + else + { + break; + } + } + } + else + { + /* Do Nothing */ + } + } + + __asm volatile ("DSB SY"); + __asm volatile ("ISB SY"); + } + else + { + /* Do Nothing */ + } +} + +/*******************************************************************************************************************//** + * Clean and Invalidate data cache by set/way. + * Also Invalidate instruction cache. + * + * Clean means writing the cache data to memory and clear the dirty bits + * if there is a discrepancy between the cache and memory data. + * + * Invalidate means to delete cache data. + **********************************************************************************************************************/ +void R_BSP_CacheCleanInvalidateAll (void) +{ + uintptr_t clidr; + uintptr_t clidr_loc; + uintptr_t clidr_ctype; + uintptr_t clidr_ctype_shift; + + uintptr_t csselr; + uintptr_t csselr_level; + + uintptr_t ccsidr; + uintptr_t ccsidr_linesize; + uintptr_t ccsidr_associativity; + uintptr_t ccsidr_associativity_clz; + uintptr_t ccsidr_associativity_value; + uintptr_t ccsidr_associativity_msb; + uintptr_t ccsidr_numsets; + uintptr_t ccsidr_numsets_total; + + uintptr_t dccisw; + + __asm volatile ("DSB SY"); + + __set_ICIALLU(0); + + __asm volatile ("DMB SY"); + + /* Reads the maximum level of cache implemented */ + clidr = __get_CLIDR(); + clidr_loc = (clidr >> BSP_PRV_CLIDR_LOC_OFFSET) & BSP_PRV_CLIDR_LOC_MASK; + + /* If the cache does not exist, do not process */ + if (0 != clidr_loc) + { + /* Loop until all levels of cache are processed */ + for (csselr = 0; csselr < clidr_loc; csselr++) + { + /* Read the current level cache type */ + clidr_ctype_shift = csselr * BSP_PRV_CLIDR_CTYPE_OFFSET; + clidr_ctype = (clidr >> clidr_ctype_shift) & BSP_PRV_CLIDR_CTYPE_MASK; + + /* If no data cache exists in the current level of cache, do not process */ + if (BSP_PRV_CLIDR_CTYPE_EXIST_DATACACHE <= clidr_ctype) + { + /* Set the current level to Cache Size Selection Register */ + csselr_level = csselr << BSP_PRV_CSSELR_LEVEL_OFFSET; + __set_CSSELR(csselr_level); + + __asm volatile ("DSB SY"); + + /* Read the line size, number of ways, and number of sets for the current level of cache */ + ccsidr = __get_CCSIDR(); + ccsidr_linesize = ((ccsidr >> BSP_PRV_CCSIDR_LINESIZE_OFFSET) & BSP_PRV_CCSIDR_LINESIZE_MASK) + + BSP_PRV_CCSIDR_LINESIZE_ACTUAL_VALUE; + ccsidr_associativity = (ccsidr >> BSP_PRV_CCSIDR_ASSOCIATIVITY_OFFSET) & + BSP_PRV_CCSIDR_ASSOCIATIVITY_MASK; + ccsidr_numsets = (ccsidr >> BSP_PRV_CCSIDR_NUMSETS_OFFSET) & BSP_PRV_CCSIDR_NUMSETS_MASK; + + /* Count consecutive number of 0 starting from the most significant bit (CLZ = Count Leading Zeros) */ + ccsidr_associativity_clz = __CLZ((uint32_t) ccsidr_associativity); + if (BSP_PRV_CCSIDR_SHIFT_MAX == ccsidr_associativity_clz) + { + ccsidr_associativity_clz--; + } + else + { + /* Do Nothing */ + } + + /* Loop until all sets are processed */ + while (1) + { + /* Working copy of number of ways */ + ccsidr_associativity_value = ccsidr_associativity; + + /* Loop until all ways are processed */ + while (1) + { + ccsidr_associativity_msb = (ccsidr_associativity_value << ccsidr_associativity_clz) | + csselr_level; /* Left shift way */ + ccsidr_numsets_total = ccsidr_numsets << ccsidr_linesize; /* Left shift set */ + dccisw = ccsidr_associativity_msb | ccsidr_numsets_total; /* Combine set and way */ + + /* DCCISW - Data or unified Cache line Clean and Invalidate by Set/Way */ + __set_DCCISW(dccisw); + + if (0 != ccsidr_associativity_value) + { + ccsidr_associativity_value--; + } + else + { + break; + } + } + + if (0 != ccsidr_numsets) + { + ccsidr_numsets--; + } + else + { + break; + } + } + } + else + { + /* Do Nothing */ + } + } + + __asm volatile ("DSB SY"); + __asm volatile ("ISB SY"); + } + else + { + /* Do Nothing */ + } +} + +/*******************************************************************************************************************//** + * Clean data cache and Invalidate instruction cache by address. + * + * Clean means writing the cache data to memory and clear the dirty bits + * if there is a discrepancy between the cache and memory data. + * + * Invalidate means to delete cache data. + * + * @param[in] base_address Start address of area you want to Clean. + * @param[in] length Size of area you want to Clean. + **********************************************************************************************************************/ +void R_BSP_CacheCleanRange (uintptr_t base_address, uintptr_t length) +{ + uintptr_t end_address; + uintptr_t ctr; + + uintptr_t dminline; + uintptr_t dminline_size; + uintptr_t dccvac; + + uintptr_t iminline; + uintptr_t iminline_size; + uintptr_t icivau; + + end_address = base_address + length; + + /* Calculate data cache line size */ + ctr = __get_CTR(); + dminline = (ctr >> BSP_PRV_CTR_DMINLINE_OFFSET) & BSP_PRV_CTR_DMINLINE_MASK; + dminline_size = (BSP_PRV_CTR_DMINLINE_NUMBER_OF_WORDS << dminline); + + /* Align base address with cache line */ + dccvac = base_address & ~(dminline_size - BSP_PRV_CTR_DMINLINE_ADDRESS_MASK); + do + { + /* Data or unified Cache line Clean by VA to PoC */ + __set_DCCVAC(dccvac); + + dccvac += dminline_size; /* Next data line */ + } while (end_address > dccvac); + + __asm volatile ("DSB SY"); + + /* Calculate instruction cache line size */ + iminline = (ctr >> BSP_PRV_CTR_IMINLINE_OFFSET) & BSP_PRV_CTR_IMINLINE_MASK; + iminline_size = (BSP_PRV_CTR_IMINLINE_NUMBER_OF_WORDS << iminline); + + /* Align base address with cache line */ + icivau = base_address & ~(iminline_size - BSP_PRV_CTR_IMINLINE_ADDRESS_MASK); + do + { + /* Instruction Cache line Invalidate by VA to PoU */ + __set_ICIVAU(icivau); + + icivau += iminline_size; /* Next data line */ + } while (end_address == icivau); + + __asm volatile ("DSB SY"); + __asm volatile ("ISB SY"); +} + +/*******************************************************************************************************************//** + * Invalidate instruction and data cache by address. + * + * Invalidate means to delete cache data. + * + * @param[in] base_address Start address of area you want to Invalidate. + * @param[in] length Size of area you want to Invalidate. + **********************************************************************************************************************/ +void R_BSP_CacheInvalidateRange (uintptr_t base_address, uintptr_t length) +{ + uintptr_t end_address; + uintptr_t ctr; + + uintptr_t dminline; + uintptr_t dminline_size; + uintptr_t dcivac; + + uintptr_t iminline; + uintptr_t iminline_size; + uintptr_t icivau; + + end_address = base_address + length; + + /* Calculate data cache line size */ + ctr = __get_CTR(); + dminline = (ctr >> BSP_PRV_CTR_DMINLINE_OFFSET) & BSP_PRV_CTR_DMINLINE_MASK; + dminline_size = (BSP_PRV_CTR_DMINLINE_NUMBER_OF_WORDS << dminline); + + /* Align base address with cache line */ + dcivac = base_address & ~(dminline_size - BSP_PRV_CTR_DMINLINE_ADDRESS_MASK); + do + { + /* Data or unified Cache line Invalidate by VA to PoC */ + __set_DCIVAC(dcivac); + + dcivac += dminline_size; /* Next data line */ + } while (end_address > dcivac); + + __asm volatile ("DSB SY"); + + /* Calculate instruction cache line size */ + iminline = (ctr >> BSP_PRV_CTR_IMINLINE_OFFSET) & BSP_PRV_CTR_IMINLINE_MASK; + iminline_size = (BSP_PRV_CTR_IMINLINE_NUMBER_OF_WORDS << iminline); + + /* Align base address with cache line */ + icivau = base_address & ~(iminline_size - BSP_PRV_CTR_IMINLINE_ADDRESS_MASK); + do + { + /* Instruction Cache line Invalidate by VA to PoU */ + __set_ICIVAU(icivau); + + icivau += iminline_size; /* Next data line */ + } while (end_address == icivau); + + __asm volatile ("DSB SY"); + __asm volatile ("ISB SY"); +} + +/*******************************************************************************************************************//** + * Clean and Invalidate data cache and Invalidate instruction cache by address. + * + * Clean means writing the cache data to memory and clear the dirty bits + * if there is a discrepancy between the cache and memory data. + * + * Invalidate means to delete cache data. + * + * @param[in] base_address Start address of area you want to Clean and Invalidate. + * @param[in] length Size of area you want to Clean and Invalidate. + **********************************************************************************************************************/ +void R_BSP_CacheCleanInvalidateRange (uintptr_t base_address, uintptr_t length) +{ + uintptr_t end_address; + uintptr_t ctr; + + uintptr_t dminline; + uintptr_t dminline_size; + uintptr_t dccivac; + + uintptr_t iminline; + uintptr_t iminline_size; + uintptr_t icivau; + + end_address = base_address + length; + + /* Calculate data cache line size */ + ctr = __get_CTR(); + dminline = (ctr >> BSP_PRV_CTR_DMINLINE_OFFSET) & BSP_PRV_CTR_DMINLINE_MASK; + dminline_size = (BSP_PRV_CTR_DMINLINE_NUMBER_OF_WORDS << dminline); + + /* Align base address with cache line */ + dccivac = base_address & ~(dminline_size - BSP_PRV_CTR_DMINLINE_ADDRESS_MASK); + do + { + /* Data or unified Cache line Clean and Invalidate by VA to PoC */ + __set_DCCIVAC(dccivac); + + dccivac += dminline_size; /* Next data line */ + } while (end_address > dccivac); + + __asm volatile ("DSB SY"); + + /* Calculate instruction cache line size */ + iminline = (ctr >> BSP_PRV_CTR_IMINLINE_OFFSET) & BSP_PRV_CTR_IMINLINE_MASK; + iminline_size = (BSP_PRV_CTR_IMINLINE_NUMBER_OF_WORDS << iminline); + + /* Align base address with cache line */ + icivau = base_address & ~(iminline_size - BSP_PRV_CTR_IMINLINE_ADDRESS_MASK); + do + { + /* Instruction Cache line Invalidate by VA to PoU */ + __set_ICIVAU(icivau); + + icivau += iminline_size; /* Next data line */ + } while (end_address == icivau); + + __asm volatile ("DSB SY"); + __asm volatile ("ISB SY"); +} + +/*******************************************************************************************************************//** + * Powers on and off the L3 cache way. + * CA55 only. + **********************************************************************************************************************/ +void R_BSP_CacheL3PowerCtrl (void) +{ + r_bsp_cache_l3_power_ctrl(); +} + +/*******************************************************************************************************************//** + * @} (end addtogroup BSP_MCU) + **********************************************************************************************************************/ diff --git a/bsp/renesas/rzn2l_rsk/rzn/fsp/src/bsp/mcu/all/bsp_cache.h b/bsp/renesas/rzn2l_rsk/rzn/fsp/src/bsp/mcu/all/bsp_cache.h new file mode 100644 index 0000000000..8f311e8c5d --- /dev/null +++ b/bsp/renesas/rzn2l_rsk/rzn/fsp/src/bsp/mcu/all/bsp_cache.h @@ -0,0 +1,67 @@ +/*********************************************************************************************************************** + * Copyright [2020-2024] Renesas Electronics Corporation and/or its affiliates. All Rights Reserved. + * + * This software and documentation are supplied by Renesas Electronics Corporation and/or its affiliates and may only + * be used with products of Renesas Electronics Corp. and its affiliates ("Renesas"). No other uses are authorized. + * Renesas products are sold pursuant to Renesas terms and conditions of sale. Purchasers are solely responsible for + * the selection and use of Renesas products and Renesas assumes no liability. No license, express or implied, to any + * intellectual property right is granted by Renesas. This software is protected under all applicable laws, including + * copyright laws. Renesas reserves the right to change or discontinue this software and/or this documentation. + * THE SOFTWARE AND DOCUMENTATION IS DELIVERED TO YOU "AS IS," AND RENESAS MAKES NO REPRESENTATIONS OR WARRANTIES, AND + * TO THE FULLEST EXTENT PERMISSIBLE UNDER APPLICABLE LAW, DISCLAIMS ALL WARRANTIES, WHETHER EXPLICITLY OR IMPLICITLY, + * INCLUDING WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE, AND NONINFRINGEMENT, WITH RESPECT TO THE + * SOFTWARE OR DOCUMENTATION. RENESAS SHALL HAVE NO LIABILITY ARISING OUT OF ANY SECURITY VULNERABILITY OR BREACH. + * TO THE MAXIMUM EXTENT PERMITTED BY LAW, IN NO EVENT WILL RENESAS BE LIABLE TO YOU IN CONNECTION WITH THE SOFTWARE OR + * DOCUMENTATION (OR ANY PERSON OR ENTITY CLAIMING RIGHTS DERIVED FROM YOU) FOR ANY LOSS, DAMAGES, OR CLAIMS WHATSOEVER, + * INCLUDING, WITHOUT LIMITATION, ANY DIRECT, CONSEQUENTIAL, SPECIAL, INDIRECT, PUNITIVE, OR INCIDENTAL DAMAGES; ANY + * LOST PROFITS, OTHER ECONOMIC DAMAGE, PROPERTY DAMAGE, OR PERSONAL INJURY; AND EVEN IF RENESAS HAS BEEN ADVISED OF THE + * POSSIBILITY OF SUCH LOSS, DAMAGES, CLAIMS OR COSTS. + **********************************************************************************************************************/ + +#ifndef BSP_CACHE_H +#define BSP_CACHE_H + +/*********************************************************************************************************************** + * Includes , "Project Includes" + **********************************************************************************************************************/ +#if defined(BSP_CFG_CORE_CR52) + #include "cr/bsp_cache_core.h" +#endif + +/** Common macro for FSP header files. There is also a corresponding FSP_FOOTER macro at the end of this file. */ +FSP_HEADER + +/*********************************************************************************************************************** + * Macro definitions + **********************************************************************************************************************/ + +/*********************************************************************************************************************** + * Typedef definitions + **********************************************************************************************************************/ + +/*********************************************************************************************************************** + * Exported global variables + **********************************************************************************************************************/ + +/*********************************************************************************************************************** + * Exported global functions (to be accessed by other files) + **********************************************************************************************************************/ + +void R_BSP_CacheEnableInst(void); +void R_BSP_CacheEnableData(void); +void R_BSP_CacheEnableMemoryProtect(void); +void R_BSP_CacheDisableInst(void); +void R_BSP_CacheDisableData(void); +void R_BSP_CacheDisableMemoryProtect(void); +void R_BSP_CacheCleanAll(void); +void R_BSP_CacheInvalidateAll(void); +void R_BSP_CacheCleanInvalidateAll(void); +void R_BSP_CacheCleanRange(uintptr_t base_address, uintptr_t length); +void R_BSP_CacheInvalidateRange(uintptr_t base_address, uintptr_t length); +void R_BSP_CacheCleanInvalidateRange(uintptr_t base_address, uintptr_t length); +void R_BSP_CacheL3PowerCtrl(void); + +/** Common macro for FSP header files. There is also a corresponding FSP_HEADER macro at the top of this file. */ +FSP_FOOTER + +#endif diff --git a/bsp/renesas/rzn2l_rsk/rzn/fsp/src/bsp/mcu/all/bsp_clocks.c b/bsp/renesas/rzn2l_rsk/rzn/fsp/src/bsp/mcu/all/bsp_clocks.c new file mode 100644 index 0000000000..8d7da17b40 --- /dev/null +++ b/bsp/renesas/rzn2l_rsk/rzn/fsp/src/bsp/mcu/all/bsp_clocks.c @@ -0,0 +1,374 @@ +/*********************************************************************************************************************** + * Copyright [2020-2024] Renesas Electronics Corporation and/or its affiliates. All Rights Reserved. + * + * This software and documentation are supplied by Renesas Electronics Corporation and/or its affiliates and may only + * be used with products of Renesas Electronics Corp. and its affiliates ("Renesas"). No other uses are authorized. + * Renesas products are sold pursuant to Renesas terms and conditions of sale. Purchasers are solely responsible for + * the selection and use of Renesas products and Renesas assumes no liability. No license, express or implied, to any + * intellectual property right is granted by Renesas. This software is protected under all applicable laws, including + * copyright laws. Renesas reserves the right to change or discontinue this software and/or this documentation. + * THE SOFTWARE AND DOCUMENTATION IS DELIVERED TO YOU "AS IS," AND RENESAS MAKES NO REPRESENTATIONS OR WARRANTIES, AND + * TO THE FULLEST EXTENT PERMISSIBLE UNDER APPLICABLE LAW, DISCLAIMS ALL WARRANTIES, WHETHER EXPLICITLY OR IMPLICITLY, + * INCLUDING WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE, AND NONINFRINGEMENT, WITH RESPECT TO THE + * SOFTWARE OR DOCUMENTATION. RENESAS SHALL HAVE NO LIABILITY ARISING OUT OF ANY SECURITY VULNERABILITY OR BREACH. + * TO THE MAXIMUM EXTENT PERMITTED BY LAW, IN NO EVENT WILL RENESAS BE LIABLE TO YOU IN CONNECTION WITH THE SOFTWARE OR + * DOCUMENTATION (OR ANY PERSON OR ENTITY CLAIMING RIGHTS DERIVED FROM YOU) FOR ANY LOSS, DAMAGES, OR CLAIMS WHATSOEVER, + * INCLUDING, WITHOUT LIMITATION, ANY DIRECT, CONSEQUENTIAL, SPECIAL, INDIRECT, PUNITIVE, OR INCIDENTAL DAMAGES; ANY + * LOST PROFITS, OTHER ECONOMIC DAMAGE, PROPERTY DAMAGE, OR PERSONAL INJURY; AND EVEN IF RENESAS HAS BEEN ADVISED OF THE + * POSSIBILITY OF SUCH LOSS, DAMAGES, CLAIMS OR COSTS. + **********************************************************************************************************************/ + +/*********************************************************************************************************************** + * Includes , "Project Includes" + **********************************************************************************************************************/ +#include "bsp_clocks.h" + +/*********************************************************************************************************************** + * Macro definitions + **********************************************************************************************************************/ + +/* Key code for writing PRCR register. */ +#define BSP_PRV_PRCR_KEY (0xA500U) +#define BSP_PRV_PRCR_CGC_UNLOCK ((BSP_PRV_PRCR_KEY) | 0x1U) +#define BSP_PRV_PRCR_LOCK ((BSP_PRV_PRCR_KEY) | 0x0U) + +/* Key code for writing PCMD register. */ +#define BSP_PRV_PCMD_KEY (0xA5U) + +/* Calculate the value to write to SCKCR. */ +#define BSP_PRV_STARTUP_SCKCR_FSELXSPI0_DIVSELXSPI0_BITS (BSP_CFG_FSELXSPI0_DIVSELXSPI0 & 0x47U) +#define BSP_PRV_STARTUP_SCKCR_FSELXSPI1_DIVSELXSPI1_BITS ((BSP_CFG_FSELXSPI1_DIVSELXSPI1 & 0x47U) << 8U) +#define BSP_PRV_STARTUP_SCKCR_CKIO_BITS ((BSP_CFG_CKIO & 7U) << 16U) +#define BSP_PRV_STARTUP_SCKCR_FSELCANFD_BITS ((BSP_CFG_FSELCANFD & 1U) << 20U) +#define BSP_PRV_STARTUP_SCKCR_PHYSEL_BITS ((BSP_CFG_PHYSEL & 1U) << 21U) +#define BSP_PRV_STARTUP_SCKCR_CLMASEL_BITS ((BSP_CFG_CLMASEL & 1U) << 22U) +#define BSP_PRV_STARTUP_SCKCR_SPI0ASYNCSEL_BITS ((BSP_CFG_SPI0ASYNCCLK & 1U) << 24U) +#define BSP_PRV_STARTUP_SCKCR_SPI1ASYNCSEL_BITS ((BSP_CFG_SPI1ASYNCCLK & 1U) << 25U) +#define BSP_PRV_STARTUP_SCKCR_SPI2ASYNCSEL_BITS ((BSP_CFG_SPI2ASYNCCLK & 1U) << 26U) +#define BSP_PRV_STARTUP_SCKCR_SCI0ASYNCSEL_BITS ((BSP_CFG_SCI0ASYNCCLK & 1U) << 27U) +#define BSP_PRV_STARTUP_SCKCR_SCI1ASYNCSEL_BITS ((BSP_CFG_SCI1ASYNCCLK & 1U) << 28U) +#define BSP_PRV_STARTUP_SCKCR_SCI2ASYNCSEL_BITS ((BSP_CFG_SCI2ASYNCCLK & 1U) << 29U) +#define BSP_PRV_STARTUP_SCKCR_SCI3ASYNCSEL_BITS ((BSP_CFG_SCI3ASYNCCLK & 1U) << 30U) +#define BSP_PRV_STARTUP_SCKCR_SCI4ASYNCSEL_BITS ((BSP_CFG_SCI4ASYNCCLK & 1U) << 31U) + +/* Calculate the value to write to SCKCR2. */ +#define BSP_PRV_STARTUP_SCKCR2_FSELCPU0_BITS (BSP_CFG_FSELCPU0 & 3U) +#define BSP_PRV_STARTUP_SCKCR2_RESERVED_BIT4_BITS (1U << 4U) // The write value should be 1. +#define BSP_PRV_STARTUP_SCKCR2_DIVSELSUB_BITS ((BSP_CFG_DIVSELSUB & 1U) << 5U) +#define BSP_PRV_STARTUP_SCKCR2_SPI3ASYNCSEL_BITS ((BSP_CFG_SPI3ASYNCCLK & 1U) << 24U) +#define BSP_PRV_STARTUP_SCKCR2_SCI5ASYNCSEL_BITS ((BSP_CFG_SCI5ASYNCCLK & 1U) << 25U) + +#define BSP_PRV_STARTUP_SCKCR (BSP_PRV_STARTUP_SCKCR_FSELXSPI0_DIVSELXSPI0_BITS | \ + BSP_PRV_STARTUP_SCKCR_FSELXSPI1_DIVSELXSPI1_BITS | \ + BSP_PRV_STARTUP_SCKCR_CKIO_BITS | \ + BSP_PRV_STARTUP_SCKCR_FSELCANFD_BITS | \ + BSP_PRV_STARTUP_SCKCR_PHYSEL_BITS | \ + BSP_PRV_STARTUP_SCKCR_CLMASEL_BITS | \ + BSP_PRV_STARTUP_SCKCR_SPI0ASYNCSEL_BITS | \ + BSP_PRV_STARTUP_SCKCR_SPI1ASYNCSEL_BITS | \ + BSP_PRV_STARTUP_SCKCR_SPI2ASYNCSEL_BITS | \ + BSP_PRV_STARTUP_SCKCR_SCI0ASYNCSEL_BITS | \ + BSP_PRV_STARTUP_SCKCR_SCI1ASYNCSEL_BITS | \ + BSP_PRV_STARTUP_SCKCR_SCI2ASYNCSEL_BITS | \ + BSP_PRV_STARTUP_SCKCR_SCI3ASYNCSEL_BITS | \ + BSP_PRV_STARTUP_SCKCR_SCI4ASYNCSEL_BITS) + +#define BSP_PRV_STARTUP_SCKCR2 (BSP_PRV_STARTUP_SCKCR2_FSELCPU0_BITS | \ + BSP_PRV_STARTUP_SCKCR2_RESERVED_BIT4_BITS | \ + BSP_PRV_STARTUP_SCKCR2_DIVSELSUB_BITS | \ + BSP_PRV_STARTUP_SCKCR2_SPI3ASYNCSEL_BITS | \ + BSP_PRV_STARTUP_SCKCR2_SCI5ASYNCSEL_BITS) + +#define BSP_PRV_STARTUP_SCKCR2_FSELCPU0_ICLK_MUL2 (BSP_CLOCKS_FSELCPU0_ICLK_MUL2 << \ + R_SYSC_S_SCKCR2_FSELCPU0_Pos) + +/* Calculate the value to write to HIZCTRLEN. */ +#define BSP_PRV_STARTUP_HIZCTRLEN ((BSP_CFG_CLMA1MASK << 2) | (BSP_CFG_CLMA0MASK << 1) | \ + BSP_CFG_CLMA3MASK) + +/* Frequencies of clocks. */ +#define BSP_PRV_CPU_FREQ_200_MHZ (200000000U) // CPU frequency is 200 MHz +#define BSP_PRV_CPU_FREQ_150_MHZ (150000000U) // CPU frequency is 150 MHz + +/* Command sequence for enabling CLMA. */ +#define BSP_PRV_CTL0_ENABLE_TARGET_CMD (0x01) +#define BSP_PRV_CTL0_ENABLE_REVERSED_CMD (0xFE) + +#define BSP_PRV_LOCO_STABILIZATION_COUNT (40000) + +/*********************************************************************************************************************** + * Typedef definitions + **********************************************************************************************************************/ + +/*********************************************************************************************************************** + * Exported global variables (to be accessed by other files) + **********************************************************************************************************************/ + +/*********************************************************************************************************************** + * Private global variables and functions + **********************************************************************************************************************/ +#if !BSP_CFG_SOFT_RESET_SUPPORTED +static void bsp_prv_clock_set_hard_reset(void); + +#endif + +/*******************************************************************************************************************//** + * @internal + * @addtogroup BSP_MCU_PRV Internal BSP Documentation + * @ingroup RENESAS_INTERNAL + * @{ + **********************************************************************************************************************/ + +/*******************************************************************************************************************//** + * Update SystemCoreClock variable based on current clock settings. + **********************************************************************************************************************/ +void SystemCoreClockUpdate (void) +{ + uint32_t devselsub = R_SYSC_S->SCKCR2_b.DIVSELSUB; + uint32_t fselcpu = (R_SYSC_S->SCKCR2_b.FSELCPU0 & 1U); + + if (0U == devselsub) + { + SystemCoreClock = BSP_PRV_CPU_FREQ_200_MHZ << fselcpu; + } + else + { + SystemCoreClock = BSP_PRV_CPU_FREQ_150_MHZ << fselcpu; + } +} + +/*******************************************************************************************************************//** + * Applies system core clock source and divider changes. The MCU is expected to be in high speed mode during this + * configuration and the CGC registers are expected to be unlocked in PRCR. + * + * @param[in] sckcr Value to set in SCKCR register + * @param[in] sckcr2 Value to set in SCKCR2 register + **********************************************************************************************************************/ +void bsp_prv_clock_set (uint32_t sckcr, uint32_t sckcr2) +{ + volatile uint32_t dummy; + sckcr = sckcr & BSP_PRV_SCKCR_MASK; + sckcr2 = sckcr2 & BSP_PRV_SCKCR2_MASK; + + /* Set the system source clock */ + R_SYSC_S->SCKCR2 = sckcr2; + + /** In order to secure processing after clock frequency is changed, + * dummy read the same register at least eight times. + * Refer to "Notes on Clock Generation Circuit" in the RZ microprocessor manual. */ + dummy = R_SYSC_S->SCKCR2; + dummy = R_SYSC_S->SCKCR2; + dummy = R_SYSC_S->SCKCR2; + dummy = R_SYSC_S->SCKCR2; + dummy = R_SYSC_S->SCKCR2; + dummy = R_SYSC_S->SCKCR2; + dummy = R_SYSC_S->SCKCR2; + dummy = R_SYSC_S->SCKCR2; + + R_SYSC_NS->SCKCR = sckcr; + + /** In order to secure processing after clock frequency is changed, + * dummy read the same register at least eight times. + * Refer to "Notes on Clock Generation Circuit" in the RZ microprocessor manual. */ + dummy = R_SYSC_NS->SCKCR; + dummy = R_SYSC_NS->SCKCR; + dummy = R_SYSC_NS->SCKCR; + dummy = R_SYSC_NS->SCKCR; + dummy = R_SYSC_NS->SCKCR; + dummy = R_SYSC_NS->SCKCR; + dummy = R_SYSC_NS->SCKCR; + dummy = R_SYSC_NS->SCKCR; + + FSP_PARAMETER_NOT_USED(dummy); + + /* Clock is now at requested frequency. */ + + /* Update the CMSIS core clock variable so that it reflects the new ICLK frequency. */ + SystemCoreClockUpdate(); +} + +#if !BSP_CFG_SOFT_RESET_SUPPORTED + +static void bsp_prv_clock_set_hard_reset (void) +{ + volatile uint32_t dummy; + uint32_t sckcr = BSP_PRV_STARTUP_SCKCR & BSP_PRV_SCKCR_MASK; + uint32_t sckcr2 = BSP_PRV_STARTUP_SCKCR2 & BSP_PRV_SCKCR2_MASK; + + /* Set the system source clock */ + R_SYSC_S->SCKCR2 = sckcr2; + + /** In order to secure processing after clock frequency is changed, + * dummy read the same register at least eight times. + * Refer to "Notes on Clock Generation Circuit" in the RZ microprocessor manual. */ + dummy = R_SYSC_S->SCKCR2; + dummy = R_SYSC_S->SCKCR2; + dummy = R_SYSC_S->SCKCR2; + dummy = R_SYSC_S->SCKCR2; + dummy = R_SYSC_S->SCKCR2; + dummy = R_SYSC_S->SCKCR2; + dummy = R_SYSC_S->SCKCR2; + dummy = R_SYSC_S->SCKCR2; + + R_SYSC_NS->SCKCR = sckcr; + + /** In order to secure processing after clock frequency is changed, + * dummy read the same register at least eight times. + * Refer to "Notes on Clock Generation Circuit" in the RZ microprocessor manual. */ + dummy = R_SYSC_NS->SCKCR; + dummy = R_SYSC_NS->SCKCR; + dummy = R_SYSC_NS->SCKCR; + dummy = R_SYSC_NS->SCKCR; + dummy = R_SYSC_NS->SCKCR; + dummy = R_SYSC_NS->SCKCR; + dummy = R_SYSC_NS->SCKCR; + dummy = R_SYSC_NS->SCKCR; + + FSP_PARAMETER_NOT_USED(dummy); + + /* Clock is now at requested frequency. */ + + /* Update the CMSIS core clock variable so that it reflects the new ICLK frequency. */ + SystemCoreClockUpdate(); +} + +#endif + +/*******************************************************************************************************************//** + * Initializes system clocks. Makes no assumptions about current register settings. + **********************************************************************************************************************/ +void bsp_clock_init (void) +{ + volatile uint32_t dummy = 0; + + /* Unlock CGC protection registers. */ + R_RWP_NS->PRCRN = (uint16_t) BSP_PRV_PRCR_CGC_UNLOCK; + R_RWP_S->PRCRS = (uint16_t) BSP_PRV_PRCR_CGC_UNLOCK; + + /* The SystemCoreClock needs to be updated before calling R_BSP_SoftwareDelay. */ + SystemCoreClockUpdate(); + + /* Set source clock and dividers. */ +#if BSP_CFG_SOFT_RESET_SUPPORTED + bsp_prv_clock_set(BSP_PRV_STARTUP_SCKCR, BSP_PRV_STARTUP_SCKCR2); +#else + bsp_prv_clock_set_hard_reset(); +#endif + +#if (BSP_CLOCKS_PLL1_INITIAL != BSP_CFG_PLL1) + R_SYSC_S->PLL1EN = BSP_CFG_PLL1; +#endif + +#if (BSP_CLOCKS_LOCO_ENABLE == BSP_CFG_LOCO_ENABLE) + R_SYSC_S->LOCOCR = BSP_CLOCKS_LOCO_ENABLE; + + /* Only start using the LOCO clock after + * the LOCO oscillation stabilization time (tLOCOWT) has elapsed. */ + for (uint16_t i = 0; i < BSP_PRV_LOCO_STABILIZATION_COUNT; i++) + { + __asm volatile ("nop"); + } +#endif + + R_SYSC_S->HIZCTRLEN = BSP_PRV_STARTUP_HIZCTRLEN; + +#if (BSP_CLOCKS_CLMA0_ENABLE == BSP_CFG_CLMA0_ENABLE) + + /* Set the lower and upper limit for comparing frequency domains. */ + R_CLMA0->CMPL = BSP_CFG_CLMA0_CMPL; + R_CLMA0->CMPH = BSP_CFG_CLMA0_CMPH; + + /* Enabling CLMA0 operation. */ + do + { + R_CLMA0->PCMD = BSP_PRV_PCMD_KEY; + + R_CLMA0->CTL0 = BSP_PRV_CTL0_ENABLE_TARGET_CMD; + R_CLMA0->CTL0 = BSP_PRV_CTL0_ENABLE_REVERSED_CMD; + R_CLMA0->CTL0 = BSP_PRV_CTL0_ENABLE_TARGET_CMD; + + if (1 != R_CLMA0->CTL0) + { + /* Check the value of PROTSR register. */ + dummy = R_CLMA0->PROTSR; + } + } while (1 == R_CLMA0->PROTSR_b.PRERR); +#endif + +#if (BSP_CLOCKS_CLMA1_ENABLE == BSP_CFG_CLMA1_ENABLE) + + /* Set the lower and upper limit for comparing frequency domains. */ + R_CLMA1->CMPL = BSP_CFG_CLMA1_CMPL; + R_CLMA1->CMPH = BSP_CFG_CLMA1_CMPH; + + /* Enabling CLMA1 operation. */ + do + { + R_CLMA1->PCMD = BSP_PRV_PCMD_KEY; + + R_CLMA1->CTL0 = BSP_PRV_CTL0_ENABLE_TARGET_CMD; + R_CLMA1->CTL0 = BSP_PRV_CTL0_ENABLE_REVERSED_CMD; + R_CLMA1->CTL0 = BSP_PRV_CTL0_ENABLE_TARGET_CMD; + + if (1 != R_CLMA1->CTL0) + { + /* Check the value of PROTSR register. */ + dummy = R_CLMA1->PROTSR; + } + } while (1 == R_CLMA1->PROTSR_b.PRERR); +#endif + +#if (BSP_CLOCKS_CLMA2_ENABLE == BSP_CFG_CLMA2_ENABLE) + + /* Set the lower and upper limit for comparing frequency domains. */ + R_CLMA2->CMPL = BSP_CFG_CLMA2_CMPL; + R_CLMA2->CMPH = BSP_CFG_CLMA2_CMPH; + + /* Enabling CLMA2 operation. */ + do + { + R_CLMA2->PCMD = BSP_PRV_PCMD_KEY; + + R_CLMA2->CTL0 = BSP_PRV_CTL0_ENABLE_TARGET_CMD; + R_CLMA2->CTL0 = BSP_PRV_CTL0_ENABLE_REVERSED_CMD; + R_CLMA2->CTL0 = BSP_PRV_CTL0_ENABLE_TARGET_CMD; + + if (1 != R_CLMA2->CTL0) + { + /* Check the value of PROTSR register. */ + dummy = R_CLMA2->PROTSR; + } + } while (1 == R_CLMA2->PROTSR_b.PRERR); +#endif + +#if (BSP_CLOCKS_CLMA3_ENABLE == BSP_CFG_CLMA3_ENABLE) + + /* Set the lower and upper limit for comparing frequency domains. */ + R_CLMA3->CMPL = BSP_CFG_CLMA3_CMPL; + R_CLMA3->CMPH = BSP_CFG_CLMA3_CMPH; + + /* Enabling CLMA3 operation. */ + do + { + R_CLMA3->PCMD = BSP_PRV_PCMD_KEY; + + R_CLMA3->CTL0 = BSP_PRV_CTL0_ENABLE_TARGET_CMD; + R_CLMA3->CTL0 = BSP_PRV_CTL0_ENABLE_REVERSED_CMD; + R_CLMA3->CTL0 = BSP_PRV_CTL0_ENABLE_TARGET_CMD; + + if (1 != R_CLMA3->CTL0) + { + /* Check the value of PROTSR register. */ + dummy = R_CLMA3->PROTSR; + } + } while (1 == R_CLMA3->PROTSR_b.PRERR); +#endif + + /* Lock CGC and LPM protection registers. */ + R_RWP_NS->PRCRN = (uint16_t) BSP_PRV_PRCR_LOCK; + R_RWP_S->PRCRS = (uint16_t) BSP_PRV_PRCR_LOCK; + + FSP_PARAMETER_NOT_USED(dummy); +} + +/** @} (end addtogroup BSP_MCU_PRV) */ diff --git a/bsp/renesas/rzn2l_rsk/rzn/fsp/src/bsp/mcu/all/bsp_clocks.h b/bsp/renesas/rzn2l_rsk/rzn/fsp/src/bsp/mcu/all/bsp_clocks.h new file mode 100644 index 0000000000..b292987ccd --- /dev/null +++ b/bsp/renesas/rzn2l_rsk/rzn/fsp/src/bsp/mcu/all/bsp_clocks.h @@ -0,0 +1,221 @@ +/*********************************************************************************************************************** + * Copyright [2020-2024] Renesas Electronics Corporation and/or its affiliates. All Rights Reserved. + * + * This software and documentation are supplied by Renesas Electronics Corporation and/or its affiliates and may only + * be used with products of Renesas Electronics Corp. and its affiliates ("Renesas"). No other uses are authorized. + * Renesas products are sold pursuant to Renesas terms and conditions of sale. Purchasers are solely responsible for + * the selection and use of Renesas products and Renesas assumes no liability. No license, express or implied, to any + * intellectual property right is granted by Renesas. This software is protected under all applicable laws, including + * copyright laws. Renesas reserves the right to change or discontinue this software and/or this documentation. + * THE SOFTWARE AND DOCUMENTATION IS DELIVERED TO YOU "AS IS," AND RENESAS MAKES NO REPRESENTATIONS OR WARRANTIES, AND + * TO THE FULLEST EXTENT PERMISSIBLE UNDER APPLICABLE LAW, DISCLAIMS ALL WARRANTIES, WHETHER EXPLICITLY OR IMPLICITLY, + * INCLUDING WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE, AND NONINFRINGEMENT, WITH RESPECT TO THE + * SOFTWARE OR DOCUMENTATION. RENESAS SHALL HAVE NO LIABILITY ARISING OUT OF ANY SECURITY VULNERABILITY OR BREACH. + * TO THE MAXIMUM EXTENT PERMITTED BY LAW, IN NO EVENT WILL RENESAS BE LIABLE TO YOU IN CONNECTION WITH THE SOFTWARE OR + * DOCUMENTATION (OR ANY PERSON OR ENTITY CLAIMING RIGHTS DERIVED FROM YOU) FOR ANY LOSS, DAMAGES, OR CLAIMS WHATSOEVER, + * INCLUDING, WITHOUT LIMITATION, ANY DIRECT, CONSEQUENTIAL, SPECIAL, INDIRECT, PUNITIVE, OR INCIDENTAL DAMAGES; ANY + * LOST PROFITS, OTHER ECONOMIC DAMAGE, PROPERTY DAMAGE, OR PERSONAL INJURY; AND EVEN IF RENESAS HAS BEEN ADVISED OF THE + * POSSIBILITY OF SUCH LOSS, DAMAGES, CLAIMS OR COSTS. + **********************************************************************************************************************/ + +#ifndef BSP_CLOCKS_H +#define BSP_CLOCKS_H + +/*********************************************************************************************************************** + * Includes , "Project Includes" + **********************************************************************************************************************/ +#include "bsp_clock_cfg.h" +#include "bsp_api.h" + +/** Common macro for FSP header files. There is also a corresponding FSP_FOOTER macro at the end of this file. */ +FSP_HEADER + +/*********************************************************************************************************************** + * Macro definitions + **********************************************************************************************************************/ + +/* Startup clock frequency of each system clock. These macros are only helpful if the system clock and dividers have + * not changed since startup. These macros are not used in FSP modules except for the clock startup code. */ + +/* xSPI unit0 clock options. */ +#define BSP_CLOCKS_XSPI0_CLOCK_DIV0_133_3_MHZ (0x02) // xSPI0 base clock 800MHz and xSPI0 clock 133.3MHz. +#define BSP_CLOCKS_XSPI0_CLOCK_DIV0_100_0_MHZ (0x03) // xSPI0 base clock 800MHz and xSPI0 clock 100.0 MHz. +#define BSP_CLOCKS_XSPI0_CLOCK_DIV0_50_0_MHZ (0x04) // xSPI0 base clock 800MHz and xSPI0 clock 50.0 MHz. +#define BSP_CLOCKS_XSPI0_CLOCK_DIV0_25_0_MHZ (0x05) // xSPI0 base clock 800MHz and xSPI0 clock 25.0 MHz. +#define BSP_CLOCKS_XSPI0_CLOCK_DIV0_12_5_MHZ (0x06) // xSPI0 base clock 800MHz and xSPI0 clock 12.5 MHz. +#define BSP_CLOCKS_XSPI0_CLOCK_DIV1_75_0_MHZ (0x43) // xSPI0 base clock 600MHz and xSPI0 clock 75.0 MHz. +#define BSP_CLOCKS_XSPI0_CLOCK_DIV1_37_5_MHZ (0x44) // xSPI0 base clock 600MHz and xSPI0 clock 37.5 MHz. + +/* xSPI unit1 clock options. */ +#define BSP_CLOCKS_XSPI1_CLOCK_DIV0_133_3_MHZ (0x02) // xSPI1 base clock 800MHz and xSPI1 clock 133.3MHz. +#define BSP_CLOCKS_XSPI1_CLOCK_DIV0_100_0_MHZ (0x03) // xSPI1 base clock 800MHz and xSPI1 clock 100.0 MHz. +#define BSP_CLOCKS_XSPI1_CLOCK_DIV0_50_0_MHZ (0x04) // xSPI1 base clock 800MHz and xSPI1 clock 50.0 MHz. +#define BSP_CLOCKS_XSPI1_CLOCK_DIV0_25_0_MHZ (0x05) // xSPI1 base clock 800MHz and xSPI1 clock 25.0 MHz. +#define BSP_CLOCKS_XSPI1_CLOCK_DIV0_12_5_MHZ (0x06) // xSPI1 base clock 800MHz and xSPI1 clock 12.5 MHz. +#define BSP_CLOCKS_XSPI1_CLOCK_DIV1_75_0_MHZ (0x43) // xSPI1 base clock 600MHz and xSPI1 clock 75.0 MHz. +#define BSP_CLOCKS_XSPI1_CLOCK_DIV1_37_5_MHZ (0x44) // xSPI1 base clock 600MHz and xSPI1 clock 37.5 MHz. + +/* CKIO clock options. */ +#define BSP_CLOCKS_CKIO_ICLK_DIV2 (0) // CKIO clock 100.0 MHz (when SCKCR2.DIVSELSUB = 0), + // or 75.0 MHz (when SCKCR2.DIVSELSUB = 1). +#define BSP_CLOCKS_CKIO_ICLK_DIV3 (1) // CKIO clock 66.7 MHz (when SCKCR2.DIVSELSUB = 0), + // or 50.0 MHz (when SCKCR2.DIVSELSUB = 1). +#define BSP_CLOCKS_CKIO_ICLK_DIV4 (2) // CKIO clock 50.0 MHz (when SCKCR2.DIVSELSUB = 0), + // or 37.5 MHz (when SCKCR2.DIVSELSUB = 1). +#define BSP_CLOCKS_CKIO_ICLK_DIV5 (3) // CKIO clock 40.0 MHz (when SCKCR2.DIVSELSUB = 0), + // or 30.0 MHz (when SCKCR2.DIVSELSUB = 1). +#define BSP_CLOCKS_CKIO_ICLK_DIV6 (4) // CKIO clock 33.3 MHz (when SCKCR2.DIVSELSUB = 0), + // or 25.0 MHz (when SCKCR2.DIVSELSUB = 1). +#define BSP_CLOCKS_CKIO_ICLK_DIV7 (5) // CKIO clock 28.6 MHz (when SCKCR2.DIVSELSUB = 0), + // or 21.4 MHz (when SCKCR2.DIVSELSUB = 1). +#define BSP_CLOCKS_CKIO_ICLK_DIV8 (6) // CKIO clock 25.0 MHz (when SCKCR2.DIVSELSUB = 0), + // or 18.75 MHz (when SCKCR2.DIVSELSUB = 1). + +/* CANFD clock options. */ +#define BSP_CLOCKS_CANFD_CLOCK_80_MHZ (0) // CANFD clock 80 MHz. +#define BSP_CLOCKS_CANFD_CLOCK_40_MHZ (1) // CANFD clock 40 MHz. + +/* Ethernet PHY reference clock (ETHn_REFCLK : n = 0 to 2) options. */ +#define BSP_CLOCKS_PHYSEL_PLL1_DIV (0) // PLL1 devider clock. +#define BSP_CLOCKS_PHYSEL_MAINOSC_DIV (1) // Main clock oscillator. + +/* Alternative clock options when main clock abnormal oscillation is detected in CLMA3. */ +#define BSP_CLOCKS_CLMASEL_LOCO (0) // LOCO clock. +#define BSP_CLOCKS_CLMASEL_PLL (1) // PLL clock. + +/* SPI clock options. */ +#define BSP_CLOCKS_SPI0_ASYNCHRONOUS_SERIAL_CLOCK_75_MHZ (0) // SPI0 asynchronous serial clock 75.0 MHz. +#define BSP_CLOCKS_SPI0_ASYNCHRONOUS_SERIAL_CLOCK_96_MHZ (1) // SPI0 asynchronous serial clock 96.0 MHz. +#define BSP_CLOCKS_SPI1_ASYNCHRONOUS_SERIAL_CLOCK_75_MHZ (0) // SPI1 asynchronous serial clock 75.0 MHz. +#define BSP_CLOCKS_SPI1_ASYNCHRONOUS_SERIAL_CLOCK_96_MHZ (1) // SPI1 asynchronous serial clock 96.0 MHz. +#define BSP_CLOCKS_SPI2_ASYNCHRONOUS_SERIAL_CLOCK_75_MHZ (0) // SPI2 asynchronous serial clock 75.0 MHz. +#define BSP_CLOCKS_SPI2_ASYNCHRONOUS_SERIAL_CLOCK_96_MHZ (1) // SPI2 asynchronous serial clock 96.0 MHz. +#define BSP_CLOCKS_SPI3_ASYNCHRONOUS_SERIAL_CLOCK_75_MHZ (0) // SPI3 asynchronous serial clock 75.0 MHz. +#define BSP_CLOCKS_SPI3_ASYNCHRONOUS_SERIAL_CLOCK_96_MHZ (1) // SPI3 asynchronous serial clock 96.0 MHz. + +/* SCI clock options. */ +#define BSP_CLOCKS_SCI0_ASYNCHRONOUS_SERIAL_CLOCK_75_MHZ (0) // SCI0 asynchronous serial clock 75.0 MHz. +#define BSP_CLOCKS_SCI0_ASYNCHRONOUS_SERIAL_CLOCK_96_MHZ (1) // SCI0 asynchronous serial clock 96.0 MHz. +#define BSP_CLOCKS_SCI1_ASYNCHRONOUS_SERIAL_CLOCK_75_MHZ (0) // SCI1 asynchronous serial clock 75.0 MHz. +#define BSP_CLOCKS_SCI1_ASYNCHRONOUS_SERIAL_CLOCK_96_MHZ (1) // SCI1 asynchronous serial clock 96.0 MHz. +#define BSP_CLOCKS_SCI2_ASYNCHRONOUS_SERIAL_CLOCK_75_MHZ (0) // SCI2 asynchronous serial clock 75.0 MHz. +#define BSP_CLOCKS_SCI2_ASYNCHRONOUS_SERIAL_CLOCK_96_MHZ (1) // SCI2 asynchronous serial clock 96.0 MHz. +#define BSP_CLOCKS_SCI3_ASYNCHRONOUS_SERIAL_CLOCK_75_MHZ (0) // SCI3 asynchronous serial clock 75.0 MHz. +#define BSP_CLOCKS_SCI3_ASYNCHRONOUS_SERIAL_CLOCK_96_MHZ (1) // SCI3 asynchronous serial clock 96.0 MHz. +#define BSP_CLOCKS_SCI4_ASYNCHRONOUS_SERIAL_CLOCK_75_MHZ (0) // SCI4 asynchronous serial clock 75.0 MHz. +#define BSP_CLOCKS_SCI4_ASYNCHRONOUS_SERIAL_CLOCK_96_MHZ (1) // SCI4 asynchronous serial clock 96.0 MHz. +#define BSP_CLOCKS_SCI5_ASYNCHRONOUS_SERIAL_CLOCK_75_MHZ (0) // SCI5 asynchronous serial clock 75.0 MHz. +#define BSP_CLOCKS_SCI5_ASYNCHRONOUS_SERIAL_CLOCK_96_MHZ (1) // SCI5 asynchronous serial clock 96.0 MHz. + +/* CPU0 clock options. */ +#define BSP_CLOCKS_FSELCPU0_ICLK_MUL2 (1) // CPU0 clock 400 MHz (when SCKCR2.DIVSELSUB = 0), + // or 300 MHz (when SCKCR2.DIVSELSUB = 1). +#define BSP_CLOCKS_FSELCPU0_ICLK_MUL1 (0) // CPU0 clock 200 MHz (when SCKCR2.DIVSELSUB = 0), + // or 150 MHz (when SCKCR2.DIVSELSUB = 1). + +/* Peripheral module base clock options. */ +#define BSP_CLOCKS_DIVSELSUB_0 (0) // ICLK:200MHz, PCLKH:200MHz, PCLKM:100MHz, + // PCLKL:50MHz, PCLKADC:25MHz, PCLKGPTL:400MHz. +#define BSP_CLOCKS_DIVSELSUB_1 (1) // ICLK:150MHz, PCLKH:150MHz, PCLKM:75 MHz, + // PCLKL:37.5MHz, PCLKADC:18.75MHz, PCLKGPTL:300MHz. + +/* LOCO enable options. */ +#define BSP_CLOCKS_LOCO_DISABLE (0) // LOCO Stop +#define BSP_CLOCKS_LOCO_ENABLE (1) // LOCO Run + +/* PLL1 enable options. */ +#define BSP_CLOCKS_PLL1_INITIAL (0xFF) // Initial (This value should not be reflected in the register) +#define BSP_CLOCKS_PLL1_STANDBY (0) // PLL1 is standby state. +#define BSP_CLOCKS_PLL1_NORMAL (1) // PLL1 is normal state. + +/* CLMA error mask options. */ +#define BSP_CLOCKS_CLMA0_ERROR_MASK (0) // CLMA0 error is not transferred to POE3 and POEG. +#define BSP_CLOCKS_CLMA0_ERROR_NOT_MASK (1) // CLMA0 error is transferred to POE3 and POEG. +#define BSP_CLOCKS_CLMA1_ERROR_MASK (0) // CLMA1 error is not transferred to POE3 and POEG. +#define BSP_CLOCKS_CLMA1_ERROR_NOT_MASK (1) // CLMA1 error is transferred to POE3 and POEG. +#define BSP_CLOCKS_CLMA3_ERROR_MASK (0) // CLMA3 error is not transferred to POE3 and POEG. +#define BSP_CLOCKS_CLMA3_ERROR_NOT_MASK (1) // CLMA3 error is transferred to POE3 and POEG. + +/* CLMA enable options. */ +#define BSP_CLOCKS_CLMA0_DISABLE (0) // Disable CLMA0 operation. +#define BSP_CLOCKS_CLMA0_ENABLE (1) // Enable CLMA0 operation. +#define BSP_CLOCKS_CLMA1_DISABLE (0) // Disable CLMA1 operation. +#define BSP_CLOCKS_CLMA1_ENABLE (1) // Enable CLMA1 operation. +#define BSP_CLOCKS_CLMA2_DISABLE (0) // Disable CLMA2 operation. +#define BSP_CLOCKS_CLMA2_ENABLE (1) // Enable CLMA2 operation. +#define BSP_CLOCKS_CLMA3_DISABLE (0) // Disable CLMA3 operation. +#define BSP_CLOCKS_CLMA3_ENABLE (1) // Enable CLMA3 operation. + +/* Create a mask of valid bits in SCKCR. */ +#define BSP_PRV_SCKCR_FSELXSPI0_MASK (7U << 0) +#define BSP_PRV_SCKCR_DIVSELXSPI0_MASK (1U << 6) +#define BSP_PRV_SCKCR_FSELXSPI1_MASK (7U << 8) +#define BSP_PRV_SCKCR_DIVSELXSPI1_MASK (1U << 14) +#define BSP_PRV_SCKCR_CKIO_MASK (7U << 16) +#define BSP_PRV_SCKCR_FSELCANFD_MASK (1U << 20) +#define BSP_PRV_SCKCR_PHYSEL_MASK (1U << 21) +#define BSP_PRV_SCKCR_CLMASEL_MASK (1U << 22) +#define BSP_PRV_SCKCR_SPI0ASYNCSEL_MASK (1U << 24) +#define BSP_PRV_SCKCR_SPI1ASYNCSEL_MASK (1U << 25) +#define BSP_PRV_SCKCR_SPI2ASYNCSEL_MASK (1U << 26) +#define BSP_PRV_SCKCR_SCI0ASYNCSEL_MASK (1U << 27) +#define BSP_PRV_SCKCR_SCI1ASYNCSEL_MASK (1U << 28) +#define BSP_PRV_SCKCR_SCI2ASYNCSEL_MASK (1U << 29) +#define BSP_PRV_SCKCR_SCI3ASYNCSEL_MASK (1U << 30) +#define BSP_PRV_SCKCR_SCI4ASYNCSEL_MASK (1U << 31) +#define BSP_PRV_SCKCR_MASK (((((((((((((((BSP_PRV_SCKCR_FSELXSPI0_MASK | \ + BSP_PRV_SCKCR_DIVSELXSPI0_MASK) | \ + BSP_PRV_SCKCR_FSELXSPI1_MASK) | \ + BSP_PRV_SCKCR_DIVSELXSPI1_MASK) | \ + BSP_PRV_SCKCR_CKIO_MASK) | \ + BSP_PRV_SCKCR_FSELCANFD_MASK) | \ + BSP_PRV_SCKCR_PHYSEL_MASK) | \ + BSP_PRV_SCKCR_CLMASEL_MASK) | \ + BSP_PRV_SCKCR_SPI0ASYNCSEL_MASK) | \ + BSP_PRV_SCKCR_SPI1ASYNCSEL_MASK) | \ + BSP_PRV_SCKCR_SPI2ASYNCSEL_MASK) | \ + BSP_PRV_SCKCR_SCI0ASYNCSEL_MASK) | \ + BSP_PRV_SCKCR_SCI1ASYNCSEL_MASK) | \ + BSP_PRV_SCKCR_SCI2ASYNCSEL_MASK) | \ + BSP_PRV_SCKCR_SCI3ASYNCSEL_MASK) | \ + BSP_PRV_SCKCR_SCI4ASYNCSEL_MASK) +#define BSP_PRV_SCKCR_DIVSELXSPI_MASK (BSP_PRV_SCKCR_DIVSELXSPI0_MASK | \ + BSP_PRV_SCKCR_DIVSELXSPI1_MASK) + +/* Create a mask of valid bits in SCKCR2. */ +#define BSP_PRV_SCKCR2_FSELCPU0_MASK (3U << 0) +#define BSP_PRV_SCKCR2_RESERVED_BIT4_MASK (1U << 4) +#define BSP_PRV_SCKCR2_DIVSELSUB_MASK (1U << 5) +#define BSP_PRV_SCKCR2_SPI3ASYNCSEL_MASK (1U << 24) +#define BSP_PRV_SCKCR2_SCI5ASYNCSEL_MASK (1U << 25) +#define BSP_PRV_SCKCR2_MASK ((((BSP_PRV_SCKCR2_FSELCPU0_MASK | \ + BSP_PRV_SCKCR2_RESERVED_BIT4_MASK) | \ + BSP_PRV_SCKCR2_DIVSELSUB_MASK) | \ + BSP_PRV_SCKCR2_SPI3ASYNCSEL_MASK) | \ + BSP_PRV_SCKCR2_SCI5ASYNCSEL_MASK) + +#define BSP_PRV_FSELCPU0_INIT (0x02U) + +/*********************************************************************************************************************** + * Typedef definitions + **********************************************************************************************************************/ + +/*********************************************************************************************************************** + * Exported global variables + **********************************************************************************************************************/ + +/*********************************************************************************************************************** + * Exported global functions (to be accessed by other files) + **********************************************************************************************************************/ + +/* Public functions defined in bsp.h */ +void bsp_clock_init(void); // Used internally by BSP + +/* Used internally by CGC */ + +void bsp_prv_clock_set(uint32_t sckcr, uint32_t sckcr2); + +/** Common macro for FSP header files. There is also a corresponding FSP_HEADER macro at the top of this file. */ +FSP_FOOTER + +#endif diff --git a/bsp/renesas/rzn2l_rsk/rzn/fsp/src/bsp/mcu/all/bsp_common.c b/bsp/renesas/rzn2l_rsk/rzn/fsp/src/bsp/mcu/all/bsp_common.c new file mode 100644 index 0000000000..4f70b298c6 --- /dev/null +++ b/bsp/renesas/rzn2l_rsk/rzn/fsp/src/bsp/mcu/all/bsp_common.c @@ -0,0 +1,221 @@ +/*********************************************************************************************************************** + * Copyright [2020-2024] Renesas Electronics Corporation and/or its affiliates. All Rights Reserved. + * + * This software and documentation are supplied by Renesas Electronics Corporation and/or its affiliates and may only + * be used with products of Renesas Electronics Corp. and its affiliates ("Renesas"). No other uses are authorized. + * Renesas products are sold pursuant to Renesas terms and conditions of sale. Purchasers are solely responsible for + * the selection and use of Renesas products and Renesas assumes no liability. No license, express or implied, to any + * intellectual property right is granted by Renesas. This software is protected under all applicable laws, including + * copyright laws. Renesas reserves the right to change or discontinue this software and/or this documentation. + * THE SOFTWARE AND DOCUMENTATION IS DELIVERED TO YOU "AS IS," AND RENESAS MAKES NO REPRESENTATIONS OR WARRANTIES, AND + * TO THE FULLEST EXTENT PERMISSIBLE UNDER APPLICABLE LAW, DISCLAIMS ALL WARRANTIES, WHETHER EXPLICITLY OR IMPLICITLY, + * INCLUDING WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE, AND NONINFRINGEMENT, WITH RESPECT TO THE + * SOFTWARE OR DOCUMENTATION. RENESAS SHALL HAVE NO LIABILITY ARISING OUT OF ANY SECURITY VULNERABILITY OR BREACH. + * TO THE MAXIMUM EXTENT PERMITTED BY LAW, IN NO EVENT WILL RENESAS BE LIABLE TO YOU IN CONNECTION WITH THE SOFTWARE OR + * DOCUMENTATION (OR ANY PERSON OR ENTITY CLAIMING RIGHTS DERIVED FROM YOU) FOR ANY LOSS, DAMAGES, OR CLAIMS WHATSOEVER, + * INCLUDING, WITHOUT LIMITATION, ANY DIRECT, CONSEQUENTIAL, SPECIAL, INDIRECT, PUNITIVE, OR INCIDENTAL DAMAGES; ANY + * LOST PROFITS, OTHER ECONOMIC DAMAGE, PROPERTY DAMAGE, OR PERSONAL INJURY; AND EVEN IF RENESAS HAS BEEN ADVISED OF THE + * POSSIBILITY OF SUCH LOSS, DAMAGES, CLAIMS OR COSTS. + **********************************************************************************************************************/ + +/*********************************************************************************************************************** + * Includes , "Project Includes" + **********************************************************************************************************************/ +#include "bsp_api.h" + +/*********************************************************************************************************************** + * Macro definitions + **********************************************************************************************************************/ +#if defined(__ICCARM__) + #define WEAK_ERROR_ATTRIBUTE + #define WEAK_INIT_ATTRIBUTE + #pragma weak fsp_error_log = fsp_error_log_internal + #pragma weak bsp_init = bsp_init_internal +#elif defined(__GNUC__) + + #define WEAK_ERROR_ATTRIBUTE __attribute__((weak, alias("fsp_error_log_internal"))) + + #define WEAK_INIT_ATTRIBUTE __attribute__((weak, alias("bsp_init_internal"))) +#endif + +#define FSP_SECTION_VERSION ".version" + +/*********************************************************************************************************************** + * Typedef definitions + **********************************************************************************************************************/ + +/*********************************************************************************************************************** + * Exported global variables (to be accessed by other files) + **********************************************************************************************************************/ + +/* System clock frequency information */ +const uint32_t g_bsp_system_clock_select[][2] = +{ + {BSP_PRV_CPU_FREQ_200_MHZ, BSP_PRV_CPU_FREQ_150_MHZ }, // FSP_PRIV_CLOCK_CPU0 + {0, 0 }, // Reserved + {BSP_PRV_ICLK_FREQ_200_MHZ, BSP_PRV_ICLK_FREQ_150_MHZ }, // FSP_PRIV_CLOCK_ICLK + {BSP_PRV_PCLKH_FREQ_200_MHZ, BSP_PRV_PCLKH_FREQ_150_MHZ }, // FSP_PRIV_CLOCK_PCLKH + {BSP_PRV_PCLKM_FREQ_100_MHZ, BSP_PRV_PCLKM_FREQ_75_MHZ }, // FSP_PRIV_CLOCK_PCLKM + {BSP_PRV_PCLKL_FREQ_50_MHZ, BSP_PRV_PCLKL_FREQ_37_5_MHZ }, // FSP_PRIV_CLOCK_PCLKL + {BSP_PRV_PCLKADC_FREQ_25_MHZ, BSP_PRV_PCLKADC_FREQ_18_75_MHZ}, // FSP_PRIV_CLOCK_PCLKADC + {BSP_PRV_PCLKGPTL_FREQ_400_MHZ, BSP_PRV_PCLKGPTL_FREQ_300_MHZ }, // FSP_PRIV_CLOCK_PCLKGPTL + {BSP_PRV_PCLKSPI_FREQ_75_MHZ, BSP_PRV_PCLKSPI_FREQ_96_MHZ }, // FSP_PRIV_CLOCK_PCLKSPI0 + {BSP_PRV_PCLKSPI_FREQ_75_MHZ, BSP_PRV_PCLKSPI_FREQ_96_MHZ }, // FSP_PRIV_CLOCK_PCLKSPI1 + {BSP_PRV_PCLKSPI_FREQ_75_MHZ, BSP_PRV_PCLKSPI_FREQ_96_MHZ }, // FSP_PRIV_CLOCK_PCLKSPI2 + {BSP_PRV_PCLKSPI_FREQ_75_MHZ, BSP_PRV_PCLKSPI_FREQ_96_MHZ }, // FSP_PRIV_CLOCK_PCLKSPI3 + {BSP_PRV_PCLKSCI_FREQ_75_MHZ, BSP_PRV_PCLKSCI_FREQ_96_MHZ }, // FSP_PRIV_CLOCK_PCLKSCI0 + {BSP_PRV_PCLKSCI_FREQ_75_MHZ, BSP_PRV_PCLKSCI_FREQ_96_MHZ }, // FSP_PRIV_CLOCK_PCLKSCI1 + {BSP_PRV_PCLKSCI_FREQ_75_MHZ, BSP_PRV_PCLKSCI_FREQ_96_MHZ }, // FSP_PRIV_CLOCK_PCLKSCI2 + {BSP_PRV_PCLKSCI_FREQ_75_MHZ, BSP_PRV_PCLKSCI_FREQ_96_MHZ }, // FSP_PRIV_CLOCK_PCLKSCI3 + {BSP_PRV_PCLKSCI_FREQ_75_MHZ, BSP_PRV_PCLKSCI_FREQ_96_MHZ }, // FSP_PRIV_CLOCK_PCLKSCI4 + {BSP_PRV_PCLKSCI_FREQ_75_MHZ, BSP_PRV_PCLKSCI_FREQ_96_MHZ }, // FSP_PRIV_CLOCK_PCLKSCI5 + {BSP_PRV_PCLKCAN_FREQ_80_MHZ, BSP_PRV_PCLKCAN_FREQ_40_MHZ }, // FSP_PRIV_CLOCK_PCLKCAN +}; + +/* System clock frequency information for CKIO */ +const uint32_t g_bsp_system_clock_select_ckio[][2] = +{ + {BSP_PRV_CKIO_FREQ_100_MHZ, BSP_PRV_CKIO_FREQ_75_MHZ }, // CKIO = 000b + {BSP_PRV_CKIO_FREQ_66_7_MHZ, BSP_PRV_CKIO_FREQ_50_MHZ }, // CKIO = 001b + {BSP_PRV_CKIO_FREQ_50_MHZ, BSP_PRV_CKIO_FREQ_37_5_MHZ }, // CKIO = 010b + {BSP_PRV_CKIO_FREQ_40_MHZ, BSP_PRV_CKIO_FREQ_30_MHZ }, // CKIO = 011b + {BSP_PRV_CKIO_FREQ_33_3_MHZ, BSP_PRV_CKIO_FREQ_25_MHZ }, // CKIO = 100b + {BSP_PRV_CKIO_FREQ_28_6_MHZ, BSP_PRV_CKIO_FREQ_21_4_MHZ }, // CKIO = 101b + {BSP_PRV_CKIO_FREQ_25_MHZ, BSP_PRV_CKIO_FREQ_18_75_MHZ }, // CKIO = 110b + {BSP_PRV_CKIO_FREQ_NOT_SUPPORTED, BSP_PRV_CKIO_FREQ_NOT_SUPPORTED}, // CKIO = 111b +}; + +/* System clock frequency information for XSPI_CLK */ +const uint32_t g_bsp_system_clock_select_xspi_clk[][2] = +{ + {BSP_PRV_XSPI_CLK_FREQ_NOT_SUPPORTED, BSP_PRV_XSPI_CLK_FREQ_NOT_SUPPORTED}, // FSELXSPIn = 000b + {BSP_PRV_XSPI_CLK_FREQ_NOT_SUPPORTED, BSP_PRV_XSPI_CLK_FREQ_NOT_SUPPORTED}, // FSELXSPIn = 001b + {BSP_PRV_XSPI_CLK_FREQ_133_3_MHZ, BSP_PRV_XSPI_CLK_FREQ_NOT_SUPPORTED}, // FSELXSPIn = 010b + {BSP_PRV_XSPI_CLK_FREQ_100_MHZ, BSP_PRV_XSPI_CLK_FREQ_75_MHZ }, // FSELXSPIn = 011b + {BSP_PRV_XSPI_CLK_FREQ_50_MHZ, BSP_PRV_XSPI_CLK_FREQ_37_5_MHZ }, // FSELXSPIn = 100b + {BSP_PRV_XSPI_CLK_FREQ_25_MHZ, BSP_PRV_XSPI_CLK_FREQ_NOT_SUPPORTED}, // FSELXSPIn = 101b + {BSP_PRV_XSPI_CLK_FREQ_12_5_MHZ, BSP_PRV_XSPI_CLK_FREQ_NOT_SUPPORTED}, // FSELXSPIn = 110b + {BSP_PRV_XSPI_CLK_FREQ_NOT_SUPPORTED, BSP_PRV_XSPI_CLK_FREQ_NOT_SUPPORTED}, // FSELXSPIn = 111b +}; + +/*********************************************************************************************************************** + * Private global variables and functions + **********************************************************************************************************************/ + +/* FSP pack version structure. */ +static BSP_DONT_REMOVE const fsp_pack_version_t g_fsp_version BSP_PLACE_IN_SECTION (FSP_SECTION_VERSION) = +{ + .version_id_b = + { + .minor = FSP_VERSION_MINOR, + .major = FSP_VERSION_MAJOR, + .build = FSP_VERSION_BUILD, + .patch = FSP_VERSION_PATCH + } +}; + +/* Public FSP version name. */ +static BSP_DONT_REMOVE const uint8_t g_fsp_version_string[] BSP_PLACE_IN_SECTION(FSP_SECTION_VERSION) = + FSP_VERSION_STRING; + +/* Unique FSP version ID. */ +static BSP_DONT_REMOVE const uint8_t g_fsp_version_build_string[] BSP_PLACE_IN_SECTION(FSP_SECTION_VERSION) = + FSP_VERSION_BUILD_STRING; + +/*********************************************************************************************************************** + * Private function prototypes + **********************************************************************************************************************/ + +/** Prototype of initialization function called before main. This prototype sets the weak association of this + * function to an internal example implementation. If this function is defined in the application code, the + * application code version is used. */ + +void bsp_init(void * p_args) WEAK_INIT_ATTRIBUTE; + +void bsp_init_internal(void * p_args); /// Default initialization function + +#if ((1 == BSP_CFG_ERROR_LOG) || (1 == BSP_CFG_ASSERT)) + +/** Prototype of function called before errors are returned in FSP code if BSP_CFG_ERROR_LOG is set to 1. This + * prototype sets the weak association of this function to an internal example implementation. */ + +void fsp_error_log(fsp_err_t err, const char * file, int32_t line) WEAK_ERROR_ATTRIBUTE; + +void fsp_error_log_internal(fsp_err_t err, const char * file, int32_t line); /// Default error logger function + +#endif + +/*******************************************************************************************************************//** + * @addtogroup BSP_MCU + * @{ + **********************************************************************************************************************/ + +/*******************************************************************************************************************//** + * Get the FSP version based on compile time macros. + * + * @param[out] p_version Memory address to return version information to. + * + * @retval FSP_SUCCESS Version information stored. + * @retval FSP_ERR_ASSERTION The parameter p_version is NULL. + **********************************************************************************************************************/ +fsp_err_t R_FSP_VersionGet (fsp_pack_version_t * const p_version) +{ +#if BSP_CFG_PARAM_CHECKING_ENABLE + + /** Verify parameters are valid */ + FSP_ASSERT(NULL != p_version); +#endif + + *p_version = g_fsp_version; + + return FSP_SUCCESS; +} + +#if ((1 == BSP_CFG_ERROR_LOG) || (1 == BSP_CFG_ASSERT)) + +/*******************************************************************************************************************//** + * Default error logger function, used only if fsp_error_log is not defined in the user application. + * + * @param[in] err The error code encountered. + * @param[in] file The file name in which the error code was encountered. + * @param[in] line The line number at which the error code was encountered. + **********************************************************************************************************************/ +void fsp_error_log_internal (fsp_err_t err, const char * file, int32_t line) +{ + /** Do nothing. Do not generate any 'unused' warnings. */ + FSP_PARAMETER_NOT_USED(err); + FSP_PARAMETER_NOT_USED(file); + FSP_PARAMETER_NOT_USED(line); +} + +#endif + +/** @} (end addtogroup BSP_MCU) */ + +/*******************************************************************************************************************//** + * Default initialization function, used only if bsp_init is not defined in the user application. + **********************************************************************************************************************/ +void bsp_init_internal (void * p_args) +{ + /* Do nothing. */ + FSP_PARAMETER_NOT_USED(p_args); +} + +#if defined(__ARMCC_VERSION) + +/*******************************************************************************************************************//** + * Default implementation of assert for AC6. + **********************************************************************************************************************/ +__attribute__((weak, noreturn)) +void __aeabi_assert (const char * expr, const char * file, int line) { + FSP_PARAMETER_NOT_USED(expr); + FSP_PARAMETER_NOT_USED(file); + FSP_PARAMETER_NOT_USED(line); + __BKPT(0); + while (1) + { + /* Do nothing. */ + } +} + +#endif diff --git a/bsp/renesas/rzn2l_rsk/rzn/fsp/src/bsp/mcu/all/bsp_common.h b/bsp/renesas/rzn2l_rsk/rzn/fsp/src/bsp/mcu/all/bsp_common.h new file mode 100644 index 0000000000..f6f12905bc --- /dev/null +++ b/bsp/renesas/rzn2l_rsk/rzn/fsp/src/bsp/mcu/all/bsp_common.h @@ -0,0 +1,435 @@ +/*********************************************************************************************************************** + * Copyright [2020-2024] Renesas Electronics Corporation and/or its affiliates. All Rights Reserved. + * + * This software and documentation are supplied by Renesas Electronics Corporation and/or its affiliates and may only + * be used with products of Renesas Electronics Corp. and its affiliates ("Renesas"). No other uses are authorized. + * Renesas products are sold pursuant to Renesas terms and conditions of sale. Purchasers are solely responsible for + * the selection and use of Renesas products and Renesas assumes no liability. No license, express or implied, to any + * intellectual property right is granted by Renesas. This software is protected under all applicable laws, including + * copyright laws. Renesas reserves the right to change or discontinue this software and/or this documentation. + * THE SOFTWARE AND DOCUMENTATION IS DELIVERED TO YOU "AS IS," AND RENESAS MAKES NO REPRESENTATIONS OR WARRANTIES, AND + * TO THE FULLEST EXTENT PERMISSIBLE UNDER APPLICABLE LAW, DISCLAIMS ALL WARRANTIES, WHETHER EXPLICITLY OR IMPLICITLY, + * INCLUDING WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE, AND NONINFRINGEMENT, WITH RESPECT TO THE + * SOFTWARE OR DOCUMENTATION. RENESAS SHALL HAVE NO LIABILITY ARISING OUT OF ANY SECURITY VULNERABILITY OR BREACH. + * TO THE MAXIMUM EXTENT PERMITTED BY LAW, IN NO EVENT WILL RENESAS BE LIABLE TO YOU IN CONNECTION WITH THE SOFTWARE OR + * DOCUMENTATION (OR ANY PERSON OR ENTITY CLAIMING RIGHTS DERIVED FROM YOU) FOR ANY LOSS, DAMAGES, OR CLAIMS WHATSOEVER, + * INCLUDING, WITHOUT LIMITATION, ANY DIRECT, CONSEQUENTIAL, SPECIAL, INDIRECT, PUNITIVE, OR INCIDENTAL DAMAGES; ANY + * LOST PROFITS, OTHER ECONOMIC DAMAGE, PROPERTY DAMAGE, OR PERSONAL INJURY; AND EVEN IF RENESAS HAS BEEN ADVISED OF THE + * POSSIBILITY OF SUCH LOSS, DAMAGES, CLAIMS OR COSTS. + **********************************************************************************************************************/ + +#ifndef BSP_COMMON_H +#define BSP_COMMON_H + +/*********************************************************************************************************************** + * Includes , "Project Includes" + **********************************************************************************************************************/ + +/* C99 includes. */ +#include +#include +#include +#include +#include + +/* Different compiler support. */ +#include "../../inc/fsp_common_api.h" +#include "bsp_compiler_support.h" +#include "bsp_cfg.h" + +/** Common macro for FSP header files. There is also a corresponding FSP_FOOTER macro at the end of this file. */ +FSP_HEADER + +/*******************************************************************************************************************//** + * @addtogroup BSP_MCU + * @{ + **********************************************************************************************************************/ + +/*********************************************************************************************************************** + * Macro definitions + **********************************************************************************************************************/ + +/** Used to signify that an ELC event is not able to be used as an interrupt. */ +#define BSP_IRQ_DISABLED (0xFFU) + +/* Vector Number offset */ +#define BSP_VECTOR_NUM_OFFSET (32) +#define BSP_INTERRUPT_TYPE_OFFSET (16U) + +#define FSP_CONTEXT_SAVE +#define FSP_CONTEXT_RESTORE + +#define BSP_PRV_CPU_FREQ_200_MHZ (200000000U) // CPU frequency is 200 MHz +#define BSP_PRV_CPU_FREQ_150_MHZ (150000000U) // CPU frequency is 150 MHz + +#define BSP_PRV_ICLK_FREQ_200_MHZ (200000000U) // ICLK frequency is 200 MHz +#define BSP_PRV_ICLK_FREQ_150_MHZ (150000000U) // ICLK frequency is 150 MHz + +#define BSP_PRV_PCLKH_FREQ_200_MHZ (200000000U) // PCLKH frequency is 200 MHz +#define BSP_PRV_PCLKH_FREQ_150_MHZ (150000000U) // PCLKH frequency is 150 MHz + +#define BSP_PRV_PCLKM_FREQ_100_MHZ (100000000U) // PCLKM frequency is 100 MHz +#define BSP_PRV_PCLKM_FREQ_75_MHZ (75000000U) // PCLKM frequency is 750 MHz + +#define BSP_PRV_PCLKL_FREQ_50_MHZ (50000000U) // PCLKL frequency is 50 MHz +#define BSP_PRV_PCLKL_FREQ_37_5_MHZ (37500000U) // PCLKL frequency is 37.5 MHz + +#define BSP_PRV_PCLKADC_FREQ_25_MHZ (25000000U) // PCLKADC frequency is 25 MHz +#define BSP_PRV_PCLKADC_FREQ_18_75_MHZ (18750000U) // PCLKADC frequency is 18.75 MHz + +#define BSP_PRV_PCLKGPTL_FREQ_400_MHZ (400000000U) // PCLKGPTL frequency is 400 MHz +#define BSP_PRV_PCLKGPTL_FREQ_300_MHZ (300000000U) // PCLKGPTL frequency is 300 MHz + +#define BSP_PRV_PCLKSCI_FREQ_75_MHZ (75000000U) // PCLKSCI frequency is 75 MHz +#define BSP_PRV_PCLKSCI_FREQ_96_MHZ (96000000U) // PCLKSCI frequency is 96 MHz + +#define BSP_PRV_PCLKSPI_FREQ_75_MHZ (75000000U) // PCLKSPI frequency is 75 MHz +#define BSP_PRV_PCLKSPI_FREQ_96_MHZ (96000000U) // PCLKSPI frequency is 96 MHz + +#define BSP_PRV_PCLKCAN_FREQ_80_MHZ (80000000U) // PCLKCAN frequency is 80 MHz +#define BSP_PRV_PCLKCAN_FREQ_40_MHZ (40000000U) // PCLKCAN frequency is 40 MHz + +#define BSP_PRV_CKIO_FREQ_100_MHZ (100000000U) // CKIO frequency is 100 MHz +#define BSP_PRV_CKIO_FREQ_75_MHZ (75000000U) // CKIO frequency is 75 MHz +#define BSP_PRV_CKIO_FREQ_66_7_MHZ (66666666U) // CKIO frequency is 66.7 MHz +#define BSP_PRV_CKIO_FREQ_50_MHZ (50000000U) // CKIO frequency is 50 MHz +#define BSP_PRV_CKIO_FREQ_40_MHZ (40000000U) // CKIO frequency is 40 MHz +#define BSP_PRV_CKIO_FREQ_37_5_MHZ (37500000U) // CKIO frequency is 37.5 MHz +#define BSP_PRV_CKIO_FREQ_33_3_MHZ (33333333U) // CKIO frequency is 33.3MHz +#define BSP_PRV_CKIO_FREQ_30_MHZ (30000000U) // CKIO frequency is 30 MHz +#define BSP_PRV_CKIO_FREQ_28_6_MHZ (28571428U) // CKIO frequency is 28.6 MHz +#define BSP_PRV_CKIO_FREQ_25_MHZ (25000000U) // CKIO frequency is 25 MHz +#define BSP_PRV_CKIO_FREQ_21_4_MHZ (21428571U) // CKIO frequency is 21.4 MHz +#define BSP_PRV_CKIO_FREQ_18_75_MHZ (18750000U) // CKIO frequency is 18.75 MHz +#define BSP_PRV_CKIO_FREQ_NOT_SUPPORTED (0xFFFFFFFFU) // CKIO frequency is not supported + +#define BSP_PRV_XSPI_CLK_FREQ_133_3_MHZ (133333333U) // XSPI_CLK frequency is 133.3 MHz +#define BSP_PRV_XSPI_CLK_FREQ_100_MHZ (100000000U) // XSPI_CLK frequency is 100.0 MHz +#define BSP_PRV_XSPI_CLK_FREQ_75_MHZ (75000000U) // XSPI_CLK frequency is 75.0 MHz +#define BSP_PRV_XSPI_CLK_FREQ_50_MHZ (50000000U) // XSPI_CLK frequency is 50.0 MHz +#define BSP_PRV_XSPI_CLK_FREQ_37_5_MHZ (37500000U) // XSPI_CLK frequency is 37.5 MHz +#define BSP_PRV_XSPI_CLK_FREQ_25_MHZ (25000000U) // XSPI_CLK frequency is 25.0 MHz +#define BSP_PRV_XSPI_CLK_FREQ_12_5_MHZ (12500000U) // XSPI_CLK frequency is 12.5 MHz +#define BSP_PRV_XSPI_CLK_FREQ_NOT_SUPPORTED (0xFFFFFFFFU) // XSPI_CLK frequency is not supported + +/** Macro to log and return error without an assertion. */ +#ifndef FSP_RETURN + + #define FSP_RETURN(err) FSP_ERROR_LOG((err)); \ + return err; +#endif + +/** This function is called before returning an error code. To stop on a runtime error, define fsp_error_log in + * user code and do required debugging (breakpoints, stack dump, etc) in this function.*/ +#if (1 == BSP_CFG_ERROR_LOG) + + #ifndef FSP_ERROR_LOG + #define FSP_ERROR_LOG(err) \ + fsp_error_log((err), __FILE__, __LINE__); + #endif +#else + + #define FSP_ERROR_LOG(err) +#endif + +/** Default assertion calls ::FSP_ERROR_RETURN if condition "a" is false. Used to identify incorrect use of API's in FSP + * functions. */ +#if (3 == BSP_CFG_ASSERT) + #define FSP_ASSERT(a) +#elif (2 == BSP_CFG_ASSERT) + #define FSP_ASSERT(a) {assert(a);} +#else + #define FSP_ASSERT(a) FSP_ERROR_RETURN((a), FSP_ERR_ASSERTION) +#endif // ifndef FSP_ASSERT + +/** All FSP error codes are returned using this macro. Calls ::FSP_ERROR_LOG function if condition "a" is false. Used + * to identify runtime errors in FSP functions. */ + +#define FSP_ERROR_RETURN(a, err) \ + { \ + if ((a)) \ + { \ + (void) 0; /* Do nothing */ \ + } \ + else \ + { \ + FSP_ERROR_LOG(err); \ + return err; \ + } \ + } + +/* Function-like macro used to wait for a condition to be met, most often used to wait for hardware register updates. + * This macro can be redefined to add a timeout if necessary. */ +#ifndef FSP_HARDWARE_REGISTER_WAIT + #define FSP_HARDWARE_REGISTER_WAIT(reg, required_value) while (reg != required_value) { /* Wait. */} +#endif + +/* Function-like macro used to wait for a condition to be met with timeout, + * most often used to wait for hardware register updates. */ +#define BSP_HARDWARE_REGISTER_WAIT_WTIH_TIMEOUT(reg, required_value, timeout) \ + while ((timeout)) \ + { \ + if ((required_value) == (reg)) \ + { \ + break; \ + } \ + (timeout)--; \ + } + +#ifndef BSP_CFG_IRQ_MASK_LEVEL_FOR_CRITICAL_SECTION + #define BSP_CFG_IRQ_MASK_LEVEL_FOR_CRITICAL_SECTION (0U) +#endif + +/* This macro defines a variable for saving previous mask value */ +#ifndef FSP_CRITICAL_SECTION_DEFINE + + #define FSP_CRITICAL_SECTION_DEFINE uintptr_t old_mask_level = 0U +#endif + +/* These macros abstract methods to save and restore the interrupt state. */ +#define FSP_CRITICAL_SECTION_GET_CURRENT_STATE __get_ICC_PMR +#define FSP_CRITICAL_SECTION_SET_STATE __set_ICC_PMR +#define FSP_CRITICAL_SECTION_IRQ_MASK_SET ((uint8_t) (BSP_CFG_IRQ_MASK_LEVEL_FOR_CRITICAL_SECTION << \ + BSP_FEATURE_BSP_IRQ_PRIORITY_POS_BIT)) + +/** This macro temporarily saves the current interrupt state and disables interrupts. */ +#ifndef FSP_CRITICAL_SECTION_ENTER + #define FSP_CRITICAL_SECTION_ENTER \ + old_mask_level = FSP_CRITICAL_SECTION_GET_CURRENT_STATE(); \ + FSP_CRITICAL_SECTION_SET_STATE(FSP_CRITICAL_SECTION_IRQ_MASK_SET) +#endif + +/** This macro restores the previously saved interrupt state, reenabling interrupts. */ +#ifndef FSP_CRITICAL_SECTION_EXIT + #define FSP_CRITICAL_SECTION_EXIT FSP_CRITICAL_SECTION_SET_STATE(old_mask_level) +#endif + +/* Number of Cortex processor exceptions. */ +#define FSP_PRIV_CORTEX_PROCESSOR_EXCEPTIONS (32U) + +/** Used to signify that the requested IRQ vector is not defined in this system. */ +#define FSP_INVALID_VECTOR ((IRQn_Type) - 33) + +/* This macro Enable or Disable interrupts. */ +#define BSP_INTERRUPT_ENABLE __asm volatile ("cpsie i"); \ + __asm volatile ("isb"); + +#define BSP_INTERRUPT_DISABLE __asm volatile ("cpsid i"); \ + __asm volatile ("isb"); + +/** In the event of an unrecoverable error the BSP will by default call the __BKPT() intrinsic function which will + * alert the user of the error. The user can override this default behavior by defining their own + * BSP_CFG_HANDLE_UNRECOVERABLE_ERROR macro. + */ +#if !defined(BSP_CFG_HANDLE_UNRECOVERABLE_ERROR) + + #define BSP_CFG_HANDLE_UNRECOVERABLE_ERROR(x) __BKPT((x)) +#endif + +/*********************************************************************************************************************** + * Typedef definitions + **********************************************************************************************************************/ + +/** Different warm start entry locations in the BSP. */ +typedef enum e_bsp_warm_start_event +{ + BSP_WARM_START_RESET = 0, ///< Called almost immediately after reset. No C runtime environment, clocks, or IRQs. + BSP_WARM_START_POST_CLOCK, ///< Called after clock initialization. No C runtime environment or IRQs. + BSP_WARM_START_POST_C ///< Called after clocks and C runtime environment have been set up +} bsp_warm_start_event_t; + +/* Private enum used in R_FSP_SystemClockHzGet. */ +typedef enum e_fsp_priv_clock +{ + FSP_PRIV_CLOCK_CPU0 = 0, + FSP_PRIV_CLOCK_ICLK = 2, + FSP_PRIV_CLOCK_PCLKH = 3, + FSP_PRIV_CLOCK_PCLKM = 4, + FSP_PRIV_CLOCK_PCLKL = 5, + FSP_PRIV_CLOCK_PCLKADC = 6, + FSP_PRIV_CLOCK_PCLKGPTL = 7, + FSP_PRIV_CLOCK_PCLKSPI0 = 8, + FSP_PRIV_CLOCK_PCLKSPI1 = 9, + FSP_PRIV_CLOCK_PCLKSPI2 = 10, + FSP_PRIV_CLOCK_PCLKSPI3 = 11, + FSP_PRIV_CLOCK_PCLKSCI0 = 12, + FSP_PRIV_CLOCK_PCLKSCI1 = 13, + FSP_PRIV_CLOCK_PCLKSCI2 = 14, + FSP_PRIV_CLOCK_PCLKSCI3 = 15, + FSP_PRIV_CLOCK_PCLKSCI4 = 16, + FSP_PRIV_CLOCK_PCLKSCI5 = 17, + FSP_PRIV_CLOCK_PCLKCAN = 18, + FSP_PRIV_CLOCK_CKIO = 19, + FSP_PRIV_CLOCK_XSPI0_CLK = 20, + FSP_PRIV_CLOCK_XSPI1_CLK = 21, +} fsp_priv_clock_t; + +/*********************************************************************************************************************** + * Exported global variables + **********************************************************************************************************************/ + +extern const uint32_t g_bsp_system_clock_select[][2]; +extern const uint32_t g_bsp_system_clock_select_ckio[][2]; +extern const uint32_t g_bsp_system_clock_select_xspi_clk[][2]; + +extern IRQn_Type g_current_interrupt_num[]; +extern uint8_t g_current_interrupt_pointer; + +/*********************************************************************************************************************** + * Exported global functions (to be accessed by other files) + **********************************************************************************************************************/ + +/*********************************************************************************************************************** + * Inline Functions + **********************************************************************************************************************/ + +/*******************************************************************************************************************//** + * Return active interrupt vector number value + * + * @return Active interrupt vector number value + **********************************************************************************************************************/ +__STATIC_INLINE IRQn_Type R_FSP_CurrentIrqGet (void) +{ + /* Return the current interrupt number. */ + return g_current_interrupt_num[(g_current_interrupt_pointer - 1U)]; +} + +/*******************************************************************************************************************//** + * Gets the frequency of a system clock. + * + * @return Frequency of requested clock in Hertz. + **********************************************************************************************************************/ +__STATIC_INLINE uint32_t R_FSP_SystemClockHzGet (fsp_priv_clock_t clock) +{ + uint32_t clock_hz = 0; + uint32_t fselcpu0 = R_SYSC_S->SCKCR2_b.FSELCPU0; + + switch (clock) + { + case FSP_PRIV_CLOCK_CPU0: + { + clock_hz = g_bsp_system_clock_select[clock][R_SYSC_S->SCKCR2_b.DIVSELSUB] << fselcpu0; + break; + } + + /* These iclk and pclk cases are intentionally combined. */ + case FSP_PRIV_CLOCK_ICLK: + case FSP_PRIV_CLOCK_PCLKH: + case FSP_PRIV_CLOCK_PCLKM: + case FSP_PRIV_CLOCK_PCLKL: + case FSP_PRIV_CLOCK_PCLKADC: + case FSP_PRIV_CLOCK_PCLKGPTL: + { + clock_hz = g_bsp_system_clock_select[clock][R_SYSC_S->SCKCR2_b.DIVSELSUB]; + break; + } + + case FSP_PRIV_CLOCK_PCLKSPI0: + { + clock_hz = g_bsp_system_clock_select[clock][R_SYSC_NS->SCKCR_b.SPI0ASYNCSEL]; + break; + } + + case FSP_PRIV_CLOCK_PCLKSPI1: + { + clock_hz = g_bsp_system_clock_select[clock][R_SYSC_NS->SCKCR_b.SPI1ASYNCSEL]; + break; + } + + case FSP_PRIV_CLOCK_PCLKSPI2: + { + clock_hz = g_bsp_system_clock_select[clock][R_SYSC_NS->SCKCR_b.SPI2ASYNCSEL]; + break; + } + + case FSP_PRIV_CLOCK_PCLKSPI3: + { + clock_hz = g_bsp_system_clock_select[clock][R_SYSC_S->SCKCR2_b.SPI3ASYNCSEL]; + break; + } + + case FSP_PRIV_CLOCK_PCLKSCI0: + { + clock_hz = g_bsp_system_clock_select[clock][R_SYSC_NS->SCKCR_b.SCI0ASYNCSEL]; + break; + } + + case FSP_PRIV_CLOCK_PCLKSCI1: + { + clock_hz = g_bsp_system_clock_select[clock][R_SYSC_NS->SCKCR_b.SCI1ASYNCSEL]; + break; + } + + case FSP_PRIV_CLOCK_PCLKSCI2: + { + clock_hz = g_bsp_system_clock_select[clock][R_SYSC_NS->SCKCR_b.SCI2ASYNCSEL]; + break; + } + + case FSP_PRIV_CLOCK_PCLKSCI3: + { + clock_hz = g_bsp_system_clock_select[clock][R_SYSC_NS->SCKCR_b.SCI3ASYNCSEL]; + break; + } + + case FSP_PRIV_CLOCK_PCLKSCI4: + { + clock_hz = g_bsp_system_clock_select[clock][R_SYSC_NS->SCKCR_b.SCI4ASYNCSEL]; + break; + } + + case FSP_PRIV_CLOCK_PCLKSCI5: + { + clock_hz = g_bsp_system_clock_select[clock][R_SYSC_S->SCKCR2_b.SCI5ASYNCSEL]; + break; + } + + case FSP_PRIV_CLOCK_PCLKCAN: + { + clock_hz = g_bsp_system_clock_select[clock][R_SYSC_NS->SCKCR_b.FSELCANFD]; + break; + } + + case FSP_PRIV_CLOCK_CKIO: + { + uint32_t ckio = R_SYSC_NS->SCKCR_b.CKIO; + clock_hz = g_bsp_system_clock_select_ckio[ckio][R_SYSC_S->SCKCR2_b.DIVSELSUB]; + break; + } + + case FSP_PRIV_CLOCK_XSPI0_CLK: + { + uint32_t fselxspi0 = R_SYSC_NS->SCKCR_b.FSELXSPI0; + clock_hz = g_bsp_system_clock_select_xspi_clk[fselxspi0][R_SYSC_NS->SCKCR_b.DIVSELXSPI0]; + break; + } + + case FSP_PRIV_CLOCK_XSPI1_CLK: + { + uint32_t fselxspi1 = R_SYSC_NS->SCKCR_b.FSELXSPI1; + clock_hz = g_bsp_system_clock_select_xspi_clk[fselxspi1][R_SYSC_NS->SCKCR_b.DIVSELXSPI1]; + break; + } + + default: + { + break; + } + } + + return clock_hz; +} + +#if ((1 == BSP_CFG_ERROR_LOG) || (1 == BSP_CFG_ASSERT)) + +/** Prototype of default function called before errors are returned in FSP code if BSP_CFG_LOG_ERRORS is set to 1. */ +void fsp_error_log(fsp_err_t err, const char * file, int32_t line); + +#endif + +/** @} (end addtogroup BSP_MCU) */ + +/** Common macro for FSP header files. There is also a corresponding FSP_HEADER macro at the top of this file. */ +FSP_FOOTER + +#endif diff --git a/bsp/renesas/rzn2l_rsk/rzn/fsp/src/bsp/mcu/all/bsp_compiler_support.h b/bsp/renesas/rzn2l_rsk/rzn/fsp/src/bsp/mcu/all/bsp_compiler_support.h new file mode 100644 index 0000000000..d593dee9d6 --- /dev/null +++ b/bsp/renesas/rzn2l_rsk/rzn/fsp/src/bsp/mcu/all/bsp_compiler_support.h @@ -0,0 +1,110 @@ +/*********************************************************************************************************************** + * Copyright [2020-2024] Renesas Electronics Corporation and/or its affiliates. All Rights Reserved. + * + * This software and documentation are supplied by Renesas Electronics Corporation and/or its affiliates and may only + * be used with products of Renesas Electronics Corp. and its affiliates ("Renesas"). No other uses are authorized. + * Renesas products are sold pursuant to Renesas terms and conditions of sale. Purchasers are solely responsible for + * the selection and use of Renesas products and Renesas assumes no liability. No license, express or implied, to any + * intellectual property right is granted by Renesas. This software is protected under all applicable laws, including + * copyright laws. Renesas reserves the right to change or discontinue this software and/or this documentation. + * THE SOFTWARE AND DOCUMENTATION IS DELIVERED TO YOU "AS IS," AND RENESAS MAKES NO REPRESENTATIONS OR WARRANTIES, AND + * TO THE FULLEST EXTENT PERMISSIBLE UNDER APPLICABLE LAW, DISCLAIMS ALL WARRANTIES, WHETHER EXPLICITLY OR IMPLICITLY, + * INCLUDING WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE, AND NONINFRINGEMENT, WITH RESPECT TO THE + * SOFTWARE OR DOCUMENTATION. RENESAS SHALL HAVE NO LIABILITY ARISING OUT OF ANY SECURITY VULNERABILITY OR BREACH. + * TO THE MAXIMUM EXTENT PERMITTED BY LAW, IN NO EVENT WILL RENESAS BE LIABLE TO YOU IN CONNECTION WITH THE SOFTWARE OR + * DOCUMENTATION (OR ANY PERSON OR ENTITY CLAIMING RIGHTS DERIVED FROM YOU) FOR ANY LOSS, DAMAGES, OR CLAIMS WHATSOEVER, + * INCLUDING, WITHOUT LIMITATION, ANY DIRECT, CONSEQUENTIAL, SPECIAL, INDIRECT, PUNITIVE, OR INCIDENTAL DAMAGES; ANY + * LOST PROFITS, OTHER ECONOMIC DAMAGE, PROPERTY DAMAGE, OR PERSONAL INJURY; AND EVEN IF RENESAS HAS BEEN ADVISED OF THE + * POSSIBILITY OF SUCH LOSS, DAMAGES, CLAIMS OR COSTS. + **********************************************************************************************************************/ + +/*******************************************************************************************************************//** + * @addtogroup BSP_MCU + * @{ + **********************************************************************************************************************/ + +#ifndef BSP_COMPILER_SUPPORT_H +#define BSP_COMPILER_SUPPORT_H + +/*********************************************************************************************************************** + * Includes , "Project Includes" + **********************************************************************************************************************/ +#if (defined(__ARM_FEATURE_CMSE) && (__ARM_FEATURE_CMSE == 3)) + #include +#endif + +/** Common macro for FSP header files. There is also a corresponding FSP_FOOTER macro at the end of this file. */ +FSP_HEADER + +/*********************************************************************************************************************** + * Macro definitions + **********************************************************************************************************************/ +#if defined(__ARMCC_VERSION) /* AC6 compiler */ + +/* The AC6 linker requires uninitialized code to be placed in a section that starts with ".bss." Without this, load + * memory (ROM) is reserved unnecessarily. */ + #define BSP_UNINIT_SECTION_PREFIX ".bss" + #define BSP_SECTION_HEAP BSP_UNINIT_SECTION_PREFIX ".heap" + #define BSP_DONT_REMOVE + #define BSP_ATTRIBUTE_STACKLESS __attribute__((naked)) + #define BSP_FORCE_INLINE __attribute__((always_inline)) + #define BSP_TARGET_ARM #pragma arm +#elif defined(__GNUC__) /* GCC compiler */ + #define BSP_UNINIT_SECTION_PREFIX + #define BSP_SECTION_HEAP ".heap" + #define BSP_DONT_REMOVE + #define BSP_ATTRIBUTE_STACKLESS __attribute__((naked)) + #define BSP_FORCE_INLINE __attribute__((always_inline)) + #define BSP_TARGET_ARM __attribute__((target("arm"))) +#elif defined(__ICCARM__) /* IAR compiler */ + #define BSP_UNINIT_SECTION_PREFIX + #define BSP_SECTION_HEAP "HEAP" + #define BSP_DONT_REMOVE __root + #define BSP_ATTRIBUTE_STACKLESS __stackless + #define BSP_FORCE_INLINE _Pragma("inline=forced") + #define BSP_TARGET_ARM __arm +#endif + +#define BSP_SECTION_FIQ_STACK BSP_UNINIT_SECTION_PREFIX ".fiq_stack" +#define BSP_SECTION_IRQ_STACK BSP_UNINIT_SECTION_PREFIX ".irq_stack" +#define BSP_SECTION_ABT_STACK BSP_UNINIT_SECTION_PREFIX ".abt_stack" +#define BSP_SECTION_UND_STACK BSP_UNINIT_SECTION_PREFIX ".und_stack" +#define BSP_SECTION_SYS_STACK BSP_UNINIT_SECTION_PREFIX ".sys_stack" +#define BSP_SECTION_SVC_STACK BSP_UNINIT_SECTION_PREFIX ".svc_stack" +#define BSP_SECTION_NOINIT BSP_UNINIT_SECTION_PREFIX ".noinit" +#define BSP_SECTION_FIXED_VECTORS ".fixed_vectors" +#define BSP_SECTION_APPLICATION_VECTORS ".application_vectors" +#define BSP_SECTION_ROM_REGISTERS ".rom_registers" +#define BSP_SECTION_ID_CODE ".id_code" +#define BSP_SECTION_LOADER_PARAM ".loader_param" + +/* Compiler neutral macros. */ +#define BSP_PLACE_IN_SECTION(x) __attribute__((section(x))) __attribute__((__used__)) + +#define BSP_ALIGN_VARIABLE(x) __attribute__((aligned(x))) + +#define BSP_PACKED __attribute__((aligned(1))) + +#define BSP_WEAK_REFERENCE __attribute__((weak)) + +/** Stacks (and heap) must be sized and aligned to an integer multiple of this number. */ +#define BSP_STACK_ALIGNMENT (8) + +/*********************************************************************************************************************** + * Typedef definitions + **********************************************************************************************************************/ + +/*********************************************************************************************************************** + * Exported global variables + **********************************************************************************************************************/ + +/*********************************************************************************************************************** + * Exported global functions (to be accessed by other files) + **********************************************************************************************************************/ + +/** @} (end of addtogroup BSP_MCU) */ + +/** Common macro for FSP header files. There is also a corresponding FSP_HEADER macro at the top of this file. */ +FSP_FOOTER + +#endif diff --git a/bsp/renesas/rzn2l_rsk/rzn/fsp/src/bsp/mcu/all/bsp_delay.c b/bsp/renesas/rzn2l_rsk/rzn/fsp/src/bsp/mcu/all/bsp_delay.c new file mode 100644 index 0000000000..e24d3f0abc --- /dev/null +++ b/bsp/renesas/rzn2l_rsk/rzn/fsp/src/bsp/mcu/all/bsp_delay.c @@ -0,0 +1,159 @@ +/*********************************************************************************************************************** + * Copyright [2020-2024] Renesas Electronics Corporation and/or its affiliates. All Rights Reserved. + * + * This software and documentation are supplied by Renesas Electronics Corporation and/or its affiliates and may only + * be used with products of Renesas Electronics Corp. and its affiliates ("Renesas"). No other uses are authorized. + * Renesas products are sold pursuant to Renesas terms and conditions of sale. Purchasers are solely responsible for + * the selection and use of Renesas products and Renesas assumes no liability. No license, express or implied, to any + * intellectual property right is granted by Renesas. This software is protected under all applicable laws, including + * copyright laws. Renesas reserves the right to change or discontinue this software and/or this documentation. + * THE SOFTWARE AND DOCUMENTATION IS DELIVERED TO YOU "AS IS," AND RENESAS MAKES NO REPRESENTATIONS OR WARRANTIES, AND + * TO THE FULLEST EXTENT PERMISSIBLE UNDER APPLICABLE LAW, DISCLAIMS ALL WARRANTIES, WHETHER EXPLICITLY OR IMPLICITLY, + * INCLUDING WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE, AND NONINFRINGEMENT, WITH RESPECT TO THE + * SOFTWARE OR DOCUMENTATION. RENESAS SHALL HAVE NO LIABILITY ARISING OUT OF ANY SECURITY VULNERABILITY OR BREACH. + * TO THE MAXIMUM EXTENT PERMITTED BY LAW, IN NO EVENT WILL RENESAS BE LIABLE TO YOU IN CONNECTION WITH THE SOFTWARE OR + * DOCUMENTATION (OR ANY PERSON OR ENTITY CLAIMING RIGHTS DERIVED FROM YOU) FOR ANY LOSS, DAMAGES, OR CLAIMS WHATSOEVER, + * INCLUDING, WITHOUT LIMITATION, ANY DIRECT, CONSEQUENTIAL, SPECIAL, INDIRECT, PUNITIVE, OR INCIDENTAL DAMAGES; ANY + * LOST PROFITS, OTHER ECONOMIC DAMAGE, PROPERTY DAMAGE, OR PERSONAL INJURY; AND EVEN IF RENESAS HAS BEEN ADVISED OF THE + * POSSIBILITY OF SUCH LOSS, DAMAGES, CLAIMS OR COSTS. + **********************************************************************************************************************/ + +/*********************************************************************************************************************** + * Includes , "Project Includes" + **********************************************************************************************************************/ +#include "bsp_api.h" +#include "bsp_delay.h" + +/*********************************************************************************************************************** + * Macro definitions + **********************************************************************************************************************/ +#define BSP_DELAY_NS_PER_SECOND (1000000000) +#define BSP_DELAY_NS_PER_US (1000) +#define BSP_DELAY_SIGNIFICANT_DIGITS (10000) + +/*********************************************************************************************************************** + * Typedef definitions + **********************************************************************************************************************/ + +/*********************************************************************************************************************** + * Exported global variables (to be accessed by other files) + **********************************************************************************************************************/ + +/*********************************************************************************************************************** + * Private global variables and functions + **********************************************************************************************************************/ + +/*******************************************************************************************************************//** + * @addtogroup BSP_MCU + * @{ + **********************************************************************************************************************/ + +/*******************************************************************************************************************//** + * Delay for at least the specified duration in units and return. + * @param[in] delay The number of 'units' to delay. + * @param[in] units The 'base' (bsp_delay_units_t) for the units specified. Valid values are: + * BSP_DELAY_UNITS_SECONDS, BSP_DELAY_UNITS_MILLISECONDS, BSP_DELAY_UNITS_MICROSECONDS.@n + * For example:@n + * At 200 MHz one cycle takes 1/200 microsecond or 5 nanoseconds.@n + * At 800 MHz one cycle takes 1/800 microsecond or 1.25 nanoseconds.@n + * Therefore one run through bsp_prv_software_delay_loop() takes: + * ~ (1.25 * BSP_DELAY_LOOP_CYCLES) or 5 ns. + * A delay of 2 us therefore requires 2000ns/5ns or 400 loops. + * + * The 'theoretical' maximum delay that may be obtained is determined by a full 32 bit loop count and the system clock rate. + * @200MHz: ((0xFFFFFFFF loops * 4 cycles /loop) / 200000000) = 85 seconds. + * @800MHz: ((0xFFFFFFFF loops * 4 cycles /loop) / 800000000) = 21 seconds. + * + * Note that requests for very large delays will be affected by rounding in the calculations and the actual delay + * achieved may be slightly longer. @200 MHz, for example, a request for 85 seconds will be closer to 86 seconds. + * + * Note also that if the calculations result in a loop_cnt of zero, the bsp_prv_software_delay_loop() function is not called + * at all. In this case the requested delay is too small (nanoseconds) to be carried out by the loop itself, and the + * overhead associated with executing the code to just get to this point has certainly satisfied the requested delay. + * + * + * @note R_BSP_SoftwareDelay() obtains the system clock value by reading the SystemCoreClock variable. + * Therefore, R_BSP_SoftwareDelay() cannot be used until after the SystemCoreClock has been updated. + * The SystemCoreClock is updated by executing SystemCoreClockUpdate() in startup; + * users cannot call R_BSP_SoftwareDelay() inside R_BSP_WarmStart(BSP_WARM_START_RESET) and + * R_BSP_WarmStart(BSP_WARM_START_POST_CLOCK) since they are invoked before SystemCoreClockUpdate() in startup. + * + * @note This function will delay for **at least** the specified duration. Due to overhead in calculating the correct number + * of loops to delay, very small delay values (generally 1-5 microseconds) may be significantly longer than specified. + * Approximate overhead for this function is as follows: + * - CR52: 87-94 cycles + * + * @note If more accurate microsecond timing must be performed in software it is recommended to use + * bsp_prv_software_delay_loop() directly. In this case, use BSP_DELAY_LOOP_CYCLES or BSP_DELAY_LOOPS_CALCULATE() + * to convert a calculated delay cycle count to a number of software delay loops. + * + * @note Delays may be longer than expected when compiler optimization is turned off. + **********************************************************************************************************************/ + +void R_BSP_SoftwareDelay (uint32_t delay, bsp_delay_units_t units) +{ + uint32_t cpu_hz; + uint32_t cycles_requested; + uint32_t ns_per_cycle; + uint32_t loops_required = 0; + uint32_t total_us = (delay * units); /** Convert the requested time to microseconds. */ + uint64_t ns_64bits; + + cpu_hz = SystemCoreClock; /** Get the system clock frequency in Hz. */ + + /* BSP_DELAY_SIGNIFICANT_DIGITS to keep the decimal point. */ + ns_per_cycle = BSP_DELAY_NS_PER_SECOND / (cpu_hz / BSP_DELAY_SIGNIFICANT_DIGITS); /** Get the # of nanoseconds/cycle. */ + + /* We want to get the time in total nanoseconds but need to be conscious of overflowing 32 bits. We also do not want to do 64 bit */ + /* division as that pulls in a division library. */ + ns_64bits = (uint64_t) total_us * (uint64_t) BSP_DELAY_NS_PER_US; // Convert to ns. + + /* Have we overflowed 32 bits? */ + if (ns_64bits <= UINT32_MAX) + { + ns_64bits = ns_64bits * (uint64_t) BSP_DELAY_SIGNIFICANT_DIGITS; + + /* No, we will not overflow. + * Multiply the calculation result by BSP_DELAY_SIGNIFICANT_DIGITS to disable the retention of the decimal point.*/ + cycles_requested = (uint32_t) (ns_64bits / (uint64_t) ns_per_cycle); + loops_required = cycles_requested / BSP_DELAY_LOOP_CYCLES; + } + else + { + /* We did overflow. Try dividing down first. + * Multiply the calculation result by BSP_DELAY_SIGNIFICANT_DIGITS to disable the retention of the decimal point.*/ + total_us = (total_us / (ns_per_cycle * BSP_DELAY_LOOP_CYCLES)) * BSP_DELAY_SIGNIFICANT_DIGITS; + ns_64bits = (uint64_t) total_us * (uint64_t) BSP_DELAY_NS_PER_US; // Convert to ns. + + /* Have we overflowed 32 bits? */ + if (ns_64bits <= UINT32_MAX) + { + /* No, we will not overflow. */ + loops_required = (uint32_t) ns_64bits; + } + else + { + /* We still overflowed, use the max count for cycles */ + loops_required = UINT32_MAX; + } + } + + /** Only delay if the supplied parameters constitute a delay. */ + if (loops_required > (uint32_t) 0) + { + bsp_prv_software_delay_loop(loops_required); + } +} + +/** @} (end addtogroup BSP_MCU) */ + +/*******************************************************************************************************************//** + * This assembly language routine takes roughly 4 cycles per loop. 2 additional cycles + * occur when the loop exits. The 'naked' attribute indicates that the specified function does not need + * prologue/epilogue sequences generated by the compiler. + * @param[in] loop_cnt The number of loops to iterate. + **********************************************************************************************************************/ +void bsp_prv_software_delay_loop (uint32_t loop_cnt) +{ + r_bsp_software_delay_loop(loop_cnt); +} diff --git a/bsp/renesas/rzn2l_rsk/rzn/fsp/src/bsp/mcu/all/bsp_delay.h b/bsp/renesas/rzn2l_rsk/rzn/fsp/src/bsp/mcu/all/bsp_delay.h new file mode 100644 index 0000000000..82e69ab118 --- /dev/null +++ b/bsp/renesas/rzn2l_rsk/rzn/fsp/src/bsp/mcu/all/bsp_delay.h @@ -0,0 +1,72 @@ +/*********************************************************************************************************************** + * Copyright [2020-2024] Renesas Electronics Corporation and/or its affiliates. All Rights Reserved. + * + * This software and documentation are supplied by Renesas Electronics Corporation and/or its affiliates and may only + * be used with products of Renesas Electronics Corp. and its affiliates ("Renesas"). No other uses are authorized. + * Renesas products are sold pursuant to Renesas terms and conditions of sale. Purchasers are solely responsible for + * the selection and use of Renesas products and Renesas assumes no liability. No license, express or implied, to any + * intellectual property right is granted by Renesas. This software is protected under all applicable laws, including + * copyright laws. Renesas reserves the right to change or discontinue this software and/or this documentation. + * THE SOFTWARE AND DOCUMENTATION IS DELIVERED TO YOU "AS IS," AND RENESAS MAKES NO REPRESENTATIONS OR WARRANTIES, AND + * TO THE FULLEST EXTENT PERMISSIBLE UNDER APPLICABLE LAW, DISCLAIMS ALL WARRANTIES, WHETHER EXPLICITLY OR IMPLICITLY, + * INCLUDING WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE, AND NONINFRINGEMENT, WITH RESPECT TO THE + * SOFTWARE OR DOCUMENTATION. RENESAS SHALL HAVE NO LIABILITY ARISING OUT OF ANY SECURITY VULNERABILITY OR BREACH. + * TO THE MAXIMUM EXTENT PERMITTED BY LAW, IN NO EVENT WILL RENESAS BE LIABLE TO YOU IN CONNECTION WITH THE SOFTWARE OR + * DOCUMENTATION (OR ANY PERSON OR ENTITY CLAIMING RIGHTS DERIVED FROM YOU) FOR ANY LOSS, DAMAGES, OR CLAIMS WHATSOEVER, + * INCLUDING, WITHOUT LIMITATION, ANY DIRECT, CONSEQUENTIAL, SPECIAL, INDIRECT, PUNITIVE, OR INCIDENTAL DAMAGES; ANY + * LOST PROFITS, OTHER ECONOMIC DAMAGE, PROPERTY DAMAGE, OR PERSONAL INJURY; AND EVEN IF RENESAS HAS BEEN ADVISED OF THE + * POSSIBILITY OF SUCH LOSS, DAMAGES, CLAIMS OR COSTS. + **********************************************************************************************************************/ + +#ifndef BSP_DELAY_H +#define BSP_DELAY_H + +/*********************************************************************************************************************** + * Includes , "Project Includes" + **********************************************************************************************************************/ +#if defined(BSP_CFG_CORE_CR52) + #include "cr/bsp_delay_core.h" +#endif + +#include "bsp_compiler_support.h" + +/** Common macro for FSP header files. There is also a corresponding FSP_FOOTER macro at the end of this file. */ +FSP_HEADER + +/*******************************************************************************************************************//** + * @addtogroup BSP_MCU + * @{ + **********************************************************************************************************************/ + +/*********************************************************************************************************************** + * Macro definitions + **********************************************************************************************************************/ + +/*********************************************************************************************************************** + * Typedef definitions + **********************************************************************************************************************/ + +/** Available delay units for R_BSP_SoftwareDelay(). These are ultimately used to calculate a total # of microseconds */ +typedef enum +{ + BSP_DELAY_UNITS_SECONDS = 1000000, ///< Requested delay amount is in seconds + BSP_DELAY_UNITS_MILLISECONDS = 1000, ///< Requested delay amount is in milliseconds + BSP_DELAY_UNITS_MICROSECONDS = 1 ///< Requested delay amount is in microseconds +} bsp_delay_units_t; + +/** @} (end addtogroup BSP_MCU) */ + +/*********************************************************************************************************************** + * Exported global variables + **********************************************************************************************************************/ + +/*********************************************************************************************************************** + * Exported global functions (to be accessed by other files) + **********************************************************************************************************************/ + +void bsp_prv_software_delay_loop(uint32_t loop_cnt); + +/** Common macro for FSP header files. There is also a corresponding FSP_HEADER macro at the top of this file. */ +FSP_FOOTER + +#endif diff --git a/bsp/renesas/rzn2l_rsk/rzn/fsp/src/bsp/mcu/all/bsp_exceptions.h b/bsp/renesas/rzn2l_rsk/rzn/fsp/src/bsp/mcu/all/bsp_exceptions.h new file mode 100644 index 0000000000..37b0468ac0 --- /dev/null +++ b/bsp/renesas/rzn2l_rsk/rzn/fsp/src/bsp/mcu/all/bsp_exceptions.h @@ -0,0 +1,50 @@ +/*********************************************************************************************************************** + * Copyright [2020-2024] Renesas Electronics Corporation and/or its affiliates. All Rights Reserved. + * + * This software and documentation are supplied by Renesas Electronics Corporation and/or its affiliates and may only + * be used with products of Renesas Electronics Corp. and its affiliates ("Renesas"). No other uses are authorized. + * Renesas products are sold pursuant to Renesas terms and conditions of sale. Purchasers are solely responsible for + * the selection and use of Renesas products and Renesas assumes no liability. No license, express or implied, to any + * intellectual property right is granted by Renesas. This software is protected under all applicable laws, including + * copyright laws. Renesas reserves the right to change or discontinue this software and/or this documentation. + * THE SOFTWARE AND DOCUMENTATION IS DELIVERED TO YOU "AS IS," AND RENESAS MAKES NO REPRESENTATIONS OR WARRANTIES, AND + * TO THE FULLEST EXTENT PERMISSIBLE UNDER APPLICABLE LAW, DISCLAIMS ALL WARRANTIES, WHETHER EXPLICITLY OR IMPLICITLY, + * INCLUDING WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE, AND NONINFRINGEMENT, WITH RESPECT TO THE + * SOFTWARE OR DOCUMENTATION. RENESAS SHALL HAVE NO LIABILITY ARISING OUT OF ANY SECURITY VULNERABILITY OR BREACH. + * TO THE MAXIMUM EXTENT PERMITTED BY LAW, IN NO EVENT WILL RENESAS BE LIABLE TO YOU IN CONNECTION WITH THE SOFTWARE OR + * DOCUMENTATION (OR ANY PERSON OR ENTITY CLAIMING RIGHTS DERIVED FROM YOU) FOR ANY LOSS, DAMAGES, OR CLAIMS WHATSOEVER, + * INCLUDING, WITHOUT LIMITATION, ANY DIRECT, CONSEQUENTIAL, SPECIAL, INDIRECT, PUNITIVE, OR INCIDENTAL DAMAGES; ANY + * LOST PROFITS, OTHER ECONOMIC DAMAGE, PROPERTY DAMAGE, OR PERSONAL INJURY; AND EVEN IF RENESAS HAS BEEN ADVISED OF THE + * POSSIBILITY OF SUCH LOSS, DAMAGES, CLAIMS OR COSTS. + **********************************************************************************************************************/ + +#ifndef BSP_EXCEPTIONS_H +#define BSP_EXCEPTIONS_H + +/*********************************************************************************************************************** + * Includes , "Project Includes" + **********************************************************************************************************************/ + +/** Common macro for FSP header files. There is also a corresponding FSP_FOOTER macro at the end of this file. */ +FSP_HEADER + +/*********************************************************************************************************************** + * Macro definitions + **********************************************************************************************************************/ + +/*********************************************************************************************************************** + * Typedef definitions + **********************************************************************************************************************/ + +/*********************************************************************************************************************** + * Exported global variables + **********************************************************************************************************************/ + +/*********************************************************************************************************************** + * Exported global functions (to be accessed by other files) + **********************************************************************************************************************/ + +/** Common macro for FSP header files. There is also a corresponding FSP_HEADER macro at the top of this file. */ +FSP_FOOTER + +#endif diff --git a/bsp/renesas/rzn2l_rsk/rzn/fsp/src/bsp/mcu/all/bsp_io.c b/bsp/renesas/rzn2l_rsk/rzn/fsp/src/bsp/mcu/all/bsp_io.c new file mode 100644 index 0000000000..4cf8a6285a --- /dev/null +++ b/bsp/renesas/rzn2l_rsk/rzn/fsp/src/bsp/mcu/all/bsp_io.c @@ -0,0 +1,41 @@ +/*********************************************************************************************************************** + * Copyright [2020-2024] Renesas Electronics Corporation and/or its affiliates. All Rights Reserved. + * + * This software and documentation are supplied by Renesas Electronics Corporation and/or its affiliates and may only + * be used with products of Renesas Electronics Corp. and its affiliates ("Renesas"). No other uses are authorized. + * Renesas products are sold pursuant to Renesas terms and conditions of sale. Purchasers are solely responsible for + * the selection and use of Renesas products and Renesas assumes no liability. No license, express or implied, to any + * intellectual property right is granted by Renesas. This software is protected under all applicable laws, including + * copyright laws. Renesas reserves the right to change or discontinue this software and/or this documentation. + * THE SOFTWARE AND DOCUMENTATION IS DELIVERED TO YOU "AS IS," AND RENESAS MAKES NO REPRESENTATIONS OR WARRANTIES, AND + * TO THE FULLEST EXTENT PERMISSIBLE UNDER APPLICABLE LAW, DISCLAIMS ALL WARRANTIES, WHETHER EXPLICITLY OR IMPLICITLY, + * INCLUDING WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE, AND NONINFRINGEMENT, WITH RESPECT TO THE + * SOFTWARE OR DOCUMENTATION. RENESAS SHALL HAVE NO LIABILITY ARISING OUT OF ANY SECURITY VULNERABILITY OR BREACH. + * TO THE MAXIMUM EXTENT PERMITTED BY LAW, IN NO EVENT WILL RENESAS BE LIABLE TO YOU IN CONNECTION WITH THE SOFTWARE OR + * DOCUMENTATION (OR ANY PERSON OR ENTITY CLAIMING RIGHTS DERIVED FROM YOU) FOR ANY LOSS, DAMAGES, OR CLAIMS WHATSOEVER, + * INCLUDING, WITHOUT LIMITATION, ANY DIRECT, CONSEQUENTIAL, SPECIAL, INDIRECT, PUNITIVE, OR INCIDENTAL DAMAGES; ANY + * LOST PROFITS, OTHER ECONOMIC DAMAGE, PROPERTY DAMAGE, OR PERSONAL INJURY; AND EVEN IF RENESAS HAS BEEN ADVISED OF THE + * POSSIBILITY OF SUCH LOSS, DAMAGES, CLAIMS OR COSTS. + **********************************************************************************************************************/ + +/*********************************************************************************************************************** + * Includes , "Project Includes" + **********************************************************************************************************************/ +#include "bsp_api.h" + +/*********************************************************************************************************************** + * Macro definitions + **********************************************************************************************************************/ + +/*********************************************************************************************************************** + * Typedef definitions + **********************************************************************************************************************/ + +/*********************************************************************************************************************** + * Exported global variables (to be accessed by other files) + **********************************************************************************************************************/ +volatile uint32_t g_protect_port_counter; + +/*********************************************************************************************************************** + * Private global variables and functions + **********************************************************************************************************************/ diff --git a/bsp/renesas/rzn2l_rsk/rzn/fsp/src/bsp/mcu/all/bsp_io.h b/bsp/renesas/rzn2l_rsk/rzn/fsp/src/bsp/mcu/all/bsp_io.h new file mode 100644 index 0000000000..0da51954ec --- /dev/null +++ b/bsp/renesas/rzn2l_rsk/rzn/fsp/src/bsp/mcu/all/bsp_io.h @@ -0,0 +1,544 @@ +/*********************************************************************************************************************** + * Copyright [2020-2024] Renesas Electronics Corporation and/or its affiliates. All Rights Reserved. + * + * This software and documentation are supplied by Renesas Electronics Corporation and/or its affiliates and may only + * be used with products of Renesas Electronics Corp. and its affiliates ("Renesas"). No other uses are authorized. + * Renesas products are sold pursuant to Renesas terms and conditions of sale. Purchasers are solely responsible for + * the selection and use of Renesas products and Renesas assumes no liability. No license, express or implied, to any + * intellectual property right is granted by Renesas. This software is protected under all applicable laws, including + * copyright laws. Renesas reserves the right to change or discontinue this software and/or this documentation. + * THE SOFTWARE AND DOCUMENTATION IS DELIVERED TO YOU "AS IS," AND RENESAS MAKES NO REPRESENTATIONS OR WARRANTIES, AND + * TO THE FULLEST EXTENT PERMISSIBLE UNDER APPLICABLE LAW, DISCLAIMS ALL WARRANTIES, WHETHER EXPLICITLY OR IMPLICITLY, + * INCLUDING WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE, AND NONINFRINGEMENT, WITH RESPECT TO THE + * SOFTWARE OR DOCUMENTATION. RENESAS SHALL HAVE NO LIABILITY ARISING OUT OF ANY SECURITY VULNERABILITY OR BREACH. + * TO THE MAXIMUM EXTENT PERMITTED BY LAW, IN NO EVENT WILL RENESAS BE LIABLE TO YOU IN CONNECTION WITH THE SOFTWARE OR + * DOCUMENTATION (OR ANY PERSON OR ENTITY CLAIMING RIGHTS DERIVED FROM YOU) FOR ANY LOSS, DAMAGES, OR CLAIMS WHATSOEVER, + * INCLUDING, WITHOUT LIMITATION, ANY DIRECT, CONSEQUENTIAL, SPECIAL, INDIRECT, PUNITIVE, OR INCIDENTAL DAMAGES; ANY + * LOST PROFITS, OTHER ECONOMIC DAMAGE, PROPERTY DAMAGE, OR PERSONAL INJURY; AND EVEN IF RENESAS HAS BEEN ADVISED OF THE + * POSSIBILITY OF SUCH LOSS, DAMAGES, CLAIMS OR COSTS. + **********************************************************************************************************************/ + +/*******************************************************************************************************************//** + * @defgroup BSP_IO BSP I/O access + * @ingroup RENESAS_COMMON + * @brief This module provides basic read/write/toggle access to port pins and read/write access to port. + * + * @{ + **********************************************************************************************************************/ + +#ifndef BSP_IO_H +#define BSP_IO_H + +/*********************************************************************************************************************** + * Includes , "Project Includes" + **********************************************************************************************************************/ + +/* Common macro for FSP header files. There is also a corresponding FSP_FOOTER macro at the end of this file. */ +FSP_HEADER + +/*********************************************************************************************************************** + * Macro definitions + **********************************************************************************************************************/ + +/* Private definition to set enumeration values. */ +#define BSP_IO_PRV_8BIT_MASK (0xFF) +#define BSP_IO_PM_OUTPUT (3U) + +/* Key code for writing PRCR register. */ +#define BSP_IO_PRV_PRCR_KEY (0xA500U) +#define BSP_IO_REG_PROTECT_GPIO (0x0004U) + +/* Difference between safety and non safety I/O port region addresses. */ +#define BSP_IO_REGION_ADDRESS_DIFF (R_PORT_SR_BASE - R_PORT_NSR_BASE) + +/* Shift to get port in bsp_io_port_t and bsp_io_port_pin_t enums. */ +#define BSP_IO_PRV_PORT_OFFSET (8U) + +/*********************************************************************************************************************** + * Typedef definitions + **********************************************************************************************************************/ + +/** Levels that can be set and read for individual pins */ +typedef enum e_bsp_io_level +{ + BSP_IO_LEVEL_LOW = 0, ///< Low + BSP_IO_LEVEL_HIGH ///< High +} bsp_io_level_t; + +/** Direction of individual pins */ +typedef enum e_bsp_io_dir +{ + BSP_IO_DIRECTION_INPUT = 0, ///< Input + BSP_IO_DIRECTION_OUTPUT ///< Output +} bsp_io_direction_t; + +/** Superset list of all possible IO ports. */ +typedef enum e_bsp_io_port +{ + BSP_IO_PORT_00 = 0x0000, ///< IO port 0 + BSP_IO_PORT_01 = 0x0100, ///< IO port 1 + BSP_IO_PORT_02 = 0x0200, ///< IO port 2 + BSP_IO_PORT_03 = 0x0300, ///< IO port 3 + BSP_IO_PORT_04 = 0x0400, ///< IO port 4 + BSP_IO_PORT_05 = 0x0500, ///< IO port 5 + BSP_IO_PORT_06 = 0x0600, ///< IO port 6 + BSP_IO_PORT_07 = 0x0700, ///< IO port 7 + BSP_IO_PORT_08 = 0x0800, ///< IO port 8 + BSP_IO_PORT_09 = 0x0900, ///< IO port 9 + BSP_IO_PORT_10 = 0x0A00, ///< IO port 10 + BSP_IO_PORT_11 = 0x0B00, ///< IO port 11 + BSP_IO_PORT_12 = 0x0C00, ///< IO port 12 + BSP_IO_PORT_13 = 0x0D00, ///< IO port 13 + BSP_IO_PORT_14 = 0x0E00, ///< IO port 14 + BSP_IO_PORT_15 = 0x0F00, ///< IO port 15 + BSP_IO_PORT_16 = 0x1000, ///< IO port 16 + BSP_IO_PORT_17 = 0x1100, ///< IO port 17 + BSP_IO_PORT_18 = 0x1200, ///< IO port 18 + BSP_IO_PORT_19 = 0x1300, ///< IO port 19 + BSP_IO_PORT_20 = 0x1400, ///< IO port 20 + BSP_IO_PORT_21 = 0x1500, ///< IO port 21 + BSP_IO_PORT_22 = 0x1600, ///< IO port 22 + BSP_IO_PORT_23 = 0x1700, ///< IO port 23 + BSP_IO_PORT_24 = 0x1800, ///< IO port 24 +} bsp_io_port_t; + +/** Superset list of all possible IO port pins. */ +typedef enum e_bsp_io_port_pin +{ + BSP_IO_PORT_00_PIN_0 = 0x0000, ///< IO port 0 pin 0 + BSP_IO_PORT_00_PIN_1 = 0x0001, ///< IO port 0 pin 1 + BSP_IO_PORT_00_PIN_2 = 0x0002, ///< IO port 0 pin 2 + BSP_IO_PORT_00_PIN_3 = 0x0003, ///< IO port 0 pin 3 + BSP_IO_PORT_00_PIN_4 = 0x0004, ///< IO port 0 pin 4 + BSP_IO_PORT_00_PIN_5 = 0x0005, ///< IO port 0 pin 5 + BSP_IO_PORT_00_PIN_6 = 0x0006, ///< IO port 0 pin 6 + BSP_IO_PORT_00_PIN_7 = 0x0007, ///< IO port 0 pin 7 + + BSP_IO_PORT_01_PIN_0 = 0x0100, ///< IO port 1 pin 0 + BSP_IO_PORT_01_PIN_1 = 0x0101, ///< IO port 1 pin 1 + BSP_IO_PORT_01_PIN_2 = 0x0102, ///< IO port 1 pin 2 + BSP_IO_PORT_01_PIN_3 = 0x0103, ///< IO port 1 pin 3 + BSP_IO_PORT_01_PIN_4 = 0x0104, ///< IO port 1 pin 4 + BSP_IO_PORT_01_PIN_5 = 0x0105, ///< IO port 1 pin 5 + BSP_IO_PORT_01_PIN_6 = 0x0106, ///< IO port 1 pin 6 + BSP_IO_PORT_01_PIN_7 = 0x0107, ///< IO port 1 pin 7 + + BSP_IO_PORT_02_PIN_0 = 0x0200, ///< IO port 2 pin 0 + BSP_IO_PORT_02_PIN_1 = 0x0201, ///< IO port 2 pin 1 + BSP_IO_PORT_02_PIN_2 = 0x0202, ///< IO port 2 pin 2 + BSP_IO_PORT_02_PIN_3 = 0x0203, ///< IO port 2 pin 3 + BSP_IO_PORT_02_PIN_4 = 0x0204, ///< IO port 2 pin 4 + BSP_IO_PORT_02_PIN_5 = 0x0205, ///< IO port 2 pin 5 + BSP_IO_PORT_02_PIN_6 = 0x0206, ///< IO port 2 pin 6 + BSP_IO_PORT_02_PIN_7 = 0x0207, ///< IO port 2 pin 7 + + BSP_IO_PORT_03_PIN_0 = 0x0300, ///< IO port 3 pin 0 + BSP_IO_PORT_03_PIN_1 = 0x0301, ///< IO port 3 pin 1 + BSP_IO_PORT_03_PIN_2 = 0x0302, ///< IO port 3 pin 2 + BSP_IO_PORT_03_PIN_3 = 0x0303, ///< IO port 3 pin 3 + BSP_IO_PORT_03_PIN_4 = 0x0304, ///< IO port 3 pin 4 + BSP_IO_PORT_03_PIN_5 = 0x0305, ///< IO port 3 pin 5 + BSP_IO_PORT_03_PIN_6 = 0x0306, ///< IO port 3 pin 6 + BSP_IO_PORT_03_PIN_7 = 0x0307, ///< IO port 3 pin 7 + + BSP_IO_PORT_04_PIN_0 = 0x0400, ///< IO port 4 pin 0 + BSP_IO_PORT_04_PIN_1 = 0x0401, ///< IO port 4 pin 1 + BSP_IO_PORT_04_PIN_2 = 0x0402, ///< IO port 4 pin 2 + BSP_IO_PORT_04_PIN_3 = 0x0403, ///< IO port 4 pin 3 + BSP_IO_PORT_04_PIN_4 = 0x0404, ///< IO port 4 pin 4 + BSP_IO_PORT_04_PIN_5 = 0x0405, ///< IO port 4 pin 5 + BSP_IO_PORT_04_PIN_6 = 0x0406, ///< IO port 4 pin 6 + BSP_IO_PORT_04_PIN_7 = 0x0407, ///< IO port 4 pin 7 + + BSP_IO_PORT_05_PIN_0 = 0x0500, ///< IO port 5 pin 0 + BSP_IO_PORT_05_PIN_1 = 0x0501, ///< IO port 5 pin 1 + BSP_IO_PORT_05_PIN_2 = 0x0502, ///< IO port 5 pin 2 + BSP_IO_PORT_05_PIN_3 = 0x0503, ///< IO port 5 pin 3 + BSP_IO_PORT_05_PIN_4 = 0x0504, ///< IO port 5 pin 4 + BSP_IO_PORT_05_PIN_5 = 0x0505, ///< IO port 5 pin 5 + BSP_IO_PORT_05_PIN_6 = 0x0506, ///< IO port 5 pin 6 + BSP_IO_PORT_05_PIN_7 = 0x0507, ///< IO port 5 pin 7 + + BSP_IO_PORT_06_PIN_0 = 0x0600, ///< IO port 6 pin 0 + BSP_IO_PORT_06_PIN_1 = 0x0601, ///< IO port 6 pin 1 + BSP_IO_PORT_06_PIN_2 = 0x0602, ///< IO port 6 pin 2 + BSP_IO_PORT_06_PIN_3 = 0x0603, ///< IO port 6 pin 3 + BSP_IO_PORT_06_PIN_4 = 0x0604, ///< IO port 6 pin 4 + BSP_IO_PORT_06_PIN_5 = 0x0605, ///< IO port 6 pin 5 + BSP_IO_PORT_06_PIN_6 = 0x0606, ///< IO port 6 pin 6 + BSP_IO_PORT_06_PIN_7 = 0x0607, ///< IO port 6 pin 7 + + BSP_IO_PORT_07_PIN_0 = 0x0700, ///< IO port 7 pin 0 + BSP_IO_PORT_07_PIN_1 = 0x0701, ///< IO port 7 pin 1 + BSP_IO_PORT_07_PIN_2 = 0x0702, ///< IO port 7 pin 2 + BSP_IO_PORT_07_PIN_3 = 0x0703, ///< IO port 7 pin 3 + BSP_IO_PORT_07_PIN_4 = 0x0704, ///< IO port 7 pin 4 + BSP_IO_PORT_07_PIN_5 = 0x0705, ///< IO port 7 pin 5 + BSP_IO_PORT_07_PIN_6 = 0x0706, ///< IO port 7 pin 6 + BSP_IO_PORT_07_PIN_7 = 0x0707, ///< IO port 7 pin 7 + + BSP_IO_PORT_08_PIN_0 = 0x0800, ///< IO port 8 pin 0 + BSP_IO_PORT_08_PIN_1 = 0x0801, ///< IO port 8 pin 1 + BSP_IO_PORT_08_PIN_2 = 0x0802, ///< IO port 8 pin 2 + BSP_IO_PORT_08_PIN_3 = 0x0803, ///< IO port 8 pin 3 + BSP_IO_PORT_08_PIN_4 = 0x0804, ///< IO port 8 pin 4 + BSP_IO_PORT_08_PIN_5 = 0x0805, ///< IO port 8 pin 5 + BSP_IO_PORT_08_PIN_6 = 0x0806, ///< IO port 8 pin 6 + BSP_IO_PORT_08_PIN_7 = 0x0807, ///< IO port 8 pin 7 + + BSP_IO_PORT_09_PIN_0 = 0x0900, ///< IO port 9 pin 0 + BSP_IO_PORT_09_PIN_1 = 0x0901, ///< IO port 9 pin 1 + BSP_IO_PORT_09_PIN_2 = 0x0902, ///< IO port 9 pin 2 + BSP_IO_PORT_09_PIN_3 = 0x0903, ///< IO port 9 pin 3 + BSP_IO_PORT_09_PIN_4 = 0x0904, ///< IO port 9 pin 4 + BSP_IO_PORT_09_PIN_5 = 0x0905, ///< IO port 9 pin 5 + BSP_IO_PORT_09_PIN_6 = 0x0906, ///< IO port 9 pin 6 + BSP_IO_PORT_09_PIN_7 = 0x0907, ///< IO port 9 pin 7 + + BSP_IO_PORT_10_PIN_0 = 0x0A00, ///< IO port 10 pin 0 + BSP_IO_PORT_10_PIN_1 = 0x0A01, ///< IO port 10 pin 1 + BSP_IO_PORT_10_PIN_2 = 0x0A02, ///< IO port 10 pin 2 + BSP_IO_PORT_10_PIN_3 = 0x0A03, ///< IO port 10 pin 3 + BSP_IO_PORT_10_PIN_4 = 0x0A04, ///< IO port 10 pin 4 + BSP_IO_PORT_10_PIN_5 = 0x0A05, ///< IO port 10 pin 5 + BSP_IO_PORT_10_PIN_6 = 0x0A06, ///< IO port 10 pin 6 + BSP_IO_PORT_10_PIN_7 = 0x0A07, ///< IO port 10 pin 7 + + BSP_IO_PORT_11_PIN_0 = 0x0B00, ///< IO port 11 pin 0 + BSP_IO_PORT_11_PIN_1 = 0x0B01, ///< IO port 11 pin 1 + BSP_IO_PORT_11_PIN_2 = 0x0B02, ///< IO port 11 pin 2 + BSP_IO_PORT_11_PIN_3 = 0x0B03, ///< IO port 11 pin 3 + BSP_IO_PORT_11_PIN_4 = 0x0B04, ///< IO port 11 pin 4 + BSP_IO_PORT_11_PIN_5 = 0x0B05, ///< IO port 11 pin 5 + BSP_IO_PORT_11_PIN_6 = 0x0B06, ///< IO port 11 pin 6 + BSP_IO_PORT_11_PIN_7 = 0x0B07, ///< IO port 11 pin 7 + + BSP_IO_PORT_12_PIN_0 = 0x0C00, ///< IO port 12 pin 0 + BSP_IO_PORT_12_PIN_1 = 0x0C01, ///< IO port 12 pin 1 + BSP_IO_PORT_12_PIN_2 = 0x0C02, ///< IO port 12 pin 2 + BSP_IO_PORT_12_PIN_3 = 0x0C03, ///< IO port 12 pin 3 + BSP_IO_PORT_12_PIN_4 = 0x0C04, ///< IO port 12 pin 4 + BSP_IO_PORT_12_PIN_5 = 0x0C05, ///< IO port 12 pin 5 + BSP_IO_PORT_12_PIN_6 = 0x0C06, ///< IO port 12 pin 6 + BSP_IO_PORT_12_PIN_7 = 0x0C07, ///< IO port 12 pin 7 + + BSP_IO_PORT_13_PIN_0 = 0x0D00, ///< IO port 13 pin 0 + BSP_IO_PORT_13_PIN_1 = 0x0D01, ///< IO port 13 pin 1 + BSP_IO_PORT_13_PIN_2 = 0x0D02, ///< IO port 13 pin 2 + BSP_IO_PORT_13_PIN_3 = 0x0D03, ///< IO port 13 pin 3 + BSP_IO_PORT_13_PIN_4 = 0x0D04, ///< IO port 13 pin 4 + BSP_IO_PORT_13_PIN_5 = 0x0D05, ///< IO port 13 pin 5 + BSP_IO_PORT_13_PIN_6 = 0x0D06, ///< IO port 13 pin 6 + BSP_IO_PORT_13_PIN_7 = 0x0D07, ///< IO port 13 pin 7 + + BSP_IO_PORT_14_PIN_0 = 0x0E00, ///< IO port 14 pin 0 + BSP_IO_PORT_14_PIN_1 = 0x0E01, ///< IO port 14 pin 1 + BSP_IO_PORT_14_PIN_2 = 0x0E02, ///< IO port 14 pin 2 + BSP_IO_PORT_14_PIN_3 = 0x0E03, ///< IO port 14 pin 3 + BSP_IO_PORT_14_PIN_4 = 0x0E04, ///< IO port 14 pin 4 + BSP_IO_PORT_14_PIN_5 = 0x0E05, ///< IO port 14 pin 5 + BSP_IO_PORT_14_PIN_6 = 0x0E06, ///< IO port 14 pin 6 + BSP_IO_PORT_14_PIN_7 = 0x0E07, ///< IO port 14 pin 7 + + BSP_IO_PORT_15_PIN_0 = 0x0F00, ///< IO port 15 pin 0 + BSP_IO_PORT_15_PIN_1 = 0x0F01, ///< IO port 15 pin 1 + BSP_IO_PORT_15_PIN_2 = 0x0F02, ///< IO port 15 pin 2 + BSP_IO_PORT_15_PIN_3 = 0x0F03, ///< IO port 15 pin 3 + BSP_IO_PORT_15_PIN_4 = 0x0F04, ///< IO port 15 pin 4 + BSP_IO_PORT_15_PIN_5 = 0x0F05, ///< IO port 15 pin 5 + BSP_IO_PORT_15_PIN_6 = 0x0F06, ///< IO port 15 pin 6 + BSP_IO_PORT_15_PIN_7 = 0x0F07, ///< IO port 15 pin 7 + + BSP_IO_PORT_16_PIN_0 = 0x1000, ///< IO port 16 pin 0 + BSP_IO_PORT_16_PIN_1 = 0x1001, ///< IO port 16 pin 1 + BSP_IO_PORT_16_PIN_2 = 0x1002, ///< IO port 16 pin 2 + BSP_IO_PORT_16_PIN_3 = 0x1003, ///< IO port 16 pin 3 + BSP_IO_PORT_16_PIN_4 = 0x1004, ///< IO port 16 pin 4 + BSP_IO_PORT_16_PIN_5 = 0x1005, ///< IO port 16 pin 5 + BSP_IO_PORT_16_PIN_6 = 0x1006, ///< IO port 16 pin 6 + BSP_IO_PORT_16_PIN_7 = 0x1007, ///< IO port 16 pin 7 + + BSP_IO_PORT_17_PIN_0 = 0x1100, ///< IO port 17 pin 0 + BSP_IO_PORT_17_PIN_1 = 0x1101, ///< IO port 17 pin 1 + BSP_IO_PORT_17_PIN_2 = 0x1102, ///< IO port 17 pin 2 + BSP_IO_PORT_17_PIN_3 = 0x1103, ///< IO port 17 pin 3 + BSP_IO_PORT_17_PIN_4 = 0x1104, ///< IO port 17 pin 4 + BSP_IO_PORT_17_PIN_5 = 0x1105, ///< IO port 17 pin 5 + BSP_IO_PORT_17_PIN_6 = 0x1106, ///< IO port 17 pin 6 + BSP_IO_PORT_17_PIN_7 = 0x1107, ///< IO port 17 pin 7 + + BSP_IO_PORT_18_PIN_0 = 0x1200, ///< IO port 18 pin 0 + BSP_IO_PORT_18_PIN_1 = 0x1201, ///< IO port 18 pin 1 + BSP_IO_PORT_18_PIN_2 = 0x1202, ///< IO port 18 pin 2 + BSP_IO_PORT_18_PIN_3 = 0x1203, ///< IO port 18 pin 3 + BSP_IO_PORT_18_PIN_4 = 0x1204, ///< IO port 18 pin 4 + BSP_IO_PORT_18_PIN_5 = 0x1205, ///< IO port 18 pin 5 + BSP_IO_PORT_18_PIN_6 = 0x1206, ///< IO port 18 pin 6 + BSP_IO_PORT_18_PIN_7 = 0x1207, ///< IO port 18 pin 7 + + BSP_IO_PORT_19_PIN_0 = 0x1300, ///< IO port 19 pin 0 + BSP_IO_PORT_19_PIN_1 = 0x1301, ///< IO port 19 pin 1 + BSP_IO_PORT_19_PIN_2 = 0x1302, ///< IO port 19 pin 2 + BSP_IO_PORT_19_PIN_3 = 0x1303, ///< IO port 19 pin 3 + BSP_IO_PORT_19_PIN_4 = 0x1304, ///< IO port 19 pin 4 + BSP_IO_PORT_19_PIN_5 = 0x1305, ///< IO port 19 pin 5 + BSP_IO_PORT_19_PIN_6 = 0x1306, ///< IO port 19 pin 6 + BSP_IO_PORT_19_PIN_7 = 0x1307, ///< IO port 19 pin 7 + + BSP_IO_PORT_20_PIN_0 = 0x1400, ///< IO port 20 pin 0 + BSP_IO_PORT_20_PIN_1 = 0x1401, ///< IO port 20 pin 1 + BSP_IO_PORT_20_PIN_2 = 0x1402, ///< IO port 20 pin 2 + BSP_IO_PORT_20_PIN_3 = 0x1403, ///< IO port 20 pin 3 + BSP_IO_PORT_20_PIN_4 = 0x1404, ///< IO port 20 pin 4 + BSP_IO_PORT_20_PIN_5 = 0x1405, ///< IO port 20 pin 5 + BSP_IO_PORT_20_PIN_6 = 0x1406, ///< IO port 20 pin 6 + BSP_IO_PORT_20_PIN_7 = 0x1407, ///< IO port 20 pin 7 + + BSP_IO_PORT_21_PIN_0 = 0x1500, ///< IO port 21 pin 0 + BSP_IO_PORT_21_PIN_1 = 0x1501, ///< IO port 21 pin 1 + BSP_IO_PORT_21_PIN_2 = 0x1502, ///< IO port 21 pin 2 + BSP_IO_PORT_21_PIN_3 = 0x1503, ///< IO port 21 pin 3 + BSP_IO_PORT_21_PIN_4 = 0x1504, ///< IO port 21 pin 4 + BSP_IO_PORT_21_PIN_5 = 0x1505, ///< IO port 21 pin 5 + BSP_IO_PORT_21_PIN_6 = 0x1506, ///< IO port 21 pin 6 + BSP_IO_PORT_21_PIN_7 = 0x1507, ///< IO port 21 pin 7 + + BSP_IO_PORT_22_PIN_0 = 0x1600, ///< IO port 22 pin 0 + BSP_IO_PORT_22_PIN_1 = 0x1601, ///< IO port 22 pin 1 + BSP_IO_PORT_22_PIN_2 = 0x1602, ///< IO port 22 pin 2 + BSP_IO_PORT_22_PIN_3 = 0x1603, ///< IO port 22 pin 3 + BSP_IO_PORT_22_PIN_4 = 0x1604, ///< IO port 22 pin 4 + BSP_IO_PORT_22_PIN_5 = 0x1605, ///< IO port 22 pin 5 + BSP_IO_PORT_22_PIN_6 = 0x1606, ///< IO port 22 pin 6 + BSP_IO_PORT_22_PIN_7 = 0x1607, ///< IO port 22 pin 7 + + BSP_IO_PORT_23_PIN_0 = 0x1700, ///< IO port 23 pin 0 + BSP_IO_PORT_23_PIN_1 = 0x1701, ///< IO port 23 pin 1 + BSP_IO_PORT_23_PIN_2 = 0x1702, ///< IO port 23 pin 2 + BSP_IO_PORT_23_PIN_3 = 0x1703, ///< IO port 23 pin 3 + BSP_IO_PORT_23_PIN_4 = 0x1704, ///< IO port 23 pin 4 + BSP_IO_PORT_23_PIN_5 = 0x1705, ///< IO port 23 pin 5 + BSP_IO_PORT_23_PIN_6 = 0x1706, ///< IO port 23 pin 6 + BSP_IO_PORT_23_PIN_7 = 0x1707, ///< IO port 23 pin 7 + + BSP_IO_PORT_24_PIN_0 = 0x1800, ///< IO port 24 pin 0 + BSP_IO_PORT_24_PIN_1 = 0x1801, ///< IO port 24 pin 1 + BSP_IO_PORT_24_PIN_2 = 0x1802, ///< IO port 24 pin 2 + BSP_IO_PORT_24_PIN_3 = 0x1803, ///< IO port 24 pin 3 + BSP_IO_PORT_24_PIN_4 = 0x1804, ///< IO port 24 pin 4 + BSP_IO_PORT_24_PIN_5 = 0x1805, ///< IO port 24 pin 5 + BSP_IO_PORT_24_PIN_6 = 0x1806, ///< IO port 24 pin 6 + BSP_IO_PORT_24_PIN_7 = 0x1807, ///< IO port 24 pin 7 +} bsp_io_port_pin_t; + +/** Offset for pin safety region access */ +typedef enum e_bsp_io_region +{ + BSP_IO_REGION_NOT_SAFE = 0, ///< Non safety region + BSP_IO_REGION_SAFE = BSP_IO_REGION_ADDRESS_DIFF, ///< Safety region +} bsp_io_region_t; + +/*********************************************************************************************************************** + * Exported global variables + **********************************************************************************************************************/ +extern volatile uint32_t g_protect_port_counter; + +/*********************************************************************************************************************** + * Exported global functions (to be accessed by other files) + **********************************************************************************************************************/ + +/*********************************************************************************************************************** + * Inline Functions + **********************************************************************************************************************/ + +/*******************************************************************************************************************//** + * Set the output level of the pin in the specified region. + * + * @param[in] region The target IO region + * @param[in] pin The pin + **********************************************************************************************************************/ +__STATIC_INLINE void R_BSP_PinSet (bsp_io_region_t region, bsp_io_port_pin_t pin) +{ + /* Casting to a uint8_t type is valid because only the lower 8 bits of pin(uint16_t) are extracted by masking on + * the right side. */ + ((R_PORT_COMMON_Type *) (R_PORT_NSR_BASE + region))->P[pin >> + BSP_IO_PRV_PORT_OFFSET] |= + (uint8_t) (1UL << (pin & BSP_IO_PRV_8BIT_MASK)); +} + +/*******************************************************************************************************************//** + * Clear the output level of the pin in the specified region. + * + * @param[in] region The target IO region + * @param[in] pin The pin + **********************************************************************************************************************/ +__STATIC_INLINE void R_BSP_PinClear (bsp_io_region_t region, bsp_io_port_pin_t pin) +{ + /* Casting to a uint8_t type is valid because only the lower 8 bits of pin(uint16_t) are extracted by masking on + * the right side. */ + ((R_PORT_COMMON_Type *) (R_PORT_NSR_BASE + region))->P[pin >> BSP_IO_PRV_PORT_OFFSET] &= + (uint8_t) (~(1UL << (pin & BSP_IO_PRV_8BIT_MASK))); +} + +/*******************************************************************************************************************//** + * Toggle the output level of the pin in the specified region. + * + * @param[in] region The target IO region + * @param[in] pin The pin + **********************************************************************************************************************/ +__STATIC_INLINE void R_BSP_PinToggle (bsp_io_region_t region, bsp_io_port_pin_t pin) +{ + /* Casting to a uint8_t type is valid because only the lower 8 bits of pin(uint16_t) are extracted by masking on + * the right side. */ + ((R_PORT_COMMON_Type *) (R_PORT_NSR_BASE + region))->P[pin >> + BSP_IO_PRV_PORT_OFFSET] ^= + (uint8_t) (1UL << (pin & BSP_IO_PRV_8BIT_MASK)); +} + +/*******************************************************************************************************************//** + * Read the input level of the pin in the specified region. + * + * @param[in] region The target IO region + * @param[in] pin The pin + * + * @retval Current input level + **********************************************************************************************************************/ +__STATIC_INLINE uint32_t R_BSP_FastPinRead (bsp_io_region_t region, bsp_io_port_pin_t pin) +{ + return (uint32_t) ((((R_PORT_COMMON_Type *) (R_PORT_NSR_BASE + region))->PIN[pin >> BSP_IO_PRV_PORT_OFFSET]) >> + (pin & BSP_IO_PRV_8BIT_MASK)) & 0x00000001UL; +} + +/*******************************************************************************************************************//** + * Set the output value of the port in the specified region. All pins in the port must be set to the same IO region to + * use this function. + * + * @param[in] region The target IO region + * @param[in] port The port + * @param[in] set_value The setting value + **********************************************************************************************************************/ +__STATIC_INLINE void R_BSP_PortWrite (bsp_io_region_t region, bsp_io_port_t port, uint8_t set_value) +{ + ((R_PORT_COMMON_Type *) (R_PORT_NSR_BASE + region))->P[port >> BSP_IO_PRV_PORT_OFFSET] = set_value; +} + +/*******************************************************************************************************************//** + * Read the input value of the port in the specified region. All pins in the port must be set to the same IO region to + * use this function. + * + * @param[in] region The target IO region + * @param[in] port The port + * + * @retval Current input value + **********************************************************************************************************************/ +__STATIC_INLINE uint32_t R_BSP_PortRead (bsp_io_region_t region, bsp_io_port_t port) +{ + return (uint32_t) (((R_PORT_COMMON_Type *) (R_PORT_NSR_BASE + region))->PIN[port >> BSP_IO_PRV_PORT_OFFSET]); +} + +/*******************************************************************************************************************//** + * Enable access to the PFS registers. Uses a reference counter to protect against interrupts that could occur + * via multiple threads or an ISR re-entering this code. + **********************************************************************************************************************/ +__STATIC_INLINE void R_BSP_PinAccessEnable (void) +{ +#if BSP_CFG_PORT_PROTECT + + /** Get the current state of interrupts */ + FSP_CRITICAL_SECTION_DEFINE; + FSP_CRITICAL_SECTION_ENTER; + + /** If this is first entry then allow writing of PFS. */ + if (0 == g_protect_port_counter) + { + /** Disable protection using PRCR register. */ + + /** When writing to the PRCR register the upper 8-bits must be the correct key. Set lower bits to 0 to + * disable writes. */ + R_RWP_NS->PRCRN = ((R_RWP_NS->PRCRN | BSP_IO_PRV_PRCR_KEY) | BSP_IO_REG_PROTECT_GPIO); + R_RWP_S->PRCRS = ((R_RWP_S->PRCRS | BSP_IO_PRV_PRCR_KEY) | BSP_IO_REG_PROTECT_GPIO); + } + + /** Increment the protect counter */ + g_protect_port_counter++; + + /** Restore the interrupt state */ + FSP_CRITICAL_SECTION_EXIT; +#endif +} + +/*******************************************************************************************************************//** + * Disable access to the PFS registers. Uses a reference counter to protect against interrupts that could occur via + * multiple threads or an ISR re-entering this code. + **********************************************************************************************************************/ +__STATIC_INLINE void R_BSP_PinAccessDisable (void) +{ +#if BSP_CFG_PORT_PROTECT + + /** Get the current state of interrupts */ + FSP_CRITICAL_SECTION_DEFINE; + FSP_CRITICAL_SECTION_ENTER; + + /** Is it safe to disable PFS register? */ + if (0 != g_protect_port_counter) + { + /* Decrement the protect counter */ + g_protect_port_counter--; + } + + /** Is it safe to disable writing of PFS? */ + if (0 == g_protect_port_counter) + { + /** Enable protection using PRCR register. */ + + /** When writing to the PRCR register the upper 8-bits must be the correct key. Set lower bits to 0 to + * disable writes. */ + R_RWP_NS->PRCRN = ((R_RWP_NS->PRCRN | BSP_IO_PRV_PRCR_KEY) & (uint16_t) (~BSP_IO_REG_PROTECT_GPIO)); + R_RWP_S->PRCRS = ((R_RWP_S->PRCRS | BSP_IO_PRV_PRCR_KEY) & (uint16_t) (~BSP_IO_REG_PROTECT_GPIO)); + } + + /** Restore the interrupt state */ + FSP_CRITICAL_SECTION_EXIT; +#endif +} + +/*******************************************************************************************************************//** + * Read IO region of the pin. + * + * @param[in] pin The pin + * + * @retval BSP_IO_REGION_SAFE IO region of the pin is safety + * @retval BSP_IO_REGION_NOT_SAFE IO region of the pin is non-safety + * + * This function can be given as an argument to pin/port access functions described below. When used in a function + * starting with R_BSP_Port, any one pin in the port should be given as an argument to this function. + * R_BSP_PinSet(), R_BSP_PinClear(), R_BSP_PinToggle(), R_BSP_FastPinRead(), R_BSP_PortWrite(), R_BSP_PortRead() + * + * @note This function can be used to get the region of a specified pin, but the overhead should be considered if this + * function is executed each time the pin is accessed. When accessing the same pin repeatedly, it is recommended + * that the value obtained by this function be held in a variable beforehand, and the value of the variable be + * used as the region argument of the pin access function. + **********************************************************************************************************************/ +__STATIC_INLINE bsp_io_region_t R_BSP_IoRegionGet (bsp_io_port_pin_t pin) +{ + /* Casting to a uint32_t type is valid because the range of values represented by uint32_t is not over in the + * calculation process of the right-hand side. */ + uint32_t aselp = + ((uint32_t) ((R_PTADR->RSELP[pin >> BSP_IO_PRV_PORT_OFFSET]) >> (pin & BSP_IO_PRV_8BIT_MASK)) & 0x00000001UL); + + if (0U == aselp) + { + return BSP_IO_REGION_SAFE; + } + else + { + return BSP_IO_REGION_NOT_SAFE; + } +} + +/** @} (end addtogroup BSP_IO) */ + +/* Common macro for FSP header files. There is also a corresponding FSP_HEADER macro at the top of this file. */ +FSP_FOOTER + +#endif diff --git a/bsp/renesas/rzn2l_rsk/rzn/fsp/src/bsp/mcu/all/bsp_irq.c b/bsp/renesas/rzn2l_rsk/rzn/fsp/src/bsp/mcu/all/bsp_irq.c new file mode 100644 index 0000000000..3fe92cc3e2 --- /dev/null +++ b/bsp/renesas/rzn2l_rsk/rzn/fsp/src/bsp/mcu/all/bsp_irq.c @@ -0,0 +1,50 @@ +/*********************************************************************************************************************** + * Copyright [2020-2024] Renesas Electronics Corporation and/or its affiliates. All Rights Reserved. + * + * This software and documentation are supplied by Renesas Electronics Corporation and/or its affiliates and may only + * be used with products of Renesas Electronics Corp. and its affiliates ("Renesas"). No other uses are authorized. + * Renesas products are sold pursuant to Renesas terms and conditions of sale. Purchasers are solely responsible for + * the selection and use of Renesas products and Renesas assumes no liability. No license, express or implied, to any + * intellectual property right is granted by Renesas. This software is protected under all applicable laws, including + * copyright laws. Renesas reserves the right to change or discontinue this software and/or this documentation. + * THE SOFTWARE AND DOCUMENTATION IS DELIVERED TO YOU "AS IS," AND RENESAS MAKES NO REPRESENTATIONS OR WARRANTIES, AND + * TO THE FULLEST EXTENT PERMISSIBLE UNDER APPLICABLE LAW, DISCLAIMS ALL WARRANTIES, WHETHER EXPLICITLY OR IMPLICITLY, + * INCLUDING WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE, AND NONINFRINGEMENT, WITH RESPECT TO THE + * SOFTWARE OR DOCUMENTATION. RENESAS SHALL HAVE NO LIABILITY ARISING OUT OF ANY SECURITY VULNERABILITY OR BREACH. + * TO THE MAXIMUM EXTENT PERMITTED BY LAW, IN NO EVENT WILL RENESAS BE LIABLE TO YOU IN CONNECTION WITH THE SOFTWARE OR + * DOCUMENTATION (OR ANY PERSON OR ENTITY CLAIMING RIGHTS DERIVED FROM YOU) FOR ANY LOSS, DAMAGES, OR CLAIMS WHATSOEVER, + * INCLUDING, WITHOUT LIMITATION, ANY DIRECT, CONSEQUENTIAL, SPECIAL, INDIRECT, PUNITIVE, OR INCIDENTAL DAMAGES; ANY + * LOST PROFITS, OTHER ECONOMIC DAMAGE, PROPERTY DAMAGE, OR PERSONAL INJURY; AND EVEN IF RENESAS HAS BEEN ADVISED OF THE + * POSSIBILITY OF SUCH LOSS, DAMAGES, CLAIMS OR COSTS. + **********************************************************************************************************************/ + +/*********************************************************************************************************************** + * Includes , "Project Includes" + **********************************************************************************************************************/ +#include "bsp_api.h" + +/*********************************************************************************************************************** + * Macro definitions + **********************************************************************************************************************/ + +/*********************************************************************************************************************** + * Typedef definitions + **********************************************************************************************************************/ + +/*********************************************************************************************************************** + * Exported global variables (to be accessed by other files) + **********************************************************************************************************************/ + +/*********************************************************************************************************************** + * Private global variables and functions + **********************************************************************************************************************/ + +/*******************************************************************************************************************//** + * Initialize interrupt controller. + * + * @retval None + **********************************************************************************************************************/ +void bsp_irq_cfg (void) +{ + bsp_irq_core_cfg(); +} diff --git a/bsp/renesas/rzn2l_rsk/rzn/fsp/src/bsp/mcu/all/bsp_irq.h b/bsp/renesas/rzn2l_rsk/rzn/fsp/src/bsp/mcu/all/bsp_irq.h new file mode 100644 index 0000000000..f8fa8e2d02 --- /dev/null +++ b/bsp/renesas/rzn2l_rsk/rzn/fsp/src/bsp/mcu/all/bsp_irq.h @@ -0,0 +1,236 @@ +/*********************************************************************************************************************** + * Copyright [2020-2024] Renesas Electronics Corporation and/or its affiliates. All Rights Reserved. + * + * This software and documentation are supplied by Renesas Electronics Corporation and/or its affiliates and may only + * be used with products of Renesas Electronics Corp. and its affiliates ("Renesas"). No other uses are authorized. + * Renesas products are sold pursuant to Renesas terms and conditions of sale. Purchasers are solely responsible for + * the selection and use of Renesas products and Renesas assumes no liability. No license, express or implied, to any + * intellectual property right is granted by Renesas. This software is protected under all applicable laws, including + * copyright laws. Renesas reserves the right to change or discontinue this software and/or this documentation. + * THE SOFTWARE AND DOCUMENTATION IS DELIVERED TO YOU "AS IS," AND RENESAS MAKES NO REPRESENTATIONS OR WARRANTIES, AND + * TO THE FULLEST EXTENT PERMISSIBLE UNDER APPLICABLE LAW, DISCLAIMS ALL WARRANTIES, WHETHER EXPLICITLY OR IMPLICITLY, + * INCLUDING WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE, AND NONINFRINGEMENT, WITH RESPECT TO THE + * SOFTWARE OR DOCUMENTATION. RENESAS SHALL HAVE NO LIABILITY ARISING OUT OF ANY SECURITY VULNERABILITY OR BREACH. + * TO THE MAXIMUM EXTENT PERMITTED BY LAW, IN NO EVENT WILL RENESAS BE LIABLE TO YOU IN CONNECTION WITH THE SOFTWARE OR + * DOCUMENTATION (OR ANY PERSON OR ENTITY CLAIMING RIGHTS DERIVED FROM YOU) FOR ANY LOSS, DAMAGES, OR CLAIMS WHATSOEVER, + * INCLUDING, WITHOUT LIMITATION, ANY DIRECT, CONSEQUENTIAL, SPECIAL, INDIRECT, PUNITIVE, OR INCIDENTAL DAMAGES; ANY + * LOST PROFITS, OTHER ECONOMIC DAMAGE, PROPERTY DAMAGE, OR PERSONAL INJURY; AND EVEN IF RENESAS HAS BEEN ADVISED OF THE + * POSSIBILITY OF SUCH LOSS, DAMAGES, CLAIMS OR COSTS. + **********************************************************************************************************************/ + +#ifndef BSP_IRQ_H +#define BSP_IRQ_H + +/*********************************************************************************************************************** + * Includes , "Project Includes" + **********************************************************************************************************************/ +#if defined(BSP_CFG_CORE_CR52) + #include "cr/bsp_irq_core.h" +#endif + +/** Common macro for FSP header files. There is also a corresponding FSP_FOOTER macro at the end of this file. */ +FSP_HEADER + +/*********************************************************************************************************************** + * Macro definitions + **********************************************************************************************************************/ + +/*********************************************************************************************************************** + * Typedef definitions + **********************************************************************************************************************/ + +/*********************************************************************************************************************** + * Exported global variables + **********************************************************************************************************************/ + +/*********************************************************************************************************************** + * Exported global functions (to be accessed by other files) + **********************************************************************************************************************/ + +/*********************************************************************************************************************** + * Inline Functions + **********************************************************************************************************************/ + +/*******************************************************************************************************************//** + * @addtogroup BSP_MCU + * @{ + **********************************************************************************************************************/ + +/*******************************************************************************************************************//** + * @brief Sets the ISR context associated with the requested IRQ. + * + * @param[in] irq IRQ number (parameter checking must ensure the IRQ number is valid before calling this + * function. + * @param[in] p_context ISR context for IRQ. + **********************************************************************************************************************/ +__STATIC_INLINE void R_FSP_IsrContextSet (IRQn_Type const irq, void * p_context) +{ + /* This provides access to the ISR context array defined in bsp_irq.c. This is an inline function instead of + * being part of bsp_irq.c for performance considerations because it is used in interrupt service routines. */ + r_fsp_irq_context_set(irq, p_context); +} + +/*******************************************************************************************************************//** + * Clear the GIC pending interrupt. + * + * @param[in] irq Interrupt for which to clear the Pending bit. Note that the enums listed for IRQn_Type are + * only those for the Cortex Processor Exceptions Numbers. + **********************************************************************************************************************/ +__STATIC_INLINE void R_BSP_IrqClearPending (IRQn_Type irq) +{ + r_bsp_irq_clear_pending(irq); +} + +/*******************************************************************************************************************//** + * Get the GIC pending interrupt. + * + * @param[in] irq Interrupt that gets a pending bit.. Note that the enums listed for IRQn_Type are + * only those for the Cortex Processor Exceptions Numbers. + * + * @return Value indicating the status of the level interrupt. + **********************************************************************************************************************/ +__STATIC_INLINE uint32_t R_BSP_IrqPendingGet (IRQn_Type irq) +{ + return r_bsp_irq_pending_get(irq); +} + +/*******************************************************************************************************************//** + * Sets the interrupt priority and context. + * + * @param[in] irq The IRQ number to configure. + * @param[in] priority GIC priority of the interrupt + * @param[in] p_context The interrupt context is a pointer to data required in the ISR. + **********************************************************************************************************************/ +__STATIC_INLINE void R_BSP_IrqCfg (IRQn_Type const irq, uint32_t priority, void * p_context) +{ + r_bsp_irq_cfg(irq, priority); + + /* Store the context. The context is recovered in the ISR. */ + R_FSP_IsrContextSet(irq, p_context); +} + +/*******************************************************************************************************************//** + * Enable the IRQ in the GIC (Without clearing the pending bit). + * + * @param[in] irq The IRQ number to enable. Note that the enums listed for IRQn_Type are only those for the + * Cortex Processor Exceptions Numbers. + **********************************************************************************************************************/ +__STATIC_INLINE void R_BSP_IrqEnableNoClear (IRQn_Type const irq) +{ + r_bsp_irq_enable_no_clear(irq); +} + +/*******************************************************************************************************************//** + * Enable the IRQ in the GIC (With clearing the pending bit). + * + * @param[in] irq The IRQ number to enable. Note that the enums listed for IRQn_Type are only those for the + * Cortex Processor Exceptions Numbers. + **********************************************************************************************************************/ +__STATIC_INLINE void R_BSP_IrqEnable (IRQn_Type const irq) +{ + /* Clear pending interrupts in the GIC. */ + R_BSP_IrqClearPending(irq); + + /* Enable the interrupt in the GIC. */ + R_BSP_IrqEnableNoClear(irq); +} + +/*******************************************************************************************************************//** + * Disables interrupts in the GIC. + * + * @param[in] irq The IRQ number to disable in the GIC. Note that the enums listed for IRQn_Type are + * only those for the Cortex Processor Exceptions Numbers. + **********************************************************************************************************************/ +__STATIC_INLINE void R_BSP_IrqDisable (IRQn_Type const irq) +{ + r_bsp_irq_disable(irq); +} + +/*******************************************************************************************************************//** + * Sets the interrupt priority and context, clears pending interrupts, then enables the interrupt. + * + * @param[in] irq Interrupt number. + * @param[in] priority GIC priority of the interrupt + * @param[in] p_context The interrupt context is a pointer to data required in the ISR. + **********************************************************************************************************************/ +__STATIC_INLINE void R_BSP_IrqCfgEnable (IRQn_Type const irq, uint32_t priority, void * p_context) +{ + R_BSP_IrqCfg(irq, priority, p_context); + R_BSP_IrqEnable(irq); +} + +/*******************************************************************************************************************//** + * @brief Finds the ISR context associated with the requested IRQ. + * + * @param[in] irq IRQ number (parameter checking must ensure the IRQ number is valid before calling this + * function. + * @return ISR context for IRQ. + **********************************************************************************************************************/ +__STATIC_INLINE void * R_FSP_IsrContextGet (IRQn_Type const irq) +{ + /* This provides access to the ISR context array defined in bsp_irq.c. This is an inline function instead of + * being part of bsp_irq.c for performance considerations because it is used in interrupt service routines. */ + return gp_renesas_isr_context[irq + BSP_VECTOR_NUM_OFFSET]; +} + +/*******************************************************************************************************************//** + * Sets the interrupt detect type. + * + * @param[in] irq The IRQ number to configure. + * @param[in] detect_type GIC detect type of the interrupt (0 : active-HIGH level, 1 : rising edge-triggerd). + **********************************************************************************************************************/ +__STATIC_INLINE void R_BSP_IrqDetectTypeSet (IRQn_Type const irq, uint32_t detect_type) +{ + r_bsp_irq_detect_type_set(irq, detect_type); +} + +/*******************************************************************************************************************//** + * Sets the interrupt Group. + * + * @param[in] irq The IRQ number to configure. + * @param[in] interrupt_group GIC interrupt group number ( 0 : FIQ, 1 : IRQ ). + **********************************************************************************************************************/ +__STATIC_INLINE void R_BSP_IrqGroupSet (IRQn_Type const irq, uint32_t interrupt_group) +{ + r_bsp_irq_group_set(irq, interrupt_group); +} + +/*******************************************************************************************************************//** + * Sets the interrupt mask level. + * + * @param[in] mask_level The interrupt mask level + **********************************************************************************************************************/ +__STATIC_INLINE void R_BSP_IrqMaskLevelSet (uint32_t mask_level) +{ + FSP_CRITICAL_SECTION_SET_STATE(mask_level << BSP_FEATURE_BSP_IRQ_PRIORITY_POS_BIT); +} + +/*******************************************************************************************************************//** + * Gets the interrupt mask level. + * + * @return Value indicating the interrupt mask level. + **********************************************************************************************************************/ +__STATIC_INLINE uint32_t R_BSP_IrqMaskLevelGet (void) +{ + return (uint32_t) ((FSP_CRITICAL_SECTION_GET_CURRENT_STATE() >> BSP_FEATURE_BSP_IRQ_PRIORITY_POS_BIT) & + 0x0000001FUL); +} + +/** @} (end addtogroup BSP_MCU) */ + +/*******************************************************************************************************************//** + * @internal + * @addtogroup BSP_MCU_PRV Internal BSP Documentation + * @ingroup RENESAS_INTERNAL + * @{ + **********************************************************************************************************************/ + +/* Public functions defined in bsp.h */ +void bsp_irq_cfg(void); // Used internally by BSP + +/** @} (end addtogroup BSP_MCU_PRV) */ + +/** Common macro for FSP header files. There is also a corresponding FSP_HEADER macro at the top of this file. */ +FSP_FOOTER + +#endif diff --git a/bsp/renesas/rzn2l_rsk/rzn/fsp/src/bsp/mcu/all/bsp_mcu_api.h b/bsp/renesas/rzn2l_rsk/rzn/fsp/src/bsp/mcu/all/bsp_mcu_api.h new file mode 100644 index 0000000000..12eab87147 --- /dev/null +++ b/bsp/renesas/rzn2l_rsk/rzn/fsp/src/bsp/mcu/all/bsp_mcu_api.h @@ -0,0 +1,64 @@ +/*********************************************************************************************************************** + * Copyright [2020-2024] Renesas Electronics Corporation and/or its affiliates. All Rights Reserved. + * + * This software and documentation are supplied by Renesas Electronics Corporation and/or its affiliates and may only + * be used with products of Renesas Electronics Corp. and its affiliates ("Renesas"). No other uses are authorized. + * Renesas products are sold pursuant to Renesas terms and conditions of sale. Purchasers are solely responsible for + * the selection and use of Renesas products and Renesas assumes no liability. No license, express or implied, to any + * intellectual property right is granted by Renesas. This software is protected under all applicable laws, including + * copyright laws. Renesas reserves the right to change or discontinue this software and/or this documentation. + * THE SOFTWARE AND DOCUMENTATION IS DELIVERED TO YOU "AS IS," AND RENESAS MAKES NO REPRESENTATIONS OR WARRANTIES, AND + * TO THE FULLEST EXTENT PERMISSIBLE UNDER APPLICABLE LAW, DISCLAIMS ALL WARRANTIES, WHETHER EXPLICITLY OR IMPLICITLY, + * INCLUDING WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE, AND NONINFRINGEMENT, WITH RESPECT TO THE + * SOFTWARE OR DOCUMENTATION. RENESAS SHALL HAVE NO LIABILITY ARISING OUT OF ANY SECURITY VULNERABILITY OR BREACH. + * TO THE MAXIMUM EXTENT PERMITTED BY LAW, IN NO EVENT WILL RENESAS BE LIABLE TO YOU IN CONNECTION WITH THE SOFTWARE OR + * DOCUMENTATION (OR ANY PERSON OR ENTITY CLAIMING RIGHTS DERIVED FROM YOU) FOR ANY LOSS, DAMAGES, OR CLAIMS WHATSOEVER, + * INCLUDING, WITHOUT LIMITATION, ANY DIRECT, CONSEQUENTIAL, SPECIAL, INDIRECT, PUNITIVE, OR INCIDENTAL DAMAGES; ANY + * LOST PROFITS, OTHER ECONOMIC DAMAGE, PROPERTY DAMAGE, OR PERSONAL INJURY; AND EVEN IF RENESAS HAS BEEN ADVISED OF THE + * POSSIBILITY OF SUCH LOSS, DAMAGES, CLAIMS OR COSTS. + **********************************************************************************************************************/ + +#ifndef BSP_MCU_API_H +#define BSP_MCU_API_H + +/*********************************************************************************************************************** + * Includes , "Project Includes" + **********************************************************************************************************************/ + +/** Common macro for FSP header files. There is also a corresponding FSP_FOOTER macro at the end of this file. */ +FSP_HEADER + +/*********************************************************************************************************************** + * Macro definitions + **********************************************************************************************************************/ + +/*********************************************************************************************************************** + * Typedef definitions + **********************************************************************************************************************/ +typedef struct st_bsp_event_info +{ + IRQn_Type irq; + elc_event_t event; +} bsp_event_info_t; + +/*********************************************************************************************************************** + * Exported global variables + **********************************************************************************************************************/ + +/*********************************************************************************************************************** + * Exported global functions (to be accessed by other files) + **********************************************************************************************************************/ + +void R_BSP_RegisterProtectEnable(bsp_reg_protect_t regs_to_protect); +void R_BSP_RegisterProtectDisable(bsp_reg_protect_t regs_to_unprotect); +void R_BSP_SoftwareDelay(uint32_t delay, bsp_delay_units_t units); +void R_BSP_SystemReset(void); +void R_BSP_CPUReset(bsp_reset_t cpu); +void R_BSP_CPUResetRelease(bsp_reset_t cpu); +void R_BSP_ModuleResetEnable(bsp_module_reset_t module_to_enable); +void R_BSP_ModuleResetDisable(bsp_module_reset_t module_to_disable); + +/** Common macro for FSP header files. There is also a corresponding FSP_HEADER macro at the top of this file. */ +FSP_FOOTER + +#endif diff --git a/bsp/renesas/rzn2l_rsk/rzn/fsp/src/bsp/mcu/all/bsp_module_stop.h b/bsp/renesas/rzn2l_rsk/rzn/fsp/src/bsp/mcu/all/bsp_module_stop.h new file mode 100644 index 0000000000..fa92dd9cdb --- /dev/null +++ b/bsp/renesas/rzn2l_rsk/rzn/fsp/src/bsp/mcu/all/bsp_module_stop.h @@ -0,0 +1,228 @@ +/*********************************************************************************************************************** + * Copyright [2020-2024] Renesas Electronics Corporation and/or its affiliates. All Rights Reserved. + * + * This software and documentation are supplied by Renesas Electronics Corporation and/or its affiliates and may only + * be used with products of Renesas Electronics Corp. and its affiliates ("Renesas"). No other uses are authorized. + * Renesas products are sold pursuant to Renesas terms and conditions of sale. Purchasers are solely responsible for + * the selection and use of Renesas products and Renesas assumes no liability. No license, express or implied, to any + * intellectual property right is granted by Renesas. This software is protected under all applicable laws, including + * copyright laws. Renesas reserves the right to change or discontinue this software and/or this documentation. + * THE SOFTWARE AND DOCUMENTATION IS DELIVERED TO YOU "AS IS," AND RENESAS MAKES NO REPRESENTATIONS OR WARRANTIES, AND + * TO THE FULLEST EXTENT PERMISSIBLE UNDER APPLICABLE LAW, DISCLAIMS ALL WARRANTIES, WHETHER EXPLICITLY OR IMPLICITLY, + * INCLUDING WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE, AND NONINFRINGEMENT, WITH RESPECT TO THE + * SOFTWARE OR DOCUMENTATION. RENESAS SHALL HAVE NO LIABILITY ARISING OUT OF ANY SECURITY VULNERABILITY OR BREACH. + * TO THE MAXIMUM EXTENT PERMITTED BY LAW, IN NO EVENT WILL RENESAS BE LIABLE TO YOU IN CONNECTION WITH THE SOFTWARE OR + * DOCUMENTATION (OR ANY PERSON OR ENTITY CLAIMING RIGHTS DERIVED FROM YOU) FOR ANY LOSS, DAMAGES, OR CLAIMS WHATSOEVER, + * INCLUDING, WITHOUT LIMITATION, ANY DIRECT, CONSEQUENTIAL, SPECIAL, INDIRECT, PUNITIVE, OR INCIDENTAL DAMAGES; ANY + * LOST PROFITS, OTHER ECONOMIC DAMAGE, PROPERTY DAMAGE, OR PERSONAL INJURY; AND EVEN IF RENESAS HAS BEEN ADVISED OF THE + * POSSIBILITY OF SUCH LOSS, DAMAGES, CLAIMS OR COSTS. + **********************************************************************************************************************/ + +#ifndef BSP_MODULE_H +#define BSP_MODULE_H + +/*********************************************************************************************************************** + * Includes , "Project Includes" + **********************************************************************************************************************/ + +/** Common macro for FSP header files. There is also a corresponding FSP_FOOTER macro at the end of this file. */ +FSP_HEADER + +/*********************************************************************************************************************** + * Macro definitions + **********************************************************************************************************************/ + +/*******************************************************************************************************************//** + * @addtogroup BSP_MCU + * @{ + **********************************************************************************************************************/ + +/*******************************************************************************************************************//** + * Cancels the module stop state. + * + * @param ip fsp_ip_t enum value for the module to be stopped + * @param channel The channel. Use channel 0 for modules without channels. + **********************************************************************************************************************/ +#define R_BSP_MODULE_START(ip, channel) {FSP_CRITICAL_SECTION_DEFINE; \ + FSP_CRITICAL_SECTION_ENTER; \ + BSP_MSTP_REG_ ## ip(channel) &= ~BSP_MSTP_BIT_ ## ip(channel); \ + BSP_MSTP_REG_ ## ip(channel); \ + BSP_MSTP_DMY_ ## ip(channel); \ + BSP_MSTP_DMY_ ## ip(channel); \ + BSP_MSTP_DMY_ ## ip(channel); \ + BSP_MSTP_DMY_ ## ip(channel); \ + BSP_MSTP_DMY_ ## ip(channel); \ + FSP_CRITICAL_SECTION_EXIT;} + +/*******************************************************************************************************************//** + * Enables the module stop state. + * + * @param ip fsp_ip_t enum value for the module to be stopped + * @param channel The channel. Use channel 0 for modules without channels. + **********************************************************************************************************************/ +#define R_BSP_MODULE_STOP(ip, channel) {FSP_CRITICAL_SECTION_DEFINE; \ + FSP_CRITICAL_SECTION_ENTER; \ + BSP_MSTP_REG_ ## ip(channel) |= BSP_MSTP_BIT_ ## ip(channel); \ + BSP_MSTP_REG_ ## ip(channel); \ + FSP_CRITICAL_SECTION_EXIT;} + +/** @} (end addtogroup BSP_MCU) */ + +#define BSP_MSTP_REG_FSP_IP_BSC(channel) R_SYSC_NS->MSTPCRA +#define BSP_MSTP_BIT_FSP_IP_BSC(channel) (1U); +#define BSP_MSTP_DMY_FSP_IP_BSC(channel) R_BSC->SDCR; + +#define BSP_MSTP_REG_FSP_IP_XSPI(channel) R_SYSC_NS->MSTPCRA +#define BSP_MSTP_BIT_FSP_IP_XSPI(channel) (1U << (4U + channel)); +#define BSP_MSTP_DMY_FSP_IP_XSPI(channel) (0 >= channel) ? R_XSPI0->WRAPCFG : R_XSPI1->WRAPCFG + +#define BSP_MSTP_REG_FSP_IP_SCI(channel) *((4U >= channel) ? &R_SYSC_NS->MSTPCRA : &R_SYSC_S->MSTPCRG) +#define BSP_MSTP_BIT_FSP_IP_SCI(channel) ((4U >= channel) ? (1U << (8U + channel)) : (1U)); +#define BSP_MSTP_DMY_FSP_IP_SCI(channel) (0 >= channel) ? R_SCI0->RDR : ((1 >= channel) ? R_SCI1->RDR : \ + ((2 >= \ + channel) ? R_SCI2->RDR : ((3 >= \ + channel) \ + ? R_SCI3 \ + ->RDR : \ + ((4 \ + >= \ + channel) \ + ? R_SCI4 \ + ->RDR : \ + R_SCI5-> \ + RDR)))) + +#define BSP_MSTP_REG_FSP_IP_IIC(channel) *((1U >= channel) ? &R_SYSC_NS->MSTPCRB : &R_SYSC_S->MSTPCRG) +#define BSP_MSTP_BIT_FSP_IP_IIC(channel) ((1U >= channel) ? (1U << (0U + channel)) : (1U << (1U))); +#define BSP_MSTP_DMY_FSP_IP_IIC(channel) (0 >= channel) ? R_IIC0->ICCR1 : ((1 >= channel) ? R_IIC1->ICCR1 \ + : R_IIC2->ICCR1) + +#define BSP_MSTP_REG_FSP_IP_SPI(channel) *((2U >= channel) ? &R_SYSC_NS->MSTPCRB : &R_SYSC_S->MSTPCRG) +#define BSP_MSTP_BIT_FSP_IP_SPI(channel) ((2U >= channel) ? (1U << (4U + channel)) : (1U << (2U))); +#define BSP_MSTP_DMY_FSP_IP_SPI(channel) (0 >= channel) ? R_SPI0->SPCKD : ((1 >= channel) ? R_SPI1->SPCKD : \ + ((2 >= \ + channel) ? R_SPI2->SPCKD : R_SPI3 \ + ->SPCKD)) + +#define BSP_MSTP_REG_FSP_IP_MTU3(channel) R_SYSC_NS->MSTPCRC +#define BSP_MSTP_BIT_FSP_IP_MTU3(channel) (1U); +#define BSP_MSTP_DMY_FSP_IP_MTU3(channel) R_MTU0->TCR; + +#define BSP_MSTP_REG_FSP_IP_GPT(channel) *((13U >= channel) ? &R_SYSC_NS->MSTPCRC : &R_SYSC_S->MSTPCRG) +#define BSP_MSTP_BIT_FSP_IP_GPT(channel) ((6U >= channel) ? (1U << (1U)) : ((13U >= channel) ? \ + (1U << (2U)) : (1U << (3U)))); +#define BSP_MSTP_DMY_FSP_IP_GPT(channel) (6 >= \ + channel) ? R_GPT0->GTSTR : ((13 >= \ + channel) ? R_GPT7->GTSTR : R_GPT14-> \ + GTSTR); +#define BSP_MSTP_REG_FSP_IP_TFU(channel) R_SYSC_NS->MSTPCRC +#define BSP_MSTP_BIT_FSP_IP_TFU(channel) (1U << (5U)); +#define BSP_MSTP_DMY_FSP_IP_TFU(channel) R_TFU->TRGSTS; + +#define BSP_MSTP_REG_FSP_IP_ADC12(channel) R_SYSC_NS->MSTPCRC +#define BSP_MSTP_BIT_FSP_IP_ADC12(channel) (1U << (6U + channel)); +#define BSP_MSTP_DMY_FSP_IP_ADC12(channel) (0 >= channel) ? R_ADC120->ADCSR : R_ADC121->ADCSR; + +#define BSP_MSTP_REG_FSP_IP_DSMIF(channel) R_SYSC_NS->MSTPCRD +#define BSP_MSTP_BIT_FSP_IP_DSMIF(channel) (1U << (0U + channel)); +#define BSP_MSTP_DMY_FSP_IP_DSMIF(channel) (0 >= channel) ? R_DSMIF0->DSSEICR : R_DSMIF1->DSSEICR + +#define BSP_MSTP_REG_FSP_IP_CMT(channel) R_SYSC_NS->MSTPCRD +#define BSP_MSTP_BIT_FSP_IP_CMT(channel) (1U << (2U + channel)); +#define BSP_MSTP_DMY_FSP_IP_CMT(channel) (0 >= \ + channel) ? R_CMT->UNT[0].CMSTR0 : ((1 >= \ + channel) ? R_CMT->UNT[1].CMSTR0 \ + : R_CMT->UNT[2].CMSTR0) + +#define BSP_MSTP_REG_FSP_IP_CMTW(channel) R_SYSC_NS->MSTPCRD +#define BSP_MSTP_BIT_FSP_IP_CMTW(channel) (1U << (5U + channel)); +#define BSP_MSTP_DMY_FSP_IP_CMTW(channel) (0 >= channel) ? R_CMTW0->CMWSTR : R_CMTW1->CMWSTR + +#define BSP_MSTP_REG_FSP_IP_TSU(channel) R_SYSC_NS->MSTPCRD +#define BSP_MSTP_BIT_FSP_IP_TSU(channel) (1U << (7U)); +#define BSP_MSTP_DMY_FSP_IP_TSU(channel) R_TSU->TSUSM; + +#define BSP_MSTP_REG_FSP_IP_DOC(channel) R_SYSC_NS->MSTPCRD +#define BSP_MSTP_BIT_FSP_IP_DOC(channel) (1U << (8U)); +#define BSP_MSTP_DMY_FSP_IP_DOC(channel) R_DOC->DOCR + +#define BSP_MSTP_REG_FSP_IP_CRC(channel) *((0U == channel) ? &R_SYSC_NS->MSTPCRD : &R_SYSC_S->MSTPCRG) +#define BSP_MSTP_BIT_FSP_IP_CRC(channel) ((0U == channel) ? (1U << (9U)) : (1U << (4U))); +#define BSP_MSTP_DMY_FSP_IP_CRC(channel) (0 >= channel) ? R_CRC0->CRCDIR : R_CRC1->CRCDIR; + +#define BSP_MSTP_REG_FSP_IP_CANFD(channel) R_SYSC_NS->MSTPCRD +#define BSP_MSTP_BIT_FSP_IP_CANFD(channel) (1U << (10U)); +#define BSP_MSTP_DMY_FSP_IP_CANFD(channel) R_CANFD->CFDGIPV; + +#define BSP_MSTP_REG_FSP_IP_CKIO(channel) R_SYSC_NS->MSTPCRD +#define BSP_MSTP_BIT_FSP_IP_CKIO(channel) (1U << (11U)); +#define BSP_MSTP_DMY_FSP_IP_CKIO(channel) ; + +#define BSP_MSTP_REG_FSP_IP_GMAC(channel) R_SYSC_NS->MSTPCRE +#define BSP_MSTP_BIT_FSP_IP_GMAC(channel) (1U); +#define BSP_MSTP_DMY_FSP_IP_GMAC(channel) R_GMAC->MAC_Configuration + +#define BSP_MSTP_REG_FSP_IP_ETHSW(channel) R_SYSC_NS->MSTPCRE +#define BSP_MSTP_BIT_FSP_IP_ETHSW(channel) (1U << (1U)); +#define BSP_MSTP_DMY_FSP_IP_ETHSW(channel) R_ETHSW->REVISION + +#define BSP_MSTP_REG_FSP_IP_ESC(channel) R_SYSC_NS->MSTPCRE +#define BSP_MSTP_BIT_FSP_IP_ESC(channel) (1U << (2U)); +#define BSP_MSTP_DMY_FSP_IP_ESC(channel) R_ESC->TYPE; + +#define BSP_MSTP_REG_FSP_IP_ETHSS(channel) R_SYSC_NS->MSTPCRE +#define BSP_MSTP_BIT_FSP_IP_ETHSS(channel) (1U << (3U)); +#define BSP_MSTP_DMY_FSP_IP_ETHSS(channel) R_ETHSS->PRCMD + +#define BSP_MSTP_REG_FSP_IP_ENCIF(channel) R_SYSC_NS->MSTPCRE +#define BSP_MSTP_BIT_FSP_IP_ENCIF(channel) (1U << (4U)); +#define BSP_MSTP_DMY_FSP_IP_ENCIF(channel) ; + +#define BSP_MSTP_REG_FSP_IP_USBHS(channel) R_SYSC_NS->MSTPCRE +#define BSP_MSTP_BIT_FSP_IP_USBHS(channel) (1U << (8U)); +#define BSP_MSTP_DMY_FSP_IP_USBHS(channel) R_USBHC->HCREVISION; + +#define BSP_MSTP_REG_FSP_IP_TRACECLOCK(channel) R_SYSC_S->MSTPCRF +#define BSP_MSTP_BIT_FSP_IP_TRACECLOCK(channel) (1U << (0U)); +#define BSP_MSTP_DMY_FSP_IP_TRACECLOCK(channel) ; + +#define BSP_MSTP_REG_FSP_IP_RTC(channel) R_SYSC_S->MSTPCRG +#define BSP_MSTP_BIT_FSP_IP_RTC(channel) (1U << (5U)); +#define BSP_MSTP_DMY_FSP_IP_RTC(channel) R_RTC->RTCA0CTL0; + +#define BSP_MSTP_REG_FSP_IP_CLMA(channel) R_SYSC_S->MSTPCRG +#define BSP_MSTP_BIT_FSP_IP_CLMA(channel) ((2U >= channel) ? \ + (1U << (9U + channel)) : (1U << (8U))); +#define BSP_MSTP_DMY_FSP_IP_CLMA(channel) (0 >= \ + channel) ? R_CLMA0->CTL0 : ((1 >= \ + channel) ? R_CLMA1->CTL0 : ((2 >= \ + channel) ? \ + R_CLMA2-> \ + CTL0 : \ + R_CLMA3-> \ + CTL0)); + +#define BSP_MSTP_REG_FSP_IP_SHOSTIF(channel) R_SYSC_S->MSTPCRI +#define BSP_MSTP_BIT_FSP_IP_SHOSTIF(channel) (1U << (1U)); +#define BSP_MSTP_DMY_FSP_IP_SHOSTIF(channel) ; + +#define BSP_MSTP_REG_FSP_IP_PHOSTIF(channel) R_SYSC_S->MSTPCRI +#define BSP_MSTP_BIT_FSP_IP_PHOSTIF(channel) (1U << (0U)); +#define BSP_MSTP_DMY_FSP_IP_PHOSTIF(channel) ; + +/*********************************************************************************************************************** + * Typedef definitions + **********************************************************************************************************************/ + +/*********************************************************************************************************************** + * Exported global variables + **********************************************************************************************************************/ + +/*********************************************************************************************************************** + * Exported global functions (to be accessed by other files) + **********************************************************************************************************************/ + +/** Common macro for FSP header files. There is also a corresponding FSP_HEADER macro at the top of this file. */ +FSP_FOOTER + +#endif diff --git a/bsp/renesas/rzn2l_rsk/rzn/fsp/src/bsp/mcu/all/bsp_register_protection.c b/bsp/renesas/rzn2l_rsk/rzn/fsp/src/bsp/mcu/all/bsp_register_protection.c new file mode 100644 index 0000000000..8db202648d --- /dev/null +++ b/bsp/renesas/rzn2l_rsk/rzn/fsp/src/bsp/mcu/all/bsp_register_protection.c @@ -0,0 +1,116 @@ +/*********************************************************************************************************************** + * Copyright [2020-2024] Renesas Electronics Corporation and/or its affiliates. All Rights Reserved. + * + * This software and documentation are supplied by Renesas Electronics Corporation and/or its affiliates and may only + * be used with products of Renesas Electronics Corp. and its affiliates ("Renesas"). No other uses are authorized. + * Renesas products are sold pursuant to Renesas terms and conditions of sale. Purchasers are solely responsible for + * the selection and use of Renesas products and Renesas assumes no liability. No license, express or implied, to any + * intellectual property right is granted by Renesas. This software is protected under all applicable laws, including + * copyright laws. Renesas reserves the right to change or discontinue this software and/or this documentation. + * THE SOFTWARE AND DOCUMENTATION IS DELIVERED TO YOU "AS IS," AND RENESAS MAKES NO REPRESENTATIONS OR WARRANTIES, AND + * TO THE FULLEST EXTENT PERMISSIBLE UNDER APPLICABLE LAW, DISCLAIMS ALL WARRANTIES, WHETHER EXPLICITLY OR IMPLICITLY, + * INCLUDING WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE, AND NONINFRINGEMENT, WITH RESPECT TO THE + * SOFTWARE OR DOCUMENTATION. RENESAS SHALL HAVE NO LIABILITY ARISING OUT OF ANY SECURITY VULNERABILITY OR BREACH. + * TO THE MAXIMUM EXTENT PERMITTED BY LAW, IN NO EVENT WILL RENESAS BE LIABLE TO YOU IN CONNECTION WITH THE SOFTWARE OR + * DOCUMENTATION (OR ANY PERSON OR ENTITY CLAIMING RIGHTS DERIVED FROM YOU) FOR ANY LOSS, DAMAGES, OR CLAIMS WHATSOEVER, + * INCLUDING, WITHOUT LIMITATION, ANY DIRECT, CONSEQUENTIAL, SPECIAL, INDIRECT, PUNITIVE, OR INCIDENTAL DAMAGES; ANY + * LOST PROFITS, OTHER ECONOMIC DAMAGE, PROPERTY DAMAGE, OR PERSONAL INJURY; AND EVEN IF RENESAS HAS BEEN ADVISED OF THE + * POSSIBILITY OF SUCH LOSS, DAMAGES, CLAIMS OR COSTS. + **********************************************************************************************************************/ + +/*********************************************************************************************************************** + * Includes , "Project Includes" + **********************************************************************************************************************/ +#include "bsp_api.h" + +/*********************************************************************************************************************** + * Macro definitions + **********************************************************************************************************************/ + +/* Key code for writing PRCR register. */ +#define BSP_PRV_PRCR_KEY (0xA500U) + +/*********************************************************************************************************************** + * Typedef definitions + **********************************************************************************************************************/ + +/*********************************************************************************************************************** + * Exported global variables (to be accessed by other files) + **********************************************************************************************************************/ + +/** Used for holding reference counters for protection bits. */ +volatile uint16_t g_protect_counters[] = +{ + 0U, 0U, 0U, 0U +}; + +/*********************************************************************************************************************** + * Private global variables and functions + **********************************************************************************************************************/ + +/** Masks for setting or clearing the PRCR register. Use -1 for size because PWPR in MPC is used differently. */ +static const uint16_t g_prcr_masks[] = +{ + 0x0001U, /* PRC0. */ + 0x0002U, /* PRC1. */ + 0x0004U, /* PRC2. */ + 0x0008U, /* PRC3. */ +}; + +/*******************************************************************************************************************//** + * @addtogroup BSP_MCU + * + * @{ + **********************************************************************************************************************/ + +/*******************************************************************************************************************//** + * Enable register protection. Registers that are protected cannot be written to. Register protection is + * enabled by using the Protect Register (PRCR) and the MPC's Write-Protect Register (PWPR). + * + * @param[in] regs_to_protect Registers which have write protection enabled. + **********************************************************************************************************************/ +void R_BSP_RegisterProtectEnable (bsp_reg_protect_t regs_to_protect) +{ + /* Is it safe to disable write access? */ + if (0U != g_protect_counters[regs_to_protect]) + { + /* Decrement the protect counter */ + g_protect_counters[regs_to_protect]--; + } + + /* Is it safe to disable write access? */ + if (0U == g_protect_counters[regs_to_protect]) + { + /** Enable protection using PRCR register. */ + + /** When writing to the PRCR register the upper 8-bits must be the correct key. Set lower bits to 0 to + * disable writes. */ + R_RWP_NS->PRCRN = ((R_RWP_NS->PRCRN | BSP_PRV_PRCR_KEY) & (uint16_t) (~g_prcr_masks[regs_to_protect])); + R_RWP_S->PRCRS = ((R_RWP_S->PRCRS | BSP_PRV_PRCR_KEY) & (uint16_t) (~g_prcr_masks[regs_to_protect])); + } +} + +/*******************************************************************************************************************//** + * Disable register protection. Registers that are protected cannot be written to. Register protection is + * disabled by using the Protect Register (PRCR) and the MPC's Write-Protect Register (PWPR). + * + * @param[in] regs_to_unprotect Registers which have write protection disabled. + **********************************************************************************************************************/ +void R_BSP_RegisterProtectDisable (bsp_reg_protect_t regs_to_unprotect) +{ + /* If this is first entry then disable protection. */ + if (0U == g_protect_counters[regs_to_unprotect]) + { + /** Disable protection using PRCR register. */ + + /** When writing to the PRCR register the upper 8-bits must be the correct key. Set lower bits to 0 to + * disable writes. */ + R_RWP_NS->PRCRN = ((R_RWP_NS->PRCRN | BSP_PRV_PRCR_KEY) | g_prcr_masks[regs_to_unprotect]); + R_RWP_S->PRCRS = ((R_RWP_S->PRCRS | BSP_PRV_PRCR_KEY) | g_prcr_masks[regs_to_unprotect]); + } + + /** Increment the protect counter */ + g_protect_counters[regs_to_unprotect]++; +} + +/** @} (end addtogroup BSP_MCU) */ diff --git a/bsp/renesas/rzn2l_rsk/rzn/fsp/src/bsp/mcu/all/bsp_register_protection.h b/bsp/renesas/rzn2l_rsk/rzn/fsp/src/bsp/mcu/all/bsp_register_protection.h new file mode 100644 index 0000000000..63917ea469 --- /dev/null +++ b/bsp/renesas/rzn2l_rsk/rzn/fsp/src/bsp/mcu/all/bsp_register_protection.h @@ -0,0 +1,76 @@ +/*********************************************************************************************************************** + * Copyright [2020-2024] Renesas Electronics Corporation and/or its affiliates. All Rights Reserved. + * + * This software and documentation are supplied by Renesas Electronics Corporation and/or its affiliates and may only + * be used with products of Renesas Electronics Corp. and its affiliates ("Renesas"). No other uses are authorized. + * Renesas products are sold pursuant to Renesas terms and conditions of sale. Purchasers are solely responsible for + * the selection and use of Renesas products and Renesas assumes no liability. No license, express or implied, to any + * intellectual property right is granted by Renesas. This software is protected under all applicable laws, including + * copyright laws. Renesas reserves the right to change or discontinue this software and/or this documentation. + * THE SOFTWARE AND DOCUMENTATION IS DELIVERED TO YOU "AS IS," AND RENESAS MAKES NO REPRESENTATIONS OR WARRANTIES, AND + * TO THE FULLEST EXTENT PERMISSIBLE UNDER APPLICABLE LAW, DISCLAIMS ALL WARRANTIES, WHETHER EXPLICITLY OR IMPLICITLY, + * INCLUDING WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE, AND NONINFRINGEMENT, WITH RESPECT TO THE + * SOFTWARE OR DOCUMENTATION. RENESAS SHALL HAVE NO LIABILITY ARISING OUT OF ANY SECURITY VULNERABILITY OR BREACH. + * TO THE MAXIMUM EXTENT PERMITTED BY LAW, IN NO EVENT WILL RENESAS BE LIABLE TO YOU IN CONNECTION WITH THE SOFTWARE OR + * DOCUMENTATION (OR ANY PERSON OR ENTITY CLAIMING RIGHTS DERIVED FROM YOU) FOR ANY LOSS, DAMAGES, OR CLAIMS WHATSOEVER, + * INCLUDING, WITHOUT LIMITATION, ANY DIRECT, CONSEQUENTIAL, SPECIAL, INDIRECT, PUNITIVE, OR INCIDENTAL DAMAGES; ANY + * LOST PROFITS, OTHER ECONOMIC DAMAGE, PROPERTY DAMAGE, OR PERSONAL INJURY; AND EVEN IF RENESAS HAS BEEN ADVISED OF THE + * POSSIBILITY OF SUCH LOSS, DAMAGES, CLAIMS OR COSTS. + **********************************************************************************************************************/ + +#ifndef BSP_REGISTER_PROTECTION_H +#define BSP_REGISTER_PROTECTION_H + +/*********************************************************************************************************************** + * Includes , "Project Includes" + **********************************************************************************************************************/ + +/** Common macro for FSP header files. There is also a corresponding FSP_FOOTER macro at the end of this file. */ +FSP_HEADER + +/*********************************************************************************************************************** + * Macro definitions + **********************************************************************************************************************/ + +/*********************************************************************************************************************** + * Typedef definitions + **********************************************************************************************************************/ + +/*******************************************************************************************************************//** + * @addtogroup BSP_MCU + * @{ + **********************************************************************************************************************/ + +/** The different types of registers that can be protected. */ +typedef enum e_bsp_reg_protect +{ + /** Enables writing to the registers related to the clock generation circuit. */ + BSP_REG_PROTECT_CGC = 0, + + /** Enables writing to the registers related to low power consumption and reset. */ + BSP_REG_PROTECT_LPC_RESET, + + /** Enables writing to the registers related to GPIO. */ + BSP_REG_PROTECT_GPIO, + + /** Enables writing to the registers related to Non-Safety reg. */ + BSP_REG_PROTECT_SYSTEM, +} bsp_reg_protect_t; + +/** @} (end addtogroup BSP_MCU) */ + +/*********************************************************************************************************************** + * Exported global variables + **********************************************************************************************************************/ + +/*********************************************************************************************************************** + * Exported global functions (to be accessed by other files) + **********************************************************************************************************************/ + +/* Public functions defined in bsp.h */ +void bsp_register_protect_open(void); // Used internally by BSP + +/** Common macro for FSP header files. There is also a corresponding FSP_HEADER macro at the top of this file. */ +FSP_FOOTER + +#endif diff --git a/bsp/renesas/rzn2l_rsk/rzn/fsp/src/bsp/mcu/all/bsp_reset.c b/bsp/renesas/rzn2l_rsk/rzn/fsp/src/bsp/mcu/all/bsp_reset.c new file mode 100644 index 0000000000..a8b44d2419 --- /dev/null +++ b/bsp/renesas/rzn2l_rsk/rzn/fsp/src/bsp/mcu/all/bsp_reset.c @@ -0,0 +1,139 @@ +/*********************************************************************************************************************** + * Copyright [2020-2024] Renesas Electronics Corporation and/or its affiliates. All Rights Reserved. + * + * This software and documentation are supplied by Renesas Electronics Corporation and/or its affiliates and may only + * be used with products of Renesas Electronics Corp. and its affiliates ("Renesas"). No other uses are authorized. + * Renesas products are sold pursuant to Renesas terms and conditions of sale. Purchasers are solely responsible for + * the selection and use of Renesas products and Renesas assumes no liability. No license, express or implied, to any + * intellectual property right is granted by Renesas. This software is protected under all applicable laws, including + * copyright laws. Renesas reserves the right to change or discontinue this software and/or this documentation. + * THE SOFTWARE AND DOCUMENTATION IS DELIVERED TO YOU "AS IS," AND RENESAS MAKES NO REPRESENTATIONS OR WARRANTIES, AND + * TO THE FULLEST EXTENT PERMISSIBLE UNDER APPLICABLE LAW, DISCLAIMS ALL WARRANTIES, WHETHER EXPLICITLY OR IMPLICITLY, + * INCLUDING WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE, AND NONINFRINGEMENT, WITH RESPECT TO THE + * SOFTWARE OR DOCUMENTATION. RENESAS SHALL HAVE NO LIABILITY ARISING OUT OF ANY SECURITY VULNERABILITY OR BREACH. + * TO THE MAXIMUM EXTENT PERMITTED BY LAW, IN NO EVENT WILL RENESAS BE LIABLE TO YOU IN CONNECTION WITH THE SOFTWARE OR + * DOCUMENTATION (OR ANY PERSON OR ENTITY CLAIMING RIGHTS DERIVED FROM YOU) FOR ANY LOSS, DAMAGES, OR CLAIMS WHATSOEVER, + * INCLUDING, WITHOUT LIMITATION, ANY DIRECT, CONSEQUENTIAL, SPECIAL, INDIRECT, PUNITIVE, OR INCIDENTAL DAMAGES; ANY + * LOST PROFITS, OTHER ECONOMIC DAMAGE, PROPERTY DAMAGE, OR PERSONAL INJURY; AND EVEN IF RENESAS HAS BEEN ADVISED OF THE + * POSSIBILITY OF SUCH LOSS, DAMAGES, CLAIMS OR COSTS. + **********************************************************************************************************************/ + +/*********************************************************************************************************************** + * Includes , "Project Includes" + **********************************************************************************************************************/ +#include "bsp_api.h" + +/*********************************************************************************************************************** + * Macro definitions + **********************************************************************************************************************/ +#define BSP_RESET_MRCTL_BIT_SHIFT_MASK (0x0000001FU) +#define BSP_RESET_MRCTL_SELECT_MASK (0x001F0000U) +#define BSP_RESET_MRCTL_REGION_SELECT_MASK (0x00400000U) + +/*********************************************************************************************************************** + * Typedef definitions + **********************************************************************************************************************/ + +/*********************************************************************************************************************** + * Exported global variables (to be accessed by other files) + **********************************************************************************************************************/ + +/*********************************************************************************************************************** + * Private global variables and functions + **********************************************************************************************************************/ + +/*******************************************************************************************************************//** + * @addtogroup BSP_MCU + * + * @{ + **********************************************************************************************************************/ + +/*******************************************************************************************************************//** + * Occur the system software reset. + **********************************************************************************************************************/ +void R_BSP_SystemReset (void) +{ + /* System software reset. */ + R_SYSC_S->SWRSYS = BSP_PRV_RESET_KEY; +} + +/*******************************************************************************************************************//** + * Occur the CPU software reset. + * + * @param[in] cpu to be reset state. + **********************************************************************************************************************/ +void R_BSP_CPUReset (bsp_reset_t cpu) +{ + /* CPU0 software reset. */ + R_BSP_RegisterProtectDisable(BSP_REG_PROTECT_LPC_RESET); + R_SYSC_S->SWRCPU0 = BSP_PRV_RESET_KEY; + R_BSP_RegisterProtectEnable(BSP_REG_PROTECT_LPC_RESET); + __WFI(); + FSP_PARAMETER_NOT_USED(cpu); +} + +/*******************************************************************************************************************//** + * Release the CPU reset state. + * + * @param[in] cpu to be release reset state. + **********************************************************************************************************************/ +void R_BSP_CPUResetRelease (bsp_reset_t cpu) +{ + /* Release CPU0 reset state. */ + R_SYSC_S->SWRCPU0 = BSP_PRV_RESET_RELEASE_KEY; + FSP_PARAMETER_NOT_USED(cpu); +} + +/*******************************************************************************************************************//** + * Enable module reset state. + * + * @param[in] module_to_enable Modules to enable module reset state. + **********************************************************************************************************************/ +void R_BSP_ModuleResetEnable (bsp_module_reset_t module_to_enable) +{ + volatile uint32_t mrctl; + uint32_t * p_reg; + + /** When MRCTLn register exists in the safety region, + * it is necessary to add an offset of safety region. */ + p_reg = (uint32_t *) &R_SYSC_NS->MRCTLA + + (((module_to_enable & BSP_RESET_MRCTL_SELECT_MASK) >> 16U) + + (module_to_enable & BSP_RESET_MRCTL_REGION_SELECT_MASK)); + mrctl = 1U << (module_to_enable & BSP_RESET_MRCTL_BIT_SHIFT_MASK); + + /** Enable module reset state using MRCTLE register. */ + *p_reg |= mrctl; + + /** To ensure processing after module reset. */ + mrctl = *(volatile uint32_t *) (p_reg); +} + +/*******************************************************************************************************************//** + * Disable module reset state. + * + * @param[in] module_to_disable Modules to disable module reset state. + **********************************************************************************************************************/ +void R_BSP_ModuleResetDisable (bsp_module_reset_t module_to_disable) +{ + volatile uint32_t mrctl; + uint32_t * p_reg; + + /** When MRCTLn register exists in the safety region, + * it is necessary to add an offset of safety region. */ + p_reg = (uint32_t *) &R_SYSC_NS->MRCTLA + + (((module_to_disable & BSP_RESET_MRCTL_SELECT_MASK) >> 16U) + + (module_to_disable & BSP_RESET_MRCTL_REGION_SELECT_MASK)); + mrctl = 1U << (module_to_disable & BSP_RESET_MRCTL_BIT_SHIFT_MASK); + + /** Disable module stop state using MRCTLn register. */ + *p_reg &= ~mrctl; + + /** In order to secure processing after release from module reset, + * dummy read the same register at least three times. + * Refer to "Notes on Module Reset Control Register Operation" of the RZ microprocessor manual. */ + mrctl = *(volatile uint32_t *) (p_reg); + mrctl = *(volatile uint32_t *) (p_reg); + mrctl = *(volatile uint32_t *) (p_reg); +} + +/** @} (end addtogroup BSP_MCU) */ diff --git a/bsp/renesas/rzn2l_rsk/rzn/fsp/src/bsp/mcu/all/bsp_reset.h b/bsp/renesas/rzn2l_rsk/rzn/fsp/src/bsp/mcu/all/bsp_reset.h new file mode 100644 index 0000000000..10cd9c44db --- /dev/null +++ b/bsp/renesas/rzn2l_rsk/rzn/fsp/src/bsp/mcu/all/bsp_reset.h @@ -0,0 +1,150 @@ +/*********************************************************************************************************************** + * Copyright [2020-2024] Renesas Electronics Corporation and/or its affiliates. All Rights Reserved. + * + * This software and documentation are supplied by Renesas Electronics Corporation and/or its affiliates and may only + * be used with products of Renesas Electronics Corp. and its affiliates ("Renesas"). No other uses are authorized. + * Renesas products are sold pursuant to Renesas terms and conditions of sale. Purchasers are solely responsible for + * the selection and use of Renesas products and Renesas assumes no liability. No license, express or implied, to any + * intellectual property right is granted by Renesas. This software is protected under all applicable laws, including + * copyright laws. Renesas reserves the right to change or discontinue this software and/or this documentation. + * THE SOFTWARE AND DOCUMENTATION IS DELIVERED TO YOU "AS IS," AND RENESAS MAKES NO REPRESENTATIONS OR WARRANTIES, AND + * TO THE FULLEST EXTENT PERMISSIBLE UNDER APPLICABLE LAW, DISCLAIMS ALL WARRANTIES, WHETHER EXPLICITLY OR IMPLICITLY, + * INCLUDING WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE, AND NONINFRINGEMENT, WITH RESPECT TO THE + * SOFTWARE OR DOCUMENTATION. RENESAS SHALL HAVE NO LIABILITY ARISING OUT OF ANY SECURITY VULNERABILITY OR BREACH. + * TO THE MAXIMUM EXTENT PERMITTED BY LAW, IN NO EVENT WILL RENESAS BE LIABLE TO YOU IN CONNECTION WITH THE SOFTWARE OR + * DOCUMENTATION (OR ANY PERSON OR ENTITY CLAIMING RIGHTS DERIVED FROM YOU) FOR ANY LOSS, DAMAGES, OR CLAIMS WHATSOEVER, + * INCLUDING, WITHOUT LIMITATION, ANY DIRECT, CONSEQUENTIAL, SPECIAL, INDIRECT, PUNITIVE, OR INCIDENTAL DAMAGES; ANY + * LOST PROFITS, OTHER ECONOMIC DAMAGE, PROPERTY DAMAGE, OR PERSONAL INJURY; AND EVEN IF RENESAS HAS BEEN ADVISED OF THE + * POSSIBILITY OF SUCH LOSS, DAMAGES, CLAIMS OR COSTS. + **********************************************************************************************************************/ + +#ifndef BSP_RESET_H +#define BSP_RESET_H + +/*********************************************************************************************************************** + * Includes , "Project Includes" + **********************************************************************************************************************/ + +/** Common macro for FSP header files. There is also a corresponding FSP_FOOTER macro at the end of this file. */ +FSP_HEADER + +/*********************************************************************************************************************** + * Macro definitions + **********************************************************************************************************************/ + +/* Key code for writing reset register. */ +#define BSP_PRV_RESET_KEY (0x4321A501U) +#define BSP_PRV_RESET_RELEASE_KEY (0x00000000U) + +/* MRCTL register selection. Bits 16-20 assign values in order for the module control registers (A=0, E=4). + * Bit 24 indicates whether MRCTLn register is in the safety region. */ +#define BSP_RESET_MRCTLA_SELECT (0x00000000U) +#define BSP_RESET_MRCTLE_SELECT (0x00040000U) +#define BSP_RESET_MRCTLI_SELECT (0x00480000U) + +/* MRCTL register bit number. */ +#define BSP_RESET_MRCTL_BIT0_SHIFT (0x00000000U) +#define BSP_RESET_MRCTL_BIT1_SHIFT (0x00000001U) +#define BSP_RESET_MRCTL_BIT2_SHIFT (0x00000002U) +#define BSP_RESET_MRCTL_BIT3_SHIFT (0x00000003U) +#define BSP_RESET_MRCTL_BIT4_SHIFT (0x00000004U) +#define BSP_RESET_MRCTL_BIT5_SHIFT (0x00000005U) +#define BSP_RESET_MRCTL_BIT6_SHIFT (0x00000006U) +#define BSP_RESET_MRCTL_BIT7_SHIFT (0x00000007U) +#define BSP_RESET_MRCTL_BIT8_SHIFT (0x00000008U) +#define BSP_RESET_MRCTL_BIT9_SHIFT (0x00000009U) +#define BSP_RESET_MRCTL_BIT10_SHIFT (0x0000000AU) +#define BSP_RESET_MRCTL_BIT11_SHIFT (0x0000000BU) +#define BSP_RESET_MRCTL_BIT12_SHIFT (0x0000000CU) +#define BSP_RESET_MRCTL_BIT13_SHIFT (0x0000000DU) +#define BSP_RESET_MRCTL_BIT14_SHIFT (0x0000000EU) +#define BSP_RESET_MRCTL_BIT15_SHIFT (0x0000000FU) +#define BSP_RESET_MRCTL_BIT16_SHIFT (0x00000010U) +#define BSP_RESET_MRCTL_BIT17_SHIFT (0x00000011U) +#define BSP_RESET_MRCTL_BIT18_SHIFT (0x00000012U) +#define BSP_RESET_MRCTL_BIT19_SHIFT (0x00000013U) +#define BSP_RESET_MRCTL_BIT20_SHIFT (0x00000014U) +#define BSP_RESET_MRCTL_BIT21_SHIFT (0x00000015U) +#define BSP_RESET_MRCTL_BIT22_SHIFT (0x00000016U) +#define BSP_RESET_MRCTL_BIT23_SHIFT (0x00000017U) +#define BSP_RESET_MRCTL_BIT24_SHIFT (0x00000018U) +#define BSP_RESET_MRCTL_BIT25_SHIFT (0x00000019U) +#define BSP_RESET_MRCTL_BIT26_SHIFT (0x0000001AU) +#define BSP_RESET_MRCTL_BIT27_SHIFT (0x0000001BU) +#define BSP_RESET_MRCTL_BIT28_SHIFT (0x0000001CU) +#define BSP_RESET_MRCTL_BIT29_SHIFT (0x0000001DU) +#define BSP_RESET_MRCTL_BIT30_SHIFT (0x0000001EU) +#define BSP_RESET_MRCTL_BIT31_SHIFT (0x0000001FU) + +/*********************************************************************************************************************** + * Typedef definitions + **********************************************************************************************************************/ + +/*******************************************************************************************************************//** + * @addtogroup BSP_MCU + * @{ + **********************************************************************************************************************/ + +/** CPU to be reset target.*/ +typedef enum e_bsp_reset +{ + BSP_RESET_CR52_0 = 0, ///< Software reset for CR52_0 +} bsp_reset_t; + +/** The different types of registers that can control the reset of peripheral modules related to Ethernet. */ +typedef enum e_bsp_module_reset +{ + /** Enables writing to the registers related to xSPI Unit 0 reset control. */ + BSP_MODULE_RESET_XSPI0 = (BSP_RESET_MRCTLA_SELECT | BSP_RESET_MRCTL_BIT4_SHIFT), + + /** Enables writing to the registers related to xSPI Unit 1 reset control. */ + BSP_MODULE_RESET_XSPI1 = (BSP_RESET_MRCTLA_SELECT | BSP_RESET_MRCTL_BIT5_SHIFT), + + /** Enables writing to the registers related to GMAC (PCLKH clock domain) reset control. */ + BSP_MODULE_RESET_GMAC0_PCLKH = (BSP_RESET_MRCTLE_SELECT | BSP_RESET_MRCTL_BIT0_SHIFT), + + /** Enables writing to the registers related to GMAC (PCLKM clock domain) reset control. */ + BSP_MODULE_RESET_GMAC0_PCLKM = (BSP_RESET_MRCTLE_SELECT | BSP_RESET_MRCTL_BIT1_SHIFT), + + /** Enables writing to the registers related to ETHSW reset control. */ + BSP_MODULE_RESET_ETHSW = (BSP_RESET_MRCTLE_SELECT | BSP_RESET_MRCTL_BIT2_SHIFT), + + /** Enables writing to the registers related to ESC (Bus clock domain) reset control. */ + BSP_MODULE_RESET_ESC_BUS = (BSP_RESET_MRCTLE_SELECT | BSP_RESET_MRCTL_BIT3_SHIFT), + + /** Enables writing to the registers related to ESC (IP clock domain) reset control. */ + BSP_MODULE_RESET_ESC_IP = (BSP_RESET_MRCTLE_SELECT | BSP_RESET_MRCTL_BIT4_SHIFT), + + /** Enables writing to the registers related to Ethernet subsystem register reset control. */ + BSP_MODULE_RESET_ESC_ETH_SUBSYSTEM = (BSP_RESET_MRCTLE_SELECT | BSP_RESET_MRCTL_BIT5_SHIFT), + + /** Enables writing to the registers related to MII converter reset control. */ + BSP_MODULE_RESET_MII = (BSP_RESET_MRCTLE_SELECT | BSP_RESET_MRCTL_BIT6_SHIFT), + + /** Enables writing to the registers related to PHOSTIF reset control. */ + BSP_MODULE_RESET_PHOSTIF = (BSP_RESET_MRCTLI_SELECT | BSP_RESET_MRCTL_BIT0_SHIFT), + + /** Enables writing to the registers related to SHOSTIF (Master bus clock domain) reset control. */ + BSP_MODULE_RESET_SHOSTIF_MASTER_BUS_CLOCK = (BSP_RESET_MRCTLI_SELECT | BSP_RESET_MRCTL_BIT1_SHIFT), + + /** Enables writing to the registers related to SHOSTIF (Slave bus clock domain) reset control. */ + BSP_MODULE_RESET_SHOSTIF_SLAVE_BUS_CLOCK = (BSP_RESET_MRCTLI_SELECT | BSP_RESET_MRCTL_BIT2_SHIFT), + + /** Enables writing to the registers related to SHOSTIF (IP clock domain) reset control. */ + BSP_MODULE_RESET_SHOSTIF_IP_CLOCK = (BSP_RESET_MRCTLI_SELECT | BSP_RESET_MRCTL_BIT3_SHIFT), +} bsp_module_reset_t; + +/** @} (end addtogroup BSP_MCU) */ + +/*********************************************************************************************************************** + * Exported global variables + **********************************************************************************************************************/ + +/*********************************************************************************************************************** + * Exported global functions (to be accessed by other files) + **********************************************************************************************************************/ + +/** Common macro for FSP header files. There is also a corresponding FSP_HEADER macro at the top of this file. */ +FSP_FOOTER + +#endif diff --git a/bsp/renesas/rzn2l_rsk/rzn/fsp/src/bsp/mcu/all/bsp_sbrk.c b/bsp/renesas/rzn2l_rsk/rzn/fsp/src/bsp/mcu/all/bsp_sbrk.c new file mode 100644 index 0000000000..35759244d0 --- /dev/null +++ b/bsp/renesas/rzn2l_rsk/rzn/fsp/src/bsp/mcu/all/bsp_sbrk.c @@ -0,0 +1,108 @@ +/*********************************************************************************************************************** + * Copyright [2020-2024] Renesas Electronics Corporation and/or its affiliates. All Rights Reserved. + * + * This software and documentation are supplied by Renesas Electronics Corporation and/or its affiliates and may only + * be used with products of Renesas Electronics Corp. and its affiliates ("Renesas"). No other uses are authorized. + * Renesas products are sold pursuant to Renesas terms and conditions of sale. Purchasers are solely responsible for + * the selection and use of Renesas products and Renesas assumes no liability. No license, express or implied, to any + * intellectual property right is granted by Renesas. This software is protected under all applicable laws, including + * copyright laws. Renesas reserves the right to change or discontinue this software and/or this documentation. + * THE SOFTWARE AND DOCUMENTATION IS DELIVERED TO YOU "AS IS," AND RENESAS MAKES NO REPRESENTATIONS OR WARRANTIES, AND + * TO THE FULLEST EXTENT PERMISSIBLE UNDER APPLICABLE LAW, DISCLAIMS ALL WARRANTIES, WHETHER EXPLICITLY OR IMPLICITLY, + * INCLUDING WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE, AND NONINFRINGEMENT, WITH RESPECT TO THE + * SOFTWARE OR DOCUMENTATION. RENESAS SHALL HAVE NO LIABILITY ARISING OUT OF ANY SECURITY VULNERABILITY OR BREACH. + * TO THE MAXIMUM EXTENT PERMITTED BY LAW, IN NO EVENT WILL RENESAS BE LIABLE TO YOU IN CONNECTION WITH THE SOFTWARE OR + * DOCUMENTATION (OR ANY PERSON OR ENTITY CLAIMING RIGHTS DERIVED FROM YOU) FOR ANY LOSS, DAMAGES, OR CLAIMS WHATSOEVER, + * INCLUDING, WITHOUT LIMITATION, ANY DIRECT, CONSEQUENTIAL, SPECIAL, INDIRECT, PUNITIVE, OR INCIDENTAL DAMAGES; ANY + * LOST PROFITS, OTHER ECONOMIC DAMAGE, PROPERTY DAMAGE, OR PERSONAL INJURY; AND EVEN IF RENESAS HAS BEEN ADVISED OF THE + * POSSIBILITY OF SUCH LOSS, DAMAGES, CLAIMS OR COSTS. + **********************************************************************************************************************/ + +/*********************************************************************************************************************** + * Includes , "Project Includes" + **********************************************************************************************************************/ +#if defined(__GNUC__) && !defined(__ARMCC_VERSION) +#include +#include +#include "bsp_api.h" + +/*********************************************************************************************************************** + * Macro definitions + **********************************************************************************************************************/ + +/*********************************************************************************************************************** + * Typedef definitions + **********************************************************************************************************************/ + +/*********************************************************************************************************************** + * Private function prototypes + **********************************************************************************************************************/ + +/*********************************************************************************************************************** + * Exported global variables (to be accessed by other files) + **********************************************************************************************************************/ + +/*********************************************************************************************************************** + * Exported global functions (to be accessed by other files) + **********************************************************************************************************************/ + +/*********************************************************************************************************************** + * Private global variables and functions + **********************************************************************************************************************/ +caddr_t _sbrk(int incr); + +/*******************************************************************************************************************//** + * @addtogroup BSP_MCU + * @{ + **********************************************************************************************************************/ + +/*******************************************************************************************************************//** + * FSP implementation of the standard library _sbrk() function. + * @param[in] inc The number of bytes being asked for by malloc(). + * + * @note This function overrides the _sbrk version that exists in the newlib library that is linked with. + * That version improperly relies on the SP as part of it's allocation strategy. This is bad in general and + * worse in an RTOS environment. This version insures that we allocate the byte pool requested by malloc() + * only from our allocated HEAP area. Also note that newlib is pre-built and forces the pagesize used by + * malloc() to be 4096. That requires that we have a HEAP of at least 4096 if we are to support malloc(). + * @retval Address of allocated area if successful, -1 otherwise. + **********************************************************************************************************************/ +caddr_t _sbrk (int incr) +{ + extern char _Heap_Begin __asm("__HeapBase"); ///< Defined by the linker. + + extern char _Heap_Limit __asm("__HeapLimit"); ///< Defined by the linker. + + uint32_t bytes = (uint32_t) incr; + static char * current_heap_end = 0; + char * current_block_address; + + if (current_heap_end == 0) + { + current_heap_end = &_Heap_Begin; + } + + current_block_address = current_heap_end; + + /* The returned address must be aligned to a word boundary to prevent hard faults on cores that do not support + * unaligned access. We assume the heap starts on a word boundary and make sure all allocations are a multiple + * of 4. */ + bytes = (bytes + 3U) & (~3U); + if (current_heap_end + bytes > &_Heap_Limit) + { + /** Heap has overflowed */ + errno = ENOMEM; + + return (caddr_t) -1; + } + + current_heap_end += bytes; + + return (caddr_t) current_block_address; +} + +#endif + +/******************************************************************************************************************//** + * @} (end addtogroup BSP_MCU) + *********************************************************************************************************************/ diff --git a/bsp/renesas/rzn2l_rsk/rzn/fsp/src/bsp/mcu/all/bsp_tfu.h b/bsp/renesas/rzn2l_rsk/rzn/fsp/src/bsp/mcu/all/bsp_tfu.h new file mode 100644 index 0000000000..42304d7d02 --- /dev/null +++ b/bsp/renesas/rzn2l_rsk/rzn/fsp/src/bsp/mcu/all/bsp_tfu.h @@ -0,0 +1,228 @@ +/*********************************************************************************************************************** + * Copyright [2020-2024] Renesas Electronics Corporation and/or its affiliates. All Rights Reserved. + * + * This software and documentation are supplied by Renesas Electronics Corporation and/or its affiliates and may only + * be used with products of Renesas Electronics Corp. and its affiliates ("Renesas"). No other uses are authorized. + * Renesas products are sold pursuant to Renesas terms and conditions of sale. Purchasers are solely responsible for + * the selection and use of Renesas products and Renesas assumes no liability. No license, express or implied, to any + * intellectual property right is granted by Renesas. This software is protected under all applicable laws, including + * copyright laws. Renesas reserves the right to change or discontinue this software and/or this documentation. + * THE SOFTWARE AND DOCUMENTATION IS DELIVERED TO YOU "AS IS," AND RENESAS MAKES NO REPRESENTATIONS OR WARRANTIES, AND + * TO THE FULLEST EXTENT PERMISSIBLE UNDER APPLICABLE LAW, DISCLAIMS ALL WARRANTIES, WHETHER EXPLICITLY OR IMPLICITLY, + * INCLUDING WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE, AND NONINFRINGEMENT, WITH RESPECT TO THE + * SOFTWARE OR DOCUMENTATION. RENESAS SHALL HAVE NO LIABILITY ARISING OUT OF ANY SECURITY VULNERABILITY OR BREACH. + * TO THE MAXIMUM EXTENT PERMITTED BY LAW, IN NO EVENT WILL RENESAS BE LIABLE TO YOU IN CONNECTION WITH THE SOFTWARE OR + * DOCUMENTATION (OR ANY PERSON OR ENTITY CLAIMING RIGHTS DERIVED FROM YOU) FOR ANY LOSS, DAMAGES, OR CLAIMS WHATSOEVER, + * INCLUDING, WITHOUT LIMITATION, ANY DIRECT, CONSEQUENTIAL, SPECIAL, INDIRECT, PUNITIVE, OR INCIDENTAL DAMAGES; ANY + * LOST PROFITS, OTHER ECONOMIC DAMAGE, PROPERTY DAMAGE, OR PERSONAL INJURY; AND EVEN IF RENESAS HAS BEEN ADVISED OF THE + * POSSIBILITY OF SUCH LOSS, DAMAGES, CLAIMS OR COSTS. + **********************************************************************************************************************/ + +#ifndef RENESAS_TFU +#define RENESAS_TFU + +/*********************************************************************************************************************** + * Includes , "Project Includes" + **********************************************************************************************************************/ + +/* Mathematical Functions includes. */ +#ifdef __cplusplus + #include +#else + #include +#endif + +/** Common macro for FSP header files. There is also a corresponding FSP_FOOTER macro at the end of this file. */ +FSP_HEADER + +/*******************************************************************************************************************//** + * @addtogroup BSP_MCU + * @{ + **********************************************************************************************************************/ + +/*********************************************************************************************************************** + * Macro definitions + **********************************************************************************************************************/ + +#define R_TFU_HYPOT_SCALING_FACTOR 0.607252935F + +#ifdef __GNUC__ /* and (arm)clang */ + #if (__STDC_VERSION__ < 199901L) && defined(__STRICT_ANSI__) && !defined(__cplusplus) + +/* No form of inline is available, it happens only when -std=c89, gnu89 and + * above are OK */ + #warning \ + "-std=c89 doesn't support type checking on TFU. Please use -std=gnu89 or higher for example -std=c99" + #else + #ifdef __GNUC_GNU_INLINE__ + +/* gnu89 semantics of inline and extern inline are essentially the exact + * opposite of those in C99 */ + #define BSP_TFU_INLINE extern inline __attribute__((always_inline)) + #else /* __GNUC_STDC_INLINE__ */ + #define BSP_TFU_INLINE static inline __attribute__((always_inline)) + #endif + #endif +#elif __ICCARM__ + #define BSP_TFU_INLINE +#else + #error "Compiler not supported!" +#endif + +#if BSP_CFG_USE_TFU_MATHLIB + #define sinf(x) __sinf(x) + #define cosf(x) __cosf(x) + #define atan2f(y, x) __atan2f(y, x) + #define hypotf(x, y) __hypotf(x, y) + #define atan2hypotf(y, x, a, h) __atan2hypotf(y, x, a, h) + #define sincosf(a, s, c) __sincosf(a, s, c) +#endif + +/*********************************************************************************************************************** + * Typedef definitions + **********************************************************************************************************************/ + +/*********************************************************************************************************************** + * Exported global variables + **********************************************************************************************************************/ + +/*********************************************************************************************************************** + * Exported global functions (to be accessed by other files) + **********************************************************************************************************************/ + +/*********************************************************************************************************************** + * Inline Functions + **********************************************************************************************************************/ + +/*******************************************************************************************************************//** + * Calculates sine of the given angle. + * @param[in] angle The value of an angle in radian. + * + * @retval Sine value of an angle. + **********************************************************************************************************************/ +#if __ICCARM__ + #pragma inline = forced +#endif +BSP_TFU_INLINE float __sinf (float angle) +{ + /* Set the angle to R_TFU->SCDT1 */ + R_TFU->SCDT1 = angle; + + /* Read sin from R_TFU->SCDT1 */ + return R_TFU->SCDT1; +} + +/*******************************************************************************************************************//** + * Calculates cosine of the given angle. + * @param[in] angle The value of an angle in radian. + * + * @retval Cosine value of an angle. + **********************************************************************************************************************/ +#if __ICCARM__ + #pragma inline = forced +#endif +BSP_TFU_INLINE float __cosf (float angle) +{ + /* Set the angle to R_TFU->SCDT1 */ + R_TFU->SCDT1 = angle; + + /* Read cos from R_TFU->SCDT1 */ + return R_TFU->SCDT0; +} + +/*******************************************************************************************************************//** + * Calculates sine and cosine of the given angle. + * @param[in] angle The value of an angle in radian. + * @param[out] sin Sine value of an angle. + * @param[out] cos Cosine value of an angle. + **********************************************************************************************************************/ +#if __ICCARM__ + #pragma inline = forced +#endif +BSP_TFU_INLINE void __sincosf (float angle, float * sin, float * cos) +{ + /* Set the angle to R_TFU->SCDT1 */ + R_TFU->SCDT1 = angle; + + /* Read sin from R_TFU->SCDT1 */ + *sin = R_TFU->SCDT1; + + /* Read sin from R_TFU->SCDT1 */ + *cos = R_TFU->SCDT0; +} + +/*******************************************************************************************************************//** + * Calculates the arc tangent based on given X-cordinate and Y-cordinate values. + * @param[in] y_cord Y-Axis cordinate value. + * @param[in] x_cord X-Axis cordinate value. + * + * @retval Arc tangent for given values. + **********************************************************************************************************************/ +#if __ICCARM__ + #pragma inline = forced +#endif +BSP_TFU_INLINE float __atan2f (float y_cord, float x_cord) +{ + /* Set X-cordinate to R_TFU->ATDT0 */ + R_TFU->ATDT0 = x_cord; + + /* set Y-cordinate to R_TFU->ATDT1 */ + R_TFU->ATDT1 = y_cord; + + /* Read arctan(y/x) from R_TFU->ATDT1 */ + return R_TFU->ATDT1; +} + +/*******************************************************************************************************************//** + * Calculates the hypotenuse based on given X-cordinate and Y-cordinate values. + * @param[in] y_cord Y-cordinate value. + * @param[in] x_cord X-cordinate value. + * + * @retval Hypotenuse for given values. + **********************************************************************************************************************/ +#if __ICCARM__ + #pragma inline = forced +#endif +BSP_TFU_INLINE float __hypotf (float x_cord, float y_cord) +{ + /* Set X-coordinate to R_TFU->ATDT0 */ + R_TFU->ATDT0 = x_cord; + + /* set Y-coordinate to R_TFU->ATDT1 */ + R_TFU->ATDT1 = y_cord; + + /* Read sqrt (x_cord2 + y_cord2) from R_TFU->ATDT0 */ + return R_TFU->ATDT0 * R_TFU_HYPOT_SCALING_FACTOR; +} + +/*******************************************************************************************************************//** + * Calculates the arc tangent and hypotenuse based on given X-cordinate and Y-cordinate values. + * @param[in] y_cord Y-cordinate value. + * @param[in] x_cord X-cordinate value. + * @param[out] atan2 Arc tangent for given values. + * @param[out] hypot Hypotenuse for given values. + **********************************************************************************************************************/ +#if __ICCARM__ + #pragma inline = forced +#endif +BSP_TFU_INLINE void __atan2hypotf (float y_cord, float x_cord, float * atan2, float * hypot) +{ + /* Set X-coordinate to R_TFU->ATDT0 */ + R_TFU->ATDT0 = x_cord; + + /* set Y-coordinate to R_TFU->ATDT1 */ + R_TFU->ATDT1 = y_cord; + + /* Read arctan(y/x) from R_TFU->ATDT1 */ + *atan2 = R_TFU->ATDT1; + + /* Read sqrt (x_cord2 + y_cord2) from R_TFU->ATDT0 */ + *hypot = R_TFU->ATDT0 * R_TFU_HYPOT_SCALING_FACTOR; +} + +/** @} (end addtogroup BSP_MCU) */ + +/** Common macro for FSP header files. There is also a corresponding FSP_HEADER macro at the top of this file. */ +FSP_FOOTER + +#endif /* RENESAS_TFU */ diff --git a/bsp/renesas/rzn2l_rsk/rzn/fsp/src/bsp/mcu/all/cr/bsp_cache_core.c b/bsp/renesas/rzn2l_rsk/rzn/fsp/src/bsp/mcu/all/cr/bsp_cache_core.c new file mode 100644 index 0000000000..f85e3dbdae --- /dev/null +++ b/bsp/renesas/rzn2l_rsk/rzn/fsp/src/bsp/mcu/all/cr/bsp_cache_core.c @@ -0,0 +1,48 @@ +/*********************************************************************************************************************** + * Copyright [2020-2024] Renesas Electronics Corporation and/or its affiliates. All Rights Reserved. + * + * This software and documentation are supplied by Renesas Electronics Corporation and/or its affiliates and may only + * be used with products of Renesas Electronics Corp. and its affiliates ("Renesas"). No other uses are authorized. + * Renesas products are sold pursuant to Renesas terms and conditions of sale. Purchasers are solely responsible for + * the selection and use of Renesas products and Renesas assumes no liability. No license, express or implied, to any + * intellectual property right is granted by Renesas. This software is protected under all applicable laws, including + * copyright laws. Renesas reserves the right to change or discontinue this software and/or this documentation. + * THE SOFTWARE AND DOCUMENTATION IS DELIVERED TO YOU "AS IS," AND RENESAS MAKES NO REPRESENTATIONS OR WARRANTIES, AND + * TO THE FULLEST EXTENT PERMISSIBLE UNDER APPLICABLE LAW, DISCLAIMS ALL WARRANTIES, WHETHER EXPLICITLY OR IMPLICITLY, + * INCLUDING WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE, AND NONINFRINGEMENT, WITH RESPECT TO THE + * SOFTWARE OR DOCUMENTATION. RENESAS SHALL HAVE NO LIABILITY ARISING OUT OF ANY SECURITY VULNERABILITY OR BREACH. + * TO THE MAXIMUM EXTENT PERMITTED BY LAW, IN NO EVENT WILL RENESAS BE LIABLE TO YOU IN CONNECTION WITH THE SOFTWARE OR + * DOCUMENTATION (OR ANY PERSON OR ENTITY CLAIMING RIGHTS DERIVED FROM YOU) FOR ANY LOSS, DAMAGES, OR CLAIMS WHATSOEVER, + * INCLUDING, WITHOUT LIMITATION, ANY DIRECT, CONSEQUENTIAL, SPECIAL, INDIRECT, PUNITIVE, OR INCIDENTAL DAMAGES; ANY + * LOST PROFITS, OTHER ECONOMIC DAMAGE, PROPERTY DAMAGE, OR PERSONAL INJURY; AND EVEN IF RENESAS HAS BEEN ADVISED OF THE + * POSSIBILITY OF SUCH LOSS, DAMAGES, CLAIMS OR COSTS. + **********************************************************************************************************************/ + +/*********************************************************************************************************************** + * Includes , "Project Includes" + **********************************************************************************************************************/ +#include "bsp_api.h" + +/*********************************************************************************************************************** + * Macro definitions + **********************************************************************************************************************/ + +/*********************************************************************************************************************** + * Typedef definitions + **********************************************************************************************************************/ + +/*********************************************************************************************************************** + * Exported global variables (to be accessed by other files) + **********************************************************************************************************************/ + +/*********************************************************************************************************************** + * Private global variables and functions + **********************************************************************************************************************/ + +/*******************************************************************************************************************//** + * Powers on and off the L3 cache way. + **********************************************************************************************************************/ +void r_bsp_cache_l3_power_ctrl (void) +{ + /* Does nothing because CR52 does not have the CLUSTERPWRCTLR register. */ +} diff --git a/bsp/renesas/rzn2l_rsk/rzn/fsp/src/bsp/mcu/all/cr/bsp_cache_core.h b/bsp/renesas/rzn2l_rsk/rzn/fsp/src/bsp/mcu/all/cr/bsp_cache_core.h new file mode 100644 index 0000000000..a0ca23c5e6 --- /dev/null +++ b/bsp/renesas/rzn2l_rsk/rzn/fsp/src/bsp/mcu/all/cr/bsp_cache_core.h @@ -0,0 +1,52 @@ +/*********************************************************************************************************************** + * Copyright [2020-2024] Renesas Electronics Corporation and/or its affiliates. All Rights Reserved. + * + * This software and documentation are supplied by Renesas Electronics Corporation and/or its affiliates and may only + * be used with products of Renesas Electronics Corp. and its affiliates ("Renesas"). No other uses are authorized. + * Renesas products are sold pursuant to Renesas terms and conditions of sale. Purchasers are solely responsible for + * the selection and use of Renesas products and Renesas assumes no liability. No license, express or implied, to any + * intellectual property right is granted by Renesas. This software is protected under all applicable laws, including + * copyright laws. Renesas reserves the right to change or discontinue this software and/or this documentation. + * THE SOFTWARE AND DOCUMENTATION IS DELIVERED TO YOU "AS IS," AND RENESAS MAKES NO REPRESENTATIONS OR WARRANTIES, AND + * TO THE FULLEST EXTENT PERMISSIBLE UNDER APPLICABLE LAW, DISCLAIMS ALL WARRANTIES, WHETHER EXPLICITLY OR IMPLICITLY, + * INCLUDING WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE, AND NONINFRINGEMENT, WITH RESPECT TO THE + * SOFTWARE OR DOCUMENTATION. RENESAS SHALL HAVE NO LIABILITY ARISING OUT OF ANY SECURITY VULNERABILITY OR BREACH. + * TO THE MAXIMUM EXTENT PERMITTED BY LAW, IN NO EVENT WILL RENESAS BE LIABLE TO YOU IN CONNECTION WITH THE SOFTWARE OR + * DOCUMENTATION (OR ANY PERSON OR ENTITY CLAIMING RIGHTS DERIVED FROM YOU) FOR ANY LOSS, DAMAGES, OR CLAIMS WHATSOEVER, + * INCLUDING, WITHOUT LIMITATION, ANY DIRECT, CONSEQUENTIAL, SPECIAL, INDIRECT, PUNITIVE, OR INCIDENTAL DAMAGES; ANY + * LOST PROFITS, OTHER ECONOMIC DAMAGE, PROPERTY DAMAGE, OR PERSONAL INJURY; AND EVEN IF RENESAS HAS BEEN ADVISED OF THE + * POSSIBILITY OF SUCH LOSS, DAMAGES, CLAIMS OR COSTS. + **********************************************************************************************************************/ + +#ifndef BSP_CACHE_CORE_H +#define BSP_CACHE_CORE_H + +/*********************************************************************************************************************** + * Includes , "Project Includes" + **********************************************************************************************************************/ + +/** Common macro for FSP header files. There is also a corresponding FSP_FOOTER macro at the end of this file. */ +FSP_HEADER + +/*********************************************************************************************************************** + * Macro definitions + **********************************************************************************************************************/ + +/*********************************************************************************************************************** + * Typedef definitions + **********************************************************************************************************************/ + +/*********************************************************************************************************************** + * Exported global variables + **********************************************************************************************************************/ + +/*********************************************************************************************************************** + * Exported global functions (to be accessed by other files) + **********************************************************************************************************************/ + +void r_bsp_cache_l3_power_ctrl(void); + +/** Common macro for FSP header files. There is also a corresponding FSP_HEADER macro at the top of this file. */ +FSP_FOOTER + +#endif diff --git a/bsp/renesas/rzn2l_rsk/rzn/fsp/src/bsp/mcu/all/cr/bsp_delay_core.c b/bsp/renesas/rzn2l_rsk/rzn/fsp/src/bsp/mcu/all/cr/bsp_delay_core.c new file mode 100644 index 0000000000..9eea2c8a1d --- /dev/null +++ b/bsp/renesas/rzn2l_rsk/rzn/fsp/src/bsp/mcu/all/cr/bsp_delay_core.c @@ -0,0 +1,63 @@ +/*********************************************************************************************************************** + * Copyright [2020-2024] Renesas Electronics Corporation and/or its affiliates. All Rights Reserved. + * + * This software and documentation are supplied by Renesas Electronics Corporation and/or its affiliates and may only + * be used with products of Renesas Electronics Corp. and its affiliates ("Renesas"). No other uses are authorized. + * Renesas products are sold pursuant to Renesas terms and conditions of sale. Purchasers are solely responsible for + * the selection and use of Renesas products and Renesas assumes no liability. No license, express or implied, to any + * intellectual property right is granted by Renesas. This software is protected under all applicable laws, including + * copyright laws. Renesas reserves the right to change or discontinue this software and/or this documentation. + * THE SOFTWARE AND DOCUMENTATION IS DELIVERED TO YOU "AS IS," AND RENESAS MAKES NO REPRESENTATIONS OR WARRANTIES, AND + * TO THE FULLEST EXTENT PERMISSIBLE UNDER APPLICABLE LAW, DISCLAIMS ALL WARRANTIES, WHETHER EXPLICITLY OR IMPLICITLY, + * INCLUDING WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE, AND NONINFRINGEMENT, WITH RESPECT TO THE + * SOFTWARE OR DOCUMENTATION. RENESAS SHALL HAVE NO LIABILITY ARISING OUT OF ANY SECURITY VULNERABILITY OR BREACH. + * TO THE MAXIMUM EXTENT PERMITTED BY LAW, IN NO EVENT WILL RENESAS BE LIABLE TO YOU IN CONNECTION WITH THE SOFTWARE OR + * DOCUMENTATION (OR ANY PERSON OR ENTITY CLAIMING RIGHTS DERIVED FROM YOU) FOR ANY LOSS, DAMAGES, OR CLAIMS WHATSOEVER, + * INCLUDING, WITHOUT LIMITATION, ANY DIRECT, CONSEQUENTIAL, SPECIAL, INDIRECT, PUNITIVE, OR INCIDENTAL DAMAGES; ANY + * LOST PROFITS, OTHER ECONOMIC DAMAGE, PROPERTY DAMAGE, OR PERSONAL INJURY; AND EVEN IF RENESAS HAS BEEN ADVISED OF THE + * POSSIBILITY OF SUCH LOSS, DAMAGES, CLAIMS OR COSTS. + **********************************************************************************************************************/ + +/*********************************************************************************************************************** + * Includes , "Project Includes" + **********************************************************************************************************************/ +#include "bsp_api.h" + +/*********************************************************************************************************************** + * Macro definitions + **********************************************************************************************************************/ + +/*********************************************************************************************************************** + * Typedef definitions + **********************************************************************************************************************/ + +/*********************************************************************************************************************** + * Exported global variables (to be accessed by other files) + **********************************************************************************************************************/ + +/*********************************************************************************************************************** + * Private global variables and functions + **********************************************************************************************************************/ + +/*******************************************************************************************************************//** + * This assembly language routine takes roughly 4 cycles per loop. 2 additional cycles + * occur when the loop exits. The 'naked' attribute indicates that the specified function does not need + * prologue/epilogue sequences generated by the compiler. + * @param[in] loop_cnt The number of loops to iterate. + **********************************************************************************************************************/ +BSP_ATTRIBUTE_STACKLESS void r_bsp_software_delay_loop (__attribute__((unused)) uint32_t loop_cnt) +{ + __asm volatile ("sw_delay_loop: \n" + +#if defined(__ICCARM__) || defined(__ARMCC_VERSION) + " subs r0, #1 \n" ///< 1 cycle +#elif defined(__GNUC__) + " sub r0, r0, #1 \n" ///< 1 cycle +#endif + + " cmp r0, #0 \n" ///< 1 cycle + + " bne sw_delay_loop \n" ///< 2 cycles + + " bx lr \n"); ///< 2 cycles +} diff --git a/bsp/renesas/rzn2l_rsk/rzn/fsp/src/bsp/mcu/all/cr/bsp_delay_core.h b/bsp/renesas/rzn2l_rsk/rzn/fsp/src/bsp/mcu/all/cr/bsp_delay_core.h new file mode 100644 index 0000000000..1e31cd2b4e --- /dev/null +++ b/bsp/renesas/rzn2l_rsk/rzn/fsp/src/bsp/mcu/all/cr/bsp_delay_core.h @@ -0,0 +1,63 @@ +/*********************************************************************************************************************** + * Copyright [2020-2024] Renesas Electronics Corporation and/or its affiliates. All Rights Reserved. + * + * This software and documentation are supplied by Renesas Electronics Corporation and/or its affiliates and may only + * be used with products of Renesas Electronics Corp. and its affiliates ("Renesas"). No other uses are authorized. + * Renesas products are sold pursuant to Renesas terms and conditions of sale. Purchasers are solely responsible for + * the selection and use of Renesas products and Renesas assumes no liability. No license, express or implied, to any + * intellectual property right is granted by Renesas. This software is protected under all applicable laws, including + * copyright laws. Renesas reserves the right to change or discontinue this software and/or this documentation. + * THE SOFTWARE AND DOCUMENTATION IS DELIVERED TO YOU "AS IS," AND RENESAS MAKES NO REPRESENTATIONS OR WARRANTIES, AND + * TO THE FULLEST EXTENT PERMISSIBLE UNDER APPLICABLE LAW, DISCLAIMS ALL WARRANTIES, WHETHER EXPLICITLY OR IMPLICITLY, + * INCLUDING WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE, AND NONINFRINGEMENT, WITH RESPECT TO THE + * SOFTWARE OR DOCUMENTATION. RENESAS SHALL HAVE NO LIABILITY ARISING OUT OF ANY SECURITY VULNERABILITY OR BREACH. + * TO THE MAXIMUM EXTENT PERMITTED BY LAW, IN NO EVENT WILL RENESAS BE LIABLE TO YOU IN CONNECTION WITH THE SOFTWARE OR + * DOCUMENTATION (OR ANY PERSON OR ENTITY CLAIMING RIGHTS DERIVED FROM YOU) FOR ANY LOSS, DAMAGES, OR CLAIMS WHATSOEVER, + * INCLUDING, WITHOUT LIMITATION, ANY DIRECT, CONSEQUENTIAL, SPECIAL, INDIRECT, PUNITIVE, OR INCIDENTAL DAMAGES; ANY + * LOST PROFITS, OTHER ECONOMIC DAMAGE, PROPERTY DAMAGE, OR PERSONAL INJURY; AND EVEN IF RENESAS HAS BEEN ADVISED OF THE + * POSSIBILITY OF SUCH LOSS, DAMAGES, CLAIMS OR COSTS. + **********************************************************************************************************************/ + +#ifndef BSP_DELAY_CORE_H +#define BSP_DELAY_CORE_H + +/*********************************************************************************************************************** + * Includes , "Project Includes" + **********************************************************************************************************************/ + +/** Common macro for FSP header files. There is also a corresponding FSP_FOOTER macro at the end of this file. */ +FSP_HEADER + +/*********************************************************************************************************************** + * Macro definitions + **********************************************************************************************************************/ + +/* The number of cycles required per software delay loop. */ +#ifndef BSP_DELAY_LOOP_CYCLES + #define BSP_DELAY_LOOP_CYCLES (4) +#endif + +/* Calculates the number of delay loops to pass to r_bsp_software_delay_loop to achieve at least the requested cycle + * count delay. This is 1 loop longer than optimal if cycles is a multiple of BSP_DELAY_LOOP_CYCLES, but it ensures + * the requested number of loops is at least 1 since r_bsp_software_delay_loop cannot be called with a loop count + * of 0. */ +#define BSP_DELAY_LOOPS_CALCULATE(cycles) (((cycles) / BSP_DELAY_LOOP_CYCLES) + 1U) + +/*********************************************************************************************************************** + * Typedef definitions + **********************************************************************************************************************/ + +/*********************************************************************************************************************** + * Exported global variables + **********************************************************************************************************************/ + +/*********************************************************************************************************************** + * Exported global functions (to be accessed by other files) + **********************************************************************************************************************/ + +BSP_ATTRIBUTE_STACKLESS void r_bsp_software_delay_loop(uint32_t loop_cnt); + +/** Common macro for FSP header files. There is also a corresponding FSP_HEADER macro at the top of this file. */ +FSP_FOOTER + +#endif diff --git a/bsp/renesas/rzn2l_rsk/rzn/fsp/src/bsp/mcu/all/cr/bsp_irq_core.c b/bsp/renesas/rzn2l_rsk/rzn/fsp/src/bsp/mcu/all/cr/bsp_irq_core.c new file mode 100644 index 0000000000..d31ab2fb5b --- /dev/null +++ b/bsp/renesas/rzn2l_rsk/rzn/fsp/src/bsp/mcu/all/cr/bsp_irq_core.c @@ -0,0 +1,146 @@ +/*********************************************************************************************************************** + * Copyright [2020-2024] Renesas Electronics Corporation and/or its affiliates. All Rights Reserved. + * + * This software and documentation are supplied by Renesas Electronics Corporation and/or its affiliates and may only + * be used with products of Renesas Electronics Corp. and its affiliates ("Renesas"). No other uses are authorized. + * Renesas products are sold pursuant to Renesas terms and conditions of sale. Purchasers are solely responsible for + * the selection and use of Renesas products and Renesas assumes no liability. No license, express or implied, to any + * intellectual property right is granted by Renesas. This software is protected under all applicable laws, including + * copyright laws. Renesas reserves the right to change or discontinue this software and/or this documentation. + * THE SOFTWARE AND DOCUMENTATION IS DELIVERED TO YOU "AS IS," AND RENESAS MAKES NO REPRESENTATIONS OR WARRANTIES, AND + * TO THE FULLEST EXTENT PERMISSIBLE UNDER APPLICABLE LAW, DISCLAIMS ALL WARRANTIES, WHETHER EXPLICITLY OR IMPLICITLY, + * INCLUDING WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE, AND NONINFRINGEMENT, WITH RESPECT TO THE + * SOFTWARE OR DOCUMENTATION. RENESAS SHALL HAVE NO LIABILITY ARISING OUT OF ANY SECURITY VULNERABILITY OR BREACH. + * TO THE MAXIMUM EXTENT PERMITTED BY LAW, IN NO EVENT WILL RENESAS BE LIABLE TO YOU IN CONNECTION WITH THE SOFTWARE OR + * DOCUMENTATION (OR ANY PERSON OR ENTITY CLAIMING RIGHTS DERIVED FROM YOU) FOR ANY LOSS, DAMAGES, OR CLAIMS WHATSOEVER, + * INCLUDING, WITHOUT LIMITATION, ANY DIRECT, CONSEQUENTIAL, SPECIAL, INDIRECT, PUNITIVE, OR INCIDENTAL DAMAGES; ANY + * LOST PROFITS, OTHER ECONOMIC DAMAGE, PROPERTY DAMAGE, OR PERSONAL INJURY; AND EVEN IF RENESAS HAS BEEN ADVISED OF THE + * POSSIBILITY OF SUCH LOSS, DAMAGES, CLAIMS OR COSTS. + **********************************************************************************************************************/ + +/*********************************************************************************************************************** + * Includes , "Project Includes" + **********************************************************************************************************************/ +#include "bsp_api.h" + +/** ELC event definitions. */ + +/*********************************************************************************************************************** + * Macro definitions + **********************************************************************************************************************/ +#define BSP_IRQ_UINT32_MAX (0xFFFFFFFFU) + +#define BSP_PRV_CLEAR_REG_MAX (13U) +#define BSP_PRV_ALL_BIT_CLEAR (0xFFFFFFFFU) + +#define BSP_PRV_ID_MASK (0x000003FFU) +#define BSP_PRV_INTERRUPTABLE_NUM (32U) + +/*********************************************************************************************************************** + * Typedef definitions + **********************************************************************************************************************/ + +/*********************************************************************************************************************** + * Exported global variables (to be accessed by other files) + **********************************************************************************************************************/ +#if VECTOR_DATA_IRQ_COUNT > 0 +extern fsp_vector_t g_vector_table[BSP_ICU_VECTOR_MAX_ENTRIES]; +#endif +extern fsp_vector_t g_sgi_ppi_vector_table[BSP_CORTEX_VECTOR_TABLE_ENTRIES]; + +extern const uint32_t BSP_GICD_ICFGR_INIT[BSP_NON_SELECTABLE_ICFGR_MAX]; + +/* This table is used to store the context in the ISR. */ +void * gp_renesas_isr_context[BSP_ICU_VECTOR_MAX_ENTRIES + BSP_CORTEX_VECTOR_TABLE_ENTRIES]; + +/* GIC current interrupt ID and variable. */ +IRQn_Type g_current_interrupt_num[BSP_PRV_INTERRUPTABLE_NUM]; +uint8_t g_current_interrupt_pointer = 0; + +const bsp_interrupt_event_t g_interrupt_event_link_select[BSP_ICU_VECTOR_MAX_ENTRIES] BSP_WEAK_REFERENCE = +{ + (bsp_interrupt_event_t) 0 +}; + +/*********************************************************************************************************************** + * Private global variables and functions + **********************************************************************************************************************/ + +/*******************************************************************************************************************//** + * Using the vector table information section that has been built by the linker and placed into ROM in the + * .vector_info. section, this function will initialize the ICU so that configured ELC events will trigger interrupts + * in the NVIC. + * + **********************************************************************************************************************/ +void bsp_irq_core_cfg (void) +{ + uint32_t gicd_reg_num; + GICD_Type * GICD; + GICR_CONTROL_TARGET_Type * GICR_TARGET0_IFREG; + + GICD = BSP_PRV_GICD_ADDRESS; + GICR_TARGET0_IFREG = BSP_PRV_GICR_TARGET0_IFREG_ADDRESS; + + /* Enable Group1 interrupts from the GIC Distributor to the GIC CPU interface. */ + GICD->GICD_CTLR |= 0x00000002UL; + + /* Release Processor Sleep state of the target. */ + GICR_TARGET0_IFREG->GICR_WAKER = 0x00000000UL; + + /* Initialize GICD_ICFGR register for the edge-triggered interrupt. */ + for (gicd_reg_num = 0; gicd_reg_num < BSP_NON_SELECTABLE_ICFGR_MAX; gicd_reg_num++) + { + GICD->GICD_ICFGR[gicd_reg_num] = BSP_GICD_ICFGR_INIT[gicd_reg_num]; + } + + /* Clear the Pending and Active bit for the all interrupts. */ + for (gicd_reg_num = 0; gicd_reg_num < BSP_PRV_CLEAR_REG_MAX; gicd_reg_num++) + { + GICD->GICD_ICPENDR[gicd_reg_num] = BSP_PRV_ALL_BIT_CLEAR; + GICD->GICD_ICACTIVER[gicd_reg_num] = BSP_PRV_ALL_BIT_CLEAR; + } + + __asm volatile ("cpsie i \n" /* Enable IRQ Interrupts */ + "cpsie f \n" /* Enable FIQ Interrupts */ + "cpsie a \n" /* Enable SError Interrupts */ + "isb"); /* Ensuring Context-changing */ +} + +/*******************************************************************************************************************//** + * This function is called first when an interrupt is generated and branches to each interrupt isr function. + * + * @param[in] id GIC INTID used to identify the interrupt. + **********************************************************************************************************************/ +void bsp_common_interrupt_handler (uint32_t id) +{ + uint16_t gic_intid; + IRQn_Type irq; + + /* Get interrupt ID (GIC INTID). */ + gic_intid = (uint16_t) (id & BSP_PRV_ID_MASK); + + irq = (IRQn_Type) (gic_intid - BSP_CORTEX_VECTOR_TABLE_ENTRIES); + + /* Remain the interrupt number */ + g_current_interrupt_num[g_current_interrupt_pointer++] = irq; + __asm volatile ("dmb"); + + BSP_CFG_MULTIPLEX_INTERRUPT_ENABLE + +#if VECTOR_DATA_IRQ_COUNT > 0 + if (BSP_CORTEX_VECTOR_TABLE_ENTRIES <= gic_intid) + { + /* Branch to an interrupt handler. */ + g_vector_table[irq](); + } + else +#endif + { + /* Branch to an interrupt handler. */ + g_sgi_ppi_vector_table[gic_intid](); + } + + g_current_interrupt_pointer--; + + BSP_CFG_MULTIPLEX_INTERRUPT_DISABLE +} diff --git a/bsp/renesas/rzn2l_rsk/rzn/fsp/src/bsp/mcu/all/cr/bsp_irq_core.h b/bsp/renesas/rzn2l_rsk/rzn/fsp/src/bsp/mcu/all/cr/bsp_irq_core.h new file mode 100644 index 0000000000..60588e2325 --- /dev/null +++ b/bsp/renesas/rzn2l_rsk/rzn/fsp/src/bsp/mcu/all/cr/bsp_irq_core.h @@ -0,0 +1,347 @@ +/*********************************************************************************************************************** + * Copyright [2020-2024] Renesas Electronics Corporation and/or its affiliates. All Rights Reserved. + * + * This software and documentation are supplied by Renesas Electronics Corporation and/or its affiliates and may only + * be used with products of Renesas Electronics Corp. and its affiliates ("Renesas"). No other uses are authorized. + * Renesas products are sold pursuant to Renesas terms and conditions of sale. Purchasers are solely responsible for + * the selection and use of Renesas products and Renesas assumes no liability. No license, express or implied, to any + * intellectual property right is granted by Renesas. This software is protected under all applicable laws, including + * copyright laws. Renesas reserves the right to change or discontinue this software and/or this documentation. + * THE SOFTWARE AND DOCUMENTATION IS DELIVERED TO YOU "AS IS," AND RENESAS MAKES NO REPRESENTATIONS OR WARRANTIES, AND + * TO THE FULLEST EXTENT PERMISSIBLE UNDER APPLICABLE LAW, DISCLAIMS ALL WARRANTIES, WHETHER EXPLICITLY OR IMPLICITLY, + * INCLUDING WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE, AND NONINFRINGEMENT, WITH RESPECT TO THE + * SOFTWARE OR DOCUMENTATION. RENESAS SHALL HAVE NO LIABILITY ARISING OUT OF ANY SECURITY VULNERABILITY OR BREACH. + * TO THE MAXIMUM EXTENT PERMITTED BY LAW, IN NO EVENT WILL RENESAS BE LIABLE TO YOU IN CONNECTION WITH THE SOFTWARE OR + * DOCUMENTATION (OR ANY PERSON OR ENTITY CLAIMING RIGHTS DERIVED FROM YOU) FOR ANY LOSS, DAMAGES, OR CLAIMS WHATSOEVER, + * INCLUDING, WITHOUT LIMITATION, ANY DIRECT, CONSEQUENTIAL, SPECIAL, INDIRECT, PUNITIVE, OR INCIDENTAL DAMAGES; ANY + * LOST PROFITS, OTHER ECONOMIC DAMAGE, PROPERTY DAMAGE, OR PERSONAL INJURY; AND EVEN IF RENESAS HAS BEEN ADVISED OF THE + * POSSIBILITY OF SUCH LOSS, DAMAGES, CLAIMS OR COSTS. + **********************************************************************************************************************/ + +#ifndef BSP_IRQ_CORE_H +#define BSP_IRQ_CORE_H + +/*********************************************************************************************************************** + * Includes , "Project Includes" + **********************************************************************************************************************/ + +/** Common macro for FSP header files. There is also a corresponding FSP_FOOTER macro at the end of this file. */ +FSP_HEADER + +/*********************************************************************************************************************** + * Macro definitions + **********************************************************************************************************************/ +#define BSP_ICU_VECTOR_MAX_ENTRIES (BSP_VECTOR_TABLE_MAX_ENTRIES) + +#define BSP_PRV_GICD_ADDRESS (GICD0) +#define BSP_PRV_GICR_TARGET0_INTREG_ADDRESS (GICR0_TARGET0_INTREG) +#define BSP_PRV_GICR_TARGET0_IFREG_ADDRESS (GICR0_TARGET0_IFREG) + +#define BSP_EVENT_SGI_PPI_ARRAY_NUM (2U) +#define BSP_NON_SELECTABLE_ICFGR_MAX (BSP_VECTOR_TABLE_MAX_ENTRIES / BSP_INTERRUPT_TYPE_OFFSET) + +#define BSP_PRV_IRQ_CONFIG_MASK (0x000000FFU) +#define BSP_PRV_GICD_ICFGR_INT_CONFIG_MASK (1UL << 1UL) + +#define BSP_PRV_GIC_REG_STRIDE04 (4U) +#define BSP_PRV_GIC_REG_STRIDE16 (16U) +#define BSP_PRV_GIC_REG_STRIDE32 (32U) + +#define BSP_PRV_GIC_REG_BITS1 (1U) +#define BSP_PRV_GIC_REG_BITS2 (2U) +#define BSP_PRV_GIC_REG_BITS8 (8U) + +#define BSP_PRV_GIC_REG_MASK_1BIT (1U) + +#define BSP_PRV_GIC_LOWEST_PPI_INTERRUPT_NUM (-17) + +/*********************************************************************************************************************** + * Typedef definitions + **********************************************************************************************************************/ + +/*********************************************************************************************************************** + * Exported global variables + **********************************************************************************************************************/ +extern void * gp_renesas_isr_context[BSP_ICU_VECTOR_MAX_ENTRIES + BSP_CORTEX_VECTOR_TABLE_ENTRIES]; + +/*********************************************************************************************************************** + * Exported global functions (to be accessed by other files) + **********************************************************************************************************************/ + +/*********************************************************************************************************************** + * Inline Functions + **********************************************************************************************************************/ + +/*******************************************************************************************************************//** + * @brief Sets the ISR context associated with the requested IRQ. + * + * @param[in] irq IRQ number (parameter checking must ensure the IRQ number is valid before calling this + * function. + * @param[in] p_context ISR context for IRQ. + **********************************************************************************************************************/ +__STATIC_INLINE void r_fsp_irq_context_set (IRQn_Type const irq, void * p_context) +{ + /* This provides access to the ISR context array defined in bsp_irq.c. This is an inline function instead of + * being part of bsp_irq.c for performance considerations because it is used in interrupt service routines. */ + gp_renesas_isr_context[irq + BSP_VECTOR_NUM_OFFSET] = p_context; +} + +/*******************************************************************************************************************//** + * Clear the GIC pending interrupt. + * + * @param[in] irq Interrupt for which to clear the Pending bit. Note that the enums listed for IRQn_Type are + * only those for the Cortex Processor Exceptions Numbers. + **********************************************************************************************************************/ +__STATIC_INLINE void r_bsp_irq_clear_pending (IRQn_Type irq) +{ + GICD_Type * GICD; + GICR_SGI_PPI_Type * GICR_TARGET0_INTREG; + + GICD = BSP_PRV_GICD_ADDRESS; + GICR_TARGET0_INTREG = BSP_PRV_GICR_TARGET0_INTREG_ADDRESS; + + if (irq >= 0) + { + uint32_t _irq = (uint32_t) irq; + GICD->GICD_ICPENDR[_irq / BSP_PRV_GIC_REG_STRIDE32] = + (uint32_t) (BSP_PRV_GIC_REG_BITS1 << (_irq % BSP_PRV_GIC_REG_STRIDE32)); + } + else + { + uint32_t _irq = (uint32_t) (irq + BSP_VECTOR_NUM_OFFSET); + GICR_TARGET0_INTREG->GICR_ICPENDR0 = (uint32_t) (BSP_PRV_GIC_REG_BITS1 << _irq); + } +} + +/*******************************************************************************************************************//** + * Get the GIC pending interrupt. + * + * @param[in] irq Interrupt that gets a pending bit.. Note that the enums listed for IRQn_Type are + * only those for the Cortex Processor Exceptions Numbers. + * + * @return Value indicating the status of the level interrupt. + **********************************************************************************************************************/ +__STATIC_INLINE uint32_t r_bsp_irq_pending_get (IRQn_Type irq) +{ + GICD_Type * GICD; + GICR_SGI_PPI_Type * GICR_TARGET0_INTREG; + uint32_t value = 0; + + GICD = BSP_PRV_GICD_ADDRESS; + GICR_TARGET0_INTREG = BSP_PRV_GICR_TARGET0_INTREG_ADDRESS; + + if (irq >= 0) + { + uint32_t _irq = (uint32_t) irq; + uint32_t shift = (_irq % BSP_PRV_GIC_REG_STRIDE32); + value = (GICD->GICD_ISPENDR[_irq / BSP_PRV_GIC_REG_STRIDE32] >> shift) & (uint32_t) (BSP_PRV_GIC_REG_MASK_1BIT); + } + else + { + uint32_t _irq = (uint32_t) (irq + BSP_VECTOR_NUM_OFFSET); + uint32_t shift = _irq; + value = (GICR_TARGET0_INTREG->GICR_ISPENDR0 >> shift) & (uint32_t) (BSP_PRV_GIC_REG_MASK_1BIT); + } + + return value; +} + +/*******************************************************************************************************************//** + * Sets the interrupt priority and context. + * + * @param[in] irq The IRQ number to configure. + * @param[in] priority GIC priority of the interrupt + **********************************************************************************************************************/ +__STATIC_INLINE void r_bsp_irq_cfg (IRQn_Type const irq, uint32_t priority) +{ +#if (52U == __CORTEX_R) + GICD_Type * GICD; + GICR_SGI_PPI_Type * GICR_TARGET0_INTREG; + + GICD = BSP_PRV_GICD_ADDRESS; + GICR_TARGET0_INTREG = BSP_PRV_GICR_TARGET0_INTREG_ADDRESS; + + if (irq >= 0) + { + uint32_t _irq = (uint32_t) irq; + + /* Set the interrupt group to 1 (IRQ) */ + GICD->GICD_IGROUPR[_irq / BSP_PRV_GIC_REG_STRIDE32] |= + (uint32_t) (BSP_PRV_GIC_REG_BITS1 << (_irq % BSP_PRV_GIC_REG_STRIDE32)); + + /* Set the interrupt priority */ + GICD->GICD_IPRIORITYR[_irq / BSP_PRV_GIC_REG_STRIDE04] &= + (uint32_t) (~(BSP_PRV_IRQ_CONFIG_MASK << (BSP_PRV_GIC_REG_BITS8 * (_irq % BSP_PRV_GIC_REG_STRIDE04)))); + GICD->GICD_IPRIORITYR[_irq / BSP_PRV_GIC_REG_STRIDE04] |= + (priority << + (BSP_FEATURE_BSP_IRQ_PRIORITY_POS_BIT + (BSP_PRV_GIC_REG_BITS8 * (_irq % BSP_PRV_GIC_REG_STRIDE04)))); + } + else + { + uint32_t _irq = (uint32_t) (irq + BSP_VECTOR_NUM_OFFSET); + + /* Set the interrupt group to 1 (IRQ) */ + GICR_TARGET0_INTREG->GICR_IGROUPR0 |= (uint32_t) (BSP_PRV_GIC_REG_BITS1 << _irq); + + /* Set the interrupt priority */ + GICR_TARGET0_INTREG->GICR_IPRIORITYR[_irq / BSP_PRV_GIC_REG_STRIDE04] &= + (uint32_t) (~(BSP_PRV_IRQ_CONFIG_MASK << (BSP_PRV_GIC_REG_BITS8 * (_irq % BSP_PRV_GIC_REG_STRIDE04)))); + GICR_TARGET0_INTREG->GICR_IPRIORITYR[_irq / BSP_PRV_GIC_REG_STRIDE04] |= + (priority << + (BSP_FEATURE_BSP_IRQ_PRIORITY_POS_BIT + (BSP_PRV_GIC_REG_BITS8 * (_irq % BSP_PRV_GIC_REG_STRIDE04)))); + } +#endif +} + +/*******************************************************************************************************************//** + * Enable the IRQ in the GIC (Without clearing the pending bit). + * + * @param[in] irq The IRQ number to enable. Note that the enums listed for IRQn_Type are only those for the + * Cortex Processor Exceptions Numbers. + **********************************************************************************************************************/ +__STATIC_INLINE void r_bsp_irq_enable_no_clear (IRQn_Type const irq) +{ + GICD_Type * GICD; + GICR_SGI_PPI_Type * GICR_TARGET0_INTREG; + + GICD = BSP_PRV_GICD_ADDRESS; + GICR_TARGET0_INTREG = BSP_PRV_GICR_TARGET0_INTREG_ADDRESS; + + if (irq >= 0) + { + uint32_t _irq = (uint32_t) irq; + GICD->GICD_ISENABLER[_irq / BSP_PRV_GIC_REG_STRIDE32] |= + (uint32_t) (BSP_PRV_GIC_REG_BITS1 << (_irq % BSP_PRV_GIC_REG_STRIDE32)); + } + else + { + uint32_t _irq = (uint32_t) (irq + BSP_VECTOR_NUM_OFFSET); + GICR_TARGET0_INTREG->GICR_ISENABLER0 |= (uint32_t) (BSP_PRV_GIC_REG_BITS1 << _irq); + } +} + +/*******************************************************************************************************************//** + * Disables interrupts in the GIC. + * + * @param[in] irq The IRQ number to disable in the GIC. Note that the enums listed for IRQn_Type are + * only those for the Cortex Processor Exceptions Numbers. + **********************************************************************************************************************/ +__STATIC_INLINE void r_bsp_irq_disable (IRQn_Type const irq) +{ + GICD_Type * GICD; + GICR_SGI_PPI_Type * GICR_TARGET0_INTREG; + + GICD = BSP_PRV_GICD_ADDRESS; + GICR_TARGET0_INTREG = BSP_PRV_GICR_TARGET0_INTREG_ADDRESS; + + if (irq >= 0) + { + uint32_t _irq = (uint32_t) irq; + GICD->GICD_ICENABLER[_irq / BSP_PRV_GIC_REG_STRIDE32] = + (uint32_t) (BSP_PRV_GIC_REG_BITS1 << (_irq % BSP_PRV_GIC_REG_STRIDE32)); + } + else + { + uint32_t _irq = (uint32_t) (irq + BSP_VECTOR_NUM_OFFSET); + GICR_TARGET0_INTREG->GICR_ICENABLER0 = (uint32_t) (BSP_PRV_GIC_REG_BITS1 << _irq); + } + + __DSB(); + __ISB(); +} + +/*******************************************************************************************************************//** + * Sets the interrupt detect type. + * + * @param[in] irq The IRQ number to configure. + * @param[in] detect_type GIC detect type of the interrupt (0 : active-HIGH level, 1 : rising edge-triggerd). + **********************************************************************************************************************/ +__STATIC_INLINE void r_bsp_irq_detect_type_set (IRQn_Type const irq, uint32_t detect_type) +{ + GICD_Type * GICD; + GICR_SGI_PPI_Type * GICR_TARGET0_INTREG; + + GICD = BSP_PRV_GICD_ADDRESS; + GICR_TARGET0_INTREG = BSP_PRV_GICR_TARGET0_INTREG_ADDRESS; + + if (irq >= 0) + { + uint32_t _irq = (uint32_t) irq; + if (0 != detect_type) + { + GICD->GICD_ICFGR[_irq / BSP_PRV_GIC_REG_STRIDE16] |= + (uint32_t) (BSP_PRV_GICD_ICFGR_INT_CONFIG_MASK << + (BSP_PRV_GIC_REG_BITS2 * (_irq % BSP_PRV_GIC_REG_STRIDE16))); + } + else + { + GICD->GICD_ICFGR[_irq / BSP_PRV_GIC_REG_STRIDE16] &= + ~((uint32_t) (BSP_PRV_GICD_ICFGR_INT_CONFIG_MASK << + (BSP_PRV_GIC_REG_BITS2 * (_irq % BSP_PRV_GIC_REG_STRIDE16)))); + } + } + else if (irq >= BSP_PRV_GIC_LOWEST_PPI_INTERRUPT_NUM) + { + uint32_t _irq = (uint32_t) (irq + BSP_VECTOR_NUM_OFFSET); + if (0 != detect_type) + { + GICR_TARGET0_INTREG->GICR_ICFGR1 |= + (uint32_t) (BSP_PRV_GICD_ICFGR_INT_CONFIG_MASK << + (BSP_PRV_GIC_REG_BITS2 * (_irq % BSP_PRV_GIC_REG_STRIDE16))); + } + else + { + GICR_TARGET0_INTREG->GICR_ICFGR1 &= + ~((uint32_t) (BSP_PRV_GICD_ICFGR_INT_CONFIG_MASK << + (BSP_PRV_GIC_REG_BITS2 * (_irq % BSP_PRV_GIC_REG_STRIDE16)))); + } + } + else + { + /* The register that sets the SGI interrupt type (GICR_ICFGR0) is read-only, so do not set it. */ + } +} + +/*******************************************************************************************************************//** + * Sets the interrupt Group. + * + * @param[in] irq The IRQ number to configure. + * @param[in] interrupt_group GIC interrupt group number ( 0 : FIQ, 1 : IRQ ). + **********************************************************************************************************************/ +__STATIC_INLINE void r_bsp_irq_group_set (IRQn_Type const irq, uint32_t interrupt_group) +{ + GICD_Type * GICD; + GICR_SGI_PPI_Type * GICR_TARGET0_INTREG; + + GICD = BSP_PRV_GICD_ADDRESS; + GICR_TARGET0_INTREG = BSP_PRV_GICR_TARGET0_INTREG_ADDRESS; + + if (irq >= 0) + { + uint32_t _irq = (uint32_t) irq; + GICD->GICD_IGROUPR[_irq / BSP_PRV_GIC_REG_STRIDE32] |= (interrupt_group << (_irq % BSP_PRV_GIC_REG_STRIDE32)); + } + else + { + uint32_t _irq = (uint32_t) (irq + BSP_VECTOR_NUM_OFFSET); + GICR_TARGET0_INTREG->GICR_IGROUPR0 |= interrupt_group << _irq; + } +} + +/*******************************************************************************************************************//** + * @internal + * @addtogroup BSP_MCU_PRV Internal BSP Documentation + * @ingroup RENESAS_INTERNAL + * @{ + **********************************************************************************************************************/ + +/* Public functions defined in bsp.h */ +void bsp_irq_core_cfg(void); // Used internally by BSP +void bsp_common_interrupt_handler(uint32_t id); + +/** @} (end addtogroup BSP_MCU_PRV) */ + +/** Common macro for FSP header files. There is also a corresponding FSP_HEADER macro at the top of this file. */ +FSP_FOOTER + +#endif diff --git a/bsp/renesas/rzn2l_rsk/rzn/fsp/src/bsp/mcu/rzn2l/bsp_elc.h b/bsp/renesas/rzn2l_rsk/rzn/fsp/src/bsp/mcu/rzn2l/bsp_elc.h new file mode 100644 index 0000000000..8362b2fb7c --- /dev/null +++ b/bsp/renesas/rzn2l_rsk/rzn/fsp/src/bsp/mcu/rzn2l/bsp_elc.h @@ -0,0 +1,523 @@ +/*********************************************************************************************************************** + * Copyright [2020-2024] Renesas Electronics Corporation and/or its affiliates. All Rights Reserved. + * + * This software and documentation are supplied by Renesas Electronics Corporation and/or its affiliates and may only + * be used with products of Renesas Electronics Corp. and its affiliates ("Renesas"). No other uses are authorized. + * Renesas products are sold pursuant to Renesas terms and conditions of sale. Purchasers are solely responsible for + * the selection and use of Renesas products and Renesas assumes no liability. No license, express or implied, to any + * intellectual property right is granted by Renesas. This software is protected under all applicable laws, including + * copyright laws. Renesas reserves the right to change or discontinue this software and/or this documentation. + * THE SOFTWARE AND DOCUMENTATION IS DELIVERED TO YOU "AS IS," AND RENESAS MAKES NO REPRESENTATIONS OR WARRANTIES, AND + * TO THE FULLEST EXTENT PERMISSIBLE UNDER APPLICABLE LAW, DISCLAIMS ALL WARRANTIES, WHETHER EXPLICITLY OR IMPLICITLY, + * INCLUDING WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE, AND NONINFRINGEMENT, WITH RESPECT TO THE + * SOFTWARE OR DOCUMENTATION. RENESAS SHALL HAVE NO LIABILITY ARISING OUT OF ANY SECURITY VULNERABILITY OR BREACH. + * TO THE MAXIMUM EXTENT PERMITTED BY LAW, IN NO EVENT WILL RENESAS BE LIABLE TO YOU IN CONNECTION WITH THE SOFTWARE OR + * DOCUMENTATION (OR ANY PERSON OR ENTITY CLAIMING RIGHTS DERIVED FROM YOU) FOR ANY LOSS, DAMAGES, OR CLAIMS WHATSOEVER, + * INCLUDING, WITHOUT LIMITATION, ANY DIRECT, CONSEQUENTIAL, SPECIAL, INDIRECT, PUNITIVE, OR INCIDENTAL DAMAGES; ANY + * LOST PROFITS, OTHER ECONOMIC DAMAGE, PROPERTY DAMAGE, OR PERSONAL INJURY; AND EVEN IF RENESAS HAS BEEN ADVISED OF THE + * POSSIBILITY OF SUCH LOSS, DAMAGES, CLAIMS OR COSTS. + **********************************************************************************************************************/ + +#ifndef BSP_ELC_H +#define BSP_ELC_H + +/*********************************************************************************************************************** + * Includes , "Project Includes" + **********************************************************************************************************************/ + +/** Common macro for FSP header files. There is also a corresponding FSP_FOOTER macro at the end of this file. */ +FSP_HEADER + +/*********************************************************************************************************************** + * Macro definitions + **********************************************************************************************************************/ + +/*********************************************************************************************************************** + * Typedef definitions + **********************************************************************************************************************/ + +/*******************************************************************************************************************//** + * @addtogroup BSP_MCU_RZN2L + * @{ + **********************************************************************************************************************/ + +/** Sources of event signals to be linked to other peripherals or the CPU + * @note This list may change based on based on the device. + * */ +typedef enum e_elc_event_rzn2l +{ + ELC_EVENT_INTCPU0 = (0), // Software interrupt 0 + ELC_EVENT_INTCPU1 = (1), // Software interrupt 1 + ELC_EVENT_INTCPU2 = (2), // Software interrupt 2 + ELC_EVENT_INTCPU3 = (3), // Software interrupt 3 + ELC_EVENT_INTCPU4 = (4), // Software interrupt 4 + ELC_EVENT_INTCPU5 = (5), // Software interrupt 5 + ELC_EVENT_IRQ0 = (6), // External pin interrupt 0 + ELC_EVENT_IRQ1 = (7), // External pin interrupt 1 + ELC_EVENT_IRQ2 = (8), // External pin interrupt 2 + ELC_EVENT_IRQ3 = (9), // External pin interrupt 3 + ELC_EVENT_IRQ4 = (10), // External pin interrupt 4 + ELC_EVENT_IRQ5 = (11), // External pin interrupt 5 + ELC_EVENT_IRQ6 = (12), // External pin interrupt 6 + ELC_EVENT_IRQ7 = (13), // External pin interrupt 7 + ELC_EVENT_IRQ8 = (14), // External pin interrupt 8 + ELC_EVENT_IRQ9 = (15), // External pin interrupt 9 + ELC_EVENT_IRQ10 = (16), // External pin interrupt 10 + ELC_EVENT_IRQ11 = (17), // External pin interrupt 11 + ELC_EVENT_IRQ12 = (18), // External pin interrupt 12 + ELC_EVENT_IRQ13 = (19), // External pin interrupt 13 + ELC_EVENT_BSC_CMI = (20), // Refresh compare match interrupt + ELC_EVENT_DMAC0_INT0 = (21), // DMAC0 transfer completion 0 + ELC_EVENT_DMAC0_INT1 = (22), // DMAC0 transfer completion 1 + ELC_EVENT_DMAC0_INT2 = (23), // DMAC0 transfer completion 2 + ELC_EVENT_DMAC0_INT3 = (24), // DMAC0 transfer completion 3 + ELC_EVENT_DMAC0_INT4 = (25), // DMAC0 transfer completion 4 + ELC_EVENT_DMAC0_INT5 = (26), // DMAC0 transfer completion 5 + ELC_EVENT_DMAC0_INT6 = (27), // DMAC0 transfer completion 6 + ELC_EVENT_DMAC0_INT7 = (28), // DMAC0 transfer completion 7 + ELC_EVENT_DMAC1_INT0 = (37), // DMAC1 transfer completion 0 + ELC_EVENT_DMAC1_INT1 = (38), // DMAC1 transfer completion 1 + ELC_EVENT_DMAC1_INT2 = (39), // DMAC1 transfer completion 2 + ELC_EVENT_DMAC1_INT3 = (40), // DMAC1 transfer completion 3 + ELC_EVENT_DMAC1_INT4 = (41), // DMAC1 transfer completion 4 + ELC_EVENT_DMAC1_INT5 = (42), // DMAC1 transfer completion 5 + ELC_EVENT_DMAC1_INT6 = (43), // DMAC1 transfer completion 6 + ELC_EVENT_DMAC1_INT7 = (44), // DMAC1 transfer completion 7 + ELC_EVENT_CMT0_CMI = (53), // CMT0 Compare match + ELC_EVENT_CMT1_CMI = (54), // CMT1 Compare match + ELC_EVENT_CMT2_CMI = (55), // CMT2 Compare match + ELC_EVENT_CMT3_CMI = (56), // CMT3 Compare match + ELC_EVENT_CMT4_CMI = (57), // CMT4 Compare match + ELC_EVENT_CMT5_CMI = (58), // CMT5 Compare match + ELC_EVENT_CMTW0_CMWI = (59), // CMTW0 Compare match + ELC_EVENT_CMTW0_IC0I = (60), // CMTW0 Input capture of register 0 + ELC_EVENT_CMTW0_IC1I = (61), // CMTW0 Input capture of register 1 + ELC_EVENT_CMTW0_OC0I = (62), // CMTW0 Output compare of register 0 + ELC_EVENT_CMTW0_OC1I = (63), // CMTW0 Output compare of register 1 + ELC_EVENT_CMTW1_CMWI = (64), // CMTW1 Compare match + ELC_EVENT_CMTW1_IC0I = (65), // CMTW1 Input capture of register 0 + ELC_EVENT_CMTW1_IC1I = (66), // CMTW1 Input capture of register 1 + ELC_EVENT_CMTW1_OC0I = (67), // CMTW1 Output compare of register 0 + ELC_EVENT_CMTW1_OC1I = (68), // CMTW1 Output compare of register 1 + ELC_EVENT_TGIA0 = (69), // MTU0.TGRA input capture/compare match + ELC_EVENT_TGIB0 = (70), // MTU0.TGRB input capture/compare match + ELC_EVENT_TGIC0 = (71), // MTU0.TGRC input capture/compare match + ELC_EVENT_TGID0 = (72), // MTU0.TGRD input capture/compare match + ELC_EVENT_TCIV0 = (73), // MTU0.TCNT overflow + ELC_EVENT_TGIE0 = (74), // MTU0.TGRE compare match + ELC_EVENT_TGIF0 = (75), // MTU0.TGRF compare match + ELC_EVENT_TGIA1 = (76), // MTU1.TGRA input capture/compare match + ELC_EVENT_TGIB1 = (77), // MTU1.TGRB input capture/compare match + ELC_EVENT_TCIV1 = (78), // MTU1.TCNT overflow + ELC_EVENT_TCIU1 = (79), // MTU1.TCNT underflow + ELC_EVENT_TGIA2 = (80), // MTU2.TGRA input capture/compare match + ELC_EVENT_TGIB2 = (81), // MTU2.TGRB input capture/compare match + ELC_EVENT_TCIV2 = (82), // MTU2.TCNT overflow + ELC_EVENT_TCIU2 = (83), // MTU2.TCNT underflow + ELC_EVENT_TGIA3 = (84), // MTU3.TGRA input capture/compare match + ELC_EVENT_TGIB3 = (85), // MTU3.TGRB input capture/compare match + ELC_EVENT_TGIC3 = (86), // MTU3.TGRC input capture/compare match + ELC_EVENT_TGID3 = (87), // MTU3.TGRD input capture/compare match + ELC_EVENT_TCIV3 = (88), // MTU3.TCNT overflow + ELC_EVENT_TGIA4 = (89), // MTU4.TGRA input capture/compare match + ELC_EVENT_TGIB4 = (90), // MTU4.TGRB input capture/compare match + ELC_EVENT_TGIC4 = (91), // MTU4.TGRC input capture/compare match + ELC_EVENT_TGID4 = (92), // MTU4.TGRD input capture/compare match + ELC_EVENT_TCIV4 = (93), // MTU4.TCNT overflow/underflow + ELC_EVENT_TGIU5 = (94), // MTU5.TGRU input capture/compare match + ELC_EVENT_TGIV5 = (95), // MTU5.TGRV input capture/compare match + ELC_EVENT_TGIW5 = (96), // MTU5.TGRW input capture/compare match + ELC_EVENT_TGIA6 = (97), // MTU6.TGRA input capture/compare match + ELC_EVENT_TGIB6 = (98), // MTU6.TGRB input capture/compare match + ELC_EVENT_TGIC6 = (99), // MTU6.TGRC input capture/compare match + ELC_EVENT_TGID6 = (100), // MTU6.TGRD input capture/compare match + ELC_EVENT_TCIV6 = (101), // MTU6.TCNT overflow + ELC_EVENT_TGIA7 = (102), // MTU7.TGRA input capture/compare match + ELC_EVENT_TGIB7 = (103), // MTU7.TGRB input capture/compare match + ELC_EVENT_TGIC7 = (104), // MTU7.TGRC input capture/compare match + ELC_EVENT_TGID7 = (105), // MTU7.TGRD input capture/compare match + ELC_EVENT_TCIV7 = (106), // MTU7.TCNT overflow/underflow + ELC_EVENT_TGIA8 = (107), // MTU8.TGRA input capture/compare match + ELC_EVENT_TGIB8 = (108), // MTU8.TGRB input capture/compare match + ELC_EVENT_TGIC8 = (109), // MTU8.TGRC input capture/compare match + ELC_EVENT_TGID8 = (110), // MTU8.TGRD input capture/compare match + ELC_EVENT_TCIV8 = (111), // MTU8.TCNT overflow + ELC_EVENT_OEI1 = (112), // Output enable interrupt 1 + ELC_EVENT_OEI2 = (113), // Output enable interrupt 2 + ELC_EVENT_OEI3 = (114), // Output enable interrupt 3 + ELC_EVENT_OEI4 = (115), // Output enable interrupt 4 + ELC_EVENT_GPT0_CCMPA = (116), // GPT0 GTCCRA input capture/compare match + ELC_EVENT_GPT0_CCMPB = (117), // GPT0 GTCCRB input capture/compare match + ELC_EVENT_GPT0_CMPC = (118), // GPT0 GTCCRC compare match + ELC_EVENT_GPT0_CMPD = (119), // GPT0 GTCCRD compare match + ELC_EVENT_GPT0_CMPE = (120), // GPT0 GTCCRE compare match + ELC_EVENT_GPT0_CMPF = (121), // GPT0 GTCCRF compare match + ELC_EVENT_GPT0_OVF = (122), // GPT0 GTCNT overflow (GTPR compare match) + ELC_EVENT_GPT0_UDF = (123), // GPT0 GTCNT underflow + ELC_EVENT_GPT0_DTE = (124), // GPT0 Dead time error + ELC_EVENT_GPT1_CCMPA = (125), // GPT1 GTCCRA input capture/compare match + ELC_EVENT_GPT1_CCMPB = (126), // GPT1 GTCCRB input capture/compare match + ELC_EVENT_GPT1_CMPC = (127), // GPT1 GTCCRC compare match + ELC_EVENT_GPT1_CMPD = (128), // GPT1 GTCCRD compare match + ELC_EVENT_GPT1_CMPE = (129), // GPT1 GTCCRE compare match + ELC_EVENT_GPT1_CMPF = (130), // GPT1 GTCCRF compare match + ELC_EVENT_GPT1_OVF = (131), // GPT1 GTCNT overflow (GTPR compare match) + ELC_EVENT_GPT1_UDF = (132), // GPT1 GTCNT underflow + ELC_EVENT_GPT1_DTE = (133), // GPT1 Dead time error + ELC_EVENT_GPT2_CCMPA = (134), // GPT2 GTCCRA input capture/compare match + ELC_EVENT_GPT2_CCMPB = (135), // GPT2 GTCCRB input capture/compare match + ELC_EVENT_GPT2_CMPC = (136), // GPT2 GTCCRC compare match + ELC_EVENT_GPT2_CMPD = (137), // GPT2 GTCCRD compare match + ELC_EVENT_GPT2_CMPE = (138), // GPT2 GTCCRE compare match + ELC_EVENT_GPT2_CMPF = (139), // GPT2 GTCCRF compare match + ELC_EVENT_GPT2_OVF = (140), // GPT2 GTCNT overflow (GTPR compare match) + ELC_EVENT_GPT2_UDF = (141), // GPT2 GTCNT underflow + ELC_EVENT_GPT2_DTE = (142), // GPT2 Dead time error + ELC_EVENT_GPT3_CCMPA = (143), // GPT3 GTCCRA input capture/compare match + ELC_EVENT_GPT3_CCMPB = (144), // GPT3 GTCCRB input capture/compare match + ELC_EVENT_GPT3_CMPC = (145), // GPT3 GTCCRC compare match + ELC_EVENT_GPT3_CMPD = (146), // GPT3 GTCCRD compare match + ELC_EVENT_GPT3_CMPE = (147), // GPT3 GTCCRE compare match + ELC_EVENT_GPT3_CMPF = (148), // GPT3 GTCCRF compare match + ELC_EVENT_GPT3_OVF = (149), // GPT3 GTCNT overflow (GTPR compare match) + ELC_EVENT_GPT3_UDF = (150), // GPT3 GTCNT underflow + ELC_EVENT_GPT3_DTE = (151), // GPT3 Dead time error + ELC_EVENT_GPT4_CCMPA = (152), // GPT4 GTCCRA input capture/compare match + ELC_EVENT_GPT4_CCMPB = (153), // GPT4 GTCCRB input capture/compare match + ELC_EVENT_GPT4_CMPC = (154), // GPT4 GTCCRC compare match + ELC_EVENT_GPT4_CMPD = (155), // GPT4 GTCCRD compare match + ELC_EVENT_GPT4_CMPE = (156), // GPT4 GTCCRE compare match + ELC_EVENT_GPT4_CMPF = (157), // GPT4 GTCCRF compare match + ELC_EVENT_GPT4_OVF = (158), // GPT4 GTCNT overflow (GTPR compare match) + ELC_EVENT_GPT4_UDF = (159), // GPT4 GTCNT underflow + ELC_EVENT_GPT4_DTE = (160), // GPT4 Dead time error + ELC_EVENT_GPT5_CCMPA = (161), // GPT5 GTCCRA input capture/compare match + ELC_EVENT_GPT5_CCMPB = (162), // GPT5 GTCCRB input capture/compare match + ELC_EVENT_GPT5_CMPC = (163), // GPT5 GTCCRC compare match + ELC_EVENT_GPT5_CMPD = (164), // GPT5 GTCCRD compare match + ELC_EVENT_GPT5_CMPE = (165), // GPT5 GTCCRE compare match + ELC_EVENT_GPT5_CMPF = (166), // GPT5 GTCCRF compare match + ELC_EVENT_GPT5_OVF = (167), // GPT5 GTCNT overflow (GTPR compare match) + ELC_EVENT_GPT5_UDF = (168), // GPT5 GTCNT underflow + ELC_EVENT_GPT5_DTE = (169), // GPT5 Dead time error + ELC_EVENT_GPT6_CCMPA = (170), // GPT6 GTCCRA input capture/compare match + ELC_EVENT_GPT6_CCMPB = (171), // GPT6 GTCCRB input capture/compare match + ELC_EVENT_GPT6_CMPC = (172), // GPT6 GTCCRC compare match + ELC_EVENT_GPT6_CMPD = (173), // GPT6 GTCCRD compare match + ELC_EVENT_GPT6_CMPE = (174), // GPT6 GTCCRE compare match + ELC_EVENT_GPT6_CMPF = (175), // GPT6 GTCCRF compare match + ELC_EVENT_GPT6_OVF = (176), // GPT6 GTCNT overflow (GTPR compare match) + ELC_EVENT_GPT6_UDF = (177), // GPT6 GTCNT underflow + ELC_EVENT_GPT6_DTE = (178), // GPT6 Dead time error + ELC_EVENT_GPT7_CCMPA = (179), // GPT7 GTCCRA input capture/compare match + ELC_EVENT_GPT7_CCMPB = (180), // GPT7 GTCCRB input capture/compare match + ELC_EVENT_GPT7_CMPC = (181), // GPT7 GTCCRC compare match + ELC_EVENT_GPT7_CMPD = (182), // GPT7 GTCCRD compare match + ELC_EVENT_GPT7_CMPE = (183), // GPT7 GTCCRE compare match + ELC_EVENT_GPT7_CMPF = (184), // GPT7 GTCCRF compare match + ELC_EVENT_GPT7_OVF = (185), // GPT7 GTCNT overflow (GTPR compare match) + ELC_EVENT_GPT7_UDF = (186), // GPT7 GTCNT underflow + ELC_EVENT_GPT7_DTE = (187), // GPT7 Dead time error + ELC_EVENT_GPT8_CCMPA = (188), // GPT8 GTCCRA input capture/compare match + ELC_EVENT_GPT8_CCMPB = (189), // GPT8 GTCCRB input capture/compare match + ELC_EVENT_GPT8_CMPC = (190), // GPT8 GTCCRC compare match + ELC_EVENT_GPT8_CMPD = (191), // GPT8 GTCCRD compare match + ELC_EVENT_GPT8_CMPE = (192), // GPT8 GTCCRE compare match + ELC_EVENT_GPT8_CMPF = (193), // GPT8 GTCCRF compare match + ELC_EVENT_GPT8_OVF = (194), // GPT8 GTCNT overflow (GTPR compare match) + ELC_EVENT_GPT8_UDF = (195), // GPT8 GTCNT underflow + ELC_EVENT_GPT8_DTE = (196), // GPT8 Dead time error + ELC_EVENT_GPT9_CCMPA = (197), // GPT9 GTCCRA input capture/compare match + ELC_EVENT_GPT9_CCMPB = (198), // GPT9 GTCCRB input capture/compare match + ELC_EVENT_GPT9_CMPC = (199), // GPT9 GTCCRC compare match + ELC_EVENT_GPT9_CMPD = (200), // GPT9 GTCCRD compare match + ELC_EVENT_GPT9_CMPE = (201), // GPT9 GTCCRE compare match + ELC_EVENT_GPT9_CMPF = (202), // GPT9 GTCCRF compare match + ELC_EVENT_GPT9_OVF = (203), // GPT9 GTCNT overflow (GTPR compare match) + ELC_EVENT_GPT9_UDF = (204), // GPT9 GTCNT underflow + ELC_EVENT_GPT9_DTE = (205), // GPT9 Dead time error + ELC_EVENT_GPT10_CCMPA = (206), // GPT10 GTCCRA input capture/compare match + ELC_EVENT_GPT10_CCMPB = (207), // GPT10 GTCCRB input capture/compare match + ELC_EVENT_GPT10_CMPC = (208), // GPT10 GTCCRC compare match + ELC_EVENT_GPT10_CMPD = (209), // GPT10 GTCCRD compare match + ELC_EVENT_GPT10_CMPE = (210), // GPT10 GTCCRE compare match + ELC_EVENT_GPT10_CMPF = (211), // GPT10 GTCCRF compare match + ELC_EVENT_GPT10_OVF = (212), // GPT10 GTCNT overflow (GTPR compare match) + ELC_EVENT_GPT10_UDF = (213), // GPT10 GTCNT underflow + ELC_EVENT_GPT10_DTE = (214), // GPT10 Dead time error + ELC_EVENT_GPT11_CCMPA = (215), // GPT11 GTCCRA input capture/compare match + ELC_EVENT_GPT11_CCMPB = (216), // GPT11 GTCCRB input capture/compare match + ELC_EVENT_GPT11_CMPC = (217), // GPT11 GTCCRC compare match + ELC_EVENT_GPT11_CMPD = (218), // GPT11 GTCCRD compare match + ELC_EVENT_GPT11_CMPE = (219), // GPT11 GTCCRE compare match + ELC_EVENT_GPT11_CMPF = (220), // GPT11 GTCCRF compare match + ELC_EVENT_GPT11_OVF = (221), // GPT11 GTCNT overflow (GTPR compare match) + ELC_EVENT_GPT11_UDF = (222), // GPT11 GTCNT underflow + ELC_EVENT_GPT11_DTE = (223), // GPT11 Dead time error + ELC_EVENT_GPT12_CCMPA = (224), // GPT12 GTCCRA input capture/compare match + ELC_EVENT_GPT12_CCMPB = (225), // GPT12 GTCCRB input capture/compare match + ELC_EVENT_GPT12_CMPC = (226), // GPT12 GTCCRC compare match + ELC_EVENT_GPT12_CMPD = (227), // GPT12 GTCCRD compare match + ELC_EVENT_GPT12_CMPE = (228), // GPT12 GTCCRE compare match + ELC_EVENT_GPT12_CMPF = (229), // GPT12 GTCCRF compare match + ELC_EVENT_GPT12_OVF = (230), // GPT12 GTCNT overflow (GTPR compare match) + ELC_EVENT_GPT12_UDF = (231), // GPT12 GTCNT underflow + ELC_EVENT_GPT12_DTE = (232), // GPT12 Dead time error + ELC_EVENT_GPT13_CCMPA = (233), // GPT13 GTCCRA input capture/compare match + ELC_EVENT_GPT13_CCMPB = (234), // GPT13 GTCCRB input capture/compare match + ELC_EVENT_GPT13_CMPC = (235), // GPT13 GTCCRC compare match + ELC_EVENT_GPT13_CMPD = (236), // GPT13 GTCCRD compare match + ELC_EVENT_GPT13_CMPE = (237), // GPT13 GTCCRE compare match + ELC_EVENT_GPT13_CMPF = (238), // GPT13 GTCCRF compare match + ELC_EVENT_GPT13_OVF = (239), // GPT13 GTCNT overflow (GTPR compare match) + ELC_EVENT_GPT13_UDF = (240), // GPT13 GTCNT underflow + ELC_EVENT_GPT13_DTE = (241), // GPT13 Dead time error + ELC_EVENT_POEG0_GROUP0 = (242), // POEG group A interrupt for channels in LLPP + ELC_EVENT_POEG0_GROUP1 = (243), // POEG group B interrupt for channels in LLPP + ELC_EVENT_POEG0_GROUP2 = (244), // POEG group C interrupt for channels in LLPP + ELC_EVENT_POEG0_GROUP3 = (245), // POEG group D interrupt for channels in LLPP + ELC_EVENT_POEG1_GROUP0 = (246), // POEG group A interrupt for channels in NONSAFETY + ELC_EVENT_POEG1_GROUP1 = (247), // POEG group B interrupt for channels in NONSAFETY + ELC_EVENT_POEG1_GROUP2 = (248), // POEG group C interrupt for channels in NONSAFETY + ELC_EVENT_POEG1_GROUP3 = (249), // POEG group D interrupt for channels in NONSAFETY + ELC_EVENT_GMAC_LPI = (250), // GMAC1 energy efficient + ELC_EVENT_GMAC_PMT = (251), // GMAC1 power management + ELC_EVENT_GMAC_SBD = (252), // GMAC1 general interrupt + ELC_EVENT_ETHSW_INTR = (253), // Ethernet Switch interrupt + ELC_EVENT_ETHSW_DLR = (254), // Ethernet Switch DLR interrupt + ELC_EVENT_ETHSW_PRP = (255), // Ethernet Switch PRP interrupt + ELC_EVENT_ETHSW_IHUB = (256), // Ethernet Switch Integrated Hub interrupt + ELC_EVENT_ETHSW_PTRN0 = (257), // Ethernet Switch RX Pattern Matcher interrupt 0 + ELC_EVENT_ETHSW_PTRN1 = (258), // Ethernet Switch RX Pattern Matcher interrupt 1 + ELC_EVENT_ETHSW_PTRN2 = (259), // Ethernet Switch RX Pattern Matcher interrupt 2 + ELC_EVENT_ETHSW_PTRN3 = (260), // Ethernet Switch RX Pattern Matcher interrupt 3 + ELC_EVENT_ETHSW_PTRN4 = (261), // Ethernet Switch RX Pattern Matcher interrupt 4 + ELC_EVENT_ETHSW_PTRN5 = (262), // Ethernet Switch RX Pattern Matcher interrupt 5 + ELC_EVENT_ETHSW_PTRN6 = (263), // Ethernet Switch RX Pattern Matcher interrupt 6 + ELC_EVENT_ETHSW_PTRN7 = (264), // Ethernet Switch RX Pattern Matcher interrupt 7 + ELC_EVENT_ETHSW_PTRN8 = (265), // Ethernet Switch RX Pattern Matcher interrupt 8 + ELC_EVENT_ETHSW_PTRN9 = (266), // Ethernet Switch RX Pattern Matcher interrupt 9 + ELC_EVENT_ETHSW_PTRN10 = (267), // Ethernet Switch RX Pattern Matcher interrupt 10 + ELC_EVENT_ETHSW_PTRN11 = (268), // Ethernet Switch RX Pattern Matcher interrupt 11 + ELC_EVENT_ETHSW_PTPOUT0 = (269), // Ethernet switch timer pulse output 0 + ELC_EVENT_ETHSW_PTPOUT1 = (270), // Ethernet switch timer pulse output 1 + ELC_EVENT_ETHSW_PTPOUT2 = (271), // Ethernet switch timer pulse output 2 + ELC_EVENT_ETHSW_PTPOUT3 = (272), // Ethernet switch timer pulse output 3 + ELC_EVENT_ETHSW_TDMAOUT0 = (273), // Ethernet Switch TDMA timer output 0 + ELC_EVENT_ETHSW_TDMAOUT1 = (274), // Ethernet Switch TDMA timer output 1 + ELC_EVENT_ETHSW_TDMAOUT2 = (275), // Ethernet Switch TDMA timer output 2 + ELC_EVENT_ETHSW_TDMAOUT3 = (276), // Ethernet Switch TDMA timer output 3 + ELC_EVENT_ESC_SYNC0 = (277), // EtherCAT Sync0 interrupt + ELC_EVENT_ESC_SYNC1 = (278), // EtherCAT Sync1 interrupt + ELC_EVENT_ESC_CAT = (279), // EtherCAT interrupt + ELC_EVENT_ESC_SOF = (280), // EtherCAT SOF interrupt + ELC_EVENT_ESC_EOF = (281), // EtherCAT EOF interrupt + ELC_EVENT_ESC_WDT = (282), // EtherCAT WDT interrupt + ELC_EVENT_ESC_RST = (283), // EtherCAT RESET interrupt + ELC_EVENT_USB_HI = (284), // USB (Host) interrupt + ELC_EVENT_USB_FI = (285), // USB (Function) interrupt + ELC_EVENT_USB_FDMA0 = (286), // USB (Function) DMA 0 transmit completion + ELC_EVENT_USB_FDMA1 = (287), // USB (Function) DMA 1 transmit completion + ELC_EVENT_SCI0_ERI = (288), // SCI0 Receive error + ELC_EVENT_SCI0_RXI = (289), // SCI0 Receive data full + ELC_EVENT_SCI0_TXI = (290), // SCI0 Transmit data empty + ELC_EVENT_SCI0_TEI = (291), // SCI0 Transmit end + ELC_EVENT_SCI1_ERI = (292), // SCI1 Receive error + ELC_EVENT_SCI1_RXI = (293), // SCI1 Receive data full + ELC_EVENT_SCI1_TXI = (294), // SCI1 Transmit data empty + ELC_EVENT_SCI1_TEI = (295), // SCI1 Transmit end + ELC_EVENT_SCI2_ERI = (296), // SCI2 Receive error + ELC_EVENT_SCI2_RXI = (297), // SCI2 Receive data full + ELC_EVENT_SCI2_TXI = (298), // SCI2 Transmit data empty + ELC_EVENT_SCI2_TEI = (299), // SCI2 Transmit end + ELC_EVENT_SCI3_ERI = (300), // SCI3 Receive error + ELC_EVENT_SCI3_RXI = (301), // SCI3 Receive data full + ELC_EVENT_SCI3_TXI = (302), // SCI3 Transmit data empty + ELC_EVENT_SCI3_TEI = (303), // SCI3 Transmit end + ELC_EVENT_SCI4_ERI = (304), // SCI4 Receive error + ELC_EVENT_SCI4_RXI = (305), // SCI4 Receive data full + ELC_EVENT_SCI4_TXI = (306), // SCI4 Transmit data empty + ELC_EVENT_SCI4_TEI = (307), // SCI4 Transmit end + ELC_EVENT_IIC0_EEI = (308), // IIC0 Transfer error or event generation + ELC_EVENT_IIC0_RXI = (309), // IIC0 Receive data full + ELC_EVENT_IIC0_TXI = (310), // IIC0 Transmit data empty + ELC_EVENT_IIC0_TEI = (311), // IIC0 Transmit end + ELC_EVENT_IIC1_EEI = (312), // IIC1 Transfer error or event generation + ELC_EVENT_IIC1_RXI = (313), // IIC1 Receive data full + ELC_EVENT_IIC1_TXI = (314), // IIC1 Transmit data empty + ELC_EVENT_IIC1_TEI = (315), // IIC1 Transmit end + ELC_EVENT_CAN_RXF = (316), // CANFD RX FIFO interrupt + ELC_EVENT_CAN_GLERR = (317), // CANFD Global error interrupt + ELC_EVENT_CAN0_TX = (318), // CAFND0 Channel TX interrupt + ELC_EVENT_CAN0_CHERR = (319), // CAFND0 Channel CAN error interrupt + ELC_EVENT_CAN0_COMFRX = (320), // CAFND0 Common RX FIFO or TXQ interrupt + ELC_EVENT_CAN1_TX = (321), // CAFND1 Channel TX interrupt + ELC_EVENT_CAN1_CHERR = (322), // CAFND1 Channel CAN error interrupt + ELC_EVENT_CAN1_COMFRX = (323), // CAFND1 Common RX FIFO or TXQ interrupt + ELC_EVENT_SPI0_SPRI = (324), // SPI0 Reception buffer full + ELC_EVENT_SPI0_SPTI = (325), // SPI0 Transmit buffer empty + ELC_EVENT_SPI0_SPII = (326), // SPI0 SPI idle + ELC_EVENT_SPI0_SPEI = (327), // SPI0 errors + ELC_EVENT_SPI0_SPCEND = (328), // SPI0 Communication complete + ELC_EVENT_SPI1_SPRI = (329), // SPI1 Reception buffer full + ELC_EVENT_SPI1_SPTI = (330), // SPI1 Transmit buffer empty + ELC_EVENT_SPI1_SPII = (331), // SPI1 SPI idle + ELC_EVENT_SPI1_SPEI = (332), // SPI1 errors + ELC_EVENT_SPI1_SPCEND = (333), // SPI1 Communication complete + ELC_EVENT_SPI2_SPRI = (334), // SPI2 Reception buffer full + ELC_EVENT_SPI2_SPTI = (335), // SPI2 Transmit buffer empty + ELC_EVENT_SPI2_SPII = (336), // SPI2 SPI idle + ELC_EVENT_SPI2_SPEI = (337), // SPI2 errors + ELC_EVENT_SPI2_SPCEND = (338), // SPI2 Communication complete + ELC_EVENT_XSPI0_INT = (339), // xSPI0 Interrupt + ELC_EVENT_XSPI0_INTERR = (340), // xSPI0 Error interrupt + ELC_EVENT_XSPI1_INT = (341), // xSPI1 Interrupt + ELC_EVENT_XSPI1_INTERR = (342), // xSPI1 Error interrupt + ELC_EVENT_DSMIF0_CDRUI = (343), // DSMIF0 current data register update (ORed ch0 to ch2) + ELC_EVENT_DSMIF1_CDRUI = (344), // DSMIF1 current data register update (ORed ch3 to ch5) + ELC_EVENT_ADC0_ADI = (345), // ADC0 A/D scan end interrupt + ELC_EVENT_ADC0_GBADI = (346), // ADC0 A/D scan end interrupt for Group B + ELC_EVENT_ADC0_GCADI = (347), // ADC0 A/D scan end interrupt for Group C + ELC_EVENT_ADC0_CMPAI = (348), // ADC0 Window A compare match + ELC_EVENT_ADC0_CMPBI = (349), // ADC0 Window B compare match + ELC_EVENT_ADC1_ADI = (350), // ADC1 A/D scan end interrupt + ELC_EVENT_ADC1_GBADI = (351), // ADC1 A/D scan end interrupt for Group B + ELC_EVENT_ADC1_GCADI = (352), // ADC1 A/D scan end interrupt for Group C + ELC_EVENT_ADC1_CMPAI = (353), // ADC1 Window A compare match + ELC_EVENT_ADC1_CMPBI = (354), // ADC1 Window B compare match + ELC_EVENT_MBX_INT0 = (372), // Mailbox (Host CPU to Cortex-R52) interrupt 0 + ELC_EVENT_MBX_INT1 = (373), // Mailbox (Host CPU to Cortex-R52) interrupt 1 + ELC_EVENT_MBX_INT2 = (374), // Mailbox (Host CPU to Cortex-R52) interrupt 2 + ELC_EVENT_MBX_INT3 = (375), // Mailbox (Host CPU to Cortex-R52) interrupt 3 + ELC_EVENT_CPU0_ERR0 = (384), // Cortex-R52 CPU0 error event 0 + ELC_EVENT_CPU0_ERR1 = (385), // Cortex-R52 CPU0 error event 1 + ELC_EVENT_PERI_ERR0 = (388), // Peripherals error event 0 + ELC_EVENT_PERI_ERR1 = (389), // Peripherals error event 1 + ELC_EVENT_SHOST_INT = (390), // SHOSTIF interrupt + ELC_EVENT_PHOST_INT = (391), // PHOSTIF interrupt + ELC_EVENT_INTCPU6 = (392), // Software interrupt 6 + ELC_EVENT_INTCPU7 = (393), // Software interrupt 7 + ELC_EVENT_IRQ14 = (394), // External pin interrupt 14 + ELC_EVENT_IRQ15 = (395), // External pin interrupt 15 + ELC_EVENT_GPT14_CCMPA = (396), // GPT14 GTCCRA input capture/compare match + ELC_EVENT_GPT14_CCMPB = (397), // GPT14 GTCCRB input capture/compare match + ELC_EVENT_GPT14_CMPC = (398), // GPT14 GTCCRC compare match + ELC_EVENT_GPT14_CMPD = (399), // GPT14 GTCCRD compare match + ELC_EVENT_GPT14_CMPE = (400), // GPT14 GTCCRE compare match + ELC_EVENT_GPT14_CMPF = (401), // GPT14 GTCCRF compare match + ELC_EVENT_GPT14_OVF = (402), // GPT14 GTCNT overflow (GTPR compare match) + ELC_EVENT_GPT14_UDF = (403), // GPT14 GTCNT underflow + ELC_EVENT_GPT15_CCMPA = (404), // GPT15 GTCCRA input capture/compare match + ELC_EVENT_GPT15_CCMPB = (405), // GPT15 GTCCRB input capture/compare match + ELC_EVENT_GPT15_CMPC = (406), // GPT15 GTCCRC compare match + ELC_EVENT_GPT15_CMPD = (407), // GPT15 GTCCRD compare match + ELC_EVENT_GPT15_CMPE = (408), // GPT15 GTCCRE compare match + ELC_EVENT_GPT15_CMPF = (409), // GPT15 GTCCRF compare match + ELC_EVENT_GPT15_OVF = (410), // GPT15 GTCNT overflow (GTPR compare match) + ELC_EVENT_GPT15_UDF = (411), // GPT15 GTCNT underflow + ELC_EVENT_GPT16_CCMPA = (412), // GPT16 GTCCRA input capture/compare match + ELC_EVENT_GPT16_CCMPB = (413), // GPT16 GTCCRB input capture/compare match + ELC_EVENT_GPT16_CMPC = (414), // GPT16 GTCCRC compare match + ELC_EVENT_GPT16_CMPD = (415), // GPT16 GTCCRD compare match + ELC_EVENT_GPT16_CMPE = (416), // GPT16 GTCCRE compare match + ELC_EVENT_GPT16_CMPF = (417), // GPT16 GTCCRF compare match + ELC_EVENT_GPT16_OVF = (418), // GPT16 GTCNT overflow (GTPR compare match) + ELC_EVENT_GPT16_UDF = (419), // GPT16 GTCNT underflow + ELC_EVENT_GPT17_CCMPA = (420), // GPT17 GTCCRA input capture/compare match + ELC_EVENT_GPT17_CCMPB = (421), // GPT17 GTCCRB input capture/compare match + ELC_EVENT_GPT17_CMPC = (422), // GPT17 GTCCRC compare match + ELC_EVENT_GPT17_CMPD = (423), // GPT17 GTCCRD compare match + ELC_EVENT_GPT17_CMPE = (424), // GPT17 GTCCRE compare match + ELC_EVENT_GPT17_CMPF = (425), // GPT17 GTCCRF compare match + ELC_EVENT_GPT17_OVF = (426), // GPT17 GTCNT overflow (GTPR compare match) + ELC_EVENT_GPT17_UDF = (427), // GPT17 GTCNT underflow + ELC_EVENT_POEG2_GROUP0 = (428), // POEG group A interrupt for channels in SAFETY + ELC_EVENT_POEG2_GROUP1 = (429), // POEG group B interrupt for channels in SAFETY + ELC_EVENT_POEG2_GROUP2 = (430), // POEG group C interrupt for channels in SAFETY + ELC_EVENT_POEG2_GROUP3 = (431), // POEG group D interrupt for channels in SAFETY + ELC_EVENT_RTC_ALM = (432), // Alarm interrupt + ELC_EVENT_RTC_1S = (433), // 1 second interrupt + ELC_EVENT_RTC_PRD = (434), // Fixed interval interrupt + ELC_EVENT_SCI5_ERI = (435), // SCI5 Receive error + ELC_EVENT_SCI5_RXI = (436), // SCI5 Receive data full + ELC_EVENT_SCI5_TXI = (437), // SCI5 Transmit data empty + ELC_EVENT_SCI5_TEI = (438), // SCI5 Transmit end + ELC_EVENT_IIC2_EEI = (439), // IIC2 Transfer error or event generation + ELC_EVENT_IIC2_RXI = (440), // IIC2 Receive data full + ELC_EVENT_IIC2_TXI = (441), // IIC2 Transmit data empty + ELC_EVENT_IIC2_TEI = (442), // IIC2 Transmit end + ELC_EVENT_SPI3_SPRI = (443), // SPI3 Reception buffer full + ELC_EVENT_SPI3_SPTI = (444), // SPI3 Transmit buffer empty + ELC_EVENT_SPI3_SPII = (445), // SPI3 SPI idle + ELC_EVENT_SPI3_SPEI = (446), // SPI3 errors + ELC_EVENT_SPI3_SPCEND = (447), // SPI3 Communication complete + ELC_EVENT_DREQ = (448), // External DMA request + ELC_EVENT_CAN_RF_DMAREQ0 = (449), // CAFND RX FIFO 0 DMA request + ELC_EVENT_CAN_RF_DMAREQ1 = (450), // CAFND RX FIFO 1 DMA request + ELC_EVENT_CAN_RF_DMAREQ2 = (451), // CAFND RX FIFO 2 DMA request + ELC_EVENT_CAN_RF_DMAREQ3 = (452), // CAFND RX FIFO 3 DMA request + ELC_EVENT_CAN_RF_DMAREQ4 = (453), // CAFND RX FIFO 4 DMA request + ELC_EVENT_CAN_RF_DMAREQ5 = (454), // CAFND RX FIFO 5 DMA request + ELC_EVENT_CAN_RF_DMAREQ6 = (455), // CAFND RX FIFO 6 DMA request + ELC_EVENT_CAN_RF_DMAREQ7 = (456), // CAFND RX FIFO 7 DMA request + ELC_EVENT_CAN0_CF_DMAREQ = (457), // CAFND0 First common FIFO DMA request + ELC_EVENT_CAN1_CF_DMAREQ = (458), // CAFND1 First common FIFO DMA request + ELC_EVENT_ADC0_WCMPM = (459), // ADC0 compare match + ELC_EVENT_ADC0_WCMPUM = (460), // ADC0 compare mismatch + ELC_EVENT_ADC1_WCMPM = (461), // ADC1 compare match + ELC_EVENT_ADC1_WCMPUM = (462), // ADC1 compare mismatch + ELC_EVENT_TCIV4_OF = (463), // MTU4.TCNT overflow + ELC_EVENT_TCIV4_UF = (464), // MTU4.TCNT underflow + ELC_EVENT_TCIV7_OF = (465), // MTU7.TCNT overflow + ELC_EVENT_TCIV7_UF = (466), // MTU7.TCNT underflow + ELC_EVENT_IOPORT_GROUP1 = (467), // Input edge detection of input port group 1 + ELC_EVENT_IOPORT_GROUP2 = (468), // Input edge detection of input port group 2 + ELC_EVENT_IOPORT_SINGLE0 = (469), // Input edge detection of single input port 0 + ELC_EVENT_IOPORT_SINGLE1 = (470), // Input edge detection of single input port 1 + ELC_EVENT_IOPORT_SINGLE2 = (471), // Input edge detection of single input port 2 + ELC_EVENT_IOPORT_SINGLE3 = (472), // Input edge detection of single input port 3 + ELC_EVENT_GPT0_ADTRGA = (473), // GPT0 GTADTRA compare match + ELC_EVENT_GPT0_ADTRGB = (474), // GPT0 GTADTRB compare match + ELC_EVENT_GPT1_ADTRGA = (475), // GPT1 GTADTRA compare match + ELC_EVENT_GPT1_ADTRGB = (476), // GPT1 GTADTRB compare match + ELC_EVENT_GPT2_ADTRGA = (477), // GPT2 GTADTRA compare match + ELC_EVENT_GPT2_ADTRGB = (478), // GPT2 GTADTRB compare match + ELC_EVENT_GPT3_ADTRGA = (479), // GPT3 GTADTRA compare match + ELC_EVENT_GPT3_ADTRGB = (480), // GPT3 GTADTRB compare match + ELC_EVENT_GPT4_ADTRGA = (481), // GPT4 GTADTRA compare match + ELC_EVENT_GPT4_ADTRGB = (482), // GPT4 GTADTRB compare match + ELC_EVENT_GPT5_ADTRGA = (483), // GPT5 GTADTRA compare match + ELC_EVENT_GPT5_ADTRGB = (484), // GPT5 GTADTRB compare match + ELC_EVENT_GPT6_ADTRGA = (485), // GPT6 GTADTRA compare match + ELC_EVENT_GPT6_ADTRGB = (486), // GPT6 GTADTRB compare match + ELC_EVENT_GPT7_ADTRGA = (487), // GPT7 GTADTRA compare match + ELC_EVENT_GPT7_ADTRGB = (488), // GPT7 GTADTRB compare match + ELC_EVENT_GPT8_ADTRGA = (489), // GPT8 GTADTRA compare match + ELC_EVENT_GPT8_ADTRGB = (490), // GPT8 GTADTRB compare match + ELC_EVENT_GPT9_ADTRGA = (491), // GPT9 GTADTRA compare match + ELC_EVENT_GPT9_ADTRGB = (492), // GPT9 GTADTRB compare match + ELC_EVENT_GPT10_ADTRGA = (493), // GPT10 GTADTRA compare match + ELC_EVENT_GPT10_ADTRGB = (494), // GPT10 GTADTRB compare match + ELC_EVENT_GPT11_ADTRGA = (495), // GPT11 GTADTRA compare match + ELC_EVENT_GPT11_ADTRGB = (496), // GPT11 GTADTRB compare match + ELC_EVENT_GPT12_ADTRGA = (497), // GPT12 GTADTRA compare match + ELC_EVENT_GPT12_ADTRGB = (498), // GPT12 GTADTRB compare match + ELC_EVENT_GPT13_ADTRGA = (499), // GPT13 GTADTRA compare match + ELC_EVENT_GPT13_ADTRGB = (500), // GPT13 GTADTRB compare match + ELC_EVENT_NONE +} elc_event_t; + +/** @} (end addtogroup BSP_MCU_RZN2L) */ + +/*********************************************************************************************************************** + * Exported global variables + **********************************************************************************************************************/ + +/*********************************************************************************************************************** + * Exported global functions (to be accessed by other files) + **********************************************************************************************************************/ + +/** Common macro for FSP header files. There is also a corresponding FSP_HEADER macro at the top of this file. */ +FSP_FOOTER + +#endif diff --git a/bsp/renesas/rzn2l_rsk/rzn/fsp/src/bsp/mcu/rzn2l/bsp_feature.h b/bsp/renesas/rzn2l_rsk/rzn/fsp/src/bsp/mcu/rzn2l/bsp_feature.h new file mode 100644 index 0000000000..f4a7fa9a18 --- /dev/null +++ b/bsp/renesas/rzn2l_rsk/rzn/fsp/src/bsp/mcu/rzn2l/bsp_feature.h @@ -0,0 +1,242 @@ +/*********************************************************************************************************************** + * Copyright [2020-2024] Renesas Electronics Corporation and/or its affiliates. All Rights Reserved. + * + * This software and documentation are supplied by Renesas Electronics Corporation and/or its affiliates and may only + * be used with products of Renesas Electronics Corp. and its affiliates ("Renesas"). No other uses are authorized. + * Renesas products are sold pursuant to Renesas terms and conditions of sale. Purchasers are solely responsible for + * the selection and use of Renesas products and Renesas assumes no liability. No license, express or implied, to any + * intellectual property right is granted by Renesas. This software is protected under all applicable laws, including + * copyright laws. Renesas reserves the right to change or discontinue this software and/or this documentation. + * THE SOFTWARE AND DOCUMENTATION IS DELIVERED TO YOU "AS IS," AND RENESAS MAKES NO REPRESENTATIONS OR WARRANTIES, AND + * TO THE FULLEST EXTENT PERMISSIBLE UNDER APPLICABLE LAW, DISCLAIMS ALL WARRANTIES, WHETHER EXPLICITLY OR IMPLICITLY, + * INCLUDING WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE, AND NONINFRINGEMENT, WITH RESPECT TO THE + * SOFTWARE OR DOCUMENTATION. RENESAS SHALL HAVE NO LIABILITY ARISING OUT OF ANY SECURITY VULNERABILITY OR BREACH. + * TO THE MAXIMUM EXTENT PERMITTED BY LAW, IN NO EVENT WILL RENESAS BE LIABLE TO YOU IN CONNECTION WITH THE SOFTWARE OR + * DOCUMENTATION (OR ANY PERSON OR ENTITY CLAIMING RIGHTS DERIVED FROM YOU) FOR ANY LOSS, DAMAGES, OR CLAIMS WHATSOEVER, + * INCLUDING, WITHOUT LIMITATION, ANY DIRECT, CONSEQUENTIAL, SPECIAL, INDIRECT, PUNITIVE, OR INCIDENTAL DAMAGES; ANY + * LOST PROFITS, OTHER ECONOMIC DAMAGE, PROPERTY DAMAGE, OR PERSONAL INJURY; AND EVEN IF RENESAS HAS BEEN ADVISED OF THE + * POSSIBILITY OF SUCH LOSS, DAMAGES, CLAIMS OR COSTS. + **********************************************************************************************************************/ + +#ifndef BSP_FEATURE_H +#define BSP_FEATURE_H + +/*********************************************************************************************************************** + * Includes , "Project Includes" + **********************************************************************************************************************/ + +/** Common macro for FSP header files. There is also a corresponding FSP_FOOTER macro at the end of this file. */ +FSP_HEADER + +/*********************************************************************************************************************** + * Macro definitions + **********************************************************************************************************************/ +#define BSP_FEATURE_ADC_ADDITION_SUPPORTED (1U) +#define BSP_FEATURE_ADC_CALIBRATION_REG_AVAILABLE (0U) +#define BSP_FEATURE_ADC_CLOCK_SOURCE (FSP_PRIV_CLOCK_PCLKADC) +#define BSP_FEATURE_ADC_GROUP_B_SENSORS_ALLOWED (1U) +#define BSP_FEATURE_ADC_HAS_ADCER_ADPRC (1U) +#define BSP_FEATURE_ADC_HAS_ADCER_ADRFMT (1U) +#define BSP_FEATURE_ADC_HAS_PGA (1U) +#define BSP_FEATURE_ADC_HAS_SAMPLE_HOLD_REG (1U) +#define BSP_FEATURE_ADC_HAS_VREFAMPCNT (0U) +#define BSP_FEATURE_ADC_MAX_RESOLUTION_BITS (12U) +#define BSP_FEATURE_ADC_REGISTER_MASK_TYPE (1U) +#define BSP_FEATURE_ADC_SENSOR_MIN_SAMPLING_TIME (4150U) +#define BSP_FEATURE_ADC_SENSORS_EXCLUSIVE (0U) +#define BSP_FEATURE_ADC_TSN_CALIBRATION_AVAILABLE (0U) +#define BSP_FEATURE_ADC_TSN_CALIBRATION32_AVAILABLE (1U) +#define BSP_FEATURE_ADC_TSN_CALIBRATION32_MASK (0x00000FFFU) +#define BSP_FEATURE_ADC_TSN_CONTROL_AVAILABLE (1U) +#define BSP_FEATURE_ADC_TSN_SLOPE (4000U) +#define BSP_FEATURE_ADC_UNIT_0_CHANNELS (0x000F) // 0 to 3 in unit 0 +#define BSP_FEATURE_ADC_UNIT_1_CHANNELS (0x00FF) // 0 to 7 in unit 1 +#define BSP_FEATURE_ADC_VALID_UNIT_MASK (3U) + +#define BSP_FEATURE_BSP_IRQ_PRIORITY_MASK (0xF8U) +#define BSP_FEATURE_BSP_IRQ_PRIORITY_POS_BIT (3U) +#define BSP_FEATURE_BSP_MASTER_MPU0_SUPPORTED (1U) +#define BSP_FEATURE_BSP_MASTER_MPU1_SUPPORTED (1U) +#define BSP_FEATURE_BSP_MASTER_MPU2_SUPPORTED (1U) +#define BSP_FEATURE_BSP_MASTER_MPU3_SUPPORTED (1U) +#define BSP_FEATURE_BSP_MASTER_MPU4_SUPPORTED (1U) +#define BSP_FEATURE_BSP_MASTER_MPU6_SUPPORTED (1U) +#define BSP_FEATURE_BSP_MASTER_MPU7_SUPPORTED (1U) +#define BSP_FEATURE_BSP_MASTER_MPU8_SUPPORTED (1U) + +#define BSP_FEATURE_CAN_CHECK_PCLKB_RATIO (0U) +#define BSP_FEATURE_CAN_CLOCK (0U) +#define BSP_FEATURE_CAN_MCLOCK_ONLY (0U) +#define BSP_FEATURE_CAN_NUM_CHANNELS (2U) + +#define BSP_FEATURE_CANFD_NUM_CHANNELS (2U) + +#define BSP_FEATURE_CGC_HAS_BCLK (1U) +#define BSP_FEATURE_CGC_HAS_FCLK (1U) +#define BSP_FEATURE_CGC_HAS_FLDWAITR (0U) +#define BSP_FEATURE_CGC_HAS_FLWT (1U) +#define BSP_FEATURE_CGC_HAS_HOCOWTCR (1U) +#define BSP_FEATURE_CGC_HAS_MEMWAIT (0U) +#define BSP_FEATURE_CGC_HAS_PCLKA (1U) +#define BSP_FEATURE_CGC_HAS_PCLKB (1U) +#define BSP_FEATURE_CGC_HAS_PCLKC (1U) +#define BSP_FEATURE_CGC_HAS_PCLKD (1U) +#define BSP_FEATURE_CGC_HAS_PLL (1U) +#define BSP_FEATURE_CGC_HAS_PLL2 (0U) +#define BSP_FEATURE_CGC_HAS_SRAMPRCR2 (0U) +#define BSP_FEATURE_CGC_HAS_SRAMWTSC (1U) +#define BSP_FEATURE_CGC_HOCOSF_BEFORE_OPCCR (0U) +#define BSP_FEATURE_CGC_HOCOWTCR_64MHZ_ONLY (0U) +#define BSP_FEATURE_CGC_ICLK_DIV_RESET (BSP_CLOCKS_SYS_CLOCK_DIV_4) +#define BSP_FEATURE_CGC_LOCO_CONTROL_ADDRESS (0x81280070U) +#define BSP_FEATURE_CGC_LOCO_STABILIZATION_MAX_US (61U) +#define BSP_FEATURE_CGC_LOW_SPEED_MAX_FREQ_HZ (1000000U) // This MCU does have Low Speed Mode, up to 1MHz +#define BSP_FEATURE_CGC_LOW_VOLTAGE_MAX_FREQ_HZ (0U) // This MCU does not have Low Voltage Mode +#define BSP_FEATURE_CGC_MIDDLE_SPEED_MAX_FREQ_HZ (0U) // This MCU does not have Middle Speed Mode +#define BSP_FEATURE_CGC_MOCO_STABILIZATION_MAX_US (15U) +#define BSP_FEATURE_CGC_MODRV_MASK (0x30U) +#define BSP_FEATURE_CGC_MODRV_SHIFT (0x4U) +#define BSP_FEATURE_CGC_PLL1_CONTROL_ADDRESS (0x81280050U) +#define BSP_FEATURE_CGC_PLLCCR_MAX_HZ (240000000U) +#define BSP_FEATURE_CGC_PLLCCR_TYPE (1U) +#define BSP_FEATURE_CGC_PLLCCR_WAIT_US (0U) // No wait between setting PLLCCR and clearing PLLSTP +#define BSP_FEATURE_CGC_SCKDIVCR_BCLK_MATCHES_PCLKB (0U) +#define BSP_FEATURE_CGC_SODRV_MASK (0x02U) +#define BSP_FEATURE_CGC_SODRV_SHIFT (0x1U) +#define BSP_FEATURE_CGC_STARTUP_OPCCR_MODE (0U) + +#define BSP_FEATURE_CMT_VALID_CHANNEL_MASK (0x3FU) + +#define BSP_FEATURE_CMTW_VALID_CHANNEL_MASK (0x3U) + +#define BSP_FEATURE_CRC_VALID_CHANNEL_MASK (0x3U) + +#define BSP_FEATURE_DMAC_MAX_CHANNEL (8U) +#define BSP_FEATURE_DMAC_MAX_UNIT (2U) +#define BSP_FEATURE_DMAC_UNIT0_ERROR_NUM (5U) + +#define BSP_FEATURE_DSMIF_CHANNEL_STATUS (1U) +#define BSP_FEATURE_DSMIF_DATA_FORMAT_SEL (0U) +#define BSP_FEATURE_DSMIF_ERROR_STATUS_CLR (5U) +#define BSP_FEATURE_DSMIF_OVERCURRENT_DETECT_CONTROL (1U) +#define BSP_FEATURE_DSMIF_OVERCURRENT_DETECT_ISR (1U) +#define BSP_FEATURE_DSMIF_OVERCURRENT_DETECT_NOTIFY (0U) +#define BSP_FEATURE_DSMIF_OVERCURRENT_ERROR_STATUS (1U) +#define BSP_FEATURE_DSMIF_OVERCURRENT_NOTIFY_STATUS (0U) + +#define BSP_FEATURE_ELC_ELC_SSEL_NUM (19) +#define BSP_FEATURE_ELC_EVENT_MASK_NUM (4U) +#define BSP_FEATURE_ELC_PERIPHERAL_0_MASK (0xFFFFFFFFU) // ELC event source no.0 to 31 available on this MCU +#define BSP_FEATURE_ELC_PERIPHERAL_1_MASK (0x007FF9FFU) // ELC event source no.32 to 63 available on this MCU. +#define BSP_FEATURE_ELC_PERIPHERAL_2_MASK (0x00000000U) // ELC event source no.64 to 95 available on this MCU. +#define BSP_FEATURE_ELC_PERIPHERAL_3_MASK (0x00000000U) // ELC event source no.96 to 127 available on this MCU. +#define BSP_FEATURE_ELC_PERIPHERAL_TYPE (1U) + +#define BSP_FEATURE_ESC_MAX_PORTS (3U) +#define BSP_FEATURE_ETHER_FIFO_DEPTH (0x0000070FU) +#define BSP_FEATURE_ETHER_PHY_MAX_CHANNELS (3U) +#define BSP_FEATURE_ETHSS_MAX_PORTS (3U) +#define BSP_FEATURE_ETHSS_SWITCH_MODE_BIT_MASK (3U) + +#define BSP_FEATURE_ETHSW_MAX_CHANNELS (1U) +#define BSP_FEATURE_ETHSW_SUPPORTED (1U) +#define BSP_FEATURE_GMAC_MAX_CHANNELS (1U) +#define BSP_FEATURE_GMAC_MAX_PORTS (3U) + +#define BSP_FEATURE_GPT_32BIT_CHANNEL_MASK (0x3FFFF) +#define BSP_FEATURE_GPT_LLPP_BASE_CHANNEL (0) // LLPP channel: ch0-6 +#define BSP_FEATURE_GPT_LLPP_CHANNEL_MASK (0x0007F) +#define BSP_FEATURE_GPT_NONSAFETY_BASE_CHANNEL (7) // Non-safety channel: ch7-13 +#define BSP_FEATURE_GPT_NONSAFETY_CHANNEL_MASK (0x0007F) +#define BSP_FEATURE_GPT_SAFETY_BASE_CHANNEL (14) // safety channel: ch14-17 +#define BSP_FEATURE_GPT_SAFETY_CHANNEL_MASK (0x0000F) +#define BSP_FEATURE_GPT_VALID_CHANNEL_MASK (0x3FFFF) + +#define BSP_FEATURE_GPTE_CHANNEL_MASK (0xF0) +#define BSP_FEATURE_GPTEH_CHANNEL_MASK (0xF) + +#define BSP_FEATURE_ICU_ERROR_PERI_ERR_REG_NUM (2U) +#define BSP_FEATURE_ICU_ERROR_PERI_ERR0_REG_MASK (0xFFFFFEFFU) +#define BSP_FEATURE_ICU_ERROR_PERI_ERR1_REG_MASK (0x19FFA3FFU) +#define BSP_FEATURE_ICU_ERROR_PERIPHERAL_TYPE (1U) +#define BSP_FEATURE_ICU_HAS_WUPEN1 (0U) +#define BSP_FEATURE_ICU_IRQ_CHANNELS_MASK (0xFFFFU) +#define BSP_FEATURE_ICU_WUPEN_MASK (0xFF4FFFFFU) + +#define BSP_FEATURE_IIC_FAST_MODE_PLUS (0U) +#define BSP_FEATURE_IIC_SAFETY_CHANNEL (2U) +#define BSP_FEATURE_IIC_SAFETY_CHANNEL_BASE_ADDRESS (R_IIC2_BASE) +#define BSP_FEATURE_IIC_VALID_CHANNEL_MASK (0x07) + +#define BSP_FEATURE_IOPORT_ELC_PORTS (4U) +#define BSP_FEATURE_IOPORT_HAS_ETHERNET (1U) + +#define BSP_FEATURE_LPM_CHANGE_MSTP_ARRAY {{0, 15}, {0, 13}, {1, 31}, {1, 6}, {1, 5}, {1, 4}, {2, 5}} +#define BSP_FEATURE_LPM_CHANGE_MSTP_REQUIRED (1U) +#define BSP_FEATURE_LPM_DPSIEGR_MASK (0x00137FFFU) +#define BSP_FEATURE_LPM_DPSIER_MASK (0x071F7FFFU) +#define BSP_FEATURE_LPM_HAS_DEEP_STANDBY (1U) +#define BSP_FEATURE_LPM_HAS_SBYCR_OPE (1U) +#define BSP_FEATURE_LPM_HAS_SNZEDCR1 (0U) +#define BSP_FEATURE_LPM_HAS_SNZREQCR1 (0U) +#define BSP_FEATURE_LPM_HAS_STCONR (1U) +#define BSP_FEATURE_LPM_SBYCR_WRITE1_B14 (0U) +#define BSP_FEATURE_LPM_SNZEDCR_MASK (0x000000FFU) +#define BSP_FEATURE_LPM_SNZREQCR_MASK (0x7342FFFFU) + +#define BSP_FEATURE_MTU3_MAX_CHANNELS (9U) +#define BSP_FEATURE_MTU3_UVW_MAX_CHANNELS (3U) +#define BSP_FEATURE_MTU3_VALID_CHANNEL_MASK (0x01FF) + +#define BSP_FEATURE_OSPI_DEVICE_0_START_ADDRESS (0x0U) +#define BSP_FEATURE_OSPI_DEVICE_1_START_ADDRESS (0x0U) + +#define BSP_FEATURE_POE3_ERROR_SIGNAL_TYPE (1U) +#define BSP_FEATURE_POE3_PIN_SELECT_TYPE (1U) + +#define BSP_FEATURE_POEG_CHANNEL_MASK (0xFU) +#define BSP_FEATURE_POEG_ERROR_SIGNAL_TYPE (1U) +#define BSP_FEATURE_POEG_GROUP_OFSSET_ADDRESS (0x400) +#define BSP_FEATURE_POEG_LLPP_UNIT (0U) +#define BSP_FEATURE_POEG_MAX_UNIT (2U) +#define BSP_FEATURE_POEG_NONSAFETY_UNIT (1U) +#define BSP_FEATURE_POEG_SAFETY_UNIT (2U) + +#define BSP_FEATURE_SCI_ADDRESS_MATCH_CHANNELS (BSP_FEATURE_SCI_CHANNELS) +#define BSP_FEATURE_SCI_CHANNELS (0x3FU) +#define BSP_FEATURE_SCI_SAFETY_CHANNEL (5U) +#define BSP_FEATURE_SCI_SAFETY_CHANNEL_BASE_ADDRESS (R_SCI5_BASE) +#define BSP_FEATURE_SCI_UART_CSTPEN_CHANNELS (0x03FU) +#define BSP_FEATURE_SCI_UART_FIFO_CHANNELS (0x3FFU) +#define BSP_FEATURE_SCI_UART_FIFO_DEPTH (16U) + +#define BSP_FEATURE_SEM_SUPPORTED (0U) + +#define BSP_FEATURE_SPI_HAS_BYTE_SWAP (1U) +#define BSP_FEATURE_SPI_HAS_SPCR3 (0U) +#define BSP_FEATURE_SPI_HAS_SSL_LEVEL_KEEP (1U) +#define BSP_FEATURE_SPI_MAX_CHANNEL (4U) +#define BSP_FEATURE_SPI_SAFETY_CHANNEL (3U) +#define BSP_FEATURE_SPI_SAFETY_CHANNEL_BASE_ADDRESS (R_SPI3_BASE) + +#define BSP_FEATURE_TFU_SUPPORTED (1U) + +#define BSP_FEATURE_XSPI_CHANNELS (0x03U) +#define BSP_FEATURE_XSPI_NUM_CHIP_SELECT (2U) + +/*********************************************************************************************************************** + * Typedef definitions + **********************************************************************************************************************/ + +/*********************************************************************************************************************** + * Exported global variables + **********************************************************************************************************************/ + +/*********************************************************************************************************************** + * Exported global functions (to be accessed by other files) + **********************************************************************************************************************/ + +/** Common macro for FSP header files. There is also a corresponding FSP_HEADER macro at the top of this file. */ +FSP_FOOTER + +#endif diff --git a/bsp/renesas/rzn2l_rsk/rzn/fsp/src/bsp/mcu/rzn2l/bsp_irq_sense.c b/bsp/renesas/rzn2l_rsk/rzn/fsp/src/bsp/mcu/rzn2l/bsp_irq_sense.c new file mode 100644 index 0000000000..b524d26870 --- /dev/null +++ b/bsp/renesas/rzn2l_rsk/rzn/fsp/src/bsp/mcu/rzn2l/bsp_irq_sense.c @@ -0,0 +1,86 @@ +/*********************************************************************************************************************** + * Copyright [2020-2024] Renesas Electronics Corporation and/or its affiliates. All Rights Reserved. + * + * This software and documentation are supplied by Renesas Electronics Corporation and/or its affiliates and may only + * be used with products of Renesas Electronics Corp. and its affiliates ("Renesas"). No other uses are authorized. + * Renesas products are sold pursuant to Renesas terms and conditions of sale. Purchasers are solely responsible for + * the selection and use of Renesas products and Renesas assumes no liability. No license, express or implied, to any + * intellectual property right is granted by Renesas. This software is protected under all applicable laws, including + * copyright laws. Renesas reserves the right to change or discontinue this software and/or this documentation. + * THE SOFTWARE AND DOCUMENTATION IS DELIVERED TO YOU "AS IS," AND RENESAS MAKES NO REPRESENTATIONS OR WARRANTIES, AND + * TO THE FULLEST EXTENT PERMISSIBLE UNDER APPLICABLE LAW, DISCLAIMS ALL WARRANTIES, WHETHER EXPLICITLY OR IMPLICITLY, + * INCLUDING WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE, AND NONINFRINGEMENT, WITH RESPECT TO THE + * SOFTWARE OR DOCUMENTATION. RENESAS SHALL HAVE NO LIABILITY ARISING OUT OF ANY SECURITY VULNERABILITY OR BREACH. + * TO THE MAXIMUM EXTENT PERMITTED BY LAW, IN NO EVENT WILL RENESAS BE LIABLE TO YOU IN CONNECTION WITH THE SOFTWARE OR + * DOCUMENTATION (OR ANY PERSON OR ENTITY CLAIMING RIGHTS DERIVED FROM YOU) FOR ANY LOSS, DAMAGES, OR CLAIMS WHATSOEVER, + * INCLUDING, WITHOUT LIMITATION, ANY DIRECT, CONSEQUENTIAL, SPECIAL, INDIRECT, PUNITIVE, OR INCIDENTAL DAMAGES; ANY + * LOST PROFITS, OTHER ECONOMIC DAMAGE, PROPERTY DAMAGE, OR PERSONAL INJURY; AND EVEN IF RENESAS HAS BEEN ADVISED OF THE + * POSSIBILITY OF SUCH LOSS, DAMAGES, CLAIMS OR COSTS. + **********************************************************************************************************************/ + +/*********************************************************************************************************************** + * Includes , "Project Includes" + **********************************************************************************************************************/ +#include "bsp_api.h" + +/*********************************************************************************************************************** + * Macro definitions + **********************************************************************************************************************/ + +/*********************************************************************************************************************** + * Typedef definitions + **********************************************************************************************************************/ + +/*********************************************************************************************************************** + * Exported global variables (to be accessed by other files) + **********************************************************************************************************************/ + +/*******************************************************************************************************************//** + * @addtogroup BSP_MCU_RZN2L + * @{ + **********************************************************************************************************************/ + +/** Array of GICD_ICFGR initialization value. */ +const uint32_t BSP_GICD_ICFGR_INIT[BSP_NON_SELECTABLE_ICFGR_MAX] = +{ + 0xAAAAAAAAUL, /* Event No. 0 to 15 */ + 0x000000AAUL, /* Event No. 16 to 31 */ + 0x00000000UL, /* Event No. 32 to 47 */ + 0xAAAAA800UL, /* Event No. 48 to 63 */ + 0xAAAAAAAAUL, /* Event No. 64 to 79 */ + 0xAAAAAAAAUL, /* Event No. 80 to 95 */ + 0xAAAAAAAAUL, /* Event No. 96 to 111 */ + 0xAAAAAA00UL, /* Event No. 112 to 127 */ + 0xAAAAAAAAUL, /* Event No. 128 to 143 */ + 0xAAAAAAAAUL, /* Event No. 144 to 159 */ + 0xAAAAAAAAUL, /* Event No. 160 to 175 */ + 0xAAAAAAAAUL, /* Event No. 176 to 191 */ + 0xAAAAAAAAUL, /* Event No. 192 to 207 */ + 0xAAAAAAAAUL, /* Event No. 208 to 223 */ + 0xAAAAAAAAUL, /* Event No. 224 to 239 */ + 0x0000000AUL, /* Event No. 240 to 255 */ + 0xA8000000UL, /* Event No. 256 to 271 */ + 0xA82A2AAAUL, /* Event No. 272 to 287 */ + 0x28282828UL, /* Event No. 288 to 303 */ + 0x00282828UL, /* Event No. 304 to 319 */ + 0xA82A0A00UL, /* Event No. 320 to 335 */ + 0xA0AA8020UL, /* Event No. 336 to 351 */ + 0x00000002UL, /* Event No. 352 to 367 */ + 0x00000000UL, /* Event No. 368 to 383 */ + 0xAAAA0A0AUL, /* Event No. 384 to 399 */ + 0xAAAAAAAAUL, /* Event No. 400 to 415 */ + 0x00AAAAAAUL, /* Event No. 416 to 431 */ + 0x828A0A2AUL, /* Event No. 432 to 447 */ +}; + +const uint32_t BSP_GICR_SGI_PPI_ICFGR_INIT[BSP_EVENT_SGI_PPI_ARRAY_NUM] = +{ + 0xAAAAAAAAUL, /* event SGI */ + 0x00020000UL, /* event PPI */ +}; + +/** @} (end addtogroup BSP_MCU_RZN2L) */ + +/*********************************************************************************************************************** + * Private global variables and functions + **********************************************************************************************************************/ diff --git a/bsp/renesas/rzn2l_rsk/rzn/fsp/src/bsp/mcu/rzn2l/bsp_loader_param.c b/bsp/renesas/rzn2l_rsk/rzn/fsp/src/bsp/mcu/rzn2l/bsp_loader_param.c new file mode 100644 index 0000000000..3933a103ba --- /dev/null +++ b/bsp/renesas/rzn2l_rsk/rzn/fsp/src/bsp/mcu/rzn2l/bsp_loader_param.c @@ -0,0 +1,69 @@ +/*********************************************************************************************************************** + * Copyright [2020-2024] Renesas Electronics Corporation and/or its affiliates. All Rights Reserved. + * + * This software and documentation are supplied by Renesas Electronics Corporation and/or its affiliates and may only + * be used with products of Renesas Electronics Corp. and its affiliates ("Renesas"). No other uses are authorized. + * Renesas products are sold pursuant to Renesas terms and conditions of sale. Purchasers are solely responsible for + * the selection and use of Renesas products and Renesas assumes no liability. No license, express or implied, to any + * intellectual property right is granted by Renesas. This software is protected under all applicable laws, including + * copyright laws. Renesas reserves the right to change or discontinue this software and/or this documentation. + * THE SOFTWARE AND DOCUMENTATION IS DELIVERED TO YOU "AS IS," AND RENESAS MAKES NO REPRESENTATIONS OR WARRANTIES, AND + * TO THE FULLEST EXTENT PERMISSIBLE UNDER APPLICABLE LAW, DISCLAIMS ALL WARRANTIES, WHETHER EXPLICITLY OR IMPLICITLY, + * INCLUDING WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE, AND NONINFRINGEMENT, WITH RESPECT TO THE + * SOFTWARE OR DOCUMENTATION. RENESAS SHALL HAVE NO LIABILITY ARISING OUT OF ANY SECURITY VULNERABILITY OR BREACH. + * TO THE MAXIMUM EXTENT PERMITTED BY LAW, IN NO EVENT WILL RENESAS BE LIABLE TO YOU IN CONNECTION WITH THE SOFTWARE OR + * DOCUMENTATION (OR ANY PERSON OR ENTITY CLAIMING RIGHTS DERIVED FROM YOU) FOR ANY LOSS, DAMAGES, OR CLAIMS WHATSOEVER, + * INCLUDING, WITHOUT LIMITATION, ANY DIRECT, CONSEQUENTIAL, SPECIAL, INDIRECT, PUNITIVE, OR INCIDENTAL DAMAGES; ANY + * LOST PROFITS, OTHER ECONOMIC DAMAGE, PROPERTY DAMAGE, OR PERSONAL INJURY; AND EVEN IF RENESAS HAS BEEN ADVISED OF THE + * POSSIBILITY OF SUCH LOSS, DAMAGES, CLAIMS OR COSTS. + **********************************************************************************************************************/ + +/*********************************************************************************************************************** + * Includes , "Project Includes" + **********************************************************************************************************************/ +#include "bsp_api.h" + +#if !(BSP_CFG_RAM_EXECUTION) + +/*********************************************************************************************************************** + * Macro definitions + **********************************************************************************************************************/ + #define BSP_LOADER_PARAM_MAX (19) + +/*********************************************************************************************************************** + * Typedef definitions + **********************************************************************************************************************/ + +/*********************************************************************************************************************** + * Exported global variables (to be accessed by other files) + **********************************************************************************************************************/ + +/* Parameter Information for the Loader. */ +BSP_DONT_REMOVE const uint32_t g_bsp_loader_param[BSP_LOADER_PARAM_MAX] BSP_PLACE_IN_SECTION(BSP_SECTION_LOADER_PARAM) = +{ + BSP_CFG_CACHE_FLG, + BSP_CFG_CS0BCR_V_WRAPCFG_V, + BSP_CFG_CS0WCR_V_COMCFG_V, + BSP_CFG_DUMMY0_BMCFG_V, + BSP_CFG_BSC_FLG_xSPI_FLG, + BSP_CFG_LDR_ADDR_NML, + BSP_CFG_LDR_SIZE_NML, + BSP_CFG_DEST_ADDR_NML, + BSP_CFG_DUMMY1, + BSP_CFG_DUMMY2, + BSP_CFG_DUMMY3_CSSCTL_V, + BSP_CFG_DUMMY4_LIOCFGCS0_V, + BSP_CFG_DUMMY5, + BSP_CFG_DUMMY6, + BSP_CFG_DUMMY7, + BSP_CFG_DUMMY8, + BSP_CFG_DUMMY9, + BSP_CFG_DUMMY10_ACCESS_SPEED, + BSP_CFG_CHECK_SUM +}; + +/*********************************************************************************************************************** + * Private global variables and functions + **********************************************************************************************************************/ + +#endif diff --git a/bsp/renesas/rzn2l_rsk/rzn/fsp/src/bsp/mcu/rzn2l/bsp_mcu_info.h b/bsp/renesas/rzn2l_rsk/rzn/fsp/src/bsp/mcu/rzn2l/bsp_mcu_info.h new file mode 100644 index 0000000000..e0b338a753 --- /dev/null +++ b/bsp/renesas/rzn2l_rsk/rzn/fsp/src/bsp/mcu/rzn2l/bsp_mcu_info.h @@ -0,0 +1,64 @@ +/*********************************************************************************************************************** + * Copyright [2020-2024] Renesas Electronics Corporation and/or its affiliates. All Rights Reserved. + * + * This software and documentation are supplied by Renesas Electronics Corporation and/or its affiliates and may only + * be used with products of Renesas Electronics Corp. and its affiliates ("Renesas"). No other uses are authorized. + * Renesas products are sold pursuant to Renesas terms and conditions of sale. Purchasers are solely responsible for + * the selection and use of Renesas products and Renesas assumes no liability. No license, express or implied, to any + * intellectual property right is granted by Renesas. This software is protected under all applicable laws, including + * copyright laws. Renesas reserves the right to change or discontinue this software and/or this documentation. + * THE SOFTWARE AND DOCUMENTATION IS DELIVERED TO YOU "AS IS," AND RENESAS MAKES NO REPRESENTATIONS OR WARRANTIES, AND + * TO THE FULLEST EXTENT PERMISSIBLE UNDER APPLICABLE LAW, DISCLAIMS ALL WARRANTIES, WHETHER EXPLICITLY OR IMPLICITLY, + * INCLUDING WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE, AND NONINFRINGEMENT, WITH RESPECT TO THE + * SOFTWARE OR DOCUMENTATION. RENESAS SHALL HAVE NO LIABILITY ARISING OUT OF ANY SECURITY VULNERABILITY OR BREACH. + * TO THE MAXIMUM EXTENT PERMITTED BY LAW, IN NO EVENT WILL RENESAS BE LIABLE TO YOU IN CONNECTION WITH THE SOFTWARE OR + * DOCUMENTATION (OR ANY PERSON OR ENTITY CLAIMING RIGHTS DERIVED FROM YOU) FOR ANY LOSS, DAMAGES, OR CLAIMS WHATSOEVER, + * INCLUDING, WITHOUT LIMITATION, ANY DIRECT, CONSEQUENTIAL, SPECIAL, INDIRECT, PUNITIVE, OR INCIDENTAL DAMAGES; ANY + * LOST PROFITS, OTHER ECONOMIC DAMAGE, PROPERTY DAMAGE, OR PERSONAL INJURY; AND EVEN IF RENESAS HAS BEEN ADVISED OF THE + * POSSIBILITY OF SUCH LOSS, DAMAGES, CLAIMS OR COSTS. + **********************************************************************************************************************/ + +/*******************************************************************************************************************//** + * @ingroup BSP_MCU + * @defgroup BSP_MCU_RZN2L RZN2L + * @includedoc config_bsp_rzn2l_fsp.html + * @{ + **********************************************************************************************************************/ + +/** @} (end defgroup BSP_MCU_RZN2L) */ + +#ifndef BSP_MCU_INFO_H +#define BSP_MCU_INFO_H + +/*********************************************************************************************************************** + * Includes , "Project Includes" + **********************************************************************************************************************/ + +/* BSP MCU Specific Includes. */ +#include "bsp_elc.h" +#include "bsp_feature.h" + +/** Common macro for FSP header files. There is also a corresponding FSP_FOOTER macro at the end of this file. */ +FSP_HEADER + +/*********************************************************************************************************************** + * Macro definitions + **********************************************************************************************************************/ + +/*********************************************************************************************************************** + * Typedef definitions + **********************************************************************************************************************/ +typedef elc_event_t bsp_interrupt_event_t; + +/*********************************************************************************************************************** + * Exported global variables + **********************************************************************************************************************/ + +/*********************************************************************************************************************** + * Exported global functions (to be accessed by other files) + **********************************************************************************************************************/ + +/** Common macro for FSP header files. There is also a corresponding FSP_HEADER macro at the top of this file. */ +FSP_FOOTER + +#endif diff --git a/bsp/renesas/rzn2l_rsk/rzn/fsp/src/bsp/mcu/rzn2l/bsp_override.h b/bsp/renesas/rzn2l_rsk/rzn/fsp/src/bsp/mcu/rzn2l/bsp_override.h new file mode 100644 index 0000000000..ea77b6eb9a --- /dev/null +++ b/bsp/renesas/rzn2l_rsk/rzn/fsp/src/bsp/mcu/rzn2l/bsp_override.h @@ -0,0 +1,1455 @@ +/*********************************************************************************************************************** + * Copyright [2020-2024] Renesas Electronics Corporation and/or its affiliates. All Rights Reserved. + * + * This software and documentation are supplied by Renesas Electronics Corporation and/or its affiliates and may only + * be used with products of Renesas Electronics Corp. and its affiliates ("Renesas"). No other uses are authorized. + * Renesas products are sold pursuant to Renesas terms and conditions of sale. Purchasers are solely responsible for + * the selection and use of Renesas products and Renesas assumes no liability. No license, express or implied, to any + * intellectual property right is granted by Renesas. This software is protected under all applicable laws, including + * copyright laws. Renesas reserves the right to change or discontinue this software and/or this documentation. + * THE SOFTWARE AND DOCUMENTATION IS DELIVERED TO YOU "AS IS," AND RENESAS MAKES NO REPRESENTATIONS OR WARRANTIES, AND + * TO THE FULLEST EXTENT PERMISSIBLE UNDER APPLICABLE LAW, DISCLAIMS ALL WARRANTIES, WHETHER EXPLICITLY OR IMPLICITLY, + * INCLUDING WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE, AND NONINFRINGEMENT, WITH RESPECT TO THE + * SOFTWARE OR DOCUMENTATION. RENESAS SHALL HAVE NO LIABILITY ARISING OUT OF ANY SECURITY VULNERABILITY OR BREACH. + * TO THE MAXIMUM EXTENT PERMITTED BY LAW, IN NO EVENT WILL RENESAS BE LIABLE TO YOU IN CONNECTION WITH THE SOFTWARE OR + * DOCUMENTATION (OR ANY PERSON OR ENTITY CLAIMING RIGHTS DERIVED FROM YOU) FOR ANY LOSS, DAMAGES, OR CLAIMS WHATSOEVER, + * INCLUDING, WITHOUT LIMITATION, ANY DIRECT, CONSEQUENTIAL, SPECIAL, INDIRECT, PUNITIVE, OR INCIDENTAL DAMAGES; ANY + * LOST PROFITS, OTHER ECONOMIC DAMAGE, PROPERTY DAMAGE, OR PERSONAL INJURY; AND EVEN IF RENESAS HAS BEEN ADVISED OF THE + * POSSIBILITY OF SUCH LOSS, DAMAGES, CLAIMS OR COSTS. + **********************************************************************************************************************/ + +/*******************************************************************************************************************//** + * @addtogroup BSP_MCU_RZN2L + * @{ + **********************************************************************************************************************/ + +/** @} (end addtogroup BSP_MCU_RZN2L) */ + +#ifndef BSP_OVERRIDE_H +#define BSP_OVERRIDE_H + +/*********************************************************************************************************************** + * Includes , "Project Includes" + **********************************************************************************************************************/ + +/* BSP Common Includes. */ +#include "../../src/bsp/mcu/all/bsp_common.h" + +/* BSP MPU Specific Includes. */ +#include "../../src/bsp/mcu/all/bsp_register_protection.h" +#include "../../src/bsp/mcu/all/bsp_irq.h" +#include "../../src/bsp/mcu/all/bsp_io.h" +#include "../../src/bsp/mcu/all/bsp_clocks.h" +#include "../../src/bsp/mcu/all/bsp_module_stop.h" +#include "../../src/bsp/mcu/all/bsp_reset.h" +#include "../../src/bsp/mcu/all/bsp_cache.h" + +/* Factory MPU information. */ +#include "../../inc/fsp_features.h" + +/* BSP Common Includes (Other than bsp_common.h) */ +#include "../../src/bsp/mcu/all/bsp_delay.h" +#include "../../src/bsp/mcu/all/bsp_mcu_api.h" + +/* BSP TFU Includes. */ +#if BSP_FEATURE_TFU_SUPPORTED + #include "../../src/bsp/mcu/all/bsp_tfu.h" +#endif + +/** Common macro for FSP header files. There is also a corresponding FSP_FOOTER macro at the end of this file. */ +FSP_HEADER + +/*********************************************************************************************************************** + * Macro definitions + **********************************************************************************************************************/ + +/* Define overrides required for this MPU. */ +#define BSP_OVERRIDE_ADC_MODE_T +#define BSP_OVERRIDE_ADC_CHANNEL_T +#define BSP_OVERRIDE_CGC_CLOCK_T +#define BSP_OVERRIDE_CGC_PLL_CFG_T +#define BSP_OVERRIDE_CGC_DIVIDER_CFG_T +#define BSP_OVERRIDE_CGC_CLOCK_CHANGE_T +#define BSP_OVERRIDE_CGC_CLOCKS_CFG_T +#define BSP_OVERRIDE_ELC_PERIPHERAL_T +#define BSP_OVERRIDE_ERROR_EVENT_T +#define BSP_OVERRIDE_ETHER_EVENT_T +#define BSP_OVERRIDE_ETHER_CALLBACK_ARGS_T +#define BSP_OVERRIDE_ETHER_PHY_LSI_TYPE_T +#define BSP_OVERRIDE_ETHER_SWITCH_CALLBACK_ARGS_T +#define BSP_OVERRIDE_POE3_STATE_T +#define BSP_OVERRIDE_POEG_STATE_T +#define BSP_OVERRIDE_POEG_TRIGGER_T +#define BSP_OVERRIDE_TRANSFER_MODE_T +#define BSP_OVERRIDE_TRANSFER_SIZE_T +#define BSP_OVERRIDE_TRANSFER_ADDR_MODE_T +#define BSP_OVERRIDE_TRANSFER_CALLBACK_ARGS_T +#define BSP_OVERRIDE_TRANSFER_INFO_T + +/* Override definitions. */ + +#define ELC_PERIPHERAL_NUM (55U) + +/* Private definition to set enumeration values. */ +#define IOPORT_P_OFFSET (0U) +#define IOPORT_PM_OFFSET (1U) +#define IOPORT_PMC_OFFSET (3U) +#define IOPORT_PFC_OFFSET (4U) +#define IOPORT_DRCTL_OFFSET (8U) +#define IOPORT_RSELP_OFFSET (14U) + +/*********************************************************************************************************************** + * Typedef definitions + **********************************************************************************************************************/ + +/*============================================== + * ADC API Overrides + *==============================================*/ + +/** ADC operation mode definitions */ +typedef enum e_adc_mode +{ + ADC_MODE_SINGLE_SCAN = 0, ///< Single scan - one or more channels + ADC_MODE_GROUP_SCAN = 1, ///< Two trigger sources to trigger scan for two groups which contain one or more channels + ADC_MODE_CONTINUOUS_SCAN = 2, ///< Continuous scan - one or more channels + ADC_MODE_SYNCHRONIZE_SCAN = 3, ///< Channel synchronization control mode + ADC_MODE_INDIVIDUAL_SCAN = 4, ///< Channel individual control mode +} adc_mode_t; + +/** ADC channels */ +typedef enum e_adc_channel +{ + ADC_CHANNEL_0 = 0, ///< ADC channel 0 + ADC_CHANNEL_1 = 1, ///< ADC channel 1 + ADC_CHANNEL_2 = 2, ///< ADC channel 2 + ADC_CHANNEL_3 = 3, ///< ADC channel 3 + ADC_CHANNEL_4 = 4, ///< ADC channel 4 + ADC_CHANNEL_5 = 5, ///< ADC channel 5 + ADC_CHANNEL_6 = 6, ///< ADC channel 6 + ADC_CHANNEL_7 = 7, ///< ADC channel 7 + ADC_CHANNEL_8 = 8, ///< ADC channel 8 + ADC_CHANNEL_9 = 9, ///< ADC channel 9 + ADC_CHANNEL_10 = 10, ///< ADC channel 10 + ADC_CHANNEL_11 = 11, ///< ADC channel 11 + ADC_CHANNEL_12 = 12, ///< ADC channel 12 + ADC_CHANNEL_13 = 13, ///< ADC channel 13 + ADC_CHANNEL_14 = 14, ///< ADC channel 14 + ADC_CHANNEL_15 = 15, ///< ADC channel 15 + ADC_CHANNEL_16 = 16, ///< ADC channel 16 + ADC_CHANNEL_17 = 17, ///< ADC channel 17 + ADC_CHANNEL_18 = 18, ///< ADC channel 18 + ADC_CHANNEL_19 = 19, ///< ADC channel 19 + ADC_CHANNEL_20 = 20, ///< ADC channel 20 + ADC_CHANNEL_21 = 21, ///< ADC channel 21 + ADC_CHANNEL_22 = 22, ///< ADC channel 22 + ADC_CHANNEL_23 = 23, ///< ADC channel 23 + ADC_CHANNEL_24 = 24, ///< ADC channel 24 + ADC_CHANNEL_25 = 25, ///< ADC channel 25 + ADC_CHANNEL_26 = 26, ///< ADC channel 26 + ADC_CHANNEL_27 = 27, ///< ADC channel 27 + ADC_CHANNEL_DUPLEX_A = 50, ///< Data duplexing register A + ADC_CHANNEL_DUPLEX_B = 51, ///< Data duplexing register B + ADC_CHANNEL_DUPLEX = -4, ///< Data duplexing register + ADC_CHANNEL_TEMPERATURE = -3, ///< Temperature sensor output + ADC_CHANNEL_VOLT = -2, ///< Internal reference voltage + ADC_CHANNEL_0_DSMIF_CAPTURE_A = 0x100, ///< ADC channel 0 Capture Current Data Register A + ADC_CHANNEL_0_DSMIF_CAPTURE_B = 0x200, ///< ADC channel 0 Capture Current Data Register B + ADC_CHANNEL_1_DSMIF_CAPTURE_A = 0x101, ///< ADC channel 1 Capture Current Data Register A + ADC_CHANNEL_1_DSMIF_CAPTURE_B = 0x201, ///< ADC channel 1 Capture Current Data Register B + ADC_CHANNEL_2_DSMIF_CAPTURE_A = 0x102, ///< ADC channel 2 Capture Current Data Register A + ADC_CHANNEL_2_DSMIF_CAPTURE_B = 0x202, ///< ADC channel 2 Capture Current Data Register B +} adc_channel_t; + +/*============================================== + * CGC API Overrides + *==============================================*/ + +/** Divider values of clock provided to xSPI */ +typedef enum e_cgc_fsel_xspi_clock_div +{ + CGC_FSEL_XSPI_CLOCK_DIV_6 = 0x02, ///< XSPI_CLKn 133.3MHz (XSPI base clock divided by 3) + CGC_FSEL_XSPI_CLOCK_DIV_8 = 0x03, ///< XSPI_CLKn 100.0MHz / 75.0MHz (XSPI base clock divided by 3 / divided by 4) + CGC_FSEL_XSPI_CLOCK_DIV_16 = 0x04, ///< XSPI_CLKn 50.0MHz / 37.5MHz (XSPI base clock divided by 3 / divided by 4) + CGC_FSEL_XSPI_CLOCK_DIV_32 = 0x05, ///< XSPI_CLKn 25.0MHz (XSPI base clock divided by 3) + CGC_FSEL_XSPI_CLOCK_DIV_64 = 0x06, ///< XSPI_CLKn 12.5MHz (XSPI base clock divided by 3) +} cgc_fsel_xspi_clock_div_t; + +/** Divider values of base clock generated for xSPI */ +typedef enum e_cgc_divsel_xspi_clock_div +{ + CGC_DIVSEL_XSPI_CLOCK_DIV_3 = 0x00, ///< XSPI base clock divided by 3 + CGC_DIVSEL_XSPI_CLOCK_DIV_4 = 0x01, ///< XSPI base clock divided by 4 +} cgc_divsel_xspi_clock_div_t; + +/** Clock output divider values */ +typedef enum e_cgc_clock_out_clock_div +{ + CGC_CLOCK_OUT_CLOCK_DIV_2 = 0, ///< CKIO 100.0MHz / 75.0MHz (Base clock divided by 3 / divided by 4) + CGC_CLOCK_OUT_CLOCK_DIV_3 = 1, ///< CKIO 66.7MHz / 50.0MHz (Base clock divided by 3 / divided by 4) + CGC_CLOCK_OUT_CLOCK_DIV_4 = 2, ///< CKIO 50.0MHz / 37.5MHz (Base clock divided by 3 / divided by 4) + CGC_CLOCK_OUT_CLOCK_DIV_5 = 3, ///< CKIO 40.0MHz / 30.0MHz (Base clock divided by 3 / divided by 4) + CGC_CLOCK_OUT_CLOCK_DIV_6 = 4, ///< CKIO 33.3MHz / 25.0MHz (Base clock divided by 3 / divided by 4) + CGC_CLOCK_OUT_CLOCK_DIV_7 = 5, ///< CKIO 28.6MHz / 21.4MHz (Base clock divided by 3 / divided by 4) + CGC_CLOCK_OUT_CLOCK_DIV_8 = 6, ///< CKIO 25.0MHz / 18.75MHz (Base clock divided by 3 / divided by 4) +} cgc_clock_out_clock_div_t; + +/** CANFD clock divider values */ +typedef enum e_cgc_canfd_clock_div +{ + CGC_CANFD_CLOCK_DIV_10 = 0, ///< CANFD clock 80.0MHz + CGC_CANFD_CLOCK_DIV_20 = 1, ///< CANFD clock 40.0MHz +} cgc_canfd_clock_div_t; + +/** PHY clock source identifiers */ +typedef enum e_cgc_phy_clock +{ + CGC_PHY_CLOCK_PLL1 = 0, ///< PLL1 divider clock + CGC_PHY_CLOCK_MAIN_OSC = 1, ///< Main clock oscillator +} cgc_phy_clock_t; + +/** SPI asynchronous serial clock frequency */ +typedef enum e_cgc_spi_async_clock +{ + CGC_SPI_ASYNC_CLOCK_75MHZ = 0, ///< SPI asynchronous serial clock 75MHz + CGC_SPI_ASYNC_CLOCK_96MHZ = 1, ///< SPI asynchronous serial clock 96MHz +} cgc_spi_async_clock_t; + +/** SCI asynchronous serial clock frequency */ +typedef enum e_cgc_sci_async_clock +{ + CGC_SCI_ASYNC_CLOCK_75MHZ = 0, ///< SCI asynchronous serial clock 75MHz + CGC_SCI_ASYNC_CLOCK_96MHZ = 1, ///< SCI asynchronous serial clock 96MHz +} cgc_sci_async_clock_t; + +/** CPU clock divider values */ +typedef enum e_cgc_cpu_clock_div +{ + CGC_CPU_CLOCK_DIV_2 = 0, ///< CPU 200.0MHz / 150.0MHz (Base clock divided by 3 / divided by 4) + CGC_CPU_CLOCK_DIV_1 = 1, ///< CPU 400.0MHz / 300.0MHz (Base clock divided by 3 / divided by 4) +} cgc_cpu_clock_div_t; + +/** Base clock divider values */ +typedef enum e_cgc_baseclock_div +{ + CGC_BASECLOCK_DIV_3 = 0, ///< Base clock divided by 3 (ICLK=200.0MHz etc.) + CGC_BASECLOCK_DIV_4 = 1, ///< Base clock divided by 4 (ICLK=150.0MHz etc.) +} cgc_baseclock_div_t; + +/** System clock source identifiers */ +typedef enum e_cgc_clock +{ + CGC_CLOCK_LOCO = 0, ///< The low speed on chip oscillator + CGC_CLOCK_PLL0 = 1, ///< The PLL0 oscillator + CGC_CLOCK_PLL1 = 2, ///< The PLL1 oscillator +} cgc_clock_t; + +/** Clock configuration structure - Dummy definition because it is not used in this MPU. + * Set NULL as an input parameter to the @ref cgc_api_t::clockStart function for the PLL clock. */ +typedef struct st_cgc_pll_cfg +{ + uint32_t dummy; /* Dummy. */ +} cgc_pll_cfg_t; + +/** Clock configuration structure */ +typedef struct st_cgc_divider_cfg +{ + union + { + uint32_t sckcr_w; ///< System Clock Control Register + + struct + { + cgc_fsel_xspi_clock_div_t fselxspi0 : 3; ///< Divider value for XSPI_CLK0 + uint32_t : 3; + cgc_divsel_xspi_clock_div_t divselxspi0 : 1; ///< Divider base value for XSPI_CLK0 + uint32_t : 1; + cgc_fsel_xspi_clock_div_t fselxspi1 : 3; ///< Divider value for XSPI_CLK1 + uint32_t : 3; + cgc_divsel_xspi_clock_div_t divselxspi1 : 1; ///< Divider base value for XSPI_CLK1 + uint32_t : 1; + cgc_clock_out_clock_div_t ckio_div : 3; ///< Divider value for CKIO + uint32_t : 1; + cgc_canfd_clock_div_t fselcanfd_div : 1; ///< Divider value for CANFD clock + cgc_phy_clock_t phy_sel : 1; ///< Ethernet PHY reference clock output + uint32_t : 2; + cgc_spi_async_clock_t spi0_async_sel : 1; ///< SPI0 asynchronous serial clock + cgc_spi_async_clock_t spi1_async_sel : 1; ///< SPI1 asynchronous serial clock + cgc_spi_async_clock_t spi2_async_sel : 1; ///< SPI2 asynchronous serial clock + cgc_sci_async_clock_t sci0_async_sel : 1; ///< SCI0 asynchronous serial clock + cgc_sci_async_clock_t sci1_async_sel : 1; ///< SCI1 asynchronous serial clock + cgc_sci_async_clock_t sci2_async_sel : 1; ///< SCI2 asynchronous serial clock + cgc_sci_async_clock_t sci3_async_sel : 1; ///< SCI3 asynchronous serial clock + cgc_sci_async_clock_t sci4_async_sel : 1; ///< SCI4 asynchronous serial clock + } sckcr_b; + }; + + union + { + uint32_t sckcr2_w; ///< System Clock Control Register 2 + + struct + { + cgc_cpu_clock_div_t fsel0cr52 : 1; ///< Divider value for Cortex-R52 CPU0 + uint32_t : 4; + cgc_baseclock_div_t div_sub_sel : 1; ///< Divider value for base clock + uint32_t : 18; + cgc_spi_async_clock_t spi3_async_sel : 1; ///< SPI3 asynchronous serial clock + cgc_sci_async_clock_t sci5_async_sel : 1; ///< SCI5 asynchronous serial clock + uint32_t : 6; + } sckcr2_b; + }; +} cgc_divider_cfg_t; + +/** Clock options */ +typedef enum e_cgc_clock_change +{ + CGC_CLOCK_CHANGE_START = 0, ///< Start the clock + CGC_CLOCK_CHANGE_STOP = 1, ///< Stop the clock + CGC_CLOCK_CHANGE_NONE = 2, ///< No change to the clock +} cgc_clock_change_t; + +/** Clock configuration */ +typedef struct st_cgc_clocks_cfg +{ + cgc_divider_cfg_t divider_cfg; ///< Clock dividers structure + cgc_clock_change_t loco_state; ///< State of LOCO + cgc_clock_change_t pll1_state; ///< State of PLL1 +} cgc_clocks_cfg_t; + +/*============================================== + * ELC API Overrides + *==============================================*/ + +/** Possible peripherals to be linked to event signals (not all available on all MPUs) */ +typedef enum e_elc_peripheral +{ + ELC_PERIPHERAL_MTU0 = (0), + ELC_PERIPHERAL_MTU3 = (1), + ELC_PERIPHERAL_MTU4 = (2), + ELC_PERIPHERAL_LLPPGPT_A = (3), + ELC_PERIPHERAL_LLPPGPT_B = (4), + ELC_PERIPHERAL_LLPPGPT_C = (5), + ELC_PERIPHERAL_LLPPGPT_D = (6), + ELC_PERIPHERAL_LLPPGPT_E = (7), + ELC_PERIPHERAL_LLPPGPT_F = (8), + ELC_PERIPHERAL_LLPPGPT_G = (9), + ELC_PERIPHERAL_LLPPGPT_H = (10), + ELC_PERIPHERAL_NONSAFTYGPT_A = (11), + ELC_PERIPHERAL_NONSAFTYGPT_B = (12), + ELC_PERIPHERAL_NONSAFTYGPT_C = (13), + ELC_PERIPHERAL_NONSAFTYGPT_D = (14), + ELC_PERIPHERAL_NONSAFTYGPT_E = (15), + ELC_PERIPHERAL_NONSAFTYGPT_F = (16), + ELC_PERIPHERAL_NONSAFTYGPT_G = (17), + ELC_PERIPHERAL_NONSAFTYGPT_H = (18), + ELC_PERIPHERAL_ADC0_A = (19), + ELC_PERIPHERAL_ADC0_B = (20), + ELC_PERIPHERAL_ADC1_A = (21), + ELC_PERIPHERAL_ADC1_B = (22), + ELC_PERIPHERAL_DSMIF0_CAP0 = (23), + ELC_PERIPHERAL_DSMIF0_CAP1 = (24), + ELC_PERIPHERAL_DSMIF0_CAP2 = (25), + ELC_PERIPHERAL_DSMIF0_CAP3 = (26), + ELC_PERIPHERAL_DSMIF0_CAP4 = (27), + ELC_PERIPHERAL_DSMIF0_CAP5 = (28), + ELC_PERIPHERAL_DSMIF0_CDCNT0 = (29), + ELC_PERIPHERAL_DSMIF0_CDCNT1 = (30), + ELC_PERIPHERAL_DSMIF0_CDCNT2 = (31), + ELC_PERIPHERAL_DSMIF1_CAP0 = (32), + ELC_PERIPHERAL_DSMIF1_CAP1 = (33), + ELC_PERIPHERAL_DSMIF1_CAP2 = (34), + ELC_PERIPHERAL_DSMIF1_CAP3 = (35), + ELC_PERIPHERAL_DSMIF1_CAP4 = (36), + ELC_PERIPHERAL_DSMIF1_CAP5 = (37), + ELC_PERIPHERAL_DSMIF1_CDCNT0 = (38), + ELC_PERIPHERAL_DSMIF1_CDCNT1 = (39), + ELC_PERIPHERAL_DSMIF1_CDCNT2 = (40), + ELC_PERIPHERAL_ESC0 = (43), + ELC_PERIPHERAL_ESC1 = (44), + ELC_PERIPHERAL_GMA0 = (45), + ELC_PERIPHERAL_GMA1 = (46), + ELC_PERIPHERAL_OUTPORTGR1 = (47), + ELC_PERIPHERAL_OUTPORTGR2 = (48), + ELC_PERIPHERAL_INPORTGR1 = (49), + ELC_PERIPHERAL_INPORTGR2 = (50), + ELC_PERIPHERAL_SINGLEPORT0 = (51), + ELC_PERIPHERAL_SINGLEPORT1 = (52), + ELC_PERIPHERAL_SINGLEPORT2 = (53), + ELC_PERIPHERAL_SINGLEPORT3 = (54), +} elc_peripheral_t; + +/*============================================== + * ERROR API Overrides + *==============================================*/ + +/** Error event source. */ +typedef enum e_error_event +{ + ERROR_EVENT_CPU0, ///< Error event from CPU0 + ERROR_EVENT_PERIPHERAL_0, ///< Error event from Peripheral 0 + ERROR_EVENT_PERIPHERAL_1, ///< Error event from Peripheral 1 +} error_event_t; + +/*============================================== + * ETHER API Overrides + *==============================================*/ + +/** Event code of callback function */ +typedef enum e_ether_event +{ + ETHER_EVENT_WAKEON_LAN, ///< Magic packet detection event + ETHER_EVENT_LINK_ON, ///< Link up detection event + ETHER_EVENT_LINK_OFF, ///< Link down detection event + ETHER_EVENT_SBD_INTERRUPT, ///< SBD Interrupt event + ETHER_EVENT_PMT_INTERRUPT ///< PMT Interrupt event +} ether_event_t; + +/** Ether Callback function parameter data */ +typedef struct st_ether_callback_args +{ + uint32_t channel; ///< Device channel number + ether_event_t event; ///< Event code + + uint32_t status_ether; ///< Interrupt status of SDB or PMT + uint32_t status_link; ///< Link status + + void const * p_context; ///< Placeholder for user data. +} ether_callback_args_t; + +/*============================================== + * ETHER PHY API Overrides + *==============================================*/ + +/** Phy LSI */ +typedef enum e_ether_phy_lsi_type +{ + ETHER_PHY_LSI_TYPE_DEFAULT = 0, ///< Select default configuration. This type dose not change Phy LSI default setting by strapping option. + ETHER_PHY_LSI_TYPE_VSC8541 = 1, ///< Select configuration forVSC8541 + ETHER_PHY_LSI_TYPE_KSZ9131 = 2, ///< Select configuration forKSZ9131 + ETHER_PHY_LSI_TYPE_KSZ9031 = 3, ///< Select configuration forKSZ9031 + ETHER_PHY_LSI_TYPE_KSZ8081 = 4, ///< Select configuration forKSZ8081 + ETHER_PHY_LSI_TYPE_KSZ8041 = 5, ///< Select configuration forKSZ8041 + ETHER_PHY_LSI_TYPE_CUSTOM = 0xFFU, ///< Select configuration for User custom. +} ether_phy_lsi_type_t; + +/*============================================== + * ETHER SWITCH API Overrides + *==============================================*/ + +/** Ether Switch Event code of callback function */ +typedef enum e_ether_switch_event +{ + ETHER_SWITCH_EVENT_LINK_CHANGE ///< Change Link status +} ether_switch_event_t; + +/** Ether Switch Callback function parameter data */ +typedef struct st_ether_switch_callback_args +{ + uint32_t channel; ///< Device channel number + ether_switch_event_t event; ///< Event code + + uint32_t status_link; ///< Link status bit0:port0. bit1:port1. bit2:port2, bit3:port3 + + void const * p_context; ///< Placeholder for user data. +} ether_switch_callback_args_t; + +/*============================================== + * IOPORT API Overrides + *==============================================*/ + +/** Superset of all peripheral functions. */ +typedef enum e_ioport_pin_pfc +{ + IOPORT_PIN_P000_PFC_00_ETH2_RXD3 = (0x00U << IOPORT_PFC_OFFSET), ///< P00_0 / ETHER_ETHn / ETH2_RXD3 + IOPORT_PIN_P000_PFC_02_D15 = (0x02U << IOPORT_PFC_OFFSET), ///< P00_0 / BSC / D15 + IOPORT_PIN_P000_PFC_03_SCK2 = (0x03U << IOPORT_PFC_OFFSET), ///< P00_0 / SCIn / SCK2 + IOPORT_PIN_P000_PFC_04_DE2 = (0x04U << IOPORT_PFC_OFFSET), ///< P00_0 / SCIn / DE2 + IOPORT_PIN_P000_PFC_05_HD15 = (0x05U << IOPORT_PFC_OFFSET), ///< P00_0 / PHOSTIF / HD15 + IOPORT_PIN_P001_PFC_00_IRQ0 = (0x00U << IOPORT_PFC_OFFSET), ///< P00_1 / IRQ / IRQ0 + IOPORT_PIN_P001_PFC_01_ETH2_RXDV = (0x01U << IOPORT_PFC_OFFSET), ///< P00_1 / ETHER_ETHn / ETH2_RXDV + IOPORT_PIN_P001_PFC_03_A13 = (0x03U << IOPORT_PFC_OFFSET), ///< P00_1 / BSC / A13 + IOPORT_PIN_P001_PFC_04_MTIC5U = (0x04U << IOPORT_PFC_OFFSET), ///< P00_1 / MTU3n / MTIC5U + IOPORT_PIN_P001_PFC_05_RXD2_SCL2_MISO2 = (0x05U << IOPORT_PFC_OFFSET), ///< P00_1 / SCIn / RXD2_SCL2_MISO2 + IOPORT_PIN_P002_PFC_00_ETH2_TXEN = (0x00U << IOPORT_PFC_OFFSET), ///< P00_2 / ETHER_ETHn / ETH2_TXEN + IOPORT_PIN_P002_PFC_02_RD = (0x02U << IOPORT_PFC_OFFSET), ///< P00_2 / BSC / RD + IOPORT_PIN_P002_PFC_03_MTIC5V = (0x03U << IOPORT_PFC_OFFSET), ///< P00_2 / MTU3n / MTIC5V + IOPORT_PIN_P002_PFC_04_TXD2_SDA2_MOSI2 = (0x04U << IOPORT_PFC_OFFSET), ///< P00_2 / SCIn / TXD2_SDA2_MOSI2 + IOPORT_PIN_P002_PFC_05_USB_OVRCUR = (0x05U << IOPORT_PFC_OFFSET), ///< P00_2 / USB_HS / USB_OVRCUR + IOPORT_PIN_P003_PFC_00_IRQ1 = (0x00U << IOPORT_PFC_OFFSET), ///< P00_3 / IRQ / IRQ1 + IOPORT_PIN_P003_PFC_01_ETH2_REFCLK = (0x01U << IOPORT_PFC_OFFSET), ///< P00_3 / ETHER_ETHn / ETH2_REFCLK + IOPORT_PIN_P003_PFC_02_RMII2_REFCLK = (0x02U << IOPORT_PFC_OFFSET), ///< P00_3 / ETHER_ETHn / RMII2_REFCLK + IOPORT_PIN_P003_PFC_04_RD_WR = (0x04U << IOPORT_PFC_OFFSET), ///< P00_3 / BSC / RD_WR + IOPORT_PIN_P003_PFC_05_MTIC5W = (0x05U << IOPORT_PFC_OFFSET), ///< P00_3 / MTU3n / MTIC5W + IOPORT_PIN_P003_PFC_06_SS2_CTS2_RTS2 = (0x06U << IOPORT_PFC_OFFSET), ///< P00_3 / SCIn / SS2_CTS2_RTS2 + IOPORT_PIN_P004_PFC_00_IRQ13 = (0x00U << IOPORT_PFC_OFFSET), ///< P00_4 / IRQ / IRQ13 + IOPORT_PIN_P004_PFC_01_ETH2_RXER = (0x01U << IOPORT_PFC_OFFSET), ///< P00_4 / ETHER_ETHn / ETH2_RXER + IOPORT_PIN_P004_PFC_03_WAIT = (0x03U << IOPORT_PFC_OFFSET), ///< P00_4 / BSC / WAIT + IOPORT_PIN_P004_PFC_04_MTIOC3A = (0x04U << IOPORT_PFC_OFFSET), ///< P00_4 / MTU3n / MTIOC3A + IOPORT_PIN_P004_PFC_05_GTIOC0A = (0x05U << IOPORT_PFC_OFFSET), ///< P00_4 / GPTn / GTIOC0A + IOPORT_PIN_P004_PFC_06_MCLK0 = (0x06U << IOPORT_PFC_OFFSET), ///< P00_4 / DSMIFn / MCLK0 + IOPORT_PIN_P004_PFC_07_HWAIT = (0x07U << IOPORT_PFC_OFFSET), ///< P00_4 / PHOSTIF / HWAIT + IOPORT_PIN_P005_PFC_00_ETHSW_PHYLINK2 = (0x00U << IOPORT_PFC_OFFSET), ///< P00_5 / ETHER_ETHSW / ETHSW_PHYLINK2 + IOPORT_PIN_P005_PFC_02_CS0 = (0x02U << IOPORT_PFC_OFFSET), ///< P00_5 / BSC / CS0 + IOPORT_PIN_P005_PFC_03_ESC_PHYLINK2 = (0x03U << IOPORT_PFC_OFFSET), ///< P00_5 / ETHER_ESC / ESC_PHYLINK2 + IOPORT_PIN_P005_PFC_04_MTIOC3C = (0x04U << IOPORT_PFC_OFFSET), ///< P00_5 / MTU3n / MTIOC3C + IOPORT_PIN_P005_PFC_05_GTIOC0B = (0x05U << IOPORT_PFC_OFFSET), ///< P00_5 / GPTn / GTIOC0B + IOPORT_PIN_P005_PFC_06_MDAT0 = (0x06U << IOPORT_PFC_OFFSET), ///< P00_5 / DSMIFn / MDAT0 + IOPORT_PIN_P005_PFC_07_ETHSW_PHYLINK0 = (0x07U << IOPORT_PFC_OFFSET), ///< P00_5 / ETHER_ETHSW / ETHSW_PHYLINK0 + IOPORT_PIN_P005_PFC_08_ESC_PHYLINK0 = (0x08U << IOPORT_PFC_OFFSET), ///< P00_5 / ETHER_ESC / ESC_PHYLINK0 + IOPORT_PIN_P006_PFC_00_ETH2_TXCLK = (0x00U << IOPORT_PFC_OFFSET), ///< P00_6 / ETHER_ETHn / ETH2_TXCLK + IOPORT_PIN_P006_PFC_01_CS5 = (0x01U << IOPORT_PFC_OFFSET), ///< P00_6 / BSC / CS5 + IOPORT_PIN_P006_PFC_02_MTIOC3B = (0x02U << IOPORT_PFC_OFFSET), ///< P00_6 / MTU3n / MTIOC3B + IOPORT_PIN_P006_PFC_03_GTIOC1A = (0x03U << IOPORT_PFC_OFFSET), ///< P00_6 / GPTn / GTIOC1A + IOPORT_PIN_P007_PFC_00_IRQ13 = (0x00U << IOPORT_PFC_OFFSET), ///< P00_7 / IRQ / IRQ13 + IOPORT_PIN_P007_PFC_01_RAS = (0x01U << IOPORT_PFC_OFFSET), ///< P00_7 / BSC / RAS + IOPORT_PIN_P007_PFC_02_MTIOC4A = (0x02U << IOPORT_PFC_OFFSET), ///< P00_7 / MTU3n / MTIOC4A + IOPORT_PIN_P007_PFC_03_GTIOC2A = (0x03U << IOPORT_PFC_OFFSET), ///< P00_7 / GPTn / GTIOC2A + IOPORT_PIN_P010_PFC_00_GMAC_MDIO = (0x00U << IOPORT_PFC_OFFSET), ///< P01_0 / ETHER_GMAC / GMAC_MDIO + IOPORT_PIN_P010_PFC_01_ETHSW_MDIO = (0x01U << IOPORT_PFC_OFFSET), ///< P01_0 / ETHER_ETHSW / ETHSW_MDIO + IOPORT_PIN_P010_PFC_02_CAS = (0x02U << IOPORT_PFC_OFFSET), ///< P01_0 / BSC / CAS + IOPORT_PIN_P010_PFC_03_ESC_MDIO = (0x03U << IOPORT_PFC_OFFSET), ///< P01_0 / ETHER_ESC / ESC_MDIO + IOPORT_PIN_P010_PFC_04_MTIOC4C = (0x04U << IOPORT_PFC_OFFSET), ///< P01_0 / MTU3n / MTIOC4C + IOPORT_PIN_P010_PFC_05_GTIOC3A = (0x05U << IOPORT_PFC_OFFSET), ///< P01_0 / GPTn / GTIOC3A + IOPORT_PIN_P010_PFC_06_CTS2 = (0x06U << IOPORT_PFC_OFFSET), ///< P01_0 / SCIn / CTS2 + IOPORT_PIN_P010_PFC_07_MCLK1 = (0x07U << IOPORT_PFC_OFFSET), ///< P01_0 / DSMIFn / MCLK1 + IOPORT_PIN_P011_PFC_00_GMAC_MDC = (0x00U << IOPORT_PFC_OFFSET), ///< P01_1 / ETHER_GMAC / GMAC_MDC + IOPORT_PIN_P011_PFC_01_ETHSW_MDC = (0x01U << IOPORT_PFC_OFFSET), ///< P01_1 / ETHER_ETHSW / ETHSW_MDC + IOPORT_PIN_P011_PFC_02_CKE = (0x02U << IOPORT_PFC_OFFSET), ///< P01_1 / BSC / CKE + IOPORT_PIN_P011_PFC_03_ESC_MDC = (0x03U << IOPORT_PFC_OFFSET), ///< P01_1 / ETHER_ESC / ESC_MDC + IOPORT_PIN_P011_PFC_04_MTIOC3D = (0x04U << IOPORT_PFC_OFFSET), ///< P01_1 / MTU3n / MTIOC3D + IOPORT_PIN_P011_PFC_05_GTIOC1B = (0x05U << IOPORT_PFC_OFFSET), ///< P01_1 / GPTn / GTIOC1B + IOPORT_PIN_P011_PFC_06_DE2 = (0x06U << IOPORT_PFC_OFFSET), ///< P01_1 / SCIn / DE2 + IOPORT_PIN_P011_PFC_07_MDAT1 = (0x07U << IOPORT_PFC_OFFSET), ///< P01_1 / DSMIFn / MDAT1 + IOPORT_PIN_P012_PFC_00_IRQ2 = (0x00U << IOPORT_PFC_OFFSET), ///< P01_2 / IRQ / IRQ2 + IOPORT_PIN_P012_PFC_01_ETH2_TXD3 = (0x01U << IOPORT_PFC_OFFSET), ///< P01_2 / ETHER_ETHn / ETH2_TXD3 + IOPORT_PIN_P012_PFC_02_CS2 = (0x02U << IOPORT_PFC_OFFSET), ///< P01_2 / BSC / CS2 + IOPORT_PIN_P012_PFC_03_MTIOC4B = (0x03U << IOPORT_PFC_OFFSET), ///< P01_2 / MTU3n / MTIOC4B + IOPORT_PIN_P012_PFC_04_GTIOC2B = (0x04U << IOPORT_PFC_OFFSET), ///< P01_2 / GPTn / GTIOC2B + IOPORT_PIN_P013_PFC_00_ETH2_TXD2 = (0x00U << IOPORT_PFC_OFFSET), ///< P01_3 / ETHER_ETHn / ETH2_TXD2 + IOPORT_PIN_P013_PFC_01_AH = (0x01U << IOPORT_PFC_OFFSET), ///< P01_3 / BSC / AH + IOPORT_PIN_P013_PFC_02_MTIOC4D = (0x02U << IOPORT_PFC_OFFSET), ///< P01_3 / MTU3n / MTIOC4D + IOPORT_PIN_P013_PFC_03_GTIOC3B = (0x03U << IOPORT_PFC_OFFSET), ///< P01_3 / GPTn / GTIOC3B + IOPORT_PIN_P014_PFC_00_IRQ3 = (0x00U << IOPORT_PFC_OFFSET), ///< P01_4 / IRQ / IRQ3 + IOPORT_PIN_P014_PFC_01_ETH2_TXD1 = (0x01U << IOPORT_PFC_OFFSET), ///< P01_4 / ETHER_ETHn / ETH2_TXD1 + IOPORT_PIN_P014_PFC_02_WE1_DQMLU = (0x02U << IOPORT_PFC_OFFSET), ///< P01_4 / BSC / WE1_DQMLU + IOPORT_PIN_P014_PFC_03_POE0 = (0x03U << IOPORT_PFC_OFFSET), ///< P01_4 / MTU_POE3 / POE0 + IOPORT_PIN_P015_PFC_00_ETH2_TXD0 = (0x00U << IOPORT_PFC_OFFSET), ///< P01_5 / ETHER_ETHn / ETH2_TXD0 + IOPORT_PIN_P015_PFC_01_WE0_DQMLL = (0x01U << IOPORT_PFC_OFFSET), ///< P01_5 / BSC / WE0_DQMLL + IOPORT_PIN_P016_PFC_00_GMAC_PTPTRG1 = (0x00U << IOPORT_PFC_OFFSET), ///< P01_6 / ETHER_GMAC / GMAC_PTPTRG1 + IOPORT_PIN_P016_PFC_01_TRACEDATA0 = (0x01U << IOPORT_PFC_OFFSET), ///< P01_6 / TRACE / TRACEDATA0 + IOPORT_PIN_P016_PFC_02_A20 = (0x02U << IOPORT_PFC_OFFSET), ///< P01_6 / BSC / A20 + IOPORT_PIN_P016_PFC_03_ESC_LATCH1 = (0x03U << IOPORT_PFC_OFFSET), ///< P01_6 / ETHER_ESC / ESC_LATCH1 + IOPORT_PIN_P016_PFC_04_ESC_LATCH0 = (0x04U << IOPORT_PFC_OFFSET), ///< P01_6 / ETHER_ESC / ESC_LATCH0 + IOPORT_PIN_P016_PFC_05_MTIOC1A = (0x05U << IOPORT_PFC_OFFSET), ///< P01_6 / MTU3n / MTIOC1A + IOPORT_PIN_P016_PFC_06_GTIOC9A = (0x06U << IOPORT_PFC_OFFSET), ///< P01_6 / GPTn / GTIOC9A + IOPORT_PIN_P016_PFC_07_CTS1 = (0x07U << IOPORT_PFC_OFFSET), ///< P01_6 / SCIn / CTS1 + IOPORT_PIN_P016_PFC_08_CANTXDP1 = (0x08U << IOPORT_PFC_OFFSET), ///< P01_6 / CANFDn / CANTXDP1 + IOPORT_PIN_P016_PFC_0A_HA20 = (0x0AU << IOPORT_PFC_OFFSET), ///< P01_6 / PHOSTIF / HA20 + IOPORT_PIN_P017_PFC_00_ETHSW_LPI1 = (0x00U << IOPORT_PFC_OFFSET), ///< P01_7 / ETHER_ETHSW / ETHSW_LPI1 + IOPORT_PIN_P017_PFC_01_TRACEDATA1 = (0x01U << IOPORT_PFC_OFFSET), ///< P01_7 / TRACE / TRACEDATA1 + IOPORT_PIN_P017_PFC_02_A19 = (0x02U << IOPORT_PFC_OFFSET), ///< P01_7 / BSC / A19 + IOPORT_PIN_P017_PFC_03_MTIOC1B = (0x03U << IOPORT_PFC_OFFSET), ///< P01_7 / MTU3n / MTIOC1B + IOPORT_PIN_P017_PFC_04_GTIOC9B = (0x04U << IOPORT_PFC_OFFSET), ///< P01_7 / GPTn / GTIOC9B + IOPORT_PIN_P017_PFC_05_ADTRG0 = (0x05U << IOPORT_PFC_OFFSET), ///< P01_7 / ADCn / ADTRG0 + IOPORT_PIN_P017_PFC_06_SCK1 = (0x06U << IOPORT_PFC_OFFSET), ///< P01_7 / SCIn / SCK1 + IOPORT_PIN_P017_PFC_07_SPI_RSPCK3 = (0x07U << IOPORT_PFC_OFFSET), ///< P01_7 / SPIn / SPI_RSPCK3 + IOPORT_PIN_P017_PFC_08_CANRX0 = (0x08U << IOPORT_PFC_OFFSET), ///< P01_7 / CANFDn / CANRX0 + IOPORT_PIN_P017_PFC_0A_HA19 = (0x0AU << IOPORT_PFC_OFFSET), ///< P01_7 / PHOSTIF / HA19 + IOPORT_PIN_P020_PFC_00_IRQ4 = (0x00U << IOPORT_PFC_OFFSET), ///< P02_0 / IRQ / IRQ4 + IOPORT_PIN_P020_PFC_01_ETHSW_LPI2 = (0x01U << IOPORT_PFC_OFFSET), ///< P02_0 / ETHER_ETHSW / ETHSW_LPI2 + IOPORT_PIN_P020_PFC_02_TRACEDATA2 = (0x02U << IOPORT_PFC_OFFSET), ///< P02_0 / TRACE / TRACEDATA2 + IOPORT_PIN_P020_PFC_03_A18 = (0x03U << IOPORT_PFC_OFFSET), ///< P02_0 / BSC / A18 + IOPORT_PIN_P020_PFC_04_GTADSML0 = (0x04U << IOPORT_PFC_OFFSET), ///< P02_0 / GPT / GTADSML0 + IOPORT_PIN_P020_PFC_05_RXD1_SCL1_MISO1 = (0x05U << IOPORT_PFC_OFFSET), ///< P02_0 / SCIn / RXD1_SCL1_MISO1 + IOPORT_PIN_P020_PFC_06_SPI_MISO3 = (0x06U << IOPORT_PFC_OFFSET), ///< P02_0 / SPIn / SPI_MISO3 + IOPORT_PIN_P020_PFC_07_CANTX1 = (0x07U << IOPORT_PFC_OFFSET), ///< P02_0 / CANFDn / CANTX1 + IOPORT_PIN_P020_PFC_08_USB_OTGID = (0x08U << IOPORT_PFC_OFFSET), ///< P02_0 / USB_HS / USB_OTGID + IOPORT_PIN_P020_PFC_0A_HA18 = (0x0AU << IOPORT_PFC_OFFSET), ///< P02_0 / PHOSTIF / HA18 + IOPORT_PIN_P021_PFC_00_ETHSW_PTPOUT1 = (0x00U << IOPORT_PFC_OFFSET), ///< P02_1 / ETHER_ETHSW / ETHSW_PTPOUT1 + IOPORT_PIN_P021_PFC_01_A17 = (0x01U << IOPORT_PFC_OFFSET), ///< P02_1 / BSC / A17 + IOPORT_PIN_P021_PFC_02_ESC_SYNC1 = (0x02U << IOPORT_PFC_OFFSET), ///< P02_1 / ETHER_ESC / ESC_SYNC1 + IOPORT_PIN_P021_PFC_03_ESC_SYNC0 = (0x03U << IOPORT_PFC_OFFSET), ///< P02_1 / ETHER_ESC / ESC_SYNC0 + IOPORT_PIN_P021_PFC_04_DE1 = (0x04U << IOPORT_PFC_OFFSET), ///< P02_1 / SCIn / DE1 + IOPORT_PIN_P021_PFC_05_HA17 = (0x05U << IOPORT_PFC_OFFSET), ///< P02_1 / PHOSTIF / HA17 + IOPORT_PIN_P022_PFC_00_IRQ14 = (0x00U << IOPORT_PFC_OFFSET), ///< P02_2 / IRQ / IRQ14 + IOPORT_PIN_P022_PFC_01_ETHSW_TDMAOUT0 = (0x01U << IOPORT_PFC_OFFSET), ///< P02_2 / ETHER_ETHSW / ETHSW_TDMAOUT0 + IOPORT_PIN_P022_PFC_02_A16 = (0x02U << IOPORT_PFC_OFFSET), ///< P02_2 / BSC / A16 + IOPORT_PIN_P022_PFC_03_MTIOC2A = (0x03U << IOPORT_PFC_OFFSET), ///< P02_2 / MTU3n / MTIOC2A + IOPORT_PIN_P022_PFC_04_GTIOC10A = (0x04U << IOPORT_PFC_OFFSET), ///< P02_2 / GPTn / GTIOC10A + IOPORT_PIN_P022_PFC_05_POE10 = (0x05U << IOPORT_PFC_OFFSET), ///< P02_2 / MTU_POE3 / POE10 + IOPORT_PIN_P022_PFC_06_TXD1_SDA1_MOSI1 = (0x06U << IOPORT_PFC_OFFSET), ///< P02_2 / SCIn / TXD1_SDA1_MOSI1 + IOPORT_PIN_P022_PFC_07_SPI_MOSI3 = (0x07U << IOPORT_PFC_OFFSET), ///< P02_2 / SPIn / SPI_MOSI3 + IOPORT_PIN_P022_PFC_08_CANTX0 = (0x08U << IOPORT_PFC_OFFSET), ///< P02_2 / CANFDn / CANTX0 + IOPORT_PIN_P022_PFC_0A_RTCAT1HZ = (0x0AU << IOPORT_PFC_OFFSET), ///< P02_2 / RTC / RTCAT1HZ + IOPORT_PIN_P022_PFC_0B_HA16 = (0x0BU << IOPORT_PFC_OFFSET), ///< P02_2 / PHOSTIF / HA16 + IOPORT_PIN_P023_PFC_00_IRQ15 = (0x00U << IOPORT_PFC_OFFSET), ///< P02_3 / IRQ / IRQ15 + IOPORT_PIN_P023_PFC_01_ETHSW_TDMAOUT1 = (0x01U << IOPORT_PFC_OFFSET), ///< P02_3 / ETHER_ETHSW / ETHSW_TDMAOUT1 + IOPORT_PIN_P023_PFC_02_A15 = (0x02U << IOPORT_PFC_OFFSET), ///< P02_3 / BSC / A15 + IOPORT_PIN_P023_PFC_03_AH = (0x03U << IOPORT_PFC_OFFSET), ///< P02_3 / BSC / AH + IOPORT_PIN_P023_PFC_04_MTIOC2B = (0x04U << IOPORT_PFC_OFFSET), ///< P02_3 / MTU3n / MTIOC2B + IOPORT_PIN_P023_PFC_05_GTIOC10B = (0x05U << IOPORT_PFC_OFFSET), ///< P02_3 / GPTn / GTIOC10B + IOPORT_PIN_P023_PFC_06_POE11 = (0x06U << IOPORT_PFC_OFFSET), ///< P02_3 / MTU_POE3 / POE11 + IOPORT_PIN_P023_PFC_07_SS1_CTS1_RTS1 = (0x07U << IOPORT_PFC_OFFSET), ///< P02_3 / SCIn / SS1_CTS1_RTS1 + IOPORT_PIN_P023_PFC_08_SPI_SSL30 = (0x08U << IOPORT_PFC_OFFSET), ///< P02_3 / SPIn / SPI_SSL30 + IOPORT_PIN_P023_PFC_09_CANRX1 = (0x09U << IOPORT_PFC_OFFSET), ///< P02_3 / CANFDn / CANRX1 + IOPORT_PIN_P023_PFC_0B_HA15 = (0x0BU << IOPORT_PFC_OFFSET), ///< P02_3 / PHOSTIF / HA15 + IOPORT_PIN_P024_PFC_00_TDO = (0x00U << IOPORT_PFC_OFFSET), ///< P02_4 / JTAG/SWD / TDO + IOPORT_PIN_P024_PFC_01_WE0_DQMLL = (0x01U << IOPORT_PFC_OFFSET), ///< P02_4 / BSC / WE0_DQMLL + IOPORT_PIN_P024_PFC_02_DE1 = (0x02U << IOPORT_PFC_OFFSET), ///< P02_4 / SCIn / DE1 + IOPORT_PIN_P024_PFC_03_SPI_SSL33 = (0x03U << IOPORT_PFC_OFFSET), ///< P02_4 / SPIn / SPI_SSL33 + IOPORT_PIN_P025_PFC_00_ETHSW_TDMAOUT3 = (0x00U << IOPORT_PFC_OFFSET), ///< P02_5 / ETHER_ETHSW / ETHSW_TDMAOUT3 + IOPORT_PIN_P025_PFC_01_TDI = (0x01U << IOPORT_PFC_OFFSET), ///< P02_5 / JTAG/SWD / TDI + IOPORT_PIN_P025_PFC_02_WE1_DQMLU = (0x02U << IOPORT_PFC_OFFSET), ///< P02_5 / BSC / WE1_DQMLU + IOPORT_PIN_P025_PFC_03_SCK5 = (0x03U << IOPORT_PFC_OFFSET), ///< P02_5 / SCIn / SCK5 + IOPORT_PIN_P025_PFC_04_SPI_SSL31 = (0x04U << IOPORT_PFC_OFFSET), ///< P02_5 / SPIn / SPI_SSL31 + IOPORT_PIN_P026_PFC_00_TMS_SWDIO = (0x00U << IOPORT_PFC_OFFSET), ///< P02_6 / JTAG/SWD / TMS_SWDIO + IOPORT_PIN_P026_PFC_01_RXD5_SCL5_MISO5 = (0x01U << IOPORT_PFC_OFFSET), ///< P02_6 / SCIn / RXD5_SCL5_MISO5 + IOPORT_PIN_P027_PFC_00_TCK_SWCLK = (0x00U << IOPORT_PFC_OFFSET), ///< P02_7 / JTAG/SWD / TCK_SWCLK + IOPORT_PIN_P027_PFC_01_TXD5_SDA5_MOSI5 = (0x01U << IOPORT_PFC_OFFSET), ///< P02_7 / SCIn / TXD5_SDA5_MOSI5 + IOPORT_PIN_P030_PFC_00_IRQ14 = (0x00U << IOPORT_PFC_OFFSET), ///< P03_0 / IRQ / IRQ14 + IOPORT_PIN_P030_PFC_01_TRACEDATA3 = (0x01U << IOPORT_PFC_OFFSET), ///< P03_0 / TRACE / TRACEDATA3 + IOPORT_PIN_P030_PFC_02_A14 = (0x02U << IOPORT_PFC_OFFSET), ///< P03_0 / BSC / A14 + IOPORT_PIN_P030_PFC_03_CS5 = (0x03U << IOPORT_PFC_OFFSET), ///< P03_0 / BSC / CS5 + IOPORT_PIN_P030_PFC_04_GTADSML1 = (0x04U << IOPORT_PFC_OFFSET), ///< P03_0 / GPT / GTADSML1 + IOPORT_PIN_P030_PFC_05_SCK2 = (0x05U << IOPORT_PFC_OFFSET), ///< P03_0 / SCIn / SCK2 + IOPORT_PIN_P030_PFC_06_SPI_SSL32 = (0x06U << IOPORT_PFC_OFFSET), ///< P03_0 / SPIn / SPI_SSL32 + IOPORT_PIN_P030_PFC_07_CANTXDP1 = (0x07U << IOPORT_PFC_OFFSET), ///< P03_0 / CANFDn / CANTXDP1 + IOPORT_PIN_P030_PFC_09_HA14 = (0x09U << IOPORT_PFC_OFFSET), ///< P03_0 / PHOSTIF / HA14 + IOPORT_PIN_P035_PFC_00_IRQ5 = (0x00U << IOPORT_PFC_OFFSET), ///< P03_5 / IRQ / IRQ5 + IOPORT_PIN_P035_PFC_01_ETH2_CRS = (0x01U << IOPORT_PFC_OFFSET), ///< P03_5 / ETHER_ETHn / ETH2_CRS + IOPORT_PIN_P035_PFC_02_A12 = (0x02U << IOPORT_PFC_OFFSET), ///< P03_5 / BSC / A12 + IOPORT_PIN_P035_PFC_03_MTIOC3A = (0x03U << IOPORT_PFC_OFFSET), ///< P03_5 / MTU3n / MTIOC3A + IOPORT_PIN_P035_PFC_04_GTIOC4A = (0x04U << IOPORT_PFC_OFFSET), ///< P03_5 / GPTn / GTIOC4A + IOPORT_PIN_P035_PFC_05_RXD2_SCL2_MISO2 = (0x05U << IOPORT_PFC_OFFSET), ///< P03_5 / SCIn / RXD2_SCL2_MISO2 + IOPORT_PIN_P035_PFC_06_MCLK2 = (0x06U << IOPORT_PFC_OFFSET), ///< P03_5 / DSMIFn / MCLK2 + IOPORT_PIN_P035_PFC_07_HA12 = (0x07U << IOPORT_PFC_OFFSET), ///< P03_5 / PHOSTIF / HA12 + IOPORT_PIN_P036_PFC_00_IRQ8 = (0x00U << IOPORT_PFC_OFFSET), ///< P03_6 / IRQ / IRQ8 + IOPORT_PIN_P036_PFC_01_ETH2_COL = (0x01U << IOPORT_PFC_OFFSET), ///< P03_6 / ETHER_ETHn / ETH2_COL + IOPORT_PIN_P036_PFC_02_TRACEDATA4 = (0x02U << IOPORT_PFC_OFFSET), ///< P03_6 / TRACE / TRACEDATA4 + IOPORT_PIN_P036_PFC_03_A11 = (0x03U << IOPORT_PFC_OFFSET), ///< P03_6 / BSC / A11 + IOPORT_PIN_P036_PFC_04_MTIOC3B = (0x04U << IOPORT_PFC_OFFSET), ///< P03_6 / MTU3n / MTIOC3B + IOPORT_PIN_P036_PFC_05_GTIOC4B = (0x05U << IOPORT_PFC_OFFSET), ///< P03_6 / GPTn / GTIOC4B + IOPORT_PIN_P036_PFC_06_TXD2_SDA2_MOSI2 = (0x06U << IOPORT_PFC_OFFSET), ///< P03_6 / SCIn / TXD2_SDA2_MOSI2 + IOPORT_PIN_P036_PFC_07_SPI_SSL13 = (0x07U << IOPORT_PFC_OFFSET), ///< P03_6 / SPIn / SPI_SSL13 + IOPORT_PIN_P036_PFC_08_MDAT2 = (0x08U << IOPORT_PFC_OFFSET), ///< P03_6 / DSMIFn / MDAT2 + IOPORT_PIN_P036_PFC_09_HA11 = (0x09U << IOPORT_PFC_OFFSET), ///< P03_6 / PHOSTIF / HA11 + IOPORT_PIN_P037_PFC_00_IRQ9 = (0x00U << IOPORT_PFC_OFFSET), ///< P03_7 / IRQ / IRQ9 + IOPORT_PIN_P037_PFC_01_ETH2_TXER = (0x01U << IOPORT_PFC_OFFSET), ///< P03_7 / ETHER_ETHn / ETH2_TXER + IOPORT_PIN_P037_PFC_02_TRACEDATA5 = (0x02U << IOPORT_PFC_OFFSET), ///< P03_7 / TRACE / TRACEDATA5 + IOPORT_PIN_P037_PFC_03_A10 = (0x03U << IOPORT_PFC_OFFSET), ///< P03_7 / BSC / A10 + IOPORT_PIN_P037_PFC_04_MTIOC3C = (0x04U << IOPORT_PFC_OFFSET), ///< P03_7 / MTU3n / MTIOC3C + IOPORT_PIN_P037_PFC_05_GTIOC5A = (0x05U << IOPORT_PFC_OFFSET), ///< P03_7 / GPTn / GTIOC5A + IOPORT_PIN_P037_PFC_06_SCK3 = (0x06U << IOPORT_PFC_OFFSET), ///< P03_7 / SCIn / SCK3 + IOPORT_PIN_P037_PFC_07_HA10 = (0x07U << IOPORT_PFC_OFFSET), ///< P03_7 / PHOSTIF / HA10 + IOPORT_PIN_P040_PFC_00_TRACEDATA6 = (0x00U << IOPORT_PFC_OFFSET), ///< P04_0 / TRACE / TRACEDATA6 + IOPORT_PIN_P040_PFC_01_A9 = (0x01U << IOPORT_PFC_OFFSET), ///< P04_0 / BSC / A9 + IOPORT_PIN_P040_PFC_02_MTIOC3D = (0x02U << IOPORT_PFC_OFFSET), ///< P04_0 / MTU3n / MTIOC3D + IOPORT_PIN_P040_PFC_03_GTIOC5B = (0x03U << IOPORT_PFC_OFFSET), ///< P04_0 / GPTn / GTIOC5B + IOPORT_PIN_P040_PFC_04_RXD3_SCL3_MISO3 = (0x04U << IOPORT_PFC_OFFSET), ///< P04_0 / SCIn / RXD3_SCL3_MISO3 + IOPORT_PIN_P040_PFC_05_HA9 = (0x05U << IOPORT_PFC_OFFSET), ///< P04_0 / PHOSTIF / HA9 + IOPORT_PIN_P041_PFC_00_CKIO = (0x00U << IOPORT_PFC_OFFSET), ///< P04_1 / BSC / CKIO + IOPORT_PIN_P041_PFC_01_TXD3_SDA3_MOSI3 = (0x01U << IOPORT_PFC_OFFSET), ///< P04_1 / SCIn / TXD3_SDA3_MOSI3 + IOPORT_PIN_P041_PFC_02_SPI_MOSI0 = (0x02U << IOPORT_PFC_OFFSET), ///< P04_1 / SPIn / SPI_MOSI0 + IOPORT_PIN_P041_PFC_03_IIC_SDA2 = (0x03U << IOPORT_PFC_OFFSET), ///< P04_1 / IICn / IIC_SDA2 + IOPORT_PIN_P041_PFC_04_HCKIO = (0x04U << IOPORT_PFC_OFFSET), ///< P04_1 / PHOSTIF / HCKIO + IOPORT_PIN_P044_PFC_00_IRQ10 = (0x00U << IOPORT_PFC_OFFSET), ///< P04_4 / IRQ / IRQ10 + IOPORT_PIN_P044_PFC_01_TRACEDATA7 = (0x01U << IOPORT_PFC_OFFSET), ///< P04_4 / TRACE / TRACEDATA7 + IOPORT_PIN_P044_PFC_02_A8 = (0x02U << IOPORT_PFC_OFFSET), ///< P04_4 / BSC / A8 + IOPORT_PIN_P044_PFC_03_GTADSMP0 = (0x03U << IOPORT_PFC_OFFSET), ///< P04_4 / GPT / GTADSMP0 + IOPORT_PIN_P044_PFC_04_POE10 = (0x04U << IOPORT_PFC_OFFSET), ///< P04_4 / MTU_POE3 / POE10 + IOPORT_PIN_P044_PFC_05_CTS3 = (0x05U << IOPORT_PFC_OFFSET), ///< P04_4 / SCIn / CTS3 + IOPORT_PIN_P044_PFC_06_SPI_RSPCK1 = (0x06U << IOPORT_PFC_OFFSET), ///< P04_4 / SPIn / SPI_RSPCK1 + IOPORT_PIN_P044_PFC_08_HA8 = (0x08U << IOPORT_PFC_OFFSET), ///< P04_4 / PHOSTIF / HA8 + IOPORT_PIN_P045_PFC_00_A7 = (0x00U << IOPORT_PFC_OFFSET), ///< P04_5 / BSC / A7 + IOPORT_PIN_P045_PFC_01_DE3 = (0x01U << IOPORT_PFC_OFFSET), ///< P04_5 / SCIn / DE3 + IOPORT_PIN_P045_PFC_02_ETHSW_PTPOUT0 = (0x02U << IOPORT_PFC_OFFSET), ///< P04_5 / ETHER_ETHSW / ETHSW_PTPOUT0 + IOPORT_PIN_P045_PFC_03_ESC_SYNC0 = (0x03U << IOPORT_PFC_OFFSET), ///< P04_5 / ETHER_ESC / ESC_SYNC0 + IOPORT_PIN_P045_PFC_04_ESC_SYNC1 = (0x04U << IOPORT_PFC_OFFSET), ///< P04_5 / ETHER_ESC / ESC_SYNC1 + IOPORT_PIN_P045_PFC_05_HA7 = (0x05U << IOPORT_PFC_OFFSET), ///< P04_5 / PHOSTIF / HA7 + IOPORT_PIN_P046_PFC_00_ETH1_TXER = (0x00U << IOPORT_PFC_OFFSET), ///< P04_6 / ETHER_ETHn / ETH1_TXER + IOPORT_PIN_P046_PFC_01_A6 = (0x01U << IOPORT_PFC_OFFSET), ///< P04_6 / BSC / A6 + IOPORT_PIN_P046_PFC_02_DACK = (0x02U << IOPORT_PFC_OFFSET), ///< P04_6 / DMAC / DACK + IOPORT_PIN_P046_PFC_03_RTCAT1HZ = (0x03U << IOPORT_PFC_OFFSET), ///< P04_6 / RTC / RTCAT1HZ + IOPORT_PIN_P046_PFC_04_HA6 = (0x04U << IOPORT_PFC_OFFSET), ///< P04_6 / PHOSTIF / HA6 + IOPORT_PIN_P047_PFC_00_ETH0_TXER = (0x00U << IOPORT_PFC_OFFSET), ///< P04_7 / ETHER_ETHn / ETH0_TXER + IOPORT_PIN_P047_PFC_01_A5 = (0x01U << IOPORT_PFC_OFFSET), ///< P04_7 / BSC / A5 + IOPORT_PIN_P047_PFC_02_SPI_SSL21 = (0x02U << IOPORT_PFC_OFFSET), ///< P04_7 / SPIn / SPI_SSL21 + IOPORT_PIN_P047_PFC_03_ETH2_TXER = (0x03U << IOPORT_PFC_OFFSET), ///< P04_7 / ETHER_ETHn / ETH2_TXER + IOPORT_PIN_P047_PFC_04_HA5 = (0x04U << IOPORT_PFC_OFFSET), ///< P04_7 / PHOSTIF / HA5 + IOPORT_PIN_P050_PFC_00_IRQ12 = (0x00U << IOPORT_PFC_OFFSET), ///< P05_0 / IRQ / IRQ12 + IOPORT_PIN_P050_PFC_01_ETH1_CRS = (0x01U << IOPORT_PFC_OFFSET), ///< P05_0 / ETHER_ETHn / ETH1_CRS + IOPORT_PIN_P050_PFC_02_A4 = (0x02U << IOPORT_PFC_OFFSET), ///< P05_0 / BSC / A4 + IOPORT_PIN_P050_PFC_03_MTIOC4A = (0x03U << IOPORT_PFC_OFFSET), ///< P05_0 / MTU3n / MTIOC4A + IOPORT_PIN_P050_PFC_04_GTIOC6A = (0x04U << IOPORT_PFC_OFFSET), ///< P05_0 / GPTn / GTIOC6A + IOPORT_PIN_P050_PFC_05_CMTW0_TOC0 = (0x05U << IOPORT_PFC_OFFSET), ///< P05_0 / CMTWn / CMTW0_TOC0 + IOPORT_PIN_P050_PFC_06_SS5_CTS5_RTS5 = (0x06U << IOPORT_PFC_OFFSET), ///< P05_0 / SCIn / SS5_CTS5_RTS5 + IOPORT_PIN_P050_PFC_07_CANTXDP0 = (0x07U << IOPORT_PFC_OFFSET), ///< P05_0 / CANFDn / CANTXDP0 + IOPORT_PIN_P050_PFC_08_USB_VBUSEN = (0x08U << IOPORT_PFC_OFFSET), ///< P05_0 / USB_HS / USB_VBUSEN + IOPORT_PIN_P050_PFC_09_MCLK3 = (0x09U << IOPORT_PFC_OFFSET), ///< P05_0 / DSMIFn / MCLK3 + IOPORT_PIN_P050_PFC_0B_HA4 = (0x0BU << IOPORT_PFC_OFFSET), ///< P05_0 / PHOSTIF / HA4 + IOPORT_PIN_P051_PFC_00_IRQ13 = (0x00U << IOPORT_PFC_OFFSET), ///< P05_1 / IRQ / IRQ13 + IOPORT_PIN_P051_PFC_01_ETH1_COL = (0x01U << IOPORT_PFC_OFFSET), ///< P05_1 / ETHER_ETHn / ETH1_COL + IOPORT_PIN_P051_PFC_02_A3 = (0x02U << IOPORT_PFC_OFFSET), ///< P05_1 / BSC / A3 + IOPORT_PIN_P051_PFC_03_MTIOC4B = (0x03U << IOPORT_PFC_OFFSET), ///< P05_1 / MTU3n / MTIOC4B + IOPORT_PIN_P051_PFC_04_GTIOC6B = (0x04U << IOPORT_PFC_OFFSET), ///< P05_1 / GPTn / GTIOC6B + IOPORT_PIN_P051_PFC_05_CMTW0_TIC1 = (0x05U << IOPORT_PFC_OFFSET), ///< P05_1 / CMTWn / CMTW0_TIC1 + IOPORT_PIN_P051_PFC_06_CTS5 = (0x06U << IOPORT_PFC_OFFSET), ///< P05_1 / SCIn / CTS5 + IOPORT_PIN_P051_PFC_07_CANRXDP0 = (0x07U << IOPORT_PFC_OFFSET), ///< P05_1 / CANFDn / CANRXDP0 + IOPORT_PIN_P051_PFC_08_USB_EXICEN = (0x08U << IOPORT_PFC_OFFSET), ///< P05_1 / USB_HS / USB_EXICEN + IOPORT_PIN_P051_PFC_09_MDAT3 = (0x09U << IOPORT_PFC_OFFSET), ///< P05_1 / DSMIFn / MDAT3 + IOPORT_PIN_P051_PFC_0B_HA3 = (0x0BU << IOPORT_PFC_OFFSET), ///< P05_1 / PHOSTIF / HA3 + IOPORT_PIN_P052_PFC_00_IRQ14 = (0x00U << IOPORT_PFC_OFFSET), ///< P05_2 / IRQ / IRQ14 + IOPORT_PIN_P052_PFC_01_ETH0_CRS = (0x01U << IOPORT_PFC_OFFSET), ///< P05_2 / ETHER_ETHn / ETH0_CRS + IOPORT_PIN_P052_PFC_02_A2 = (0x02U << IOPORT_PFC_OFFSET), ///< P05_2 / BSC / A2 + IOPORT_PIN_P052_PFC_03_MTIOC4C = (0x03U << IOPORT_PFC_OFFSET), ///< P05_2 / MTU3n / MTIOC4C + IOPORT_PIN_P052_PFC_04_GTETRGSA = (0x04U << IOPORT_PFC_OFFSET), ///< P05_2 / GPT_POEG / GTETRGSA + IOPORT_PIN_P052_PFC_05_GTIOC7A = (0x05U << IOPORT_PFC_OFFSET), ///< P05_2 / GPTn / GTIOC7A + IOPORT_PIN_P052_PFC_06_CMTW0_TOC0 = (0x06U << IOPORT_PFC_OFFSET), ///< P05_2 / CMTWn / CMTW0_TOC0 + IOPORT_PIN_P052_PFC_07_DE5 = (0x07U << IOPORT_PFC_OFFSET), ///< P05_2 / SCIn / DE5 + IOPORT_PIN_P052_PFC_08_IIC_SCL1 = (0x08U << IOPORT_PFC_OFFSET), ///< P05_2 / IICn / IIC_SCL1 + IOPORT_PIN_P052_PFC_09_CANRX0 = (0x09U << IOPORT_PFC_OFFSET), ///< P05_2 / CANFDn / CANRX0 + IOPORT_PIN_P052_PFC_0A_DREQ = (0x0AU << IOPORT_PFC_OFFSET), ///< P05_2 / DMAC / DREQ + IOPORT_PIN_P052_PFC_0B_USB_VBUSEN = (0x0BU << IOPORT_PFC_OFFSET), ///< P05_2 / USB_HS / USB_VBUSEN + IOPORT_PIN_P052_PFC_0D_HA2 = (0x0DU << IOPORT_PFC_OFFSET), ///< P05_2 / PHOSTIF / HA2 + IOPORT_PIN_P053_PFC_00_IRQ15 = (0x00U << IOPORT_PFC_OFFSET), ///< P05_3 / IRQ / IRQ15 + IOPORT_PIN_P053_PFC_01_ETH0_COL = (0x01U << IOPORT_PFC_OFFSET), ///< P05_3 / ETHER_ETHn / ETH0_COL + IOPORT_PIN_P053_PFC_02_A1 = (0x02U << IOPORT_PFC_OFFSET), ///< P05_3 / BSC / A1 + IOPORT_PIN_P053_PFC_03_MTIOC4D = (0x03U << IOPORT_PFC_OFFSET), ///< P05_3 / MTU3n / MTIOC4D + IOPORT_PIN_P053_PFC_04_GTETRGSB = (0x04U << IOPORT_PFC_OFFSET), ///< P05_3 / GPT_POEG / GTETRGSB + IOPORT_PIN_P053_PFC_05_GTIOC7B = (0x05U << IOPORT_PFC_OFFSET), ///< P05_3 / GPTn / GTIOC7B + IOPORT_PIN_P053_PFC_06_POE11 = (0x06U << IOPORT_PFC_OFFSET), ///< P05_3 / MTU_POE3 / POE11 + IOPORT_PIN_P053_PFC_07_CMTW0_TIC0 = (0x07U << IOPORT_PFC_OFFSET), ///< P05_3 / CMTWn / CMTW0_TIC0 + IOPORT_PIN_P053_PFC_08_SCK4 = (0x08U << IOPORT_PFC_OFFSET), ///< P05_3 / SCIn / SCK4 + IOPORT_PIN_P053_PFC_09_IIC_SDA1 = (0x09U << IOPORT_PFC_OFFSET), ///< P05_3 / IICn / IIC_SDA1 + IOPORT_PIN_P053_PFC_0A_CANTX0 = (0x0AU << IOPORT_PFC_OFFSET), ///< P05_3 / CANFDn / CANTX0 + IOPORT_PIN_P053_PFC_0B_USB_EXICEN = (0x0BU << IOPORT_PFC_OFFSET), ///< P05_3 / USB_HS / USB_EXICEN + IOPORT_PIN_P053_PFC_0D_HA1 = (0x0DU << IOPORT_PFC_OFFSET), ///< P05_3 / PHOSTIF / HA1 + IOPORT_PIN_P054_PFC_00_IRQ12 = (0x00U << IOPORT_PFC_OFFSET), ///< P05_4 / IRQ / IRQ12 + IOPORT_PIN_P054_PFC_01_ETHSW_LPI0 = (0x01U << IOPORT_PFC_OFFSET), ///< P05_4 / ETHER_ETHSW / ETHSW_LPI0 + IOPORT_PIN_P054_PFC_02_A0 = (0x02U << IOPORT_PFC_OFFSET), ///< P05_4 / BSC / A0 + IOPORT_PIN_P054_PFC_03_GTIOC14A = (0x03U << IOPORT_PFC_OFFSET), ///< P05_4 / GPTn / GTIOC14A + IOPORT_PIN_P054_PFC_04_RXD4_SCL4_MISO4 = (0x04U << IOPORT_PFC_OFFSET), ///< P05_4 / SCIn / RXD4_SCL4_MISO4 + IOPORT_PIN_P054_PFC_05_SPI_SSL00 = (0x05U << IOPORT_PFC_OFFSET), ///< P05_4 / SPIn / SPI_SSL00 + IOPORT_PIN_P054_PFC_06_CANTXDP0 = (0x06U << IOPORT_PFC_OFFSET), ///< P05_4 / CANFDn / CANTXDP0 + IOPORT_PIN_P054_PFC_07_DACK = (0x07U << IOPORT_PFC_OFFSET), ///< P05_4 / DMAC / DACK + IOPORT_PIN_P054_PFC_08_USB_OVRCUR = (0x08U << IOPORT_PFC_OFFSET), ///< P05_4 / USB_HS / USB_OVRCUR + IOPORT_PIN_P054_PFC_0A_HA0 = (0x0AU << IOPORT_PFC_OFFSET), ///< P05_4 / PHOSTIF / HA0 + IOPORT_PIN_P055_PFC_00_ETHSW_PHYLINK1 = (0x00U << IOPORT_PFC_OFFSET), ///< P05_5 / ETHER_ETHSW / ETHSW_PHYLINK1 + IOPORT_PIN_P055_PFC_02_ESC_PHYLINK1 = (0x02U << IOPORT_PFC_OFFSET), ///< P05_5 / ETHER_ESC / ESC_PHYLINK1 + IOPORT_PIN_P055_PFC_03_GTIOC14B = (0x03U << IOPORT_PFC_OFFSET), ///< P05_5 / GPTn / GTIOC14B + IOPORT_PIN_P055_PFC_04_CMTW0_TOC1 = (0x04U << IOPORT_PFC_OFFSET), ///< P05_5 / CMTWn / CMTW0_TOC1 + IOPORT_PIN_P055_PFC_05_SPI_RSPCK2 = (0x05U << IOPORT_PFC_OFFSET), ///< P05_5 / SPIn / SPI_RSPCK2 + IOPORT_PIN_P056_PFC_00_IRQ12 = (0x00U << IOPORT_PFC_OFFSET), ///< P05_6 / IRQ / IRQ12 + IOPORT_PIN_P056_PFC_01_ETH1_RXER = (0x01U << IOPORT_PFC_OFFSET), ///< P05_6 / ETHER_ETHn / ETH1_RXER + IOPORT_PIN_P056_PFC_03_GTIOC15A = (0x03U << IOPORT_PFC_OFFSET), ///< P05_6 / GPTn / GTIOC15A + IOPORT_PIN_P056_PFC_04_CMTW1_TIC0 = (0x04U << IOPORT_PFC_OFFSET), ///< P05_6 / CMTWn / CMTW1_TIC0 + IOPORT_PIN_P056_PFC_05_SPI_SSL22 = (0x05U << IOPORT_PFC_OFFSET), ///< P05_6 / SPIn / SPI_SSL22 + IOPORT_PIN_P057_PFC_00_ETH1_TXD2 = (0x00U << IOPORT_PFC_OFFSET), ///< P05_7 / ETHER_ETHn / ETH1_TXD2 + IOPORT_PIN_P057_PFC_02_GTIOC15B = (0x02U << IOPORT_PFC_OFFSET), ///< P05_7 / GPTn / GTIOC15B + IOPORT_PIN_P057_PFC_03_CMTW1_TOC1 = (0x03U << IOPORT_PFC_OFFSET), ///< P05_7 / CMTWn / CMTW1_TOC1 + IOPORT_PIN_P057_PFC_04_TXD4_SDA4_MOSI4 = (0x04U << IOPORT_PFC_OFFSET), ///< P05_7 / SCIn / TXD4_SDA4_MOSI4 + IOPORT_PIN_P057_PFC_05_SPI_SSL23 = (0x05U << IOPORT_PFC_OFFSET), ///< P05_7 / SPIn / SPI_SSL23 + IOPORT_PIN_P060_PFC_00_ETH1_TXD3 = (0x00U << IOPORT_PFC_OFFSET), ///< P06_0 / ETHER_ETHn / ETH1_TXD3 + IOPORT_PIN_P060_PFC_02_GTIOC16A = (0x02U << IOPORT_PFC_OFFSET), ///< P06_0 / GPTn / GTIOC16A + IOPORT_PIN_P060_PFC_03_CMTW1_TOC0 = (0x03U << IOPORT_PFC_OFFSET), ///< P06_0 / CMTWn / CMTW1_TOC0 + IOPORT_PIN_P060_PFC_04_SS4_CTS4_RTS4 = (0x04U << IOPORT_PFC_OFFSET), ///< P06_0 / SCIn / SS4_CTS4_RTS4 + IOPORT_PIN_P060_PFC_05_SPI_SSL23 = (0x05U << IOPORT_PFC_OFFSET), ///< P06_0 / SPIn / SPI_SSL23 + IOPORT_PIN_P060_PFC_06_CANRX1 = (0x06U << IOPORT_PFC_OFFSET), ///< P06_0 / CANFDn / CANRX1 + IOPORT_PIN_P061_PFC_00_ETH1_REFCLK = (0x00U << IOPORT_PFC_OFFSET), ///< P06_1 / ETHER_ETHn / ETH1_REFCLK + IOPORT_PIN_P061_PFC_01_RMII1_REFCLK = (0x01U << IOPORT_PFC_OFFSET), ///< P06_1 / ETHER_ETHn / RMII1_REFCLK + IOPORT_PIN_P061_PFC_03_GTIOC16B = (0x03U << IOPORT_PFC_OFFSET), ///< P06_1 / GPTn / GTIOC16B + IOPORT_PIN_P061_PFC_04_CTS4 = (0x04U << IOPORT_PFC_OFFSET), ///< P06_1 / SCIn / CTS4 + IOPORT_PIN_P061_PFC_05_SPI_SSL22 = (0x05U << IOPORT_PFC_OFFSET), ///< P06_1 / SPIn / SPI_SSL22 + IOPORT_PIN_P061_PFC_06_CANTX1 = (0x06U << IOPORT_PFC_OFFSET), ///< P06_1 / CANFDn / CANTX1 + IOPORT_PIN_P062_PFC_00_ETH1_TXD1 = (0x00U << IOPORT_PFC_OFFSET), ///< P06_2 / ETHER_ETHn / ETH1_TXD1 + IOPORT_PIN_P062_PFC_02_GTIOC17A = (0x02U << IOPORT_PFC_OFFSET), ///< P06_2 / GPTn / GTIOC17A + IOPORT_PIN_P062_PFC_03_CANRXDP1 = (0x03U << IOPORT_PFC_OFFSET), ///< P06_2 / CANFDn / CANRXDP1 + IOPORT_PIN_P063_PFC_00_ETH1_TXD0 = (0x00U << IOPORT_PFC_OFFSET), ///< P06_3 / ETHER_ETHn / ETH1_TXD0 + IOPORT_PIN_P063_PFC_02_GTIOC17B = (0x02U << IOPORT_PFC_OFFSET), ///< P06_3 / GPTn / GTIOC17B + IOPORT_PIN_P063_PFC_03_CMTW1_TIC1 = (0x03U << IOPORT_PFC_OFFSET), ///< P06_3 / CMTWn / CMTW1_TIC1 + IOPORT_PIN_P063_PFC_04_DE4 = (0x04U << IOPORT_PFC_OFFSET), ///< P06_3 / SCIn / DE4 + IOPORT_PIN_P063_PFC_05_SPI_MISO1 = (0x05U << IOPORT_PFC_OFFSET), ///< P06_3 / SPIn / SPI_MISO1 + IOPORT_PIN_P063_PFC_06_CANTXDP1 = (0x06U << IOPORT_PFC_OFFSET), ///< P06_3 / CANFDn / CANTXDP1 + IOPORT_PIN_P064_PFC_00_ETH1_TXCLK = (0x00U << IOPORT_PFC_OFFSET), ///< P06_4 / ETHER_ETHn / ETH1_TXCLK + IOPORT_PIN_P064_PFC_02_GTIOC11A = (0x02U << IOPORT_PFC_OFFSET), ///< P06_4 / GPTn / GTIOC11A + IOPORT_PIN_P064_PFC_03_SPI_MOSI1 = (0x03U << IOPORT_PFC_OFFSET), ///< P06_4 / SPIn / SPI_MOSI1 + IOPORT_PIN_P065_PFC_00_ETH1_TXEN = (0x00U << IOPORT_PFC_OFFSET), ///< P06_5 / ETHER_ETHn / ETH1_TXEN + IOPORT_PIN_P065_PFC_02_GTIOC11B = (0x02U << IOPORT_PFC_OFFSET), ///< P06_5 / GPTn / GTIOC11B + IOPORT_PIN_P066_PFC_00_ETH1_RXD0 = (0x00U << IOPORT_PFC_OFFSET), ///< P06_6 / ETHER_ETHn / ETH1_RXD0 + IOPORT_PIN_P066_PFC_02_GTIOC12A = (0x02U << IOPORT_PFC_OFFSET), ///< P06_6 / GPTn / GTIOC12A + IOPORT_PIN_P066_PFC_03_SPI_SSL10 = (0x03U << IOPORT_PFC_OFFSET), ///< P06_6 / SPIn / SPI_SSL10 + IOPORT_PIN_P067_PFC_00_ETH1_RXD1 = (0x00U << IOPORT_PFC_OFFSET), ///< P06_7 / ETHER_ETHn / ETH1_RXD1 + IOPORT_PIN_P067_PFC_02_GTIOC12B = (0x02U << IOPORT_PFC_OFFSET), ///< P06_7 / GPTn / GTIOC12B + IOPORT_PIN_P067_PFC_03_SPI_SSL11 = (0x03U << IOPORT_PFC_OFFSET), ///< P06_7 / SPIn / SPI_SSL11 + IOPORT_PIN_P070_PFC_00_ETH1_RXD2 = (0x00U << IOPORT_PFC_OFFSET), ///< P07_0 / ETHER_ETHn / ETH1_RXD2 + IOPORT_PIN_P070_PFC_02_GTIOC13A = (0x02U << IOPORT_PFC_OFFSET), ///< P07_0 / GPTn / GTIOC13A + IOPORT_PIN_P071_PFC_00_ETH1_RXD3 = (0x00U << IOPORT_PFC_OFFSET), ///< P07_1 / ETHER_ETHn / ETH1_RXD3 + IOPORT_PIN_P071_PFC_02_GTIOC13B = (0x02U << IOPORT_PFC_OFFSET), ///< P07_1 / GPTn / GTIOC13B + IOPORT_PIN_P072_PFC_00_ETH1_RXDV = (0x00U << IOPORT_PFC_OFFSET), ///< P07_2 / ETHER_ETHn / ETH1_RXDV + IOPORT_PIN_P073_PFC_00_ETH1_RXCLK = (0x00U << IOPORT_PFC_OFFSET), ///< P07_3 / ETHER_ETHn / ETH1_RXCLK + IOPORT_PIN_P074_PFC_00_IRQ1 = (0x00U << IOPORT_PFC_OFFSET), ///< P07_4 / IRQ / IRQ1 + IOPORT_PIN_P074_PFC_01_ADTRG0 = (0x01U << IOPORT_PFC_OFFSET), ///< P07_4 / ADCn / ADTRG0 + IOPORT_PIN_P074_PFC_02_USB_VBUSIN = (0x02U << IOPORT_PFC_OFFSET), ///< P07_4 / USB_HS / USB_VBUSIN + IOPORT_PIN_P084_PFC_00_ETH0_RXD3 = (0x00U << IOPORT_PFC_OFFSET), ///< P08_4 / ETHER_ETHn / ETH0_RXD3 + IOPORT_PIN_P084_PFC_02_MTIOC6A = (0x02U << IOPORT_PFC_OFFSET), ///< P08_4 / MTU3n / MTIOC6A + IOPORT_PIN_P085_PFC_00_ETH0_RXDV = (0x00U << IOPORT_PFC_OFFSET), ///< P08_5 / ETHER_ETHn / ETH0_RXDV + IOPORT_PIN_P085_PFC_01_MTIOC6B = (0x01U << IOPORT_PFC_OFFSET), ///< P08_5 / MTU3n / MTIOC6B + IOPORT_PIN_P086_PFC_00_ETH0_RXCLK = (0x00U << IOPORT_PFC_OFFSET), ///< P08_6 / ETHER_ETHn / ETH0_RXCLK + IOPORT_PIN_P086_PFC_01_MTIOC6C = (0x01U << IOPORT_PFC_OFFSET), ///< P08_6 / MTU3n / MTIOC6C + IOPORT_PIN_P087_PFC_00_GMAC_MDC = (0x00U << IOPORT_PFC_OFFSET), ///< P08_7 / ETHER_GMAC / GMAC_MDC + IOPORT_PIN_P087_PFC_01_ETHSW_MDC = (0x01U << IOPORT_PFC_OFFSET), ///< P08_7 / ETHER_ETHSW / ETHSW_MDC + IOPORT_PIN_P087_PFC_03_ESC_MDC = (0x03U << IOPORT_PFC_OFFSET), ///< P08_7 / ETHER_ESC / ESC_MDC + IOPORT_PIN_P087_PFC_04_MTIOC6D = (0x04U << IOPORT_PFC_OFFSET), ///< P08_7 / MTU3n / MTIOC6D + IOPORT_PIN_P090_PFC_00_GMAC_MDIO = (0x00U << IOPORT_PFC_OFFSET), ///< P09_0 / ETHER_GMAC / GMAC_MDIO + IOPORT_PIN_P090_PFC_01_ETHSW_MDIO = (0x01U << IOPORT_PFC_OFFSET), ///< P09_0 / ETHER_ETHSW / ETHSW_MDIO + IOPORT_PIN_P090_PFC_03_ESC_MDIO = (0x03U << IOPORT_PFC_OFFSET), ///< P09_0 / ETHER_ESC / ESC_MDIO + IOPORT_PIN_P090_PFC_04_MTIOC7A = (0x04U << IOPORT_PFC_OFFSET), ///< P09_0 / MTU3n / MTIOC7A + IOPORT_PIN_P091_PFC_00_ETH0_REFCLK = (0x00U << IOPORT_PFC_OFFSET), ///< P09_1 / ETHER_ETHn / ETH0_REFCLK + IOPORT_PIN_P091_PFC_01_RMII0_REFCLK = (0x01U << IOPORT_PFC_OFFSET), ///< P09_1 / ETHER_ETHn / RMII0_REFCLK + IOPORT_PIN_P091_PFC_02_MTIOC7B = (0x02U << IOPORT_PFC_OFFSET), ///< P09_1 / MTU3n / MTIOC7B + IOPORT_PIN_P092_PFC_00_IRQ0 = (0x00U << IOPORT_PFC_OFFSET), ///< P09_2 / IRQ / IRQ0 + IOPORT_PIN_P092_PFC_01_ETH0_RXER = (0x01U << IOPORT_PFC_OFFSET), ///< P09_2 / ETHER_ETHn / ETH0_RXER + IOPORT_PIN_P092_PFC_03_MTIOC7C = (0x03U << IOPORT_PFC_OFFSET), ///< P09_2 / MTU3n / MTIOC7C + IOPORT_PIN_P093_PFC_00_ETH0_TXD3 = (0x00U << IOPORT_PFC_OFFSET), ///< P09_3 / ETHER_ETHn / ETH0_TXD3 + IOPORT_PIN_P093_PFC_01_MTIOC7D = (0x01U << IOPORT_PFC_OFFSET), ///< P09_3 / MTU3n / MTIOC7D + IOPORT_PIN_P094_PFC_00_ETH0_TXD2 = (0x00U << IOPORT_PFC_OFFSET), ///< P09_4 / ETHER_ETHn / ETH0_TXD2 + IOPORT_PIN_P095_PFC_00_ETH0_TXD1 = (0x00U << IOPORT_PFC_OFFSET), ///< P09_5 / ETHER_ETHn / ETH0_TXD1 + IOPORT_PIN_P096_PFC_00_ETH0_TXD0 = (0x00U << IOPORT_PFC_OFFSET), ///< P09_6 / ETHER_ETHn / ETH0_TXD0 + IOPORT_PIN_P097_PFC_00_ETH0_TXCLK = (0x00U << IOPORT_PFC_OFFSET), ///< P09_7 / ETHER_ETHn / ETH0_TXCLK + IOPORT_PIN_P100_PFC_00_ETH0_TXEN = (0x00U << IOPORT_PFC_OFFSET), ///< P10_0 / ETHER_ETHn / ETH0_TXEN + IOPORT_PIN_P101_PFC_00_ETH0_RXD0 = (0x00U << IOPORT_PFC_OFFSET), ///< P10_1 / ETHER_ETHn / ETH0_RXD0 + IOPORT_PIN_P102_PFC_00_ETH0_RXD1 = (0x00U << IOPORT_PFC_OFFSET), ///< P10_2 / ETHER_ETHn / ETH0_RXD1 + IOPORT_PIN_P103_PFC_00_ETH0_RXD2 = (0x00U << IOPORT_PFC_OFFSET), ///< P10_3 / ETHER_ETHn / ETH0_RXD2 + IOPORT_PIN_P103_PFC_01_RTCAT1HZ = (0x01U << IOPORT_PFC_OFFSET), ///< P10_3 / RTC / RTCAT1HZ + IOPORT_PIN_P104_PFC_00_IRQ11 = (0x00U << IOPORT_PFC_OFFSET), ///< P10_4 / IRQ / IRQ11 + IOPORT_PIN_P104_PFC_01_ETHSW_PHYLINK0 = (0x01U << IOPORT_PFC_OFFSET), ///< P10_4 / ETHER_ETHSW / ETHSW_PHYLINK0 + IOPORT_PIN_P104_PFC_03_ESC_PHYLINK0 = (0x03U << IOPORT_PFC_OFFSET), ///< P10_4 / ETHER_ESC / ESC_PHYLINK0 + IOPORT_PIN_P124_PFC_01_ETH1_CRS = (0x01U << IOPORT_PFC_OFFSET), ///< P12_4 / ETHER_ETHn / ETH1_CRS + IOPORT_PIN_P124_PFC_02_TRACEDATA0 = (0x02U << IOPORT_PFC_OFFSET), ///< P12_4 / TRACE / TRACEDATA0 + IOPORT_PIN_P124_PFC_03_D15 = (0x03U << IOPORT_PFC_OFFSET), ///< P12_4 / BSC / D15 + IOPORT_PIN_P124_PFC_04_MTIOC8B = (0x04U << IOPORT_PFC_OFFSET), ///< P12_4 / MTU3n / MTIOC8B + IOPORT_PIN_P124_PFC_05_GTIOC8B = (0x05U << IOPORT_PFC_OFFSET), ///< P12_4 / GPTn / GTIOC8B + IOPORT_PIN_P124_PFC_06_SPI_SSL01 = (0x06U << IOPORT_PFC_OFFSET), ///< P12_4 / SPIn / SPI_SSL01 + IOPORT_PIN_P124_PFC_08_MBX_HINT = (0x08U << IOPORT_PFC_OFFSET), ///< P12_4 / MBXSEM / MBX_HINT + IOPORT_PIN_P132_PFC_00_IRQ5 = (0x00U << IOPORT_PFC_OFFSET), ///< P13_2 / IRQ / IRQ5 + IOPORT_PIN_P132_PFC_02_ETHSW_PTPOUT2 = (0x02U << IOPORT_PFC_OFFSET), ///< P13_2 / ETHER_ETHSW / ETHSW_PTPOUT2 + IOPORT_PIN_P132_PFC_03_TRACEDATA6 = (0x03U << IOPORT_PFC_OFFSET), ///< P13_2 / TRACE / TRACEDATA6 + IOPORT_PIN_P132_PFC_04_D9 = (0x04U << IOPORT_PFC_OFFSET), ///< P13_2 / BSC / D9 + IOPORT_PIN_P132_PFC_05_ESC_I2CCLK = (0x05U << IOPORT_PFC_OFFSET), ///< P13_2 / ETHER_ESC / ESC_I2CCLK + IOPORT_PIN_P132_PFC_06_MTIOC0A = (0x06U << IOPORT_PFC_OFFSET), ///< P13_2 / MTU3n / MTIOC0A + IOPORT_PIN_P132_PFC_07_GTIOC10A = (0x07U << IOPORT_PFC_OFFSET), ///< P13_2 / GPTn / GTIOC10A + IOPORT_PIN_P132_PFC_08_POE8 = (0x08U << IOPORT_PFC_OFFSET), ///< P13_2 / MTU_POE3 / POE8 + IOPORT_PIN_P132_PFC_09_SS1_CTS1_RTS1 = (0x09U << IOPORT_PFC_OFFSET), ///< P13_2 / SCIn / SS1_CTS1_RTS1 + IOPORT_PIN_P132_PFC_0A_SPI_MISO0 = (0x0AU << IOPORT_PFC_OFFSET), ///< P13_2 / SPIn / SPI_MISO0 + IOPORT_PIN_P132_PFC_0B_IIC_SCL0 = (0x0BU << IOPORT_PFC_OFFSET), ///< P13_2 / IICn / IIC_SCL0 + IOPORT_PIN_P132_PFC_0C_MCLK4 = (0x0CU << IOPORT_PFC_OFFSET), ///< P13_2 / DSMIFn / MCLK4 + IOPORT_PIN_P132_PFC_0E_A13 = (0x0EU << IOPORT_PFC_OFFSET), ///< P13_2 / BSC / A13 + IOPORT_PIN_P133_PFC_01_ETHSW_PTPOUT3 = (0x01U << IOPORT_PFC_OFFSET), ///< P13_3 / ETHER_ETHSW / ETHSW_PTPOUT3 + IOPORT_PIN_P133_PFC_02_TRACEDATA7 = (0x02U << IOPORT_PFC_OFFSET), ///< P13_3 / TRACE / TRACEDATA7 + IOPORT_PIN_P133_PFC_03_D8 = (0x03U << IOPORT_PFC_OFFSET), ///< P13_3 / BSC / D8 + IOPORT_PIN_P133_PFC_04_ESC_I2CDATA = (0x04U << IOPORT_PFC_OFFSET), ///< P13_3 / ETHER_ESC / ESC_I2CDATA + IOPORT_PIN_P133_PFC_05_MTIOC0C = (0x05U << IOPORT_PFC_OFFSET), ///< P13_3 / MTU3n / MTIOC0C + IOPORT_PIN_P133_PFC_06_MTIOC0B = (0x06U << IOPORT_PFC_OFFSET), ///< P13_3 / MTU3n / MTIOC0B + IOPORT_PIN_P133_PFC_07_GTIOC10B = (0x07U << IOPORT_PFC_OFFSET), ///< P13_3 / GPTn / GTIOC10B + IOPORT_PIN_P133_PFC_08_CMTW1_TOC0 = (0x08U << IOPORT_PFC_OFFSET), ///< P13_3 / CMTWn / CMTW1_TOC0 + IOPORT_PIN_P133_PFC_09_CTS1 = (0x09U << IOPORT_PFC_OFFSET), ///< P13_3 / SCIn / CTS1 + IOPORT_PIN_P133_PFC_0A_SPI_RSPCK0 = (0x0AU << IOPORT_PFC_OFFSET), ///< P13_3 / SPIn / SPI_RSPCK0 + IOPORT_PIN_P133_PFC_0B_IIC_SDA0 = (0x0BU << IOPORT_PFC_OFFSET), ///< P13_3 / IICn / IIC_SDA0 + IOPORT_PIN_P133_PFC_0C_MDAT4 = (0x0CU << IOPORT_PFC_OFFSET), ///< P13_3 / DSMIFn / MDAT4 + IOPORT_PIN_P133_PFC_0E_RD = (0x0EU << IOPORT_PFC_OFFSET), ///< P13_3 / BSC / RD + IOPORT_PIN_P134_PFC_01_ESC_RESETOUT = (0x01U << IOPORT_PFC_OFFSET), ///< P13_4 / ETHER_ESC / ESC_RESETOUT + IOPORT_PIN_P134_PFC_02_MTIOC0D = (0x02U << IOPORT_PFC_OFFSET), ///< P13_4 / MTU3n / MTIOC0D + IOPORT_PIN_P134_PFC_03_GTIOC8B = (0x03U << IOPORT_PFC_OFFSET), ///< P13_4 / GPTn / GTIOC8B + IOPORT_PIN_P134_PFC_05_A0 = (0x05U << IOPORT_PFC_OFFSET), ///< P13_4 / BSC / A0 + IOPORT_PIN_P135_PFC_00_XSPI0_WP1 = (0x00U << IOPORT_PFC_OFFSET), ///< P13_5 / XSPIn / XSPI0_WP1 + IOPORT_PIN_P135_PFC_01_GMAC_PTPTRG0 = (0x01U << IOPORT_PFC_OFFSET), ///< P13_5 / ETHER_GMAC / GMAC_PTPTRG0 + IOPORT_PIN_P135_PFC_02_ESC_LATCH0 = (0x02U << IOPORT_PFC_OFFSET), ///< P13_5 / ETHER_ESC / ESC_LATCH0 + IOPORT_PIN_P135_PFC_03_ESC_LATCH1 = (0x03U << IOPORT_PFC_OFFSET), ///< P13_5 / ETHER_ESC / ESC_LATCH1 + IOPORT_PIN_P135_PFC_04_MTCLKA = (0x04U << IOPORT_PFC_OFFSET), ///< P13_5 / MTU3 / MTCLKA + IOPORT_PIN_P135_PFC_05_SPI_RSPCK1 = (0x05U << IOPORT_PFC_OFFSET), ///< P13_5 / SPIn / SPI_RSPCK1 + IOPORT_PIN_P135_PFC_06_IIC_SCL2 = (0x06U << IOPORT_PFC_OFFSET), ///< P13_5 / IICn / IIC_SCL2 + IOPORT_PIN_P136_PFC_00_XSPI0_WP0 = (0x00U << IOPORT_PFC_OFFSET), ///< P13_6 / XSPIn / XSPI0_WP0 + IOPORT_PIN_P136_PFC_01_ETHSW_PTPOUT0 = (0x01U << IOPORT_PFC_OFFSET), ///< P13_6 / ETHER_ETHSW / ETHSW_PTPOUT0 + IOPORT_PIN_P136_PFC_02_ESC_SYNC0 = (0x02U << IOPORT_PFC_OFFSET), ///< P13_6 / ETHER_ESC / ESC_SYNC0 + IOPORT_PIN_P136_PFC_03_ESC_SYNC1 = (0x03U << IOPORT_PFC_OFFSET), ///< P13_6 / ETHER_ESC / ESC_SYNC1 + IOPORT_PIN_P136_PFC_04_MTCLKB = (0x04U << IOPORT_PFC_OFFSET), ///< P13_6 / MTU3 / MTCLKB + IOPORT_PIN_P137_PFC_00_XSPI0_ECS1 = (0x00U << IOPORT_PFC_OFFSET), ///< P13_7 / XSPIn / XSPI0_ECS1 + IOPORT_PIN_P137_PFC_01_GMAC_PTPTRG1 = (0x01U << IOPORT_PFC_OFFSET), ///< P13_7 / ETHER_GMAC / GMAC_PTPTRG1 + IOPORT_PIN_P137_PFC_02_ESC_LATCH1 = (0x02U << IOPORT_PFC_OFFSET), ///< P13_7 / ETHER_ESC / ESC_LATCH1 + IOPORT_PIN_P137_PFC_03_ESC_LATCH0 = (0x03U << IOPORT_PFC_OFFSET), ///< P13_7 / ETHER_ESC / ESC_LATCH0 + IOPORT_PIN_P137_PFC_04_MTCLKC = (0x04U << IOPORT_PFC_OFFSET), ///< P13_7 / MTU3 / MTCLKC + IOPORT_PIN_P137_PFC_05_MBX_HINT = (0x05U << IOPORT_PFC_OFFSET), ///< P13_7 / MBXSEM / MBX_HINT + IOPORT_PIN_P140_PFC_00_XSPI0_INT0 = (0x00U << IOPORT_PFC_OFFSET), ///< P14_0 / XSPIn / XSPI0_INT0 + IOPORT_PIN_P140_PFC_01_ETHSW_PTPOUT1 = (0x01U << IOPORT_PFC_OFFSET), ///< P14_0 / ETHER_ETHSW / ETHSW_PTPOUT1 + IOPORT_PIN_P140_PFC_02_ESC_SYNC1 = (0x02U << IOPORT_PFC_OFFSET), ///< P14_0 / ETHER_ESC / ESC_SYNC1 + IOPORT_PIN_P140_PFC_03_ESC_SYNC0 = (0x03U << IOPORT_PFC_OFFSET), ///< P14_0 / ETHER_ESC / ESC_SYNC0 + IOPORT_PIN_P140_PFC_04_MTCLKD = (0x04U << IOPORT_PFC_OFFSET), ///< P14_0 / MTU3 / MTCLKD + IOPORT_PIN_P141_PFC_00_XSPI0_INT1 = (0x00U << IOPORT_PFC_OFFSET), ///< P14_1 / XSPIn / XSPI0_INT1 + IOPORT_PIN_P141_PFC_01_ETH1_COL = (0x01U << IOPORT_PFC_OFFSET), ///< P14_1 / ETHER_ETHn / ETH1_COL + IOPORT_PIN_P141_PFC_03_MTIOC8A = (0x03U << IOPORT_PFC_OFFSET), ///< P14_1 / MTU3n / MTIOC8A + IOPORT_PIN_P141_PFC_04_GTIOC8A = (0x04U << IOPORT_PFC_OFFSET), ///< P14_1 / GPTn / GTIOC8A + IOPORT_PIN_P141_PFC_06_GMAC_PTPTRG1 = (0x06U << IOPORT_PFC_OFFSET), ///< P14_1 / ETHER_GMAC / GMAC_PTPTRG1 + IOPORT_PIN_P141_PFC_07_ESC_LATCH0 = (0x07U << IOPORT_PFC_OFFSET), ///< P14_1 / ETHER_ESC / ESC_LATCH0 + IOPORT_PIN_P141_PFC_08_ESC_LATCH1 = (0x08U << IOPORT_PFC_OFFSET), ///< P14_1 / ETHER_ESC / ESC_LATCH1 + IOPORT_PIN_P141_PFC_09_HSPI_IO0 = (0x09U << IOPORT_PFC_OFFSET), ///< P14_1 / SHOSTIF / HSPI_IO0 + IOPORT_PIN_P142_PFC_00_IRQ6 = (0x00U << IOPORT_PFC_OFFSET), ///< P14_2 / IRQ / IRQ6 + IOPORT_PIN_P142_PFC_01_XSPI0_ECS0 = (0x01U << IOPORT_PFC_OFFSET), ///< P14_2 / XSPIn / XSPI0_ECS0 + IOPORT_PIN_P142_PFC_02_ETH0_CRS = (0x02U << IOPORT_PFC_OFFSET), ///< P14_2 / ETHER_ETHn / ETH0_CRS + IOPORT_PIN_P142_PFC_04_MTIOC8B = (0x04U << IOPORT_PFC_OFFSET), ///< P14_2 / MTU3n / MTIOC8B + IOPORT_PIN_P142_PFC_05_GTIOC8B = (0x05U << IOPORT_PFC_OFFSET), ///< P14_2 / GPTn / GTIOC8B + IOPORT_PIN_P142_PFC_07_ETH2_CRS = (0x07U << IOPORT_PFC_OFFSET), ///< P14_2 / ETHER_ETHn / ETH2_CRS + IOPORT_PIN_P142_PFC_08_HSPI_CK = (0x08U << IOPORT_PFC_OFFSET), ///< P14_2 / SHOSTIF / HSPI_CK + IOPORT_PIN_P143_PFC_00_XSPI0_RSTO1 = (0x00U << IOPORT_PFC_OFFSET), ///< P14_3 / XSPIn / XSPI0_RSTO1 + IOPORT_PIN_P143_PFC_01_ETH0_COL = (0x01U << IOPORT_PFC_OFFSET), ///< P14_3 / ETHER_ETHn / ETH0_COL + IOPORT_PIN_P143_PFC_04_MTIOC0A = (0x04U << IOPORT_PFC_OFFSET), ///< P14_3 / MTU3n / MTIOC0A + IOPORT_PIN_P143_PFC_06_ETH2_COL = (0x06U << IOPORT_PFC_OFFSET), ///< P14_3 / ETHER_ETHn / ETH2_COL + IOPORT_PIN_P143_PFC_07_HSPI_IO1 = (0x07U << IOPORT_PFC_OFFSET), ///< P14_3 / SHOSTIF / HSPI_IO1 + IOPORT_PIN_P144_PFC_00_XSPI0_DS = (0x00U << IOPORT_PFC_OFFSET), ///< P14_4 / XSPIn / XSPI0_DS + IOPORT_PIN_P144_PFC_01_BS = (0x01U << IOPORT_PFC_OFFSET), ///< P14_4 / BSC / BS + IOPORT_PIN_P144_PFC_02_ESC_IRQ = (0x02U << IOPORT_PFC_OFFSET), ///< P14_4 / ETHER_ESC / ESC_IRQ + IOPORT_PIN_P144_PFC_03_MTIOC0B = (0x03U << IOPORT_PFC_OFFSET), ///< P14_4 / MTU3n / MTIOC0B + IOPORT_PIN_P144_PFC_04_HBS = (0x04U << IOPORT_PFC_OFFSET), ///< P14_4 / PHOSTIF / HBS + IOPORT_PIN_P145_PFC_00_XSPI0_CKN = (0x00U << IOPORT_PFC_OFFSET), ///< P14_5 / XSPIn / XSPI0_CKN + IOPORT_PIN_P145_PFC_01_CS3 = (0x01U << IOPORT_PFC_OFFSET), ///< P14_5 / BSC / CS3 + IOPORT_PIN_P145_PFC_02_POE8 = (0x02U << IOPORT_PFC_OFFSET), ///< P14_5 / MTU_POE3 / POE8 + IOPORT_PIN_P145_PFC_03_HSPI_INT = (0x03U << IOPORT_PFC_OFFSET), ///< P14_5 / SHOSTIF / HSPI_INT + IOPORT_PIN_P146_PFC_00_XSPI0_CKP = (0x00U << IOPORT_PFC_OFFSET), ///< P14_6 / XSPIn / XSPI0_CKP + IOPORT_PIN_P146_PFC_01_A21 = (0x01U << IOPORT_PFC_OFFSET), ///< P14_6 / BSC / A21 + IOPORT_PIN_P147_PFC_00_XSPI0_IO0 = (0x00U << IOPORT_PFC_OFFSET), ///< P14_7 / XSPIn / XSPI0_IO0 + IOPORT_PIN_P147_PFC_01_A22 = (0x01U << IOPORT_PFC_OFFSET), ///< P14_7 / BSC / A22 + IOPORT_PIN_P147_PFC_02_SCK5 = (0x02U << IOPORT_PFC_OFFSET), ///< P14_7 / SCIn / SCK5 + IOPORT_PIN_P147_PFC_03_SPI_MISO1 = (0x03U << IOPORT_PFC_OFFSET), ///< P14_7 / SPIn / SPI_MISO1 + IOPORT_PIN_P147_PFC_04_BS = (0x04U << IOPORT_PFC_OFFSET), ///< P14_7 / BSC / BS + IOPORT_PIN_P150_PFC_00_XSPI0_IO1 = (0x00U << IOPORT_PFC_OFFSET), ///< P15_0 / XSPIn / XSPI0_IO1 + IOPORT_PIN_P150_PFC_01_A23 = (0x01U << IOPORT_PFC_OFFSET), ///< P15_0 / BSC / A23 + IOPORT_PIN_P150_PFC_02_RXD5_SCL5_MISO5 = (0x02U << IOPORT_PFC_OFFSET), ///< P15_0 / SCIn / RXD5_SCL5_MISO5 + IOPORT_PIN_P150_PFC_03_SPI_MOSI1 = (0x03U << IOPORT_PFC_OFFSET), ///< P15_0 / SPIn / SPI_MOSI1 + IOPORT_PIN_P150_PFC_04_CKE = (0x04U << IOPORT_PFC_OFFSET), ///< P15_0 / BSC / CKE + IOPORT_PIN_P151_PFC_00_XSPI0_IO2 = (0x00U << IOPORT_PFC_OFFSET), ///< P15_1 / XSPIn / XSPI0_IO2 + IOPORT_PIN_P151_PFC_01_A24 = (0x01U << IOPORT_PFC_OFFSET), ///< P15_1 / BSC / A24 + IOPORT_PIN_P151_PFC_02_MTIOC0C = (0x02U << IOPORT_PFC_OFFSET), ///< P15_1 / MTU3n / MTIOC0C + IOPORT_PIN_P151_PFC_03_TXD5_SDA5_MOSI5 = (0x03U << IOPORT_PFC_OFFSET), ///< P15_1 / SCIn / TXD5_SDA5_MOSI5 + IOPORT_PIN_P151_PFC_04_SPI_SSL10 = (0x04U << IOPORT_PFC_OFFSET), ///< P15_1 / SPIn / SPI_SSL10 + IOPORT_PIN_P151_PFC_05_CAS = (0x05U << IOPORT_PFC_OFFSET), ///< P15_1 / BSC / CAS + IOPORT_PIN_P152_PFC_00_XSPI0_IO3 = (0x00U << IOPORT_PFC_OFFSET), ///< P15_2 / XSPIn / XSPI0_IO3 + IOPORT_PIN_P152_PFC_01_A25 = (0x01U << IOPORT_PFC_OFFSET), ///< P15_2 / BSC / A25 + IOPORT_PIN_P152_PFC_02_MTIOC0D = (0x02U << IOPORT_PFC_OFFSET), ///< P15_2 / MTU3n / MTIOC0D + IOPORT_PIN_P152_PFC_03_SS5_CTS5_RTS5 = (0x03U << IOPORT_PFC_OFFSET), ///< P15_2 / SCIn / SS5_CTS5_RTS5 + IOPORT_PIN_P152_PFC_04_SPI_SSL11 = (0x04U << IOPORT_PFC_OFFSET), ///< P15_2 / SPIn / SPI_SSL11 + IOPORT_PIN_P152_PFC_05_RAS = (0x05U << IOPORT_PFC_OFFSET), ///< P15_2 / BSC / RAS + IOPORT_PIN_P153_PFC_00_XSPI0_IO4 = (0x00U << IOPORT_PFC_OFFSET), ///< P15_3 / XSPIn / XSPI0_IO4 + IOPORT_PIN_P153_PFC_01_MTIOC8C = (0x01U << IOPORT_PFC_OFFSET), ///< P15_3 / MTU3n / MTIOC8C + IOPORT_PIN_P153_PFC_02_MCLK1 = (0x02U << IOPORT_PFC_OFFSET), ///< P15_3 / DSMIFn / MCLK1 + IOPORT_PIN_P153_PFC_03_D11 = (0x03U << IOPORT_PFC_OFFSET), ///< P15_3 / BSC / D11 + IOPORT_PIN_P154_PFC_00_XSPI0_IO5 = (0x00U << IOPORT_PFC_OFFSET), ///< P15_4 / XSPIn / XSPI0_IO5 + IOPORT_PIN_P154_PFC_01_MTIOC8D = (0x01U << IOPORT_PFC_OFFSET), ///< P15_4 / MTU3n / MTIOC8D + IOPORT_PIN_P154_PFC_02_MDAT1 = (0x02U << IOPORT_PFC_OFFSET), ///< P15_4 / DSMIFn / MDAT1 + IOPORT_PIN_P154_PFC_03_D12 = (0x03U << IOPORT_PFC_OFFSET), ///< P15_4 / BSC / D12 + IOPORT_PIN_P155_PFC_00_XSPI0_IO6 = (0x00U << IOPORT_PFC_OFFSET), ///< P15_5 / XSPIn / XSPI0_IO6 + IOPORT_PIN_P155_PFC_01_MCLK2 = (0x01U << IOPORT_PFC_OFFSET), ///< P15_5 / DSMIFn / MCLK2 + IOPORT_PIN_P155_PFC_02_D13 = (0x02U << IOPORT_PFC_OFFSET), ///< P15_5 / BSC / D13 + IOPORT_PIN_P156_PFC_00_XSPI0_IO7 = (0x00U << IOPORT_PFC_OFFSET), ///< P15_6 / XSPIn / XSPI0_IO7 + IOPORT_PIN_P156_PFC_01_SPI_SSL12 = (0x01U << IOPORT_PFC_OFFSET), ///< P15_6 / SPIn / SPI_SSL12 + IOPORT_PIN_P156_PFC_02_MDAT2 = (0x02U << IOPORT_PFC_OFFSET), ///< P15_6 / DSMIFn / MDAT2 + IOPORT_PIN_P156_PFC_03_D14 = (0x03U << IOPORT_PFC_OFFSET), ///< P15_6 / BSC / D14 + IOPORT_PIN_P157_PFC_00_XSPI0_CS0 = (0x00U << IOPORT_PFC_OFFSET), ///< P15_7 / XSPIn / XSPI0_CS0 + IOPORT_PIN_P157_PFC_01_CTS5 = (0x01U << IOPORT_PFC_OFFSET), ///< P15_7 / SCIn / CTS5 + IOPORT_PIN_P157_PFC_02_SPI_SSL13 = (0x02U << IOPORT_PFC_OFFSET), ///< P15_7 / SPIn / SPI_SSL13 + IOPORT_PIN_P157_PFC_03_TEND = (0x03U << IOPORT_PFC_OFFSET), ///< P15_7 / DMAC / TEND + IOPORT_PIN_P160_PFC_00_XSPI0_CS1 = (0x00U << IOPORT_PFC_OFFSET), ///< P16_0 / XSPIn / XSPI0_CS1 + IOPORT_PIN_P160_PFC_01_ETH0_TXER = (0x01U << IOPORT_PFC_OFFSET), ///< P16_0 / ETHER_ETHn / ETH0_TXER + IOPORT_PIN_P160_PFC_02_TXD0_SDA0_MOSI0 = (0x02U << IOPORT_PFC_OFFSET), ///< P16_0 / SCIn / TXD0_SDA0_MOSI0 + IOPORT_PIN_P160_PFC_03_SPI_MOSI3 = (0x03U << IOPORT_PFC_OFFSET), ///< P16_0 / SPIn / SPI_MOSI3 + IOPORT_PIN_P160_PFC_04_MCLK3 = (0x04U << IOPORT_PFC_OFFSET), ///< P16_0 / DSMIFn / MCLK3 + IOPORT_PIN_P160_PFC_06_ETH2_REFCLK = (0x06U << IOPORT_PFC_OFFSET), ///< P16_0 / ETHER_ETHn / ETH2_REFCLK + IOPORT_PIN_P160_PFC_07_HSPI_CS = (0x07U << IOPORT_PFC_OFFSET), ///< P16_0 / SHOSTIF / HSPI_CS + IOPORT_PIN_P161_PFC_00_XSPI0_RESET0 = (0x00U << IOPORT_PFC_OFFSET), ///< P16_1 / XSPIn / XSPI0_RESET0 + IOPORT_PIN_P161_PFC_01_CMTW0_TOC1 = (0x01U << IOPORT_PFC_OFFSET), ///< P16_1 / CMTWn / CMTW0_TOC1 + IOPORT_PIN_P161_PFC_02_ADTRG0 = (0x02U << IOPORT_PFC_OFFSET), ///< P16_1 / ADCn / ADTRG0 + IOPORT_PIN_P161_PFC_03_RXD0_SCL0_MISO0 = (0x03U << IOPORT_PFC_OFFSET), ///< P16_1 / SCIn / RXD0_SCL0_MISO0 + IOPORT_PIN_P161_PFC_04_SPI_MISO3 = (0x04U << IOPORT_PFC_OFFSET), ///< P16_1 / SPIn / SPI_MISO3 + IOPORT_PIN_P161_PFC_05_MDAT3 = (0x05U << IOPORT_PFC_OFFSET), ///< P16_1 / DSMIFn / MDAT3 + IOPORT_PIN_P161_PFC_07_CS2 = (0x07U << IOPORT_PFC_OFFSET), ///< P16_1 / BSC / CS2 + IOPORT_PIN_P161_PFC_08_HCS1 = (0x08U << IOPORT_PFC_OFFSET), ///< P16_1 / PHOSTIF / HCS1 + IOPORT_PIN_P162_PFC_00_NMI = (0x00U << IOPORT_PFC_OFFSET), ///< P16_2 / IRQ / NMI + IOPORT_PIN_P162_PFC_01_XSPI0_RESET1 = (0x01U << IOPORT_PFC_OFFSET), ///< P16_2 / XSPIn / XSPI0_RESET1 + IOPORT_PIN_P162_PFC_02_CTS0 = (0x02U << IOPORT_PFC_OFFSET), ///< P16_2 / SCIn / CTS0 + IOPORT_PIN_P162_PFC_03_SPI_RSPCK3 = (0x03U << IOPORT_PFC_OFFSET), ///< P16_2 / SPIn / SPI_RSPCK3 + IOPORT_PIN_P162_PFC_04_USB_EXICEN = (0x04U << IOPORT_PFC_OFFSET), ///< P16_2 / USB_HS / USB_EXICEN + IOPORT_PIN_P162_PFC_06_HSPI_IO2 = (0x06U << IOPORT_PFC_OFFSET), ///< P16_2 / SHOSTIF / HSPI_IO2 + IOPORT_PIN_P162_PFC_07_HERROUT = (0x07U << IOPORT_PFC_OFFSET), ///< P16_2 / PHOSTIF / HERROUT + IOPORT_PIN_P163_PFC_00_IRQ7 = (0x00U << IOPORT_PFC_OFFSET), ///< P16_3 / IRQ / IRQ7 + IOPORT_PIN_P163_PFC_01_XSPI0_RSTO0 = (0x01U << IOPORT_PFC_OFFSET), ///< P16_3 / XSPIn / XSPI0_RSTO0 + IOPORT_PIN_P163_PFC_02_ETH1_TXER = (0x02U << IOPORT_PFC_OFFSET), ///< P16_3 / ETHER_ETHn / ETH1_TXER + IOPORT_PIN_P163_PFC_03_GTADSMP1 = (0x03U << IOPORT_PFC_OFFSET), ///< P16_3 / GPT / GTADSMP1 + IOPORT_PIN_P163_PFC_04_SCK0 = (0x04U << IOPORT_PFC_OFFSET), ///< P16_3 / SCIn / SCK0 + IOPORT_PIN_P163_PFC_05_SPI_SSL30 = (0x05U << IOPORT_PFC_OFFSET), ///< P16_3 / SPIn / SPI_SSL30 + IOPORT_PIN_P163_PFC_07_ETH1_CRS = (0x07U << IOPORT_PFC_OFFSET), ///< P16_3 / ETHER_ETHn / ETH1_CRS + IOPORT_PIN_P163_PFC_08_CS3 = (0x08U << IOPORT_PFC_OFFSET), ///< P16_3 / BSC / CS3 + IOPORT_PIN_P163_PFC_09_HSPI_IO3 = (0x09U << IOPORT_PFC_OFFSET), ///< P16_3 / SHOSTIF / HSPI_IO3 + IOPORT_PIN_P165_PFC_00_MTIC5U = (0x00U << IOPORT_PFC_OFFSET), ///< P16_5 / MTU3n / MTIC5U + IOPORT_PIN_P165_PFC_01_TXD0_SDA0_MOSI0 = (0x01U << IOPORT_PFC_OFFSET), ///< P16_5 / SCIn / TXD0_SDA0_MOSI0 + IOPORT_PIN_P165_PFC_02_A15 = (0x02U << IOPORT_PFC_OFFSET), ///< P16_5 / BSC / A15 + IOPORT_PIN_P165_PFC_03_HSPI_IO4 = (0x03U << IOPORT_PFC_OFFSET), ///< P16_5 / SHOSTIF / HSPI_IO4 + IOPORT_PIN_P166_PFC_00_IRQ8 = (0x00U << IOPORT_PFC_OFFSET), ///< P16_6 / IRQ / IRQ8 + IOPORT_PIN_P166_PFC_01_MTIC5V = (0x01U << IOPORT_PFC_OFFSET), ///< P16_6 / MTU3n / MTIC5V + IOPORT_PIN_P166_PFC_02_RXD0_SCL0_MISO0 = (0x02U << IOPORT_PFC_OFFSET), ///< P16_6 / SCIn / RXD0_SCL0_MISO0 + IOPORT_PIN_P166_PFC_03_CS0 = (0x03U << IOPORT_PFC_OFFSET), ///< P16_6 / BSC / CS0 + IOPORT_PIN_P166_PFC_04_HSPI_IO5 = (0x04U << IOPORT_PFC_OFFSET), ///< P16_6 / SHOSTIF / HSPI_IO5 + IOPORT_PIN_P166_PFC_05_HCS0 = (0x05U << IOPORT_PFC_OFFSET), ///< P16_6 / PHOSTIF / HCS0 + IOPORT_PIN_P167_PFC_00_MTIC5W = (0x00U << IOPORT_PFC_OFFSET), ///< P16_7 / MTU3n / MTIC5W + IOPORT_PIN_P167_PFC_01_SCK0 = (0x01U << IOPORT_PFC_OFFSET), ///< P16_7 / SCIn / SCK0 + IOPORT_PIN_P167_PFC_02_XSPI1_IO0 = (0x02U << IOPORT_PFC_OFFSET), ///< P16_7 / XSPIn / XSPI1_IO0 + IOPORT_PIN_P167_PFC_03_A13 = (0x03U << IOPORT_PFC_OFFSET), ///< P16_7 / BSC / A13 + IOPORT_PIN_P167_PFC_04_HA13 = (0x04U << IOPORT_PFC_OFFSET), ///< P16_7 / PHOSTIF / HA13 + IOPORT_PIN_P170_PFC_00_ESC_IRQ = (0x00U << IOPORT_PFC_OFFSET), ///< P17_0 / ETHER_ESC / ESC_IRQ + IOPORT_PIN_P170_PFC_01_SS0_CTS0_RTS0 = (0x01U << IOPORT_PFC_OFFSET), ///< P17_0 / SCIn / SS0_CTS0_RTS0 + IOPORT_PIN_P170_PFC_02_XSPI1_IO1 = (0x02U << IOPORT_PFC_OFFSET), ///< P17_0 / XSPIn / XSPI1_IO1 + IOPORT_PIN_P173_PFC_00_TRACECTL = (0x00U << IOPORT_PFC_OFFSET), ///< P17_3 / TRACE / TRACECTL + IOPORT_PIN_P173_PFC_01_GTETRGA = (0x01U << IOPORT_PFC_OFFSET), ///< P17_3 / GPT_POEG / GTETRGA + IOPORT_PIN_P173_PFC_02_POE0 = (0x02U << IOPORT_PFC_OFFSET), ///< P17_3 / MTU_POE3 / POE0 + IOPORT_PIN_P173_PFC_03_ADTRG1 = (0x03U << IOPORT_PFC_OFFSET), ///< P17_3 / ADCn / ADTRG1 + IOPORT_PIN_P173_PFC_04_SPI_SSL31 = (0x04U << IOPORT_PFC_OFFSET), ///< P17_3 / SPIn / SPI_SSL31 + IOPORT_PIN_P173_PFC_05_DREQ = (0x05U << IOPORT_PFC_OFFSET), ///< P17_3 / DMAC / DREQ + IOPORT_PIN_P173_PFC_07_XSPI1_IO2 = (0x07U << IOPORT_PFC_OFFSET), ///< P17_3 / XSPIn / XSPI1_IO2 + IOPORT_PIN_P174_PFC_00_TRACECLK = (0x00U << IOPORT_PFC_OFFSET), ///< P17_4 / TRACE / TRACECLK + IOPORT_PIN_P174_PFC_01_MTIOC3C = (0x01U << IOPORT_PFC_OFFSET), ///< P17_4 / MTU3n / MTIOC3C + IOPORT_PIN_P174_PFC_02_GTETRGB = (0x02U << IOPORT_PFC_OFFSET), ///< P17_4 / GPT_POEG / GTETRGB + IOPORT_PIN_P174_PFC_03_GTIOC0A = (0x03U << IOPORT_PFC_OFFSET), ///< P17_4 / GPTn / GTIOC0A + IOPORT_PIN_P174_PFC_04_CTS3 = (0x04U << IOPORT_PFC_OFFSET), ///< P17_4 / SCIn / CTS3 + IOPORT_PIN_P174_PFC_05_SPI_SSL32 = (0x05U << IOPORT_PFC_OFFSET), ///< P17_4 / SPIn / SPI_SSL32 + IOPORT_PIN_P174_PFC_07_XSPI1_IO3 = (0x07U << IOPORT_PFC_OFFSET), ///< P17_4 / XSPIn / XSPI1_IO3 + IOPORT_PIN_P174_PFC_08_DACK = (0x08U << IOPORT_PFC_OFFSET), ///< P17_4 / DMAC / DACK + IOPORT_PIN_P175_PFC_01_MTIOC3A = (0x01U << IOPORT_PFC_OFFSET), ///< P17_5 / MTU3n / MTIOC3A + IOPORT_PIN_P175_PFC_02_GTETRGC = (0x02U << IOPORT_PFC_OFFSET), ///< P17_5 / GPT_POEG / GTETRGC + IOPORT_PIN_P175_PFC_03_GTIOC0B = (0x03U << IOPORT_PFC_OFFSET), ///< P17_5 / GPTn / GTIOC0B + IOPORT_PIN_P175_PFC_04_TEND = (0x04U << IOPORT_PFC_OFFSET), ///< P17_5 / DMAC / TEND + IOPORT_PIN_P175_PFC_05_USB_OVRCUR = (0x05U << IOPORT_PFC_OFFSET), ///< P17_5 / USB_HS / USB_OVRCUR + IOPORT_PIN_P176_PFC_00_MTIOC3B = (0x00U << IOPORT_PFC_OFFSET), ///< P17_6 / MTU3n / MTIOC3B + IOPORT_PIN_P176_PFC_01_GTIOC1A = (0x01U << IOPORT_PFC_OFFSET), ///< P17_6 / GPTn / GTIOC1A + IOPORT_PIN_P176_PFC_02_SCK3 = (0x02U << IOPORT_PFC_OFFSET), ///< P17_6 / SCIn / SCK3 + IOPORT_PIN_P176_PFC_04_XSPI1_DS = (0x04U << IOPORT_PFC_OFFSET), ///< P17_6 / XSPIn / XSPI1_DS + IOPORT_PIN_P176_PFC_05_RD_WR = (0x05U << IOPORT_PFC_OFFSET), ///< P17_6 / BSC / RD_WR + IOPORT_PIN_P176_PFC_06_HWRSTB = (0x06U << IOPORT_PFC_OFFSET), ///< P17_6 / PHOSTIF / HWRSTB + IOPORT_PIN_P177_PFC_00_MTIOC4A = (0x00U << IOPORT_PFC_OFFSET), ///< P17_7 / MTU3n / MTIOC4A + IOPORT_PIN_P177_PFC_01_MTIOC4C = (0x01U << IOPORT_PFC_OFFSET), ///< P17_7 / MTU3n / MTIOC4C + IOPORT_PIN_P177_PFC_02_GTIOC2A = (0x02U << IOPORT_PFC_OFFSET), ///< P17_7 / GPTn / GTIOC2A + IOPORT_PIN_P177_PFC_03_GTIOC3A = (0x03U << IOPORT_PFC_OFFSET), ///< P17_7 / GPTn / GTIOC3A + IOPORT_PIN_P177_PFC_04_RXD3_SCL3_MISO3 = (0x04U << IOPORT_PFC_OFFSET), ///< P17_7 / SCIn / RXD3_SCL3_MISO3 + IOPORT_PIN_P177_PFC_05_DACK = (0x05U << IOPORT_PFC_OFFSET), ///< P17_7 / DMAC / DACK + IOPORT_PIN_P177_PFC_07_XSPI1_CKP = (0x07U << IOPORT_PFC_OFFSET), ///< P17_7 / XSPIn / XSPI1_CKP + IOPORT_PIN_P177_PFC_08_RD = (0x08U << IOPORT_PFC_OFFSET), ///< P17_7 / BSC / RD + IOPORT_PIN_P177_PFC_09_HRD = (0x09U << IOPORT_PFC_OFFSET), ///< P17_7 / PHOSTIF / HRD + IOPORT_PIN_P180_PFC_00_MTIOC4C = (0x00U << IOPORT_PFC_OFFSET), ///< P18_0 / MTU3n / MTIOC4C + IOPORT_PIN_P180_PFC_01_MTIOC4A = (0x01U << IOPORT_PFC_OFFSET), ///< P18_0 / MTU3n / MTIOC4A + IOPORT_PIN_P180_PFC_02_GTIOC3A = (0x02U << IOPORT_PFC_OFFSET), ///< P18_0 / GPTn / GTIOC3A + IOPORT_PIN_P180_PFC_03_GTIOC2A = (0x03U << IOPORT_PFC_OFFSET), ///< P18_0 / GPTn / GTIOC2A + IOPORT_PIN_P180_PFC_04_TXD3_SDA3_MOSI3 = (0x04U << IOPORT_PFC_OFFSET), ///< P18_0 / SCIn / TXD3_SDA3_MOSI3 + IOPORT_PIN_P180_PFC_05_WE0_DQMLL = (0x05U << IOPORT_PFC_OFFSET), ///< P18_0 / BSC / WE0_DQMLL + IOPORT_PIN_P180_PFC_06_HSPI_IO6 = (0x06U << IOPORT_PFC_OFFSET), ///< P18_0 / SHOSTIF / HSPI_IO6 + IOPORT_PIN_P180_PFC_07_HWR0 = (0x07U << IOPORT_PFC_OFFSET), ///< P18_0 / PHOSTIF / HWR0 + IOPORT_PIN_P181_PFC_00_IRQ10 = (0x00U << IOPORT_PFC_OFFSET), ///< P18_1 / IRQ / IRQ10 + IOPORT_PIN_P181_PFC_01_MTIOC3D = (0x01U << IOPORT_PFC_OFFSET), ///< P18_1 / MTU3n / MTIOC3D + IOPORT_PIN_P181_PFC_02_GTIOC1B = (0x02U << IOPORT_PFC_OFFSET), ///< P18_1 / GPTn / GTIOC1B + IOPORT_PIN_P181_PFC_03_ADTRG1 = (0x03U << IOPORT_PFC_OFFSET), ///< P18_1 / ADCn / ADTRG1 + IOPORT_PIN_P181_PFC_04_SS3_CTS3_RTS3 = (0x04U << IOPORT_PFC_OFFSET), ///< P18_1 / SCIn / SS3_CTS3_RTS3 + IOPORT_PIN_P181_PFC_06_WE1_DQMLU = (0x06U << IOPORT_PFC_OFFSET), ///< P18_1 / BSC / WE1_DQMLU + IOPORT_PIN_P181_PFC_07_HSPI_IO7 = (0x07U << IOPORT_PFC_OFFSET), ///< P18_1 / SHOSTIF / HSPI_IO7 + IOPORT_PIN_P181_PFC_08_HWR1 = (0x08U << IOPORT_PFC_OFFSET), ///< P18_1 / PHOSTIF / HWR1 + IOPORT_PIN_P182_PFC_00_MTIOC4B = (0x00U << IOPORT_PFC_OFFSET), ///< P18_2 / MTU3n / MTIOC4B + IOPORT_PIN_P182_PFC_01_MTIOC4D = (0x01U << IOPORT_PFC_OFFSET), ///< P18_2 / MTU3n / MTIOC4D + IOPORT_PIN_P182_PFC_02_GTIOC2B = (0x02U << IOPORT_PFC_OFFSET), ///< P18_2 / GPTn / GTIOC2B + IOPORT_PIN_P182_PFC_03_GTIOC3B = (0x03U << IOPORT_PFC_OFFSET), ///< P18_2 / GPTn / GTIOC3B + IOPORT_PIN_P182_PFC_05_XSPI1_CS0 = (0x05U << IOPORT_PFC_OFFSET), ///< P18_2 / XSPIn / XSPI1_CS0 + IOPORT_PIN_P182_PFC_06_ETH1_COL = (0x06U << IOPORT_PFC_OFFSET), ///< P18_2 / ETHER_ETHn / ETH1_COL + IOPORT_PIN_P182_PFC_07_BS = (0x07U << IOPORT_PFC_OFFSET), ///< P18_2 / BSC / BS + IOPORT_PIN_P182_PFC_08_SCK0 = (0x08U << IOPORT_PFC_OFFSET), ///< P18_2 / SCIn / SCK0 + IOPORT_PIN_P182_PFC_09_IIC_SDA2 = (0x09U << IOPORT_PFC_OFFSET), ///< P18_2 / IICn / IIC_SDA2 + IOPORT_PIN_P183_PFC_00_IRQ0 = (0x00U << IOPORT_PFC_OFFSET), ///< P18_3 / IRQ / IRQ0 + IOPORT_PIN_P183_PFC_01_MTIOC4D = (0x01U << IOPORT_PFC_OFFSET), ///< P18_3 / MTU3n / MTIOC4D + IOPORT_PIN_P183_PFC_02_MTIOC4B = (0x02U << IOPORT_PFC_OFFSET), ///< P18_3 / MTU3n / MTIOC4B + IOPORT_PIN_P183_PFC_03_GTIOC3B = (0x03U << IOPORT_PFC_OFFSET), ///< P18_3 / GPTn / GTIOC3B + IOPORT_PIN_P183_PFC_04_GTIOC2B = (0x04U << IOPORT_PFC_OFFSET), ///< P18_3 / GPTn / GTIOC2B + IOPORT_PIN_P183_PFC_05_CMTW1_TIC1 = (0x05U << IOPORT_PFC_OFFSET), ///< P18_3 / CMTWn / CMTW1_TIC1 + IOPORT_PIN_P183_PFC_06_CANRXDP1 = (0x06U << IOPORT_PFC_OFFSET), ///< P18_3 / CANFDn / CANRXDP1 + IOPORT_PIN_P183_PFC_08_XSPI1_IO4 = (0x08U << IOPORT_PFC_OFFSET), ///< P18_3 / XSPIn / XSPI1_IO4 + IOPORT_PIN_P183_PFC_09_ETH2_CRS = (0x09U << IOPORT_PFC_OFFSET), ///< P18_3 / ETHER_ETHn / ETH2_CRS + IOPORT_PIN_P183_PFC_0A_CKE = (0x0AU << IOPORT_PFC_OFFSET), ///< P18_3 / BSC / CKE + IOPORT_PIN_P184_PFC_00_IRQ1 = (0x00U << IOPORT_PFC_OFFSET), ///< P18_4 / IRQ / IRQ1 + IOPORT_PIN_P184_PFC_01_MTIC5U = (0x01U << IOPORT_PFC_OFFSET), ///< P18_4 / MTU3n / MTIC5U + IOPORT_PIN_P184_PFC_02_TXD4_SDA4_MOSI4 = (0x02U << IOPORT_PFC_OFFSET), ///< P18_4 / SCIn / TXD4_SDA4_MOSI4 + IOPORT_PIN_P184_PFC_03_SPI_RSPCK2 = (0x03U << IOPORT_PFC_OFFSET), ///< P18_4 / SPIn / SPI_RSPCK2 + IOPORT_PIN_P184_PFC_05_XSPI1_IO5 = (0x05U << IOPORT_PFC_OFFSET), ///< P18_4 / XSPIn / XSPI1_IO5 + IOPORT_PIN_P184_PFC_06_ETH1_CRS = (0x06U << IOPORT_PFC_OFFSET), ///< P18_4 / ETHER_ETHn / ETH1_CRS + IOPORT_PIN_P184_PFC_07_CAS = (0x07U << IOPORT_PFC_OFFSET), ///< P18_4 / BSC / CAS + IOPORT_PIN_P184_PFC_08_CANTX0 = (0x08U << IOPORT_PFC_OFFSET), ///< P18_4 / CANFDn / CANTX0 + IOPORT_PIN_P185_PFC_00_TRACECTL = (0x00U << IOPORT_PFC_OFFSET), ///< P18_5 / TRACE / TRACECTL + IOPORT_PIN_P185_PFC_01_MTIC5V = (0x01U << IOPORT_PFC_OFFSET), ///< P18_5 / MTU3n / MTIC5V + IOPORT_PIN_P185_PFC_02_RXD4_SCL4_MISO4 = (0x02U << IOPORT_PFC_OFFSET), ///< P18_5 / SCIn / RXD4_SCL4_MISO4 + IOPORT_PIN_P185_PFC_03_SPI_MOSI2 = (0x03U << IOPORT_PFC_OFFSET), ///< P18_5 / SPIn / SPI_MOSI2 + IOPORT_PIN_P185_PFC_05_XSPI1_IO6 = (0x05U << IOPORT_PFC_OFFSET), ///< P18_5 / XSPIn / XSPI1_IO6 + IOPORT_PIN_P185_PFC_06_ETH2_COL = (0x06U << IOPORT_PFC_OFFSET), ///< P18_5 / ETHER_ETHn / ETH2_COL + IOPORT_PIN_P185_PFC_07_RAS = (0x07U << IOPORT_PFC_OFFSET), ///< P18_5 / BSC / RAS + IOPORT_PIN_P185_PFC_08_CANRX0 = (0x08U << IOPORT_PFC_OFFSET), ///< P18_5 / CANFDn / CANRX0 + IOPORT_PIN_P186_PFC_00_IRQ11 = (0x00U << IOPORT_PFC_OFFSET), ///< P18_6 / IRQ / IRQ11 + IOPORT_PIN_P186_PFC_01_TRACECLK = (0x01U << IOPORT_PFC_OFFSET), ///< P18_6 / TRACE / TRACECLK + IOPORT_PIN_P186_PFC_02_MTIC5W = (0x02U << IOPORT_PFC_OFFSET), ///< P18_6 / MTU3n / MTIC5W + IOPORT_PIN_P186_PFC_03_ADTRG0 = (0x03U << IOPORT_PFC_OFFSET), ///< P18_6 / ADCn / ADTRG0 + IOPORT_PIN_P186_PFC_04_SCK4 = (0x04U << IOPORT_PFC_OFFSET), ///< P18_6 / SCIn / SCK4 + IOPORT_PIN_P186_PFC_05_SPI_MISO2 = (0x05U << IOPORT_PFC_OFFSET), ///< P18_6 / SPIn / SPI_MISO2 + IOPORT_PIN_P186_PFC_06_IIC_SCL2 = (0x06U << IOPORT_PFC_OFFSET), ///< P18_6 / IICn / IIC_SCL2 + IOPORT_PIN_P186_PFC_08_XSPI1_IO7 = (0x08U << IOPORT_PFC_OFFSET), ///< P18_6 / XSPIn / XSPI1_IO7 + IOPORT_PIN_P186_PFC_09_ETH1_COL = (0x09U << IOPORT_PFC_OFFSET), ///< P18_6 / ETHER_ETHn / ETH1_COL + IOPORT_PIN_P186_PFC_0A_DE4 = (0x0AU << IOPORT_PFC_OFFSET), ///< P18_6 / SCIn / DE4 + IOPORT_PIN_P190_PFC_00_USB_VBUSEN = (0x00U << IOPORT_PFC_OFFSET), ///< P19_0 / USB_HS / USB_VBUSEN + IOPORT_PIN_P201_PFC_00_ETHSW_TDMAOUT0 = (0x00U << IOPORT_PFC_OFFSET), ///< P20_1 / ETHER_ETHSW / ETHSW_TDMAOUT0 + IOPORT_PIN_P201_PFC_01_ESC_LINKACT0 = (0x01U << IOPORT_PFC_OFFSET), ///< P20_1 / ETHER_ESC / ESC_LINKACT0 + IOPORT_PIN_P201_PFC_02_ETHSW_PTPOUT3 = (0x02U << IOPORT_PFC_OFFSET), ///< P20_1 / ETHER_ETHSW / ETHSW_PTPOUT3 + IOPORT_PIN_P202_PFC_00_ETHSW_TDMAOUT1 = (0x00U << IOPORT_PFC_OFFSET), ///< P20_2 / ETHER_ETHSW / ETHSW_TDMAOUT1 + IOPORT_PIN_P202_PFC_01_ESC_LEDRUN = (0x01U << IOPORT_PFC_OFFSET), ///< P20_2 / ETHER_ESC / ESC_LEDRUN + IOPORT_PIN_P202_PFC_02_ESC_LEDSTER = (0x02U << IOPORT_PFC_OFFSET), ///< P20_2 / ETHER_ESC / ESC_LEDSTER + IOPORT_PIN_P202_PFC_03_DE3 = (0x03U << IOPORT_PFC_OFFSET), ///< P20_2 / SCIn / DE3 + IOPORT_PIN_P202_PFC_04_ETHSW_PTPOUT2 = (0x04U << IOPORT_PFC_OFFSET), ///< P20_2 / ETHER_ETHSW / ETHSW_PTPOUT2 + IOPORT_PIN_P203_PFC_00_ETHSW_TDMAOUT2 = (0x00U << IOPORT_PFC_OFFSET), ///< P20_3 / ETHER_ETHSW / ETHSW_TDMAOUT2 + IOPORT_PIN_P203_PFC_01_ESC_LEDERR = (0x01U << IOPORT_PFC_OFFSET), ///< P20_3 / ETHER_ESC / ESC_LEDERR + IOPORT_PIN_P203_PFC_02_ETHSW_PTPOUT1 = (0x02U << IOPORT_PFC_OFFSET), ///< P20_3 / ETHER_ETHSW / ETHSW_PTPOUT1 + IOPORT_PIN_P204_PFC_00_ETHSW_TDMAOUT3 = (0x00U << IOPORT_PFC_OFFSET), ///< P20_4 / ETHER_ETHSW / ETHSW_TDMAOUT3 + IOPORT_PIN_P204_PFC_01_ESC_LINKACT1 = (0x01U << IOPORT_PFC_OFFSET), ///< P20_4 / ETHER_ESC / ESC_LINKACT1 + IOPORT_PIN_P204_PFC_02_ETHSW_PTPOUT0 = (0x02U << IOPORT_PFC_OFFSET), ///< P20_4 / ETHER_ETHSW / ETHSW_PTPOUT0 + IOPORT_PIN_P211_PFC_00_TRACEDATA0 = (0x00U << IOPORT_PFC_OFFSET), ///< P21_1 / TRACE / TRACEDATA0 + IOPORT_PIN_P211_PFC_01_D0 = (0x01U << IOPORT_PFC_OFFSET), ///< P21_1 / BSC / D0 + IOPORT_PIN_P211_PFC_02_MTIOC6A = (0x02U << IOPORT_PFC_OFFSET), ///< P21_1 / MTU3n / MTIOC6A + IOPORT_PIN_P211_PFC_03_GTIOC14A = (0x03U << IOPORT_PFC_OFFSET), ///< P21_1 / GPTn / GTIOC14A + IOPORT_PIN_P211_PFC_04_CMTW0_TIC0 = (0x04U << IOPORT_PFC_OFFSET), ///< P21_1 / CMTWn / CMTW0_TIC0 + IOPORT_PIN_P211_PFC_05_SCK5 = (0x05U << IOPORT_PFC_OFFSET), ///< P21_1 / SCIn / SCK5 + IOPORT_PIN_P211_PFC_06_SPI_SSL20 = (0x06U << IOPORT_PFC_OFFSET), ///< P21_1 / SPIn / SPI_SSL20 + IOPORT_PIN_P211_PFC_07_IIC_SCL1 = (0x07U << IOPORT_PFC_OFFSET), ///< P21_1 / IICn / IIC_SCL1 + IOPORT_PIN_P211_PFC_08_MCLK0 = (0x08U << IOPORT_PFC_OFFSET), ///< P21_1 / DSMIFn / MCLK0 + IOPORT_PIN_P211_PFC_0A_ESC_SYNC0 = (0x0AU << IOPORT_PFC_OFFSET), ///< P21_1 / ETHER_ESC / ESC_SYNC0 + IOPORT_PIN_P211_PFC_0B_ESC_SYNC1 = (0x0BU << IOPORT_PFC_OFFSET), ///< P21_1 / ETHER_ESC / ESC_SYNC1 + IOPORT_PIN_P211_PFC_0C_HSPI_INT = (0x0CU << IOPORT_PFC_OFFSET), ///< P21_1 / SHOSTIF / HSPI_INT + IOPORT_PIN_P211_PFC_0D_HD0 = (0x0DU << IOPORT_PFC_OFFSET), ///< P21_1 / PHOSTIF / HD0 + IOPORT_PIN_P212_PFC_00_TRACEDATA1 = (0x00U << IOPORT_PFC_OFFSET), ///< P21_2 / TRACE / TRACEDATA1 + IOPORT_PIN_P212_PFC_01_D1 = (0x01U << IOPORT_PFC_OFFSET), ///< P21_2 / BSC / D1 + IOPORT_PIN_P212_PFC_02_MTIOC6B = (0x02U << IOPORT_PFC_OFFSET), ///< P21_2 / MTU3n / MTIOC6B + IOPORT_PIN_P212_PFC_03_GTIOC14B = (0x03U << IOPORT_PFC_OFFSET), ///< P21_2 / GPTn / GTIOC14B + IOPORT_PIN_P212_PFC_04_CMTW0_TIC1 = (0x04U << IOPORT_PFC_OFFSET), ///< P21_2 / CMTWn / CMTW0_TIC1 + IOPORT_PIN_P212_PFC_05_RXD5_SCL5_MISO5 = (0x05U << IOPORT_PFC_OFFSET), ///< P21_2 / SCIn / RXD5_SCL5_MISO5 + IOPORT_PIN_P212_PFC_06_SPI_MISO2 = (0x06U << IOPORT_PFC_OFFSET), ///< P21_2 / SPIn / SPI_MISO2 + IOPORT_PIN_P212_PFC_07_IIC_SDA1 = (0x07U << IOPORT_PFC_OFFSET), ///< P21_2 / IICn / IIC_SDA1 + IOPORT_PIN_P212_PFC_08_MDAT0 = (0x08U << IOPORT_PFC_OFFSET), ///< P21_2 / DSMIFn / MDAT0 + IOPORT_PIN_P212_PFC_0A_ESC_SYNC0 = (0x0AU << IOPORT_PFC_OFFSET), ///< P21_2 / ETHER_ESC / ESC_SYNC0 + IOPORT_PIN_P212_PFC_0B_ESC_SYNC1 = (0x0BU << IOPORT_PFC_OFFSET), ///< P21_2 / ETHER_ESC / ESC_SYNC1 + IOPORT_PIN_P212_PFC_0C_HD1 = (0x0CU << IOPORT_PFC_OFFSET), ///< P21_2 / PHOSTIF / HD1 + IOPORT_PIN_P213_PFC_00_TRACEDATA2 = (0x00U << IOPORT_PFC_OFFSET), ///< P21_3 / TRACE / TRACEDATA2 + IOPORT_PIN_P213_PFC_01_D2 = (0x01U << IOPORT_PFC_OFFSET), ///< P21_3 / BSC / D2 + IOPORT_PIN_P213_PFC_02_MTIOC6C = (0x02U << IOPORT_PFC_OFFSET), ///< P21_3 / MTU3n / MTIOC6C + IOPORT_PIN_P213_PFC_03_GTIOC15A = (0x03U << IOPORT_PFC_OFFSET), ///< P21_3 / GPTn / GTIOC15A + IOPORT_PIN_P213_PFC_04_TXD5_SDA5_MOSI5 = (0x04U << IOPORT_PFC_OFFSET), ///< P21_3 / SCIn / TXD5_SDA5_MOSI5 + IOPORT_PIN_P213_PFC_05_SPI_SSL33 = (0x05U << IOPORT_PFC_OFFSET), ///< P21_3 / SPIn / SPI_SSL33 + IOPORT_PIN_P213_PFC_06_MCLK1 = (0x06U << IOPORT_PFC_OFFSET), ///< P21_3 / DSMIFn / MCLK1 + IOPORT_PIN_P213_PFC_08_NMI = (0x08U << IOPORT_PFC_OFFSET), ///< P21_3 / IRQ / NMI + IOPORT_PIN_P213_PFC_09_HD2 = (0x09U << IOPORT_PFC_OFFSET), ///< P21_3 / PHOSTIF / HD2 + IOPORT_PIN_P214_PFC_00_TRACEDATA3 = (0x00U << IOPORT_PFC_OFFSET), ///< P21_4 / TRACE / TRACEDATA3 + IOPORT_PIN_P214_PFC_01_D3 = (0x01U << IOPORT_PFC_OFFSET), ///< P21_4 / BSC / D3 + IOPORT_PIN_P214_PFC_02_MTIOC6D = (0x02U << IOPORT_PFC_OFFSET), ///< P21_4 / MTU3n / MTIOC6D + IOPORT_PIN_P214_PFC_03_GTIOC15B = (0x03U << IOPORT_PFC_OFFSET), ///< P21_4 / GPTn / GTIOC15B + IOPORT_PIN_P214_PFC_04_SS5_CTS5_RTS5 = (0x04U << IOPORT_PFC_OFFSET), ///< P21_4 / SCIn / SS5_CTS5_RTS5 + IOPORT_PIN_P214_PFC_05_SPI_SSL02 = (0x05U << IOPORT_PFC_OFFSET), ///< P21_4 / SPIn / SPI_SSL02 + IOPORT_PIN_P214_PFC_06_MDAT1 = (0x06U << IOPORT_PFC_OFFSET), ///< P21_4 / DSMIFn / MDAT1 + IOPORT_PIN_P214_PFC_08_ETHSW_PTPOUT1 = (0x08U << IOPORT_PFC_OFFSET), ///< P21_4 / ETHER_ETHSW / ETHSW_PTPOUT1 + IOPORT_PIN_P214_PFC_09_ESC_SYNC0 = (0x09U << IOPORT_PFC_OFFSET), ///< P21_4 / ETHER_ESC / ESC_SYNC0 + IOPORT_PIN_P214_PFC_0A_ESC_SYNC1 = (0x0AU << IOPORT_PFC_OFFSET), ///< P21_4 / ETHER_ESC / ESC_SYNC1 + IOPORT_PIN_P214_PFC_0B_HD3 = (0x0BU << IOPORT_PFC_OFFSET), ///< P21_4 / PHOSTIF / HD3 + IOPORT_PIN_P214_PFC_0C_MBX_HINT = (0x0CU << IOPORT_PFC_OFFSET), ///< P21_4 / MBXSEM / MBX_HINT + IOPORT_PIN_P215_PFC_00_IRQ6 = (0x00U << IOPORT_PFC_OFFSET), ///< P21_5 / IRQ / IRQ6 + IOPORT_PIN_P215_PFC_01_TRACEDATA4 = (0x01U << IOPORT_PFC_OFFSET), ///< P21_5 / TRACE / TRACEDATA4 + IOPORT_PIN_P215_PFC_02_D4 = (0x02U << IOPORT_PFC_OFFSET), ///< P21_5 / BSC / D4 + IOPORT_PIN_P215_PFC_03_MTIOC7A = (0x03U << IOPORT_PFC_OFFSET), ///< P21_5 / MTU3n / MTIOC7A + IOPORT_PIN_P215_PFC_04_GTIOC16A = (0x04U << IOPORT_PFC_OFFSET), ///< P21_5 / GPTn / GTIOC16A + IOPORT_PIN_P215_PFC_05_CMTW1_TOC1 = (0x05U << IOPORT_PFC_OFFSET), ///< P21_5 / CMTWn / CMTW1_TOC1 + IOPORT_PIN_P215_PFC_06_ADTRG1 = (0x06U << IOPORT_PFC_OFFSET), ///< P21_5 / ADCn / ADTRG1 + IOPORT_PIN_P215_PFC_07_CTS5 = (0x07U << IOPORT_PFC_OFFSET), ///< P21_5 / SCIn / CTS5 + IOPORT_PIN_P215_PFC_08_SPI_MISO0 = (0x08U << IOPORT_PFC_OFFSET), ///< P21_5 / SPIn / SPI_MISO0 + IOPORT_PIN_P215_PFC_09_MCLK2 = (0x09U << IOPORT_PFC_OFFSET), ///< P21_5 / DSMIFn / MCLK2 + IOPORT_PIN_P215_PFC_0B_HD4 = (0x0BU << IOPORT_PFC_OFFSET), ///< P21_5 / PHOSTIF / HD4 + IOPORT_PIN_P216_PFC_00_IRQ9 = (0x00U << IOPORT_PFC_OFFSET), ///< P21_6 / IRQ / IRQ9 + IOPORT_PIN_P216_PFC_01_TRACEDATA5 = (0x01U << IOPORT_PFC_OFFSET), ///< P21_6 / TRACE / TRACEDATA5 + IOPORT_PIN_P216_PFC_02_D5 = (0x02U << IOPORT_PFC_OFFSET), ///< P21_6 / BSC / D5 + IOPORT_PIN_P216_PFC_03_MTIOC7B = (0x03U << IOPORT_PFC_OFFSET), ///< P21_6 / MTU3n / MTIOC7B + IOPORT_PIN_P216_PFC_04_GTIOC16B = (0x04U << IOPORT_PFC_OFFSET), ///< P21_6 / GPTn / GTIOC16B + IOPORT_PIN_P216_PFC_05_CTS0 = (0x05U << IOPORT_PFC_OFFSET), ///< P21_6 / SCIn / CTS0 + IOPORT_PIN_P216_PFC_06_TEND = (0x06U << IOPORT_PFC_OFFSET), ///< P21_6 / DMAC / TEND + IOPORT_PIN_P216_PFC_07_MDAT2 = (0x07U << IOPORT_PFC_OFFSET), ///< P21_6 / DSMIFn / MDAT2 + IOPORT_PIN_P216_PFC_08_HD5 = (0x08U << IOPORT_PFC_OFFSET), ///< P21_6 / PHOSTIF / HD5 + IOPORT_PIN_P217_PFC_00_IRQ10 = (0x00U << IOPORT_PFC_OFFSET), ///< P21_7 / IRQ / IRQ10 + IOPORT_PIN_P217_PFC_01_TRACEDATA6 = (0x01U << IOPORT_PFC_OFFSET), ///< P21_7 / TRACE / TRACEDATA6 + IOPORT_PIN_P217_PFC_02_D6 = (0x02U << IOPORT_PFC_OFFSET), ///< P21_7 / BSC / D6 + IOPORT_PIN_P217_PFC_03_MTIOC7C = (0x03U << IOPORT_PFC_OFFSET), ///< P21_7 / MTU3n / MTIOC7C + IOPORT_PIN_P217_PFC_04_GTIOC17A = (0x04U << IOPORT_PFC_OFFSET), ///< P21_7 / GPTn / GTIOC17A + IOPORT_PIN_P217_PFC_05_DE0 = (0x05U << IOPORT_PFC_OFFSET), ///< P21_7 / SCIn / DE0 + IOPORT_PIN_P217_PFC_06_DREQ = (0x06U << IOPORT_PFC_OFFSET), ///< P21_7 / DMAC / DREQ + IOPORT_PIN_P217_PFC_07_MCLK3 = (0x07U << IOPORT_PFC_OFFSET), ///< P21_7 / DSMIFn / MCLK3 + IOPORT_PIN_P217_PFC_08_HD6 = (0x08U << IOPORT_PFC_OFFSET), ///< P21_7 / PHOSTIF / HD6 + IOPORT_PIN_P220_PFC_00_IRQ15 = (0x00U << IOPORT_PFC_OFFSET), ///< P22_0 / IRQ / IRQ15 + IOPORT_PIN_P220_PFC_01_TRACEDATA7 = (0x01U << IOPORT_PFC_OFFSET), ///< P22_0 / TRACE / TRACEDATA7 + IOPORT_PIN_P220_PFC_02_D7 = (0x02U << IOPORT_PFC_OFFSET), ///< P22_0 / BSC / D7 + IOPORT_PIN_P220_PFC_03_MTIOC7D = (0x03U << IOPORT_PFC_OFFSET), ///< P22_0 / MTU3n / MTIOC7D + IOPORT_PIN_P220_PFC_04_GTIOC17B = (0x04U << IOPORT_PFC_OFFSET), ///< P22_0 / GPTn / GTIOC17B + IOPORT_PIN_P220_PFC_05_DE5 = (0x05U << IOPORT_PFC_OFFSET), ///< P22_0 / SCIn / DE5 + IOPORT_PIN_P220_PFC_06_MDAT3 = (0x06U << IOPORT_PFC_OFFSET), ///< P22_0 / DSMIFn / MDAT3 + IOPORT_PIN_P220_PFC_07_HD7 = (0x07U << IOPORT_PFC_OFFSET), ///< P22_0 / PHOSTIF / HD7 + IOPORT_PIN_P221_PFC_00_TRACECTL = (0x00U << IOPORT_PFC_OFFSET), ///< P22_1 / TRACE / TRACECTL + IOPORT_PIN_P221_PFC_01_D8 = (0x01U << IOPORT_PFC_OFFSET), ///< P22_1 / BSC / D8 + IOPORT_PIN_P221_PFC_02_ESC_LINKACT2 = (0x02U << IOPORT_PFC_OFFSET), ///< P22_1 / ETHER_ESC / ESC_LINKACT2 + IOPORT_PIN_P221_PFC_03_POE4 = (0x03U << IOPORT_PFC_OFFSET), ///< P22_1 / MTU_POE3 / POE4 + IOPORT_PIN_P221_PFC_04_SS4_CTS4_RTS4 = (0x04U << IOPORT_PFC_OFFSET), ///< P22_1 / SCIn / SS4_CTS4_RTS4 + IOPORT_PIN_P221_PFC_05_HD8 = (0x05U << IOPORT_PFC_OFFSET), ///< P22_1 / PHOSTIF / HD8 + IOPORT_PIN_P221_PFC_06_GTETRGB = (0x06U << IOPORT_PFC_OFFSET), ///< P22_1 / GPT_POEG / GTETRGB + IOPORT_PIN_P222_PFC_00_IRQ4 = (0x00U << IOPORT_PFC_OFFSET), ///< P22_2 / IRQ / IRQ4 + IOPORT_PIN_P222_PFC_01_TRACECLK = (0x01U << IOPORT_PFC_OFFSET), ///< P22_2 / TRACE / TRACECLK + IOPORT_PIN_P222_PFC_02_D9 = (0x02U << IOPORT_PFC_OFFSET), ///< P22_2 / BSC / D9 + IOPORT_PIN_P222_PFC_03_MTIOC8C = (0x03U << IOPORT_PFC_OFFSET), ///< P22_2 / MTU3n / MTIOC8C + IOPORT_PIN_P222_PFC_04_GTETRGSA = (0x04U << IOPORT_PFC_OFFSET), ///< P22_2 / GPT_POEG / GTETRGSA + IOPORT_PIN_P222_PFC_05_SPI_SSL12 = (0x05U << IOPORT_PFC_OFFSET), ///< P22_2 / SPIn / SPI_SSL12 + IOPORT_PIN_P222_PFC_07_HD9 = (0x07U << IOPORT_PFC_OFFSET), ///< P22_2 / PHOSTIF / HD9 + IOPORT_PIN_P222_PFC_08_MCLK1 = (0x08U << IOPORT_PFC_OFFSET), ///< P22_2 / DSMIFn / MCLK1 + IOPORT_PIN_P223_PFC_00_D10 = (0x00U << IOPORT_PFC_OFFSET), ///< P22_3 / BSC / D10 + IOPORT_PIN_P223_PFC_01_MTIOC8D = (0x01U << IOPORT_PFC_OFFSET), ///< P22_3 / MTU3n / MTIOC8D + IOPORT_PIN_P223_PFC_02_GTETRGSB = (0x02U << IOPORT_PFC_OFFSET), ///< P22_3 / GPT_POEG / GTETRGSB + IOPORT_PIN_P223_PFC_04_RXD5_SCL5_MISO5 = (0x04U << IOPORT_PFC_OFFSET), ///< P22_3 / SCIn / RXD5_SCL5_MISO5 + IOPORT_PIN_P223_PFC_05_HD10 = (0x05U << IOPORT_PFC_OFFSET), ///< P22_3 / PHOSTIF / HD10 + IOPORT_PIN_P237_PFC_00_ETH2_RXD0 = (0x00U << IOPORT_PFC_OFFSET), ///< P23_7 / ETHER_ETHn / ETH2_RXD0 + IOPORT_PIN_P237_PFC_02_D11 = (0x02U << IOPORT_PFC_OFFSET), ///< P23_7 / BSC / D11 + IOPORT_PIN_P237_PFC_03_BS = (0x03U << IOPORT_PFC_OFFSET), ///< P23_7 / BSC / BS + IOPORT_PIN_P237_PFC_04_MTIOC0A = (0x04U << IOPORT_PFC_OFFSET), ///< P23_7 / MTU3n / MTIOC0A + IOPORT_PIN_P237_PFC_05_GTETRGA = (0x05U << IOPORT_PFC_OFFSET), ///< P23_7 / GPT_POEG / GTETRGA + IOPORT_PIN_P237_PFC_06_SCK1 = (0x06U << IOPORT_PFC_OFFSET), ///< P23_7 / SCIn / SCK1 + IOPORT_PIN_P237_PFC_07_MCLK4 = (0x07U << IOPORT_PFC_OFFSET), ///< P23_7 / DSMIFn / MCLK4 + IOPORT_PIN_P237_PFC_09_HD11 = (0x09U << IOPORT_PFC_OFFSET), ///< P23_7 / PHOSTIF / HD11 + IOPORT_PIN_P240_PFC_00_ETH2_RXD1 = (0x00U << IOPORT_PFC_OFFSET), ///< P24_0 / ETHER_ETHn / ETH2_RXD1 + IOPORT_PIN_P240_PFC_02_D12 = (0x02U << IOPORT_PFC_OFFSET), ///< P24_0 / BSC / D12 + IOPORT_PIN_P240_PFC_03_CKE = (0x03U << IOPORT_PFC_OFFSET), ///< P24_0 / BSC / CKE + IOPORT_PIN_P240_PFC_04_MTIOC0B = (0x04U << IOPORT_PFC_OFFSET), ///< P24_0 / MTU3n / MTIOC0B + IOPORT_PIN_P240_PFC_05_GTETRGB = (0x05U << IOPORT_PFC_OFFSET), ///< P24_0 / GPT_POEG / GTETRGB + IOPORT_PIN_P240_PFC_06_RXD1_SCL1_MISO1 = (0x06U << IOPORT_PFC_OFFSET), ///< P24_0 / SCIn / RXD1_SCL1_MISO1 + IOPORT_PIN_P240_PFC_07_DREQ = (0x07U << IOPORT_PFC_OFFSET), ///< P24_0 / DMAC / DREQ + IOPORT_PIN_P240_PFC_08_MDAT4 = (0x08U << IOPORT_PFC_OFFSET), ///< P24_0 / DSMIFn / MDAT4 + IOPORT_PIN_P240_PFC_0A_HD12 = (0x0AU << IOPORT_PFC_OFFSET), ///< P24_0 / PHOSTIF / HD12 + IOPORT_PIN_P241_PFC_00_ETH2_RXCLK = (0x00U << IOPORT_PFC_OFFSET), ///< P24_1 / ETHER_ETHn / ETH2_RXCLK + IOPORT_PIN_P241_PFC_02_D13 = (0x02U << IOPORT_PFC_OFFSET), ///< P24_1 / BSC / D13 + IOPORT_PIN_P241_PFC_03_CAS = (0x03U << IOPORT_PFC_OFFSET), ///< P24_1 / BSC / CAS + IOPORT_PIN_P241_PFC_04_MTIOC0C = (0x04U << IOPORT_PFC_OFFSET), ///< P24_1 / MTU3n / MTIOC0C + IOPORT_PIN_P241_PFC_05_GTETRGC = (0x05U << IOPORT_PFC_OFFSET), ///< P24_1 / GPT_POEG / GTETRGC + IOPORT_PIN_P241_PFC_06_POE8 = (0x06U << IOPORT_PFC_OFFSET), ///< P24_1 / MTU_POE3 / POE8 + IOPORT_PIN_P241_PFC_07_MCLK5 = (0x07U << IOPORT_PFC_OFFSET), ///< P24_1 / DSMIFn / MCLK5 + IOPORT_PIN_P241_PFC_09_HD13 = (0x09U << IOPORT_PFC_OFFSET), ///< P24_1 / PHOSTIF / HD13 + IOPORT_PIN_P242_PFC_00_ETH2_RXD2 = (0x00U << IOPORT_PFC_OFFSET), ///< P24_2 / ETHER_ETHn / ETH2_RXD2 + IOPORT_PIN_P242_PFC_02_D14 = (0x02U << IOPORT_PFC_OFFSET), ///< P24_2 / BSC / D14 + IOPORT_PIN_P242_PFC_03_RAS = (0x03U << IOPORT_PFC_OFFSET), ///< P24_2 / BSC / RAS + IOPORT_PIN_P242_PFC_04_MTIOC0D = (0x04U << IOPORT_PFC_OFFSET), ///< P24_2 / MTU3n / MTIOC0D + IOPORT_PIN_P242_PFC_05_GTETRGD = (0x05U << IOPORT_PFC_OFFSET), ///< P24_2 / GPT_POEG / GTETRGD + IOPORT_PIN_P242_PFC_06_TXD1_SDA1_MOSI1 = (0x06U << IOPORT_PFC_OFFSET), ///< P24_2 / SCIn / TXD1_SDA1_MOSI1 + IOPORT_PIN_P242_PFC_07_MDAT5 = (0x07U << IOPORT_PFC_OFFSET), ///< P24_2 / DSMIFn / MDAT5 + IOPORT_PIN_P242_PFC_09_HD14 = (0x09U << IOPORT_PFC_OFFSET), ///< P24_2 / PHOSTIF / HD14 + + /** Marks end of enum - used by parameter checking */ + IOPORT_PERIPHERAL_END +} ioport_pin_pfc_t; + +/** Options to configure pin functions */ +typedef enum e_ioport_cfg_options +{ + IOPORT_CFG_PORT_DIRECTION_HIZ = 0x00000000 << IOPORT_PM_OFFSET, ///< Sets the pin direction to Hi-Z + IOPORT_CFG_PORT_DIRECTION_INPUT = 0x00000001 << IOPORT_PM_OFFSET, ///< Sets the pin direction to input (default) + IOPORT_CFG_PORT_DIRECTION_OUTPUT = 0x00000002 << IOPORT_PM_OFFSET, ///< Sets the pin direction to output + IOPORT_CFG_PORT_DIRECTION_OUTPUT_INPUT = 0x00000003 << IOPORT_PM_OFFSET, ///< Sets the pin direction to output (data is input to input buffer) + IOPORT_CFG_PORT_OUTPUT_LOW = 0x00000000 << IOPORT_P_OFFSET, ///< Sets the pin level to low + IOPORT_CFG_PORT_OUTPUT_HIGH = 0x00000001 << IOPORT_P_OFFSET, ///< Sets the pin level to high + IOPORT_CFG_PORT_GPIO = 0x00000000 << IOPORT_PMC_OFFSET, ///< Enables pin to operate as an GPIO pin + IOPORT_CFG_PORT_PERI = 0x00000001 << IOPORT_PMC_OFFSET, ///< Enables pin to operate as a peripheral pin + IOPORT_CFG_DRIVE_LOW = 0x00000000 << IOPORT_DRCTL_OFFSET, ///< Sets pin drive output to low + IOPORT_CFG_DRIVE_MID = 0x00000001 << IOPORT_DRCTL_OFFSET, ///< Sets pin drive output to medium + IOPORT_CFG_DRIVE_HIGH = 0x00000002 << IOPORT_DRCTL_OFFSET, ///< Sets pin drive output to high + IOPORT_CFG_DRIVE_UHIGH = 0x00000003 << IOPORT_DRCTL_OFFSET, ///< Sets pin drive output to ultra high + IOPORT_CFG_PULLUP_DOWN_DISABLE = 0x00000000 << IOPORT_DRCTL_OFFSET, ///< Disables the pin's pull-up / pull-down + IOPORT_CFG_PULLUP_ENABLE = 0x00000004 << IOPORT_DRCTL_OFFSET, ///< Enables the pin's internal pull-up + IOPORT_CFG_PULLDOWN_ENABLE = 0x00000008 << IOPORT_DRCTL_OFFSET, ///< Enables the pin's pull-down + IOPORT_CFG_SCHMITT_TRIGGER_DISABLE = 0x00000000 << IOPORT_DRCTL_OFFSET, ///< Disables schmitt trigger input + IOPORT_CFG_SCHMITT_TRIGGER_ENABLE = 0x00000010 << IOPORT_DRCTL_OFFSET, ///< Enables schmitt trigger input + IOPORT_CFG_SLEW_RATE_SLOW = 0x00000000 << IOPORT_DRCTL_OFFSET, ///< Sets the slew rate to slow + IOPORT_CFG_SLEW_RATE_FAST = 0x00000020 << IOPORT_DRCTL_OFFSET, ///< Sets the slew rate to fast + IOPORT_CFG_REGION_SAFETY = 0x00000000 << IOPORT_RSELP_OFFSET, ///< Selects safety region + IOPORT_CFG_REGION_NSAFETY = 0x00000001 << IOPORT_RSELP_OFFSET, ///< Selects non safety region + IOPORT_CFG_PIM_TTL = 0x00000020, ///< This macro has been unsupported + IOPORT_CFG_NMOS_ENABLE = 0x00000040, ///< This macro has been unsupported + IOPORT_CFG_PMOS_ENABLE = 0x00000080, ///< This macro has been unsupported + IOPORT_CFG_DRIVE_HS_HIGH = 0x00000800, ///< This macro has been unsupported + IOPORT_CFG_DRIVE_MID_IIC = 0x00000C00, ///< This macro has been unsupported + IOPORT_CFG_EVENT_RISING_EDGE = 0x00001000, ///< This macro has been unsupported + IOPORT_CFG_EVENT_FALLING_EDGE = 0x00002000, ///< This macro has been unsupported + IOPORT_CFG_EVENT_BOTH_EDGES = 0x00003000, ///< This macro has been unsupported + IOPORT_CFG_IRQ_ENABLE = 0x00004000, ///< This macro has been unsupported + IOPORT_CFG_ANALOG_ENABLE = 0x00008000, ///< This macro has been unsupported + IOPORT_CFG_PERIPHERAL_PIN = 0x00010000 ///< This macro has been unsupported +} ioport_cfg_options_t; + +/*============================================== + * POE3 API Overrides + *==============================================*/ + +/** POE3 states. */ +typedef enum e_poe3_state +{ + POE3_STATE_NO_DISABLE_REQUEST = 0, ///< Timer output is not disabled by POE3 + POE3_STATE_POE0_HIGH_IMPEDANCE_REQUEST = 1U, ///< Timer output disabled due to POE0# pin + POE3_STATE_POE4_HIGH_IMPEDANCE_REQUEST = 1U << 1, ///< Timer output disabled due to POE4# pin + POE3_STATE_POE8_HIGH_IMPEDANCE_REQUEST = 1U << 2, ///< Timer output disabled due to POE8# pin + POE3_STATE_POE10_HIGH_IMPEDANCE_REQUEST = 1U << 3, ///< Timer output disabled due to POE10# pin + POE3_STATE_POE11_HIGH_IMPEDANCE_REQUEST = 1U << 4, ///< Timer output disabled due to POE11# pin + + POE3_STATE_SOFTWARE_STOP_DISABLE_REQUEST = 1U << 5, ///< Timer output disabled due to poe3_api_t::outputDisable() + POE3_STATE_OSCILLATION_STOP_DISABLE_REQUEST = 1U << 6, ///< Timer output disabled due to main oscillator stop + + POE3_STATE_DSMIF0_ERROR_REQUEST = 1U << 7, ///< Timer output disabled due to DSMIF0 error + POE3_STATE_DSMIF1_ERROR_REQUEST = 1U << 8, ///< Timer output disabled due to DSMIF1 error + + POE3_STATE_OUTPUT_SHORT_CIRCUIT_1_ERROR_REQUEST = 1U << 9, ///< Timer output disabled due to output short circuit 1 + POE3_STATE_OUTPUT_SHORT_CIRCUIT_2_ERROR_REQUEST = 1U << 10, ///< Timer output disabled due to output short circuit 2 +} poe3_state_t; + +/*============================================== + * POEG API Overrides + *==============================================*/ + +/** POEG states. */ +typedef enum e_poeg_state +{ + POEG_STATE_NO_DISABLE_REQUEST = 0, ///< GPT output is not disabled by POEG + POEG_STATE_PIN_DISABLE_REQUEST = 1U << 0, ///< GPT output disabled due to GTETRG pin level + POEG_STATE_GPT_OR_COMPARATOR_DISABLE_REQUEST = 1U << 1, ///< GPT output disabled due to high speed analog comparator or GPT + POEG_STATE_OSCILLATION_STOP_DISABLE_REQUEST = 1U << 2, ///< GPT output disabled due to main oscillator stop + POEG_STATE_SOFTWARE_STOP_DISABLE_REQUEST = 1U << 3, ///< GPT output disabled due to poeg_api_t::outputDisable() + + /** GPT output disable request active from the GTETRG pin. If a filter is used, this flag represents the state of + * the filtered input. */ + POEG_STATE_PIN_DISABLE_REQUEST_ACTIVE = 1U << 16, + POEG_STATE_DSMIF0_DISABLE_REQUEST = 1U << 24, ///< GPT output disabled due to DSMIF0 error 0 + POEG_STATE_DSMIF1_DISABLE_REQUEST = 1U << 25, ///< GPT output disabled due to DSMIF1 error 0 +} poeg_state_t; + +/** Triggers that will disable GPT output pins. */ +typedef enum e_poeg_trigger +{ + /** Software disable is always supported with POEG. Select this option if no other triggers are used. */ + POEG_TRIGGER_SOFTWARE = 0U, + POEG_TRIGGER_PIN = 1U << 0, ///< Disable GPT output based on GTETRG input level + POEG_TRIGGER_GPT_OUTPUT_LEVEL = 1U << 1, ///< Disable GPT output based on GPT output pin levels + POEG_TRIGGER_OSCILLATION_STOP = 1U << 2, ///< Disable GPT output based on main oscillator stop + POEG_TRIGGER_ACMPHS0 = 1U << 4, ///< Disable GPT output based on ACMPHS0 comparator result + POEG_TRIGGER_ACMPHS1 = 1U << 5, ///< Disable GPT output based on ACMPHS1 comparator result + POEG_TRIGGER_ACMPHS2 = 1U << 6, ///< Disable GPT output based on ACMPHS2 comparator result + POEG_TRIGGER_ACMPHS3 = 1U << 7, ///< Disable GPT output based on ACMPHS3 comparator result + POEG_TRIGGER_ACMPHS4 = 1U << 8, ///< Disable GPT output based on ACMPHS4 comparator result + POEG_TRIGGER_ACMPHS5 = 1U << 9, ///< Disable GPT output based on ACMPHS5 comparator result + + /** The GPT output pins can be disabled when DSMIF error occurs (LLPP only). */ + POEG_TRIGGER_DERR0E = 1U << 22, ///< Permit output disabled by DSMIF0 error detection + POEG_TRIGGER_DERR1E = 1U << 23, ///< Permit output disabled by DSMIF1 error detection +} poeg_trigger_t; + +/*============================================== + * Transfer API Overrides + *==============================================*/ + +/** Events that can trigger a callback function. */ +typedef enum e_transfer_event +{ + TRANSFER_EVENT_TRANSFER_END = 0, ///< Transfer has completed. + TRANSFER_EVENT_TRANSFER_ERROR = 1, ///< Transfer error has occurred. +} transfer_event_t; + +/** Transfer mode describes what will happen when a transfer request occurs. */ +typedef enum e_transfer_mode +{ + /** Normal mode. */ + TRANSFER_MODE_NORMAL = 0, + + /** Block mode. */ + TRANSFER_MODE_BLOCK = 1 +} transfer_mode_t; + +/** Transfer size specifies the size of each individual transfer. */ +typedef enum e_transfer_size +{ + TRANSFER_SIZE_1_BYTE = 0, ///< Each transfer transfers a 8-bit value + TRANSFER_SIZE_2_BYTE = 1, ///< Each transfer transfers a 16-bit value + TRANSFER_SIZE_4_BYTE = 2, ///< Each transfer transfers a 32-bit value + TRANSFER_SIZE_8_BYTE = 3, ///< Each transfer transfers a 64-bit value + TRANSFER_SIZE_16_BYTE = 4, ///< Each transfer transfers a 128-bit value + TRANSFER_SIZE_32_BYTE = 5, ///< Each transfer transfers a 256-bit value + TRANSFER_SIZE_64_BYTE = 6 ///< Each transfer transfers a 512-bit value +} transfer_size_t; + +/** Address mode specifies whether to modify (increment or decrement) pointer after each transfer. */ +typedef enum e_transfer_addr_mode +{ + /** Address pointer is incremented by associated @ref transfer_size_t after each transfer. */ + TRANSFER_ADDR_MODE_INCREMENTED = 0, + + /** Address pointer remains fixed after each transfer. */ + TRANSFER_ADDR_MODE_FIXED = 1 +} transfer_addr_mode_t; + +/** Callback function parameter data. */ +typedef struct st_transfer_callback_args_t +{ + transfer_event_t event; ///< Event code + void const * p_context; ///< Placeholder for user data. Set in transfer_api_t::open function in ::transfer_cfg_t. +} transfer_callback_args_t; + +/** This structure specifies the properties of the transfer. */ +typedef struct st_transfer_info +{ + /** Select what happens to destination pointer after each transfer. */ + transfer_addr_mode_t dest_addr_mode; + + /** Select what happens to source pointer after each transfer. */ + transfer_addr_mode_t src_addr_mode; + + /** Select mode from @ref transfer_mode_t. */ + transfer_mode_t mode; + + /** Source pointer. */ + void const * volatile p_src; + + /** Destination pointer. */ + void * volatile p_dest; + + /** Length of each transfer. */ + volatile uint32_t length; + + /** Select number of source bytes to transfer at once. */ + transfer_size_t src_size; + + /** Select number of destination bytes to transfer at once. */ + transfer_size_t dest_size; + + /** Next1 Register set settings */ + void const * p_next1_src; + void * p_next1_dest; + uint32_t next1_length; +} transfer_info_t; + +/*********************************************************************************************************************** + * Exported global variables + **********************************************************************************************************************/ + +/*********************************************************************************************************************** + * Exported global functions (to be accessed by other files) + **********************************************************************************************************************/ + +/** Common macro for FSP header files. There is also a corresponding FSP_HEADER macro at the top of this file. */ +FSP_FOOTER + +#endif diff --git a/bsp/renesas/rzn2l_rsk/rzn/fsp/src/r_ioport/r_ioport.c b/bsp/renesas/rzn2l_rsk/rzn/fsp/src/r_ioport/r_ioport.c new file mode 100644 index 0000000000..a192ee17d4 --- /dev/null +++ b/bsp/renesas/rzn2l_rsk/rzn/fsp/src/r_ioport/r_ioport.c @@ -0,0 +1,957 @@ +/*********************************************************************************************************************** + * Copyright [2020-2024] Renesas Electronics Corporation and/or its affiliates. All Rights Reserved. + * + * This software and documentation are supplied by Renesas Electronics Corporation and/or its affiliates and may only + * be used with products of Renesas Electronics Corp. and its affiliates ("Renesas"). No other uses are authorized. + * Renesas products are sold pursuant to Renesas terms and conditions of sale. Purchasers are solely responsible for + * the selection and use of Renesas products and Renesas assumes no liability. No license, express or implied, to any + * intellectual property right is granted by Renesas. This software is protected under all applicable laws, including + * copyright laws. Renesas reserves the right to change or discontinue this software and/or this documentation. + * THE SOFTWARE AND DOCUMENTATION IS DELIVERED TO YOU "AS IS," AND RENESAS MAKES NO REPRESENTATIONS OR WARRANTIES, AND + * TO THE FULLEST EXTENT PERMISSIBLE UNDER APPLICABLE LAW, DISCLAIMS ALL WARRANTIES, WHETHER EXPLICITLY OR IMPLICITLY, + * INCLUDING WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE, AND NONINFRINGEMENT, WITH RESPECT TO THE + * SOFTWARE OR DOCUMENTATION. RENESAS SHALL HAVE NO LIABILITY ARISING OUT OF ANY SECURITY VULNERABILITY OR BREACH. + * TO THE MAXIMUM EXTENT PERMITTED BY LAW, IN NO EVENT WILL RENESAS BE LIABLE TO YOU IN CONNECTION WITH THE SOFTWARE OR + * DOCUMENTATION (OR ANY PERSON OR ENTITY CLAIMING RIGHTS DERIVED FROM YOU) FOR ANY LOSS, DAMAGES, OR CLAIMS WHATSOEVER, + * INCLUDING, WITHOUT LIMITATION, ANY DIRECT, CONSEQUENTIAL, SPECIAL, INDIRECT, PUNITIVE, OR INCIDENTAL DAMAGES; ANY + * LOST PROFITS, OTHER ECONOMIC DAMAGE, PROPERTY DAMAGE, OR PERSONAL INJURY; AND EVEN IF RENESAS HAS BEEN ADVISED OF THE + * POSSIBILITY OF SUCH LOSS, DAMAGES, CLAIMS OR COSTS. + **********************************************************************************************************************/ + +/*********************************************************************************************************************** + * Includes + **********************************************************************************************************************/ +#include +#include "bsp_api.h" +#include "r_ioport.h" +#include "r_ioport_api.h" + +/*********************************************************************************************************************** + * Macro definitions + **********************************************************************************************************************/ + +/* "PORT" in ASCII, used to determine if the module is open */ +#define IOPORT_OPEN (0x504F5254U) +#define IOPORT_CLOSED (0x00000000U) + +/* Shift to get port in bsp_io_port_t and bsp_io_port_pin_t enums. */ +#define IOPORT_PRV_PORT_OFFSET (8U) + +#define IOPORT_PRV_PORT_BITS (0xFF00U) +#define IOPORT_PRV_PIN_BITS (0x00FFU) + +#define IOPORT_PRV_8BIT_MASK (0x00FFU) + +/* Added definitions */ +#define IOPORT_PIN_NUM_MUX (8U) +#define IOPORT_REGION_SEL_SAFE (0U) +#define IOPORT_REGION_SEL_NSAFE (1U) +#define IOPORT_RSEL_MASK (0x01U) +#define IOPORT_PM_BIT_MASK (0x0003U) +#define IOPORT_PFC_BIT_MASK (0x0000000FU) +#define IOPORT_DRTCL_BIT_MASK (0x000000FFU) +#define IOPORT_ELC_PEL_MASK (0x80) +#define IOOPRT_ELC_PGC_MASK (0x88) +#define IOPORT_ELC_PEL_PSM_HIGH (0x20) + +/* Switch IOPORT register region either safety or non safety */ +#define IOPORT_PRV_PORT_ADDRESS(region_sel) (region_sel == 1 ? (R_PORT_NSR) : (R_PORT_SR)) + +/*********************************************************************************************************************** + * Typedef definitions + **********************************************************************************************************************/ +typedef struct st_ioport_cfg_data +{ + uint32_t p_reg : 1; + uint32_t pm_reg : 2; + uint32_t pmc_reg : 1; + uint32_t pfc_reg : 4; + uint32_t drct_reg : 6; + uint32_t rsel_reg : 1; + uint32_t reserved : 17; +} ioport_cfg_data_t; + +/*********************************************************************************************************************** + * Private function prototypes + **********************************************************************************************************************/ +static void r_ioport_pins_config(const ioport_cfg_t * p_cfg); +static void r_ioport_pin_set(bsp_io_port_pin_t pin, ioport_cfg_data_t * p_cfg_data); +static void r_ioport_event_config(const ioport_extend_cfg_t * p_extend_cfg_data); + +/*********************************************************************************************************************** + * Private global variables + **********************************************************************************************************************/ + +/*********************************************************************************************************************** + * Global Variables + **********************************************************************************************************************/ + +/* IOPort Implementation of IOPort Driver */ +const ioport_api_t g_ioport_on_ioport = +{ + .open = R_IOPORT_Open, + .close = R_IOPORT_Close, + .pinsCfg = R_IOPORT_PinsCfg, + .pinCfg = R_IOPORT_PinCfg, + .pinEventInputRead = R_IOPORT_PinEventInputRead, + .pinEventOutputWrite = R_IOPORT_PinEventOutputWrite, + .pinRead = R_IOPORT_PinRead, + .pinWrite = R_IOPORT_PinWrite, + .portDirectionSet = R_IOPORT_PortDirectionSet, + .portEventInputRead = R_IOPORT_PortEventInputRead, + .portEventOutputWrite = R_IOPORT_PortEventOutputWrite, + .portRead = R_IOPORT_PortRead, + .portWrite = R_IOPORT_PortWrite, +}; + +/*******************************************************************************************************************//** + * @addtogroup IOPORT + * @{ + **********************************************************************************************************************/ + +/*********************************************************************************************************************** + * Functions + **********************************************************************************************************************/ + +/*******************************************************************************************************************//** + * Initializes internal driver data, then calls pin configuration function to configure pins. + * + * @retval FSP_SUCCESS Pin configuration data written to the multiple registers + * @retval FSP_ERR_ASSERTION NULL pointer + * @retval FSP_ERR_ALREADY_OPEN Module is already open. + **********************************************************************************************************************/ +fsp_err_t R_IOPORT_Open (ioport_ctrl_t * const p_ctrl, const ioport_cfg_t * p_cfg) +{ + ioport_instance_ctrl_t * p_instance_ctrl = (ioport_instance_ctrl_t *) p_ctrl; + +#if (1 == IOPORT_CFG_PARAM_CHECKING_ENABLE) + FSP_ASSERT(NULL != p_instance_ctrl); + FSP_ASSERT(NULL != p_cfg); + FSP_ASSERT(NULL != p_cfg->p_pin_cfg_data); + FSP_ERROR_RETURN(IOPORT_OPEN != p_instance_ctrl->open, FSP_ERR_ALREADY_OPEN); +#endif + + /* Set driver status to open */ + p_instance_ctrl->open = IOPORT_OPEN; + + p_instance_ctrl->p_cfg = p_cfg; + + r_ioport_pins_config(p_cfg); + + r_ioport_event_config(p_cfg->p_extend); + + return FSP_SUCCESS; +} + +/*******************************************************************************************************************//** + * Resets IOPORT registers. Implements @ref ioport_api_t::close + * + * @retval FSP_SUCCESS The IOPORT was successfully uninitialized + * @retval FSP_ERR_ASSERTION p_ctrl was NULL + * @retval FSP_ERR_NOT_OPEN The module has not been opened + * + **********************************************************************************************************************/ +fsp_err_t R_IOPORT_Close (ioport_ctrl_t * const p_ctrl) +{ + ioport_instance_ctrl_t * p_instance_ctrl = (ioport_instance_ctrl_t *) p_ctrl; + +#if (1 == IOPORT_CFG_PARAM_CHECKING_ENABLE) + FSP_ASSERT(NULL != p_instance_ctrl); + FSP_ERROR_RETURN(IOPORT_OPEN == p_instance_ctrl->open, FSP_ERR_NOT_OPEN); +#else + FSP_PARAMETER_NOT_USED(p_ctrl); +#endif + + /* Set state to closed */ + p_instance_ctrl->open = IOPORT_CLOSED; + + return FSP_SUCCESS; +} + +/*******************************************************************************************************************//** + * Configures the functions of multiple pins by loading configuration data into the multiple registers. + * Implements @ref ioport_api_t::pinsCfg. + * + * This function initializes the supplied list of the multiple registers with the supplied values. This data can be generated + * by the Pins tab of the RZ/N2L Configuration editor or manually by the developer. Different pin configurations can be + * loaded for different situations such as low power modes and testing. + * + * @retval FSP_SUCCESS Pin configuration data written to the multiple registers + * @retval FSP_ERR_NOT_OPEN The module has not been opened + * @retval FSP_ERR_ASSERTION NULL pointer + **********************************************************************************************************************/ +fsp_err_t R_IOPORT_PinsCfg (ioport_ctrl_t * const p_ctrl, const ioport_cfg_t * p_cfg) +{ +#if (1 == IOPORT_CFG_PARAM_CHECKING_ENABLE) + ioport_instance_ctrl_t * p_instance_ctrl = (ioport_instance_ctrl_t *) p_ctrl; + FSP_ASSERT(NULL != p_instance_ctrl); + FSP_ERROR_RETURN(IOPORT_OPEN == p_instance_ctrl->open, FSP_ERR_NOT_OPEN); + FSP_ASSERT(NULL != p_cfg); + FSP_ASSERT(NULL != p_cfg->p_pin_cfg_data); +#else + FSP_PARAMETER_NOT_USED(p_ctrl); +#endif + + r_ioport_pins_config(p_cfg); + + return FSP_SUCCESS; +} + +/*******************************************************************************************************************//** + * Configures the settings of a pin. Implements @ref ioport_api_t::pinCfg. + * + * @retval FSP_SUCCESS Pin configured + * @retval FSP_ERR_NOT_OPEN The module has not been opened + * @retval FSP_ERR_ASSERTION NULL pointer + * + * @note This function is re-entrant for different pins. + * This function will change the configuration of the pin with the new configuration. For example it is not possible + * with this function to change the drive strength of a pin while leaving all the other pin settings unchanged. To + * achieve this the original settings with the required change will need to be written using this function. + **********************************************************************************************************************/ +fsp_err_t R_IOPORT_PinCfg (ioport_ctrl_t * const p_ctrl, bsp_io_port_pin_t pin, uint32_t cfg) +{ +#if (1 == IOPORT_CFG_PARAM_CHECKING_ENABLE) + ioport_instance_ctrl_t * p_instance_ctrl = (ioport_instance_ctrl_t *) p_ctrl; + FSP_ASSERT(NULL != p_instance_ctrl); + FSP_ERROR_RETURN(IOPORT_OPEN == p_instance_ctrl->open, FSP_ERR_NOT_OPEN); +#else + FSP_PARAMETER_NOT_USED(p_ctrl); +#endif + + R_BSP_PinAccessEnable(); + + r_ioport_pin_set(pin, (ioport_cfg_data_t *) &cfg); + + R_BSP_PinAccessDisable(); + + return FSP_SUCCESS; +} + +/*******************************************************************************************************************//** + * Reads the level on a pin. Implements @ref ioport_api_t::pinRead. + * + * The level for the specifed pin will be reterned by PINm register. + * + * @retval FSP_SUCCESS Pin read + * @retval FSP_ERR_ASSERTION NULL pointer + * @retval FSP_ERR_NOT_OPEN The module has not been opened + * + * @note This function is re-entrant for different pins. + **********************************************************************************************************************/ +fsp_err_t R_IOPORT_PinRead (ioport_ctrl_t * const p_ctrl, bsp_io_port_pin_t pin, bsp_io_level_t * p_pin_value) +{ +#if (1 == IOPORT_CFG_PARAM_CHECKING_ENABLE) + ioport_instance_ctrl_t * p_instance_ctrl = (ioport_instance_ctrl_t *) p_ctrl; + FSP_ASSERT(NULL != p_instance_ctrl); + FSP_ERROR_RETURN(IOPORT_OPEN == p_instance_ctrl->open, FSP_ERR_NOT_OPEN); + FSP_ASSERT(NULL != p_pin_value); +#else + FSP_PARAMETER_NOT_USED(p_ctrl); +#endif + + *p_pin_value = (bsp_io_level_t) R_BSP_FastPinRead(R_BSP_IoRegionGet(pin), pin); + + return FSP_SUCCESS; +} + +/*******************************************************************************************************************//** + * Reads the value on an IO port. Implements @ref ioport_api_t::portRead. + * + * The specified port will be read, and the levels for all the pins will be returned by PINm register. + * Each bit in the returned value corresponds to a pin on the port. For example, bit 7 corresponds + * to pin 7, bit 6 to pin 6, and so on. + * + * @retval FSP_SUCCESS Port read + * @retval FSP_ERR_ASSERTION NULL pointer + * @retval FSP_ERR_NOT_OPEN The module has not been opened + * + * @note This function is re-entrant for different ports. + **********************************************************************************************************************/ +fsp_err_t R_IOPORT_PortRead (ioport_ctrl_t * const p_ctrl, bsp_io_port_t port, ioport_size_t * p_port_value) +{ +#if (1 == IOPORT_CFG_PARAM_CHECKING_ENABLE) + ioport_instance_ctrl_t * p_instance_ctrl = (ioport_instance_ctrl_t *) p_ctrl; + FSP_ASSERT(NULL != p_instance_ctrl); + FSP_ERROR_RETURN(IOPORT_OPEN == p_instance_ctrl->open, FSP_ERR_NOT_OPEN); + FSP_ASSERT(NULL != p_port_value); +#else + FSP_PARAMETER_NOT_USED(p_ctrl); +#endif + + R_PORT_COMMON_Type * p_ioport_regs; + ioport_size_t safe_value; + ioport_size_t nsafe_value; + + /* Get port number */ + uint32_t port_num = (IOPORT_PRV_PORT_BITS & (ioport_size_t) port) >> IOPORT_PRV_PORT_OFFSET; + + /* Get the RSELP register value */ + ioport_size_t rselp_value = (ioport_size_t) R_PTADR->RSELP[port_num]; + + /* Get the port register address in non safety region */ + p_ioport_regs = IOPORT_PRV_PORT_ADDRESS(IOPORT_REGION_SEL_NSAFE); + + /* Read the specified port states in non safety region */ + nsafe_value = (ioport_size_t) (p_ioport_regs->PIN[port_num] & rselp_value); + + /* Get the port register address in safety region */ + p_ioport_regs = IOPORT_PRV_PORT_ADDRESS(IOPORT_REGION_SEL_SAFE); + + /* Read the specified port states in safety region */ + safe_value = (ioport_size_t) (p_ioport_regs->PIN[port_num] & ~(rselp_value)); + + /* Read the specified port states */ + *p_port_value = nsafe_value | safe_value; + + return FSP_SUCCESS; +} + +/*******************************************************************************************************************//** + * Writes to multiple pins on a port. Implements @ref ioport_api_t::portWrite. + * + * The output value will be written to the specified port. Each bit in the value parameter corresponds to a bit + * on the port. For example, bit 7 corresponds to pin 7, bit 6 to pin 6, and so on. + * Each bit in the mask parameter corresponds to a pin on the port. + * + * Only the bits with the corresponding bit in the mask value set will be updated. + * For example, value = 0x00FF, mask = 0x0003 results in only bits 0 and 1 being updated. + * + * @retval FSP_SUCCESS Port written to + * @retval FSP_ERR_INVALID_ARGUMENT The port and/or mask not valid + * @retval FSP_ERR_NOT_OPEN The module has not been opened + * @retval FSP_ERR_ASSERTION NULL pointerd + * + * @note This function is re-entrant for different ports. This function makes use of the Pm register to atomically + * modify the levels on the specified pins on a port. + **********************************************************************************************************************/ +fsp_err_t R_IOPORT_PortWrite (ioport_ctrl_t * const p_ctrl, bsp_io_port_t port, ioport_size_t value, ioport_size_t mask) +{ +#if (1 == IOPORT_CFG_PARAM_CHECKING_ENABLE) + ioport_instance_ctrl_t * p_instance_ctrl = (ioport_instance_ctrl_t *) p_ctrl; + FSP_ASSERT(NULL != p_instance_ctrl); + FSP_ERROR_RETURN(IOPORT_OPEN == p_instance_ctrl->open, FSP_ERR_NOT_OPEN); + FSP_ERROR_RETURN(mask > (ioport_size_t) 0, FSP_ERR_INVALID_ARGUMENT); +#else + FSP_PARAMETER_NOT_USED(p_ctrl); +#endif + + R_PORT_COMMON_Type * p_ioport_regs; + ioport_size_t temp_value; + ioport_size_t write_mask; + + /* mask value: lower word is valid, upper word is invalid */ + mask &= IOPORT_PRV_8BIT_MASK; + + /* Get port number */ + uint32_t port_num = (IOPORT_PRV_PORT_BITS & (ioport_size_t) port) >> IOPORT_PRV_PORT_OFFSET; + + /* Get the RSELP register value */ + ioport_size_t rselp_value = R_PTADR->RSELP[port_num]; + + /* Set value to non safety region register */ + write_mask = rselp_value & mask; + if (write_mask) + { + /* Get the port register address */ + p_ioport_regs = IOPORT_PRV_PORT_ADDRESS(IOPORT_REGION_SEL_NSAFE); + + /* Output data store of the specified pins sets to low output */ + temp_value = (ioport_size_t) (p_ioport_regs->P[port_num] & (~write_mask)); + + /* Write output data to P register of the specified pins */ + p_ioport_regs->P[port_num] = (uint8_t) (temp_value | (value & write_mask)); + } + + /* Set value to safety region register */ + write_mask = (ioport_size_t) ((~rselp_value) & mask); + if (write_mask) + { + /* Get the port register address */ + p_ioport_regs = IOPORT_PRV_PORT_ADDRESS(IOPORT_REGION_SEL_SAFE); + + /* Output data store of the specified pins sets to low output */ + temp_value = (ioport_size_t) (p_ioport_regs->P[port_num] & (~write_mask)); + + /* Write output data to P register of the specified pins */ + p_ioport_regs->P[port_num] = (uint8_t) (temp_value | (value & write_mask)); + } + + return FSP_SUCCESS; +} + +/*******************************************************************************************************************//** + * Sets a pin's output either high or low. Implements @ref ioport_api_t::pinWrite. + * + * @retval FSP_SUCCESS Pin written to + * @retval FSP_ERR_INVALID_ARGUMENT The pin and/or level not valid + * @retval FSP_ERR_NOT_OPEN The module has not been opene + * @retval FSP_ERR_ASSERTION NULL pointerd + * + * @note This function is re-entrant for different pins. This function makes use of the Pm register to atomically + * modify the level on the specified pin on a port. + **********************************************************************************************************************/ +fsp_err_t R_IOPORT_PinWrite (ioport_ctrl_t * const p_ctrl, bsp_io_port_pin_t pin, bsp_io_level_t level) +{ +#if (1 == IOPORT_CFG_PARAM_CHECKING_ENABLE) + ioport_instance_ctrl_t * p_instance_ctrl = (ioport_instance_ctrl_t *) p_ctrl; + FSP_ASSERT(NULL != p_instance_ctrl); + FSP_ERROR_RETURN(IOPORT_OPEN == p_instance_ctrl->open, FSP_ERR_NOT_OPEN); + FSP_ERROR_RETURN(level <= BSP_IO_LEVEL_HIGH, FSP_ERR_INVALID_ARGUMENT); +#else + FSP_PARAMETER_NOT_USED(p_ctrl); +#endif + + R_PORT_COMMON_Type * p_ioport_regs; + + /* Get port and pin number */ + uint32_t port_num = (IOPORT_PRV_PORT_BITS & (ioport_size_t) pin) >> IOPORT_PRV_PORT_OFFSET; + uint32_t pin_num = (IOPORT_PRV_PIN_BITS & (ioport_size_t) pin); + + /* Get the port register address */ + p_ioport_regs = (IOPORT_PRV_PORT_ADDRESS(((uint16_t) (R_PTADR->RSELP[port_num] >> pin_num) & + IOPORT_RSEL_MASK))); + + /* Set output level to P register of the specified pin */ + if (BSP_IO_LEVEL_LOW == level) + { + p_ioport_regs->P[port_num] &= (uint8_t) (~(1U << pin_num)); + } + else + { + p_ioport_regs->P[port_num] |= (uint8_t) (1U << pin_num); + } + + return FSP_SUCCESS; +} + +/*******************************************************************************************************************//** + * Sets the direction of individual pins on a port. Implements @ref ioport_api_t::portDirectionSet(). + * + * Multiple pins on a port can be set to inputs or outputs at once. + * Each bit in the mask parameter corresponds to a pin on the port. For example, bit 7 corresponds to + * pin 7, bit 6 to pin 6, and so on. If a mask bit is set to 1 then the corresponding pin will be changed to + * an input or an output as specified by the direction values. If a mask bit is set to 0 then the direction of + * the pin will not be changed. + * + * @retval FSP_SUCCESS Port direction updated + * @retval FSP_ERR_INVALID_ARGUMENT The port and/or mask not valid + * @retval FSP_ERR_NOT_OPEN The module has not been opened + * @retval FSP_ERR_ASSERTION NULL pointer + * + * @note This function is re-entrant for different ports. + **********************************************************************************************************************/ +fsp_err_t R_IOPORT_PortDirectionSet (ioport_ctrl_t * const p_ctrl, + bsp_io_port_t port, + ioport_size_t direction_values, + ioport_size_t mask) +{ + uint32_t pin_num; + +#if (1 == IOPORT_CFG_PARAM_CHECKING_ENABLE) + ioport_instance_ctrl_t * p_instance_ctrl = (ioport_instance_ctrl_t *) p_ctrl; + FSP_ASSERT(NULL != p_instance_ctrl); + FSP_ERROR_RETURN(IOPORT_OPEN == p_instance_ctrl->open, FSP_ERR_NOT_OPEN); + FSP_ERROR_RETURN(mask > (uint16_t) 0, FSP_ERR_INVALID_ARGUMENT); +#else + FSP_PARAMETER_NOT_USED(p_ctrl); +#endif + + /* mask value: lower word is valid, upper word is invalid */ + mask &= IOPORT_PRV_8BIT_MASK; + + for (pin_num = 0U; pin_num < IOPORT_PIN_NUM_MUX; pin_num++) + { + if (mask & (1U << pin_num)) + { + /* Get port number */ + uint32_t port_num = (IOPORT_PRV_PORT_BITS & (ioport_size_t) port) >> IOPORT_PRV_PORT_OFFSET; + + /* Get the port register address */ + R_PORT_COMMON_Type * p_ioport_regs = + IOPORT_PRV_PORT_ADDRESS(((uint16_t) (R_PTADR->RSELP[port_num] >> pin_num) & + IOPORT_RSEL_MASK)); + + /* Set */ + uint16_t set_bits = (uint16_t) (direction_values & (IOPORT_PM_BIT_MASK << (pin_num * 2U))); + + /* Set the direction value */ + uint16_t temp_value = (uint16_t) (p_ioport_regs->PM[port_num] & ~(IOPORT_PM_BIT_MASK << (pin_num * 2U))); + p_ioport_regs->PM[port_num] = temp_value | set_bits; + } + } + + return FSP_SUCCESS; +} + +/*******************************************************************************************************************//** + * Reads the value of the event input data. Implements @ref ioport_api_t::portEventInputRead(). + * + * The event input data for the port will be read. Each bit in the returned value corresponds to a pin on the port. + * For example, bit 7 corresponds to pin 7, bit 6 to pin 6, and so on. + * + * The port event data is captured in response to a trigger from the ELC. This function enables this data to be read. + * Using the event system allows the captured data to be stored when it occurs and then read back at a later time. + * + * @retval FSP_SUCCESS Port read + * @retval FSP_ERR_INVALID_ARGUMENT Port not a valid ELC port + * @retval FSP_ERR_ASSERTION NULL pointer + * @retval FSP_ERR_NOT_OPEN The module has not been opened + **********************************************************************************************************************/ +fsp_err_t R_IOPORT_PortEventInputRead (ioport_ctrl_t * const p_ctrl, bsp_io_port_t port, ioport_size_t * p_event_data) +{ + uint8_t portgroup = 0U; + ioport_instance_ctrl_t * p_instance_ctrl = (ioport_instance_ctrl_t *) p_ctrl; + +#if (1 == IOPORT_CFG_PARAM_CHECKING_ENABLE) + FSP_ASSERT(NULL != p_instance_ctrl); + FSP_ERROR_RETURN(IOPORT_OPEN == p_instance_ctrl->open, FSP_ERR_NOT_OPEN); + FSP_ASSERT(NULL != p_event_data); + FSP_ERROR_RETURN((port == BSP_IO_PORT_16) || (port == BSP_IO_PORT_18), FSP_ERR_INVALID_ARGUMENT); +#else + FSP_PARAMETER_NOT_USED(p_ctrl); +#endif + + const ioport_extend_cfg_t * elc_cfg = p_instance_ctrl->p_cfg->p_extend; + + /* Get register address */ + R_PORT_COMMON_Type * p_ioport_regs = IOPORT_PRV_PORT_ADDRESS(IOPORT_REGION_SEL_NSAFE); + + /* Get port group number for the specified port */ + if (BSP_IO_PORT_16 == port) + { + portgroup = 0U; + } + else if (BSP_IO_PORT_18 == port) + { + portgroup = 1U; + } + else + { + /* Do Nothing */ + } + + /* Read current value of buffer value from ELC_PDBF register for the specified port group */ + *p_event_data = + (uint16_t) (p_ioport_regs->ELC_PDBF[portgroup].BY & elc_cfg->port_group_input_cfg[portgroup].pin_select); + + return FSP_SUCCESS; +} + +/*******************************************************************************************************************//** + * Reads the value of the event input data of a specific pin. Implements @ref ioport_api_t::pinEventInputRead. + * + * The pin event data is captured in response to a trigger from the ELC. This function enables this data to be read. + * Using the event system allows the captured data to be stored when it occurs and then read back at a later time. + * + * @retval FSP_SUCCESS Pin read + * @retval FSP_ERR_ASSERTION NULL pointer + * @retval FSP_ERR_NOT_OPEN The module has not been opened + * @retval FSP_ERR_INVALID_ARGUMENT Port is not valid ELC PORT. + **********************************************************************************************************************/ +fsp_err_t R_IOPORT_PinEventInputRead (ioport_ctrl_t * const p_ctrl, bsp_io_port_pin_t pin, bsp_io_level_t * p_pin_event) +{ + uint8_t portgroup = 0U; + uint8_t portvalue; + uint8_t mask; + +#if (1 == IOPORT_CFG_PARAM_CHECKING_ENABLE) + ioport_instance_ctrl_t * p_instance_ctrl = (ioport_instance_ctrl_t *) p_ctrl; + FSP_ASSERT(NULL != p_instance_ctrl); + FSP_ERROR_RETURN(IOPORT_OPEN == p_instance_ctrl->open, FSP_ERR_NOT_OPEN); + FSP_ASSERT(NULL != p_pin_event); + uint32_t port_number = pin >> IOPORT_PRV_PORT_OFFSET; + FSP_ERROR_RETURN((port_number == BSP_IO_PORT_16 >> IOPORT_PRV_PORT_OFFSET) || + (port_number == BSP_IO_PORT_18 >> IOPORT_PRV_PORT_OFFSET), + FSP_ERR_INVALID_ARGUMENT); +#else + FSP_PARAMETER_NOT_USED(p_ctrl); +#endif + + /* Get port and pin number */ + uint32_t port_num = (IOPORT_PRV_PORT_BITS & (ioport_size_t) pin); + uint32_t pin_num = (IOPORT_PRV_PIN_BITS & (ioport_size_t) pin); + + /* Get register address */ + R_PORT_COMMON_Type * p_ioport_regs = IOPORT_PRV_PORT_ADDRESS(IOPORT_REGION_SEL_NSAFE); + + /* Get port group number for the specified port */ + if (BSP_IO_PORT_16 == port_num) + { + portgroup = 0U; + } + else if (BSP_IO_PORT_18 == port_num) + { + portgroup = 1U; + } + else + { + /* Do Nothing */ + } + + /* Read current value of buffer value from ELC_PDBF register for the specified port group */ + portvalue = p_ioport_regs->ELC_PDBF[portgroup].BY; + mask = (uint8_t) (1U << pin_num); + + if ((portvalue & mask) == mask) + { + *p_pin_event = BSP_IO_LEVEL_HIGH; + } + else + { + *p_pin_event = BSP_IO_LEVEL_LOW; + } + + return FSP_SUCCESS; +} + +/*******************************************************************************************************************//** + * This function writes the set and reset event output data for a port. Implements + * @ref ioport_api_t::portEventOutputWrite. + * + * Using the event system enables a port state to be stored by this function in advance of being output on the port. + * The output to the port will occur when the ELC event occurs. + * + * The input value will be written to the specified port when an ELC event configured for that port occurs. + * Each bit in the value parameter corresponds to a bit on the port. For example, bit 7 corresponds to pin 7, + * bit 6 to pin 6, and so on. Each bit in the mask parameter corresponds to a pin on the port. + * + * @retval FSP_SUCCESS Port event data written + * @retval FSP_ERR_INVALID_ARGUMENT Port or Mask not valid + * @retval FSP_ERR_NOT_OPEN The module has not been opened + * @retval FSP_ERR_ASSERTION NULL pointer + **********************************************************************************************************************/ +fsp_err_t R_IOPORT_PortEventOutputWrite (ioport_ctrl_t * const p_ctrl, + bsp_io_port_t port, + ioport_size_t event_data, + ioport_size_t mask_value) +{ + uint8_t portgroup = 0U; + ioport_size_t temp_value; + +#if (1 == IOPORT_CFG_PARAM_CHECKING_ENABLE) + ioport_instance_ctrl_t * p_instance_ctrl = (ioport_instance_ctrl_t *) p_ctrl; + FSP_ASSERT(NULL != p_instance_ctrl); + FSP_ERROR_RETURN(IOPORT_OPEN == p_instance_ctrl->open, FSP_ERR_NOT_OPEN); + FSP_ERROR_RETURN(mask_value > (ioport_size_t) 0, FSP_ERR_INVALID_ARGUMENT); + FSP_ERROR_RETURN((port == BSP_IO_PORT_16) || (port == BSP_IO_PORT_18), FSP_ERR_INVALID_ARGUMENT); +#else + FSP_PARAMETER_NOT_USED(p_ctrl); +#endif + + R_BSP_PinAccessEnable(); // Unlock Register Write Protection + + /* Get register address */ + R_PORT_COMMON_Type * p_ioport_regs = IOPORT_PRV_PORT_ADDRESS(IOPORT_REGION_SEL_NSAFE); + + /* Get port group number for the specified port */ + if (BSP_IO_PORT_16 == port) + { + portgroup = 0U; + } + else if (BSP_IO_PORT_18 == port) + { + portgroup = 1U; + } + else + { + /* Do Nothing */ + } + + temp_value = p_ioport_regs->ELC_PDBF[portgroup].BY; + temp_value &= (ioport_size_t) (~mask_value); + + p_ioport_regs->ELC_PDBF[portgroup].BY = (uint8_t) (temp_value | event_data); + + R_BSP_PinAccessDisable(); // Lock Register Write Protection + + return FSP_SUCCESS; +} + +/**********************************************************************************************************************//** + * This function writes the event output data value to a pin. Implements @ref ioport_api_t::pinEventOutputWrite. + * + * Using the event system enables a pin state to be stored by this function in advance of being output on the pin. + * The output to the pin will occur when the ELC event occurs. + * + * @retval FSP_SUCCESS Pin event data written + * @retval FSP_ERR_INVALID_ARGUMENT Port or Pin or value not valid + * @retval FSP_ERR_NOT_OPEN The module has not been opened + * @retval FSP_ERR_ASSERTION NULL pointer + **********************************************************************************************************************/ +fsp_err_t R_IOPORT_PinEventOutputWrite (ioport_ctrl_t * const p_ctrl, bsp_io_port_pin_t pin, bsp_io_level_t pin_value) +{ + uint8_t singleport = 0U; + uint8_t cnt; + ioport_instance_ctrl_t * p_instance_ctrl = (ioport_instance_ctrl_t *) p_ctrl; + +#if (1 == IOPORT_CFG_PARAM_CHECKING_ENABLE) + FSP_ASSERT(NULL != p_instance_ctrl); + FSP_ERROR_RETURN(IOPORT_OPEN == p_instance_ctrl->open, FSP_ERR_NOT_OPEN); + FSP_ERROR_RETURN((pin_value == BSP_IO_LEVEL_HIGH) || (pin_value == BSP_IO_LEVEL_LOW), FSP_ERR_INVALID_ARGUMENT); + uint32_t port_number = pin >> IOPORT_PRV_PORT_OFFSET; + FSP_ERROR_RETURN((port_number == BSP_IO_PORT_16 >> IOPORT_PRV_PORT_OFFSET) || + (port_number == BSP_IO_PORT_18 >> IOPORT_PRV_PORT_OFFSET), + FSP_ERR_INVALID_ARGUMENT); +#endif + + const ioport_extend_cfg_t * elc_cfg = p_instance_ctrl->p_cfg->p_extend; + + R_BSP_PinAccessEnable(); // Unlock Register Write Protection + + /* Get register address */ + R_PORT_COMMON_Type * p_ioport_regs = IOPORT_PRV_PORT_ADDRESS(IOPORT_REGION_SEL_NSAFE); + + for (cnt = 0; cnt < IOPORT_SINGLE_PORT_NUM; cnt++) + { + if ((bsp_io_port_pin_t) elc_cfg->single_port_cfg[cnt].port_num == pin) + { + singleport = cnt; + } + } + + if (BSP_IO_LEVEL_HIGH == pin_value) + { + p_ioport_regs->ELC_PEL[singleport] |= (uint8_t) IOPORT_ELC_PEL_PSM_HIGH; + } + else + { + p_ioport_regs->ELC_PEL[singleport] &= (uint8_t) (~IOPORT_ELC_PEL_PSM_HIGH); + } + + R_BSP_PinAccessDisable(); // Lock Register Write Protection + + return FSP_SUCCESS; +} + +/*******************************************************************************************************************//** + * @} (end addtogroup IOPORT) + **********************************************************************************************************************/ + +/*********************************************************************************************************************** + * Private Functions + **********************************************************************************************************************/ + +/*******************************************************************************************************************//** + * Configures pins. + * + * @param[in] p_cfg Pin configuration data + **********************************************************************************************************************/ +void r_ioport_pins_config (const ioport_cfg_t * p_cfg) +{ + uint16_t pin_count; + ioport_cfg_t * p_pin_data; + + p_pin_data = (ioport_cfg_t *) p_cfg; + + R_BSP_PinAccessEnable(); // Unlock Register Write Protection + + for (pin_count = 0U; pin_count < p_pin_data->number_of_pins; pin_count++) + { + r_ioport_pin_set(p_pin_data->p_pin_cfg_data[pin_count].pin, + (ioport_cfg_data_t *) &p_pin_data->p_pin_cfg_data[pin_count].pin_cfg); + } + + R_BSP_PinAccessDisable(); // Lock Register Write Protection +} + +/*******************************************************************************************************************//** + * Writes to the specified pin's multiple registers + * + * @param[in] pin Pin to write parameter data for + * @param[in] p_cfg_data Value to be written to the multiple registers + * + **********************************************************************************************************************/ +static void r_ioport_pin_set (bsp_io_port_pin_t pin, ioport_cfg_data_t * p_cfg_data) +{ + R_PORT_COMMON_Type * p_ioport_regs; + uint32_t temp_value; + + /* Get port and pin number */ + uint32_t port = (IOPORT_PRV_PORT_BITS & (ioport_size_t) pin) >> IOPORT_PRV_PORT_OFFSET; + uint32_t pin_num = (IOPORT_PRV_PIN_BITS & (ioport_size_t) pin); + + /* Setting for Safety region or Non safety region */ + if (p_cfg_data->rsel_reg == 1U) // Setting for Non safety region + { + R_PTADR->RSELP[port] |= (uint8_t) (1U << pin_num); + p_ioport_regs = IOPORT_PRV_PORT_ADDRESS(IOPORT_REGION_SEL_NSAFE); + } + else // Setting for Safety region + { + R_PTADR->RSELP[port] &= (uint8_t) (~(1U << pin_num)); + p_ioport_regs = IOPORT_PRV_PORT_ADDRESS(IOPORT_REGION_SEL_SAFE); + } + + /* Setting DRCTL register */ + if (3U >= pin_num) + { + temp_value = p_ioport_regs->DRCTL[port].L & ~(IOPORT_DRTCL_BIT_MASK << (pin_num * 8U)); + p_ioport_regs->DRCTL[port].L = temp_value | (uint32_t) (p_cfg_data->drct_reg << (pin_num * 8U)); + } + else if (3U < pin_num) + { + temp_value = p_ioport_regs->DRCTL[port].H & ~(IOPORT_DRTCL_BIT_MASK << ((pin_num - 4U) * 8U)); + p_ioport_regs->DRCTL[port].H = temp_value | (uint32_t) (p_cfg_data->drct_reg << ((pin_num - 4U) * 8U)); + } + else + { + /* Do Nothing */ + } + + /* Setting for GPIO or peripheral */ + if (1U == p_cfg_data->pmc_reg) // Setting for peripheral + { + temp_value = p_ioport_regs->PFC[port] & ~(IOPORT_PFC_BIT_MASK << (pin_num * 4U)); + p_ioport_regs->PFC[port] = temp_value | (uint32_t) (p_cfg_data->pfc_reg << (pin_num * 4U)); // Setting PFC register + + /* Setting peripheral for port mode */ + p_ioport_regs->PMC[port] |= (uint8_t) (p_cfg_data->pmc_reg << pin_num); // Setting PMC register + } + else // Setting for GPIO + { + /* Setting GPIO for port mode */ + p_ioport_regs->PMC[port] &= (uint8_t) (~(1U << pin_num)); // Setting PMC register + + /* Setting for input or output */ + if (1U == p_cfg_data->pm_reg) // Setting for input + { + /* Setting PM register. */ + /* 01b: Input */ + temp_value = (uint32_t) (p_ioport_regs->PM[port] & ~(IOPORT_PM_BIT_MASK << (pin_num * 2U))); + p_ioport_regs->PM[port] = (uint16_t) (temp_value | (uint32_t) (1U << (pin_num * 2U))); + } + else if (1U < p_cfg_data->pm_reg) // Setting for two kinds of Output + { + /* Setting P register */ + if (0U == p_cfg_data->p_reg) // Low output setting + { + p_ioport_regs->P[port] &= (uint8_t) (~(1U << pin_num)); + } + else if (1U == p_cfg_data->p_reg) // High output setting + { + p_ioport_regs->P[port] |= (uint8_t) (1U << pin_num); + } + else + { + /* Do Nothing */ + } + + /* Setting PM register. */ + /* 10b: Output */ + /* 11b: Output(output data is input to input buffer) */ + temp_value = (uint32_t) (p_ioport_regs->PM[port] & ~(IOPORT_PM_BIT_MASK << (pin_num * 2U))); + p_ioport_regs->PM[port] = (uint16_t) (temp_value | (uint32_t) (p_cfg_data->pm_reg << (pin_num * 2U))); + } + else + { + /* Do Nothing */ + } + } +} + +/*******************************************************************************************************************//** + * Writes to the specified pin's multiple registers to generate event link function + * + * @param[in] p_extend_cfg_data Value to be written to the multiple registers + * + **********************************************************************************************************************/ +static void r_ioport_event_config (const ioport_extend_cfg_t * p_extend_cfg_data) +{ + uint8_t event_num; + uint8_t temp_value = 0x00; + uint8_t single_enable = 0x00; + uint8_t group_enable = 0x00; + R_PORT_COMMON_Type * p_ioport_regs; + ioport_extend_cfg_t * ex_cfg; + + ex_cfg = (ioport_extend_cfg_t *) p_extend_cfg_data; + + R_BSP_PinAccessEnable(); // Unlock Register Write Protection + + /* Get register address */ + p_ioport_regs = IOPORT_PRV_PORT_ADDRESS(IOPORT_REGION_SEL_NSAFE); + + /* Single port configuration */ + for (event_num = 0U; event_num < IOPORT_SINGLE_PORT_NUM; event_num++) + { + uint8_t port = + (uint8_t) ((ex_cfg->single_port_cfg[event_num].port_num & IOPORT_PRV_PORT_BITS) >> IOPORT_PRV_PORT_OFFSET); + uint8_t pin_num = (uint8_t) ex_cfg->single_port_cfg[event_num].port_num & IOPORT_PRV_PIN_BITS; + + temp_value = p_ioport_regs->ELC_PEL[event_num] & IOPORT_ELC_PEL_MASK; + + /* Port selection */ + if ((BSP_IO_PORT_16 >> IOPORT_PRV_PORT_OFFSET) == port) + { + temp_value |= 1U << 3; + } + else if ((BSP_IO_PORT_18 >> IOPORT_PRV_PORT_OFFSET) == port) + { + temp_value |= 1U << 4; + } + else + { + /* Do Nothing */ + } + + temp_value |= pin_num; // Pin number setting + + /* When the pin specified as single input port, Set edge detection */ + /* When the pin specified as single output port, Set output operation */ + if (IOPORT_EVENT_DIRECTION_INPUT == ex_cfg->single_port_cfg[event_num].direction) + { + temp_value |= (uint8_t) (ex_cfg->single_port_cfg[event_num].edge_detection << 5); // Edge detection + + /* Edge detection enable */ + p_ioport_regs->ELC_DPTC |= (uint8_t) (1U << event_num); + } + else + { + temp_value |= (uint8_t) (ex_cfg->single_port_cfg[event_num].operation << 5); // Output operation + } + + /* Set to ELC port setting register */ + p_ioport_regs->ELC_PEL[event_num] = temp_value; + + /* Single port event link function enable */ + if (IOPORT_EVENT_CONTROL_ENABLE == ex_cfg->single_port_cfg[event_num].event_control) + { + single_enable |= (uint8_t) (1U << event_num); + } + } + + /* Port group configuration */ + for (event_num = 0U; event_num < IOPORT_PORT_GROUP_NUM; event_num++) + { + /* Pin selection */ + uint8_t group_pin = ex_cfg->port_group_input_cfg[event_num].pin_select | + ex_cfg->port_group_output_cfg[event_num].pin_select; + p_ioport_regs->ELC_PGR[event_num] = group_pin; + + if (IOPORT_EVENT_CONTROL_ENABLE == ex_cfg->port_group_input_cfg[event_num].event_control) + { + /* Input port group control */ + temp_value = p_ioport_regs->ELC_PGC[event_num] & IOOPRT_ELC_PGC_MASK; + temp_value |= ex_cfg->port_group_input_cfg[event_num].edge_detection; // Edge detection + temp_value |= (uint8_t) (ex_cfg->port_group_input_cfg[event_num].overwrite_control << 2U); // Overwrite setting + + /* Buffer register initialization */ + p_ioport_regs->ELC_PDBF[event_num].BY = ex_cfg->port_group_input_cfg[event_num].buffer_init_value; + + /* Input port group event link function enable */ + group_enable |= (uint8_t) (1U << event_num); + } + + /* Output port group operation */ + temp_value |= (uint8_t) (ex_cfg->port_group_output_cfg[event_num].operation << 4); + + /* Set to port group control register */ + p_ioport_regs->ELC_PGC[event_num] = temp_value; + } + + /* Set to ELC port event control register */ + p_ioport_regs->ELC_ELSR2 = (uint8_t) ((single_enable << 4) | (group_enable << 2)); + + R_BSP_PinAccessDisable(); // Lock Register Write Protection +} diff --git a/bsp/renesas/rzn2l_rsk/rzn/fsp/src/r_sci_uart/r_sci_uart.c b/bsp/renesas/rzn2l_rsk/rzn/fsp/src/r_sci_uart/r_sci_uart.c new file mode 100644 index 0000000000..dff83ec6b7 --- /dev/null +++ b/bsp/renesas/rzn2l_rsk/rzn/fsp/src/r_sci_uart/r_sci_uart.c @@ -0,0 +1,1934 @@ +/*********************************************************************************************************************** + * Copyright [2020-2024] Renesas Electronics Corporation and/or its affiliates. All Rights Reserved. + * + * This software and documentation are supplied by Renesas Electronics Corporation and/or its affiliates and may only + * be used with products of Renesas Electronics Corp. and its affiliates ("Renesas"). No other uses are authorized. + * Renesas products are sold pursuant to Renesas terms and conditions of sale. Purchasers are solely responsible for + * the selection and use of Renesas products and Renesas assumes no liability. No license, express or implied, to any + * intellectual property right is granted by Renesas. This software is protected under all applicable laws, including + * copyright laws. Renesas reserves the right to change or discontinue this software and/or this documentation. + * THE SOFTWARE AND DOCUMENTATION IS DELIVERED TO YOU "AS IS," AND RENESAS MAKES NO REPRESENTATIONS OR WARRANTIES, AND + * TO THE FULLEST EXTENT PERMISSIBLE UNDER APPLICABLE LAW, DISCLAIMS ALL WARRANTIES, WHETHER EXPLICITLY OR IMPLICITLY, + * INCLUDING WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE, AND NONINFRINGEMENT, WITH RESPECT TO THE + * SOFTWARE OR DOCUMENTATION. RENESAS SHALL HAVE NO LIABILITY ARISING OUT OF ANY SECURITY VULNERABILITY OR BREACH. + * TO THE MAXIMUM EXTENT PERMITTED BY LAW, IN NO EVENT WILL RENESAS BE LIABLE TO YOU IN CONNECTION WITH THE SOFTWARE OR + * DOCUMENTATION (OR ANY PERSON OR ENTITY CLAIMING RIGHTS DERIVED FROM YOU) FOR ANY LOSS, DAMAGES, OR CLAIMS WHATSOEVER, + * INCLUDING, WITHOUT LIMITATION, ANY DIRECT, CONSEQUENTIAL, SPECIAL, INDIRECT, PUNITIVE, OR INCIDENTAL DAMAGES; ANY + * LOST PROFITS, OTHER ECONOMIC DAMAGE, PROPERTY DAMAGE, OR PERSONAL INJURY; AND EVEN IF RENESAS HAS BEEN ADVISED OF THE + * POSSIBILITY OF SUCH LOSS, DAMAGES, CLAIMS OR COSTS. + **********************************************************************************************************************/ + +/*********************************************************************************************************************** + * Includes + **********************************************************************************************************************/ +#include "bsp_api.h" +#include "r_sci_uart.h" +#include + +#if SCI_UART_CFG_DMAC_SUPPORTED + #include "r_dmac.h" +#endif + +/*********************************************************************************************************************** + * Macro definitions + **********************************************************************************************************************/ +#ifndef SCI_UART_CFG_RX_ENABLE + #define SCI_UART_CFG_RX_ENABLE 1 +#endif +#ifndef SCI_UART_CFG_TX_ENABLE + #define SCI_UART_CFG_TX_ENABLE 1 +#endif + +/** Number of divisors in the data table used for baud rate calculation. */ +#define SCI_UART_NUM_DIVISORS_ASYNC (13U) + +/** Valid range of values for the modulation duty register is 128 - 256 (256 = modulation disabled). */ +#define SCI_UART_MDDR_MIN (128U) +#define SCI_UART_MDDR_MAX (256U) + +/** The bit rate register is 8-bits, so the maximum value is 255. */ +#define SCI_UART_BRR_MAX (255U) + +/** No limit to the number of bytes to read or write if DMAC is not used. */ +#define SCI_UART_MAX_READ_WRITE_NO_DMAC (0xFFFFFFFFU) + +/** Mask of invalid data bits in 9-bit mode. */ +#define SCI_UART_ALIGN_2_BYTES (0x1U) + +/** Clock frequency 96MHz. */ +#define SCI_UART_CLOCK_96MHZ (96000000) + +/** "SCIU" in ASCII. Used to determine if the control block is open. */ +#define SCI_UART_OPEN (0x53434955U) + +#define SCI_UART_BRR_DEFAULT_VALUE (0xFFU) +#define SCI_UART_MDDR_DEFAULT_VALUE (0xFFU) +#define SCI_UART_FCR_DEFAULT_VALUE (0x1F1F0000) + +#define SCI_UART_CCR0_DEFAULT_VALUE (0x00000000) +#define SCI_UART_CCR1_DEFAULT_VALUE (0x00000010) +#define SCI_UART_CCR2_DEFAULT_VALUE (0xFF00FF04) +#define SCI_UART_CCR3_DEFAULT_VALUE (0x00001203) +#define SCI_UART_CCR4_DEFAULT_VALUE (0x00000000) + +#define SCI_UART_CFCLR_ALL_FLAG_CLEAR (0xBD070010) +#define SCI_UART_FFCLR_ALL_FLAG_CLEAR (0x00000001) + +/** SCI CCR0 register bit masks */ +#define SCI_UART_CCR0_IDSEL_MASK (0x00000400) +#define SCI_UART_CCR0_TEIE_MASK (0x00200000) +#define SCI_UART_CCR0_RE_MASK (0x00000001) +#define SCI_UART_CCR0_TE_MASK (0x00000010) +#define SCI_UART_CCR0_RIE_MASK (0x00010000) +#define SCI_UART_CCR0_TIE_MASK (0x00100000) + +/** SCI CCR1 register bit offsets */ +#define SCI_UART_CCR1_CTSE_OFFSET (0U) +#define SCI_UART_CCR1_SPB2DT_BIT (4U) +#define SCI_UART_CCR1_OUTPUT_ENABLE_MASK (0x00000020) +#define SCI_UART_CCR1_PARITY_OFFSET (8U) +#define SCI_UART_CCR1_PARITY_MASK (0x00000300U) +#define SCI_UART_CCR1_FLOW_CTSRTS_MASK (0x00000003U) +#define SCI_UART_CCR1_NFCS_OFFSET (24U) +#define SCI_UART_CCR1_NFCS_VALUE_MASK (0x07U) +#define SCI_UART_CCR1_NFEN_OFFSET (28U) + +/** SCI CCR2 register bit offsets */ +#define SCI_UART_CCR2_BRME_OFFSET (16U) +#define SCI_UART_CCR2_ABCSE_OFFSET (6U) +#define SCI_UART_CCR2_ABCS_OFFSET (5U) +#define SCI_UART_CCR2_BDGM_OFFSET (4U) +#define SCI_UART_CCR2_CKS_OFFSET (20U) +#define SCI_UART_CCR2_CKS_VALUE_MASK (0x03U) ///< CKS: 2 bits +#define SCI_UART_CCR2_BRR_OFFSET (8U) +#define SCI_UART_CCR2_BRR_VALUE_MASK (0xFFU) ///< BRR: 8bits +#define SCI_UART_CCR2_MDDR_OFFSET (24U) +#define SCI_UART_CCR2_MDDR_VALUE_MASK (0xFFU) ///< MDDR: 8bits + +#define SCI_UART_CCR2_BAUD_SETTING_MASK ((1U << SCI_UART_CCR2_BRME_OFFSET) | \ + (1U << SCI_UART_CCR2_ABCSE_OFFSET) | \ + (1U << SCI_UART_CCR2_ABCS_OFFSET) | \ + (1U << SCI_UART_CCR2_BDGM_OFFSET) | \ + (SCI_UART_CCR2_CKS_VALUE_MASK << SCI_UART_CCR2_CKS_OFFSET) | \ + (SCI_UART_CCR2_BRR_VALUE_MASK << SCI_UART_CCR2_BRR_OFFSET) | \ + (SCI_UART_CCR2_MDDR_VALUE_MASK << SCI_UART_CCR2_MDDR_OFFSET)) + +/** SCI CCR3 register bit masks */ +#define SCI_UART_CCR3_BPEN_OFFSET (7U) +#define SCI_UART_CCR3_CHR_OFFSET (8U) +#define SCI_UART_CCR3_STP_OFFSET (14U) +#define SCI_UART_CCR3_RxDSEL_OFFSET (15U) +#define SCI_UART_CCR3_FM_OFFSET (20U) +#define SCI_UART_CCR3_CKE_OFFSET (24U) +#define SCI_UART_CCR3_CKE_MASK (0x03000000U) +#define SCI_UART_CCR3_CKE_VALUE_MASK (0x03U) + +/** SCI CSR register receiver error bit masks */ +#define SCI_UART_CSR_ORER_MASK (0x01000000) +#define SCI_UART_CSR_FER_MASK (0x10000000) +#define SCI_UART_CSR_PER_MASK (0x08000000) +#define SCI_UART_RCVR_ERR_MASK (SCI_UART_CSR_ORER_MASK | SCI_UART_CSR_FER_MASK | SCI_UART_CSR_PER_MASK) + +/** SCI CFCLR register receiver clear error bit masks */ +#define SCI_UART_CFCLR_ORERC_MASK (0x01000000) +#define SCI_UART_CFCLR_FERC_MASK (0x10000000) +#define SCI_UART_CFCLE_PERC_MASK (0x08000000) +#define SCI_UART_RCVR_ERRCLR_MASK (SCI_UART_CFCLR_ORERC_MASK | SCI_UART_CFCLR_FERC_MASK | \ + SCI_UART_CFCLE_PERC_MASK) + +#define SCI_REG_SIZE (R_SCI1_BASE - R_SCI0_BASE) + +#define SCI_UART_INVALID_8BIT_PARAM (0xFFU) +#define SCI_UART_INVALID_16BIT_PARAM (0xFFFFU) + +#define SCI_UART_TDR_9BIT_MASK (0x1FFU) + +#define SCI_UART_FCR_TRIGGER_MASK (0xF) +#define SCI_UART_FCR_RSTRG_OFFSET (24U) +#define SCI_UART_FCR_RTRG_OFFSET (16U) +#define SCI_UART_FCR_TTRG_OFFSET (8U) +#define SCI_UART_FCR_TTRG_DMAC_VALUE (0x0F) +#define SCI_UART_FCR_RESET_TX_RX (0x00808000) + +#define SCI_UART_DMAC_MAX_TRANSFER (0xFFFFFFFFU) + +/*********************************************************************************************************************** + * Private constants + **********************************************************************************************************************/ +static const int32_t SCI_UART_100_PERCENT_X_1000 = 100000; +static const int32_t SCI_UART_MDDR_DIVISOR = 256; + +#if (SCI_UART_CFG_PARAM_CHECKING_ENABLE) +static const uint32_t SCI_UART_MAX_BAUD_RATE_ERROR_X_1000 = 15000; +#endif + +/*********************************************************************************************************************** + * Typedef definitions + **********************************************************************************************************************/ +typedef struct st_baud_setting_const_t +{ + uint8_t bgdm : 1; /**< BGDM value to get divisor */ + uint8_t abcs : 1; /**< ABCS value to get divisor */ + uint8_t abcse : 1; /**< ABCSE value to get divisor */ + uint8_t cks : 2; /**< CKS value to get divisor (CKS = N) */ +} baud_setting_const_t; + +/*********************************************************************************************************************** + * Private function prototypes + **********************************************************************************************************************/ +#if (SCI_UART_CFG_PARAM_CHECKING_ENABLE) + +static fsp_err_t r_sci_read_write_param_check(sci_uart_instance_ctrl_t const * const p_instance_ctrl, + uint8_t const * const addr, + uint32_t const bytes); + +#endif + +static void r_sci_uart_config_set(sci_uart_instance_ctrl_t * const p_instance_ctrl, uart_cfg_t const * const p_cfg); + +#if SCI_UART_CFG_DMAC_SUPPORTED +static fsp_err_t r_sci_uart_transfer_configure(sci_uart_instance_ctrl_t * const p_instance_ctrl, + transfer_instance_t const * p_transfer, + uint32_t * p_transfer_reg, + uint32_t address); + +static fsp_err_t r_sci_uart_transfer_open(sci_uart_instance_ctrl_t * const p_instance_ctrl, + uart_cfg_t const * const p_cfg); + +static void r_sci_uart_transfer_close(sci_uart_instance_ctrl_t * p_instance_ctrl); + +#endif + +static void r_sci_uart_baud_set(R_SCI0_Type * p_sci_reg, sci_baud_setting_t const * const p_baud_setting); +static void r_sci_uart_call_callback(sci_uart_instance_ctrl_t * p_instance_ctrl, uint32_t data, uart_event_t event); + +#if SCI_UART_CFG_FIFO_SUPPORT +static void r_sci_uart_fifo_cfg(sci_uart_instance_ctrl_t * const p_instance_ctrl); + +#endif + +static void r_sci_irq_cfg(sci_uart_instance_ctrl_t * const p_instance_ctrl, uint8_t const ipl, IRQn_Type const p_irq); + +static void r_sci_irqs_cfg(sci_uart_instance_ctrl_t * const p_instance_ctrl, uart_cfg_t const * const p_cfg); + +#if (SCI_UART_CFG_TX_ENABLE) +void r_sci_uart_write_no_transfer(sci_uart_instance_ctrl_t * const p_instance_ctrl); + +#endif + +#if (SCI_UART_CFG_RX_ENABLE) +void r_sci_uart_rxi_read_no_transfer(sci_uart_instance_ctrl_t * const p_instance_ctrl); + +static void sci_uart_rxi_common(sci_uart_instance_ctrl_t * p_instance_ctrl); + +void sci_uart_rxi_isr(void); + +void sci_uart_rx_dmac_callback(sci_uart_instance_ctrl_t * p_instance_ctrl); + +void r_sci_uart_read_data(sci_uart_instance_ctrl_t * const p_instance_ctrl, uint32_t * const p_data); + +void sci_uart_eri_isr(void); + +#endif + +#if (SCI_UART_CFG_TX_ENABLE) +static void sci_uart_txi_common(sci_uart_instance_ctrl_t * p_instance_ctrl); + +void sci_uart_txi_isr(void); + +void sci_uart_tx_dmac_callback(sci_uart_instance_ctrl_t * p_instance_ctrl); + +void sci_uart_tei_isr(void); + +#endif + +/*********************************************************************************************************************** + * Private global variables + **********************************************************************************************************************/ + +/** Name of module used by error logger macro */ +#if BSP_CFG_ERROR_LOG != 0 +static const char g_module_name[] = "sci_uart"; +#endif + +/** Baud rate divisor information (UART mode) */ +static const baud_setting_const_t g_async_baud[SCI_UART_NUM_DIVISORS_ASYNC] = +{ + {0U, 0U, 1U, 0U}, /* BGDM, ABCS, ABCSE, n */ + {1U, 1U, 0U, 0U}, + {1U, 0U, 0U, 0U}, + {0U, 0U, 1U, 1U}, + {0U, 0U, 0U, 0U}, + {1U, 0U, 0U, 1U}, + {0U, 0U, 1U, 2U}, + {0U, 0U, 0U, 1U}, + {1U, 0U, 0U, 2U}, + {0U, 0U, 1U, 3U}, + {0U, 0U, 0U, 2U}, + {1U, 0U, 0U, 3U}, + {0U, 0U, 0U, 3U} +}; + +static const uint16_t g_div_coefficient[SCI_UART_NUM_DIVISORS_ASYNC] = +{ + 6U, + 8U, + 16U, + 24U, + 32U, + 64U, + 96U, + 128U, + 256U, + 384U, + 512U, + 1024U, + 2048U, +}; + +/** UART on SCI HAL API mapping for UART interface */ +const uart_api_t g_uart_on_sci = +{ + .open = R_SCI_UART_Open, + .close = R_SCI_UART_Close, + .write = R_SCI_UART_Write, + .read = R_SCI_UART_Read, + .infoGet = R_SCI_UART_InfoGet, + .baudSet = R_SCI_UART_BaudSet, + .communicationAbort = R_SCI_UART_Abort, + .callbackSet = R_SCI_UART_CallbackSet, + .readStop = R_SCI_UART_ReadStop, +}; + +/*******************************************************************************************************************//** + * @addtogroup SCI_UART + * @{ + **********************************************************************************************************************/ + +/*********************************************************************************************************************** + * Functions + **********************************************************************************************************************/ + +/*******************************************************************************************************************//** + * Configures the UART driver based on the input configurations. If reception is enabled at compile time, reception is + * enabled at the end of this function. Implements @ref uart_api_t::open + * + * @retval FSP_SUCCESS Channel opened successfully. + * @retval FSP_ERR_ASSERTION Pointer to UART control block or configuration structure is NULL. + * @retval FSP_ERR_IP_CHANNEL_NOT_PRESENT The requested channel does not exist on this MCU. + * @retval FSP_ERR_ALREADY_OPEN Control block has already been opened or channel is being used by another + * instance. Call close() then open() to reconfigure. + * @retval FSP_ERR_INVALID_ARGUMENT Invalid input parameter. + * + * @return See @ref RENESAS_ERROR_CODES or functions called by this function for other possible + * return codes. This function calls: + * * @ref transfer_api_t::open + **********************************************************************************************************************/ +fsp_err_t R_SCI_UART_Open (uart_ctrl_t * const p_ctrl, uart_cfg_t const * const p_cfg) +{ + sci_uart_instance_ctrl_t * p_instance_ctrl = (sci_uart_instance_ctrl_t *) p_ctrl; + +#if (SCI_UART_CFG_PARAM_CHECKING_ENABLE) + + /* Check parameters. */ + FSP_ASSERT(p_instance_ctrl); + FSP_ASSERT(p_cfg); + FSP_ASSERT(p_cfg->p_callback); + FSP_ASSERT(p_cfg->p_extend); + FSP_ASSERT(((sci_uart_extended_cfg_t *) p_cfg->p_extend)->p_baud_setting); + FSP_ERROR_RETURN(SCI_UART_OPEN != p_instance_ctrl->open, FSP_ERR_ALREADY_OPEN); + + /* Make sure this channel exists. */ + FSP_ERROR_RETURN(BSP_FEATURE_SCI_CHANNELS & (1U << p_cfg->channel), FSP_ERR_IP_CHANNEL_NOT_PRESENT); + + #if SCI_UART_CFG_DMAC_SUPPORTED + #if (SCI_UART_CFG_RX_ENABLE) + if (NULL != p_cfg->p_transfer_rx) + { + /* DMAC activation is not available for safety channel. */ + FSP_ERROR_RETURN(BSP_FEATURE_SCI_SAFETY_CHANNEL != p_cfg->channel, FSP_ERR_INVALID_ARGUMENT); + } + #endif + #if (SCI_UART_CFG_TX_ENABLE) + if (NULL != p_cfg->p_transfer_tx) + { + /* DMAC activation is not available for safety channel. */ + FSP_ERROR_RETURN(BSP_FEATURE_SCI_SAFETY_CHANNEL != p_cfg->channel, FSP_ERR_INVALID_ARGUMENT); + } + #endif + #endif + + if (SCI_UART_FLOW_CONTROL_CTSRTS == ((sci_uart_extended_cfg_t *) p_cfg->p_extend)->flow_control) + { + FSP_ERROR_RETURN( + ((sci_uart_extended_cfg_t *) p_cfg->p_extend)->flow_control_pin != (bsp_io_port_pin_t) SCI_UART_INVALID_16BIT_PARAM, + FSP_ERR_INVALID_ARGUMENT); + } + + if (SCI_UART_FLOW_CONTROL_HARDWARE_CTSRTS == ((sci_uart_extended_cfg_t *) p_cfg->p_extend)->flow_control) + { + FSP_ERROR_RETURN((0U != (((1U << (p_cfg->channel)) & BSP_FEATURE_SCI_UART_CSTPEN_CHANNELS))), + FSP_ERR_INVALID_ARGUMENT); + } + + FSP_ASSERT(UART_PARITY_ZERO != p_cfg->parity); + FSP_ASSERT(p_cfg->rxi_irq >= 0); + FSP_ASSERT(p_cfg->txi_irq >= 0); + FSP_ASSERT(p_cfg->tei_irq >= 0); + FSP_ASSERT(p_cfg->eri_irq >= 0); +#endif + + p_instance_ctrl->fifo_depth = 0U; +#if SCI_UART_CFG_FIFO_SUPPORT + + /* Check if the channel supports fifo */ + if (BSP_FEATURE_SCI_UART_FIFO_CHANNELS & (1U << p_cfg->channel)) + { + p_instance_ctrl->fifo_depth = BSP_FEATURE_SCI_UART_FIFO_DEPTH; + } +#endif + + p_instance_ctrl->p_cfg = p_cfg; + + p_instance_ctrl->p_callback = p_cfg->p_callback; + p_instance_ctrl->p_context = p_cfg->p_context; + p_instance_ctrl->p_callback_memory = NULL; + sci_uart_extended_cfg_t * p_extend = (sci_uart_extended_cfg_t *) p_cfg->p_extend; + + p_instance_ctrl->data_bytes = 1U; + if (UART_DATA_BITS_9 == p_cfg->data_bits) + { + p_instance_ctrl->data_bytes = 2U; + } + + /* Configure the interrupts. */ + r_sci_irqs_cfg(p_instance_ctrl, p_cfg); + + /* Enable the SCI channel and reset the registers to their initial state. */ + R_BSP_RegisterProtectDisable(BSP_REG_PROTECT_LPC_RESET); + R_BSP_MODULE_START(FSP_IP_SCI, p_cfg->channel); + R_BSP_RegisterProtectEnable(BSP_REG_PROTECT_LPC_RESET); + + if (p_cfg->channel != BSP_FEATURE_SCI_SAFETY_CHANNEL) + { + /* Non-Safety Peripheral */ + p_instance_ctrl->p_reg = + (R_SCI0_Type *) ((uint32_t) R_SCI0 + (p_cfg->channel * ((uint32_t) R_SCI1 - (uint32_t) R_SCI0))); + } + else + { + /* Safety Peripheral */ + p_instance_ctrl->p_reg = (R_SCI0_Type *) BSP_FEATURE_SCI_SAFETY_CHANNEL_BASE_ADDRESS; + } + +#if SCI_UART_CFG_DMAC_SUPPORTED + + /* Configure the transfer interface for transmission and reception if provided. */ + fsp_err_t err = r_sci_uart_transfer_open(p_instance_ctrl, p_cfg); + + FSP_ERROR_RETURN(FSP_SUCCESS == err, err); +#endif + + p_instance_ctrl->p_reg->CCR0 = SCI_UART_CCR0_DEFAULT_VALUE; + FSP_HARDWARE_REGISTER_WAIT(p_instance_ctrl->p_reg->CCR0_b.RE, 0); + FSP_HARDWARE_REGISTER_WAIT(p_instance_ctrl->p_reg->CCR0_b.TE, 0); + p_instance_ctrl->p_reg->CCR1 = SCI_UART_CCR1_DEFAULT_VALUE; + p_instance_ctrl->p_reg->CCR2 = SCI_UART_CCR2_DEFAULT_VALUE; + p_instance_ctrl->p_reg->CCR3 = SCI_UART_CCR3_DEFAULT_VALUE; + p_instance_ctrl->p_reg->CCR4 = SCI_UART_CCR4_DEFAULT_VALUE; + + /* Set the UART configuration settings provided in ::uart_cfg_t and ::sci_uart_extended_cfg_t. */ + r_sci_uart_config_set(p_instance_ctrl, p_cfg); + + p_instance_ctrl->p_reg->CFCLR = SCI_UART_CFCLR_ALL_FLAG_CLEAR; + +#if SCI_UART_CFG_FIFO_SUPPORT + p_instance_ctrl->p_reg->FFCLR = SCI_UART_FFCLR_ALL_FLAG_CLEAR; +#endif + + p_instance_ctrl->p_tx_src = NULL; + p_instance_ctrl->tx_src_bytes = 0U; + p_instance_ctrl->p_rx_dest = NULL; + p_instance_ctrl->rx_dest_bytes = 0; + + uint32_t ccr0 = SCI_UART_CCR0_IDSEL_MASK; +#if (SCI_UART_CFG_RX_ENABLE) + + /* If reception is enabled at build time, enable reception. */ + /* NOTE: Transmitter and its interrupt are enabled in R_SCI_UART_Write(). */ + R_BSP_IrqEnable(p_instance_ctrl->p_cfg->rxi_irq); + R_BSP_IrqEnable(p_instance_ctrl->p_cfg->eri_irq); + + ccr0 |= (SCI_UART_CCR0_RIE_MASK | SCI_UART_CCR0_RE_MASK); +#endif + +#if (SCI_UART_CFG_TX_ENABLE) + R_BSP_IrqEnable(p_instance_ctrl->p_cfg->txi_irq); + R_BSP_IrqEnable(p_instance_ctrl->p_cfg->tei_irq); + + ccr0 |= SCI_UART_CCR0_TE_MASK; +#endif + p_instance_ctrl->p_reg->CCR0 = ccr0; + + FSP_HARDWARE_REGISTER_WAIT(p_instance_ctrl->p_reg->CCR0_b.RE, 1); + FSP_HARDWARE_REGISTER_WAIT(p_instance_ctrl->p_reg->CCR0_b.TE, 1); + + /* Set flow control pins. */ + p_instance_ctrl->flow_pin = p_extend->flow_control_pin; + +#if SCI_UART_CFG_FLOW_CONTROL_SUPPORT + if (p_instance_ctrl->flow_pin != (bsp_io_port_pin_t) SCI_UART_INVALID_16BIT_PARAM) + { + R_BSP_PinAccessEnable(); + R_BSP_PinClear(R_BSP_IoRegionGet(p_instance_ctrl->flow_pin), p_instance_ctrl->flow_pin); + R_BSP_PinAccessDisable(); + } +#endif + + p_instance_ctrl->open = SCI_UART_OPEN; + + return FSP_SUCCESS; +} + +/*******************************************************************************************************************//** + * Aborts any in progress transfers. Disables interrupts, receiver, and transmitter. Closes lower level transfer + * drivers if used. Removes power. Implements @ref uart_api_t::close + * + * @retval FSP_SUCCESS Channel successfully closed. + * @retval FSP_ERR_ASSERTION Pointer to UART control block is NULL. + * @retval FSP_ERR_NOT_OPEN The control block has not been opened + **********************************************************************************************************************/ +fsp_err_t R_SCI_UART_Close (uart_ctrl_t * const p_ctrl) +{ + sci_uart_instance_ctrl_t * p_instance_ctrl = (sci_uart_instance_ctrl_t *) p_ctrl; +#if (SCI_UART_CFG_PARAM_CHECKING_ENABLE) + FSP_ASSERT(p_instance_ctrl); + FSP_ERROR_RETURN(SCI_UART_OPEN == p_instance_ctrl->open, FSP_ERR_NOT_OPEN); +#endif + + /* Mark the channel not open so other APIs cannot use it. */ + p_instance_ctrl->open = 0U; + + /* Disable interrupts, receiver, and transmitter. Disable baud clock output.*/ + p_instance_ctrl->p_reg->CCR0 = SCI_UART_CCR0_DEFAULT_VALUE; + FSP_HARDWARE_REGISTER_WAIT(p_instance_ctrl->p_reg->CCR0_b.RE, 0); + FSP_HARDWARE_REGISTER_WAIT(p_instance_ctrl->p_reg->CCR0_b.TE, 0); + p_instance_ctrl->p_reg->CCR3 &= ~(SCI_UART_CCR3_CKE_MASK); + +#if (SCI_UART_CFG_RX_ENABLE) + + /* If reception is enabled at build time, disable reception irqs. */ + R_BSP_IrqDisable(p_instance_ctrl->p_cfg->rxi_irq); + R_BSP_IrqDisable(p_instance_ctrl->p_cfg->eri_irq); +#endif +#if (SCI_UART_CFG_TX_ENABLE) + + /* If transmission is enabled at build time, disable transmission irqs. */ + R_BSP_IrqDisable(p_instance_ctrl->p_cfg->txi_irq); + R_BSP_IrqDisable(p_instance_ctrl->p_cfg->tei_irq); +#endif +#if SCI_UART_CFG_DMAC_SUPPORTED + + /* Close the lower level transfer instances. */ + r_sci_uart_transfer_close(p_instance_ctrl); +#endif + + /* Remove power to the channel. */ + /* Disable the clock to the SCI channel. */ + R_BSP_RegisterProtectDisable(BSP_REG_PROTECT_LPC_RESET); + R_BSP_MODULE_STOP(FSP_IP_SCI, p_instance_ctrl->p_cfg->channel); + R_BSP_RegisterProtectEnable(BSP_REG_PROTECT_LPC_RESET); + + return FSP_SUCCESS; +} + +/*******************************************************************************************************************//** + * Receives user specified number of bytes into destination buffer pointer. Implements @ref uart_api_t::read + * + * @retval FSP_SUCCESS Data reception successfully ends. + * @retval FSP_ERR_ASSERTION Pointer to UART control block is NULL. + * @retval FSP_ERR_INVALID_ARGUMENT Destination address or data size is not valid for 9-bit mode. + * @retval FSP_ERR_NOT_OPEN The control block has not been opened + * @retval FSP_ERR_IN_USE A previous read operation is still in progress. + * @retval FSP_ERR_UNSUPPORTED SCI_UART_CFG_RX_ENABLE is set to 0 + * + * @return See @ref RENESAS_ERROR_CODES or functions called by this function for other possible + * return codes. This function calls: + * * @ref transfer_api_t::reconfigure + * + * @note If 9-bit data length is specified at R_SCI_UART_Open call, p_dest must be aligned 16-bit boundary. + **********************************************************************************************************************/ +fsp_err_t R_SCI_UART_Read (uart_ctrl_t * const p_ctrl, uint8_t * const p_dest, uint32_t const bytes) +{ +#if (SCI_UART_CFG_RX_ENABLE) + sci_uart_instance_ctrl_t * p_instance_ctrl = (sci_uart_instance_ctrl_t *) p_ctrl; + fsp_err_t err = FSP_SUCCESS; + + #if (SCI_UART_CFG_PARAM_CHECKING_ENABLE) + err = r_sci_read_write_param_check(p_instance_ctrl, p_dest, bytes); + FSP_ERROR_RETURN(FSP_SUCCESS == err, err); + FSP_ERROR_RETURN(0U == p_instance_ctrl->rx_dest_bytes, FSP_ERR_IN_USE); + #endif + + #if SCI_UART_CFG_DMAC_SUPPORTED + + /* Configure transfer instance to receive the requested number of bytes if transfer is used for reception. */ + if (NULL != p_instance_ctrl->p_cfg->p_transfer_rx) + { + p_instance_ctrl->p_cfg->p_transfer_rx->p_cfg->p_info->p_dest = (void *) p_dest; + p_instance_ctrl->p_cfg->p_transfer_rx->p_cfg->p_info->length = bytes; + + /* Disable the corresponding IRQ when transferring using DMAC. */ + R_BSP_IrqDisable(p_instance_ctrl->p_cfg->rxi_irq); + + err = p_instance_ctrl->p_cfg->p_transfer_rx->p_api->reconfigure(p_instance_ctrl->p_cfg->p_transfer_rx->p_ctrl, + p_instance_ctrl->p_cfg->p_transfer_rx->p_cfg->p_info); + FSP_ERROR_RETURN(FSP_SUCCESS == err, err); + } + #endif + + /* Save the destination address and size for use in rxi_isr. */ + p_instance_ctrl->p_rx_dest = p_dest; + p_instance_ctrl->rx_dest_bytes = bytes; + + return err; +#else + FSP_PARAMETER_NOT_USED(p_ctrl); + FSP_PARAMETER_NOT_USED(p_dest); + FSP_PARAMETER_NOT_USED(bytes); + + return FSP_ERR_UNSUPPORTED; +#endif +} + +/*******************************************************************************************************************//** + * Transmits user specified number of bytes from the source buffer pointer. Implements @ref uart_api_t::write + * + * @retval FSP_SUCCESS Data transmission finished successfully. + * @retval FSP_ERR_ASSERTION Pointer to UART control block is NULL. + * @retval FSP_ERR_INVALID_ARGUMENT Source address or data size is not valid for 9-bit mode. + * @retval FSP_ERR_NOT_OPEN The control block has not been opened + * @retval FSP_ERR_IN_USE A UART transmission is in progress + * @retval FSP_ERR_UNSUPPORTED SCI_UART_CFG_TX_ENABLE is set to 0 + * + * @return See @ref RENESAS_ERROR_CODES or functions called by this function for other possible + * return codes. This function calls: + * * @ref transfer_api_t::reconfigure + * + * @note If 9-bit data length is specified at R_SCI_UART_Open call, p_src must be aligned on a 16-bit boundary. + **********************************************************************************************************************/ +fsp_err_t R_SCI_UART_Write (uart_ctrl_t * const p_ctrl, uint8_t const * const p_src, uint32_t const bytes) +{ +#if (SCI_UART_CFG_TX_ENABLE) + sci_uart_instance_ctrl_t * p_instance_ctrl = (sci_uart_instance_ctrl_t *) p_ctrl; + #if SCI_UART_CFG_PARAM_CHECKING_ENABLE || SCI_UART_CFG_DMAC_SUPPORTED + fsp_err_t err = FSP_SUCCESS; + #endif + + #if (SCI_UART_CFG_PARAM_CHECKING_ENABLE) + err = r_sci_read_write_param_check(p_instance_ctrl, p_src, bytes); + FSP_ERROR_RETURN(FSP_SUCCESS == err, err); + FSP_ERROR_RETURN(0U == p_instance_ctrl->tx_src_bytes, FSP_ERR_IN_USE); + #endif + + /* Transmit interrupts must be disabled to start with. */ + p_instance_ctrl->p_reg->CCR0 &= (uint32_t) ~(SCI_UART_CCR0_TIE_MASK | SCI_UART_CCR0_TEIE_MASK); + + p_instance_ctrl->tx_src_bytes = bytes - p_instance_ctrl->data_bytes; + p_instance_ctrl->p_tx_src = p_src + p_instance_ctrl->data_bytes; + + #if SCI_UART_CFG_DMAC_SUPPORTED + + /* If a transfer instance is used for transmission, reset the transfer instance to transmit the requested + * data. */ + if ((NULL != p_instance_ctrl->p_cfg->p_transfer_tx) && p_instance_ctrl->tx_src_bytes) + { + uint32_t num_transfers = p_instance_ctrl->tx_src_bytes; + p_instance_ctrl->tx_src_bytes = 0U; + + p_instance_ctrl->p_cfg->p_transfer_tx->p_cfg->p_info->p_src = (void const *) p_instance_ctrl->p_tx_src; + p_instance_ctrl->p_cfg->p_transfer_tx->p_cfg->p_info->length = num_transfers; + + /* Disable the corresponding IRQ when transferring using DMAC. */ + R_BSP_IrqDisable(p_instance_ctrl->p_cfg->txi_irq); + + err = p_instance_ctrl->p_cfg->p_transfer_tx->p_api->reconfigure(p_instance_ctrl->p_cfg->p_transfer_tx->p_ctrl, + p_instance_ctrl->p_cfg->p_transfer_tx->p_cfg->p_info); + FSP_ERROR_RETURN(FSP_SUCCESS == err, err); + } + #endif + + /* Trigger a TXI interrupt. This triggers the transfer instance or a TXI interrupt if the transfer instance is + * not used. */ + p_instance_ctrl->p_reg->CCR0 |= SCI_UART_CCR0_TIE_MASK; + + /* The first byte is sent from this function to trigger the first TXI event. This + * method is used instead of setting TE and TIE at the same time as recommended in the hardware manual to avoid + * the one frame delay that occurs when the TE bit is set. */ + if (2U == p_instance_ctrl->data_bytes) + { + p_instance_ctrl->p_reg->TDR_b.TDAT = (*(uint16_t *) (p_src)) & SCI_UART_TDR_9BIT_MASK; + } + else + { + p_instance_ctrl->p_reg->TDR_b.TDAT = *(p_src); + } + + #if SCI_UART_CFG_FIFO_SUPPORT + + /* The behavior of the TDRE flag differs between when FIFO is used and not used. + * When using FIFO, clear the flag manually to detect the interrupt at the edge. */ + p_instance_ctrl->p_reg->CFCLR_b.TDREC = 1; + #endif + + return FSP_SUCCESS; +#else + FSP_PARAMETER_NOT_USED(p_ctrl); + FSP_PARAMETER_NOT_USED(p_src); + FSP_PARAMETER_NOT_USED(bytes); + + return FSP_ERR_UNSUPPORTED; +#endif +} + +/*******************************************************************************************************************//** + * Updates the user callback and has option of providing memory for callback structure. + * Implements uart_api_t::callbackSet + * + * @retval FSP_SUCCESS Callback updated successfully. + * @retval FSP_ERR_ASSERTION A required pointer is NULL. + * @retval FSP_ERR_NOT_OPEN The control block has not been opened. + **********************************************************************************************************************/ +fsp_err_t R_SCI_UART_CallbackSet (uart_ctrl_t * const p_ctrl, + void ( * p_callback)(uart_callback_args_t *), + void const * const p_context, + uart_callback_args_t * const p_callback_memory) +{ + sci_uart_instance_ctrl_t * p_instance_ctrl = (sci_uart_instance_ctrl_t *) p_ctrl; + +#if (SCI_UART_CFG_PARAM_CHECKING_ENABLE) + FSP_ASSERT(p_instance_ctrl); + FSP_ASSERT(p_callback); + FSP_ERROR_RETURN(SCI_UART_OPEN == p_instance_ctrl->open, FSP_ERR_NOT_OPEN); +#endif + + /* Store callback and context */ + p_instance_ctrl->p_callback = p_callback; + p_instance_ctrl->p_context = p_context; + p_instance_ctrl->p_callback_memory = p_callback_memory; + + return FSP_SUCCESS; +} + +/*******************************************************************************************************************//** + * Updates the baud rate using the clock selected in Open. p_baud_setting is a pointer to a sci_baud_setting_t structure. + * Implements @ref uart_api_t::baudSet + * + * @warning This terminates any in-progress transmission. + * + * @retval FSP_SUCCESS Baud rate was successfully changed. + * @retval FSP_ERR_ASSERTION Pointer to UART control block is NULL or the UART is not configured to use the + * internal clock. + * @retval FSP_ERR_NOT_OPEN The control block has not been opened + **********************************************************************************************************************/ +fsp_err_t R_SCI_UART_BaudSet (uart_ctrl_t * const p_ctrl, void const * const p_baud_setting) +{ + sci_uart_instance_ctrl_t * p_instance_ctrl = (sci_uart_instance_ctrl_t *) p_ctrl; + +#if (SCI_UART_CFG_PARAM_CHECKING_ENABLE) + FSP_ASSERT(p_instance_ctrl); + FSP_ERROR_RETURN(SCI_UART_OPEN == p_instance_ctrl->open, FSP_ERR_NOT_OPEN); + + /* Verify that the On-Chip baud rate generator is currently selected. */ + FSP_ASSERT((p_instance_ctrl->p_reg->CCR3_b.CKE & 0x2) == 0U); +#endif + + /* Save CCR0 configurations except transmit interrupts. Resuming transmission after reconfiguring baud settings is + * not supported. */ + uint32_t preserved_ccr0 = p_instance_ctrl->p_reg->CCR0 & (uint32_t) ~(R_SCI0_CCR0_TIE_Msk | R_SCI0_CCR0_TEIE_Msk); + + /* Disables transmitter and receiver. This terminates any in-progress transmission. */ + p_instance_ctrl->p_reg->CCR0 = preserved_ccr0 & + (uint32_t) ~(R_SCI0_CCR0_TE_Msk | R_SCI0_CCR0_RE_Msk | R_SCI0_CCR0_RIE_Msk); + FSP_HARDWARE_REGISTER_WAIT(p_instance_ctrl->p_reg->CCR0_b.RE, 0); + FSP_HARDWARE_REGISTER_WAIT(p_instance_ctrl->p_reg->CCR0_b.TE, 0); + p_instance_ctrl->p_tx_src = NULL; + + /* Apply new baud rate register settings. */ + r_sci_uart_baud_set(p_instance_ctrl->p_reg, p_baud_setting); + + /* Restore all settings except transmit interrupts. */ + p_instance_ctrl->p_reg->CCR0 = preserved_ccr0; + FSP_HARDWARE_REGISTER_WAIT((p_instance_ctrl->p_reg->CCR0 & R_SCI0_CCR0_RE_Msk), + (preserved_ccr0 & R_SCI0_CCR0_RE_Msk)); + FSP_HARDWARE_REGISTER_WAIT((p_instance_ctrl->p_reg->CCR0 & R_SCI0_CCR0_TE_Msk), + (preserved_ccr0 & R_SCI0_CCR0_TE_Msk)); + + return FSP_SUCCESS; +} + +/*******************************************************************************************************************//** + * Provides the driver information, including the maximum number of bytes that can be received or transmitted at a time. + * Implements @ref uart_api_t::infoGet + * + * @retval FSP_SUCCESS Information stored in provided p_info. + * @retval FSP_ERR_ASSERTION Pointer to UART control block is NULL. + * @retval FSP_ERR_NOT_OPEN The control block has not been opened + **********************************************************************************************************************/ +fsp_err_t R_SCI_UART_InfoGet (uart_ctrl_t * const p_ctrl, uart_info_t * const p_info) +{ +#if SCI_UART_CFG_PARAM_CHECKING_ENABLE || SCI_UART_CFG_DMAC_SUPPORTED + sci_uart_instance_ctrl_t * p_instance_ctrl = (sci_uart_instance_ctrl_t *) p_ctrl; +#else + FSP_PARAMETER_NOT_USED(p_ctrl); +#endif + +#if (SCI_UART_CFG_PARAM_CHECKING_ENABLE) + FSP_ASSERT(p_instance_ctrl); + FSP_ASSERT(p_info); + FSP_ERROR_RETURN(SCI_UART_OPEN == p_instance_ctrl->open, FSP_ERR_NOT_OPEN); +#endif + + p_info->read_bytes_max = SCI_UART_MAX_READ_WRITE_NO_DMAC; + p_info->write_bytes_max = SCI_UART_MAX_READ_WRITE_NO_DMAC; + +#if (SCI_UART_CFG_RX_ENABLE) + + /* Store number of bytes that can be read at a time. */ + #if SCI_UART_CFG_DMAC_SUPPORTED + if (NULL != p_instance_ctrl->p_cfg->p_transfer_rx) + { + p_info->read_bytes_max = SCI_UART_DMAC_MAX_TRANSFER; + } + #endif +#endif + +#if (SCI_UART_CFG_TX_ENABLE) + + /* Store number of bytes that can be written at a time. */ + #if SCI_UART_CFG_DMAC_SUPPORTED + if (NULL != p_instance_ctrl->p_cfg->p_transfer_tx) + { + p_info->write_bytes_max = SCI_UART_DMAC_MAX_TRANSFER; + } + #endif +#endif + + return FSP_SUCCESS; +} + +/*******************************************************************************************************************//** + * Provides API to abort ongoing transfer. Transmission is aborted after the current character is transmitted. + * Reception is still enabled after abort(). Any characters received after abort() and before the transfer + * is reset in the next call to read(), will arrive via the callback function with event UART_EVENT_RX_CHAR. + * Implements @ref uart_api_t::communicationAbort + * + * @retval FSP_SUCCESS UART transaction aborted successfully. + * @retval FSP_ERR_ASSERTION Pointer to UART control block is NULL. + * @retval FSP_ERR_NOT_OPEN The control block has not been opened. + * @retval FSP_ERR_UNSUPPORTED The requested Abort direction is unsupported. + * + * @return See @ref RENESAS_ERROR_CODES or functions called by this function for other possible + * return codes. This function calls: + * * @ref transfer_api_t::disable + **********************************************************************************************************************/ +fsp_err_t R_SCI_UART_Abort (uart_ctrl_t * const p_ctrl, uart_dir_t communication_to_abort) +{ + sci_uart_instance_ctrl_t * p_instance_ctrl = (sci_uart_instance_ctrl_t *) p_ctrl; + fsp_err_t err = FSP_ERR_UNSUPPORTED; + +#if (SCI_UART_CFG_PARAM_CHECKING_ENABLE) + FSP_ASSERT(p_instance_ctrl); + FSP_ERROR_RETURN(SCI_UART_OPEN == p_instance_ctrl->open, FSP_ERR_NOT_OPEN); +#endif + +#if (SCI_UART_CFG_TX_ENABLE) + if (UART_DIR_TX & communication_to_abort) + { + err = FSP_SUCCESS; + p_instance_ctrl->p_reg->CCR0 &= (uint32_t) ~(SCI_UART_CCR0_TIE_MASK | SCI_UART_CCR0_TEIE_MASK); + + /* Make sure no transmission is in progress. */ + FSP_HARDWARE_REGISTER_WAIT(p_instance_ctrl->p_reg->CSR_b.TEND, 1U); + + #if SCI_UART_CFG_DMAC_SUPPORTED + if (NULL != p_instance_ctrl->p_cfg->p_transfer_tx) + { + err = p_instance_ctrl->p_cfg->p_transfer_tx->p_api->disable(p_instance_ctrl->p_cfg->p_transfer_tx->p_ctrl); + + /* Now that the transfer using DMAC is finished, enable the corresponding IRQ. */ + R_BSP_IrqEnable(p_instance_ctrl->p_cfg->txi_irq); + } + #endif + + #if SCI_UART_CFG_FIFO_SUPPORT + if (0U != p_instance_ctrl->fifo_depth) + { + /* Reset the transmit fifo */ + p_instance_ctrl->p_reg->FCR_b.TFRST = 1U; + } + #endif + p_instance_ctrl->tx_src_bytes = 0U; + + FSP_ERROR_RETURN(FSP_SUCCESS == err, err); + } +#endif +#if (SCI_UART_CFG_RX_ENABLE) + if (UART_DIR_RX & communication_to_abort) + { + err = FSP_SUCCESS; + + p_instance_ctrl->rx_dest_bytes = 0U; + + #if SCI_UART_CFG_DMAC_SUPPORTED + if (NULL != p_instance_ctrl->p_cfg->p_transfer_rx) + { + err = p_instance_ctrl->p_cfg->p_transfer_rx->p_api->disable(p_instance_ctrl->p_cfg->p_transfer_rx->p_ctrl); + + /* Now that the transfer using DMAC is finished, enable the corresponding IRQ. */ + R_BSP_IrqEnable(p_instance_ctrl->p_cfg->rxi_irq); + } + #endif + + #if SCI_UART_CFG_FIFO_SUPPORT + if (0U != p_instance_ctrl->fifo_depth) + { + /* Reset the receive fifo */ + p_instance_ctrl->p_reg->FCR_b.RFRST = 1U; + } + #endif + } +#endif + + return err; +} + +/*******************************************************************************************************************//** + * Provides API to abort ongoing read. Reception is still enabled after abort(). Any characters received after abort() + * and before the transfer is reset in the next call to read(), will arrive via the callback function with event + * UART_EVENT_RX_CHAR. + * Implements @ref uart_api_t::readStop + * + * @retval FSP_SUCCESS UART transaction aborted successfully. + * @retval FSP_ERR_ASSERTION Pointer to UART control block or remaining_bytes is NULL. + * @retval FSP_ERR_NOT_OPEN The control block has not been opened. + * @retval FSP_ERR_UNSUPPORTED The requested Abort direction is unsupported. + * + * @return See @ref RENESAS_ERROR_CODES or functions called by this function for other possible + * return codes. This function calls: + * * @ref transfer_api_t::disable + **********************************************************************************************************************/ +fsp_err_t R_SCI_UART_ReadStop (uart_ctrl_t * const p_ctrl, uint32_t * remaining_bytes) +{ + sci_uart_instance_ctrl_t * p_instance_ctrl = (sci_uart_instance_ctrl_t *) p_ctrl; + +#if (SCI_UART_CFG_PARAM_CHECKING_ENABLE) + FSP_ASSERT(p_instance_ctrl); + FSP_ASSERT(remaining_bytes); + FSP_ERROR_RETURN(SCI_UART_OPEN == p_instance_ctrl->open, FSP_ERR_NOT_OPEN); +#endif + +#if (SCI_UART_CFG_RX_ENABLE) + *remaining_bytes = p_instance_ctrl->rx_dest_bytes; + p_instance_ctrl->rx_dest_bytes = 0U; + #if SCI_UART_CFG_DMAC_SUPPORTED + if (NULL != p_instance_ctrl->p_cfg->p_transfer_rx) + { + fsp_err_t err = p_instance_ctrl->p_cfg->p_transfer_rx->p_api->disable( + p_instance_ctrl->p_cfg->p_transfer_rx->p_ctrl); + FSP_ERROR_RETURN(FSP_SUCCESS == err, err); + + /* Now that the transfer using DMAC is finished, enable the corresponding IRQ. */ + R_BSP_IrqEnable(p_instance_ctrl->p_cfg->rxi_irq); + + transfer_properties_t transfer_info; + err = p_instance_ctrl->p_cfg->p_transfer_rx->p_api->infoGet(p_instance_ctrl->p_cfg->p_transfer_rx->p_ctrl, + &transfer_info); + FSP_ERROR_RETURN(FSP_SUCCESS == err, err); + *remaining_bytes = transfer_info.transfer_length_remaining; + } + #endif + #if SCI_UART_CFG_FIFO_SUPPORT + if (0U != p_instance_ctrl->fifo_depth) + { + /* Reset the receive fifo */ + p_instance_ctrl->p_reg->FCR_b.RFRST = 1U; + } + #endif +#else + + return FSP_ERR_UNSUPPORTED; +#endif + + return FSP_SUCCESS; +} + +/*******************************************************************************************************************//** + * Calculates baud rate register settings. Evaluates and determines the best possible settings set to the baud rate + * related registers. + * + * @param[in] p_baud_target Baudrate calculation configuration. + * @param[in] clock_source Clock source (PCLKM or SCInASYNCCLK) used for baudrate calculation. + * @param[out] p_baud_setting Baud setting information stored here if successful + * + * @retval FSP_SUCCESS Baud rate is set successfully + * @retval FSP_ERR_ASSERTION Null pointer + * @retval FSP_ERR_INVALID_ARGUMENT Baud rate is '0', error in calculated baud rate is larger than requested + * max error, or requested max error in baud rate is larger than 15%. + * Clock source frequency could not be get. + **********************************************************************************************************************/ +fsp_err_t R_SCI_UART_BaudCalculate (sci_uart_baud_calculation_t const * const p_baud_target, + sci_uart_clock_source_t clock_source, + sci_baud_setting_t * const p_baud_setting) +{ +#if (SCI_UART_CFG_PARAM_CHECKING_ENABLE) + FSP_ASSERT(p_baud_target); + FSP_ASSERT(p_baud_setting); + FSP_ERROR_RETURN(SCI_UART_MAX_BAUD_RATE_ERROR_X_1000 >= p_baud_target->baud_rate_error_x_1000, + FSP_ERR_INVALID_ARGUMENT); + FSP_ERROR_RETURN((0U != p_baud_target->baudrate), FSP_ERR_INVALID_ARGUMENT); +#endif + + p_baud_setting->baudrate_bits_b.brr = SCI_UART_BRR_MAX; + p_baud_setting->baudrate_bits_b.brme = 0U; + p_baud_setting->baudrate_bits_b.mddr = SCI_UART_MDDR_MIN; + + /* Find the best BRR (bit rate register) value. + * In table g_async_baud, divisor values are stored for BGDM, ABCS, ABCSE and N values. Each set of divisors + * is tried, and the settings with the lowest bit rate error are stored. The formula to calculate BRR is as + * follows and it must be 255 or less: + * BRR = (PCLK / (div_coefficient * baud)) - 1 + */ + int32_t hit_bit_err = SCI_UART_100_PERCENT_X_1000; + uint32_t hit_mddr = 0U; + uint32_t divisor = 0U; + + uint32_t freq_hz = 0U; + if (SCI_UART_CLOCK_SOURCE_PCLKM == clock_source) + { + freq_hz = R_FSP_SystemClockHzGet(FSP_PRIV_CLOCK_PCLKM); + } + else + { + freq_hz = + R_FSP_SystemClockHzGet((fsp_priv_clock_t) ((uint8_t) FSP_PRIV_CLOCK_PCLKSCI0 + (uint8_t) clock_source)); + } + + FSP_ERROR_RETURN(0U != freq_hz, FSP_ERR_INVALID_ARGUMENT); + + for (uint32_t select_16_base_clk_cycles = 0U; + select_16_base_clk_cycles <= 1U && (hit_bit_err > ((int32_t) p_baud_target->baud_rate_error_x_1000)); + select_16_base_clk_cycles++) + { + for (uint32_t i = 0U; i < SCI_UART_NUM_DIVISORS_ASYNC; i++) + { + /* if select_16_base_clk_cycles == true: Skip this calculation for divisors that are not acheivable with 16 base clk cycles per bit. + * if select_16_base_clk_cycles == false: Skip this calculation for divisors that are only acheivable without 16 base clk cycles per bit. + */ + if (((uint8_t) select_16_base_clk_cycles) ^ (g_async_baud[i].abcs | g_async_baud[i].abcse)) + { + continue; + } + + divisor = (uint32_t) g_div_coefficient[i] * p_baud_target->baudrate; + uint32_t temp_brr = freq_hz / divisor; + + if (temp_brr <= (SCI_UART_BRR_MAX + 1U)) + { + while (temp_brr > 0U) + { + temp_brr -= 1U; + + /* Calculate the bit rate error. The formula is as follows: + * bit rate error[%] = {(PCLK / (baud * div_coefficient * (BRR + 1)) - 1} x 100 + * calculates bit rate error[%] to three decimal places + */ + int32_t err_divisor = (int32_t) (divisor * (temp_brr + 1U)); + + /* Promoting to 64 bits for calculation, but the final value can never be more than 32 bits, as + * described below, so this cast is safe. + * 1. (temp_brr + 1) can be off by an upper limit of 1 due to rounding from the calculation: + * freq_hz / divisor, or: + * freq_hz / divisor <= (temp_brr + 1) < (freq_hz / divisor) + 1 + * 2. Solving for err_divisor: + * freq_hz <= err_divisor < freq_hz + divisor + * 3. Solving for bit_err: + * 0 >= bit_err >= (freq_hz * 100000 / (freq_hz + divisor)) - 100000 + * 4. freq_hz >= divisor (or temp_brr would be -1 and we would never enter this while loop), so: + * 0 >= bit_err >= 100000 / freq_hz - 100000 + * 5. Larger frequencies yield larger bit errors (absolute value). As the frequency grows, + * the bit_err approaches -100000, so: + * 0 >= bit_err >= -100000 + * 6. bit_err is between -100000 and 0. This entire range fits in an int32_t type, so the cast + * to (int32_t) is safe. + */ + int32_t bit_err = (int32_t) (((((int64_t) freq_hz) * SCI_UART_100_PERCENT_X_1000) / + err_divisor) - SCI_UART_100_PERCENT_X_1000); + + uint32_t mddr = 0U; + if (p_baud_target->bitrate_modulation) + { + /* Calculate the MDDR (M) value if bit rate modulation is enabled, + * The formula to calculate MBBR (from the M and N relationship given in the hardware manual) is as follows + * and it must be between 128 and 256. + * MDDR = ((div_coefficient * baud * 256) * (BRR + 1)) / PCLK */ + mddr = (uint32_t) err_divisor / (freq_hz / SCI_UART_MDDR_MAX); + + /* The maximum value that could result from the calculation above is 256, which is a valid MDDR + * value, so only the lower bound is checked. */ + if (mddr < SCI_UART_MDDR_MIN) + { + break; + } + + /* Adjust bit rate error for bit rate modulation. The following formula is used: + * bit rate error [%] = ((bit rate error [%, no modulation] + 100) * MDDR / 256) - 100 + */ + bit_err = (((bit_err + SCI_UART_100_PERCENT_X_1000) * (int32_t) mddr) / + SCI_UART_MDDR_DIVISOR) - SCI_UART_100_PERCENT_X_1000; + } + + /* Take the absolute value of the bit rate error. */ + if (bit_err < 0) + { + bit_err = -bit_err; + } + + /* If the absolute value of the bit rate error is less than the previous lowest absolute value of + * bit rate error, then store these settings as the best value. + */ + if (bit_err < hit_bit_err) + { + p_baud_setting->baudrate_bits_b.bgdm = g_async_baud[i].bgdm; + p_baud_setting->baudrate_bits_b.abcs = g_async_baud[i].abcs; + p_baud_setting->baudrate_bits_b.abcse = g_async_baud[i].abcse; + p_baud_setting->baudrate_bits_b.cks = g_async_baud[i].cks; + p_baud_setting->baudrate_bits_b.brr = (uint8_t) temp_brr; + hit_bit_err = bit_err; + hit_mddr = mddr; + } + + if (p_baud_target->bitrate_modulation) + { + p_baud_setting->baudrate_bits_b.brme = 1U; + p_baud_setting->baudrate_bits_b.mddr = (uint8_t) hit_mddr; + } + else + { + break; + } + } + } + } + } + + /* Return an error if the percent error is larger than the maximum percent error allowed for this instance */ + FSP_ERROR_RETURN((hit_bit_err <= (int32_t) p_baud_target->baud_rate_error_x_1000), FSP_ERR_INVALID_ARGUMENT); + + return FSP_SUCCESS; +} + +/*******************************************************************************************************************//** + * @} (end addtogroup SCI_UART) + **********************************************************************************************************************/ + +/*********************************************************************************************************************** + * Private Functions + **********************************************************************************************************************/ + +#if (SCI_UART_CFG_PARAM_CHECKING_ENABLE) + +/*******************************************************************************************************************//** + * Parameter error check function for read/write. + * + * @param[in] p_instance_ctrl Pointer to the control block for the channel + * @param[in] addr Pointer to the buffer + * @param[in] bytes Number of bytes to read or write + * + * @retval FSP_SUCCESS No parameter error found + * @retval FSP_ERR_NOT_OPEN The control block has not been opened + * @retval FSP_ERR_ASSERTION Pointer to UART control block or configuration structure is NULL + * @retval FSP_ERR_INVALID_ARGUMENT Address is not aligned to 2-byte boundary or size is the odd number when the data + * length is 9-bit + **********************************************************************************************************************/ +static fsp_err_t r_sci_read_write_param_check (sci_uart_instance_ctrl_t const * const p_instance_ctrl, + uint8_t const * const addr, + uint32_t const bytes) +{ + FSP_ASSERT(p_instance_ctrl); + FSP_ASSERT(addr); + FSP_ASSERT(0U != bytes); + FSP_ERROR_RETURN(SCI_UART_OPEN == p_instance_ctrl->open, FSP_ERR_NOT_OPEN); + + if (2U == p_instance_ctrl->data_bytes) + { + /* Do not allow odd buffer address if data length is 9 bits. */ + FSP_ERROR_RETURN((0U == ((uint32_t) addr & SCI_UART_ALIGN_2_BYTES)), FSP_ERR_INVALID_ARGUMENT); + + /* Do not allow odd number of data bytes if data length is 9 bits. */ + FSP_ERROR_RETURN(0U == (bytes % 2U), FSP_ERR_INVALID_ARGUMENT); + } + + return FSP_SUCCESS; +} + +#endif + +#if SCI_UART_CFG_DMAC_SUPPORTED + +/*******************************************************************************************************************//** + * Subroutine to apply common UART transfer settings. + * + * @param[in] p_cfg Pointer to UART specific configuration structure + * @param[in] p_transfer Pointer to transfer instance to configure + * + * @retval FSP_SUCCESS UART transfer drivers successfully configured + * @retval FSP_ERR_ASSERTION Invalid pointer + **********************************************************************************************************************/ +static fsp_err_t r_sci_uart_transfer_configure (sci_uart_instance_ctrl_t * const p_instance_ctrl, + transfer_instance_t const * p_transfer, + uint32_t * p_transfer_reg, + uint32_t sci_buffer_address) +{ + /* Configure the transfer instance, if enabled. */ + #if (SCI_UART_CFG_PARAM_CHECKING_ENABLE) + FSP_ASSERT(NULL != p_transfer->p_api); + FSP_ASSERT(NULL != p_transfer->p_ctrl); + FSP_ASSERT(NULL != p_transfer->p_cfg); + FSP_ASSERT(NULL != p_transfer->p_cfg->p_info); + FSP_ASSERT(NULL != p_transfer->p_cfg->p_extend); + #endif + + /* Casting for compatibility with 7 or 8 bit mode. */ + *p_transfer_reg = sci_buffer_address; + + transfer_info_t * p_info = p_transfer->p_cfg->p_info; + if (UART_DATA_BITS_9 == p_instance_ctrl->p_cfg->data_bits) + { + p_info->src_size = TRANSFER_SIZE_2_BYTE; + p_info->dest_size = TRANSFER_SIZE_2_BYTE; + } + else + { + p_info->src_size = TRANSFER_SIZE_1_BYTE; + p_info->dest_size = TRANSFER_SIZE_1_BYTE; + } + + fsp_err_t err = p_transfer->p_api->open(p_transfer->p_ctrl, p_transfer->p_cfg); + FSP_ERROR_RETURN(FSP_SUCCESS == err, err); + + return FSP_SUCCESS; +} + +#endif + +#if SCI_UART_CFG_DMAC_SUPPORTED + +/*******************************************************************************************************************//** + * Configures UART related transfer drivers (if enabled). + * + * @param[in] p_instance_ctrl Pointer to UART control structure + * @param[in] p_cfg Pointer to UART specific configuration structure + * + * @retval FSP_SUCCESS UART transfer drivers successfully configured + * @retval FSP_ERR_ASSERTION Invalid pointer or required interrupt not enabled in vector table + * + * @return See @ref RENESAS_ERROR_CODES or functions called by this function for other possible + * return codes. This function calls: + * * @ref transfer_api_t::open + **********************************************************************************************************************/ +static fsp_err_t r_sci_uart_transfer_open (sci_uart_instance_ctrl_t * const p_instance_ctrl, + uart_cfg_t const * const p_cfg) +{ + fsp_err_t err = FSP_SUCCESS; + + #if (SCI_UART_CFG_RX_ENABLE) + + /* If a transfer instance is used for reception, apply UART specific settings and open the transfer instance. */ + if (NULL != p_cfg->p_transfer_rx) + { + transfer_info_t * p_info = p_cfg->p_transfer_rx->p_cfg->p_info; + + p_info->mode = TRANSFER_MODE_NORMAL; + p_info->src_addr_mode = TRANSFER_ADDR_MODE_FIXED; + p_info->dest_addr_mode = TRANSFER_ADDR_MODE_INCREMENTED; + + err = + r_sci_uart_transfer_configure(p_instance_ctrl, + p_cfg->p_transfer_rx, + (uint32_t *) &p_info->p_src, + (uint32_t) &(p_instance_ctrl->p_reg->RDR)); + FSP_ERROR_RETURN(FSP_SUCCESS == err, err); + } + #endif + #if (SCI_UART_CFG_TX_ENABLE) + + /* If a transfer instance is used for transmission, apply UART specific settings and open the transfer instance. */ + if (NULL != p_cfg->p_transfer_tx) + { + transfer_info_t * p_info = p_cfg->p_transfer_tx->p_cfg->p_info; + + p_info->mode = TRANSFER_MODE_NORMAL; + p_info->src_addr_mode = TRANSFER_ADDR_MODE_INCREMENTED; + p_info->dest_addr_mode = TRANSFER_ADDR_MODE_FIXED; + + err = + r_sci_uart_transfer_configure(p_instance_ctrl, + p_cfg->p_transfer_tx, + (uint32_t *) &p_info->p_dest, + (uint32_t) &p_instance_ctrl->p_reg->TDR); + + #if (SCI_UART_CFG_RX_ENABLE) + if ((err != FSP_SUCCESS) && (NULL != p_cfg->p_transfer_rx)) + { + p_cfg->p_transfer_rx->p_api->close(p_cfg->p_transfer_rx->p_ctrl); + } + #endif + FSP_ERROR_RETURN(FSP_SUCCESS == err, err); + } + #endif + + return err; +} + +#endif + +/*******************************************************************************************************************//** + * Configures UART related registers based on user configurations. + * + * @param[in] p_instance_ctrl Pointer to UART control structure + * @param[in] p_cfg Pointer to UART specific configuration structure + **********************************************************************************************************************/ +static void r_sci_uart_config_set (sci_uart_instance_ctrl_t * const p_instance_ctrl, uart_cfg_t const * const p_cfg) +{ + /* CCR3 register setting. */ + uint32_t ccr3 = SCI_UART_CCR3_DEFAULT_VALUE; + +#if SCI_UART_CFG_FIFO_SUPPORT + ccr3 |= (1U << SCI_UART_CCR3_FM_OFFSET); + + /* Configure FIFO related registers. */ + r_sci_uart_fifo_cfg(p_instance_ctrl); +#else + + /* If fifo support is disabled and the current channel supports fifo make sure it's disabled. */ + if (BSP_FEATURE_SCI_UART_FIFO_CHANNELS & (1U << p_cfg->channel)) + { + p_instance_ctrl->p_reg->FCR = SCI_UART_FCR_DEFAULT_VALUE; + } +#endif + + /* Configure data size. */ + if (UART_DATA_BITS_7 == p_cfg->data_bits) + { + ccr3 |= (1U << SCI_UART_CCR3_CHR_OFFSET); + } + else if (UART_DATA_BITS_9 == p_cfg->data_bits) + { + ccr3 &= ~(1U << (SCI_UART_CCR3_CHR_OFFSET + 1)); + } + else + { + /* Do nothing. Default is 8-bit mode. */ + } + + /* Configure stop bits. */ + ccr3 |= (uint32_t) p_cfg->stop_bits << SCI_UART_CCR3_STP_OFFSET; + + /* Configure CKE bits. */ + sci_uart_extended_cfg_t * p_extend = (sci_uart_extended_cfg_t *) p_cfg->p_extend; + ccr3 |= (p_extend->clock & SCI_UART_CCR3_CKE_VALUE_MASK) << SCI_UART_CCR3_CKE_OFFSET; + + /* Starts reception on falling edge of RXD if enabled in extension (otherwise reception starts at low level + * of RXD). */ + ccr3 |= (p_extend->rx_edge_start & 1U) << SCI_UART_CCR3_RxDSEL_OFFSET; + + ccr3 |= ((uint32_t) p_extend->rs485_setting.enable << R_SCI0_CCR3_DEN_Pos) & R_SCI0_CCR3_DEN_Msk; + + /* Configure SPEN bit. */ + if (SCI_UART_CLOCK_SOURCE_PCLKM == p_extend->clock_source) + { + ccr3 |= 1U << SCI_UART_CCR3_BPEN_OFFSET; + } + + /* Write to the CCR3 register. */ + p_instance_ctrl->p_reg->CCR3 = ccr3; + + /* CCR1 register setting. */ + uint32_t ccr1 = SCI_UART_CCR1_DEFAULT_VALUE; + + /* Configure flow control pin. */ + ccr1 |= ((uint32_t) (p_extend->flow_control << R_SCI0_CCR1_CTSE_Pos) & SCI_UART_CCR1_FLOW_CTSRTS_MASK); + + /* Set the default level of the TX pin to 1. */ + ccr1 |= (uint32_t) (1U << SCI_UART_CCR1_SPB2DT_BIT | SCI_UART_CCR1_OUTPUT_ENABLE_MASK); + + /* Configure parity bits. */ + if (0 != p_cfg->parity) + { + ccr1 |= + (((UART_PARITY_EVEN == + p_cfg->parity) ? 1U : 3U) << SCI_UART_CCR1_PARITY_OFFSET) & SCI_UART_CCR1_PARITY_MASK; + } + + if (SCI_UART_NOISE_CANCELLATION_DISABLE != p_extend->noise_cancel) + { + /* Select noise filter clock */ + ccr1 |= (uint32_t) (((p_extend->noise_cancel & 0x07U) - 1) & SCI_UART_CCR1_NFCS_VALUE_MASK) << + SCI_UART_CCR1_NFCS_OFFSET; + + /* Enables the noise cancellation */ + ccr1 |= (uint32_t) 1 << SCI_UART_CCR1_NFEN_OFFSET; + } + + p_instance_ctrl->p_reg->CCR1 = ccr1; + + if ((SCI_UART_CLOCK_EXT8X == p_extend->clock) || (SCI_UART_CLOCK_EXT16X == p_extend->clock)) + { + /* Use external clock for baud rate */ + p_instance_ctrl->p_reg->CCR2_b.BRR = SCI_UART_BRR_DEFAULT_VALUE; + + if (SCI_UART_CLOCK_EXT8X == p_extend->clock) + { + /* Set baud rate as (external clock / 8) */ + p_instance_ctrl->p_reg->CCR2 |= 1U << SCI_UART_CCR2_ABCS_OFFSET; + } + } + else + { + /* Set the baud rate settings for the internal baud rate generator. */ + r_sci_uart_baud_set(p_instance_ctrl->p_reg, p_extend->p_baud_setting); + } + + /* Configure RS-485 DE assertion settings. */ + uint32_t dcr = ((uint32_t) (p_extend->rs485_setting.polarity << R_SCI0_DCR_DEPOL_Pos)) & R_SCI0_DCR_DEPOL_Msk; + dcr |= ((uint32_t) p_extend->rs485_setting.assertion_time << R_SCI0_DCR_DEAST_Pos) & + R_SCI0_DCR_DEAST_Msk; + dcr |= ((uint32_t) p_extend->rs485_setting.negation_time << R_SCI0_DCR_DENGT_Pos) & + R_SCI0_DCR_DENGT_Msk; + p_instance_ctrl->p_reg->DCR = dcr; +} + +#if SCI_UART_CFG_FIFO_SUPPORT + +/*******************************************************************************************************************//** + * Resets FIFO related registers. + * + * @param[in] p_instance_ctrl Pointer to UART instance control + * @param[in] p_cfg Pointer to UART configuration structure + **********************************************************************************************************************/ +static void r_sci_uart_fifo_cfg (sci_uart_instance_ctrl_t * const p_instance_ctrl) +{ + if (0U != p_instance_ctrl->fifo_depth) + { + /* Set the tx and rx reset bits */ + uint32_t fcr = 0U; + + #if (SCI_UART_CFG_TX_ENABLE) + #if SCI_UART_CFG_DMAC_SUPPORTED + if (NULL != p_instance_ctrl->p_cfg->p_transfer_tx) + { + /* When DMAC transfer is used, set TTRG[4:0] = 0x0F. */ + fcr |= SCI_UART_FCR_TTRG_DMAC_VALUE << SCI_UART_FCR_TTRG_OFFSET; + } + #endif + #endif + + #if (SCI_UART_CFG_RX_ENABLE) + #if SCI_UART_CFG_DMAC_SUPPORTED + + /* If DMAC is used keep the receive trigger at the default level of 0. */ + if (NULL == p_instance_ctrl->p_cfg->p_transfer_rx) + #endif + { + /* Otherwise, set receive trigger number as configured by the user. */ + sci_uart_extended_cfg_t const * p_extend = p_instance_ctrl->p_cfg->p_extend; + + /* RTRG(Receive FIFO Data Trigger Number) controls when the RXI interrupt will be generated. If data is + * received but the trigger number is not met the RXI interrupt will be generated after 15 ETUs from + * the last stop bit in asynchronous mode. */ + fcr |= (((p_instance_ctrl->fifo_depth - 1U) & p_extend->rx_fifo_trigger) & SCI_UART_FCR_TRIGGER_MASK) << + SCI_UART_FCR_RTRG_OFFSET; + } + + /* RTS asserts when the amount of received data stored in the fifo is equal or less than this value. */ + fcr |= ((p_instance_ctrl->fifo_depth - 1U) & SCI_UART_FCR_TRIGGER_MASK) << SCI_UART_FCR_RSTRG_OFFSET; + #endif + + /* Set the FCR and reset the fifos. */ + p_instance_ctrl->p_reg->FCR = (uint32_t) (fcr | SCI_UART_FCR_RESET_TX_RX); + } +} + +#endif + +/*******************************************************************************************************************//** + * Sets interrupt priority and initializes vector info. + * + * @param[in] p_instance_ctrl Pointer to driver control block + * @param[in] ipl Interrupt priority level + * @param[in] irq IRQ number for this interrupt + **********************************************************************************************************************/ +static void r_sci_irq_cfg (sci_uart_instance_ctrl_t * const p_instance_ctrl, uint8_t const ipl, IRQn_Type const irq) +{ + /* Disable interrupts, set priority, and store control block in the vector information so it can be accessed + * from the callback. */ + R_BSP_IrqDisable(irq); + + R_BSP_IrqCfg(irq, ipl, p_instance_ctrl); +} + +/*******************************************************************************************************************//** + * Sets interrupt priority and initializes vector info for all interrupts. + * + * @param[in] p_instance_ctrl Pointer to UART instance control block + * @param[in] p_cfg Pointer to UART specific configuration structure + **********************************************************************************************************************/ +static void r_sci_irqs_cfg (sci_uart_instance_ctrl_t * const p_instance_ctrl, uart_cfg_t const * const p_cfg) +{ +#if (SCI_UART_CFG_RX_ENABLE) + + /* ERI is optional. */ + r_sci_irq_cfg(p_instance_ctrl, p_cfg->eri_ipl, p_cfg->eri_irq); + r_sci_irq_cfg(p_instance_ctrl, p_cfg->rxi_ipl, p_cfg->rxi_irq); +#endif +#if (SCI_UART_CFG_TX_ENABLE) + r_sci_irq_cfg(p_instance_ctrl, p_cfg->txi_ipl, p_cfg->txi_irq); + + r_sci_irq_cfg(p_instance_ctrl, p_cfg->tei_ipl, p_cfg->tei_irq); +#endif +} + +#if SCI_UART_CFG_DMAC_SUPPORTED + +/*******************************************************************************************************************//** + * Closes transfer interfaces. + * + * @param[in] p_instance_ctrl Pointer to UART instance control block + **********************************************************************************************************************/ +static void r_sci_uart_transfer_close (sci_uart_instance_ctrl_t * p_instance_ctrl) +{ + #if (SCI_UART_CFG_RX_ENABLE) + if (NULL != p_instance_ctrl->p_cfg->p_transfer_rx) + { + p_instance_ctrl->p_cfg->p_transfer_rx->p_api->close(p_instance_ctrl->p_cfg->p_transfer_rx->p_ctrl); + } + #endif + #if (SCI_UART_CFG_TX_ENABLE) + if (NULL != p_instance_ctrl->p_cfg->p_transfer_tx) + { + p_instance_ctrl->p_cfg->p_transfer_tx->p_api->close(p_instance_ctrl->p_cfg->p_transfer_tx->p_ctrl); + } + #endif +} + +#endif + +/*******************************************************************************************************************//** + * Changes baud rate based on predetermined register settings. + * + * @param[in] p_sci_reg Base pointer for SCI registers + * @param[in] p_baud_setting Pointer to other divisor related settings + * + * @note The transmitter and receiver (TE and RE bits in SCR) must be disabled prior to calling this function. + **********************************************************************************************************************/ +static void r_sci_uart_baud_set (R_SCI0_Type * p_sci_reg, sci_baud_setting_t const * const p_baud_setting) +{ + p_sci_reg->CCR2 = (uint32_t) ((p_sci_reg->CCR2 & ~(SCI_UART_CCR2_BAUD_SETTING_MASK)) | + (p_baud_setting->baudrate_bits & SCI_UART_CCR2_BAUD_SETTING_MASK)); +} + +/*******************************************************************************************************************//** + * Calls user callback. + * + * @param[in] p_instance_ctrl Pointer to UART instance control block + * @param[in] data See uart_callback_args_t in r_uart_api.h + * @param[in] event Event code + **********************************************************************************************************************/ +static void r_sci_uart_call_callback (sci_uart_instance_ctrl_t * p_instance_ctrl, uint32_t data, uart_event_t event) +{ + uart_callback_args_t args; + + /* Store callback arguments in memory provided by user if available. */ + uart_callback_args_t * p_args = p_instance_ctrl->p_callback_memory; + if (NULL == p_args) + { + /* Store on stack */ + p_args = &args; + } + else + { + /* Save current arguments on the stack in case this is a nested interrupt. */ + args = *p_args; + } + + p_args->channel = p_instance_ctrl->p_cfg->channel; + p_args->data = data; + p_args->event = event; + p_args->p_context = p_instance_ctrl->p_context; + + p_instance_ctrl->p_callback(p_args); + + if (NULL != p_instance_ctrl->p_callback_memory) + { + /* Restore callback memory in case this is a nested interrupt. */ + *p_instance_ctrl->p_callback_memory = args; + } +} + +#if (SCI_UART_CFG_TX_ENABLE) + +/*******************************************************************************************************************//** + * Common processing for TXI interrupt and DMA transfer completion interrupt in UART write mode. This function writes + * the next data. After the last data byte is written, this function disables the TXI interrupt and enables the TEI + * (transmit end) interrupt. + **********************************************************************************************************************/ +static void sci_uart_txi_common (sci_uart_instance_ctrl_t * p_instance_ctrl) +{ + if ((NULL == p_instance_ctrl->p_cfg->p_transfer_tx) && (0U != p_instance_ctrl->tx_src_bytes)) + { + if (2U == p_instance_ctrl->data_bytes) + { + p_instance_ctrl->p_reg->TDR_b.TDAT = (*(uint16_t *) (p_instance_ctrl->p_tx_src)) & SCI_UART_TDR_9BIT_MASK; + } + else + { + p_instance_ctrl->p_reg->TDR_b.TDAT = *(p_instance_ctrl->p_tx_src); + } + + /* Update pointer to the next data and number of remaining bytes in the control block. */ + p_instance_ctrl->tx_src_bytes -= p_instance_ctrl->data_bytes; + p_instance_ctrl->p_tx_src += p_instance_ctrl->data_bytes; + + /* If transfer is not used, write data until FIFO is full. */ + #if SCI_UART_CFG_FIFO_SUPPORT + if (0U != p_instance_ctrl->fifo_depth) + { + uint32_t fifo_count = p_instance_ctrl->p_reg->FTSR_b.T; + for (uint32_t cnt = fifo_count; (cnt < p_instance_ctrl->fifo_depth) && p_instance_ctrl->tx_src_bytes; cnt++) + { + if (2U == p_instance_ctrl->data_bytes) + { + p_instance_ctrl->p_reg->TDR_b.TDAT = (*(uint16_t *) (p_instance_ctrl->p_tx_src)) & + SCI_UART_TDR_9BIT_MASK; + } + else + { + p_instance_ctrl->p_reg->TDR_b.TDAT = *(p_instance_ctrl->p_tx_src); + } + + p_instance_ctrl->tx_src_bytes -= p_instance_ctrl->data_bytes; + p_instance_ctrl->p_tx_src += p_instance_ctrl->data_bytes; + } + + /* Clear TDRE flag */ + p_instance_ctrl->p_reg->CFCLR_b.TDREC = 1; + } + #endif + } + + if (0U == p_instance_ctrl->tx_src_bytes) + { + /* After all data has been transmitted, disable transmit interrupts and enable the transmit end interrupt. */ + uint32_t ccr0_temp = p_instance_ctrl->p_reg->CCR0; + ccr0_temp |= SCI_UART_CCR0_TEIE_MASK; + ccr0_temp &= (uint32_t) ~SCI_UART_CCR0_TIE_MASK; + p_instance_ctrl->p_reg->CCR0 = ccr0_temp; + + p_instance_ctrl->p_tx_src = NULL; + r_sci_uart_call_callback(p_instance_ctrl, 0U, UART_EVENT_TX_DATA_EMPTY); + } +} + +/*******************************************************************************************************************//** + * TXI interrupt handler for UART mode. TXI interrupt fires when the data in the data register or FIFO register has been + * transferred to the data shift register, and the next data can be written. This function calls sci_uart_txi_common(). + **********************************************************************************************************************/ +void sci_uart_txi_isr (void) +{ + SCI_UART_CFG_MULTIPLEX_INTERRUPT_ENABLE; + + /* Save context if RTOS is used */ + FSP_CONTEXT_SAVE; + + IRQn_Type irq = R_FSP_CurrentIrqGet(); + + /* Recover ISR context saved in open. */ + sci_uart_instance_ctrl_t * p_instance_ctrl = (sci_uart_instance_ctrl_t *) R_FSP_IsrContextGet(irq); + + sci_uart_txi_common(p_instance_ctrl); + + /* Restore context if RTOS is used */ + FSP_CONTEXT_RESTORE; + + SCI_UART_CFG_MULTIPLEX_INTERRUPT_DISABLE; +} + +/*******************************************************************************************************************//** + * Callback that must be called after a TX DMAC transfer completes. + * + * @param[in] p_instance_ctrl Pointer to SCI_UART instance control block + **********************************************************************************************************************/ +void sci_uart_tx_dmac_callback (sci_uart_instance_ctrl_t * p_instance_ctrl) +{ + SCI_UART_CFG_MULTIPLEX_INTERRUPT_ENABLE; + + /* Now that the transfer using DMAC is finished, enable the corresponding IRQ. */ + R_BSP_IrqEnable(p_instance_ctrl->p_cfg->txi_irq); + + sci_uart_txi_common(p_instance_ctrl); + + SCI_UART_CFG_MULTIPLEX_INTERRUPT_DISABLE; +} + +#endif + +#if (SCI_UART_CFG_RX_ENABLE) + +/*******************************************************************************************************************//** + * Common processing for RXI interrupt and DMA transfer completion interrupt in UART read mode. This function calls + * callback function when it meets conditions below. + * - UART_EVENT_RX_COMPLETE: The number of data which has been read reaches to the number specified in R_SCI_UART_Read() + * if a transfer instance is used for reception. + * - UART_EVENT_RX_CHAR: Data is received asynchronously (read has not been called) + * + * This function also calls the callback function for RTS pin control if it is registered in R_SCI_UART_Open(). This is + * special functionality to expand SCI hardware capability and make RTS/CTS hardware flow control possible. If macro + * 'SCI_UART_CFG_FLOW_CONTROL_SUPPORT' is set, it is called at the beginning in this function to set the RTS pin high, + * then it is called again just before leaving this function to set the RTS pin low. + * @retval none + **********************************************************************************************************************/ +static void sci_uart_rxi_common (sci_uart_instance_ctrl_t * p_instance_ctrl) +{ + #if SCI_UART_CFG_DMAC_SUPPORTED + if ((p_instance_ctrl->p_cfg->p_transfer_rx == NULL) || (0 == p_instance_ctrl->rx_dest_bytes)) + #endif + { + #if (SCI_UART_CFG_FLOW_CONTROL_SUPPORT) + if (p_instance_ctrl->flow_pin != (bsp_io_port_pin_t) SCI_UART_INVALID_16BIT_PARAM) + { + R_BSP_PinAccessEnable(); + + /* Pause the transmission of data from the other device. */ + R_BSP_PinSet(R_BSP_IoRegionGet(p_instance_ctrl->flow_pin), p_instance_ctrl->flow_pin); + } + #endif + + uint32_t data; + #if SCI_UART_CFG_FIFO_SUPPORT + do + { + if ((p_instance_ctrl->fifo_depth > 0U)) + { + if (p_instance_ctrl->p_reg->FRSR_b.R > 0U) + { + data = p_instance_ctrl->p_reg->RDR_b.RDAT; + } + else + { + break; + } + } + else + { + data = p_instance_ctrl->p_reg->RDR_b.RDAT; + } + + #else + { + data = p_instance_ctrl->p_reg->RDR_b.RDAT; + #endif + if (0 == p_instance_ctrl->rx_dest_bytes) + { + /* Call user callback with the data. */ + r_sci_uart_call_callback(p_instance_ctrl, data, UART_EVENT_RX_CHAR); + } + else + { + memcpy((void *) p_instance_ctrl->p_rx_dest, &data, p_instance_ctrl->data_bytes); + p_instance_ctrl->p_rx_dest += p_instance_ctrl->data_bytes; + p_instance_ctrl->rx_dest_bytes -= p_instance_ctrl->data_bytes; + + if (0 == p_instance_ctrl->rx_dest_bytes) + { + r_sci_uart_call_callback(p_instance_ctrl, 0U, UART_EVENT_RX_COMPLETE); + } + } + + #if SCI_UART_CFG_FIFO_SUPPORT + } while ((p_instance_ctrl->fifo_depth > 0U) && ((p_instance_ctrl->p_reg->FRSR_b.R) > 0U)); + + if (p_instance_ctrl->fifo_depth > 0U) + { + p_instance_ctrl->p_reg->CFCLR_b.RDRFC = 1; + } + + #else + } + #endif + #if (SCI_UART_CFG_FLOW_CONTROL_SUPPORT) + if (p_instance_ctrl->flow_pin != (bsp_io_port_pin_t) SCI_UART_INVALID_16BIT_PARAM) + { + /* Resume the transmission of data from the other device. */ + R_BSP_PinClear(R_BSP_IoRegionGet(p_instance_ctrl->flow_pin), p_instance_ctrl->flow_pin); + R_BSP_PinAccessDisable(); + } + #endif + } + + #if SCI_UART_CFG_DMAC_SUPPORTED + else + { + p_instance_ctrl->rx_dest_bytes = 0; + p_instance_ctrl->p_rx_dest = NULL; + + /* Call callback */ + r_sci_uart_call_callback(p_instance_ctrl, 0U, UART_EVENT_RX_COMPLETE); + } + #endif +} + +/*******************************************************************************************************************//** + * RXI interrupt handler for UART mode. RXI interrupt happens when data arrives to the data register or the FIFO + * register. This function calls sci_uart_rxi_common(). + **********************************************************************************************************************/ +void sci_uart_rxi_isr (void) +{ + SCI_UART_CFG_MULTIPLEX_INTERRUPT_ENABLE; + + /* Save context if RTOS is used */ + FSP_CONTEXT_SAVE; + + IRQn_Type irq = R_FSP_CurrentIrqGet(); + + /* Recover ISR context saved in open. */ + sci_uart_instance_ctrl_t * p_instance_ctrl = (sci_uart_instance_ctrl_t *) R_FSP_IsrContextGet(irq); + + sci_uart_rxi_common(p_instance_ctrl); + + /* Restore context if RTOS is used */ + FSP_CONTEXT_RESTORE; + + SCI_UART_CFG_MULTIPLEX_INTERRUPT_DISABLE; +} + +/*******************************************************************************************************************//** + * Callback that must be called after a RX DMAC transfer completes. + * + * @param[in] p_instance_ctrl Pointer to SCI_UART instance control block + **********************************************************************************************************************/ +void sci_uart_rx_dmac_callback (sci_uart_instance_ctrl_t * p_instance_ctrl) +{ + SCI_UART_CFG_MULTIPLEX_INTERRUPT_ENABLE; + + /* Now that the transfer using DMAC is finished, enable the corresponding IRQ. */ + R_BSP_IrqEnable(p_instance_ctrl->p_cfg->rxi_irq); + + sci_uart_rxi_common(p_instance_ctrl); + + SCI_UART_CFG_MULTIPLEX_INTERRUPT_DISABLE; +} + +#endif + +#if (SCI_UART_CFG_TX_ENABLE) + +/*******************************************************************************************************************//** + * TEI interrupt processing for UART mode. The TEI interrupt fires after the last byte is transmitted on the TX pin. + * The user callback function is called with the UART_EVENT_TX_COMPLETE event code (if it is registered in + * R_SCI_UART_Open()). + **********************************************************************************************************************/ +void sci_uart_tei_isr (void) +{ + SCI_UART_CFG_MULTIPLEX_INTERRUPT_ENABLE; + + /* Save context if RTOS is used */ + FSP_CONTEXT_SAVE; + + IRQn_Type irq = R_FSP_CurrentIrqGet(); + + /* Recover ISR context saved in open. */ + sci_uart_instance_ctrl_t * p_instance_ctrl = (sci_uart_instance_ctrl_t *) R_FSP_IsrContextGet(irq); + + /* Receiving TEI(transmit end interrupt) means the completion of transmission, so call callback function here. */ + p_instance_ctrl->p_reg->CCR0 &= (uint32_t) ~(SCI_UART_CCR0_TIE_MASK | SCI_UART_CCR0_TEIE_MASK); + + /* Dummy read to ensure that interrupts are disabled. */ + volatile uint32_t dummy = p_instance_ctrl->p_reg->CCR0; + FSP_PARAMETER_NOT_USED(dummy); + + r_sci_uart_call_callback(p_instance_ctrl, 0U, UART_EVENT_TX_COMPLETE); + + /* Restore context if RTOS is used */ + FSP_CONTEXT_RESTORE; + + SCI_UART_CFG_MULTIPLEX_INTERRUPT_DISABLE; +} + +#endif + +#if (SCI_UART_CFG_RX_ENABLE) + +/*******************************************************************************************************************//** + * ERI interrupt processing for UART mode. When an ERI interrupt fires, the user callback function is called if it is + * registered in R_SCI_UART_Open() with the event code that triggered the interrupt. + **********************************************************************************************************************/ +void sci_uart_eri_isr (void) +{ + SCI_UART_CFG_MULTIPLEX_INTERRUPT_ENABLE; + + /* Save context if RTOS is used */ + FSP_CONTEXT_SAVE; + + IRQn_Type irq = R_FSP_CurrentIrqGet(); + + /* Recover ISR context saved in open. */ + sci_uart_instance_ctrl_t * p_instance_ctrl = (sci_uart_instance_ctrl_t *) R_FSP_IsrContextGet(irq); + + uint32_t data = 0U; + uart_event_t event = (uart_event_t) 0U; + + /* Read data. */ + data = p_instance_ctrl->p_reg->RDR_b.RDAT; + + /* Determine cause of error. */ + uint32_t csr = p_instance_ctrl->p_reg->CSR & SCI_UART_RCVR_ERR_MASK; + + if (csr & SCI_UART_CSR_ORER_MASK) + { + event |= UART_EVENT_ERR_OVERFLOW; + } + + if (csr & SCI_UART_CSR_FER_MASK) + { + event |= UART_EVENT_ERR_FRAMING; + } + + if (csr & SCI_UART_CSR_PER_MASK) + { + event |= UART_EVENT_ERR_PARITY; + } + + /* Check if there is a break detected. */ + if ((UART_EVENT_ERR_FRAMING == (event & UART_EVENT_ERR_FRAMING)) && (0U == p_instance_ctrl->p_reg->CSR_b.RXDMON)) + { + event |= UART_EVENT_BREAK_DETECT; + } + + /* Clear error condition. */ + p_instance_ctrl->p_reg->CFCLR |= (uint32_t) (SCI_UART_RCVR_ERRCLR_MASK); + + /* Dummy read to ensure that interrupt event is cleared. */ + volatile uint32_t dummy = p_instance_ctrl->p_reg->CSR; + FSP_PARAMETER_NOT_USED(dummy); + + /* Call callback. */ + r_sci_uart_call_callback(p_instance_ctrl, data, event); + + /* Restore context if RTOS is used */ + FSP_CONTEXT_RESTORE; + + SCI_UART_CFG_MULTIPLEX_INTERRUPT_DISABLE; +} + +#endif diff --git a/bsp/renesas/rzn2l_rsk/rzn_cfg.txt b/bsp/renesas/rzn2l_rsk/rzn_cfg.txt new file mode 100644 index 0000000000..9102605718 --- /dev/null +++ b/bsp/renesas/rzn2l_rsk/rzn_cfg.txt @@ -0,0 +1,1158 @@ +FSP Configuration + Board "RSK+RZN2L (xSPI0 x1 boot mode)" + Parameter information for the loader: CACHE_FLG: 0x00000000 + Parameter information for the loader: WRAPCFG_V: 0x00000000 + Parameter information for the loader: COMCFG_V: 0x00000000 + Parameter information for the loader: BMCFG_V: 0x00000000 + Parameter information for the loader: xSPI_FLG: 0x00000000 + Parameter information for the loader: LDR_ADDR_NML: 0x6000004C + Parameter information for the loader: LDR_SIZE_NML: 0x00006000 + Parameter information for the loader: DEST_ADDR_NML: 0x00102000 + Parameter information for the loader: CSSCTL_V: 0x0000003F + Parameter information for the loader: LIOCFGCS0_V: 0x00070000 + Parameter information for the loader: ACCESS_SPEED: 0x00000006 + Parameter information for the loader: CHECK_SUM: Auto Calculate. + + R9A07G084M04GBG + part_number: R9A07G084M04GBG + atcm_size_bytes: 131072 + btcm_size_bytes: 131072 + system_ram_size_bytes: 1572864 + package_style: FBGA + package_pins: 225 + Cortex-R52 CPU core: CPU0 + + RZN2L Memory Config + Master MPU: MPU0 : DMAC Unit0: Enable or disable read control for Region 0: Disabled + Master MPU: MPU0 : DMAC Unit0: Enable or disable write control for Region 0: Disabled + Master MPU: MPU0 : DMAC Unit0: Region 0 Start: 0x00000000 + Master MPU: MPU0 : DMAC Unit0: Region 0 End: 0x00000C00 + Master MPU: MPU0 : DMAC Unit0: Enable or disable read control for Region 1: Disabled + Master MPU: MPU0 : DMAC Unit0: Enable or disable write control for Region 1: Disabled + Master MPU: MPU0 : DMAC Unit0: Region 1 Start: 0x00000000 + Master MPU: MPU0 : DMAC Unit0: Region 1 End: 0x00000C00 + Master MPU: MPU0 : DMAC Unit0: Enable or disable read control for Region 2: Disabled + Master MPU: MPU0 : DMAC Unit0: Enable or disable write control for Region 2: Disabled + Master MPU: MPU0 : DMAC Unit0: Region 2 Start: 0x00000000 + Master MPU: MPU0 : DMAC Unit0: Region 2 End: 0x00000C00 + Master MPU: MPU0 : DMAC Unit0: Enable or disable read control for Region 3: Disabled + Master MPU: MPU0 : DMAC Unit0: Enable or disable write control for Region 3: Disabled + Master MPU: MPU0 : DMAC Unit0: Region 3 Start: 0x00000000 + Master MPU: MPU0 : DMAC Unit0: Region 3 End: 0x00000C00 + Master MPU: MPU0 : DMAC Unit0: Enable or disable read control for Region 4: Disabled + Master MPU: MPU0 : DMAC Unit0: Enable or disable write control for Region 4: Disabled + Master MPU: MPU0 : DMAC Unit0: Region 4 Start: 0x00000000 + Master MPU: MPU0 : DMAC Unit0: Region 4 End: 0x00000C00 + Master MPU: MPU0 : DMAC Unit0: Enable or disable read control for Region 5: Disabled + Master MPU: MPU0 : DMAC Unit0: Enable or disable write control for Region 5: Disabled + Master MPU: MPU0 : DMAC Unit0: Region 5 Start: 0x00000000 + Master MPU: MPU0 : DMAC Unit0: Region 5 End: 0x00000C00 + Master MPU: MPU0 : DMAC Unit0: Enable or disable read control for Region 6: Disabled + Master MPU: MPU0 : DMAC Unit0: Enable or disable write control for Region 6: Disabled + Master MPU: MPU0 : DMAC Unit0: Region 6 Start: 0x00000000 + Master MPU: MPU0 : DMAC Unit0: Region 6 End: 0x00000C00 + Master MPU: MPU0 : DMAC Unit0: Enable or disable read control for Region 7: Disabled + Master MPU: MPU0 : DMAC Unit0: Enable or disable write control for Region 7: Disabled + Master MPU: MPU0 : DMAC Unit0: Region 7 Start: 0x00000000 + Master MPU: MPU0 : DMAC Unit0: Region 7 End: 0x00000C00 + Master MPU: MPU1 : DMAC Unit1: Enable or disable read control for Region 0: Disabled + Master MPU: MPU1 : DMAC Unit1: Enable or disable write control for Region 0: Disabled + Master MPU: MPU1 : DMAC Unit1: Region 0 Start: 0x00000000 + Master MPU: MPU1 : DMAC Unit1: Region 0 End: 0x00000C00 + Master MPU: MPU1 : DMAC Unit1: Enable or disable read control for Region 1: Disabled + Master MPU: MPU1 : DMAC Unit1: Enable or disable write control for Region 1: Disabled + Master MPU: MPU1 : DMAC Unit1: Region 1 Start: 0x00000000 + Master MPU: MPU1 : DMAC Unit1: Region 1 End: 0x00000C00 + Master MPU: MPU1 : DMAC Unit1: Enable or disable read control for Region 2: Disabled + Master MPU: MPU1 : DMAC Unit1: Enable or disable write control for Region 2: Disabled + Master MPU: MPU1 : DMAC Unit1: Region 2 Start: 0x00000000 + Master MPU: MPU1 : DMAC Unit1: Region 2 End: 0x00000C00 + Master MPU: MPU1 : DMAC Unit1: Enable or disable read control for Region 3: Disabled + Master MPU: MPU1 : DMAC Unit1: Enable or disable write control for Region 3: Disabled + Master MPU: MPU1 : DMAC Unit1: Region 3 Start: 0x00000000 + Master MPU: MPU1 : DMAC Unit1: Region 3 End: 0x00000C00 + Master MPU: MPU1 : DMAC Unit1: Enable or disable read control for Region 4: Disabled + Master MPU: MPU1 : DMAC Unit1: Enable or disable write control for Region 4: Disabled + Master MPU: MPU1 : DMAC Unit1: Region 4 Start: 0x00000000 + Master MPU: MPU1 : DMAC Unit1: Region 4 End: 0x00000C00 + Master MPU: MPU1 : DMAC Unit1: Enable or disable read control for Region 5: Disabled + Master MPU: MPU1 : DMAC Unit1: Enable or disable write control for Region 5: Disabled + Master MPU: MPU1 : DMAC Unit1: Region 5 Start: 0x00000000 + Master MPU: MPU1 : DMAC Unit1: Region 5 End: 0x00000C00 + Master MPU: MPU1 : DMAC Unit1: Enable or disable read control for Region 6: Disabled + Master MPU: MPU1 : DMAC Unit1: Enable or disable write control for Region 6: Disabled + Master MPU: MPU1 : DMAC Unit1: Region 6 Start: 0x00000000 + Master MPU: MPU1 : DMAC Unit1: Region 6 End: 0x00000C00 + Master MPU: MPU1 : DMAC Unit1: Enable or disable read control for Region 7: Disabled + Master MPU: MPU1 : DMAC Unit1: Enable or disable write control for Region 7: Disabled + Master MPU: MPU1 : DMAC Unit1: Region 7 Start: 0x00000000 + Master MPU: MPU1 : DMAC Unit1: Region 7 End: 0x00000C00 + Master MPU: MPU2 : GMAC: Enable or disable read control for Region 0: Disabled + Master MPU: MPU2 : GMAC: Enable or disable write control for Region 0: Disabled + Master MPU: MPU2 : GMAC: Region 0 Start: 0x00000000 + Master MPU: MPU2 : GMAC: Region 0 End: 0x00000C00 + Master MPU: MPU2 : GMAC: Enable or disable read control for Region 1: Disabled + Master MPU: MPU2 : GMAC: Enable or disable write control for Region 1: Disabled + Master MPU: MPU2 : GMAC: Region 1 Start: 0x00000000 + Master MPU: MPU2 : GMAC: Region 1 End: 0x00000C00 + Master MPU: MPU2 : GMAC: Enable or disable read control for Region 2: Disabled + Master MPU: MPU2 : GMAC: Enable or disable write control for Region 2: Disabled + Master MPU: MPU2 : GMAC: Region 2 Start: 0x00000000 + Master MPU: MPU2 : GMAC: Region 2 End: 0x00000C00 + Master MPU: MPU2 : GMAC: Enable or disable read control for Region 3: Disabled + Master MPU: MPU2 : GMAC: Enable or disable write control for Region 3: Disabled + Master MPU: MPU2 : GMAC: Region 3 Start: 0x00000000 + Master MPU: MPU2 : GMAC: Region 3 End: 0x00000C00 + Master MPU: MPU2 : GMAC: Enable or disable read control for Region 4: Disabled + Master MPU: MPU2 : GMAC: Enable or disable write control for Region 4: Disabled + Master MPU: MPU2 : GMAC: Region 4 Start: 0x00000000 + Master MPU: MPU2 : GMAC: Region 4 End: 0x00000C00 + Master MPU: MPU2 : GMAC: Enable or disable read control for Region 5: Disabled + Master MPU: MPU2 : GMAC: Enable or disable write control for Region 5: Disabled + Master MPU: MPU2 : GMAC: Region 5 Start: 0x00000000 + Master MPU: MPU2 : GMAC: Region 5 End: 0x00000C00 + Master MPU: MPU2 : GMAC: Enable or disable read control for Region 6: Disabled + Master MPU: MPU2 : GMAC: Enable or disable write control for Region 6: Disabled + Master MPU: MPU2 : GMAC: Region 6 Start: 0x00000000 + Master MPU: MPU2 : GMAC: Region 6 End: 0x00000C00 + Master MPU: MPU2 : GMAC: Enable or disable read control for Region 7: Disabled + Master MPU: MPU2 : GMAC: Enable or disable write control for Region 7: Disabled + Master MPU: MPU2 : GMAC: Region 7 Start: 0x00000000 + Master MPU: MPU2 : GMAC: Region 7 End: 0x00000C00 + Master MPU: MPU3 : USB Host: Enable or disable read control for Region 0: Disabled + Master MPU: MPU3 : USB Host: Enable or disable write control for Region 0: Disabled + Master MPU: MPU3 : USB Host: Region 0 Start: 0x00000000 + Master MPU: MPU3 : USB Host: Region 0 End: 0x00000000 + Master MPU: MPU3 : USB Host: Enable or disable read control for Region 1: Disabled + Master MPU: MPU3 : USB Host: Enable or disable write control for Region 1: Disabled + Master MPU: MPU3 : USB Host: Region 1 Start: 0x00000000 + Master MPU: MPU3 : USB Host: Region 1 End: 0x00000000 + Master MPU: MPU3 : USB Host: Enable or disable read control for Region 2: Disabled + Master MPU: MPU3 : USB Host: Enable or disable write control for Region 2: Disabled + Master MPU: MPU3 : USB Host: Region 2 Start: 0x00000000 + Master MPU: MPU3 : USB Host: Region 2 End: 0x00000000 + Master MPU: MPU3 : USB Host: Enable or disable read control for Region 3: Disabled + Master MPU: MPU3 : USB Host: Enable or disable write control for Region 3: Disabled + Master MPU: MPU3 : USB Host: Region 3 Start: 0x00000000 + Master MPU: MPU3 : USB Host: Region 3 End: 0x00000000 + Master MPU: MPU3 : USB Host: Enable or disable read control for Region 4: Disabled + Master MPU: MPU3 : USB Host: Enable or disable write control for Region 4: Disabled + Master MPU: MPU3 : USB Host: Region 4 Start: 0x00000000 + Master MPU: MPU3 : USB Host: Region 4 End: 0x00000000 + Master MPU: MPU3 : USB Host: Enable or disable read control for Region 5: Disabled + Master MPU: MPU3 : USB Host: Enable or disable write control for Region 5: Disabled + Master MPU: MPU3 : USB Host: Region 5 Start: 0x00000000 + Master MPU: MPU3 : USB Host: Region 5 End: 0x00000000 + Master MPU: MPU3 : USB Host: Enable or disable read control for Region 6: Disabled + Master MPU: MPU3 : USB Host: Enable or disable write control for Region 6: Disabled + Master MPU: MPU3 : USB Host: Region 6 Start: 0x00000000 + Master MPU: MPU3 : USB Host: Region 6 End: 0x00000000 + Master MPU: MPU3 : USB Host: Enable or disable read control for Region 7: Disabled + Master MPU: MPU3 : USB Host: Enable or disable write control for Region 7: Disabled + Master MPU: MPU3 : USB Host: Region 7 Start: 0x00000000 + Master MPU: MPU3 : USB Host: Region 7 End: 0x00000000 + Master MPU: MPU4 : USB Function: Enable or disable read control for Region 0: Disabled + Master MPU: MPU4 : USB Function: Enable or disable write control for Region 0: Disabled + Master MPU: MPU4 : USB Function: Region 0 Start: 0x00000000 + Master MPU: MPU4 : USB Function: Region 0 End: 0x00000000 + Master MPU: MPU4 : USB Function: Enable or disable read control for Region 1: Disabled + Master MPU: MPU4 : USB Function: Enable or disable write control for Region 1: Disabled + Master MPU: MPU4 : USB Function: Region 1 Start: 0x00000000 + Master MPU: MPU4 : USB Function: Region 1 End: 0x00000000 + Master MPU: MPU4 : USB Function: Enable or disable read control for Region 2: Disabled + Master MPU: MPU4 : USB Function: Enable or disable write control for Region 2: Disabled + Master MPU: MPU4 : USB Function: Region 2 Start: 0x00000000 + Master MPU: MPU4 : USB Function: Region 2 End: 0x00000000 + Master MPU: MPU4 : USB Function: Enable or disable read control for Region 3: Disabled + Master MPU: MPU4 : USB Function: Enable or disable write control for Region 3: Disabled + Master MPU: MPU4 : USB Function: Region 3 Start: 0x00000000 + Master MPU: MPU4 : USB Function: Region 3 End: 0x00000000 + Master MPU: MPU4 : USB Function: Enable or disable read control for Region 4: Disabled + Master MPU: MPU4 : USB Function: Enable or disable write control for Region 4: Disabled + Master MPU: MPU4 : USB Function: Region 4 Start: 0x00000000 + Master MPU: MPU4 : USB Function: Region 4 End: 0x00000000 + Master MPU: MPU4 : USB Function: Enable or disable read control for Region 5: Disabled + Master MPU: MPU4 : USB Function: Enable or disable write control for Region 5: Disabled + Master MPU: MPU4 : USB Function: Region 5 Start: 0x00000000 + Master MPU: MPU4 : USB Function: Region 5 End: 0x00000000 + Master MPU: MPU4 : USB Function: Enable or disable read control for Region 6: Disabled + Master MPU: MPU4 : USB Function: Enable or disable write control for Region 6: Disabled + Master MPU: MPU4 : USB Function: Region 6 Start: 0x00000000 + Master MPU: MPU4 : USB Function: Region 6 End: 0x00000000 + Master MPU: MPU4 : USB Function: Enable or disable read control for Region 7: Disabled + Master MPU: MPU4 : USB Function: Enable or disable write control for Region 7: Disabled + Master MPU: MPU4 : USB Function: Region 7 Start: 0x00000000 + Master MPU: MPU4 : USB Function: Region 7 End: 0x00000000 + Master MPU: MPU6 : CoreSight: Enable or disable read control for Region 0: Disabled + Master MPU: MPU6 : CoreSight: Enable or disable write control for Region 0: Disabled + Master MPU: MPU6 : CoreSight: Region 0 Start: 0x00000000 + Master MPU: MPU6 : CoreSight: Region 0 End: 0x00000C00 + Master MPU: MPU6 : CoreSight: Enable or disable read control for Region 1: Disabled + Master MPU: MPU6 : CoreSight: Enable or disable write control for Region 1: Disabled + Master MPU: MPU6 : CoreSight: Region 1 Start: 0x00000000 + Master MPU: MPU6 : CoreSight: Region 1 End: 0x00000C00 + Master MPU: MPU6 : CoreSight: Enable or disable read control for Region 2: Disabled + Master MPU: MPU6 : CoreSight: Enable or disable write control for Region 2: Disabled + Master MPU: MPU6 : CoreSight: Region 2 Start: 0x00000000 + Master MPU: MPU6 : CoreSight: Region 2 End: 0x00000C00 + Master MPU: MPU6 : CoreSight: Enable or disable read control for Region 3: Disabled + Master MPU: MPU6 : CoreSight: Enable or disable write control for Region 3: Disabled + Master MPU: MPU6 : CoreSight: Region 3 Start: 0x00000000 + Master MPU: MPU6 : CoreSight: Region 3 End: 0x00000C00 + Master MPU: MPU6 : CoreSight: Enable or disable read control for Region 4: Disabled + Master MPU: MPU6 : CoreSight: Enable or disable write control for Region 4: Disabled + Master MPU: MPU6 : CoreSight: Region 4 Start: 0x00000000 + Master MPU: MPU6 : CoreSight: Region 4 End: 0x00000C00 + Master MPU: MPU6 : CoreSight: Enable or disable read control for Region 5: Disabled + Master MPU: MPU6 : CoreSight: Enable or disable write control for Region 5: Disabled + Master MPU: MPU6 : CoreSight: Region 5 Start: 0x00000000 + Master MPU: MPU6 : CoreSight: Region 5 End: 0x00000C00 + Master MPU: MPU6 : CoreSight: Enable or disable read control for Region 6: Disabled + Master MPU: MPU6 : CoreSight: Enable or disable write control for Region 6: Disabled + Master MPU: MPU6 : CoreSight: Region 6 Start: 0x00000000 + Master MPU: MPU6 : CoreSight: Region 6 End: 0x00000C00 + Master MPU: MPU6 : CoreSight: Enable or disable read control for Region 7: Disabled + Master MPU: MPU6 : CoreSight: Enable or disable write control for Region 7: Disabled + Master MPU: MPU6 : CoreSight: Region 7 Start: 0x00000000 + Master MPU: MPU6 : CoreSight: Region 7 End: 0x00000C00 + Master MPU: MPU7 : SHOSTIF: Enable or disable read control for Region 0: Disabled + Master MPU: MPU7 : SHOSTIF: Enable or disable write control for Region 0: Disabled + Master MPU: MPU7 : SHOSTIF: Region 0 Start: 0x00000000 + Master MPU: MPU7 : SHOSTIF: Region 0 End: 0x00000000 + Master MPU: MPU7 : SHOSTIF: Enable or disable read control for Region 1: Disabled + Master MPU: MPU7 : SHOSTIF: Enable or disable write control for Region 1: Disabled + Master MPU: MPU7 : SHOSTIF: Region 1 Start: 0x00000000 + Master MPU: MPU7 : SHOSTIF: Region 1 End: 0x00000000 + Master MPU: MPU7 : SHOSTIF: Enable or disable read control for Region 2: Disabled + Master MPU: MPU7 : SHOSTIF: Enable or disable write control for Region 2: Disabled + Master MPU: MPU7 : SHOSTIF: Region 2 Start: 0x00000000 + Master MPU: MPU7 : SHOSTIF: Region 2 End: 0x00000000 + Master MPU: MPU7 : SHOSTIF: Enable or disable read control for Region 3: Disabled + Master MPU: MPU7 : SHOSTIF: Enable or disable write control for Region 3: Disabled + Master MPU: MPU7 : SHOSTIF: Region 3 Start: 0x00000000 + Master MPU: MPU7 : SHOSTIF: Region 3 End: 0x00000000 + Master MPU: MPU7 : SHOSTIF: Enable or disable read control for Region 4: Disabled + Master MPU: MPU7 : SHOSTIF: Enable or disable write control for Region 4: Disabled + Master MPU: MPU7 : SHOSTIF: Region 4 Start: 0x00000000 + Master MPU: MPU7 : SHOSTIF: Region 4 End: 0x00000000 + Master MPU: MPU7 : SHOSTIF: Enable or disable read control for Region 5: Disabled + Master MPU: MPU7 : SHOSTIF: Enable or disable write control for Region 5: Disabled + Master MPU: MPU7 : SHOSTIF: Region 5 Start: 0x00000000 + Master MPU: MPU7 : SHOSTIF: Region 5 End: 0x00000000 + Master MPU: MPU7 : SHOSTIF: Enable or disable read control for Region 6: Disabled + Master MPU: MPU7 : SHOSTIF: Enable or disable write control for Region 6: Disabled + Master MPU: MPU7 : SHOSTIF: Region 6 Start: 0x00000000 + Master MPU: MPU7 : SHOSTIF: Region 6 End: 0x00000000 + Master MPU: MPU7 : SHOSTIF: Enable or disable read control for Region 7: Disabled + Master MPU: MPU7 : SHOSTIF: Enable or disable write control for Region 7: Disabled + Master MPU: MPU7 : SHOSTIF: Region 7 Start: 0x00000000 + Master MPU: MPU7 : SHOSTIF: Region 7 End: 0x00000000 + Master MPU: MPU8 : PHOSTIF: Enable or disable read control for Region 0: Disabled + Master MPU: MPU8 : PHOSTIF: Enable or disable write control for Region 0: Disabled + Master MPU: MPU8 : PHOSTIF: Region 0 Start: 0x00000000 + Master MPU: MPU8 : PHOSTIF: Region 0 End: 0x00000000 + Master MPU: MPU8 : PHOSTIF: Enable or disable read control for Region 1: Disabled + Master MPU: MPU8 : PHOSTIF: Enable or disable write control for Region 1: Disabled + Master MPU: MPU8 : PHOSTIF: Region 1 Start: 0x00000000 + Master MPU: MPU8 : PHOSTIF: Region 1 End: 0x00000000 + Master MPU: MPU8 : PHOSTIF: Enable or disable read control for Region 2: Disabled + Master MPU: MPU8 : PHOSTIF: Enable or disable write control for Region 2: Disabled + Master MPU: MPU8 : PHOSTIF: Region 2 Start: 0x00000000 + Master MPU: MPU8 : PHOSTIF: Region 2 End: 0x00000000 + Master MPU: MPU8 : PHOSTIF: Enable or disable read control for Region 3: Disabled + Master MPU: MPU8 : PHOSTIF: Enable or disable write control for Region 3: Disabled + Master MPU: MPU8 : PHOSTIF: Region 3 Start: 0x00000000 + Master MPU: MPU8 : PHOSTIF: Region 3 End: 0x00000000 + Master MPU: MPU8 : PHOSTIF: Enable or disable read control for Region 4: Disabled + Master MPU: MPU8 : PHOSTIF: Enable or disable write control for Region 4: Disabled + Master MPU: MPU8 : PHOSTIF: Region 4 Start: 0x00000000 + Master MPU: MPU8 : PHOSTIF: Region 4 End: 0x00000000 + Master MPU: MPU8 : PHOSTIF: Enable or disable read control for Region 5: Disabled + Master MPU: MPU8 : PHOSTIF: Enable or disable write control for Region 5: Disabled + Master MPU: MPU8 : PHOSTIF: Region 5 Start: 0x00000000 + Master MPU: MPU8 : PHOSTIF: Region 5 End: 0x00000000 + Master MPU: MPU8 : PHOSTIF: Enable or disable read control for Region 6: Disabled + Master MPU: MPU8 : PHOSTIF: Enable or disable write control for Region 6: Disabled + Master MPU: MPU8 : PHOSTIF: Region 6 Start: 0x00000000 + Master MPU: MPU8 : PHOSTIF: Region 6 End: 0x00000000 + Master MPU: MPU8 : PHOSTIF: Enable or disable read control for Region 7: Disabled + Master MPU: MPU8 : PHOSTIF: Enable or disable write control for Region 7: Disabled + Master MPU: MPU8 : PHOSTIF: Region 7 Start: 0x00000000 + Master MPU: MPU8 : PHOSTIF: Region 7 End: 0x00000000 + CPU MPU: Attribute: Attribute 0: Memory Type: Normal memory + CPU MPU: Attribute: Attribute 0: Normal Memory: Inner: Memory Attribute Indirection: Write-Back non-transient + CPU MPU: Attribute: Attribute 0: Normal Memory: Inner: Read: Allocate + CPU MPU: Attribute: Attribute 0: Normal Memory: Inner: Write: Allocate + CPU MPU: Attribute: Attribute 0: Normal Memory: Outer: Memory Attribute Indirection: Write-Back non-transient + CPU MPU: Attribute: Attribute 0: Normal Memory: Outer: Read: Allocate + CPU MPU: Attribute: Attribute 0: Normal Memory: Outer: Write: Allocate + CPU MPU: Attribute: Attribute 0: Device Memory: Device Type: Device-nGnRnE memory + CPU MPU: Attribute: Attribute 1: Memory Type: Normal memory + CPU MPU: Attribute: Attribute 1: Normal Memory: Inner: Memory Attribute Indirection: Write-Through non-transient + CPU MPU: Attribute: Attribute 1: Normal Memory: Inner: Read: Allocate + CPU MPU: Attribute: Attribute 1: Normal Memory: Inner: Write: Allocate + CPU MPU: Attribute: Attribute 1: Normal Memory: Outer: Memory Attribute Indirection: Write-Through non-transient + CPU MPU: Attribute: Attribute 1: Normal Memory: Outer: Read: Allocate + CPU MPU: Attribute: Attribute 1: Normal Memory: Outer: Write: Allocate + CPU MPU: Attribute: Attribute 1: Device Memory: Device Type: Device-nGnRnE memory + CPU MPU: Attribute: Attribute 2: Memory Type: Normal memory + CPU MPU: Attribute: Attribute 2: Normal Memory: Inner: Memory Attribute Indirection: Write-Through non-transient + CPU MPU: Attribute: Attribute 2: Normal Memory: Inner: Read: Do not allocate + CPU MPU: Attribute: Attribute 2: Normal Memory: Inner: Write: Do not allocate + CPU MPU: Attribute: Attribute 2: Normal Memory: Outer: Memory Attribute Indirection: Write-Through non-transient + CPU MPU: Attribute: Attribute 2: Normal Memory: Outer: Read: Do not allocate + CPU MPU: Attribute: Attribute 2: Normal Memory: Outer: Write: Do not allocate + CPU MPU: Attribute: Attribute 2: Device Memory: Device Type: Device-nGnRnE memory + CPU MPU: Attribute: Attribute 3: Memory Type: Normal memory + CPU MPU: Attribute: Attribute 3: Normal Memory: Inner: Memory Attribute Indirection: Non-Cacheable + CPU MPU: Attribute: Attribute 3: Normal Memory: Inner: Read: Do not allocate + CPU MPU: Attribute: Attribute 3: Normal Memory: Inner: Write: Do not allocate + CPU MPU: Attribute: Attribute 3: Normal Memory: Outer: Memory Attribute Indirection: Non-Cacheable + CPU MPU: Attribute: Attribute 3: Normal Memory: Outer: Read: Do not allocate + CPU MPU: Attribute: Attribute 3: Normal Memory: Outer: Write: Do not allocate + CPU MPU: Attribute: Attribute 3: Device Memory: Device Type: Device-nGnRnE memory + CPU MPU: Attribute: Attribute 4: Memory Type: Device memory + CPU MPU: Attribute: Attribute 4: Normal Memory: Inner: Memory Attribute Indirection: Write-Through transient + CPU MPU: Attribute: Attribute 4: Normal Memory: Inner: Read: Do not allocate + CPU MPU: Attribute: Attribute 4: Normal Memory: Inner: Write: Do not allocate + CPU MPU: Attribute: Attribute 4: Normal Memory: Outer: Memory Attribute Indirection: Write-Through transient + CPU MPU: Attribute: Attribute 4: Normal Memory: Outer: Read: Do not allocate + CPU MPU: Attribute: Attribute 4: Normal Memory: Outer: Write: Do not allocate + CPU MPU: Attribute: Attribute 4: Device Memory: Device Type: Device-nGnRnE memory + CPU MPU: Attribute: Attribute 5: Memory Type: Device memory + CPU MPU: Attribute: Attribute 5: Normal Memory: Inner: Memory Attribute Indirection: Write-Through transient + CPU MPU: Attribute: Attribute 5: Normal Memory: Inner: Read: Do not allocate + CPU MPU: Attribute: Attribute 5: Normal Memory: Inner: Write: Do not allocate + CPU MPU: Attribute: Attribute 5: Normal Memory: Outer: Memory Attribute Indirection: Write-Through transient + CPU MPU: Attribute: Attribute 5: Normal Memory: Outer: Read: Do not allocate + CPU MPU: Attribute: Attribute 5: Normal Memory: Outer: Write: Do not allocate + CPU MPU: Attribute: Attribute 5: Device Memory: Device Type: Device-nGnRE memory + CPU MPU: Attribute: Attribute 6: Memory Type: Device memory + CPU MPU: Attribute: Attribute 6: Normal Memory: Inner: Memory Attribute Indirection: Write-Through transient + CPU MPU: Attribute: Attribute 6: Normal Memory: Inner: Read: Do not allocate + CPU MPU: Attribute: Attribute 6: Normal Memory: Inner: Write: Do not allocate + CPU MPU: Attribute: Attribute 6: Normal Memory: Outer: Memory Attribute Indirection: Write-Through transient + CPU MPU: Attribute: Attribute 6: Normal Memory: Outer: Read: Do not allocate + CPU MPU: Attribute: Attribute 6: Normal Memory: Outer: Write: Do not allocate + CPU MPU: Attribute: Attribute 6: Device Memory: Device Type: Device-nGRE memory + CPU MPU: Attribute: Attribute 7: Memory Type: Device memory + CPU MPU: Attribute: Attribute 7: Normal Memory: Inner: Memory Attribute Indirection: Write-Through transient + CPU MPU: Attribute: Attribute 7: Normal Memory: Inner: Read: Do not allocate + CPU MPU: Attribute: Attribute 7: Normal Memory: Inner: Write: Do not allocate + CPU MPU: Attribute: Attribute 7: Normal Memory: Outer: Memory Attribute Indirection: Write-Through transient + CPU MPU: Attribute: Attribute 7: Normal Memory: Outer: Read: Do not allocate + CPU MPU: Attribute: Attribute 7: Normal Memory: Outer: Write: Do not allocate + CPU MPU: Attribute: Attribute 7: Device Memory: Device Type: Device-GRE memory + CPU MPU: Region: Region 00: Name: ATCM + CPU MPU: Region: Region 00: Base: 0x00000000 + CPU MPU: Region: Region 00: Limit: 0x0001FFFF + CPU MPU: Region: Region 00: Sharebility field: Outer Shareable + CPU MPU: Region: Region 00: Access Permission(EL1 / EL0): ReadWrite / ReadWrite + CPU MPU: Region: Region 00: Execute never: Execute Enable + CPU MPU: Region: Region 00: Attribute Index: Attribute 3 + CPU MPU: Region: Region 00: Region enable: Enabled + CPU MPU: Region: Region 01: Name: BTCM + CPU MPU: Region: Region 01: Base: 0x00100000 + CPU MPU: Region: Region 01: Limit: 0x0011FFFF + CPU MPU: Region: Region 01: Sharebility field: Outer Shareable + CPU MPU: Region: Region 01: Access Permission(EL1 / EL0): ReadWrite / ReadWrite + CPU MPU: Region: Region 01: Execute never: Execute Enable + CPU MPU: Region: Region 01: Attribute Index: Attribute 3 + CPU MPU: Region: Region 01: Region enable: Enabled + CPU MPU: Region: Region 02: Name: System RAM + CPU MPU: Region: Region 02: Base: 0x10000000 + CPU MPU: Region: Region 02: Limit: 0x1017FFFF + CPU MPU: Region: Region 02: Sharebility field: Non-shareable + CPU MPU: Region: Region 02: Access Permission(EL1 / EL0): ReadWrite / ReadWrite + CPU MPU: Region: Region 02: Execute never: Execute Enable + CPU MPU: Region: Region 02: Attribute Index: Attribute 1 + CPU MPU: Region: Region 02: Region enable: Enabled + CPU MPU: Region: Region 03: Name: Mirror area of System RAM + CPU MPU: Region: Region 03: Base: 0x30000000 + CPU MPU: Region: Region 03: Limit: 0x3017FFFF + CPU MPU: Region: Region 03: Sharebility field: Outer Shareable + CPU MPU: Region: Region 03: Access Permission(EL1 / EL0): ReadWrite / ReadWrite + CPU MPU: Region: Region 03: Execute never: Execute Enable + CPU MPU: Region: Region 03: Attribute Index: Attribute 3 + CPU MPU: Region: Region 03: Region enable: Enabled + CPU MPU: Region: Region 04: Name: Mirror area of external address space + CPU MPU: Region: Region 04: Base: 0x40000000 + CPU MPU: Region: Region 04: Limit: 0x5FFFFFFF + CPU MPU: Region: Region 04: Sharebility field: Outer Shareable + CPU MPU: Region: Region 04: Access Permission(EL1 / EL0): ReadWrite / ReadWrite + CPU MPU: Region: Region 04: Execute never: Execute Enable + CPU MPU: Region: Region 04: Attribute Index: Attribute 3 + CPU MPU: Region: Region 04: Region enable: Enabled + CPU MPU: Region: Region 05: Name: External address space + CPU MPU: Region: Region 05: Base: 0x60000000 + CPU MPU: Region: Region 05: Limit: 0x7FFFFFFF + CPU MPU: Region: Region 05: Sharebility field: Non-shareable + CPU MPU: Region: Region 05: Access Permission(EL1 / EL0): ReadWrite / ReadWrite + CPU MPU: Region: Region 05: Execute never: Execute Enable + CPU MPU: Region: Region 05: Attribute Index: Attribute 1 + CPU MPU: Region: Region 05: Region enable: Enabled + CPU MPU: Region: Region 06: Name: Non-Safety Peripheral + CPU MPU: Region: Region 06: Base: 0x80000000 + CPU MPU: Region: Region 06: Limit: 0x80FFFFFF + CPU MPU: Region: Region 06: Sharebility field: Outer Shareable + CPU MPU: Region: Region 06: Access Permission(EL1 / EL0): ReadWrite / ReadWrite + CPU MPU: Region: Region 06: Execute never: Execute Never + CPU MPU: Region: Region 06: Attribute Index: Attribute 5 + CPU MPU: Region: Region 06: Region enable: Enabled + CPU MPU: Region: Region 07: Name: Safety Peripheral + CPU MPU: Region: Region 07: Base: 0x81000000 + CPU MPU: Region: Region 07: Limit: 0x81FFFFFF + CPU MPU: Region: Region 07: Sharebility field: Outer Shareable + CPU MPU: Region: Region 07: Access Permission(EL1 / EL0): ReadWrite / ReadWrite + CPU MPU: Region: Region 07: Execute never: Execute Never + CPU MPU: Region: Region 07: Attribute Index: Attribute 5 + CPU MPU: Region: Region 07: Region enable: Enabled + CPU MPU: Region: Region 08: Name: LLPP Peripheral + CPU MPU: Region: Region 08: Base: 0x90000000 + CPU MPU: Region: Region 08: Limit: 0x901FFFFF + CPU MPU: Region: Region 08: Sharebility field: Outer Shareable + CPU MPU: Region: Region 08: Access Permission(EL1 / EL0): ReadWrite / ReadWrite + CPU MPU: Region: Region 08: Execute never: Execute Never + CPU MPU: Region: Region 08: Attribute Index: Attribute 5 + CPU MPU: Region: Region 08: Region enable: Enabled + CPU MPU: Region: Region 09: Name: GIC0 + CPU MPU: Region: Region 09: Base: 0x94000000 + CPU MPU: Region: Region 09: Limit: 0x941FFFFF + CPU MPU: Region: Region 09: Sharebility field: Outer Shareable + CPU MPU: Region: Region 09: Access Permission(EL1 / EL0): ReadWrite / ReadWrite + CPU MPU: Region: Region 09: Execute never: Execute Never + CPU MPU: Region: Region 09: Attribute Index: Attribute 4 + CPU MPU: Region: Region 09: Region enable: Enabled + CPU MPU: Region: Region 10: Name: Debug Private + CPU MPU: Region: Region 10: Base: 0xC0000000 + CPU MPU: Region: Region 10: Limit: 0xC0FFFFFF + CPU MPU: Region: Region 10: Sharebility field: Outer Shareable + CPU MPU: Region: Region 10: Access Permission(EL1 / EL0): ReadWrite / ReadWrite + CPU MPU: Region: Region 10: Execute never: Execute Never + CPU MPU: Region: Region 10: Attribute Index: Attribute 4 + CPU MPU: Region: Region 10: Region enable: Enabled + CPU MPU: Region: Region 11: Name: Not Used + CPU MPU: Region: Region 11: Base: 0x00000000 + CPU MPU: Region: Region 11: Limit: 0x00000000 + CPU MPU: Region: Region 11: Sharebility field: Non-shareable + CPU MPU: Region: Region 11: Access Permission(EL1 / EL0): ReadWrite / None + CPU MPU: Region: Region 11: Execute never: Execute Enable + CPU MPU: Region: Region 11: Attribute Index: Attribute 0 + CPU MPU: Region: Region 11: Region enable: Disabled + CPU MPU: Region: Region 12: Name: Not Used + CPU MPU: Region: Region 12: Base: 0x00000000 + CPU MPU: Region: Region 12: Limit: 0x00000000 + CPU MPU: Region: Region 12: Sharebility field: Non-shareable + CPU MPU: Region: Region 12: Access Permission(EL1 / EL0): ReadWrite / None + CPU MPU: Region: Region 12: Execute never: Execute Enable + CPU MPU: Region: Region 12: Attribute Index: Attribute 0 + CPU MPU: Region: Region 12: Region enable: Disabled + CPU MPU: Region: Region 13: Name: Not Used + CPU MPU: Region: Region 13: Base: 0x00000000 + CPU MPU: Region: Region 13: Limit: 0x00000000 + CPU MPU: Region: Region 13: Sharebility field: Non-shareable + CPU MPU: Region: Region 13: Access Permission(EL1 / EL0): ReadWrite / None + CPU MPU: Region: Region 13: Execute never: Execute Enable + CPU MPU: Region: Region 13: Attribute Index: Attribute 0 + CPU MPU: Region: Region 13: Region enable: Disabled + CPU MPU: Region: Region 14: Name: Not Used + CPU MPU: Region: Region 14: Base: 0x00000000 + CPU MPU: Region: Region 14: Limit: 0x00000000 + CPU MPU: Region: Region 14: Sharebility field: Non-shareable + CPU MPU: Region: Region 14: Access Permission(EL1 / EL0): ReadWrite / None + CPU MPU: Region: Region 14: Execute never: Execute Enable + CPU MPU: Region: Region 14: Attribute Index: Attribute 0 + CPU MPU: Region: Region 14: Region enable: Disabled + CPU MPU: Region: Region 15: Name: Not Used + CPU MPU: Region: Region 15: Base: 0x00000000 + CPU MPU: Region: Region 15: Limit: 0x00000000 + CPU MPU: Region: Region 15: Sharebility field: Non-shareable + CPU MPU: Region: Region 15: Access Permission(EL1 / EL0): ReadWrite / None + CPU MPU: Region: Region 15: Execute never: Execute Enable + CPU MPU: Region: Region 15: Attribute Index: Attribute 0 + CPU MPU: Region: Region 15: Region enable: Disabled + CPU MPU: Region: Region 16: Name: Not Used + CPU MPU: Region: Region 16: Base: 0x00000000 + CPU MPU: Region: Region 16: Limit: 0x00000000 + CPU MPU: Region: Region 16: Sharebility field: Non-shareable + CPU MPU: Region: Region 16: Access Permission(EL1 / EL0): ReadWrite / None + CPU MPU: Region: Region 16: Execute never: Execute Enable + CPU MPU: Region: Region 16: Attribute Index: Attribute 0 + CPU MPU: Region: Region 16: Region enable: Disabled + CPU MPU: Region: Region 17: Name: Not Used + CPU MPU: Region: Region 17: Base: 0x00000000 + CPU MPU: Region: Region 17: Limit: 0x00000000 + CPU MPU: Region: Region 17: Sharebility field: Non-shareable + CPU MPU: Region: Region 17: Access Permission(EL1 / EL0): ReadWrite / None + CPU MPU: Region: Region 17: Execute never: Execute Enable + CPU MPU: Region: Region 17: Attribute Index: Attribute 0 + CPU MPU: Region: Region 17: Region enable: Disabled + CPU MPU: Region: Region 18: Name: Not Used + CPU MPU: Region: Region 18: Base: 0x00000000 + CPU MPU: Region: Region 18: Limit: 0x00000000 + CPU MPU: Region: Region 18: Sharebility field: Non-shareable + CPU MPU: Region: Region 18: Access Permission(EL1 / EL0): ReadWrite / None + CPU MPU: Region: Region 18: Execute never: Execute Enable + CPU MPU: Region: Region 18: Attribute Index: Attribute 0 + CPU MPU: Region: Region 18: Region enable: Disabled + CPU MPU: Region: Region 19: Name: Not Used + CPU MPU: Region: Region 19: Base: 0x00000000 + CPU MPU: Region: Region 19: Limit: 0x00000000 + CPU MPU: Region: Region 19: Sharebility field: Non-shareable + CPU MPU: Region: Region 19: Access Permission(EL1 / EL0): ReadWrite / None + CPU MPU: Region: Region 19: Execute never: Execute Enable + CPU MPU: Region: Region 19: Attribute Index: Attribute 0 + CPU MPU: Region: Region 19: Region enable: Disabled + CPU MPU: Region: Region 20: Name: Not Used + CPU MPU: Region: Region 20: Base: 0x00000000 + CPU MPU: Region: Region 20: Limit: 0x00000000 + CPU MPU: Region: Region 20: Sharebility field: Non-shareable + CPU MPU: Region: Region 20: Access Permission(EL1 / EL0): ReadWrite / None + CPU MPU: Region: Region 20: Execute never: Execute Enable + CPU MPU: Region: Region 20: Attribute Index: Attribute 0 + CPU MPU: Region: Region 20: Region enable: Disabled + CPU MPU: Region: Region 21: Name: Not Used + CPU MPU: Region: Region 21: Base: 0x00000000 + CPU MPU: Region: Region 21: Limit: 0x00000000 + CPU MPU: Region: Region 21: Sharebility field: Non-shareable + CPU MPU: Region: Region 21: Access Permission(EL1 / EL0): ReadWrite / None + CPU MPU: Region: Region 21: Execute never: Execute Enable + CPU MPU: Region: Region 21: Attribute Index: Attribute 0 + CPU MPU: Region: Region 21: Region enable: Disabled + CPU MPU: Region: Region 22: Name: Not Used + CPU MPU: Region: Region 22: Base: 0x00000000 + CPU MPU: Region: Region 22: Limit: 0x00000000 + CPU MPU: Region: Region 22: Sharebility field: Non-shareable + CPU MPU: Region: Region 22: Access Permission(EL1 / EL0): ReadWrite / None + CPU MPU: Region: Region 22: Execute never: Execute Enable + CPU MPU: Region: Region 22: Attribute Index: Attribute 0 + CPU MPU: Region: Region 22: Region enable: Disabled + CPU MPU: Region: Region 23: Name: Not Used + CPU MPU: Region: Region 23: Base: 0x00000000 + CPU MPU: Region: Region 23: Limit: 0x00000000 + CPU MPU: Region: Region 23: Sharebility field: Non-shareable + CPU MPU: Region: Region 23: Access Permission(EL1 / EL0): ReadWrite / None + CPU MPU: Region: Region 23: Execute never: Execute Enable + CPU MPU: Region: Region 23: Attribute Index: Attribute 0 + CPU MPU: Region: Region 23: Region enable: Disabled + CPU MPU: Background Region: Disabled + CPU MPU: Instruction Cache: Enabled + CPU MPU: Data Cache: Enabled + + RZN2L + stack size (bytes): FIQ stack size: 0x400 + stack size (bytes): IRQ stack size: 0x400 + stack size (bytes): ABT stack size: 0x400 + stack size (bytes): UND stack size: 0x400 + stack size (bytes): SYS stack size: 0x400 + stack size (bytes): SVC stack size: 0x400 + Heap size (bytes): 0x2000 + C Runtime Initialization : Enabled + TFU Mathlib: Enabled + + RZN2L Family + + RZN Common + MCU Vcc (mV): 3300 + Parameter checking: Disabled + Assert Failures: Return FSP_ERR_ASSERTION + Error Log: No Error Log + Soft Reset: Disabled + Port Protect: Enabled + Early BSP Initialization : Disabled + Multiplex Interrupt: Disabled + + Clocks + LOCO Enabled + PLL1 is initial state + Ethernet Clock src: Main clock oscillator + CLMA0 Enabled + CLMA0 error not mask + CLMA3 error not mask + CLMA1 error mask + CLMA3 Enabled + CLMA1 Enabled + CLMA2 Enabled + CLMA0 CMPL 1 + CLMA1 CMPL 1 + CLMA2 CMPL 1 + CLMA3 CMPL 1 + Alternative clock: LOCO + CLMA0 CMPH 1023 + CLMA1 CMPH 1023 + CLMA2 CMPH 1023 + CLMA3 CMPH 1023 + ICLK 200MHz + CPU0CLK Mulx2 + CKIO Div/4 + SCI0ASYNCCLK: 96MHz + SCI1ASYNCCLK: 96MHz + SCI2ASYNCCLK: 96MHz + SCI3ASYNCCLK: 96MHz + SCI4ASYNCCLK: 96MHz + SCI5ASYNCCLK: 96MHz + SPI0ASYNCCLK: 96MHz + SPI1ASYNCCLK: 96MHz + SPI2ASYNCCLK: 96MHz + SPI3ASYNCCLK: 96MHz + PCLKCAN 40MHz + XSPI_CLK0 12.5MHz + XSPI_CLK1 12.5MHz + + Pin Configurations + RSK+RZN2L -> g_bsp_pin_cfg + AN000 B13 SYSTEM_AN000 - - - - - - - - I "Read only" - + AN001 C12 SYSTEM_AN001 - - - - - - - - I "Read only" - + AN002 B14 SYSTEM_AN002 - - - - - - - - I "Read only" - + AN003 C13 SYSTEM_AN003 - - - - - - - - I "Read only" - + AN100 B12 SYSTEM_AN100 - - - - - - - - I "Read only" - + AN101 A14 SYSTEM_AN101 - - - - - - - - I "Read only" - + AN102 B11 SYSTEM_AN102 - - - - - - - - I "Read only" - + AN103 A13 SYSTEM_AN103 - - - - - - - - I "Read only" - + AN104 A12 SYSTEM_AN104 - - - - - - - - I "Read only" - + AN105 B10 SYSTEM_AN105 - - - - - - - - I "Read only" - + AN106 A11 SYSTEM_AN106 - - - - - - - - I "Read only" - + AN107 C9 SYSTEM_AN107 - - - - - - - - I "Read only" - + AVCC18_TSU C14 SYSTEM_AVCC18_TSU - - - - - - - - I "Read only" - + AVCC18_USB P10 SYSTEM_AVCC18_USB - - - - - - - - I "Read only" - + AVCC18_USB R10 SYSTEM_AVCC18_USB - - - - - - - - I "Read only" - + BSCANP G2 SYSTEM_BSCANP - - - - - - - - I "Read only" - + EXTAL R7 CGC_EXTAL - - - - - - - - I "Read only" - + EXTCLKIN R6 CGC_EXTCLKIN - - - - - - - - I "Read only" - + MDX P5 SYSTEM_MDX - - - - - - - - IO "Read only" - + P00_0 C4 - ETH2_RXD3 - - Disabled - - "BSC: D15; ETHER_ETH2: ETH2_RXD3; PHOSTIF: HD15; SCI2: DE2; SCI2: SCK2" - None - - + P00_1 D5 - ETH2_RXDV - - Disabled - - "BSC: A13; ETHER_ETH2: ETH2_RXDV_CRSDV_RXCTL; IRQ: IRQ0; MTU35: MTIC5U; SCI2: RXD_MISO2; SCI2: SCL2" - None - - + P00_2 A3 - ETH2_TXEN - - Disabled - - "BSC: RD#; ETHER_ETH2: ETH2_TXEN_TXCTL; MTU35: MTIC5V; SCI2: SDA2; SCI2: TXD_MOSI2; USB_HS: USB_OVRCUR" - None - - + P00_3 B3 - ETH2_REFCLK - - Disabled - - "BSC: RD_WR#; ETHER_ETH2: ETH2_REFCLK; ETHER_ETH2: ETH2_RMII2_REFCLK; IRQ: IRQ1; MTU35: MTIC5W; SCI2: CTS_RTS_SS2#" - None - - + P00_4 A4 - - - - Disabled - - "BSC: WAIT#; DSMIF0: MCLK0; ETHER_ETH2: ETH2_RXER; GPT0: GTIOC0A; IRQ: IRQ13; MTU33: MTIOC3A; PHOSTIF: HWAIT#" - None - - + P00_5 B4 - ETH2_LINK - - Disabled - - "BSC: CS0#; DSMIF0: MDAT0; ETHER_ESC: ESC_PHYLINK0; ETHER_ESC: ESC_PHYLINK2; ETHER_ETHSW: ETHSW_PHYLINK0; ETHER_ETHSW: ETHSW_PHYLINK2; GPT0: GTIOC0B; MTU33: MTIOC3C" - None - - + P00_6 C3 - ETH2_TXCLK - - Disabled - - "BSC: CS5#; ETHER_ETH2: ETH2_TXCLK_TXC; GPT1: GTIOC1A; MTU33: MTIOC3B" - None - - + P00_7 D4 - - - - Disabled - - "BSC: RAS#; GPT2: GTIOC2A; IRQ: IRQ13; MTU34: MTIOC4A" - None - - + P01_0 A2 - - - - Disabled - - "BSC: CAS#; DSMIF1: MCLK1; ETHER_ESC: ESC_MDIO; ETHER_ETHSW: ETHSW_MDIO; ETHER_GMAC: GMAC_MDIO; GPT3: GTIOC3A; MTU34: MTIOC4C; SCI2: CTS2#" - None - - + P01_1 D3 - - - - Disabled - - "BSC: CKE; DSMIF1: MDAT1; ETHER_ESC: ESC_MDC; ETHER_ETHSW: ETHSW_MDC; ETHER_GMAC: GMAC_MDC; GPT1: GTIOC1B; MTU33: MTIOC3D; SCI2: DE2" - None - - + P01_2 B2 - ETH2_TXD3 - - Disabled - - "BSC: CS2#; ETHER_ETH2: ETH2_TXD3; GPT2: GTIOC2B; IRQ: IRQ2; MTU34: MTIOC4B" - None - - + P01_3 C2 - ETH2_TXD2 - - Disabled - - "BSC: AH#; ETHER_ETH2: ETH2_TXD2; GPT3: GTIOC3B; MTU34: MTIOC4D" - None - - + P01_4 E4 - ETH2_TXD1 - - Disabled - - "BSC: WE1#_DQMLU; ETHER_ETH2: ETH2_TXD1; IRQ: IRQ3; MTU_POE3: POE0#" - None - - + P01_5 B1 - ETH2_TXD0 - - Disabled - - "BSC: WE0#_DQMLL; ETHER_ETH2: ETH2_TXD0" - None - - + P01_6 D2 - - - - Disabled - - "BSC: A20; CANFD1: CANTXDP1; ETHER_ESC: ESC_LATCH0; ETHER_ESC: ESC_LATCH1; ETHER_GMAC: GMAC_PTPTRG1; GPT9: GTIOC9A; MTU31: MTIOC1A; PHOSTIF: HA20; SCI1: CTS1#; TRACE: TRACEDATA0" - None - - + P01_7 C1 CANFD0_CANRX0 CAN_RX Middle - "Peripheral mode" - - "ADC0: ADTRG0#; BSC: A19; CANFD0: CANRX0; ETHER_ETHSW: ETHSW_LPI1; GPT9: GTIOC9B; MTU31: MTIOC1B; PHOSTIF: HA19; SCI1: SCK1; SPI3: SPI_RSPCK3; TRACE: TRACEDATA1" - I - - + P02_0 E3 - - - - Disabled - - "BSC: A18; CANFD1: CANTX1; ETHER_ETHSW: ETHSW_LPI2; GPT: GTADSML0; IRQ: IRQ4; PHOSTIF: HA18; SCI1: RXD_MISO1; SCI1: SCL1; SPI3: SPI_MISO3; TRACE: TRACEDATA2; USB_HS: USB_OTGID" - None - - + P02_1 D1 - - - - Disabled - - "BSC: A17; ETHER_ESC: ESC_SYNC0; ETHER_ESC: ESC_SYNC1; ETHER_ETHSW: ETHSW_PTPOUT1; PHOSTIF: HA17; SCI1: DE1" - None - - + P02_2 F3 CANFD0_CANTX0 CAN_TX Middle - "Peripheral mode" - - "BSC: A16; CANFD0: CANTX0; ETHER_ETHSW: ETHSW_TDMAOUT0; GPT10: GTIOC10A; IRQ: IRQ14; MTU32: MTIOC2A; MTU_POE3: POE10#; PHOSTIF: HA16; RTC: RTCAT1HZ; SCI1: SDA1; SCI1: TXD_MOSI1; SPI3: SPI_MOSI3" - O - - + P02_3 E1 - - - - Disabled - - "BSC: A15; BSC: AH#; CANFD1: CANRX1; ETHER_ETHSW: ETHSW_TDMAOUT1; GPT10: GTIOC10B; IRQ: IRQ15; MTU32: MTIOC2B; MTU_POE3: POE11#; PHOSTIF: HA15; SCI1: CTS_RTS_SS1#; SPI3: SPI_SSL30" - None - - + P02_4 F4 JTAG/SWD_TDO TDO High - "Peripheral mode" - - "BSC: WE0#_DQMLL; JTAG/SWD: TDO; SCI1: DE1; SPI3: SPI_SSL33" - O - - + P02_5 F2 JTAG/SWD_TDI TDI Low - "Peripheral mode" - - "BSC: WE1#_DQMLU; ETHER_ETHSW: ETHSW_TDMAOUT3; JTAG/SWD: TDI; SCI5: SCK5; SPI3: SPI_SSL31" - I - - + P02_6 F5 JTAG/SWD_TMS_SWDIO TMS High - "Peripheral mode" - - "JTAG/SWD: TMS_SWDIO; SCI5: RXD_MISO5; SCI5: SCL5" - IO - - + P02_7 F1 JTAG/SWD_TCK_SWCLK TCK Low - "Peripheral mode" - - "JTAG/SWD: TCK_SWCLK; SCI5: SDA5; SCI5: TXD_MOSI5" - I - - + P03_0 G3 GPIO ETH_LED4 Low - "Output mode (Low & Not Into Input)" - - "BSC: A14; BSC: CS5#; CANFD1: CANTXDP1; GPT: GTADSML1; IRQ: IRQ14; PHOSTIF: HA14; SCI2: SCK2; SPI3: SPI_SSL32; TRACE: TRACEDATA3" - IO - - + P03_5 G1 - - - - Disabled - - "BSC: A12; DSMIF2: MCLK2; ETHER_ETH2: ETH2_CRS; GPT4: GTIOC4A; IRQ: IRQ5; MTU33: MTIOC3A; PHOSTIF: HA12; SCI2: RXD_MISO2; SCI2: SCL2" - None - - + P03_6 G4 - - - - Disabled - - "BSC: A11; DSMIF2: MDAT2; ETHER_ETH2: ETH2_COL; GPT4: GTIOC4B; IRQ: IRQ8; MTU33: MTIOC3B; PHOSTIF: HA11; SCI2: SDA2; SCI2: TXD_MOSI2; SPI1: SPI_SSL13; TRACE: TRACEDATA4" - None - - + P03_7 G5 - - - - Disabled - - "BSC: A10; ETHER_ETH2: ETH2_TXER; GPT5: GTIOC5A; IRQ: IRQ9; MTU33: MTIOC3C; PHOSTIF: HA10; SCI3: SCK3; TRACE: TRACEDATA5" - None - - + P04_0 H1 - - - - Disabled - - "BSC: A9; GPT5: GTIOC5B; MTU33: MTIOC3D; PHOSTIF: HA9; SCI3: RXD_MISO3; SCI3: SCL3; TRACE: TRACEDATA6" - None - - + P04_1 H2 GPIO LED_RED1 Low - "Output mode (Low & Not Into Input)" - - "BSC: CKIO; IIC2: IIC_SDA2; PHOSTIF: HCKIO; SCI3: SDA3; SCI3: TXD_MOSI3; SPI0: SPI_MOSI0" - IO - - + P04_4 H4 GPIO ETH_LED6 Low - "Output mode (Low & Not Into Input)" - - "BSC: A8; GPT: GTADSMP0; IRQ: IRQ10; MTU_POE3: POE10#; PHOSTIF: HA8; SCI3: CTS3#; SPI1: SPI_RSPCK1; TRACE: TRACEDATA7" - IO - - + P04_5 H3 - - - - Disabled - - "BSC: A7; ETHER_ESC: ESC_SYNC0; ETHER_ESC: ESC_SYNC1; ETHER_ETHSW: ETHSW_PTPOUT0; PHOSTIF: HA7; SCI3: DE3" - None - - + P04_6 H5 - - - - Disabled - - "BSC: A6; DMAC: DACK; ETHER_ETH1: ETH1_TXER; PHOSTIF: HA6; RTC: RTCAT1HZ" - None - - + P04_7 J1 - - - - Disabled - - "BSC: A5; ETHER_ETH0: ETH0_TXER; ETHER_ETH2: ETH2_TXER; PHOSTIF: HA5; SPI2: SPI_SSL21" - None - - + P05_0 J5 GPIO ETH_LED7 Low - "Output mode (Low & Not Into Input)" - - "BSC: A4; CANFD0: CANTXDP0; CMTW0: CMTW0_TOC0; DSMIF3: MCLK3; ETHER_ETH1: ETH1_CRS; GPT6: GTIOC6A; IRQ: IRQ12; MTU34: MTIOC4A; PHOSTIF: HA4; SCI5: CTS_RTS_SS5#; USB_HS: USB_VBUSEN" - IO - - + P05_1 J2 - - - - Disabled - - "BSC: A3; CANFD0: CANRXDP0; CMTW0: CMTW0_TIC1; DSMIF3: MDAT3; ETHER_ETH1: ETH1_COL; GPT6: GTIOC6B; IRQ: IRQ13; MTU34: MTIOC4B; PHOSTIF: HA3; SCI5: CTS5#; USB_HS: USB_EXICEN" - None - - + P05_2 J4 IIC1_IIC_SCL1 SCL Middle - "Peripheral mode" - - "BSC: A2; CANFD0: CANRX0; CMTW0: CMTW0_TOC0; DMAC: DREQ; ETHER_ETH0: ETH0_CRS; GPT7: GTIOC7A; GPT_POEG: GTETRGSA; IIC1: IIC_SCL1; IRQ: IRQ14; MTU34: MTIOC4C; PHOSTIF: HA2; SCI5: DE5; USB_HS: USB_VBUSEN" - IO - - + P05_3 J3 IIC1_IIC_SDA1 SDA Middle - "Peripheral mode" - - "BSC: A1; CANFD0: CANTX0; CMTW0: CMTW0_TIC0; ETHER_ETH0: ETH0_COL; GPT7: GTIOC7B; GPT_POEG: GTETRGSB; IIC1: IIC_SDA1; IRQ: IRQ15; MTU34: MTIOC4D; MTU_POE3: POE11#; PHOSTIF: HA1; SCI4: SCK4; USB_HS: USB_EXICEN" - IO - - + P05_4 K1 GPIO SW2 - - "Input mode" - - "BSC: A0; CANFD0: CANTXDP0; DMAC: DACK; ETHER_ETHSW: ETHSW_LPI0; GPT14: GTIOC14A; IRQ: IRQ12; PHOSTIF: HA0; SCI4: RXD_MISO4; SCI4: SCL4; SPI0: SPI_SSL00; USB_HS: USB_OVRCUR" - IO - - + P05_5 K2 - ETH1_LINK - - Disabled - - "CMTW0: CMTW0_TOC1; ETHER_ESC: ESC_PHYLINK1; ETHER_ETHSW: ETHSW_PHYLINK1; GPT14: GTIOC14B; SPI2: SPI_RSPCK2" - None - - + P05_6 K3 - - - - Disabled - - "CMTW1: CMTW1_TIC0; ETHER_ETH1: ETH1_RXER; GPT15: GTIOC15A; IRQ: IRQ12; SPI2: SPI_SSL22" - None - - + P05_7 M1 - ETH1_TXD2 - - Disabled - - "CMTW1: CMTW1_TOC1; ETHER_ETH1: ETH1_TXD2; GPT15: GTIOC15B; SCI4: SDA4; SCI4: TXD_MOSI4; SPI2: SPI_SSL23" - None - - + P06_0 L2 - ETH1_TXD3 - - Disabled - - "CANFD1: CANRX1; CMTW1: CMTW1_TOC0; ETHER_ETH1: ETH1_TXD3; GPT16: GTIOC16A; SCI4: CTS_RTS_SS4#; SPI2: SPI_SSL23" - None - - + P06_1 L3 - ETH1_REFCLK - - Disabled - - "CANFD1: CANTX1; ETHER_ETH1: ETH1_REFCLK; ETHER_ETH1: ETH1_RMII1_REFCLK; GPT16: GTIOC16B; SCI4: CTS4#; SPI2: SPI_SSL22" - None - - + P06_2 M2 - ETH1_TXD1 - - Disabled - - "CANFD1: CANRXDP1; ETHER_ETH1: ETH1_TXD1; GPT17: GTIOC17A" - None - - + P06_3 K4 - ETH1_TXD0 - - Disabled - - "CANFD1: CANTXDP1; CMTW1: CMTW1_TIC1; ETHER_ETH1: ETH1_TXD0; GPT17: GTIOC17B; SCI4: DE4; SPI1: SPI_MISO1" - None - - + P06_4 N1 - ETH1_TXCLK - - Disabled - - "ETHER_ETH1: ETH1_TXCLK_TXC; GPT11: GTIOC11A; SPI1: SPI_MOSI1" - None - - + P06_5 N2 - ETH1_TXEN - - Disabled - - "ETHER_ETH1: ETH1_TXEN_TXCTL; GPT11: GTIOC11B" - None - - + P06_6 L4 - ETH1_RXD0 - - Disabled - - "ETHER_ETH1: ETH1_RXD0; GPT12: GTIOC12A; SPI1: SPI_SSL10" - None - - + P06_7 M3 - ETH1_RXD1 - - Disabled - - "ETHER_ETH1: ETH1_RXD1; GPT12: GTIOC12B; SPI1: SPI_SSL11" - None - - + P07_0 P1 - ETH1_RXD2 - - Disabled - - "ETHER_ETH1: ETH1_RXD2; GPT13: GTIOC13A" - None - - + P07_1 N3 - ETH1_RXD3 - - Disabled - - "ETHER_ETH1: ETH1_RXD3; GPT13: GTIOC13B" - None - - + P07_2 P2 - ETH1_RXDV - - Disabled - - "ETHER_ETH1: ETH1_RXDV_CRSDV_RXCTL" - None - - + P07_3 M4 - ETH1_RXCLK - - Disabled - - "ETHER_ETH1: ETH1_RXCLK_REF_CLK_RXC" - None - - + P07_4 R2 USB_HS_USB_VBUSIN USB_VBUSIN - - "Peripheral mode" - - "ADC0: ADTRG0#; IRQ: IRQ1; USB_HS: USB_VBUSIN" - I - - + P08_4 N4 - ETH0_RXD3 - - Disabled - - "ETHER_ETH0: ETH0_RXD3; MTU36: MTIOC6A" - None - - + P08_5 P3 - ETH0_RXDV - - Disabled - - "ETHER_ETH0: ETH0_RXDV_CRSDV_RXCTL; MTU36: MTIOC6B" - None - - + P08_6 M5 - ETH0_RXCLK - - Disabled - - "ETHER_ETH0: ETH0_RXCLK_REF_CLK_RXC; MTU36: MTIOC6C" - None - - + P08_7 N5 ETHER_GMAC_GMAC_MDC ETH_MDC Low - "Peripheral mode" - - "ETHER_ESC: ESC_MDC; ETHER_ETHSW: ETHSW_MDC; ETHER_GMAC: GMAC_MDC; MTU36: MTIOC6D" - O - - + P09_0 P4 ETHER_GMAC_GMAC_MDIO ETH_MDIO Low - "Peripheral mode" - - "ETHER_ESC: ESC_MDIO; ETHER_ETHSW: ETHSW_MDIO; ETHER_GMAC: GMAC_MDIO; MTU37: MTIOC7A" - IO - - + P09_1 R3 - ETH0_REFCLK - - Disabled - - "ETHER_ETH0: ETH0_REFCLK; ETHER_ETH0: ETH0_RMII0_REFCLK; MTU37: MTIOC7B" - None - - + P09_2 N6 - - - - Disabled - - "ETHER_ETH0: ETH0_RXER; IRQ: IRQ0; MTU37: MTIOC7C" - None - - + P09_3 R4 - ETH0_TXD3 - - Disabled - - "ETHER_ETH0: ETH0_TXD3; MTU37: MTIOC7D" - None - - + P09_4 M6 - ETH0_TXD2 - - Disabled - - "ETHER_ETH0: ETH0_TXD2" - None - - + P09_5 N7 - ETH0_TXD1 - - Disabled - - "ETHER_ETH0: ETH0_TXD1" - None - - + P09_6 M7 - ETH0_TXD0 - - Disabled - - "ETHER_ETH0: ETH0_TXD0" - None - - + P09_7 L7 - ETH0_TXCLK - - Disabled - - "ETHER_ETH0: ETH0_TXCLK_TXC" - None - - + P10_0 N8 - ETH0_TXEN - - Disabled - - "ETHER_ETH0: ETH0_TXEN_TXCTL" - None - - + P10_1 M8 - ETH0_RXD0 - - Disabled - - "ETHER_ETH0: ETH0_RXD0" - None - - + P10_2 L8 - ETH0_RXD1 - - Disabled - - "ETHER_ETH0: ETH0_RXD1" - None - - + P10_3 L9 - ETH0_RXD2 - - Disabled - - "ETHER_ETH0: ETH0_RXD2; RTC: RTCAT1HZ" - None - - + P10_4 M9 - ETH0_LINK - - Disabled - - "ETHER_ESC: ESC_PHYLINK0; ETHER_ETHSW: ETHSW_PHYLINK0; IRQ: IRQ11" - None - - + P12_4 N11 - - - - Disabled - - "BSC: D15; ETHER_ETH1: ETH1_CRS; GPT8: GTIOC8B; MBXSEM: MBX_HINT#; MTU38: MTIOC8B; SPI0: SPI_SSL01; TRACE: TRACEDATA0" - None - - + P13_2 L10 IIC0_IIC_SCL0 EEPROM_SCL Middle - "Peripheral mode" - - "BSC: A13; BSC: D9; DSMIF4: MCLK4; ETHER_ESC: ESC_I2CCLK; ETHER_ETHSW: ETHSW_PTPOUT2; GPT10: GTIOC10A; IIC0: IIC_SCL0; IRQ: IRQ5; MTU30: MTIOC0A; MTU_POE3: POE8#; SCI1: CTS_RTS_SS1#; SPI0: SPI_MISO0; TRACE: TRACEDATA6" - IO - - + P13_3 N12 IIC0_IIC_SDA0 EEPROM_SDA Middle - "Peripheral mode" - - "BSC: D8; BSC: RD#; CMTW1: CMTW1_TOC0; DSMIF4: MDAT4; ETHER_ESC: ESC_I2CDATA; ETHER_ETHSW: ETHSW_PTPOUT3; GPT10: GTIOC10B; IIC0: IIC_SDA0; MTU30: MTIOC0B; MTU30: MTIOC0C; SCI1: CTS1#; SPI0: SPI_RSPCK0; TRACE: TRACEDATA7" - IO - - + P13_4 L12 GPIO ESC_RESETOUT Low - "Output mode (Low & Not Into Input)" - - "BSC: A0; ETHER_ESC: ESC_RESETOUT#; GPT8: GTIOC8B; MTU30: MTIOC0D" - IO - - + P13_5 M12 GPIO SW3_Pin2 - - "Input mode" - - "ETHER_ESC: ESC_LATCH0; ETHER_ESC: ESC_LATCH1; ETHER_GMAC: GMAC_PTPTRG0; IIC2: IIC_SCL2; MTU3: MTCLKA; SPI1: SPI_RSPCK1; XSPI0: XSPI0_WP1#" - IO - - + P13_6 M13 GPIO SW3_Pin1 - - "Input mode" - - "ETHER_ESC: ESC_SYNC0; ETHER_ESC: ESC_SYNC1; ETHER_ETHSW: ETHSW_PTPOUT0; MTU3: MTCLKB; XSPI0: XSPI0_WP0#" - IO - - + P13_7 M11 GPIO SW3_Pin4 - - "Input mode" - - "ETHER_ESC: ESC_LATCH0; ETHER_ESC: ESC_LATCH1; ETHER_GMAC: GMAC_PTPTRG1; MBXSEM: MBX_HINT#; MTU3: MTCLKC; XSPI0: XSPI0_ECS1#" - IO - - + P14_0 L13 GPIO SW3_Pin3 - - "Input mode" - - "ETHER_ESC: ESC_SYNC0; ETHER_ESC: ESC_SYNC1; ETHER_ETHSW: ETHSW_PTPOUT1; MTU3: MTCLKD; XSPI0: XSPI0_INT0#" - IO - - + P14_1 L14 - - - - Disabled - - "ETHER_ESC: ESC_LATCH0; ETHER_ESC: ESC_LATCH1; ETHER_ETH1: ETH1_COL; ETHER_GMAC: GMAC_PTPTRG1; GPT8: GTIOC8A; MTU38: MTIOC8A; SHOSTIF: HSPI_IO0; XSPI0: XSPI0_INT1#" - None - - + P14_2 K12 XSPI0_XSPI0_ECS0# XSPI0_ECS Low - "Peripheral mode" - - "ETHER_ETH0: ETH0_CRS; ETHER_ETH2: ETH2_CRS; GPT8: GTIOC8B; IRQ: IRQ6; MTU38: MTIOC8B; SHOSTIF: HSPI_CK; XSPI0: XSPI0_ECS0#" - I - - + P14_3 M14 - - - - Disabled - - "ETHER_ETH0: ETH0_COL; ETHER_ETH2: ETH2_COL; MTU30: MTIOC0A; SHOSTIF: HSPI_IO1; XSPI0: XSPI0_RSTO1#" - None - - + P14_4 J13 XSPI0_XSPI0_DS XSPI0_DS High - "Peripheral mode" - - "BSC: BS#; ETHER_ESC: ESC_IRQ; MTU30: MTIOC0B; PHOSTIF: HBS#; XSPI0: XSPI0_DS" - IO - - + P14_5 J12 XSPI0_XSPI0_CKN XSPI0_CKN High - "Peripheral mode" - - "BSC: CS3#; MTU_POE3: POE8#; SHOSTIF: HSPI_INT#; XSPI0: XSPI0_CKN" - O - - + P14_6 K13 XSPI0_XSPI0_CKP XSPI0_CKP High - "Peripheral mode" - - "BSC: A21; XSPI0: XSPI0_CKP" - O - - + P14_7 M15 XSPI0_XSPI0_IO0 XSPI0_IO0 High - "Peripheral mode" - - "BSC: A22; BSC: BS#; SCI5: SCK5; SPI1: SPI_MISO1; XSPI0: XSPI0_IO0" - IO - - + P15_0 L11 XSPI0_XSPI0_IO1 XSPI0_IO1 High - "Peripheral mode" - - "BSC: A23; BSC: CKE; SCI5: RXD_MISO5; SCI5: SCL5; SPI1: SPI_MOSI1; XSPI0: XSPI0_IO1" - IO - - + P15_1 K14 XSPI0_XSPI0_IO2 XSPI0_IO2 High - "Peripheral mode" - - "BSC: A24; BSC: CAS#; MTU30: MTIOC0C; SCI5: SDA5; SCI5: TXD_MOSI5; SPI1: SPI_SSL10; XSPI0: XSPI0_IO2" - IO - - + P15_2 K15 XSPI0_XSPI0_IO3 XSPI0_IO3 High - "Peripheral mode" - - "BSC: A25; BSC: RAS#; MTU30: MTIOC0D; SCI5: CTS_RTS_SS5#; SPI1: SPI_SSL11; XSPI0: XSPI0_IO3" - IO - - + P15_3 K11 XSPI0_XSPI0_IO4 XSPI0_IO4 High - "Peripheral mode" - - "BSC: D11; DSMIF1: MCLK1; MTU38: MTIOC8C; XSPI0: XSPI0_IO4" - IO - - + P15_4 H13 XSPI0_XSPI0_IO5 XSPI0_IO5 High - "Peripheral mode" - - "BSC: D12; DSMIF1: MDAT1; MTU38: MTIOC8D; XSPI0: XSPI0_IO5" - IO - - + P15_5 J14 XSPI0_XSPI0_IO6 XSPI0_IO6 High - "Peripheral mode" - - "BSC: D13; DSMIF2: MCLK2; XSPI0: XSPI0_IO6" - IO - - + P15_6 H12 XSPI0_XSPI0_IO7 XSPI0_IO7 High - "Peripheral mode" - - "BSC: D14; DSMIF2: MDAT2; SPI1: SPI_SSL12; XSPI0: XSPI0_IO7" - IO - - + P15_7 J15 XSPI0_XSPI0_CS0# OSPI_CS High - "Peripheral mode" - - "DMAC: TEND; SCI5: CTS5#; SPI1: SPI_SSL13; XSPI0: XSPI0_CS0#" - O - - + P16_0 G13 XSPI0_XSPI0_CS1# ORAM_CS0 High - "Peripheral mode" - - "DSMIF3: MCLK3; ETHER_ETH0: ETH0_TXER; ETHER_ETH2: ETH2_REFCLK; SCI0: SDA0; SCI0: TXD_MOSI0; SHOSTIF: HSPI_CS#; SPI3: SPI_MOSI3; XSPI0: XSPI0_CS1#" - O - - + P16_1 H11 XSPI0_XSPI0_RESET0# XSPI0_RESET0 Low - "Peripheral mode" - - "ADC0: ADTRG0#; BSC: CS2#; CMTW0: CMTW0_TOC1; DSMIF3: MDAT3; PHOSTIF: HCS1#; SCI0: RXD_MISO0; SCI0: SCL0; SPI3: SPI_MISO3; XSPI0: XSPI0_RESET0#" - O - - + P16_2 H14 - - - - Disabled - - "IRQ: NMI; PHOSTIF: HERROUT#; SCI0: CTS0#; SHOSTIF: HSPI_IO2; SPI3: SPI_RSPCK3; USB_HS: USB_EXICEN; XSPI0: XSPI0_RESET1#" - None - - + P16_3 G12 GPIO SW1 - - "Input mode" - - "BSC: CS3#; ETHER_ETH1: ETH1_CRS; ETHER_ETH1: ETH1_TXER; GPT: GTADSMP1; IRQ: IRQ7; SCI0: SCK0; SHOSTIF: HSPI_IO3; SPI3: SPI_SSL30; XSPI0: XSPI0_RSTO0#" - IO - - + P16_5 H15 SCI0_TXD_MOSI0 UART_USB_TX High - "Peripheral mode" - - "BSC: A15; MTU35: MTIC5U; SCI0: SDA0; SCI0: TXD_MOSI0; SHOSTIF: HSPI_IO4" - IO - - + P16_6 G11 SCI0_RXD_MISO0 UART_USB_RX High - "Peripheral mode" - - "BSC: CS0#; IRQ: IRQ8; MTU35: MTIC5V; PHOSTIF: HCS0#; SCI0: RXD_MISO0; SCI0: SCL0; SHOSTIF: HSPI_IO5" - IO - - + P16_7 G14 - - - - Disabled - - "BSC: A13; MTU35: MTIC5W; PHOSTIF: HA13; SCI0: SCK0; XSPI1: XSPI1_IO0" - None - - + P17_0 F12 - - - - Disabled - - "ETHER_ESC: ESC_IRQ; SCI0: CTS_RTS_SS0#; XSPI1: XSPI1_IO1" - None - - + P17_3 F14 GPIO LED_RED2 Low - "Output mode (Low & Not Into Input)" - - "ADC1: ADTRG1#; DMAC: DREQ; GPT_POEG: GTETRGA; MTU_POE3: POE0#; SPI3: SPI_SSL31; TRACE: TRACECTL; XSPI1: XSPI1_IO2" - IO - - + P17_4 F13 - - - - Disabled - - "DMAC: DACK; GPT0: GTIOC0A; GPT_POEG: GTETRGB; MTU33: MTIOC3C; SCI3: CTS3#; SPI3: SPI_SSL32; TRACE: TRACECLK; XSPI1: XSPI1_IO3" - None - - + P17_5 F15 USB_HS_USB_OVRCUR USB_OVRCUR Low - "Peripheral mode" - - "DMAC: TEND; GPT0: GTIOC0B; GPT_POEG: GTETRGC; MTU33: MTIOC3A; USB_HS: USB_OVRCUR" - I - - + P17_6 G15 - - - - Disabled - - "BSC: RD_WR#; GPT1: GTIOC1A; MTU33: MTIOC3B; PHOSTIF: HWRSTB#; SCI3: SCK3; XSPI1: XSPI1_DS" - None - - + P17_7 E15 SCI3_RXD_MISO3 SCI_RXD High - "Peripheral mode" - - "BSC: RD#; DMAC: DACK; GPT2: GTIOC2A; GPT3: GTIOC3A; MTU34: MTIOC4A; MTU34: MTIOC4C; PHOSTIF: HRD#; SCI3: RXD_MISO3; SCI3: SCL3; XSPI1: XSPI1_CKP" - IO - - + P18_0 E14 SCI3_TXD_MOSI3 SCI_TXD High - "Peripheral mode" - - "BSC: WE0#_DQMLL; GPT2: GTIOC2A; GPT3: GTIOC3A; MTU34: MTIOC4A; MTU34: MTIOC4C; PHOSTIF: HWR0#; SCI3: SDA3; SCI3: TXD_MOSI3; SHOSTIF: HSPI_IO6" - IO - - + P18_1 D15 - - - - Disabled - - "ADC1: ADTRG1#; BSC: WE1#_DQMLU; GPT1: GTIOC1B; IRQ: IRQ10; MTU33: MTIOC3D; PHOSTIF: HWR1#; SCI3: CTS_RTS_SS3#; SHOSTIF: HSPI_IO7" - None - - + P18_2 D14 GPIO LED_GREEN Low - "Output mode (Low & Not Into Input)" - - "BSC: BS#; ETHER_ETH1: ETH1_COL; GPT2: GTIOC2B; GPT3: GTIOC3B; IIC2: IIC_SDA2; MTU34: MTIOC4B; MTU34: MTIOC4D; SCI0: SCK0; XSPI1: XSPI1_CS0#" - IO - - + P18_3 E13 - - - - Disabled - - "BSC: CKE; CANFD1: CANRXDP1; CMTW1: CMTW1_TIC1; ETHER_ETH2: ETH2_CRS; GPT2: GTIOC2B; GPT3: GTIOC3B; IRQ: IRQ0; MTU34: MTIOC4B; MTU34: MTIOC4D; XSPI1: XSPI1_IO4" - None - - + P18_4 E12 SPI2_SPI_RSPCK2 SCK High - "Peripheral mode" - - "BSC: CAS#; CANFD0: CANTX0; ETHER_ETH1: ETH1_CRS; IRQ: IRQ1; MTU35: MTIC5U; SCI4: SDA4; SCI4: TXD_MOSI4; SPI2: SPI_RSPCK2; XSPI1: XSPI1_IO5" - IO - - + P18_5 D13 SPI2_SPI_MOSI2 MOSI High - "Peripheral mode" - - "BSC: RAS#; CANFD0: CANRX0; ETHER_ETH2: ETH2_COL; MTU35: MTIC5V; SCI4: RXD_MISO4; SCI4: SCL4; SPI2: SPI_MOSI2; TRACE: TRACECTL; XSPI1: XSPI1_IO6" - IO - - + P18_6 C15 SPI2_SPI_MISO2 MISO High - "Peripheral mode" - - "ADC0: ADTRG0#; ETHER_ETH1: ETH1_COL; IIC2: IIC_SCL2; IRQ: IRQ11; MTU35: MTIC5W; SCI4: DE4; SCI4: SCK4; SPI2: SPI_MISO2; TRACE: TRACECLK; XSPI1: XSPI1_IO7" - IO - - + P19_0 B15 USB_HS_USB_VBUSEN USB_VBUSEN Low - "Peripheral mode" - - "USB_HS: USB_VBUSEN" - O - - + P20_1 B9 - ETH_LED2_MDV0 - - Disabled - - "ETHER_ESC: ESC_LINKACT0; ETHER_ETHSW: ETHSW_PTPOUT3; ETHER_ETHSW: ETHSW_TDMAOUT0" - None - - + P20_2 D8 - ETH_LED0_MDV1 - - Disabled - - "ETHER_ESC: ESC_LEDRUN; ETHER_ESC: ESC_LEDSTER; ETHER_ETHSW: ETHSW_PTPOUT2; ETHER_ETHSW: ETHSW_TDMAOUT1; SCI3: DE3" - None - - + P20_3 D9 - ETH_LED1_MDV2 - - Disabled - - "ETHER_ESC: ESC_LEDERR; ETHER_ETHSW: ETHSW_PTPOUT1; ETHER_ETHSW: ETHSW_TDMAOUT2" - None - - + P20_4 A9 - ETH_LED3_MDV3 - - Disabled - - "ETHER_ESC: ESC_LINKACT1; ETHER_ETHSW: ETHSW_PTPOUT0; ETHER_ETHSW: ETHSW_TDMAOUT3" - None - - + P21_1 B8 SPI2_SPI_SSL20 CS High - "Peripheral mode" - - "BSC: D0; CMTW0: CMTW0_TIC0; DSMIF0: MCLK0; ETHER_ESC: ESC_SYNC0; ETHER_ESC: ESC_SYNC1; GPT14: GTIOC14A; IIC1: IIC_SCL1; MTU36: MTIOC6A; PHOSTIF: HD0; SCI5: SCK5; SHOSTIF: HSPI_INT#; SPI2: SPI_SSL20; TRACE: TRACEDATA0" - IO - - + P21_2 C8 - - - - Disabled - - "BSC: D1; CMTW0: CMTW0_TIC1; DSMIF0: MDAT0; ETHER_ESC: ESC_SYNC0; ETHER_ESC: ESC_SYNC1; GPT14: GTIOC14B; IIC1: IIC_SDA1; MTU36: MTIOC6B; PHOSTIF: HD1; SCI5: RXD_MISO5; SCI5: SCL5; SPI2: SPI_MISO2; TRACE: TRACEDATA1" - None - - + P21_3 A8 - - - - Disabled - - "BSC: D2; DSMIF1: MCLK1; GPT15: GTIOC15A; IRQ: NMI; MTU36: MTIOC6C; PHOSTIF: HD2; SCI5: SDA5; SCI5: TXD_MOSI5; SPI3: SPI_SSL33; TRACE: TRACEDATA2" - None - - + P21_4 E7 - - - - Disabled - - "BSC: D3; DSMIF1: MDAT1; ETHER_ESC: ESC_SYNC0; ETHER_ESC: ESC_SYNC1; ETHER_ETHSW: ETHSW_PTPOUT1; GPT15: GTIOC15B; MBXSEM: MBX_HINT#; MTU36: MTIOC6D; PHOSTIF: HD3; SCI5: CTS_RTS_SS5#; SPI0: SPI_SSL02; TRACE: TRACEDATA3" - None - - + P21_5 C7 - - - - Disabled - - "ADC1: ADTRG1#; BSC: D4; CMTW1: CMTW1_TOC1; DSMIF2: MCLK2; GPT16: GTIOC16A; IRQ: IRQ6; MTU37: MTIOC7A; PHOSTIF: HD4; SCI5: CTS5#; SPI0: SPI_MISO0; TRACE: TRACEDATA4" - None - - + P21_6 D7 - - - - Disabled - - "BSC: D5; DMAC: TEND; DSMIF2: MDAT2; GPT16: GTIOC16B; IRQ: IRQ9; MTU37: MTIOC7B; PHOSTIF: HD5; SCI0: CTS0#; TRACE: TRACEDATA5" - None - - + P21_7 B7 - - - - Disabled - - "BSC: D6; DMAC: DREQ; DSMIF3: MCLK3; GPT17: GTIOC17A; IRQ: IRQ10; MTU37: MTIOC7C; PHOSTIF: HD6; SCI0: DE0; TRACE: TRACEDATA6" - None - - + P22_0 A7 - - - - Disabled - - "BSC: D7; DSMIF3: MDAT3; GPT17: GTIOC17B; IRQ: IRQ15; MTU37: MTIOC7D; PHOSTIF: HD7; SCI5: DE5; TRACE: TRACEDATA7" - None - - + P22_1 A6 GPIO ETH_LED5 Low - "Output mode (Low & Not Into Input)" - - "BSC: D8; ETHER_ESC: ESC_LINKACT2; GPT_POEG: GTETRGB; MTU_POE3: POE4#; PHOSTIF: HD8; SCI4: CTS_RTS_SS4#; TRACE: TRACECTL" - IO - - + P22_2 C6 - - - - Disabled - - "BSC: D9; DSMIF1: MCLK1; GPT_POEG: GTETRGSA; IRQ: IRQ4; MTU38: MTIOC8C; PHOSTIF: HD9; SPI1: SPI_SSL12; TRACE: TRACECLK" - None - - + P22_3 B6 GPIO LED_ORANGE Low - "Output mode (Low & Not Into Input)" - - "BSC: D10; GPT_POEG: GTETRGSB; MTU38: MTIOC8D; PHOSTIF: HD10; SCI5: RXD_MISO5; SCI5: SCL5" - IO - - + P23_7 D6 - ETH2_RXD0 - - Disabled - - "BSC: BS#; BSC: D11; DSMIF4: MCLK4; ETHER_ETH2: ETH2_RXD0; GPT_POEG: GTETRGA; MTU30: MTIOC0A; PHOSTIF: HD11; SCI1: SCK1" - None - - + P24_0 A5 - ETH2_RXD1 - - Disabled - - "BSC: CKE; BSC: D12; DMAC: DREQ; DSMIF4: MDAT4; ETHER_ETH2: ETH2_RXD1; GPT_POEG: GTETRGB; MTU30: MTIOC0B; PHOSTIF: HD12; SCI1: RXD_MISO1; SCI1: SCL1" - None - - + P24_1 B5 - ETH2_RXCLK - - Disabled - - "BSC: CAS#; BSC: D13; DSMIF5: MCLK5; ETHER_ETH2: ETH2_RXCLK_REF_CLK_RXC; GPT_POEG: GTETRGC; MTU30: MTIOC0C; MTU_POE3: POE8#; PHOSTIF: HD13" - None - - + P24_2 C5 - ETH2_RXD2 - - Disabled - - "BSC: D14; BSC: RAS#; DSMIF5: MDAT5; ETHER_ETH2: ETH2_RXD2; GPT_POEG: GTETRGD; MTU30: MTIOC0D; PHOSTIF: HD14; SCI1: SDA1; SCI1: TXD_MOSI1" - None - - + RES# P6 SYSTEM_RES# - - - - - - - - I "Read only" - + TRST# E2 SYSTEM_TRST# - - - - - - - - I "Read only" - + USB_DM P13 SYSTEM_USB_DM - - - - - - - - IO "Read only" - + USB_DP R13 SYSTEM_USB_DP - - - - - - - - IO "Read only" - + USB_RREF P15 SYSTEM_USB_RREF - - - - - - - - I "Read only" - + VCC1833_0 L6 SYSTEM_VCC1833_0 - - - - - - - - I "Read only" - + VCC1833_1 K5 SYSTEM_VCC1833_1 - - - - - - - - I "Read only" - + VCC1833_2 E5 SYSTEM_VCC1833_2 - - - - - - - - I "Read only" - + VCC1833_3 J11 SYSTEM_VCC1833_3 - - - - - - - - I "Read only" - + VCC1833_4 F11 SYSTEM_VCC1833_4 - - - - - - - - I "Read only" - + VCC18_ADC0 E11 SYSTEM_VCC18_ADC0 - - - - - - - - I "Read only" - + VCC18_ADC1 E9 SYSTEM_VCC18_ADC1 - - - - - - - - I "Read only" - + VCC18_PLL0 P9 SYSTEM_VCC18_PLL0 - - - - - - - - I "Read only" - + VCC18_PLL1 N9 SYSTEM_VCC18_PLL1 - - - - - - - - I "Read only" - + VCC18_USB P11 SYSTEM_VCC18_USB - - - - - - - - I "Read only" - + VCC33 E6 SYSTEM_VCC33 - - - - - - - - I "Read only" - + VCC33 E8 SYSTEM_VCC33 - - - - - - - - I "Read only" - + VCC33 M10 SYSTEM_VCC33 - - - - - - - - I "Read only" - + VCC33 L5 SYSTEM_VCC33 - - - - - - - - I "Read only" - + VCC33_USB R11 SYSTEM_VCC33_USB - - - - - - - - I "Read only" - + VDD H10 SYSTEM_VDD - - - - - - - - I "Read only" - + VDD G10 SYSTEM_VDD - - - - - - - - I "Read only" - + VDD F6 SYSTEM_VDD - - - - - - - - I "Read only" - + VDD F8 SYSTEM_VDD - - - - - - - - I "Read only" - + VDD F9 SYSTEM_VDD - - - - - - - - I "Read only" - + VDD G6 SYSTEM_VDD - - - - - - - - I "Read only" - + VDD F10 SYSTEM_VDD - - - - - - - - I "Read only" - + VDD H6 SYSTEM_VDD - - - - - - - - I "Read only" - + VDD J6 SYSTEM_VDD - - - - - - - - I "Read only" - + VDD K6 SYSTEM_VDD - - - - - - - - I "Read only" - + VDD K7 SYSTEM_VDD - - - - - - - - I "Read only" - + VDD K8 SYSTEM_VDD - - - - - - - - I "Read only" - + VDD K10 SYSTEM_VDD - - - - - - - - I "Read only" - + VDD P7 SYSTEM_VDD - - - - - - - - I "Read only" - + VDD J10 SYSTEM_VDD - - - - - - - - I "Read only" - + VREFH0 C11 SYSTEM_VREFH0 - - - - - - - - I "Read only" - + VREFH1 C10 SYSTEM_VREFH1 - - - - - - - - I "Read only" - + VSS A1 SYSTEM_VSS - - - - - - - - I "Read only" - + VSS R1 SYSTEM_VSS - - - - - - - - I "Read only" - + VSS A10 SYSTEM_VSS - - - - - - - - I "Read only" - + VSS R5 SYSTEM_VSS - - - - - - - - I "Read only" - + VSS A15 SYSTEM_VSS - - - - - - - - I "Read only" - + VSS R9 SYSTEM_VSS - - - - - - - - I "Read only" - + VSS F7 SYSTEM_VSS - - - - - - - - I "Read only" - + VSS G7 SYSTEM_VSS - - - - - - - - I "Read only" - + VSS G8 SYSTEM_VSS - - - - - - - - I "Read only" - + VSS G9 SYSTEM_VSS - - - - - - - - I "Read only" - + VSS N10 SYSTEM_VSS - - - - - - - - I "Read only" - + VSS H7 SYSTEM_VSS - - - - - - - - I "Read only" - + VSS N14 SYSTEM_VSS - - - - - - - - I "Read only" - + VSS H8 SYSTEM_VSS - - - - - - - - I "Read only" - + VSS H9 SYSTEM_VSS - - - - - - - - I "Read only" - + VSS E10 SYSTEM_VSS - - - - - - - - I "Read only" - + VSS J7 SYSTEM_VSS - - - - - - - - I "Read only" - + VSS J8 SYSTEM_VSS - - - - - - - - I "Read only" - + VSS J9 SYSTEM_VSS - - - - - - - - I "Read only" - + VSS K9 SYSTEM_VSS - - - - - - - - I "Read only" - + VSS D10 SYSTEM_VSS - - - - - - - - I "Read only" - + VSS D11 SYSTEM_VSS - - - - - - - - I "Read only" - + VSS L1 SYSTEM_VSS - - - - - - - - I "Read only" - + VSS L15 SYSTEM_VSS - - - - - - - - I "Read only" - + VSS P8 SYSTEM_VSS - - - - - - - - I "Read only" - + VSS R15 SYSTEM_VSS - - - - - - - - I "Read only" - + VSS_ADC D12 SYSTEM_VSS_ADC - - - - - - - - I "Read only" - + VSS_USB P12 SYSTEM_VSS_USB - - - - - - - - I "Read only" - + VSS_USB P14 SYSTEM_VSS_USB - - - - - - - - I "Read only" - + VSS_USB N13 SYSTEM_VSS_USB - - - - - - - - I "Read only" - + VSS_USB N15 SYSTEM_VSS_USB - - - - - - - - I "Read only" - + VSS_USB R12 SYSTEM_VSS_USB - - - - - - - - I "Read only" - + VSS_USB R14 SYSTEM_VSS_USB - - - - - - - - I "Read only" - + XTAL R8 CGC_XTAL - - - - - - - - O "Read only" - + R9A07G084M04GBG.pincfg -> + AN000 B13 SYSTEM_AN000 - - - - - - - - I "Read only" - + AN001 C12 SYSTEM_AN001 - - - - - - - - I "Read only" - + AN002 B14 SYSTEM_AN002 - - - - - - - - I "Read only" - + AN003 C13 SYSTEM_AN003 - - - - - - - - I "Read only" - + AN100 B12 SYSTEM_AN100 - - - - - - - - I "Read only" - + AN101 A14 SYSTEM_AN101 - - - - - - - - I "Read only" - + AN102 B11 SYSTEM_AN102 - - - - - - - - I "Read only" - + AN103 A13 SYSTEM_AN103 - - - - - - - - I "Read only" - + AN104 A12 SYSTEM_AN104 - - - - - - - - I "Read only" - + AN105 B10 SYSTEM_AN105 - - - - - - - - I "Read only" - + AN106 A11 SYSTEM_AN106 - - - - - - - - I "Read only" - + AN107 C9 SYSTEM_AN107 - - - - - - - - I "Read only" - + AVCC18_TSU C14 SYSTEM_AVCC18_TSU - - - - - - - - I "Read only" - + AVCC18_USB P10 SYSTEM_AVCC18_USB - - - - - - - - I "Read only" - + AVCC18_USB R10 SYSTEM_AVCC18_USB - - - - - - - - I "Read only" - + BSCANP G2 SYSTEM_BSCANP - - - - - - - - I "Read only" - + EXTAL R7 CGC_EXTAL - - - - - - - - I "Read only" - + EXTCLKIN R6 CGC_EXTCLKIN - - - - - - - - I "Read only" - + MDX P5 SYSTEM_MDX - - - - - - - - IO "Read only" - + P00_0 C4 - ETH2_RXD3 - - Disabled - - "BSC: D15; ETHER_ETH2: ETH2_RXD3; PHOSTIF: HD15; SCI2: DE2; SCI2: SCK2" - None - - + P00_1 D5 - ETH2_RXDV - - Disabled - - "BSC: A13; ETHER_ETH2: ETH2_RXDV_CRSDV_RXCTL; IRQ: IRQ0; MTU35: MTIC5U; SCI2: RXD_MISO2; SCI2: SCL2" - None - - + P00_2 A3 - ETH2_TXEN - - Disabled - - "BSC: RD#; ETHER_ETH2: ETH2_TXEN_TXCTL; MTU35: MTIC5V; SCI2: SDA2; SCI2: TXD_MOSI2; USB_HS: USB_OVRCUR" - None - - + P00_3 B3 - ETH2_REFCLK - - Disabled - - "BSC: RD_WR#; ETHER_ETH2: ETH2_REFCLK; ETHER_ETH2: ETH2_RMII2_REFCLK; IRQ: IRQ1; MTU35: MTIC5W; SCI2: CTS_RTS_SS2#" - None - - + P00_4 A4 - - - - Disabled - - "BSC: WAIT#; DSMIF0: MCLK0; ETHER_ETH2: ETH2_RXER; GPT0: GTIOC0A; IRQ: IRQ13; MTU33: MTIOC3A; PHOSTIF: HWAIT#" - None - - + P00_5 B4 - ETH2_LINK - - Disabled - - "BSC: CS0#; DSMIF0: MDAT0; ETHER_ESC: ESC_PHYLINK0; ETHER_ESC: ESC_PHYLINK2; ETHER_ETHSW: ETHSW_PHYLINK0; ETHER_ETHSW: ETHSW_PHYLINK2; GPT0: GTIOC0B; MTU33: MTIOC3C" - None - - + P00_6 C3 - ETH2_TXCLK - - Disabled - - "BSC: CS5#; ETHER_ETH2: ETH2_TXCLK_TXC; GPT1: GTIOC1A; MTU33: MTIOC3B" - None - - + P00_7 D4 - - - - Disabled - - "BSC: RAS#; GPT2: GTIOC2A; IRQ: IRQ13; MTU34: MTIOC4A" - None - - + P01_0 A2 - - - - Disabled - - "BSC: CAS#; DSMIF1: MCLK1; ETHER_ESC: ESC_MDIO; ETHER_ETHSW: ETHSW_MDIO; ETHER_GMAC: GMAC_MDIO; GPT3: GTIOC3A; MTU34: MTIOC4C; SCI2: CTS2#" - None - - + P01_1 D3 - - - - Disabled - - "BSC: CKE; DSMIF1: MDAT1; ETHER_ESC: ESC_MDC; ETHER_ETHSW: ETHSW_MDC; ETHER_GMAC: GMAC_MDC; GPT1: GTIOC1B; MTU33: MTIOC3D; SCI2: DE2" - None - - + P01_2 B2 - ETH2_TXD3 - - Disabled - - "BSC: CS2#; ETHER_ETH2: ETH2_TXD3; GPT2: GTIOC2B; IRQ: IRQ2; MTU34: MTIOC4B" - None - - + P01_3 C2 - ETH2_TXD2 - - Disabled - - "BSC: AH#; ETHER_ETH2: ETH2_TXD2; GPT3: GTIOC3B; MTU34: MTIOC4D" - None - - + P01_4 E4 - ETH2_TXD1 - - Disabled - - "BSC: WE1#_DQMLU; ETHER_ETH2: ETH2_TXD1; IRQ: IRQ3; MTU_POE3: POE0#" - None - - + P01_5 B1 - ETH2_TXD0 - - Disabled - - "BSC: WE0#_DQMLL; ETHER_ETH2: ETH2_TXD0" - None - - + P01_6 D2 - - - - Disabled - - "BSC: A20; CANFD1: CANTXDP1; ETHER_ESC: ESC_LATCH0; ETHER_ESC: ESC_LATCH1; ETHER_GMAC: GMAC_PTPTRG1; GPT9: GTIOC9A; MTU31: MTIOC1A; PHOSTIF: HA20; SCI1: CTS1#; TRACE: TRACEDATA0" - None - - + P01_7 C1 - CAN_RX Low - Disabled - - "ADC0: ADTRG0#; BSC: A19; CANFD0: CANRX0; ETHER_ETHSW: ETHSW_LPI1; GPT9: GTIOC9B; MTU31: MTIOC1B; PHOSTIF: HA19; SCI1: SCK1; SPI3: SPI_RSPCK3; TRACE: TRACEDATA1" - I - - + P02_0 E3 - - - - Disabled - - "BSC: A18; CANFD1: CANTX1; ETHER_ETHSW: ETHSW_LPI2; GPT: GTADSML0; IRQ: IRQ4; PHOSTIF: HA18; SCI1: RXD_MISO1; SCI1: SCL1; SPI3: SPI_MISO3; TRACE: TRACEDATA2; USB_HS: USB_OTGID" - None - - + P02_1 D1 - - - - Disabled - - "BSC: A17; ETHER_ESC: ESC_SYNC0; ETHER_ESC: ESC_SYNC1; ETHER_ETHSW: ETHSW_PTPOUT1; PHOSTIF: HA17; SCI1: DE1" - None - - + P02_2 F3 - CAN_TX Low - Disabled - - "BSC: A16; CANFD0: CANTX0; ETHER_ETHSW: ETHSW_TDMAOUT0; GPT10: GTIOC10A; IRQ: IRQ14; MTU32: MTIOC2A; MTU_POE3: POE10#; PHOSTIF: HA16; RTC: RTCAT1HZ; SCI1: SDA1; SCI1: TXD_MOSI1; SPI3: SPI_MOSI3" - O - - + P02_3 E1 - - - - Disabled - - "BSC: A15; BSC: AH#; CANFD1: CANRX1; ETHER_ETHSW: ETHSW_TDMAOUT1; GPT10: GTIOC10B; IRQ: IRQ15; MTU32: MTIOC2B; MTU_POE3: POE11#; PHOSTIF: HA15; SCI1: CTS_RTS_SS1#; SPI3: SPI_SSL30" - None - - + P02_4 F4 JTAG/SWD_TDO TDO High - "Peripheral mode" - - "BSC: WE0#_DQMLL; JTAG/SWD: TDO; SCI1: DE1; SPI3: SPI_SSL33" - O - - + P02_5 F2 JTAG/SWD_TDI TDI Low - "Peripheral mode" - - "BSC: WE1#_DQMLU; ETHER_ETHSW: ETHSW_TDMAOUT3; JTAG/SWD: TDI; SCI5: SCK5; SPI3: SPI_SSL31" - I - - + P02_6 F5 JTAG/SWD_TMS_SWDIO TMS High - "Peripheral mode" - - "JTAG/SWD: TMS_SWDIO; SCI5: RXD_MISO5; SCI5: SCL5" - IO - - + P02_7 F1 JTAG/SWD_TCK_SWCLK TCK Low - "Peripheral mode" - - "JTAG/SWD: TCK_SWCLK; SCI5: SDA5; SCI5: TXD_MOSI5" - I - - + P03_0 G3 - ETH_LED4 Low - Disabled - - "BSC: A14; BSC: CS5#; CANFD1: CANTXDP1; GPT: GTADSML1; IRQ: IRQ14; PHOSTIF: HA14; SCI2: SCK2; SPI3: SPI_SSL32; TRACE: TRACEDATA3" - IO - - + P03_5 G1 - - - - Disabled - - "BSC: A12; DSMIF2: MCLK2; ETHER_ETH2: ETH2_CRS; GPT4: GTIOC4A; IRQ: IRQ5; MTU33: MTIOC3A; PHOSTIF: HA12; SCI2: RXD_MISO2; SCI2: SCL2" - None - - + P03_6 G4 - - - - Disabled - - "BSC: A11; DSMIF2: MDAT2; ETHER_ETH2: ETH2_COL; GPT4: GTIOC4B; IRQ: IRQ8; MTU33: MTIOC3B; PHOSTIF: HA11; SCI2: SDA2; SCI2: TXD_MOSI2; SPI1: SPI_SSL13; TRACE: TRACEDATA4" - None - - + P03_7 G5 - - - - Disabled - - "BSC: A10; ETHER_ETH2: ETH2_TXER; GPT5: GTIOC5A; IRQ: IRQ9; MTU33: MTIOC3C; PHOSTIF: HA10; SCI3: SCK3; TRACE: TRACEDATA5" - None - - + P04_0 H1 - - - - Disabled - - "BSC: A9; GPT5: GTIOC5B; MTU33: MTIOC3D; PHOSTIF: HA9; SCI3: RXD_MISO3; SCI3: SCL3; TRACE: TRACEDATA6" - None - - + P04_1 H2 - LED_RED1 Low - Disabled - - "BSC: CKIO; IIC2: IIC_SDA2; PHOSTIF: HCKIO; SCI3: SDA3; SCI3: TXD_MOSI3; SPI0: SPI_MOSI0" - IO - - + P04_4 H4 - ETH_LED6 Low - Disabled - - "BSC: A8; GPT: GTADSMP0; IRQ: IRQ10; MTU_POE3: POE10#; PHOSTIF: HA8; SCI3: CTS3#; SPI1: SPI_RSPCK1; TRACE: TRACEDATA7" - IO - - + P04_5 H3 - - - - Disabled - - "BSC: A7; ETHER_ESC: ESC_SYNC0; ETHER_ESC: ESC_SYNC1; ETHER_ETHSW: ETHSW_PTPOUT0; PHOSTIF: HA7; SCI3: DE3" - None - - + P04_6 H5 - - - - Disabled - - "BSC: A6; DMAC: DACK; ETHER_ETH1: ETH1_TXER; PHOSTIF: HA6; RTC: RTCAT1HZ" - None - - + P04_7 J1 - - - - Disabled - - "BSC: A5; ETHER_ETH0: ETH0_TXER; ETHER_ETH2: ETH2_TXER; PHOSTIF: HA5; SPI2: SPI_SSL21" - None - - + P05_0 J5 - ETH_LED7 Low - Disabled - - "BSC: A4; CANFD0: CANTXDP0; CMTW0: CMTW0_TOC0; DSMIF3: MCLK3; ETHER_ETH1: ETH1_CRS; GPT6: GTIOC6A; IRQ: IRQ12; MTU34: MTIOC4A; PHOSTIF: HA4; SCI5: CTS_RTS_SS5#; USB_HS: USB_VBUSEN" - IO - - + P05_1 J2 - - - - Disabled - - "BSC: A3; CANFD0: CANRXDP0; CMTW0: CMTW0_TIC1; DSMIF3: MDAT3; ETHER_ETH1: ETH1_COL; GPT6: GTIOC6B; IRQ: IRQ13; MTU34: MTIOC4B; PHOSTIF: HA3; SCI5: CTS5#; USB_HS: USB_EXICEN" - None - - + P05_2 J4 - SCL Low - Disabled - - "BSC: A2; CANFD0: CANRX0; CMTW0: CMTW0_TOC0; DMAC: DREQ; ETHER_ETH0: ETH0_CRS; GPT7: GTIOC7A; GPT_POEG: GTETRGSA; IIC1: IIC_SCL1; IRQ: IRQ14; MTU34: MTIOC4C; PHOSTIF: HA2; SCI5: DE5; USB_HS: USB_VBUSEN" - IO - - + P05_3 J3 - SDA Low - Disabled - - "BSC: A1; CANFD0: CANTX0; CMTW0: CMTW0_TIC0; ETHER_ETH0: ETH0_COL; GPT7: GTIOC7B; GPT_POEG: GTETRGSB; IIC1: IIC_SDA1; IRQ: IRQ15; MTU34: MTIOC4D; MTU_POE3: POE11#; PHOSTIF: HA1; SCI4: SCK4; USB_HS: USB_EXICEN" - IO - - + P05_4 K1 - SW2 - - Disabled - - "BSC: A0; CANFD0: CANTXDP0; DMAC: DACK; ETHER_ETHSW: ETHSW_LPI0; GPT14: GTIOC14A; IRQ: IRQ12; PHOSTIF: HA0; SCI4: RXD_MISO4; SCI4: SCL4; SPI0: SPI_SSL00; USB_HS: USB_OVRCUR" - IO - - + P05_5 K2 - ETH1_LINK - - Disabled - - "CMTW0: CMTW0_TOC1; ETHER_ESC: ESC_PHYLINK1; ETHER_ETHSW: ETHSW_PHYLINK1; GPT14: GTIOC14B; SPI2: SPI_RSPCK2" - None - - + P05_6 K3 - - - - Disabled - - "CMTW1: CMTW1_TIC0; ETHER_ETH1: ETH1_RXER; GPT15: GTIOC15A; IRQ: IRQ12; SPI2: SPI_SSL22" - None - - + P05_7 M1 - ETH1_TXD2 - - Disabled - - "CMTW1: CMTW1_TOC1; ETHER_ETH1: ETH1_TXD2; GPT15: GTIOC15B; SCI4: SDA4; SCI4: TXD_MOSI4; SPI2: SPI_SSL23" - None - - + P06_0 L2 - ETH1_TXD3 - - Disabled - - "CANFD1: CANRX1; CMTW1: CMTW1_TOC0; ETHER_ETH1: ETH1_TXD3; GPT16: GTIOC16A; SCI4: CTS_RTS_SS4#; SPI2: SPI_SSL23" - None - - + P06_1 L3 - ETH1_REFCLK - - Disabled - - "CANFD1: CANTX1; ETHER_ETH1: ETH1_REFCLK; ETHER_ETH1: ETH1_RMII1_REFCLK; GPT16: GTIOC16B; SCI4: CTS4#; SPI2: SPI_SSL22" - None - - + P06_2 M2 - ETH1_TXD1 - - Disabled - - "CANFD1: CANRXDP1; ETHER_ETH1: ETH1_TXD1; GPT17: GTIOC17A" - None - - + P06_3 K4 - ETH1_TXD0 - - Disabled - - "CANFD1: CANTXDP1; CMTW1: CMTW1_TIC1; ETHER_ETH1: ETH1_TXD0; GPT17: GTIOC17B; SCI4: DE4; SPI1: SPI_MISO1" - None - - + P06_4 N1 - ETH1_TXCLK - - Disabled - - "ETHER_ETH1: ETH1_TXCLK_TXC; GPT11: GTIOC11A; SPI1: SPI_MOSI1" - None - - + P06_5 N2 - ETH1_TXEN - - Disabled - - "ETHER_ETH1: ETH1_TXEN_TXCTL; GPT11: GTIOC11B" - None - - + P06_6 L4 - ETH1_RXD0 - - Disabled - - "ETHER_ETH1: ETH1_RXD0; GPT12: GTIOC12A; SPI1: SPI_SSL10" - None - - + P06_7 M3 - ETH1_RXD1 - - Disabled - - "ETHER_ETH1: ETH1_RXD1; GPT12: GTIOC12B; SPI1: SPI_SSL11" - None - - + P07_0 P1 - ETH1_RXD2 - - Disabled - - "ETHER_ETH1: ETH1_RXD2; GPT13: GTIOC13A" - None - - + P07_1 N3 - ETH1_RXD3 - - Disabled - - "ETHER_ETH1: ETH1_RXD3; GPT13: GTIOC13B" - None - - + P07_2 P2 - ETH1_RXDV - - Disabled - - "ETHER_ETH1: ETH1_RXDV_CRSDV_RXCTL" - None - - + P07_3 M4 - ETH1_RXCLK - - Disabled - - "ETHER_ETH1: ETH1_RXCLK_REF_CLK_RXC" - None - - + P07_4 R2 - USB_VBUSIN - - Disabled - - "ADC0: ADTRG0#; IRQ: IRQ1; USB_HS: USB_VBUSIN" - I - - + P08_4 N4 - ETH0_RXD3 - - Disabled - - "ETHER_ETH0: ETH0_RXD3; MTU36: MTIOC6A" - None - - + P08_5 P3 - ETH0_RXDV - - Disabled - - "ETHER_ETH0: ETH0_RXDV_CRSDV_RXCTL; MTU36: MTIOC6B" - None - - + P08_6 M5 - ETH0_RXCLK - - Disabled - - "ETHER_ETH0: ETH0_RXCLK_REF_CLK_RXC; MTU36: MTIOC6C" - None - - + P08_7 N5 - ETH_MDC Low - Disabled - - "ETHER_ESC: ESC_MDC; ETHER_ETHSW: ETHSW_MDC; ETHER_GMAC: GMAC_MDC; MTU36: MTIOC6D" - O - - + P09_0 P4 - ETH_MDIO Low - Disabled - - "ETHER_ESC: ESC_MDIO; ETHER_ETHSW: ETHSW_MDIO; ETHER_GMAC: GMAC_MDIO; MTU37: MTIOC7A" - IO - - + P09_1 R3 - ETH0_REFCLK - - Disabled - - "ETHER_ETH0: ETH0_REFCLK; ETHER_ETH0: ETH0_RMII0_REFCLK; MTU37: MTIOC7B" - None - - + P09_2 N6 - - - - Disabled - - "ETHER_ETH0: ETH0_RXER; IRQ: IRQ0; MTU37: MTIOC7C" - None - - + P09_3 R4 - ETH0_TXD3 - - Disabled - - "ETHER_ETH0: ETH0_TXD3; MTU37: MTIOC7D" - None - - + P09_4 M6 - ETH0_TXD2 - - Disabled - - "ETHER_ETH0: ETH0_TXD2" - None - - + P09_5 N7 - ETH0_TXD1 - - Disabled - - "ETHER_ETH0: ETH0_TXD1" - None - - + P09_6 M7 - ETH0_TXD0 - - Disabled - - "ETHER_ETH0: ETH0_TXD0" - None - - + P09_7 L7 - ETH0_TXCLK - - Disabled - - "ETHER_ETH0: ETH0_TXCLK_TXC" - None - - + P10_0 N8 - ETH0_TXEN - - Disabled - - "ETHER_ETH0: ETH0_TXEN_TXCTL" - None - - + P10_1 M8 - ETH0_RXD0 - - Disabled - - "ETHER_ETH0: ETH0_RXD0" - None - - + P10_2 L8 - ETH0_RXD1 - - Disabled - - "ETHER_ETH0: ETH0_RXD1" - None - - + P10_3 L9 - ETH0_RXD2 - - Disabled - - "ETHER_ETH0: ETH0_RXD2; RTC: RTCAT1HZ" - None - - + P10_4 M9 - ETH0_LINK - - Disabled - - "ETHER_ESC: ESC_PHYLINK0; ETHER_ETHSW: ETHSW_PHYLINK0; IRQ: IRQ11" - None - - + P12_4 N11 - - - - Disabled - - "BSC: D15; ETHER_ETH1: ETH1_CRS; GPT8: GTIOC8B; MBXSEM: MBX_HINT#; MTU38: MTIOC8B; SPI0: SPI_SSL01; TRACE: TRACEDATA0" - None - - + P13_2 L10 - EEPROM_SCL Low - Disabled - - "BSC: A13; BSC: D9; DSMIF4: MCLK4; ETHER_ESC: ESC_I2CCLK; ETHER_ETHSW: ETHSW_PTPOUT2; GPT10: GTIOC10A; IIC0: IIC_SCL0; IRQ: IRQ5; MTU30: MTIOC0A; MTU_POE3: POE8#; SCI1: CTS_RTS_SS1#; SPI0: SPI_MISO0; TRACE: TRACEDATA6" - IO - - + P13_3 N12 - EEPROM_SDA Low - Disabled - - "BSC: D8; BSC: RD#; CMTW1: CMTW1_TOC0; DSMIF4: MDAT4; ETHER_ESC: ESC_I2CDATA; ETHER_ETHSW: ETHSW_PTPOUT3; GPT10: GTIOC10B; IIC0: IIC_SDA0; MTU30: MTIOC0B; MTU30: MTIOC0C; SCI1: CTS1#; SPI0: SPI_RSPCK0; TRACE: TRACEDATA7" - IO - - + P13_4 L12 - ESC_RESETOUT Low - Disabled - - "BSC: A0; ETHER_ESC: ESC_RESETOUT#; GPT8: GTIOC8B; MTU30: MTIOC0D" - IO - - + P13_5 M12 - SW3_Pin2 - - Disabled - - "ETHER_ESC: ESC_LATCH0; ETHER_ESC: ESC_LATCH1; ETHER_GMAC: GMAC_PTPTRG0; IIC2: IIC_SCL2; MTU3: MTCLKA; SPI1: SPI_RSPCK1; XSPI0: XSPI0_WP1#" - IO - - + P13_6 M13 - SW3_Pin1 - - Disabled - - "ETHER_ESC: ESC_SYNC0; ETHER_ESC: ESC_SYNC1; ETHER_ETHSW: ETHSW_PTPOUT0; MTU3: MTCLKB; XSPI0: XSPI0_WP0#" - IO - - + P13_7 M11 - SW3_Pin4 - - Disabled - - "ETHER_ESC: ESC_LATCH0; ETHER_ESC: ESC_LATCH1; ETHER_GMAC: GMAC_PTPTRG1; MBXSEM: MBX_HINT#; MTU3: MTCLKC; XSPI0: XSPI0_ECS1#" - IO - - + P14_0 L13 - SW3_Pin3 - - Disabled - - "ETHER_ESC: ESC_SYNC0; ETHER_ESC: ESC_SYNC1; ETHER_ETHSW: ETHSW_PTPOUT1; MTU3: MTCLKD; XSPI0: XSPI0_INT0#" - IO - - + P14_1 L14 - - - - Disabled - - "ETHER_ESC: ESC_LATCH0; ETHER_ESC: ESC_LATCH1; ETHER_ETH1: ETH1_COL; ETHER_GMAC: GMAC_PTPTRG1; GPT8: GTIOC8A; MTU38: MTIOC8A; SHOSTIF: HSPI_IO0; XSPI0: XSPI0_INT1#" - None - - + P14_2 K12 - XSPI0_ECS Low - Disabled - - "ETHER_ETH0: ETH0_CRS; ETHER_ETH2: ETH2_CRS; GPT8: GTIOC8B; IRQ: IRQ6; MTU38: MTIOC8B; SHOSTIF: HSPI_CK; XSPI0: XSPI0_ECS0#" - I - - + P14_3 M14 - - - - Disabled - - "ETHER_ETH0: ETH0_COL; ETHER_ETH2: ETH2_COL; MTU30: MTIOC0A; SHOSTIF: HSPI_IO1; XSPI0: XSPI0_RSTO1#" - None - - + P14_4 J13 - XSPI0_DS Low - Disabled - - "BSC: BS#; ETHER_ESC: ESC_IRQ; MTU30: MTIOC0B; PHOSTIF: HBS#; XSPI0: XSPI0_DS" - IO - - + P14_5 J12 - XSPI0_CKN Low - Disabled - - "BSC: CS3#; MTU_POE3: POE8#; SHOSTIF: HSPI_INT#; XSPI0: XSPI0_CKN" - O - - + P14_6 K13 - XSPI0_CKP Low - Disabled - - "BSC: A21; XSPI0: XSPI0_CKP" - O - - + P14_7 M15 - XSPI0_IO0 Low - Disabled - - "BSC: A22; BSC: BS#; SCI5: SCK5; SPI1: SPI_MISO1; XSPI0: XSPI0_IO0" - IO - - + P15_0 L11 - XSPI0_IO1 Low - Disabled - - "BSC: A23; BSC: CKE; SCI5: RXD_MISO5; SCI5: SCL5; SPI1: SPI_MOSI1; XSPI0: XSPI0_IO1" - IO - - + P15_1 K14 - XSPI0_IO2 Low - Disabled - - "BSC: A24; BSC: CAS#; MTU30: MTIOC0C; SCI5: SDA5; SCI5: TXD_MOSI5; SPI1: SPI_SSL10; XSPI0: XSPI0_IO2" - IO - - + P15_2 K15 - XSPI0_IO3 Low - Disabled - - "BSC: A25; BSC: RAS#; MTU30: MTIOC0D; SCI5: CTS_RTS_SS5#; SPI1: SPI_SSL11; XSPI0: XSPI0_IO3" - IO - - + P15_3 K11 - XSPI0_IO4 Low - Disabled - - "BSC: D11; DSMIF1: MCLK1; MTU38: MTIOC8C; XSPI0: XSPI0_IO4" - IO - - + P15_4 H13 - XSPI0_IO5 Low - Disabled - - "BSC: D12; DSMIF1: MDAT1; MTU38: MTIOC8D; XSPI0: XSPI0_IO5" - IO - - + P15_5 J14 - XSPI0_IO6 Low - Disabled - - "BSC: D13; DSMIF2: MCLK2; XSPI0: XSPI0_IO6" - IO - - + P15_6 H12 - XSPI0_IO7 Low - Disabled - - "BSC: D14; DSMIF2: MDAT2; SPI1: SPI_SSL12; XSPI0: XSPI0_IO7" - IO - - + P15_7 J15 - OSPI_CS Low - Disabled - - "DMAC: TEND; SCI5: CTS5#; SPI1: SPI_SSL13; XSPI0: XSPI0_CS0#" - O - - + P16_0 G13 - ORAM_CS0 Low - Disabled - - "DSMIF3: MCLK3; ETHER_ETH0: ETH0_TXER; ETHER_ETH2: ETH2_REFCLK; SCI0: SDA0; SCI0: TXD_MOSI0; SHOSTIF: HSPI_CS#; SPI3: SPI_MOSI3; XSPI0: XSPI0_CS1#" - O - - + P16_1 H11 - XSPI0_RESET0 Low - Disabled - - "ADC0: ADTRG0#; BSC: CS2#; CMTW0: CMTW0_TOC1; DSMIF3: MDAT3; PHOSTIF: HCS1#; SCI0: RXD_MISO0; SCI0: SCL0; SPI3: SPI_MISO3; XSPI0: XSPI0_RESET0#" - O - - + P16_2 H14 - - - - Disabled - - "IRQ: NMI; PHOSTIF: HERROUT#; SCI0: CTS0#; SHOSTIF: HSPI_IO2; SPI3: SPI_RSPCK3; USB_HS: USB_EXICEN; XSPI0: XSPI0_RESET1#" - None - - + P16_3 G12 - SW1 - - Disabled - - "BSC: CS3#; ETHER_ETH1: ETH1_CRS; ETHER_ETH1: ETH1_TXER; GPT: GTADSMP1; IRQ: IRQ7; SCI0: SCK0; SHOSTIF: HSPI_IO3; SPI3: SPI_SSL30; XSPI0: XSPI0_RSTO0#" - IO - - + P16_5 H15 - UART_USB_TX Low - Disabled - - "BSC: A15; MTU35: MTIC5U; SCI0: SDA0; SCI0: TXD_MOSI0; SHOSTIF: HSPI_IO4" - IO - - + P16_6 G11 - UART_USB_RX Low - Disabled - - "BSC: CS0#; IRQ: IRQ8; MTU35: MTIC5V; PHOSTIF: HCS0#; SCI0: RXD_MISO0; SCI0: SCL0; SHOSTIF: HSPI_IO5" - IO - - + P16_7 G14 - - - - Disabled - - "BSC: A13; MTU35: MTIC5W; PHOSTIF: HA13; SCI0: SCK0; XSPI1: XSPI1_IO0" - None - - + P17_0 F12 - - - - Disabled - - "ETHER_ESC: ESC_IRQ; SCI0: CTS_RTS_SS0#; XSPI1: XSPI1_IO1" - None - - + P17_3 F14 - LED_RED2 Low - Disabled - - "ADC1: ADTRG1#; DMAC: DREQ; GPT_POEG: GTETRGA; MTU_POE3: POE0#; SPI3: SPI_SSL31; TRACE: TRACECTL; XSPI1: XSPI1_IO2" - IO - - + P17_4 F13 - - - - Disabled - - "DMAC: DACK; GPT0: GTIOC0A; GPT_POEG: GTETRGB; MTU33: MTIOC3C; SCI3: CTS3#; SPI3: SPI_SSL32; TRACE: TRACECLK; XSPI1: XSPI1_IO3" - None - - + P17_5 F15 - USB_OVRCUR Low - Disabled - - "DMAC: TEND; GPT0: GTIOC0B; GPT_POEG: GTETRGC; MTU33: MTIOC3A; USB_HS: USB_OVRCUR" - I - - + P17_6 G15 - - - - Disabled - - "BSC: RD_WR#; GPT1: GTIOC1A; MTU33: MTIOC3B; PHOSTIF: HWRSTB#; SCI3: SCK3; XSPI1: XSPI1_DS" - None - - + P17_7 E15 - SCI_RXD Low - Disabled - - "BSC: RD#; DMAC: DACK; GPT2: GTIOC2A; GPT3: GTIOC3A; MTU34: MTIOC4A; MTU34: MTIOC4C; PHOSTIF: HRD#; SCI3: RXD_MISO3; SCI3: SCL3; XSPI1: XSPI1_CKP" - IO - - + P18_0 E14 - SCI_TXD Low - Disabled - - "BSC: WE0#_DQMLL; GPT2: GTIOC2A; GPT3: GTIOC3A; MTU34: MTIOC4A; MTU34: MTIOC4C; PHOSTIF: HWR0#; SCI3: SDA3; SCI3: TXD_MOSI3; SHOSTIF: HSPI_IO6" - IO - - + P18_1 D15 - - - - Disabled - - "ADC1: ADTRG1#; BSC: WE1#_DQMLU; GPT1: GTIOC1B; IRQ: IRQ10; MTU33: MTIOC3D; PHOSTIF: HWR1#; SCI3: CTS_RTS_SS3#; SHOSTIF: HSPI_IO7" - None - - + P18_2 D14 - LED_GREEN Low - Disabled - - "BSC: BS#; ETHER_ETH1: ETH1_COL; GPT2: GTIOC2B; GPT3: GTIOC3B; IIC2: IIC_SDA2; MTU34: MTIOC4B; MTU34: MTIOC4D; SCI0: SCK0; XSPI1: XSPI1_CS0#" - IO - - + P18_3 E13 - - - - Disabled - - "BSC: CKE; CANFD1: CANRXDP1; CMTW1: CMTW1_TIC1; ETHER_ETH2: ETH2_CRS; GPT2: GTIOC2B; GPT3: GTIOC3B; IRQ: IRQ0; MTU34: MTIOC4B; MTU34: MTIOC4D; XSPI1: XSPI1_IO4" - None - - + P18_4 E12 - SCK Low - Disabled - - "BSC: CAS#; CANFD0: CANTX0; ETHER_ETH1: ETH1_CRS; IRQ: IRQ1; MTU35: MTIC5U; SCI4: SDA4; SCI4: TXD_MOSI4; SPI2: SPI_RSPCK2; XSPI1: XSPI1_IO5" - IO - - + P18_5 D13 - MOSI Low - Disabled - - "BSC: RAS#; CANFD0: CANRX0; ETHER_ETH2: ETH2_COL; MTU35: MTIC5V; SCI4: RXD_MISO4; SCI4: SCL4; SPI2: SPI_MOSI2; TRACE: TRACECTL; XSPI1: XSPI1_IO6" - IO - - + P18_6 C15 - MISO Low - Disabled - - "ADC0: ADTRG0#; ETHER_ETH1: ETH1_COL; IIC2: IIC_SCL2; IRQ: IRQ11; MTU35: MTIC5W; SCI4: DE4; SCI4: SCK4; SPI2: SPI_MISO2; TRACE: TRACECLK; XSPI1: XSPI1_IO7" - IO - - + P19_0 B15 - USB_VBUSEN Low - Disabled - - "USB_HS: USB_VBUSEN" - O - - + P20_1 B9 - ETH_LED2_MDV0 - - Disabled - - "ETHER_ESC: ESC_LINKACT0; ETHER_ETHSW: ETHSW_PTPOUT3; ETHER_ETHSW: ETHSW_TDMAOUT0" - None - - + P20_2 D8 - ETH_LED0_MDV1 - - Disabled - - "ETHER_ESC: ESC_LEDRUN; ETHER_ESC: ESC_LEDSTER; ETHER_ETHSW: ETHSW_PTPOUT2; ETHER_ETHSW: ETHSW_TDMAOUT1; SCI3: DE3" - None - - + P20_3 D9 - ETH_LED1_MDV2 - - Disabled - - "ETHER_ESC: ESC_LEDERR; ETHER_ETHSW: ETHSW_PTPOUT1; ETHER_ETHSW: ETHSW_TDMAOUT2" - None - - + P20_4 A9 - ETH_LED3_MDV3 - - Disabled - - "ETHER_ESC: ESC_LINKACT1; ETHER_ETHSW: ETHSW_PTPOUT0; ETHER_ETHSW: ETHSW_TDMAOUT3" - None - - + P21_1 B8 - CS Low - Disabled - - "BSC: D0; CMTW0: CMTW0_TIC0; DSMIF0: MCLK0; ETHER_ESC: ESC_SYNC0; ETHER_ESC: ESC_SYNC1; GPT14: GTIOC14A; IIC1: IIC_SCL1; MTU36: MTIOC6A; PHOSTIF: HD0; SCI5: SCK5; SHOSTIF: HSPI_INT#; SPI2: SPI_SSL20; TRACE: TRACEDATA0" - IO - - + P21_2 C8 - - - - Disabled - - "BSC: D1; CMTW0: CMTW0_TIC1; DSMIF0: MDAT0; ETHER_ESC: ESC_SYNC0; ETHER_ESC: ESC_SYNC1; GPT14: GTIOC14B; IIC1: IIC_SDA1; MTU36: MTIOC6B; PHOSTIF: HD1; SCI5: RXD_MISO5; SCI5: SCL5; SPI2: SPI_MISO2; TRACE: TRACEDATA1" - None - - + P21_3 A8 - - - - Disabled - - "BSC: D2; DSMIF1: MCLK1; GPT15: GTIOC15A; IRQ: NMI; MTU36: MTIOC6C; PHOSTIF: HD2; SCI5: SDA5; SCI5: TXD_MOSI5; SPI3: SPI_SSL33; TRACE: TRACEDATA2" - None - - + P21_4 E7 - - - - Disabled - - "BSC: D3; DSMIF1: MDAT1; ETHER_ESC: ESC_SYNC0; ETHER_ESC: ESC_SYNC1; ETHER_ETHSW: ETHSW_PTPOUT1; GPT15: GTIOC15B; MBXSEM: MBX_HINT#; MTU36: MTIOC6D; PHOSTIF: HD3; SCI5: CTS_RTS_SS5#; SPI0: SPI_SSL02; TRACE: TRACEDATA3" - None - - + P21_5 C7 - - - - Disabled - - "ADC1: ADTRG1#; BSC: D4; CMTW1: CMTW1_TOC1; DSMIF2: MCLK2; GPT16: GTIOC16A; IRQ: IRQ6; MTU37: MTIOC7A; PHOSTIF: HD4; SCI5: CTS5#; SPI0: SPI_MISO0; TRACE: TRACEDATA4" - None - - + P21_6 D7 - - - - Disabled - - "BSC: D5; DMAC: TEND; DSMIF2: MDAT2; GPT16: GTIOC16B; IRQ: IRQ9; MTU37: MTIOC7B; PHOSTIF: HD5; SCI0: CTS0#; TRACE: TRACEDATA5" - None - - + P21_7 B7 - - - - Disabled - - "BSC: D6; DMAC: DREQ; DSMIF3: MCLK3; GPT17: GTIOC17A; IRQ: IRQ10; MTU37: MTIOC7C; PHOSTIF: HD6; SCI0: DE0; TRACE: TRACEDATA6" - None - - + P22_0 A7 - - - - Disabled - - "BSC: D7; DSMIF3: MDAT3; GPT17: GTIOC17B; IRQ: IRQ15; MTU37: MTIOC7D; PHOSTIF: HD7; SCI5: DE5; TRACE: TRACEDATA7" - None - - + P22_1 A6 - ETH_LED5 Low - Disabled - - "BSC: D8; ETHER_ESC: ESC_LINKACT2; GPT_POEG: GTETRGB; MTU_POE3: POE4#; PHOSTIF: HD8; SCI4: CTS_RTS_SS4#; TRACE: TRACECTL" - IO - - + P22_2 C6 - - - - Disabled - - "BSC: D9; DSMIF1: MCLK1; GPT_POEG: GTETRGSA; IRQ: IRQ4; MTU38: MTIOC8C; PHOSTIF: HD9; SPI1: SPI_SSL12; TRACE: TRACECLK" - None - - + P22_3 B6 - LED_ORANGE Low - Disabled - - "BSC: D10; GPT_POEG: GTETRGSB; MTU38: MTIOC8D; PHOSTIF: HD10; SCI5: RXD_MISO5; SCI5: SCL5" - IO - - + P23_7 D6 - ETH2_RXD0 - - Disabled - - "BSC: BS#; BSC: D11; DSMIF4: MCLK4; ETHER_ETH2: ETH2_RXD0; GPT_POEG: GTETRGA; MTU30: MTIOC0A; PHOSTIF: HD11; SCI1: SCK1" - None - - + P24_0 A5 - ETH2_RXD1 - - Disabled - - "BSC: CKE; BSC: D12; DMAC: DREQ; DSMIF4: MDAT4; ETHER_ETH2: ETH2_RXD1; GPT_POEG: GTETRGB; MTU30: MTIOC0B; PHOSTIF: HD12; SCI1: RXD_MISO1; SCI1: SCL1" - None - - + P24_1 B5 - ETH2_RXCLK - - Disabled - - "BSC: CAS#; BSC: D13; DSMIF5: MCLK5; ETHER_ETH2: ETH2_RXCLK_REF_CLK_RXC; GPT_POEG: GTETRGC; MTU30: MTIOC0C; MTU_POE3: POE8#; PHOSTIF: HD13" - None - - + P24_2 C5 - ETH2_RXD2 - - Disabled - - "BSC: D14; BSC: RAS#; DSMIF5: MDAT5; ETHER_ETH2: ETH2_RXD2; GPT_POEG: GTETRGD; MTU30: MTIOC0D; PHOSTIF: HD14; SCI1: SDA1; SCI1: TXD_MOSI1" - None - - + RES# P6 SYSTEM_RES# - - - - - - - - I "Read only" - + TRST# E2 SYSTEM_TRST# - - - - - - - - I "Read only" - + USB_DM P13 SYSTEM_USB_DM - - - - - - - - IO "Read only" - + USB_DP R13 SYSTEM_USB_DP - - - - - - - - IO "Read only" - + USB_RREF P15 SYSTEM_USB_RREF - - - - - - - - I "Read only" - + VCC1833_0 L6 SYSTEM_VCC1833_0 - - - - - - - - I "Read only" - + VCC1833_1 K5 SYSTEM_VCC1833_1 - - - - - - - - I "Read only" - + VCC1833_2 E5 SYSTEM_VCC1833_2 - - - - - - - - I "Read only" - + VCC1833_3 J11 SYSTEM_VCC1833_3 - - - - - - - - I "Read only" - + VCC1833_4 F11 SYSTEM_VCC1833_4 - - - - - - - - I "Read only" - + VCC18_ADC0 E11 SYSTEM_VCC18_ADC0 - - - - - - - - I "Read only" - + VCC18_ADC1 E9 SYSTEM_VCC18_ADC1 - - - - - - - - I "Read only" - + VCC18_PLL0 P9 SYSTEM_VCC18_PLL0 - - - - - - - - I "Read only" - + VCC18_PLL1 N9 SYSTEM_VCC18_PLL1 - - - - - - - - I "Read only" - + VCC18_USB P11 SYSTEM_VCC18_USB - - - - - - - - I "Read only" - + VCC33 E6 SYSTEM_VCC33 - - - - - - - - I "Read only" - + VCC33 E8 SYSTEM_VCC33 - - - - - - - - I "Read only" - + VCC33 M10 SYSTEM_VCC33 - - - - - - - - I "Read only" - + VCC33 L5 SYSTEM_VCC33 - - - - - - - - I "Read only" - + VCC33_USB R11 SYSTEM_VCC33_USB - - - - - - - - I "Read only" - + VDD H10 SYSTEM_VDD - - - - - - - - I "Read only" - + VDD G10 SYSTEM_VDD - - - - - - - - I "Read only" - + VDD F6 SYSTEM_VDD - - - - - - - - I "Read only" - + VDD F8 SYSTEM_VDD - - - - - - - - I "Read only" - + VDD F9 SYSTEM_VDD - - - - - - - - I "Read only" - + VDD G6 SYSTEM_VDD - - - - - - - - I "Read only" - + VDD F10 SYSTEM_VDD - - - - - - - - I "Read only" - + VDD H6 SYSTEM_VDD - - - - - - - - I "Read only" - + VDD J6 SYSTEM_VDD - - - - - - - - I "Read only" - + VDD K6 SYSTEM_VDD - - - - - - - - I "Read only" - + VDD K7 SYSTEM_VDD - - - - - - - - I "Read only" - + VDD K8 SYSTEM_VDD - - - - - - - - I "Read only" - + VDD K10 SYSTEM_VDD - - - - - - - - I "Read only" - + VDD P7 SYSTEM_VDD - - - - - - - - I "Read only" - + VDD J10 SYSTEM_VDD - - - - - - - - I "Read only" - + VREFH0 C11 SYSTEM_VREFH0 - - - - - - - - I "Read only" - + VREFH1 C10 SYSTEM_VREFH1 - - - - - - - - I "Read only" - + VSS A1 SYSTEM_VSS - - - - - - - - I "Read only" - + VSS R1 SYSTEM_VSS - - - - - - - - I "Read only" - + VSS A10 SYSTEM_VSS - - - - - - - - I "Read only" - + VSS R5 SYSTEM_VSS - - - - - - - - I "Read only" - + VSS A15 SYSTEM_VSS - - - - - - - - I "Read only" - + VSS R9 SYSTEM_VSS - - - - - - - - I "Read only" - + VSS F7 SYSTEM_VSS - - - - - - - - I "Read only" - + VSS G7 SYSTEM_VSS - - - - - - - - I "Read only" - + VSS G8 SYSTEM_VSS - - - - - - - - I "Read only" - + VSS G9 SYSTEM_VSS - - - - - - - - I "Read only" - + VSS N10 SYSTEM_VSS - - - - - - - - I "Read only" - + VSS H7 SYSTEM_VSS - - - - - - - - I "Read only" - + VSS N14 SYSTEM_VSS - - - - - - - - I "Read only" - + VSS H8 SYSTEM_VSS - - - - - - - - I "Read only" - + VSS H9 SYSTEM_VSS - - - - - - - - I "Read only" - + VSS E10 SYSTEM_VSS - - - - - - - - I "Read only" - + VSS J7 SYSTEM_VSS - - - - - - - - I "Read only" - + VSS J8 SYSTEM_VSS - - - - - - - - I "Read only" - + VSS J9 SYSTEM_VSS - - - - - - - - I "Read only" - + VSS K9 SYSTEM_VSS - - - - - - - - I "Read only" - + VSS D10 SYSTEM_VSS - - - - - - - - I "Read only" - + VSS D11 SYSTEM_VSS - - - - - - - - I "Read only" - + VSS L1 SYSTEM_VSS - - - - - - - - I "Read only" - + VSS L15 SYSTEM_VSS - - - - - - - - I "Read only" - + VSS P8 SYSTEM_VSS - - - - - - - - I "Read only" - + VSS R15 SYSTEM_VSS - - - - - - - - I "Read only" - + VSS_ADC D12 SYSTEM_VSS_ADC - - - - - - - - I "Read only" - + VSS_USB P12 SYSTEM_VSS_USB - - - - - - - - I "Read only" - + VSS_USB P14 SYSTEM_VSS_USB - - - - - - - - I "Read only" - + VSS_USB N13 SYSTEM_VSS_USB - - - - - - - - I "Read only" - + VSS_USB N15 SYSTEM_VSS_USB - - - - - - - - I "Read only" - + VSS_USB R12 SYSTEM_VSS_USB - - - - - - - - I "Read only" - + VSS_USB R14 SYSTEM_VSS_USB - - - - - - - - I "Read only" - + XTAL R8 CGC_XTAL - - - - - - - - O "Read only" - + + User Events + + User Event Links + + Module "I/O Port (r_ioport)" + Parameter Checking: Default (BSP) + + Module "Memory config check" + MPU/MMU Type: MPU + + Module "UART (r_sci_uart)" + Parameter Checking: Default (BSP) + FIFO Support: Enable + DMAC Support: Disable + Flow Control Support: Disable + Multiplex Interrupt: Disabled + + HAL + Instance "g_ioport I/O Port (r_ioport)" + General: Name: g_ioport + ELC Output Port Group 1: Trigger Source: Disabled + ELC Output Port Group 1: Port Selection: + ELC Output Port Group 1: Output Operation: Low output + ELC Output Port Group 2: Trigger Source: Disabled + ELC Output Port Group 2: Port Selection: + ELC Output Port Group 2: Output Operation: Low output + ELC Input Port Group 1: Trigger Source: Disabled + ELC Input Port Group 1: Event Link Control: Disabled + ELC Input Port Group 1: Port Selection: + ELC Input Port Group 1: Edge Detection: Rising edge + ELC Input Port Group 1: Buffer Overwrite: Disabled + ELC Input Port Group 1: Buffer Initial Value: P16_0: Low input + ELC Input Port Group 1: Buffer Initial Value: P16_1: Low input + ELC Input Port Group 1: Buffer Initial Value: P16_2: Low input + ELC Input Port Group 1: Buffer Initial Value: P16_3: Low input + ELC Input Port Group 1: Buffer Initial Value: P16_5: Low input + ELC Input Port Group 1: Buffer Initial Value: P16_6: Low input + ELC Input Port Group 1: Buffer Initial Value: P16_7: Low input + ELC Input Port Group 2: Trigger Source: Disabled + ELC Input Port Group 2: Event Link Control: Disabled + ELC Input Port Group 2: Port Selection: + ELC Input Port Group 2: Edge Detection: Rising edge + ELC Input Port Group 2: Buffer Overwrite: Disabled + ELC Input Port Group 2: Buffer Initial Value: P18_0: Low input + ELC Input Port Group 2: Buffer Initial Value: P18_1: Low input + ELC Input Port Group 2: Buffer Initial Value: P18_2: Low input + ELC Input Port Group 2: Buffer Initial Value: P18_3: Low input + ELC Input Port Group 2: Buffer Initial Value: P18_4: Low input + ELC Input Port Group 2: Buffer Initial Value: P18_5: Low input + ELC Input Port Group 2: Buffer Initial Value: P18_6: Low input + ELC Single Port 0: Common: Event Link Control: Disabled + ELC Single Port 0: Common: Event Direction: Output direction + ELC Single Port 0: Common: Port selection: P16_0 + ELC Single Port 0: Output Direction Setting: Trigger Source: Disabled + ELC Single Port 0: Output Direction Setting: Output Operation: Low output + ELC Single Port 0: Input Direction Setting: Edge Detection: Rising edge + ELC Single Port 1: Common: Event Link Control: Disabled + ELC Single Port 1: Common: Event Direction: Output direction + ELC Single Port 1: Common: Port selection: P16_0 + ELC Single Port 1: Output Direction Setting: Trigger Source: Disabled + ELC Single Port 1: Output Direction Setting: Output Operation: Low output + ELC Single Port 1: Input Direction Setting: Edge Detection: Rising edge + ELC Single Port 2: Common: Event Link Control: Disabled + ELC Single Port 2: Common: Event Direction: Output direction + ELC Single Port 2: Common: Port selection: P16_0 + ELC Single Port 2: Output Direction Setting: Trigger Source: Disabled + ELC Single Port 2: Output Direction Setting: Output Operation: Low output + ELC Single Port 2: Input Direction Setting: Edge Detection: Rising edge + ELC Single Port 3: Common: Event Link Control: Disabled + ELC Single Port 3: Common: Event Direction: Output direction + ELC Single Port 3: Common: Port selection: P16_0 + ELC Single Port 3: Output Direction Setting: Trigger Source: Disabled + ELC Single Port 3: Output Direction Setting: Output Operation: Low output + ELC Single Port 3: Input Direction Setting: Edge Detection: Rising edge + + Instance "Memory config check" + Instance "g_uart0 UART (r_sci_uart)" + General: Name: g_uart0 + General: Channel: 0 + General: Data Bits: 8bits + General: Parity: None + General: Stop Bits: 1bit + Baud: Baud Rate: 115200 + Baud: Baud Rate Modulation: Disabled + Baud: Max Error (%): 5 + Baud: Synchronizer Bypass: Not Bypassed (The operation clock is SCInASYNCCLK) + Flow Control: CTS/RTS Selection: Hardware RTS + Flow Control: Software RTS Port: Disabled + Flow Control: Software RTS Pin: Disabled + Extra: Clock Source: Internal Clock + Extra: Start bit detection: Falling Edge + Extra: Noise Filter: Disable + Extra: Receive FIFO Trigger Level: Max + Extra: RS-485: DE Pin: Disable + Extra: RS-485: DE Pin Polarity: Active High + Extra: RS-485: DE Pin Assertion Time: 1 + Extra: RS-485: DE Pin Negation Time: 1 + Interrupts: Callback: user_uart0_callback + Interrupts: Receive Interrupt Priority: Priority 12 + Interrupts: Transmit Data Empty Interrupt Priority: Priority 12 + Interrupts: Transmit End Interrupt Priority: Priority 12 + Interrupts: Error Interrupt Priority: Priority 12 + diff --git a/bsp/renesas/rzn2l_rsk/rzn_cfg/SConscript b/bsp/renesas/rzn2l_rsk/rzn_cfg/SConscript new file mode 100644 index 0000000000..8d63460c64 --- /dev/null +++ b/bsp/renesas/rzn2l_rsk/rzn_cfg/SConscript @@ -0,0 +1,19 @@ +Import('RTT_ROOT') +Import('rtconfig') +from building import * +from gcc import * + +cwd = GetCurrentDir() +src = [] +group = [] +CPPPATH = [] + +if rtconfig.PLATFORM in ['iccarm']: + Return('group') +elif rtconfig.PLATFORM in GetGCCLikePLATFORM(): + if GetOption('target') != 'mdk5': + src = Glob('*.c') + CPPPATH = [cwd+'/fsp_cfg', cwd + '/fsp_cfg/bsp'] + +group += DefineGroup('rz_cfg', src, depend = [''], CPPPATH = CPPPATH) +Return('group') diff --git a/bsp/renesas/rzn2l_rsk/rzn_cfg/fsp_cfg/bsp/board_cfg.h b/bsp/renesas/rzn2l_rsk/rzn_cfg/fsp_cfg/bsp/board_cfg.h new file mode 100644 index 0000000000..b6d6335983 --- /dev/null +++ b/bsp/renesas/rzn2l_rsk/rzn_cfg/fsp_cfg/bsp/board_cfg.h @@ -0,0 +1,25 @@ +/* generated configuration header file - do not edit */ +#ifndef BOARD_CFG_H_ +#define BOARD_CFG_H_ +#include "../../../rzn/board/rzn2l_rsk/board.h" + #define BSP_CFG_XSPI0_X1_BOOT (1) + #define BSP_CFG_CACHE_FLG (0x00000000) + #define BSP_CFG_CS0BCR_V_WRAPCFG_V (0x00000000) + #define BSP_CFG_CS0WCR_V_COMCFG_V (0x00000000) + #define BSP_CFG_DUMMY0_BMCFG_V (0x00000000) + #define BSP_CFG_BSC_FLG_xSPI_FLG (0x00000000) + #define BSP_CFG_LDR_ADDR_NML (0x6000004C) + #define BSP_CFG_LDR_SIZE_NML (0x00006000) + #define BSP_CFG_DEST_ADDR_NML (0x00102000) + #define BSP_CFG_DUMMY1 (0x00000000) + #define BSP_CFG_DUMMY2 (0x00000000) + #define BSP_CFG_DUMMY3_CSSCTL_V (0x0000003F) + #define BSP_CFG_DUMMY4_LIOCFGCS0_V (0x00070000) + #define BSP_CFG_DUMMY5 (0x00000000) + #define BSP_CFG_DUMMY6 (0x00000000) + #define BSP_CFG_DUMMY7 (0x00000000) + #define BSP_CFG_DUMMY8 (0x00000000) + #define BSP_CFG_DUMMY9 (0x00000000) + #define BSP_CFG_DUMMY10_ACCESS_SPEED (0x00000006) + #define BSP_CFG_CHECK_SUM (0xE0A8) +#endif /* BOARD_CFG_H_ */ diff --git a/bsp/renesas/rzn2l_rsk/rzn_cfg/fsp_cfg/bsp/bsp_cfg.h b/bsp/renesas/rzn2l_rsk/rzn_cfg/fsp_cfg/bsp/bsp_cfg.h new file mode 100644 index 0000000000..989932e34d --- /dev/null +++ b/bsp/renesas/rzn2l_rsk/rzn_cfg/fsp_cfg/bsp/bsp_cfg.h @@ -0,0 +1,37 @@ +/* generated configuration header file - do not edit */ +#ifndef BSP_CFG_H_ +#define BSP_CFG_H_ +#include "bsp_clock_cfg.h" + #include "bsp_mcu_family_cfg.h" + #include "board_cfg.h" + #define FSP_NOT_DEFINED 0 + #ifndef BSP_CFG_RTOS + #if (FSP_NOT_DEFINED) != (FSP_NOT_DEFINED) + #define BSP_CFG_RTOS (2) + #elif (FSP_NOT_DEFINED) != (FSP_NOT_DEFINED) + #define BSP_CFG_RTOS (1) + #else + #define BSP_CFG_RTOS (0) + #endif + #endif + #undef FSP_NOT_DEFINED + #define BSP_CFG_MCU_VCC_MV (3300) + + #define BSP_CFG_PARAM_CHECKING_ENABLE (0) + #define BSP_CFG_ASSERT (0) + #define BSP_CFG_ERROR_LOG (0) + + #define BSP_CFG_PORT_PROTECT (1) + + #define BSP_CFG_SOFT_RESET_SUPPORTED (0) + #define BSP_CFG_EARLY_INIT (0) + + #define BSP_CFG_MULTIPLEX_INTERRUPT_SUPPORTED (0) + #if BSP_CFG_MULTIPLEX_INTERRUPT_SUPPORTED + #define BSP_CFG_MULTIPLEX_INTERRUPT_ENABLE BSP_INTERRUPT_ENABLE + #define BSP_CFG_MULTIPLEX_INTERRUPT_DISABLE BSP_INTERRUPT_DISABLE + #else + #define BSP_CFG_MULTIPLEX_INTERRUPT_ENABLE + #define BSP_CFG_MULTIPLEX_INTERRUPT_DISABLE + #endif +#endif /* BSP_CFG_H_ */ diff --git a/bsp/renesas/rzn2l_rsk/rzn_cfg/fsp_cfg/bsp/bsp_mcu_device_cfg.h b/bsp/renesas/rzn2l_rsk/rzn_cfg/fsp_cfg/bsp/bsp_mcu_device_cfg.h new file mode 100644 index 0000000000..d0551c4e16 --- /dev/null +++ b/bsp/renesas/rzn2l_rsk/rzn_cfg/fsp_cfg/bsp/bsp_mcu_device_cfg.h @@ -0,0 +1,14 @@ +/* generated configuration header file - do not edit */ +#ifndef BSP_MCU_DEVICE_CFG_H_ +#define BSP_MCU_DEVICE_CFG_H_ +#define BSP_CFG_STACK_FIQ_BYTES (0x400) + #define BSP_CFG_STACK_IRQ_BYTES (0x400) + #define BSP_CFG_STACK_ABT_BYTES (0x400) + #define BSP_CFG_STACK_UND_BYTES (0x400) + #define BSP_CFG_STACK_SYS_BYTES (0x400) + #define BSP_CFG_STACK_SVC_BYTES (0x400) + #define BSP_CFG_HEAP_BYTES (0x2000) + + #define BSP_CFG_C_RUNTIME_INIT (1) + #define BSP_CFG_USE_TFU_MATHLIB ((1)) +#endif /* BSP_MCU_DEVICE_CFG_H_ */ diff --git a/bsp/renesas/rzn2l_rsk/rzn_cfg/fsp_cfg/bsp/bsp_mcu_device_memory_cfg.h b/bsp/renesas/rzn2l_rsk/rzn_cfg/fsp_cfg/bsp/bsp_mcu_device_memory_cfg.h new file mode 100644 index 0000000000..359058b8e7 --- /dev/null +++ b/bsp/renesas/rzn2l_rsk/rzn_cfg/fsp_cfg/bsp/bsp_mcu_device_memory_cfg.h @@ -0,0 +1,552 @@ +/* generated configuration header file - do not edit */ +#ifndef BSP_MCU_DEVICE_MEMORY_CFG_H_ +#define BSP_MCU_DEVICE_MEMORY_CFG_H_ +#define BSP_CFG_MPU0_READ0 (0) + #define BSP_CFG_MPU0_WRITE0 (0) + #define BSP_CFG_MPU0_STADD0 (0x00000000) + #define BSP_CFG_MPU0_ENDADD0 (0x00000C00) + #define BSP_CFG_MPU0_READ1 (0) + #define BSP_CFG_MPU0_WRITE1 (0) + #define BSP_CFG_MPU0_STADD1 (0x00000000) + #define BSP_CFG_MPU0_ENDADD1 (0x00000C00) + #define BSP_CFG_MPU0_READ2 (0) + #define BSP_CFG_MPU0_WRITE2 (0) + #define BSP_CFG_MPU0_STADD2 (0x00000000) + #define BSP_CFG_MPU0_ENDADD2 (0x00000C00) + #define BSP_CFG_MPU0_READ3 (0) + #define BSP_CFG_MPU0_WRITE3 (0) + #define BSP_CFG_MPU0_STADD3 (0x00000000) + #define BSP_CFG_MPU0_ENDADD3 (0x00000C00) + #define BSP_CFG_MPU0_READ4 (0) + #define BSP_CFG_MPU0_WRITE4 (0) + #define BSP_CFG_MPU0_STADD4 (0x00000000) + #define BSP_CFG_MPU0_ENDADD4 (0x00000C00) + #define BSP_CFG_MPU0_READ5 (0) + #define BSP_CFG_MPU0_WRITE5 (0) + #define BSP_CFG_MPU0_STADD5 (0x00000000) + #define BSP_CFG_MPU0_ENDADD5 (0x00000C00) + #define BSP_CFG_MPU0_READ6 (0) + #define BSP_CFG_MPU0_WRITE6 (0) + #define BSP_CFG_MPU0_STADD6 (0x00000000) + #define BSP_CFG_MPU0_ENDADD6 (0x00000C00) + #define BSP_CFG_MPU0_READ7 (0) + #define BSP_CFG_MPU0_WRITE7 (0) + #define BSP_CFG_MPU0_STADD7 (0x00000000) + #define BSP_CFG_MPU0_ENDADD7 (0x00000C00) + #define BSP_CFG_MPU1_READ0 (0) + #define BSP_CFG_MPU1_WRITE0 (0) + #define BSP_CFG_MPU1_STADD0 (0x00000000) + #define BSP_CFG_MPU1_ENDADD0 (0x00000C00) + #define BSP_CFG_MPU1_READ1 (0) + #define BSP_CFG_MPU1_WRITE1 (0) + #define BSP_CFG_MPU1_STADD1 (0x00000000) + #define BSP_CFG_MPU1_ENDADD1 (0x00000C00) + #define BSP_CFG_MPU1_READ2 (0) + #define BSP_CFG_MPU1_WRITE2 (0) + #define BSP_CFG_MPU1_STADD2 (0x00000000) + #define BSP_CFG_MPU1_ENDADD2 (0x00000C00) + #define BSP_CFG_MPU1_READ3 (0) + #define BSP_CFG_MPU1_WRITE3 (0) + #define BSP_CFG_MPU1_STADD3 (0x00000000) + #define BSP_CFG_MPU1_ENDADD3 (0x00000C00) + #define BSP_CFG_MPU1_READ4 (0) + #define BSP_CFG_MPU1_WRITE4 (0) + #define BSP_CFG_MPU1_STADD4 (0x00000000) + #define BSP_CFG_MPU1_ENDADD4 (0x00000C00) + #define BSP_CFG_MPU1_READ5 (0) + #define BSP_CFG_MPU1_WRITE5 (0) + #define BSP_CFG_MPU1_STADD5 (0x00000000) + #define BSP_CFG_MPU1_ENDADD5 (0x00000C00) + #define BSP_CFG_MPU1_READ6 (0) + #define BSP_CFG_MPU1_WRITE6 (0) + #define BSP_CFG_MPU1_STADD6 (0x00000000) + #define BSP_CFG_MPU1_ENDADD6 (0x00000C00) + #define BSP_CFG_MPU1_READ7 (0) + #define BSP_CFG_MPU1_WRITE7 (0) + #define BSP_CFG_MPU1_STADD7 (0x00000000) + #define BSP_CFG_MPU1_ENDADD7 (0x00000C00) + #define BSP_CFG_MPU2_READ0 (0) + #define BSP_CFG_MPU2_WRITE0 (0) + #define BSP_CFG_MPU2_STADD0 (0x00000000) + #define BSP_CFG_MPU2_ENDADD0 (0x00000C00) + #define BSP_CFG_MPU2_READ1 (0) + #define BSP_CFG_MPU2_WRITE1 (0) + #define BSP_CFG_MPU2_STADD1 (0x00000000) + #define BSP_CFG_MPU2_ENDADD1 (0x00000C00) + #define BSP_CFG_MPU2_READ2 (0) + #define BSP_CFG_MPU2_WRITE2 (0) + #define BSP_CFG_MPU2_STADD2 (0x00000000) + #define BSP_CFG_MPU2_ENDADD2 (0x00000C00) + #define BSP_CFG_MPU2_READ3 (0) + #define BSP_CFG_MPU2_WRITE3 (0) + #define BSP_CFG_MPU2_STADD3 (0x00000000) + #define BSP_CFG_MPU2_ENDADD3 (0x00000C00) + #define BSP_CFG_MPU2_READ4 (0) + #define BSP_CFG_MPU2_WRITE4 (0) + #define BSP_CFG_MPU2_STADD4 (0x00000000) + #define BSP_CFG_MPU2_ENDADD4 (0x00000C00) + #define BSP_CFG_MPU2_READ5 (0) + #define BSP_CFG_MPU2_WRITE5 (0) + #define BSP_CFG_MPU2_STADD5 (0x00000000) + #define BSP_CFG_MPU2_ENDADD5 (0x00000C00) + #define BSP_CFG_MPU2_READ6 (0) + #define BSP_CFG_MPU2_WRITE6 (0) + #define BSP_CFG_MPU2_STADD6 (0x00000000) + #define BSP_CFG_MPU2_ENDADD6 (0x00000C00) + #define BSP_CFG_MPU2_READ7 (0) + #define BSP_CFG_MPU2_WRITE7 (0) + #define BSP_CFG_MPU2_STADD7 (0x00000000) + #define BSP_CFG_MPU2_ENDADD7 (0x00000C00) + #define BSP_CFG_MPU3_READ0 (0) + #define BSP_CFG_MPU3_WRITE0 (0) + #define BSP_CFG_MPU3_STADD0 (0x00000000) + #define BSP_CFG_MPU3_ENDADD0 (0x00000000) + #define BSP_CFG_MPU3_READ1 (0) + #define BSP_CFG_MPU3_WRITE1 (0) + #define BSP_CFG_MPU3_STADD1 (0x00000000) + #define BSP_CFG_MPU3_ENDADD1 (0x00000000) + #define BSP_CFG_MPU3_READ2 (0) + #define BSP_CFG_MPU3_WRITE2 (0) + #define BSP_CFG_MPU3_STADD2 (0x00000000) + #define BSP_CFG_MPU3_ENDADD2 (0x00000000) + #define BSP_CFG_MPU3_READ3 (0) + #define BSP_CFG_MPU3_WRITE3 (0) + #define BSP_CFG_MPU3_STADD3 (0x00000000) + #define BSP_CFG_MPU3_ENDADD3 (0x00000000) + #define BSP_CFG_MPU3_READ4 (0) + #define BSP_CFG_MPU3_WRITE4 (0) + #define BSP_CFG_MPU3_STADD4 (0x00000000) + #define BSP_CFG_MPU3_ENDADD4 (0x00000000) + #define BSP_CFG_MPU3_READ5 (0) + #define BSP_CFG_MPU3_WRITE5 (0) + #define BSP_CFG_MPU3_STADD5 (0x00000000) + #define BSP_CFG_MPU3_ENDADD5 (0x00000000) + #define BSP_CFG_MPU3_READ6 (0) + #define BSP_CFG_MPU3_WRITE6 (0) + #define BSP_CFG_MPU3_STADD6 (0x00000000) + #define BSP_CFG_MPU3_ENDADD6 (0x00000000) + #define BSP_CFG_MPU3_READ7 (0) + #define BSP_CFG_MPU3_WRITE7 (0) + #define BSP_CFG_MPU3_STADD7 (0x00000000) + #define BSP_CFG_MPU3_ENDADD7 (0x00000000) + #define BSP_CFG_MPU4_READ0 (0) + #define BSP_CFG_MPU4_WRITE0 (0) + #define BSP_CFG_MPU4_STADD0 (0x00000000) + #define BSP_CFG_MPU4_ENDADD0 (0x00000000) + #define BSP_CFG_MPU4_READ1 (0) + #define BSP_CFG_MPU4_WRITE1 (0) + #define BSP_CFG_MPU4_STADD1 (0x00000000) + #define BSP_CFG_MPU4_ENDADD1 (0x00000000) + #define BSP_CFG_MPU4_READ2 (0) + #define BSP_CFG_MPU4_WRITE2 (0) + #define BSP_CFG_MPU4_STADD2 (0x00000000) + #define BSP_CFG_MPU4_ENDADD2 (0x00000000) + #define BSP_CFG_MPU4_READ3 (0) + #define BSP_CFG_MPU4_WRITE3 (0) + #define BSP_CFG_MPU4_STADD3 (0x00000000) + #define BSP_CFG_MPU4_ENDADD3 (0x00000000) + #define BSP_CFG_MPU4_READ4 (0) + #define BSP_CFG_MPU4_WRITE4 (0) + #define BSP_CFG_MPU4_STADD4 (0x00000000) + #define BSP_CFG_MPU4_ENDADD4 (0x00000000) + #define BSP_CFG_MPU4_READ5 (0) + #define BSP_CFG_MPU4_WRITE5 (0) + #define BSP_CFG_MPU4_STADD5 (0x00000000) + #define BSP_CFG_MPU4_ENDADD5 (0x00000000) + #define BSP_CFG_MPU4_READ6 (0) + #define BSP_CFG_MPU4_WRITE6 (0) + #define BSP_CFG_MPU4_STADD6 (0x00000000) + #define BSP_CFG_MPU4_ENDADD6 (0x00000000) + #define BSP_CFG_MPU4_READ7 (0) + #define BSP_CFG_MPU4_WRITE7 (0) + #define BSP_CFG_MPU4_STADD7 (0x00000000) + #define BSP_CFG_MPU4_ENDADD7 (0x00000000) + #define BSP_CFG_MPU6_READ0 (0) + #define BSP_CFG_MPU6_WRITE0 (0) + #define BSP_CFG_MPU6_STADD0 (0x00000000) + #define BSP_CFG_MPU6_ENDADD0 (0x00000C00) + #define BSP_CFG_MPU6_READ1 (0) + #define BSP_CFG_MPU6_WRITE1 (0) + #define BSP_CFG_MPU6_STADD1 (0x00000000) + #define BSP_CFG_MPU6_ENDADD1 (0x00000C00) + #define BSP_CFG_MPU6_READ2 (0) + #define BSP_CFG_MPU6_WRITE2 (0) + #define BSP_CFG_MPU6_STADD2 (0x00000000) + #define BSP_CFG_MPU6_ENDADD2 (0x00000C00) + #define BSP_CFG_MPU6_READ3 (0) + #define BSP_CFG_MPU6_WRITE3 (0) + #define BSP_CFG_MPU6_STADD3 (0x00000000) + #define BSP_CFG_MPU6_ENDADD3 (0x00000C00) + #define BSP_CFG_MPU6_READ4 (0) + #define BSP_CFG_MPU6_WRITE4 (0) + #define BSP_CFG_MPU6_STADD4 (0x00000000) + #define BSP_CFG_MPU6_ENDADD4 (0x00000C00) + #define BSP_CFG_MPU6_READ5 (0) + #define BSP_CFG_MPU6_WRITE5 (0) + #define BSP_CFG_MPU6_STADD5 (0x00000000) + #define BSP_CFG_MPU6_ENDADD5 (0x00000C00) + #define BSP_CFG_MPU6_READ6 (0) + #define BSP_CFG_MPU6_WRITE6 (0) + #define BSP_CFG_MPU6_STADD6 (0x00000000) + #define BSP_CFG_MPU6_ENDADD6 (0x00000C00) + #define BSP_CFG_MPU6_READ7 (0) + #define BSP_CFG_MPU6_WRITE7 (0) + #define BSP_CFG_MPU6_STADD7 (0x00000000) + #define BSP_CFG_MPU6_ENDADD7 (0x00000C00) + #define BSP_CFG_MPU7_READ0 (0) + #define BSP_CFG_MPU7_WRITE0 (0) + #define BSP_CFG_MPU7_STADD0 (0x00000000) + #define BSP_CFG_MPU7_ENDADD0 (0x00000000) + #define BSP_CFG_MPU7_READ1 (0) + #define BSP_CFG_MPU7_WRITE1 (0) + #define BSP_CFG_MPU7_STADD1 (0x00000000) + #define BSP_CFG_MPU7_ENDADD1 (0x00000000) + #define BSP_CFG_MPU7_READ2 (0) + #define BSP_CFG_MPU7_WRITE2 (0) + #define BSP_CFG_MPU7_STADD2 (0x00000000) + #define BSP_CFG_MPU7_ENDADD2 (0x00000000) + #define BSP_CFG_MPU7_READ3 (0) + #define BSP_CFG_MPU7_WRITE3 (0) + #define BSP_CFG_MPU7_STADD3 (0x00000000) + #define BSP_CFG_MPU7_ENDADD3 (0x00000000) + #define BSP_CFG_MPU7_READ4 (0) + #define BSP_CFG_MPU7_WRITE4 (0) + #define BSP_CFG_MPU7_STADD4 (0x00000000) + #define BSP_CFG_MPU7_ENDADD4 (0x00000000) + #define BSP_CFG_MPU7_READ5 (0) + #define BSP_CFG_MPU7_WRITE5 (0) + #define BSP_CFG_MPU7_STADD5 (0x00000000) + #define BSP_CFG_MPU7_ENDADD5 (0x00000000) + #define BSP_CFG_MPU7_READ6 (0) + #define BSP_CFG_MPU7_WRITE6 (0) + #define BSP_CFG_MPU7_STADD6 (0x00000000) + #define BSP_CFG_MPU7_ENDADD6 (0x00000000) + #define BSP_CFG_MPU7_READ7 (0) + #define BSP_CFG_MPU7_WRITE7 (0) + #define BSP_CFG_MPU7_STADD7 (0x00000000) + #define BSP_CFG_MPU7_ENDADD7 (0x00000000) + #define BSP_CFG_MPU8_READ0 (0) + #define BSP_CFG_MPU8_WRITE0 (0) + #define BSP_CFG_MPU8_STADD0 (0x00000000) + #define BSP_CFG_MPU8_ENDADD0 (0x00000000) + #define BSP_CFG_MPU8_READ1 (0) + #define BSP_CFG_MPU8_WRITE1 (0) + #define BSP_CFG_MPU8_STADD1 (0x00000000) + #define BSP_CFG_MPU8_ENDADD1 (0x00000000) + #define BSP_CFG_MPU8_READ2 (0) + #define BSP_CFG_MPU8_WRITE2 (0) + #define BSP_CFG_MPU8_STADD2 (0x00000000) + #define BSP_CFG_MPU8_ENDADD2 (0x00000000) + #define BSP_CFG_MPU8_READ3 (0) + #define BSP_CFG_MPU8_WRITE3 (0) + #define BSP_CFG_MPU8_STADD3 (0x00000000) + #define BSP_CFG_MPU8_ENDADD3 (0x00000000) + #define BSP_CFG_MPU8_READ4 (0) + #define BSP_CFG_MPU8_WRITE4 (0) + #define BSP_CFG_MPU8_STADD4 (0x00000000) + #define BSP_CFG_MPU8_ENDADD4 (0x00000000) + #define BSP_CFG_MPU8_READ5 (0) + #define BSP_CFG_MPU8_WRITE5 (0) + #define BSP_CFG_MPU8_STADD5 (0x00000000) + #define BSP_CFG_MPU8_ENDADD5 (0x00000000) + #define BSP_CFG_MPU8_READ6 (0) + #define BSP_CFG_MPU8_WRITE6 (0) + #define BSP_CFG_MPU8_STADD6 (0x00000000) + #define BSP_CFG_MPU8_ENDADD6 (0x00000000) + #define BSP_CFG_MPU8_READ7 (0) + #define BSP_CFG_MPU8_WRITE7 (0) + #define BSP_CFG_MPU8_STADD7 (0x00000000) + #define BSP_CFG_MPU8_ENDADD7 (0x00000000) + + #define BSP_CFG_CPU_MPU_ATTR0_TYPE (BSP_TYPE_NORMAL_MEMORY) + #define BSP_CFG_CPU_MPU_ATTR0_INNER (BSP_WRITE_BACK_NON_TRANSIENT) + #define BSP_CFG_CPU_MPU_ATTR0_INNER_READ (BSP_READ_ALLOCATE) + #define BSP_CFG_CPU_MPU_ATTR0_INNER_WRITE (BSP_WRITE_ALLOCATE) + #define BSP_CFG_CPU_MPU_ATTR0_OUTER (BSP_WRITE_BACK_NON_TRANSIENT) + #define BSP_CFG_CPU_MPU_ATTR0_OUTER_READ (BSP_READ_ALLOCATE) + #define BSP_CFG_CPU_MPU_ATTR0_OUTER_WRITE (BSP_WRITE_ALLOCATE) + #define BSP_CFG_CPU_MPU_ATTR0_DEVICE_TYPE (BSP_DEVICE_NGNRNE) + + #define BSP_CFG_CPU_MPU_ATTR1_TYPE (BSP_TYPE_NORMAL_MEMORY) + #define BSP_CFG_CPU_MPU_ATTR1_INNER (BSP_WRITE_NON_THROUGH) + #define BSP_CFG_CPU_MPU_ATTR1_INNER_READ (BSP_READ_ALLOCATE) + #define BSP_CFG_CPU_MPU_ATTR1_INNER_WRITE (BSP_WRITE_ALLOCATE) + #define BSP_CFG_CPU_MPU_ATTR1_OUTER (BSP_WRITE_NON_THROUGH) + #define BSP_CFG_CPU_MPU_ATTR1_OUTER_READ (BSP_READ_ALLOCATE) + #define BSP_CFG_CPU_MPU_ATTR1_OUTER_WRITE (BSP_WRITE_ALLOCATE) + #define BSP_CFG_CPU_MPU_ATTR1_DEVICE_TYPE (BSP_DEVICE_NGNRNE) + + #define BSP_CFG_CPU_MPU_ATTR2_TYPE (BSP_TYPE_NORMAL_MEMORY) + #define BSP_CFG_CPU_MPU_ATTR2_INNER (BSP_WRITE_NON_THROUGH) + #define BSP_CFG_CPU_MPU_ATTR2_INNER_READ (BSP_READ_NOT_ALLOCATE) + #define BSP_CFG_CPU_MPU_ATTR2_INNER_WRITE (BSP_WRITE_NOT_ALLOCATE) + #define BSP_CFG_CPU_MPU_ATTR2_OUTER (BSP_WRITE_NON_THROUGH) + #define BSP_CFG_CPU_MPU_ATTR2_OUTER_READ (BSP_READ_NOT_ALLOCATE) + #define BSP_CFG_CPU_MPU_ATTR2_OUTER_WRITE (BSP_WRITE_NOT_ALLOCATE) + #define BSP_CFG_CPU_MPU_ATTR2_DEVICE_TYPE (BSP_DEVICE_NGNRNE) + + #define BSP_CFG_CPU_MPU_ATTR3_TYPE (BSP_TYPE_NORMAL_MEMORY) + #define BSP_CFG_CPU_MPU_ATTR3_INNER (BSP_NON_CACHEABLE) + #define BSP_CFG_CPU_MPU_ATTR3_INNER_READ (BSP_READ_NOT_ALLOCATE) + #define BSP_CFG_CPU_MPU_ATTR3_INNER_WRITE (BSP_WRITE_NOT_ALLOCATE) + #define BSP_CFG_CPU_MPU_ATTR3_OUTER (BSP_NON_CACHEABLE) + #define BSP_CFG_CPU_MPU_ATTR3_OUTER_READ (BSP_READ_NOT_ALLOCATE) + #define BSP_CFG_CPU_MPU_ATTR3_OUTER_WRITE (BSP_WRITE_NOT_ALLOCATE) + #define BSP_CFG_CPU_MPU_ATTR3_DEVICE_TYPE (BSP_DEVICE_NGNRNE) + + #define BSP_CFG_CPU_MPU_ATTR4_TYPE (BSP_TYPE_DEVICE_MEMORY) + #define BSP_CFG_CPU_MPU_ATTR4_INNER (BSP_WRITE_THROUGH_TRANSIENT) + #define BSP_CFG_CPU_MPU_ATTR4_INNER_READ (BSP_READ_NOT_ALLOCATE) + #define BSP_CFG_CPU_MPU_ATTR4_INNER_WRITE (BSP_WRITE_NOT_ALLOCATE) + #define BSP_CFG_CPU_MPU_ATTR4_OUTER (BSP_WRITE_THROUGH_TRANSIENT) + #define BSP_CFG_CPU_MPU_ATTR4_OUTER_READ (BSP_READ_NOT_ALLOCATE) + #define BSP_CFG_CPU_MPU_ATTR4_OUTER_WRITE (BSP_WRITE_NOT_ALLOCATE) + #define BSP_CFG_CPU_MPU_ATTR4_DEVICE_TYPE (BSP_DEVICE_NGNRNE) + + #define BSP_CFG_CPU_MPU_ATTR5_TYPE (BSP_TYPE_DEVICE_MEMORY) + #define BSP_CFG_CPU_MPU_ATTR5_INNER (BSP_WRITE_THROUGH_TRANSIENT) + #define BSP_CFG_CPU_MPU_ATTR5_INNER_READ (BSP_READ_NOT_ALLOCATE) + #define BSP_CFG_CPU_MPU_ATTR5_INNER_WRITE (BSP_WRITE_NOT_ALLOCATE) + #define BSP_CFG_CPU_MPU_ATTR5_OUTER (BSP_WRITE_THROUGH_TRANSIENT) + #define BSP_CFG_CPU_MPU_ATTR5_OUTER_READ (BSP_READ_NOT_ALLOCATE) + #define BSP_CFG_CPU_MPU_ATTR5_OUTER_WRITE (BSP_WRITE_NOT_ALLOCATE) + #define BSP_CFG_CPU_MPU_ATTR5_DEVICE_TYPE (BSP_DEVICE_NGNRE) + + #define BSP_CFG_CPU_MPU_ATTR6_TYPE (BSP_TYPE_DEVICE_MEMORY) + #define BSP_CFG_CPU_MPU_ATTR6_INNER (BSP_WRITE_THROUGH_TRANSIENT) + #define BSP_CFG_CPU_MPU_ATTR6_INNER_READ (BSP_READ_NOT_ALLOCATE) + #define BSP_CFG_CPU_MPU_ATTR6_INNER_WRITE (BSP_WRITE_NOT_ALLOCATE) + #define BSP_CFG_CPU_MPU_ATTR6_OUTER (BSP_WRITE_THROUGH_TRANSIENT) + #define BSP_CFG_CPU_MPU_ATTR6_OUTER_READ (BSP_READ_NOT_ALLOCATE) + #define BSP_CFG_CPU_MPU_ATTR6_OUTER_WRITE (BSP_WRITE_NOT_ALLOCATE) + #define BSP_CFG_CPU_MPU_ATTR6_DEVICE_TYPE (BSP_DEVICE_NGRE) + + #define BSP_CFG_CPU_MPU_ATTR7_TYPE (BSP_TYPE_DEVICE_MEMORY) + #define BSP_CFG_CPU_MPU_ATTR7_INNER (BSP_WRITE_THROUGH_TRANSIENT) + #define BSP_CFG_CPU_MPU_ATTR7_INNER_READ (BSP_READ_NOT_ALLOCATE) + #define BSP_CFG_CPU_MPU_ATTR7_INNER_WRITE (BSP_WRITE_NOT_ALLOCATE) + #define BSP_CFG_CPU_MPU_ATTR7_OUTER (BSP_WRITE_THROUGH_TRANSIENT) + #define BSP_CFG_CPU_MPU_ATTR7_OUTER_READ (BSP_READ_NOT_ALLOCATE) + #define BSP_CFG_CPU_MPU_ATTR7_OUTER_WRITE (BSP_WRITE_NOT_ALLOCATE) + #define BSP_CFG_CPU_MPU_ATTR7_DEVICE_TYPE (BSP_DEVICE_GRE) + + /* Region00 : ATCM */ + #define BSP_CFG_EL1_MPU_REGION00_BASE (0x00000000) + #define BSP_CFG_EL1_MPU_REGION00_LIMIT (0x0001FFFF) + #define BSP_CFG_EL1_MPU_REGION00_SH (BSP_OUTER_SHAREABLE) + #define BSP_CFG_EL1_MPU_REGION00_AP (BSP_EL1RW_EL0RW) + #define BSP_CFG_EL1_MPU_REGION00_XN (BSP_EXECUTE_ENABLE) + #define BSP_CFG_EL1_MPU_REGION00_ATTRINDEX (BSP_ATTRINDEX3) + #define BSP_CFG_EL1_MPU_REGION00_ENABLE (BSP_REGION_ENABLE) + + /* Region01 : BTCM */ + #define BSP_CFG_EL1_MPU_REGION01_BASE (0x00100000) + #define BSP_CFG_EL1_MPU_REGION01_LIMIT (0x0011FFFF) + #define BSP_CFG_EL1_MPU_REGION01_SH (BSP_OUTER_SHAREABLE) + #define BSP_CFG_EL1_MPU_REGION01_AP (BSP_EL1RW_EL0RW) + #define BSP_CFG_EL1_MPU_REGION01_XN (BSP_EXECUTE_ENABLE) + #define BSP_CFG_EL1_MPU_REGION01_ATTRINDEX (BSP_ATTRINDEX3) + #define BSP_CFG_EL1_MPU_REGION01_ENABLE (BSP_REGION_ENABLE) + + /* Region02 : System RAM */ + #define BSP_CFG_EL1_MPU_REGION02_BASE (0x10000000) + #define BSP_CFG_EL1_MPU_REGION02_LIMIT (0x1017FFFF) + #define BSP_CFG_EL1_MPU_REGION02_SH (BSP_NON_SHAREABLE) + #define BSP_CFG_EL1_MPU_REGION02_AP (BSP_EL1RW_EL0RW) + #define BSP_CFG_EL1_MPU_REGION02_XN (BSP_EXECUTE_ENABLE) + #define BSP_CFG_EL1_MPU_REGION02_ATTRINDEX (BSP_ATTRINDEX1) + #define BSP_CFG_EL1_MPU_REGION02_ENABLE (BSP_REGION_ENABLE) + + /* Region03 : Mirror area of System RAM */ + #define BSP_CFG_EL1_MPU_REGION03_BASE (0x30000000) + #define BSP_CFG_EL1_MPU_REGION03_LIMIT (0x3017FFFF) + #define BSP_CFG_EL1_MPU_REGION03_SH (BSP_OUTER_SHAREABLE) + #define BSP_CFG_EL1_MPU_REGION03_AP (BSP_EL1RW_EL0RW) + #define BSP_CFG_EL1_MPU_REGION03_XN (BSP_EXECUTE_ENABLE) + #define BSP_CFG_EL1_MPU_REGION03_ATTRINDEX (BSP_ATTRINDEX3) + #define BSP_CFG_EL1_MPU_REGION03_ENABLE (BSP_REGION_ENABLE) + + /* Region04 : Mirror area of external address space */ + #define BSP_CFG_EL1_MPU_REGION04_BASE (0x40000000) + #define BSP_CFG_EL1_MPU_REGION04_LIMIT (0x5FFFFFFF) + #define BSP_CFG_EL1_MPU_REGION04_SH (BSP_OUTER_SHAREABLE) + #define BSP_CFG_EL1_MPU_REGION04_AP (BSP_EL1RW_EL0RW) + #define BSP_CFG_EL1_MPU_REGION04_XN (BSP_EXECUTE_ENABLE) + #define BSP_CFG_EL1_MPU_REGION04_ATTRINDEX (BSP_ATTRINDEX3) + #define BSP_CFG_EL1_MPU_REGION04_ENABLE (BSP_REGION_ENABLE) + + /* Region05 : External address space */ + #define BSP_CFG_EL1_MPU_REGION05_BASE (0x60000000) + #define BSP_CFG_EL1_MPU_REGION05_LIMIT (0x7FFFFFFF) + #define BSP_CFG_EL1_MPU_REGION05_SH (BSP_NON_SHAREABLE) + #define BSP_CFG_EL1_MPU_REGION05_AP (BSP_EL1RW_EL0RW) + #define BSP_CFG_EL1_MPU_REGION05_XN (BSP_EXECUTE_ENABLE) + #define BSP_CFG_EL1_MPU_REGION05_ATTRINDEX (BSP_ATTRINDEX1) + #define BSP_CFG_EL1_MPU_REGION05_ENABLE (BSP_REGION_ENABLE) + + /* Region06 : Non-Safety Peripheral */ + #define BSP_CFG_EL1_MPU_REGION06_BASE (0x80000000) + #define BSP_CFG_EL1_MPU_REGION06_LIMIT (0x80FFFFFF) + #define BSP_CFG_EL1_MPU_REGION06_SH (BSP_OUTER_SHAREABLE) + #define BSP_CFG_EL1_MPU_REGION06_AP (BSP_EL1RW_EL0RW) + #define BSP_CFG_EL1_MPU_REGION06_XN (BSP_EXECUTE_NEVER) + #define BSP_CFG_EL1_MPU_REGION06_ATTRINDEX (BSP_ATTRINDEX5) + #define BSP_CFG_EL1_MPU_REGION06_ENABLE (BSP_REGION_ENABLE) + + /* Region07 : Safety Peripheral */ + #define BSP_CFG_EL1_MPU_REGION07_BASE (0x81000000) + #define BSP_CFG_EL1_MPU_REGION07_LIMIT (0x81FFFFFF) + #define BSP_CFG_EL1_MPU_REGION07_SH (BSP_OUTER_SHAREABLE) + #define BSP_CFG_EL1_MPU_REGION07_AP (BSP_EL1RW_EL0RW) + #define BSP_CFG_EL1_MPU_REGION07_XN (BSP_EXECUTE_NEVER) + #define BSP_CFG_EL1_MPU_REGION07_ATTRINDEX (BSP_ATTRINDEX5) + #define BSP_CFG_EL1_MPU_REGION07_ENABLE (BSP_REGION_ENABLE) + + /* Region08 : LLPP Peripheral */ + #define BSP_CFG_EL1_MPU_REGION08_BASE (0x90000000) + #define BSP_CFG_EL1_MPU_REGION08_LIMIT (0x901FFFFF) + #define BSP_CFG_EL1_MPU_REGION08_SH (BSP_OUTER_SHAREABLE) + #define BSP_CFG_EL1_MPU_REGION08_AP (BSP_EL1RW_EL0RW) + #define BSP_CFG_EL1_MPU_REGION08_XN (BSP_EXECUTE_NEVER) + #define BSP_CFG_EL1_MPU_REGION08_ATTRINDEX (BSP_ATTRINDEX5) + #define BSP_CFG_EL1_MPU_REGION08_ENABLE (BSP_REGION_ENABLE) + + /* Region09 : GIC0 */ + #define BSP_CFG_EL1_MPU_REGION09_BASE (0x94000000) + #define BSP_CFG_EL1_MPU_REGION09_LIMIT (0x941FFFFF) + #define BSP_CFG_EL1_MPU_REGION09_SH (BSP_OUTER_SHAREABLE) + #define BSP_CFG_EL1_MPU_REGION09_AP (BSP_EL1RW_EL0RW) + #define BSP_CFG_EL1_MPU_REGION09_XN (BSP_EXECUTE_NEVER) + #define BSP_CFG_EL1_MPU_REGION09_ATTRINDEX (BSP_ATTRINDEX4) + #define BSP_CFG_EL1_MPU_REGION09_ENABLE (BSP_REGION_ENABLE) + + /* Region10 : Debug Private */ + #define BSP_CFG_EL1_MPU_REGION10_BASE (0xC0000000) + #define BSP_CFG_EL1_MPU_REGION10_LIMIT (0xC0FFFFFF) + #define BSP_CFG_EL1_MPU_REGION10_SH (BSP_OUTER_SHAREABLE) + #define BSP_CFG_EL1_MPU_REGION10_AP (BSP_EL1RW_EL0RW) + #define BSP_CFG_EL1_MPU_REGION10_XN (BSP_EXECUTE_NEVER) + #define BSP_CFG_EL1_MPU_REGION10_ATTRINDEX (BSP_ATTRINDEX4) + #define BSP_CFG_EL1_MPU_REGION10_ENABLE (BSP_REGION_ENABLE) + + /* Region11 : Not Used */ + #define BSP_CFG_EL1_MPU_REGION11_BASE (0x00000000) + #define BSP_CFG_EL1_MPU_REGION11_LIMIT (0x00000000) + #define BSP_CFG_EL1_MPU_REGION11_SH (BSP_NON_SHAREABLE) + #define BSP_CFG_EL1_MPU_REGION11_AP (BSP_EL1RW_EL0NO) + #define BSP_CFG_EL1_MPU_REGION11_XN (BSP_EXECUTE_ENABLE) + #define BSP_CFG_EL1_MPU_REGION11_ATTRINDEX (BSP_ATTRINDEX0) + #define BSP_CFG_EL1_MPU_REGION11_ENABLE (BSP_REGION_DISABLE) + + /* Region12 : Not Used */ + #define BSP_CFG_EL1_MPU_REGION12_BASE (0x00000000) + #define BSP_CFG_EL1_MPU_REGION12_LIMIT (0x00000000) + #define BSP_CFG_EL1_MPU_REGION12_SH (BSP_NON_SHAREABLE) + #define BSP_CFG_EL1_MPU_REGION12_AP (BSP_EL1RW_EL0NO) + #define BSP_CFG_EL1_MPU_REGION12_XN (BSP_EXECUTE_ENABLE) + #define BSP_CFG_EL1_MPU_REGION12_ATTRINDEX (BSP_ATTRINDEX0) + #define BSP_CFG_EL1_MPU_REGION12_ENABLE (BSP_REGION_DISABLE) + + /* Region13 : Not Used */ + #define BSP_CFG_EL1_MPU_REGION13_BASE (0x00000000) + #define BSP_CFG_EL1_MPU_REGION13_LIMIT (0x00000000) + #define BSP_CFG_EL1_MPU_REGION13_SH (BSP_NON_SHAREABLE) + #define BSP_CFG_EL1_MPU_REGION13_AP (BSP_EL1RW_EL0NO) + #define BSP_CFG_EL1_MPU_REGION13_XN (BSP_EXECUTE_ENABLE) + #define BSP_CFG_EL1_MPU_REGION13_ATTRINDEX (BSP_ATTRINDEX0) + #define BSP_CFG_EL1_MPU_REGION13_ENABLE (BSP_REGION_DISABLE) + + /* Region14 : Not Used */ + #define BSP_CFG_EL1_MPU_REGION14_BASE (0x00000000) + #define BSP_CFG_EL1_MPU_REGION14_LIMIT (0x00000000) + #define BSP_CFG_EL1_MPU_REGION14_SH (BSP_NON_SHAREABLE) + #define BSP_CFG_EL1_MPU_REGION14_AP (BSP_EL1RW_EL0NO) + #define BSP_CFG_EL1_MPU_REGION14_XN (BSP_EXECUTE_ENABLE) + #define BSP_CFG_EL1_MPU_REGION14_ATTRINDEX (BSP_ATTRINDEX0) + #define BSP_CFG_EL1_MPU_REGION14_ENABLE (BSP_REGION_DISABLE) + + /* Region15 : Not Used */ + #define BSP_CFG_EL1_MPU_REGION15_BASE (0x00000000) + #define BSP_CFG_EL1_MPU_REGION15_LIMIT (0x00000000) + #define BSP_CFG_EL1_MPU_REGION15_SH (BSP_NON_SHAREABLE) + #define BSP_CFG_EL1_MPU_REGION15_AP (BSP_EL1RW_EL0NO) + #define BSP_CFG_EL1_MPU_REGION15_XN (BSP_EXECUTE_ENABLE) + #define BSP_CFG_EL1_MPU_REGION15_ATTRINDEX (BSP_ATTRINDEX0) + #define BSP_CFG_EL1_MPU_REGION15_ENABLE (BSP_REGION_DISABLE) + + /* Region16 : Not Used */ + #define BSP_CFG_EL1_MPU_REGION16_BASE (0x00000000) + #define BSP_CFG_EL1_MPU_REGION16_LIMIT (0x00000000) + #define BSP_CFG_EL1_MPU_REGION16_SH (BSP_NON_SHAREABLE) + #define BSP_CFG_EL1_MPU_REGION16_AP (BSP_EL1RW_EL0NO) + #define BSP_CFG_EL1_MPU_REGION16_XN (BSP_EXECUTE_ENABLE) + #define BSP_CFG_EL1_MPU_REGION16_ATTRINDEX (BSP_ATTRINDEX0) + #define BSP_CFG_EL1_MPU_REGION16_ENABLE (BSP_REGION_DISABLE) + + /* Region17 : Not Used */ + #define BSP_CFG_EL1_MPU_REGION17_BASE (0x00000000) + #define BSP_CFG_EL1_MPU_REGION17_LIMIT (0x00000000) + #define BSP_CFG_EL1_MPU_REGION17_SH (BSP_NON_SHAREABLE) + #define BSP_CFG_EL1_MPU_REGION17_AP (BSP_EL1RW_EL0NO) + #define BSP_CFG_EL1_MPU_REGION17_XN (BSP_EXECUTE_ENABLE) + #define BSP_CFG_EL1_MPU_REGION17_ATTRINDEX (BSP_ATTRINDEX0) + #define BSP_CFG_EL1_MPU_REGION17_ENABLE (BSP_REGION_DISABLE) + + /* Region18 : Not Used */ + #define BSP_CFG_EL1_MPU_REGION18_BASE (0x00000000) + #define BSP_CFG_EL1_MPU_REGION18_LIMIT (0x00000000) + #define BSP_CFG_EL1_MPU_REGION18_SH (BSP_NON_SHAREABLE) + #define BSP_CFG_EL1_MPU_REGION18_AP (BSP_EL1RW_EL0NO) + #define BSP_CFG_EL1_MPU_REGION18_XN (BSP_EXECUTE_ENABLE) + #define BSP_CFG_EL1_MPU_REGION18_ATTRINDEX (BSP_ATTRINDEX0) + #define BSP_CFG_EL1_MPU_REGION18_ENABLE (BSP_REGION_DISABLE) + + /* Region19 : Not Used */ + #define BSP_CFG_EL1_MPU_REGION19_BASE (0x00000000) + #define BSP_CFG_EL1_MPU_REGION19_LIMIT (0x00000000) + #define BSP_CFG_EL1_MPU_REGION19_SH (BSP_NON_SHAREABLE) + #define BSP_CFG_EL1_MPU_REGION19_AP (BSP_EL1RW_EL0NO) + #define BSP_CFG_EL1_MPU_REGION19_XN (BSP_EXECUTE_ENABLE) + #define BSP_CFG_EL1_MPU_REGION19_ATTRINDEX (BSP_ATTRINDEX0) + #define BSP_CFG_EL1_MPU_REGION19_ENABLE (BSP_REGION_DISABLE) + + /* Region20 : Not Used */ + #define BSP_CFG_EL1_MPU_REGION20_BASE (0x00000000) + #define BSP_CFG_EL1_MPU_REGION20_LIMIT (0x00000000) + #define BSP_CFG_EL1_MPU_REGION20_SH (BSP_NON_SHAREABLE) + #define BSP_CFG_EL1_MPU_REGION20_AP (BSP_EL1RW_EL0NO) + #define BSP_CFG_EL1_MPU_REGION20_XN (BSP_EXECUTE_ENABLE) + #define BSP_CFG_EL1_MPU_REGION20_ATTRINDEX (BSP_ATTRINDEX0) + #define BSP_CFG_EL1_MPU_REGION20_ENABLE (BSP_REGION_DISABLE) + + /* Region21 : Not Used */ + #define BSP_CFG_EL1_MPU_REGION21_BASE (0x00000000) + #define BSP_CFG_EL1_MPU_REGION21_LIMIT (0x00000000) + #define BSP_CFG_EL1_MPU_REGION21_SH (BSP_NON_SHAREABLE) + #define BSP_CFG_EL1_MPU_REGION21_AP (BSP_EL1RW_EL0NO) + #define BSP_CFG_EL1_MPU_REGION21_XN (BSP_EXECUTE_ENABLE) + #define BSP_CFG_EL1_MPU_REGION21_ATTRINDEX (BSP_ATTRINDEX0) + #define BSP_CFG_EL1_MPU_REGION21_ENABLE (BSP_REGION_DISABLE) + + /* Region22 : Not Used */ + #define BSP_CFG_EL1_MPU_REGION22_BASE (0x00000000) + #define BSP_CFG_EL1_MPU_REGION22_LIMIT (0x00000000) + #define BSP_CFG_EL1_MPU_REGION22_SH (BSP_NON_SHAREABLE) + #define BSP_CFG_EL1_MPU_REGION22_AP (BSP_EL1RW_EL0NO) + #define BSP_CFG_EL1_MPU_REGION22_XN (BSP_EXECUTE_ENABLE) + #define BSP_CFG_EL1_MPU_REGION22_ATTRINDEX (BSP_ATTRINDEX0) + #define BSP_CFG_EL1_MPU_REGION22_ENABLE (BSP_REGION_DISABLE) + + /* Region23 : Not Used */ + #define BSP_CFG_EL1_MPU_REGION23_BASE (0x00000000) + #define BSP_CFG_EL1_MPU_REGION23_LIMIT (0x00000000) + #define BSP_CFG_EL1_MPU_REGION23_SH (BSP_NON_SHAREABLE) + #define BSP_CFG_EL1_MPU_REGION23_AP (BSP_EL1RW_EL0NO) + #define BSP_CFG_EL1_MPU_REGION23_XN (BSP_EXECUTE_ENABLE) + #define BSP_CFG_EL1_MPU_REGION23_ATTRINDEX (BSP_ATTRINDEX0) + #define BSP_CFG_EL1_MPU_REGION23_ENABLE (BSP_REGION_DISABLE) + + #define BSP_CFG_SCTLR_BR_BIT (BSP_BG_REGION_DISABLE) + #define BSP_CFG_SCTLR_I_BIT (BSP_ICACHE_ENABLE) + #define BSP_CFG_SCTLR_C_BIT (BSP_DATACACHE_ENABLE) +#endif /* BSP_MCU_DEVICE_MEMORY_CFG_H_ */ diff --git a/bsp/renesas/rzn2l_rsk/rzn_cfg/fsp_cfg/bsp/bsp_mcu_device_pn_cfg.h b/bsp/renesas/rzn2l_rsk/rzn_cfg/fsp_cfg/bsp/bsp_mcu_device_pn_cfg.h new file mode 100644 index 0000000000..70e28786cb --- /dev/null +++ b/bsp/renesas/rzn2l_rsk/rzn_cfg/fsp_cfg/bsp/bsp_mcu_device_pn_cfg.h @@ -0,0 +1,12 @@ +/* generated configuration header file - do not edit */ +#ifndef BSP_MCU_DEVICE_PN_CFG_H_ +#define BSP_MCU_DEVICE_PN_CFG_H_ +#define BSP_MCU_R9A07G084M04GBG + #define BSP_ATCM_SIZE_BYTES (131072) + #define BSP_BTCM_SIZE_BYTES (131072) + #define BSP_SYSTEM_RAM_SIZE_BYTES (1572864) + #define BSP_PACKAGE_FBGA + #define BSP_PACKAGE_PINS (225) + + #define BSP_CFG_CORE_CR52 (0) +#endif /* BSP_MCU_DEVICE_PN_CFG_H_ */ diff --git a/bsp/renesas/rzn2l_rsk/rzn_cfg/fsp_cfg/bsp/bsp_mcu_family_cfg.h b/bsp/renesas/rzn2l_rsk/rzn_cfg/fsp_cfg/bsp/bsp_mcu_family_cfg.h new file mode 100644 index 0000000000..3bfed56a45 --- /dev/null +++ b/bsp/renesas/rzn2l_rsk/rzn_cfg/fsp_cfg/bsp/bsp_mcu_family_cfg.h @@ -0,0 +1,15 @@ +/* generated configuration header file - do not edit */ +#ifndef BSP_MCU_FAMILY_CFG_H_ +#define BSP_MCU_FAMILY_CFG_H_ +#include "bsp_mcu_device_pn_cfg.h" + #include "bsp_mcu_device_cfg.h" + #include "bsp_mcu_device_memory_cfg.h" + #include "../../../rzn/fsp/src/bsp/mcu/rzn2l/bsp_mcu_info.h" + #include "bsp_clock_cfg.h" + #define BSP_API_OVERRIDE "../../src/bsp/mcu/rzn2l/bsp_override.h" + #define BSP_MCU_GROUP_RZN2L (1) + #define BSP_LOCO_HZ (240000) + #define BSP_GLOBAL_SYSTEM_COUNTER_CLOCK_HZ (25000000) + #define BSP_CORTEX_VECTOR_TABLE_ENTRIES (32) + #define BSP_VECTOR_TABLE_MAX_ENTRIES (448) +#endif /* BSP_MCU_FAMILY_CFG_H_ */ diff --git a/bsp/renesas/rzn2l_rsk/rzn_cfg/fsp_cfg/bsp/bsp_memory_cfg.h b/bsp/renesas/rzn2l_rsk/rzn_cfg/fsp_cfg/bsp/bsp_memory_cfg.h new file mode 100644 index 0000000000..baaa5be87a --- /dev/null +++ b/bsp/renesas/rzn2l_rsk/rzn_cfg/fsp_cfg/bsp/bsp_memory_cfg.h @@ -0,0 +1,5 @@ +/* generated configuration header file - do not edit */ +#ifndef BSP_MEMORY_CFG_H_ +#define BSP_MEMORY_CFG_H_ +#define BSP_MPU_SUPPORT +#endif /* BSP_MEMORY_CFG_H_ */ diff --git a/bsp/renesas/rzn2l_rsk/rzn_cfg/fsp_cfg/bsp/bsp_pin_cfg.h b/bsp/renesas/rzn2l_rsk/rzn_cfg/fsp_cfg/bsp/bsp_pin_cfg.h new file mode 100644 index 0000000000..c0d922b3a0 --- /dev/null +++ b/bsp/renesas/rzn2l_rsk/rzn_cfg/fsp_cfg/bsp/bsp_pin_cfg.h @@ -0,0 +1,105 @@ +/* generated configuration header file - do not edit */ +#ifndef BSP_PIN_CFG_H_ +#define BSP_PIN_CFG_H_ +#include "r_ioport.h" +#define ETH2_RXD3 (BSP_IO_PORT_00_PIN_0) +#define ETH2_RXDV (BSP_IO_PORT_00_PIN_1) +#define ETH2_TXEN (BSP_IO_PORT_00_PIN_2) +#define ETH2_REFCLK (BSP_IO_PORT_00_PIN_3) +#define ETH2_LINK (BSP_IO_PORT_00_PIN_5) +#define ETH2_TXCLK (BSP_IO_PORT_00_PIN_6) +#define ETH2_TXD3 (BSP_IO_PORT_01_PIN_2) +#define ETH2_TXD2 (BSP_IO_PORT_01_PIN_3) +#define ETH2_TXD1 (BSP_IO_PORT_01_PIN_4) +#define ETH2_TXD0 (BSP_IO_PORT_01_PIN_5) +#define CAN_RX (BSP_IO_PORT_01_PIN_7) +#define CAN_TX (BSP_IO_PORT_02_PIN_2) +#define TDO (BSP_IO_PORT_02_PIN_4) +#define TDI (BSP_IO_PORT_02_PIN_5) +#define TMS (BSP_IO_PORT_02_PIN_6) +#define TCK (BSP_IO_PORT_02_PIN_7) +#define ETH_LED4 (BSP_IO_PORT_03_PIN_0) +#define LED_RED1 (BSP_IO_PORT_04_PIN_1) +#define ETH_LED6 (BSP_IO_PORT_04_PIN_4) +#define ETH_LED7 (BSP_IO_PORT_05_PIN_0) +#define SCL (BSP_IO_PORT_05_PIN_2) +#define SDA (BSP_IO_PORT_05_PIN_3) +#define SW2 (BSP_IO_PORT_05_PIN_4) +#define ETH1_LINK (BSP_IO_PORT_05_PIN_5) +#define ETH1_TXD2 (BSP_IO_PORT_05_PIN_7) +#define ETH1_TXD3 (BSP_IO_PORT_06_PIN_0) +#define ETH1_REFCLK (BSP_IO_PORT_06_PIN_1) +#define ETH1_TXD1 (BSP_IO_PORT_06_PIN_2) +#define ETH1_TXD0 (BSP_IO_PORT_06_PIN_3) +#define ETH1_TXCLK (BSP_IO_PORT_06_PIN_4) +#define ETH1_TXEN (BSP_IO_PORT_06_PIN_5) +#define ETH1_RXD0 (BSP_IO_PORT_06_PIN_6) +#define ETH1_RXD1 (BSP_IO_PORT_06_PIN_7) +#define ETH1_RXD2 (BSP_IO_PORT_07_PIN_0) +#define ETH1_RXD3 (BSP_IO_PORT_07_PIN_1) +#define ETH1_RXDV (BSP_IO_PORT_07_PIN_2) +#define ETH1_RXCLK (BSP_IO_PORT_07_PIN_3) +#define USB_VBUSIN (BSP_IO_PORT_07_PIN_4) +#define ETH0_RXD3 (BSP_IO_PORT_08_PIN_4) +#define ETH0_RXDV (BSP_IO_PORT_08_PIN_5) +#define ETH0_RXCLK (BSP_IO_PORT_08_PIN_6) +#define ETH_MDC (BSP_IO_PORT_08_PIN_7) +#define ETH_MDIO (BSP_IO_PORT_09_PIN_0) +#define ETH0_REFCLK (BSP_IO_PORT_09_PIN_1) +#define ETH0_TXD3 (BSP_IO_PORT_09_PIN_3) +#define ETH0_TXD2 (BSP_IO_PORT_09_PIN_4) +#define ETH0_TXD1 (BSP_IO_PORT_09_PIN_5) +#define ETH0_TXD0 (BSP_IO_PORT_09_PIN_6) +#define ETH0_TXCLK (BSP_IO_PORT_09_PIN_7) +#define ETH0_TXEN (BSP_IO_PORT_10_PIN_0) +#define ETH0_RXD0 (BSP_IO_PORT_10_PIN_1) +#define ETH0_RXD1 (BSP_IO_PORT_10_PIN_2) +#define ETH0_RXD2 (BSP_IO_PORT_10_PIN_3) +#define ETH0_LINK (BSP_IO_PORT_10_PIN_4) +#define EEPROM_SCL (BSP_IO_PORT_13_PIN_2) +#define EEPROM_SDA (BSP_IO_PORT_13_PIN_3) +#define ESC_RESETOUT (BSP_IO_PORT_13_PIN_4) +#define SW3_Pin2 (BSP_IO_PORT_13_PIN_5) +#define SW3_Pin1 (BSP_IO_PORT_13_PIN_6) +#define SW3_Pin4 (BSP_IO_PORT_13_PIN_7) +#define SW3_Pin3 (BSP_IO_PORT_14_PIN_0) +#define XSPI0_ECS (BSP_IO_PORT_14_PIN_2) +#define XSPI0_DS (BSP_IO_PORT_14_PIN_4) +#define XSPI0_CKN (BSP_IO_PORT_14_PIN_5) +#define XSPI0_CKP (BSP_IO_PORT_14_PIN_6) +#define XSPI0_IO0 (BSP_IO_PORT_14_PIN_7) +#define XSPI0_IO1 (BSP_IO_PORT_15_PIN_0) +#define XSPI0_IO2 (BSP_IO_PORT_15_PIN_1) +#define XSPI0_IO3 (BSP_IO_PORT_15_PIN_2) +#define XSPI0_IO4 (BSP_IO_PORT_15_PIN_3) +#define XSPI0_IO5 (BSP_IO_PORT_15_PIN_4) +#define XSPI0_IO6 (BSP_IO_PORT_15_PIN_5) +#define XSPI0_IO7 (BSP_IO_PORT_15_PIN_6) +#define OSPI_CS (BSP_IO_PORT_15_PIN_7) +#define ORAM_CS0 (BSP_IO_PORT_16_PIN_0) +#define XSPI0_RESET0 (BSP_IO_PORT_16_PIN_1) +#define SW1 (BSP_IO_PORT_16_PIN_3) +#define UART_USB_TX (BSP_IO_PORT_16_PIN_5) +#define UART_USB_RX (BSP_IO_PORT_16_PIN_6) +#define LED_RED2 (BSP_IO_PORT_17_PIN_3) +#define USB_OVRCUR (BSP_IO_PORT_17_PIN_5) +#define SCI_RXD (BSP_IO_PORT_17_PIN_7) +#define SCI_TXD (BSP_IO_PORT_18_PIN_0) +#define LED_GREEN (BSP_IO_PORT_18_PIN_2) +#define SCK (BSP_IO_PORT_18_PIN_4) +#define MOSI (BSP_IO_PORT_18_PIN_5) +#define MISO (BSP_IO_PORT_18_PIN_6) +#define USB_VBUSEN (BSP_IO_PORT_19_PIN_0) +#define ETH_LED2_MDV0 (BSP_IO_PORT_20_PIN_1) +#define ETH_LED0_MDV1 (BSP_IO_PORT_20_PIN_2) +#define ETH_LED1_MDV2 (BSP_IO_PORT_20_PIN_3) +#define ETH_LED3_MDV3 (BSP_IO_PORT_20_PIN_4) +#define CS (BSP_IO_PORT_21_PIN_1) +#define ETH_LED5 (BSP_IO_PORT_22_PIN_1) +#define LED_ORANGE (BSP_IO_PORT_22_PIN_3) +#define ETH2_RXD0 (BSP_IO_PORT_23_PIN_7) +#define ETH2_RXD1 (BSP_IO_PORT_24_PIN_0) +#define ETH2_RXCLK (BSP_IO_PORT_24_PIN_1) +#define ETH2_RXD2 (BSP_IO_PORT_24_PIN_2) +extern const ioport_cfg_t g_bsp_pin_cfg; /* RSK+RZN2L */ +#endif /* BSP_PIN_CFG_H_ */ diff --git a/bsp/renesas/rzn2l_rsk/rzn_cfg/fsp_cfg/r_ioport_cfg.h b/bsp/renesas/rzn2l_rsk/rzn_cfg/fsp_cfg/r_ioport_cfg.h new file mode 100644 index 0000000000..d2688bf5ba --- /dev/null +++ b/bsp/renesas/rzn2l_rsk/rzn_cfg/fsp_cfg/r_ioport_cfg.h @@ -0,0 +1,13 @@ +/* generated configuration header file - do not edit */ +#ifndef R_IOPORT_CFG_H_ +#define R_IOPORT_CFG_H_ +#ifdef __cplusplus +extern "C" { +#endif + +#define IOPORT_CFG_PARAM_CHECKING_ENABLE (BSP_CFG_PARAM_CHECKING_ENABLE) + +#ifdef __cplusplus +} +#endif +#endif /* R_IOPORT_CFG_H_ */ diff --git a/bsp/renesas/rzn2l_rsk/rzn_cfg/fsp_cfg/r_sci_uart_cfg.h b/bsp/renesas/rzn2l_rsk/rzn_cfg/fsp_cfg/r_sci_uart_cfg.h new file mode 100644 index 0000000000..fe4cc09bf1 --- /dev/null +++ b/bsp/renesas/rzn2l_rsk/rzn_cfg/fsp_cfg/r_sci_uart_cfg.h @@ -0,0 +1,16 @@ +/* generated configuration header file - do not edit */ +#ifndef R_SCI_UART_CFG_H_ +#define R_SCI_UART_CFG_H_ +#define SCI_UART_CFG_PARAM_CHECKING_ENABLE (BSP_CFG_PARAM_CHECKING_ENABLE) +#define SCI_UART_CFG_FIFO_SUPPORT (1) +#define SCI_UART_CFG_DMAC_SUPPORTED (0) +#define SCI_UART_CFG_FLOW_CONTROL_SUPPORT (0) +#define SCI_UART_CFG_MULTIPLEX_INTERRUPT_SUPPORTED (0) +#if SCI_UART_CFG_MULTIPLEX_INTERRUPT_SUPPORTED + #define SCI_UART_CFG_MULTIPLEX_INTERRUPT_ENABLE BSP_INTERRUPT_ENABLE + #define SCI_UART_CFG_MULTIPLEX_INTERRUPT_DISABLE BSP_INTERRUPT_DISABLE +#else + #define SCI_UART_CFG_MULTIPLEX_INTERRUPT_ENABLE + #define SCI_UART_CFG_MULTIPLEX_INTERRUPT_DISABLE +#endif +#endif /* R_SCI_UART_CFG_H_ */ diff --git a/bsp/renesas/rzn2l_rsk/rzn_gen/SConscript b/bsp/renesas/rzn2l_rsk/rzn_gen/SConscript new file mode 100644 index 0000000000..33e4f94e07 --- /dev/null +++ b/bsp/renesas/rzn2l_rsk/rzn_gen/SConscript @@ -0,0 +1,19 @@ +Import('RTT_ROOT') +Import('rtconfig') +from building import * +from gcc import * + +cwd = GetCurrentDir() +src = [] +group = [] +CPPPATH = [] + +if rtconfig.PLATFORM in ['iccarm']: + Return('group') +elif rtconfig.PLATFORM in GetGCCLikePLATFORM(): + if GetOption('target') != 'mdk5': + src = Glob('*.c') + CPPPATH = [cwd, ] + +group = DefineGroup('rz_gen', src, depend = [''], CPPPATH = CPPPATH) +Return('group') diff --git a/bsp/renesas/rzn2l_rsk/rzn_gen/bsp_clock_cfg.h b/bsp/renesas/rzn2l_rsk/rzn_gen/bsp_clock_cfg.h new file mode 100644 index 0000000000..eb168da8f5 --- /dev/null +++ b/bsp/renesas/rzn2l_rsk/rzn_gen/bsp_clock_cfg.h @@ -0,0 +1,42 @@ +/* generated configuration header file - do not edit */ +#ifndef BSP_CLOCK_CFG_H_ +#define BSP_CLOCK_CFG_H_ +#define BSP_CFG_CLOCKS_SECURE (0) +#define BSP_CFG_CLOCKS_OVERRIDE (0) +#define BSP_CFG_MAIN_CLOCK_HZ (25000000) /* Main Clock: 25MHz */ +#define BSP_CFG_LOCO_ENABLE (BSP_CLOCKS_LOCO_ENABLE) /* LOCO Enabled */ +#define BSP_CFG_PLL1 (BSP_CLOCKS_PLL1_INITIAL) /* PLL1 is initial state */ +#define BSP_CFG_PHYSEL (BSP_CLOCKS_PHYSEL_MAINOSC_DIV) /* Ethernet Clock src: Main clock oscillator */ +#define BSP_CFG_CLMA0_ENABLE (BSP_CLOCKS_CLMA0_ENABLE) /* CLMA0 Enabled */ +#define BSP_CFG_CLMA0MASK (BSP_CLOCKS_CLMA0_ERROR_NOT_MASK) /* CLMA0 error not mask */ +#define BSP_CFG_CLMA3MASK (BSP_CLOCKS_CLMA3_ERROR_NOT_MASK) /* CLMA3 error not mask */ +#define BSP_CFG_CLMA1MASK (BSP_CLOCKS_CLMA1_ERROR_MASK) /* CLMA1 error mask */ +#define BSP_CFG_CLMA3_ENABLE (BSP_CLOCKS_CLMA3_ENABLE) /* CLMA3 Enabled */ +#define BSP_CFG_CLMA1_ENABLE (BSP_CLOCKS_CLMA1_ENABLE) /* CLMA1 Enabled */ +#define BSP_CFG_CLMA2_ENABLE (BSP_CLOCKS_CLMA2_ENABLE) /* CLMA2 Enabled */ +#define BSP_CFG_CLMA0_CMPL (1) /* CLMA0 CMPL 1 */ +#define BSP_CFG_CLMA1_CMPL (1) /* CLMA1 CMPL 1 */ +#define BSP_CFG_CLMA2_CMPL (1) /* CLMA2 CMPL 1 */ +#define BSP_CFG_CLMA3_CMPL (1) /* CLMA3 CMPL 1 */ +#define BSP_CFG_CLMASEL (BSP_CLOCKS_CLMASEL_LOCO) /* Alternative clock: LOCO */ +#define BSP_CFG_CLMA0_CMPH (1023) /* CLMA0 CMPH 1023 */ +#define BSP_CFG_CLMA1_CMPH (1023) /* CLMA1 CMPH 1023 */ +#define BSP_CFG_CLMA2_CMPH (1023) /* CLMA2 CMPH 1023 */ +#define BSP_CFG_CLMA3_CMPH (1023) /* CLMA3 CMPH 1023 */ +#define BSP_CFG_DIVSELSUB (BSP_CLOCKS_DIVSELSUB_0) /* ICLK 200MHz */ +#define BSP_CFG_FSELCPU0 (BSP_CLOCKS_FSELCPU0_ICLK_MUL2) /* CPU0CLK Mulx2 */ +#define BSP_CFG_CKIO (BSP_CLOCKS_CKIO_ICLK_DIV4) /* CKIO Div/4 */ +#define BSP_CFG_SCI0ASYNCCLK (BSP_CLOCKS_SCI0_ASYNCHRONOUS_SERIAL_CLOCK_96_MHZ) /* SCI0ASYNCCLK: 96MHz */ +#define BSP_CFG_SCI1ASYNCCLK (BSP_CLOCKS_SCI1_ASYNCHRONOUS_SERIAL_CLOCK_96_MHZ) /* SCI1ASYNCCLK: 96MHz */ +#define BSP_CFG_SCI2ASYNCCLK (BSP_CLOCKS_SCI2_ASYNCHRONOUS_SERIAL_CLOCK_96_MHZ) /* SCI2ASYNCCLK: 96MHz */ +#define BSP_CFG_SCI3ASYNCCLK (BSP_CLOCKS_SCI3_ASYNCHRONOUS_SERIAL_CLOCK_96_MHZ) /* SCI3ASYNCCLK: 96MHz */ +#define BSP_CFG_SCI4ASYNCCLK (BSP_CLOCKS_SCI4_ASYNCHRONOUS_SERIAL_CLOCK_96_MHZ) /* SCI4ASYNCCLK: 96MHz */ +#define BSP_CFG_SCI5ASYNCCLK (BSP_CLOCKS_SCI5_ASYNCHRONOUS_SERIAL_CLOCK_96_MHZ) /* SCI5ASYNCCLK: 96MHz */ +#define BSP_CFG_SPI0ASYNCCLK (BSP_CLOCKS_SPI0_ASYNCHRONOUS_SERIAL_CLOCK_96_MHZ) /* SPI0ASYNCCLK: 96MHz */ +#define BSP_CFG_SPI1ASYNCCLK (BSP_CLOCKS_SPI1_ASYNCHRONOUS_SERIAL_CLOCK_96_MHZ) /* SPI1ASYNCCLK: 96MHz */ +#define BSP_CFG_SPI2ASYNCCLK (BSP_CLOCKS_SPI2_ASYNCHRONOUS_SERIAL_CLOCK_96_MHZ) /* SPI2ASYNCCLK: 96MHz */ +#define BSP_CFG_SPI3ASYNCCLK (BSP_CLOCKS_SPI3_ASYNCHRONOUS_SERIAL_CLOCK_96_MHZ) /* SPI3ASYNCCLK: 96MHz */ +#define BSP_CFG_FSELCANFD (BSP_CLOCKS_CANFD_CLOCK_40_MHZ) /* PCLKCAN 40MHz */ +#define BSP_CFG_FSELXSPI0_DIVSELXSPI0 (BSP_CLOCKS_XSPI0_CLOCK_DIV0_12_5_MHZ) /* XSPI_CLK0 12.5MHz */ +#define BSP_CFG_FSELXSPI1_DIVSELXSPI1 (BSP_CLOCKS_XSPI1_CLOCK_DIV0_12_5_MHZ) /* XSPI_CLK1 12.5MHz */ +#endif /* BSP_CLOCK_CFG_H_ */ diff --git a/bsp/renesas/rzn2l_rsk/rzn_gen/common_data.c b/bsp/renesas/rzn2l_rsk/rzn_gen/common_data.c new file mode 100644 index 0000000000..f9b7a5039f --- /dev/null +++ b/bsp/renesas/rzn2l_rsk/rzn_gen/common_data.c @@ -0,0 +1,75 @@ +/* generated common source file - do not edit */ +#include "common_data.h" +/** IOPORT interface configuration for event link **/ + const ioport_extend_cfg_t g_ioport_cfg_extend = + { + .port_group_output_cfg[IOPORT_PORT_GROUP_1] = + { + .pin_select = (uint8_t)( IOPORT_EVENT_PIN_SELECTION_NONE), + .operation = IOPORT_EVENT_OUTPUT_OPERATION_LOW + }, + .port_group_output_cfg[IOPORT_PORT_GROUP_2] = + { + .pin_select = (uint8_t)( IOPORT_EVENT_PIN_SELECTION_NONE), + .operation = IOPORT_EVENT_OUTPUT_OPERATION_LOW + }, + .port_group_input_cfg[IOPORT_PORT_GROUP_1] = + { + .event_control = IOPORT_EVENT_CONTROL_DISABLE, + .pin_select = (uint8_t)( IOPORT_EVENT_PIN_SELECTION_NONE), + .edge_detection = IOPORT_EVENT_DETECTION_RISING_EDGE, + .overwrite_control = IOPORT_EVENT_CONTROL_DISABLE, + .buffer_init_value = IOPORT_EVENT_INITIAL_BUFFER_VALUE_LOW << 7U | IOPORT_EVENT_INITIAL_BUFFER_VALUE_LOW << 6U | IOPORT_EVENT_INITIAL_BUFFER_VALUE_LOW << 5U | IOPORT_EVENT_INITIAL_BUFFER_VALUE_LOW << 3U | IOPORT_EVENT_INITIAL_BUFFER_VALUE_LOW << 2U | IOPORT_EVENT_INITIAL_BUFFER_VALUE_LOW << 1U | IOPORT_EVENT_INITIAL_BUFFER_VALUE_LOW + }, + .port_group_input_cfg[IOPORT_PORT_GROUP_2] = + { + .event_control = IOPORT_EVENT_CONTROL_DISABLE, + .pin_select = (uint8_t)( IOPORT_EVENT_PIN_SELECTION_NONE), + .edge_detection = IOPORT_EVENT_DETECTION_RISING_EDGE, + .overwrite_control = IOPORT_EVENT_CONTROL_DISABLE, + .buffer_init_value = IOPORT_EVENT_INITIAL_BUFFER_VALUE_LOW << 6U | IOPORT_EVENT_INITIAL_BUFFER_VALUE_LOW << 5U | IOPORT_EVENT_INITIAL_BUFFER_VALUE_LOW << 4U | IOPORT_EVENT_INITIAL_BUFFER_VALUE_LOW << 3U | IOPORT_EVENT_INITIAL_BUFFER_VALUE_LOW << 2U | IOPORT_EVENT_INITIAL_BUFFER_VALUE_LOW << 1U | IOPORT_EVENT_INITIAL_BUFFER_VALUE_LOW + }, + .single_port_cfg[IOPORT_SINGLE_PORT_0] = + { + .event_control = IOPORT_EVENT_CONTROL_DISABLE, + .direction = IOPORT_EVENT_DIRECTION_OUTPUT, + .port_num = (uint16_t)BSP_IO_PORT_16_PIN_0, + .operation = IOPORT_EVENT_OUTPUT_OPERATION_LOW, + .edge_detection = IOPORT_EVENT_DETECTION_RISING_EDGE + }, + .single_port_cfg[IOPORT_SINGLE_PORT_1] = + { + .event_control = IOPORT_EVENT_CONTROL_DISABLE, + .direction = IOPORT_EVENT_DIRECTION_OUTPUT, + .port_num = (uint16_t)BSP_IO_PORT_16_PIN_0, + .operation = IOPORT_EVENT_OUTPUT_OPERATION_LOW, + .edge_detection = IOPORT_EVENT_DETECTION_RISING_EDGE + }, + .single_port_cfg[IOPORT_SINGLE_PORT_2] = + { + .event_control = IOPORT_EVENT_CONTROL_DISABLE, + .direction = IOPORT_EVENT_DIRECTION_OUTPUT, + .port_num = (uint16_t)BSP_IO_PORT_16_PIN_0, + .operation = IOPORT_EVENT_OUTPUT_OPERATION_LOW, + .edge_detection = IOPORT_EVENT_DETECTION_RISING_EDGE + }, + .single_port_cfg[IOPORT_SINGLE_PORT_3] = + { + .event_control = IOPORT_EVENT_CONTROL_DISABLE, + .direction = IOPORT_EVENT_DIRECTION_OUTPUT, + .port_num = (uint16_t)BSP_IO_PORT_16_PIN_0, + .operation = IOPORT_EVENT_OUTPUT_OPERATION_LOW, + .edge_detection = IOPORT_EVENT_DETECTION_RISING_EDGE + } + }; + +ioport_instance_ctrl_t g_ioport_ctrl; + +const ioport_instance_t g_ioport = + { + .p_api = &g_ioport_on_ioport, + .p_ctrl = &g_ioport_ctrl, + .p_cfg = &g_bsp_pin_cfg + }; +void g_common_init(void) { +} diff --git a/bsp/renesas/rzn2l_rsk/rzn_gen/common_data.h b/bsp/renesas/rzn2l_rsk/rzn_gen/common_data.h new file mode 100644 index 0000000000..e2eb70836b --- /dev/null +++ b/bsp/renesas/rzn2l_rsk/rzn_gen/common_data.h @@ -0,0 +1,16 @@ +/* generated common header file - do not edit */ +#ifndef COMMON_DATA_H_ +#define COMMON_DATA_H_ +#include +#include "bsp_api.h" +#include "r_ioport.h" +#include "bsp_pin_cfg.h" +FSP_HEADER +/* IOPORT Instance */ +extern const ioport_instance_t g_ioport; + +/* IOPORT control structure. */ +extern ioport_instance_ctrl_t g_ioport_ctrl; +void g_common_init(void); +FSP_FOOTER +#endif /* COMMON_DATA_H_ */ diff --git a/bsp/renesas/rzn2l_rsk/rzn_gen/hal_data.c b/bsp/renesas/rzn2l_rsk/rzn_gen/hal_data.c new file mode 100644 index 0000000000..2ddb428c13 --- /dev/null +++ b/bsp/renesas/rzn2l_rsk/rzn_gen/hal_data.c @@ -0,0 +1,110 @@ +/* generated HAL source file - do not edit */ +#include "hal_data.h" +sci_uart_instance_ctrl_t g_uart0_ctrl; + + #define FSP_NOT_DEFINED (1) + #if (FSP_NOT_DEFINED) != (FSP_NOT_DEFINED) + + /* If the transfer module is DMAC, define a DMAC transfer callback. */ + extern void sci_uart_tx_dmac_callback(sci_uart_instance_ctrl_t * p_instance_ctrl); + + void g_uart0_tx_transfer_callback (transfer_callback_args_t * p_args) + { + FSP_PARAMETER_NOT_USED(p_args); + sci_uart_tx_dmac_callback(&g_uart0_ctrl); + } + #endif + + #if (FSP_NOT_DEFINED) != (FSP_NOT_DEFINED) + + /* If the transfer module is DMAC, define a DMAC transfer callback. */ + extern void sci_uart_rx_dmac_callback(sci_uart_instance_ctrl_t * p_instance_ctrl); + + void g_uart0_rx_transfer_callback (transfer_callback_args_t * p_args) + { + FSP_PARAMETER_NOT_USED(p_args); + sci_uart_rx_dmac_callback(&g_uart0_ctrl); + } + #endif + #undef FSP_NOT_DEFINED + + sci_baud_setting_t g_uart0_baud_setting = + { + /* Baud rate calculated with 0.160% error. */ .baudrate_bits_b.abcse = 0, .baudrate_bits_b.abcs = 0, .baudrate_bits_b.bgdm = 1, .baudrate_bits_b.cks = 0, .baudrate_bits_b.brr = 51, .baudrate_bits_b.mddr = (uint8_t) 256, .baudrate_bits_b.brme = false + }; + + /** UART extended configuration for UARTonSCI HAL driver */ + const sci_uart_extended_cfg_t g_uart0_cfg_extend = + { + .clock = SCI_UART_CLOCK_INT, + .rx_edge_start = SCI_UART_START_BIT_FALLING_EDGE, + .noise_cancel = SCI_UART_NOISE_CANCELLATION_DISABLE, + .rx_fifo_trigger = SCI_UART_RX_FIFO_TRIGGER_MAX, + .p_baud_setting = &g_uart0_baud_setting, +#if 1 + .clock_source = SCI_UART_CLOCK_SOURCE_SCI0ASYNCCLK, +#else + .clock_source = SCI_UART_CLOCK_SOURCE_PCLKM, +#endif + .flow_control = SCI_UART_FLOW_CONTROL_RTS, + #if 0xFF != 0xFF + .flow_control_pin = BSP_IO_PORT_FF_PIN_0xFF, + #else + .flow_control_pin = (bsp_io_port_pin_t) UINT16_MAX, + #endif + .rs485_setting = { + .enable = SCI_UART_RS485_DISABLE, + .polarity = SCI_UART_RS485_DE_POLARITY_HIGH, + .assertion_time = 1, + .negation_time = 1, + }, + }; + + /** UART interface configuration */ + const uart_cfg_t g_uart0_cfg = + { + .channel = 0, + .data_bits = UART_DATA_BITS_8, + .parity = UART_PARITY_OFF, + .stop_bits = UART_STOP_BITS_1, + .p_callback = user_uart0_callback, + .p_context = NULL, + .p_extend = &g_uart0_cfg_extend, + .p_transfer_tx = g_uart0_P_TRANSFER_TX, + .p_transfer_rx = g_uart0_P_TRANSFER_RX, + .rxi_ipl = (12), + .txi_ipl = (12), + .tei_ipl = (12), + .eri_ipl = (12), +#if defined(VECTOR_NUMBER_SCI0_RXI) + .rxi_irq = VECTOR_NUMBER_SCI0_RXI, +#else + .rxi_irq = FSP_INVALID_VECTOR, +#endif +#if defined(VECTOR_NUMBER_SCI0_TXI) + .txi_irq = VECTOR_NUMBER_SCI0_TXI, +#else + .txi_irq = FSP_INVALID_VECTOR, +#endif +#if defined(VECTOR_NUMBER_SCI0_TEI) + .tei_irq = VECTOR_NUMBER_SCI0_TEI, +#else + .tei_irq = FSP_INVALID_VECTOR, +#endif +#if defined(VECTOR_NUMBER_SCI0_ERI) + .eri_irq = VECTOR_NUMBER_SCI0_ERI, +#else + .eri_irq = FSP_INVALID_VECTOR, +#endif + }; + +/* Instance structure to use this module. */ +const uart_instance_t g_uart0 = +{ + .p_ctrl = &g_uart0_ctrl, + .p_cfg = &g_uart0_cfg, + .p_api = &g_uart_on_sci +}; +void g_hal_init(void) { +g_common_init(); +} diff --git a/bsp/renesas/rzn2l_rsk/rzn_gen/hal_data.h b/bsp/renesas/rzn2l_rsk/rzn_gen/hal_data.h new file mode 100644 index 0000000000..983bc881f4 --- /dev/null +++ b/bsp/renesas/rzn2l_rsk/rzn_gen/hal_data.h @@ -0,0 +1,37 @@ +/* generated HAL header file - do not edit */ +#ifndef HAL_DATA_H_ +#define HAL_DATA_H_ +#include +#include "bsp_api.h" +#include "common_data.h" +#include "r_sci_uart.h" + #include "r_uart_api.h" +FSP_HEADER +/** UART on SCI Instance. */ + extern const uart_instance_t g_uart0; + + /** Access the UART instance using these structures when calling API functions directly (::p_api is not used). */ + extern sci_uart_instance_ctrl_t g_uart0_ctrl; + extern const uart_cfg_t g_uart0_cfg; + extern const sci_uart_extended_cfg_t g_uart0_cfg_extend; + + #ifndef user_uart0_callback + void user_uart0_callback(uart_callback_args_t * p_args); + #endif + + #define FSP_NOT_DEFINED (1) + #if (FSP_NOT_DEFINED == FSP_NOT_DEFINED) + #define g_uart0_P_TRANSFER_TX (NULL) + #else + #define g_uart0_P_TRANSFER_TX (&FSP_NOT_DEFINED) + #endif + #if (FSP_NOT_DEFINED == FSP_NOT_DEFINED) + #define g_uart0_P_TRANSFER_RX (NULL) + #else + #define g_uart0_P_TRANSFER_RX (&FSP_NOT_DEFINED) + #endif + #undef FSP_NOT_DEFINED +void hal_entry(void); +void g_hal_init(void); +FSP_FOOTER +#endif /* HAL_DATA_H_ */ diff --git a/bsp/renesas/rzn2l_rsk/rzn_gen/main.c b/bsp/renesas/rzn2l_rsk/rzn_gen/main.c new file mode 100644 index 0000000000..42c5904834 --- /dev/null +++ b/bsp/renesas/rzn2l_rsk/rzn_gen/main.c @@ -0,0 +1,6 @@ +/* generated main source file - do not edit */ +#include "hal_data.h" + int main(void) { + hal_entry(); + return 0; + } diff --git a/bsp/renesas/rzn2l_rsk/rzn_gen/pin_data.c b/bsp/renesas/rzn2l_rsk/rzn_gen/pin_data.c new file mode 100644 index 0000000000..16c236af9a --- /dev/null +++ b/bsp/renesas/rzn2l_rsk/rzn_gen/pin_data.c @@ -0,0 +1,228 @@ +/* generated pin source file - do not edit */ +#include "bsp_api.h" +#include "r_ioport_api.h" +#include "r_ioport.h" + +extern const ioport_extend_cfg_t g_ioport_cfg_extend; + + +const ioport_pin_cfg_t g_bsp_pin_cfg_data[] = { + { + .pin = BSP_IO_PORT_01_PIN_7, + .pin_cfg = ((uint32_t) IOPORT_CFG_DRIVE_MID | (uint32_t) IOPORT_CFG_PORT_PERI | (uint32_t) IOPORT_PIN_P017_PFC_08_CANRX0) + }, + { + .pin = BSP_IO_PORT_02_PIN_2, + .pin_cfg = ((uint32_t) IOPORT_CFG_DRIVE_MID | (uint32_t) IOPORT_CFG_PORT_PERI | (uint32_t) IOPORT_PIN_P022_PFC_08_CANTX0) + }, + { + .pin = BSP_IO_PORT_02_PIN_4, + .pin_cfg = ((uint32_t) IOPORT_CFG_DRIVE_HIGH | (uint32_t) IOPORT_CFG_PORT_PERI | (uint32_t) IOPORT_CFG_SLEW_RATE_FAST | (uint32_t) IOPORT_PIN_P024_PFC_00_TDO) + }, + { + .pin = BSP_IO_PORT_02_PIN_5, + .pin_cfg = ((uint32_t) IOPORT_CFG_PORT_PERI | (uint32_t) IOPORT_PIN_P025_PFC_01_TDI) + }, + { + .pin = BSP_IO_PORT_02_PIN_6, + .pin_cfg = ((uint32_t) IOPORT_CFG_DRIVE_HIGH | (uint32_t) IOPORT_CFG_PORT_PERI | (uint32_t) IOPORT_CFG_SLEW_RATE_FAST | (uint32_t) IOPORT_PIN_P026_PFC_00_TMS_SWDIO) + }, + { + .pin = BSP_IO_PORT_02_PIN_7, + .pin_cfg = ((uint32_t) IOPORT_CFG_PORT_PERI | (uint32_t) IOPORT_PIN_P027_PFC_00_TCK_SWCLK) + }, + { + .pin = BSP_IO_PORT_03_PIN_0, + .pin_cfg = ((uint32_t) IOPORT_CFG_PORT_DIRECTION_OUTPUT | (uint32_t) IOPORT_CFG_PORT_OUTPUT_LOW) + }, + { + .pin = BSP_IO_PORT_04_PIN_1, + .pin_cfg = ((uint32_t) IOPORT_CFG_PORT_DIRECTION_OUTPUT | (uint32_t) IOPORT_CFG_PORT_OUTPUT_LOW) + }, + { + .pin = BSP_IO_PORT_04_PIN_4, + .pin_cfg = ((uint32_t) IOPORT_CFG_PORT_DIRECTION_OUTPUT | (uint32_t) IOPORT_CFG_PORT_OUTPUT_LOW) + }, + { + .pin = BSP_IO_PORT_05_PIN_0, + .pin_cfg = ((uint32_t) IOPORT_CFG_PORT_DIRECTION_OUTPUT | (uint32_t) IOPORT_CFG_PORT_OUTPUT_LOW) + }, + { + .pin = BSP_IO_PORT_05_PIN_2, + .pin_cfg = ((uint32_t) IOPORT_CFG_DRIVE_MID | (uint32_t) IOPORT_CFG_PORT_PERI | (uint32_t) IOPORT_PIN_P052_PFC_08_IIC_SCL1) + }, + { + .pin = BSP_IO_PORT_05_PIN_3, + .pin_cfg = ((uint32_t) IOPORT_CFG_DRIVE_MID | (uint32_t) IOPORT_CFG_PORT_PERI | (uint32_t) IOPORT_PIN_P053_PFC_09_IIC_SDA1) + }, + { + .pin = BSP_IO_PORT_05_PIN_4, + .pin_cfg = ((uint32_t) IOPORT_CFG_PORT_DIRECTION_INPUT) + }, + { + .pin = BSP_IO_PORT_07_PIN_4, + .pin_cfg = ((uint32_t) IOPORT_CFG_PORT_PERI | (uint32_t) IOPORT_PIN_P074_PFC_02_USB_VBUSIN) + }, + { + .pin = BSP_IO_PORT_08_PIN_7, + .pin_cfg = ((uint32_t) IOPORT_CFG_PORT_PERI | (uint32_t) IOPORT_PIN_P087_PFC_00_GMAC_MDC) + }, + { + .pin = BSP_IO_PORT_09_PIN_0, + .pin_cfg = ((uint32_t) IOPORT_CFG_PORT_PERI | (uint32_t) IOPORT_PIN_P090_PFC_00_GMAC_MDIO) + }, + { + .pin = BSP_IO_PORT_13_PIN_2, + .pin_cfg = ((uint32_t) IOPORT_CFG_DRIVE_MID | (uint32_t) IOPORT_CFG_PORT_PERI | (uint32_t) IOPORT_PIN_P132_PFC_0B_IIC_SCL0) + }, + { + .pin = BSP_IO_PORT_13_PIN_3, + .pin_cfg = ((uint32_t) IOPORT_CFG_DRIVE_MID | (uint32_t) IOPORT_CFG_PORT_PERI | (uint32_t) IOPORT_PIN_P133_PFC_0B_IIC_SDA0) + }, + { + .pin = BSP_IO_PORT_13_PIN_4, + .pin_cfg = ((uint32_t) IOPORT_CFG_PORT_DIRECTION_OUTPUT | (uint32_t) IOPORT_CFG_PORT_OUTPUT_LOW) + }, + { + .pin = BSP_IO_PORT_13_PIN_5, + .pin_cfg = ((uint32_t) IOPORT_CFG_PORT_DIRECTION_INPUT) + }, + { + .pin = BSP_IO_PORT_13_PIN_6, + .pin_cfg = ((uint32_t) IOPORT_CFG_PORT_DIRECTION_INPUT) + }, + { + .pin = BSP_IO_PORT_13_PIN_7, + .pin_cfg = ((uint32_t) IOPORT_CFG_PORT_DIRECTION_INPUT) + }, + { + .pin = BSP_IO_PORT_14_PIN_0, + .pin_cfg = ((uint32_t) IOPORT_CFG_PORT_DIRECTION_INPUT) + }, + { + .pin = BSP_IO_PORT_14_PIN_2, + .pin_cfg = ((uint32_t) IOPORT_CFG_PORT_PERI | (uint32_t) IOPORT_PIN_P142_PFC_01_XSPI0_ECS0) + }, + { + .pin = BSP_IO_PORT_14_PIN_4, + .pin_cfg = ((uint32_t) IOPORT_CFG_DRIVE_HIGH | (uint32_t) IOPORT_CFG_PORT_PERI | (uint32_t) IOPORT_CFG_SLEW_RATE_FAST | (uint32_t) IOPORT_PIN_P144_PFC_00_XSPI0_DS) + }, + { + .pin = BSP_IO_PORT_14_PIN_5, + .pin_cfg = ((uint32_t) IOPORT_CFG_DRIVE_HIGH | (uint32_t) IOPORT_CFG_PORT_PERI | (uint32_t) IOPORT_CFG_SLEW_RATE_FAST | (uint32_t) IOPORT_PIN_P145_PFC_00_XSPI0_CKN) + }, + { + .pin = BSP_IO_PORT_14_PIN_6, + .pin_cfg = ((uint32_t) IOPORT_CFG_DRIVE_HIGH | (uint32_t) IOPORT_CFG_PORT_PERI | (uint32_t) IOPORT_CFG_SLEW_RATE_FAST | (uint32_t) IOPORT_PIN_P146_PFC_00_XSPI0_CKP) + }, + { + .pin = BSP_IO_PORT_14_PIN_7, + .pin_cfg = ((uint32_t) IOPORT_CFG_DRIVE_HIGH | (uint32_t) IOPORT_CFG_PORT_PERI | (uint32_t) IOPORT_CFG_SLEW_RATE_FAST | (uint32_t) IOPORT_PIN_P147_PFC_00_XSPI0_IO0) + }, + { + .pin = BSP_IO_PORT_15_PIN_0, + .pin_cfg = ((uint32_t) IOPORT_CFG_DRIVE_HIGH | (uint32_t) IOPORT_CFG_PORT_PERI | (uint32_t) IOPORT_CFG_SLEW_RATE_FAST | (uint32_t) IOPORT_PIN_P150_PFC_00_XSPI0_IO1) + }, + { + .pin = BSP_IO_PORT_15_PIN_1, + .pin_cfg = ((uint32_t) IOPORT_CFG_DRIVE_HIGH | (uint32_t) IOPORT_CFG_PORT_PERI | (uint32_t) IOPORT_CFG_SLEW_RATE_FAST | (uint32_t) IOPORT_PIN_P151_PFC_00_XSPI0_IO2) + }, + { + .pin = BSP_IO_PORT_15_PIN_2, + .pin_cfg = ((uint32_t) IOPORT_CFG_DRIVE_HIGH | (uint32_t) IOPORT_CFG_PORT_PERI | (uint32_t) IOPORT_CFG_SLEW_RATE_FAST | (uint32_t) IOPORT_PIN_P152_PFC_00_XSPI0_IO3) + }, + { + .pin = BSP_IO_PORT_15_PIN_3, + .pin_cfg = ((uint32_t) IOPORT_CFG_DRIVE_HIGH | (uint32_t) IOPORT_CFG_PORT_PERI | (uint32_t) IOPORT_CFG_SLEW_RATE_FAST | (uint32_t) IOPORT_PIN_P153_PFC_00_XSPI0_IO4) + }, + { + .pin = BSP_IO_PORT_15_PIN_4, + .pin_cfg = ((uint32_t) IOPORT_CFG_DRIVE_HIGH | (uint32_t) IOPORT_CFG_PORT_PERI | (uint32_t) IOPORT_CFG_SLEW_RATE_FAST | (uint32_t) IOPORT_PIN_P154_PFC_00_XSPI0_IO5) + }, + { + .pin = BSP_IO_PORT_15_PIN_5, + .pin_cfg = ((uint32_t) IOPORT_CFG_DRIVE_HIGH | (uint32_t) IOPORT_CFG_PORT_PERI | (uint32_t) IOPORT_CFG_SLEW_RATE_FAST | (uint32_t) IOPORT_PIN_P155_PFC_00_XSPI0_IO6) + }, + { + .pin = BSP_IO_PORT_15_PIN_6, + .pin_cfg = ((uint32_t) IOPORT_CFG_DRIVE_HIGH | (uint32_t) IOPORT_CFG_PORT_PERI | (uint32_t) IOPORT_CFG_SLEW_RATE_FAST | (uint32_t) IOPORT_PIN_P156_PFC_00_XSPI0_IO7) + }, + { + .pin = BSP_IO_PORT_15_PIN_7, + .pin_cfg = ((uint32_t) IOPORT_CFG_DRIVE_HIGH | (uint32_t) IOPORT_CFG_PORT_PERI | (uint32_t) IOPORT_CFG_SLEW_RATE_FAST | (uint32_t) IOPORT_PIN_P157_PFC_00_XSPI0_CS0) + }, + { + .pin = BSP_IO_PORT_16_PIN_0, + .pin_cfg = ((uint32_t) IOPORT_CFG_DRIVE_HIGH | (uint32_t) IOPORT_CFG_PORT_PERI | (uint32_t) IOPORT_CFG_SLEW_RATE_FAST | (uint32_t) IOPORT_PIN_P160_PFC_00_XSPI0_CS1) + }, + { + .pin = BSP_IO_PORT_16_PIN_1, + .pin_cfg = ((uint32_t) IOPORT_CFG_PORT_PERI | (uint32_t) IOPORT_PIN_P161_PFC_00_XSPI0_RESET0) + }, + { + .pin = BSP_IO_PORT_16_PIN_3, + .pin_cfg = ((uint32_t) IOPORT_CFG_PORT_DIRECTION_INPUT) + }, + { + .pin = BSP_IO_PORT_16_PIN_5, + .pin_cfg = ((uint32_t) IOPORT_CFG_DRIVE_HIGH | (uint32_t) IOPORT_CFG_PORT_PERI | (uint32_t) IOPORT_CFG_SLEW_RATE_FAST | (uint32_t) IOPORT_PIN_P165_PFC_01_TXD0_SDA0_MOSI0) + }, + { + .pin = BSP_IO_PORT_16_PIN_6, + .pin_cfg = ((uint32_t) IOPORT_CFG_DRIVE_HIGH | (uint32_t) IOPORT_CFG_PORT_PERI | (uint32_t) IOPORT_CFG_SLEW_RATE_FAST | (uint32_t) IOPORT_PIN_P166_PFC_02_RXD0_SCL0_MISO0) + }, + { + .pin = BSP_IO_PORT_17_PIN_3, + .pin_cfg = ((uint32_t) IOPORT_CFG_PORT_DIRECTION_OUTPUT | (uint32_t) IOPORT_CFG_PORT_OUTPUT_LOW) + }, + { + .pin = BSP_IO_PORT_17_PIN_5, + .pin_cfg = ((uint32_t) IOPORT_CFG_PORT_PERI | (uint32_t) IOPORT_PIN_P175_PFC_05_USB_OVRCUR) + }, + { + .pin = BSP_IO_PORT_17_PIN_7, + .pin_cfg = ((uint32_t) IOPORT_CFG_DRIVE_HIGH | (uint32_t) IOPORT_CFG_PORT_PERI | (uint32_t) IOPORT_CFG_SLEW_RATE_FAST | (uint32_t) IOPORT_PIN_P177_PFC_04_RXD3_SCL3_MISO3) + }, + { + .pin = BSP_IO_PORT_18_PIN_0, + .pin_cfg = ((uint32_t) IOPORT_CFG_DRIVE_HIGH | (uint32_t) IOPORT_CFG_PORT_PERI | (uint32_t) IOPORT_CFG_SLEW_RATE_FAST | (uint32_t) IOPORT_PIN_P180_PFC_04_TXD3_SDA3_MOSI3) + }, + { + .pin = BSP_IO_PORT_18_PIN_2, + .pin_cfg = ((uint32_t) IOPORT_CFG_PORT_DIRECTION_OUTPUT | (uint32_t) IOPORT_CFG_PORT_OUTPUT_LOW) + }, + { + .pin = BSP_IO_PORT_18_PIN_4, + .pin_cfg = ((uint32_t) IOPORT_CFG_DRIVE_HIGH | (uint32_t) IOPORT_CFG_PORT_PERI | (uint32_t) IOPORT_CFG_SLEW_RATE_FAST | (uint32_t) IOPORT_PIN_P184_PFC_03_SPI_RSPCK2) + }, + { + .pin = BSP_IO_PORT_18_PIN_5, + .pin_cfg = ((uint32_t) IOPORT_CFG_DRIVE_HIGH | (uint32_t) IOPORT_CFG_PORT_PERI | (uint32_t) IOPORT_CFG_SLEW_RATE_FAST | (uint32_t) IOPORT_PIN_P185_PFC_03_SPI_MOSI2) + }, + { + .pin = BSP_IO_PORT_18_PIN_6, + .pin_cfg = ((uint32_t) IOPORT_CFG_DRIVE_HIGH | (uint32_t) IOPORT_CFG_PORT_PERI | (uint32_t) IOPORT_CFG_SLEW_RATE_FAST | (uint32_t) IOPORT_PIN_P186_PFC_05_SPI_MISO2) + }, + { + .pin = BSP_IO_PORT_19_PIN_0, + .pin_cfg = ((uint32_t) IOPORT_CFG_PORT_PERI | (uint32_t) IOPORT_PIN_P190_PFC_00_USB_VBUSEN) + }, + { + .pin = BSP_IO_PORT_21_PIN_1, + .pin_cfg = ((uint32_t) IOPORT_CFG_DRIVE_HIGH | (uint32_t) IOPORT_CFG_PORT_PERI | (uint32_t) IOPORT_CFG_SLEW_RATE_FAST | (uint32_t) IOPORT_PIN_P211_PFC_06_SPI_SSL20) + }, + { + .pin = BSP_IO_PORT_22_PIN_1, + .pin_cfg = ((uint32_t) IOPORT_CFG_PORT_DIRECTION_OUTPUT | (uint32_t) IOPORT_CFG_PORT_OUTPUT_LOW) + }, + { + .pin = BSP_IO_PORT_22_PIN_3, + .pin_cfg = ((uint32_t) IOPORT_CFG_PORT_DIRECTION_OUTPUT | (uint32_t) IOPORT_CFG_PORT_OUTPUT_LOW) + }, +}; + +const ioport_cfg_t g_bsp_pin_cfg = { + .number_of_pins = sizeof(g_bsp_pin_cfg_data)/sizeof(ioport_pin_cfg_t), + .p_pin_cfg_data = &g_bsp_pin_cfg_data[0], + .p_extend = &g_ioport_cfg_extend, +}; diff --git a/bsp/renesas/rzn2l_rsk/rzn_gen/vector_data.c b/bsp/renesas/rzn2l_rsk/rzn_gen/vector_data.c new file mode 100644 index 0000000000..c02f2f69da --- /dev/null +++ b/bsp/renesas/rzn2l_rsk/rzn_gen/vector_data.c @@ -0,0 +1,12 @@ +/* generated vector source file - do not edit */ + #include "bsp_api.h" + /* Do not build these data structures if no interrupts are currently allocated because IAR will have build errors. */ + #if VECTOR_DATA_IRQ_COUNT > 0 + BSP_DONT_REMOVE const fsp_vector_t g_vector_table[BSP_ICU_VECTOR_MAX_ENTRIES] = + { + [288] = sci_uart_eri_isr, /* SCI0_ERI (SCI0 Receive error) */ + [289] = sci_uart_rxi_isr, /* SCI0_RXI (SCI0 Receive data full) */ + [290] = sci_uart_txi_isr, /* SCI0_TXI (SCI0 Transmit data empty) */ + [291] = sci_uart_tei_isr, /* SCI0_TEI (SCI0 Transmit end) */ + }; + #endif \ No newline at end of file diff --git a/bsp/renesas/rzn2l_rsk/rzn_gen/vector_data.h b/bsp/renesas/rzn2l_rsk/rzn_gen/vector_data.h new file mode 100644 index 0000000000..852c5ecf77 --- /dev/null +++ b/bsp/renesas/rzn2l_rsk/rzn_gen/vector_data.h @@ -0,0 +1,50 @@ +/* generated vector header file - do not edit */ + #ifndef VECTOR_DATA_H + #define VECTOR_DATA_H + #include "bsp_api.h" + /* Number of interrupts allocated */ + #ifndef VECTOR_DATA_IRQ_COUNT + #define VECTOR_DATA_IRQ_COUNT (4) + #endif + /* ISR prototypes */ + void sci_uart_eri_isr(void); + void sci_uart_rxi_isr(void); + void sci_uart_txi_isr(void); + void sci_uart_tei_isr(void); + + /* Vector table allocations */ + #define VECTOR_NUMBER_SCI0_ERI ((IRQn_Type) 288) /* SCI0_ERI (SCI0 Receive error) */ + #define VECTOR_NUMBER_SCI0_RXI ((IRQn_Type) 289) /* SCI0_RXI (SCI0 Receive data full) */ + #define VECTOR_NUMBER_SCI0_TXI ((IRQn_Type) 290) /* SCI0_TXI (SCI0 Transmit data empty) */ + #define VECTOR_NUMBER_SCI0_TEI ((IRQn_Type) 291) /* SCI0_TEI (SCI0 Transmit end) */ + typedef enum IRQn { + SoftwareGeneratedInt0 = -32, + SoftwareGeneratedInt1 = -31, + SoftwareGeneratedInt2 = -30, + SoftwareGeneratedInt3 = -29, + SoftwareGeneratedInt4 = -28, + SoftwareGeneratedInt5 = -27, + SoftwareGeneratedInt6 = -26, + SoftwareGeneratedInt7 = -25, + SoftwareGeneratedInt8 = -24, + SoftwareGeneratedInt9 = -23, + SoftwareGeneratedInt10 = -22, + SoftwareGeneratedInt11 = -21, + SoftwareGeneratedInt12 = -20, + SoftwareGeneratedInt13 = -19, + SoftwareGeneratedInt14 = -18, + SoftwareGeneratedInt15 = -17, + DebugCommunicationsChannelInt = -10, + PerformanceMonitorCounterOverflowInt = -9, + CrossTriggerInterfaceInt = -8, + VritualCPUInterfaceMaintenanceInt = -7, + HypervisorTimerInt = -6, + VirtualTimerInt = -5, + NonSecurePhysicalTimerInt = -2, + SCI0_ERI_IRQn = 288, /* SCI0_ERI (SCI0 Receive error) */ + SCI0_RXI_IRQn = 289, /* SCI0_RXI (SCI0 Receive data full) */ + SCI0_TXI_IRQn = 290, /* SCI0_TXI (SCI0 Transmit data empty) */ + SCI0_TEI_IRQn = 291, /* SCI0_TEI (SCI0 Transmit end) */ + SHARED_PERIPHERAL_INTERRUPTS_MAX_ENTRIES = BSP_VECTOR_TABLE_MAX_ENTRIES + } IRQn_Type; + #endif /* VECTOR_DATA_H */ \ No newline at end of file diff --git a/bsp/renesas/rzn2l_rsk/script/fsp_xspi0_boot.icf b/bsp/renesas/rzn2l_rsk/script/fsp_xspi0_boot.icf new file mode 100644 index 0000000000..2f14001fa0 --- /dev/null +++ b/bsp/renesas/rzn2l_rsk/script/fsp_xspi0_boot.icf @@ -0,0 +1,684 @@ +include "memory_regions.icf"; + +/* The memory information for each device is done in memory regions file. + * The starting address and length of memory not defined in memory regions file are defined as 0. */ + +if (isdefinedsymbol(ATCM_START)) +{ + define symbol ATCM_PRV_START = ATCM_START; +} +else +{ + define symbol ATCM_PRV_START = 0; +} + +if (isdefinedsymbol(ATCM_LENGTH)) +{ + define symbol ATCM_PRV_LENGTH = ATCM_LENGTH; +} +else +{ + define symbol ATCM_PRV_LENGTH = 0; +} + +if (isdefinedsymbol(BTCM_START)) +{ + define symbol BTCM_PRV_START = BTCM_START; +} +else +{ + define symbol BTCM_PRV_START = 0; +} + +if (isdefinedsymbol(BTCM_LENGTH)) +{ + define symbol BTCM_PRV_LENGTH = BTCM_LENGTH; +} +else +{ + define symbol BTCM_PRV_LENGTH = 0; +} + +if (isdefinedsymbol(SYSTEM_RAM_START)) +{ + define symbol SYSTEM_RAM_PRV_START = SYSTEM_RAM_START; +} +else +{ + define symbol SYSTEM_RAM_PRV_START = 0; +} + +if (isdefinedsymbol(SYSTEM_RAM_LENGTH)) +{ + define symbol SYSTEM_RAM_PRV_LENGTH = SYSTEM_RAM_LENGTH; +} +else +{ + define symbol SYSTEM_RAM_PRV_LENGTH = 0; +} + +if (isdefinedsymbol(SYSTEM_RAM_MIRROR_START)) +{ + define symbol SYSTEM_RAM_MIRROR_PRV_START = SYSTEM_RAM_MIRROR_START; +} +else +{ + define symbol SYSTEM_RAM_MIRROR_PRV_START = 0; +} + +if (isdefinedsymbol(SYSTEM_RAM_MIRROR_LENGTH)) +{ + define symbol SYSTEM_RAM_MIRROR_PRV_LENGTH = SYSTEM_RAM_MIRROR_LENGTH; +} +else +{ + define symbol SYSTEM_RAM_MIRROR_PRV_LENGTH = 0; +} + +if (isdefinedsymbol(xSPI0_CS0_SPACE_MIRROR_START)) +{ + define symbol xSPI0_CS0_SPACE_MIRROR_PRV_START = xSPI0_CS0_SPACE_MIRROR_START; +} +else +{ + define symbol xSPI0_CS0_SPACE_MIRROR_PRV_START = 0; +} + +if (isdefinedsymbol(xSPI0_CS0_SPACE_MIRROR_LENGTH)) +{ + define symbol xSPI0_CS0_SPACE_MIRROR_PRV_LENGTH = xSPI0_CS0_SPACE_MIRROR_LENGTH; +} +else +{ + define symbol xSPI0_CS0_SPACE_MIRROR_PRV_LENGTH = 0; +} + +if (isdefinedsymbol(xSPI0_CS1_SPACE_MIRROR_START)) +{ + define symbol xSPI0_CS1_SPACE_MIRROR_PRV_START = xSPI0_CS1_SPACE_MIRROR_START; +} +else +{ + define symbol xSPI0_CS1_SPACE_MIRROR_PRV_START = 0; +} + +if (isdefinedsymbol(xSPI0_CS1_SPACE_MIRROR_LENGTH)) +{ + define symbol xSPI0_CS1_SPACE_MIRROR_PRV_LENGTH = xSPI0_CS1_SPACE_MIRROR_LENGTH; +} +else +{ + define symbol xSPI0_CS1_SPACE_MIRROR_PRV_LENGTH = 0; +} + +if (isdefinedsymbol(xSPI1_CS0_SPACE_MIRROR_START)) +{ + define symbol xSPI1_CS0_SPACE_MIRROR_PRV_START = xSPI1_CS0_SPACE_MIRROR_START; +} +else +{ + define symbol xSPI1_CS0_SPACE_MIRROR_PRV_START = 0; +} + +if (isdefinedsymbol(xSPI1_CS0_SPACE_MIRROR_LENGTH)) +{ + define symbol xSPI1_CS0_SPACE_MIRROR_PRV_LENGTH = xSPI1_CS0_SPACE_MIRROR_LENGTH; +} +else +{ + define symbol xSPI1_CS0_SPACE_MIRROR_PRV_LENGTH = 0; +} + +if (isdefinedsymbol(xSPI1_CS1_SPACE_MIRROR_START)) +{ + define symbol xSPI1_CS1_SPACE_MIRROR_PRV_START = xSPI1_CS1_SPACE_MIRROR_START; +} +else +{ + define symbol xSPI1_CS1_SPACE_MIRROR_PRV_START = 0; +} + +if (isdefinedsymbol(xSPI1_CS1_SPACE_MIRROR_LENGTH)) +{ + define symbol xSPI1_CS1_SPACE_MIRROR_PRV_LENGTH = xSPI1_CS1_SPACE_MIRROR_LENGTH; +} +else +{ + define symbol xSPI1_CS1_SPACE_MIRROR_PRV_LENGTH = 0; +} + +if (isdefinedsymbol(CS0_SPACE_MIRROR_START)) +{ + define symbol CS0_SPACE_MIRROR_PRV_START = CS0_SPACE_MIRROR_START; +} +else +{ + define symbol CS0_SPACE_MIRROR_PRV_START = 0; +} + +if (isdefinedsymbol(CS0_SPACE_MIRROR_LENGTH)) +{ + define symbol CS0_SPACE_MIRROR_PRV_LENGTH = CS0_SPACE_MIRROR_LENGTH; +} +else +{ + define symbol CS0_SPACE_MIRROR_PRV_LENGTH = 0; +} + +if (isdefinedsymbol(CS2_SPACE_MIRROR_START)) +{ + define symbol CS2_SPACE_MIRROR_PRV_START = CS2_SPACE_MIRROR_START; +} +else +{ + define symbol CS2_SPACE_MIRROR_PRV_START = 0; +} + +if (isdefinedsymbol(CS2_SPACE_MIRROR_LENGTH)) +{ + define symbol CS2_SPACE_MIRROR_PRV_LENGTH = CS2_SPACE_MIRROR_LENGTH; +} +else +{ + define symbol CS2_SPACE_MIRROR_PRV_LENGTH = 0; +} + + +if (isdefinedsymbol(CS3_SPACE_MIRROR_START)) +{ + define symbol CS3_SPACE_MIRROR_PRV_START = CS3_SPACE_MIRROR_START; +} +else +{ + define symbol CS3_SPACE_MIRROR_PRV_START = 0; +} + +if (isdefinedsymbol(CS3_SPACE_MIRROR_LENGTH)) +{ + define symbol CS3_SPACE_MIRROR_PRV_LENGTH = CS3_SPACE_MIRROR_LENGTH; +} +else +{ + define symbol CS3_SPACE_MIRROR_PRV_LENGTH = 0; +} + +if (isdefinedsymbol(CS5_SPACE_MIRROR_START)) +{ + define symbol CS5_SPACE_MIRROR_PRV_START = CS5_SPACE_MIRROR_START; +} +else +{ + define symbol CS5_SPACE_MIRROR_PRV_START = 0; +} + +if (isdefinedsymbol(CS5_SPACE_MIRROR_LENGTH)) +{ + define symbol CS5_SPACE_MIRROR_PRV_LENGTH = CS5_SPACE_MIRROR_LENGTH; +} +else +{ + define symbol CS5_SPACE_MIRROR_PRV_LENGTH = 0; +} + + +if (isdefinedsymbol(xSPI0_CS0_SPACE_START)) +{ + define symbol xSPI0_CS0_SPACE_PRV_START = xSPI0_CS0_SPACE_START; +} +else +{ + define symbol xSPI0_CS0_SPACE_PRV_START = 0; +} + +if (isdefinedsymbol(xSPI0_CS0_SPACE_LENGTH)) +{ + define symbol xSPI0_CS0_SPACE_PRV_LENGTH = xSPI0_CS0_SPACE_LENGTH; +} +else +{ + define symbol xSPI0_CS0_SPACE_PRV_LENGTH = 0; +} + +if (isdefinedsymbol(xSPI0_CS1_SPACE_START)) +{ + define symbol xSPI0_CS1_SPACE_PRV_START = xSPI0_CS1_SPACE_START; +} +else +{ + define symbol xSPI0_CS1_SPACE_PRV_START = 0; +} + +if (isdefinedsymbol(xSPI0_CS1_SPACE_LENGTH)) +{ + define symbol xSPI0_CS1_SPACE_PRV_LENGTH = xSPI0_CS1_SPACE_LENGTH; +} +else +{ + define symbol xSPI0_CS1_SPACE_PRV_LENGTH = 0; +} + +if (isdefinedsymbol(xSPI1_CS0_SPACE_START)) +{ + define symbol xSPI1_CS0_SPACE_PRV_START = xSPI1_CS0_SPACE_START; +} +else +{ + define symbol xSPI1_CS0_SPACE_PRV_START = 0; +} + +if (isdefinedsymbol(xSPI1_CS0_SPACE_LENGTH)) +{ + define symbol xSPI1_CS0_SPACE_PRV_LENGTH = xSPI1_CS0_SPACE_LENGTH; +} +else +{ + define symbol xSPI1_CS0_SPACE_PRV_LENGTH = 0; +} + +if (isdefinedsymbol(xSPI1_CS1_SPACE_START)) +{ + define symbol xSPI1_CS1_SPACE_PRV_START = xSPI1_CS1_SPACE_START; +} +else +{ + define symbol xSPI1_CS1_SPACE_PRV_START = 0; +} + +if (isdefinedsymbol(xSPI1_CS1_SPACE_LENGTH)) +{ + define symbol xSPI1_CS1_SPACE_PRV_LENGTH = xSPI1_CS1_SPACE_LENGTH; +} +else +{ + define symbol xSPI1_CS1_SPACE_PRV_LENGTH = 0; +} + +if (isdefinedsymbol(CS0_SPACE_START)) +{ + define symbol CS0_SPACE_PRV_START = CS0_SPACE_START; +} +else +{ + define symbol CS0_SPACE_PRV_START = 0; +} + +if (isdefinedsymbol(CS0_SPACE_LENGTH)) +{ + define symbol CS0_SPACE_PRV_LENGTH = CS0_SPACE_LENGTH; +} +else +{ + define symbol CS0_SPACE_PRV_LENGTH = 0; +} + +if (isdefinedsymbol(CS2_SPACE_START)) +{ + define symbol CS2_SPACE_PRV_START = CS2_SPACE_START; +} +else +{ + define symbol CS2_SPACE_PRV_START = 0; +} + +if (isdefinedsymbol(CS2_SPACE_LENGTH)) +{ + define symbol CS2_SPACE_PRV_LENGTH = CS2_SPACE_LENGTH; +} +else +{ + define symbol CS2_SPACE_PRV_LENGTH = 0; +} + +if (isdefinedsymbol(CS3_SPACE_START)) +{ + define symbol CS3_SPACE_PRV_START = CS3_SPACE_START; +} +else +{ + define symbol CS3_SPACE_PRV_START = 0; +} + +if (isdefinedsymbol(CS3_SPACE_LENGTH)) +{ + define symbol CS3_SPACE_PRV_LENGTH = CS3_SPACE_LENGTH; +} +else +{ + define symbol CS3_SPACE_PRV_LENGTH = 0; +} + +if (isdefinedsymbol(CS5_SPACE_START)) +{ + define symbol CS5_SPACE_PRV_START = CS5_SPACE_START; +} +else +{ + define symbol CS5_SPACE_PRV_START = 0; +} + +if (isdefinedsymbol(CS5_SPACE_LENGTH)) +{ + define symbol CS5_SPACE_PRV_LENGTH = CS5_SPACE_LENGTH; +} +else +{ + define symbol CS5_SPACE_PRV_LENGTH = 0; +} + +define symbol SYSTEM_RAM_END_OFFSET = 0x00048000; +define symbol FLASH_ADDRESS = xSPI0_CS0_SPACE_PRV_START; + +define symbol INTVEC_ADDRESS = ATCM_PRV_START; +define symbol RAM_ADDRESS = (ATCM_PRV_START + 0x100); +define symbol RAM_END_ADDRESS = (ATCM_PRV_START + ATCM_PRV_LENGTH - 1); +define symbol LOADER_STACK_ADDRESS = (BTCM_PRV_START + 0x2000); +define symbol LOADER_STACK_END_ADDRESS = (BTCM_PRV_START + BTCM_PRV_LENGTH - 1); +define symbol DATA_NONCACHE_OFFSET = 0x00048000; +define symbol DATA_NONCACHE_END_OFFSET = 0x00044000; +define symbol DMAC_LINK_MODE_OFFSET = 0x00044000; +define symbol DMAC_LINK_MODE_END_OFFSET = 0x00040000; +define symbol NONCACHE_BUFFER_OFFSET = 0x00020000; +define symbol NONCACHE_BUFFER_END_OFFSET = 0; + +/*###ICF### Section handled by ICF editor, don't touch! ****/ +/*-Editor annotation file-*/ +/* IcfEditorFile="$TOOLKIT_DIR$\config\ide\IcfEditor\a_v1_0.xml" */ +/*-Specials-*/ +define symbol __ICFEDIT_intvec_start__ = INTVEC_ADDRESS; +/*-Memory Regions-*/ +define symbol __ICFEDIT_region_ROM_start__ = FLASH_ADDRESS + 0x20100; +define symbol __ICFEDIT_region_ROM_end__ = FLASH_ADDRESS + 0x6FFFF; +define symbol __ICFEDIT_region_RAM_start__ = RAM_ADDRESS; +define symbol __ICFEDIT_region_RAM_end__ = RAM_END_ADDRESS; +/**** End of ICF editor section. ###ICF###*/ + +/*-Sizes-*/ +define symbol __ICFEDIT_size_cstack__ = 0x200; +/**** End of ICF editor section. ###ICF###*/ + +define memory mem with size = 4G; +define region ROM_region = mem:[from __ICFEDIT_region_ROM_start__ to __ICFEDIT_region_ROM_end__]; +define region RAM_region = mem:[from __ICFEDIT_region_RAM_start__ to __ICFEDIT_region_RAM_end__]; + +define block CSTACK with alignment = 8, size = __ICFEDIT_size_cstack__ { }; + +define symbol __region_D_LOADER_STACK_start__ = LOADER_STACK_ADDRESS; +define symbol __region_D_LOADER_STACK_end__ = LOADER_STACK_END_ADDRESS; + +define symbol __region_DATA_NONCACHE_start__ = SYSTEM_RAM_MIRROR_PRV_START + SYSTEM_RAM_MIRROR_PRV_LENGTH - DATA_NONCACHE_OFFSET; +define symbol __region_DATA_NONCACHE_end__ = SYSTEM_RAM_MIRROR_PRV_START + SYSTEM_RAM_MIRROR_PRV_LENGTH - DATA_NONCACHE_END_OFFSET - 1; +define symbol __region_DMAC_LINK_MODE_start__ = SYSTEM_RAM_MIRROR_PRV_START + SYSTEM_RAM_MIRROR_PRV_LENGTH - DMAC_LINK_MODE_OFFSET; +define symbol __region_DMAC_LINK_MODE_end__ = SYSTEM_RAM_MIRROR_PRV_START + SYSTEM_RAM_MIRROR_PRV_LENGTH - DMAC_LINK_MODE_END_OFFSET - 1; +define symbol __region_SHARED_NONCACHE_BUFFER_start__ = SYSTEM_RAM_MIRROR_PRV_START + SYSTEM_RAM_MIRROR_PRV_LENGTH - 0x00040000; +define symbol __region_SHARED_NONCACHE_BUFFER_end__ = SYSTEM_RAM_MIRROR_PRV_START + SYSTEM_RAM_MIRROR_PRV_LENGTH - 0x00020000 - 1; +define symbol __region_NONCACHE_BUFFER_start__ = SYSTEM_RAM_MIRROR_PRV_START + SYSTEM_RAM_MIRROR_PRV_LENGTH - NONCACHE_BUFFER_OFFSET; +define symbol __region_NONCACHE_BUFFER_end__ = SYSTEM_RAM_MIRROR_PRV_START + SYSTEM_RAM_MIRROR_PRV_LENGTH - NONCACHE_BUFFER_END_OFFSET - 1; + +define symbol __region_ATCM_start__ = ATCM_PRV_START; +define symbol __region_ATCM_end__ = ATCM_PRV_START + ATCM_PRV_LENGTH - 1; +define symbol __region_BTCM_start__ = BTCM_PRV_START; +define symbol __region_BTCM_end__ = BTCM_PRV_START + BTCM_PRV_LENGTH - 1; +define symbol __region_SYSTEM_RAM_start__ = SYSTEM_RAM_PRV_START; +define symbol __region_SYSTEM_RAM_end__ = SYSTEM_RAM_PRV_START + SYSTEM_RAM_PRV_LENGTH - SYSTEM_RAM_END_OFFSET - 1; +define symbol __region_SYSTEM_RAM_MIRROR_start__ = SYSTEM_RAM_MIRROR_PRV_START; +define symbol __region_SYSTEM_RAM_MIRROR_end__ = SYSTEM_RAM_MIRROR_PRV_START + SYSTEM_RAM_MIRROR_PRV_LENGTH - SYSTEM_RAM_END_OFFSET - 1; + +define symbol __region_XSPI0_CS0_MIRROR_start__ = xSPI0_CS0_SPACE_MIRROR_PRV_START; +define symbol __region_XSPI0_CS0_MIRROR_end__ = xSPI0_CS0_SPACE_MIRROR_PRV_START + xSPI0_CS0_SPACE_MIRROR_PRV_LENGTH - 1; +define symbol __region_XSPI0_CS1_MIRROR_start__ = xSPI0_CS1_SPACE_MIRROR_PRV_START; +define symbol __region_XSPI0_CS1_MIRROR_end__ = xSPI0_CS1_SPACE_MIRROR_PRV_START + xSPI0_CS1_SPACE_MIRROR_PRV_LENGTH - 1; +define symbol __region_XSPI1_CS0_MIRROR_start__ = xSPI1_CS0_SPACE_MIRROR_PRV_START; +define symbol __region_XSPI1_CS0_MIRROR_end__ = xSPI1_CS0_SPACE_MIRROR_PRV_START + xSPI1_CS0_SPACE_MIRROR_PRV_LENGTH - 1; +define symbol __region_XSPI1_CS1_MIRROR_start__ = xSPI1_CS1_SPACE_MIRROR_PRV_START; +define symbol __region_XSPI1_CS1_MIRROR_end__ = xSPI1_CS1_SPACE_MIRROR_PRV_START + xSPI1_CS1_SPACE_MIRROR_PRV_LENGTH - 1; +define symbol __region_CS0_MIRROR_start__ = CS0_SPACE_MIRROR_PRV_START; +define symbol __region_CS0_MIRROR_end__ = CS0_SPACE_MIRROR_PRV_START + CS0_SPACE_MIRROR_PRV_LENGTH - 1; +define symbol __region_CS2_MIRROR_start__ = CS2_SPACE_MIRROR_PRV_START; +define symbol __region_CS2_MIRROR_end__ = CS2_SPACE_MIRROR_PRV_START + CS2_SPACE_MIRROR_PRV_LENGTH - 1; +define symbol __region_CS3_MIRROR_start__ = CS3_SPACE_MIRROR_PRV_START; +define symbol __region_CS3_MIRROR_end__ = CS3_SPACE_MIRROR_PRV_START + CS3_SPACE_MIRROR_PRV_LENGTH - 1; +define symbol __region_CS5_MIRROR_start__ = CS5_SPACE_MIRROR_PRV_START; +define symbol __region_CS5_MIRROR_end__ = CS5_SPACE_MIRROR_PRV_START + CS5_SPACE_MIRROR_PRV_LENGTH - 1; +define symbol __region_XSPI0_CS0_start__ = xSPI0_CS0_SPACE_PRV_START; +define symbol __region_XSPI0_CS0_end__ = xSPI0_CS0_SPACE_PRV_START + xSPI0_CS0_SPACE_PRV_LENGTH - 1; +define symbol __region_XSPI0_CS1_start__ = xSPI0_CS1_SPACE_PRV_START; +define symbol __region_XSPI0_CS1_end__ = xSPI0_CS1_SPACE_PRV_START + xSPI0_CS1_SPACE_PRV_LENGTH - 1; +define symbol __region_XSPI1_CS0_start__ = xSPI1_CS0_SPACE_PRV_START; +define symbol __region_XSPI1_CS0_end__ = xSPI1_CS0_SPACE_PRV_START + xSPI1_CS0_SPACE_PRV_LENGTH - 1; +define symbol __region_XSPI1_CS1_start__ = xSPI1_CS1_SPACE_PRV_START; +define symbol __region_XSPI1_CS1_end__ = xSPI1_CS1_SPACE_PRV_START + xSPI1_CS1_SPACE_PRV_LENGTH - 1; +define symbol __region_CS0_start__ = CS0_SPACE_PRV_START; +define symbol __region_CS0_end__ = CS0_SPACE_PRV_START + CS0_SPACE_PRV_LENGTH - 1; +define symbol __region_CS2_start__ = CS2_SPACE_PRV_START; +define symbol __region_CS2_end__ = CS2_SPACE_PRV_START + CS2_SPACE_PRV_LENGTH - 1; +define symbol __region_CS3_start__ = CS3_SPACE_PRV_START; +define symbol __region_CS3_end__ = CS3_SPACE_PRV_START + CS3_SPACE_PRV_LENGTH - 1; +define symbol __region_CS5_start__ = CS5_SPACE_PRV_START; +define symbol __region_CS5_end__ = CS5_SPACE_PRV_START + CS5_SPACE_PRV_LENGTH - 1; + +/************** SPI boot mode setting **************/ +define symbol __region_LDR_PARAM_start__ = FLASH_ADDRESS; +define symbol __region_LDR_PARAM_end__ = FLASH_ADDRESS + 0x0000004B; +define symbol __region_S_LOADER_STACK_start__ = FLASH_ADDRESS + 0x0000004C; +define symbol __region_S_LOADER_STACK_end__ = FLASH_ADDRESS + 0x0000804B; + +define symbol __region_S_intvec_start__ = FLASH_ADDRESS + 0x20000; +define symbol __region_S_intvec_end__ = FLASH_ADDRESS + 0x200FF; +define symbol __region_S_RAM_start__ = FLASH_ADDRESS + 0x70000; +define symbol __region_S_RAM_end__ = FLASH_ADDRESS + 0x7FFFF; +/****************************************************/ + +define region D_LOADER_STACK_region = mem:[from __region_D_LOADER_STACK_start__ to __region_D_LOADER_STACK_end__]; + +define region LDR_PARAM_region = mem:[from __region_LDR_PARAM_start__ to __region_LDR_PARAM_end__]; +define region S_LOADER_STACK_region = mem:[from __region_S_LOADER_STACK_start__ to __region_S_LOADER_STACK_end__]; + +define region S_intvec_region = mem:[from __region_S_intvec_start__ to __region_S_intvec_end__]; +define region S_RAM_region = mem:[from __region_S_RAM_start__ to __region_S_RAM_end__]; + +define region DATA_NONCACHE_region = mem:[from __region_DATA_NONCACHE_start__ to __region_DATA_NONCACHE_end__]; +define region DMAC_LINK_MODE_region = mem:[from __region_DMAC_LINK_MODE_start__ to __region_DMAC_LINK_MODE_end__]; +define region SHARED_NONCACHE_BUFFER_region = mem:[from __region_SHARED_NONCACHE_BUFFER_start__ to __region_SHARED_NONCACHE_BUFFER_end__]; +define region NONCACHE_BUFFER_region = mem:[from __region_NONCACHE_BUFFER_start__ to __region_NONCACHE_BUFFER_end__]; + +define region ATCM_region = mem:[from __region_ATCM_start__ to __region_ATCM_end__ ]; +define region BTCM_region = mem:[from __region_BTCM_start__ to __region_BTCM_end__ ]; +define region SYSTEM_RAM_region = mem:[from __region_SYSTEM_RAM_start__ to __region_SYSTEM_RAM_end__ ]; +define region SYSTEM_RAM_MIRROR_region = mem:[from __region_SYSTEM_RAM_MIRROR_start__ to __region_SYSTEM_RAM_MIRROR_end__ ]; +define region XSPI0_CS0_MIRROR_region = mem:[from __region_XSPI0_CS0_MIRROR_start__ to __region_XSPI0_CS0_MIRROR_end__ ]; +define region XSPI0_CS1_MIRROR_region = mem:[from __region_XSPI0_CS1_MIRROR_start__ to __region_XSPI0_CS1_MIRROR_end__ ]; +define region XSPI1_CS0_MIRROR_region = mem:[from __region_XSPI1_CS0_MIRROR_start__ to __region_XSPI1_CS0_MIRROR_end__ ]; +define region XSPI1_CS1_MIRROR_region = mem:[from __region_XSPI1_CS1_MIRROR_start__ to __region_XSPI1_CS1_MIRROR_end__ ]; +define region CS0_MIRROR_region = mem:[from __region_CS0_MIRROR_start__ to __region_CS0_MIRROR_end__ ]; +define region CS2_MIRROR_region = mem:[from __region_CS2_MIRROR_start__ to __region_CS2_MIRROR_end__ ]; +define region CS3_MIRROR_region = mem:[from __region_CS3_MIRROR_start__ to __region_CS3_MIRROR_end__ ]; +define region CS5_MIRROR_region = mem:[from __region_CS5_MIRROR_start__ to __region_CS5_MIRROR_end__ ]; +define region XSPI0_CS0_region = mem:[from __region_XSPI0_CS0_start__ to __region_XSPI0_CS0_end__ ]; +define region XSPI0_CS1_region = mem:[from __region_XSPI0_CS1_start__ to __region_XSPI0_CS1_end__ ]; +define region XSPI1_CS0_region = mem:[from __region_XSPI1_CS0_start__ to __region_XSPI1_CS0_end__ ]; +define region XSPI1_CS1_region = mem:[from __region_XSPI1_CS1_start__ to __region_XSPI1_CS1_end__ ]; +define region CS0_region = mem:[from __region_CS0_start__ to __region_CS0_end__ ]; +define region CS2_region = mem:[from __region_CS2_start__ to __region_CS2_end__ ]; +define region CS3_region = mem:[from __region_CS3_start__ to __region_CS3_end__ ]; +define region CS5_region = mem:[from __region_CS5_start__ to __region_CS5_end__ ]; + +define block LDR_PRG_RBLOCK with fixed order + { ro code section .loader_text_init object startup_core.o, + ro code object startup_core.o, + ro code object system_core.o, + ro code object startup.o, + ro code object system.o, + ro code object bsp_clocks.o, + ro code object bsp_irq_core.o, + ro code object bsp_irq.o, + ro code object bsp_register_protection.o, + ro code object r_ioport.o, + ro code object bsp_cache.o, + ro code section .warm_start_init } + except { ro code section .intvec_init, + ro code section .reset_handler_init }; +define block LDR_PRG_WBLOCK with fixed order + { rw code section .loader_text object startup_core.o, + rw code object startup_core.o, + rw code object system_core.o, + rw code object startup.o, + rw code object system.o, + rw code object bsp_clocks.o, + rw code object bsp_irq_core.o, + rw code object bsp_irq.o, + rw code object bsp_register_protection.o, + rw code object r_ioport.o, + rw code object bsp_cache.o, + rw code section .warm_start } + except { rw code section .intvec, + rw code section .reset_handler }; +define block LDR_DATA_ZBLOCK with alignment = 4 + { section .bss object startup_core.o, + section .bss object system_core.o, + section .bss object startup.o, + section .bss object system.o, + section .bss object bsp_clocks.o, + section .bss object bsp_irq_core.o, + section .bss object bsp_irq.o, + section .bss object bsp_register_protection.o, + section .bss object r_ioport.o, + section .bss object bsp_cache.o, + section .bss object bsp_io.o }; +define block LDR_DATA_RBLOCK with fixed order, alignment = 4 + { section .data_init object startup_core.o, + section .data_init object system_core.o, + section .data_init object startup.o, + section .data_init object system.o, + section .data_init object bsp_clocks.o, + section .data_init object bsp_irq_core.o, + section .data_init object bsp_irq.o, + section .data_init object bsp_register_protection.o, + section .data_init object r_ioport.o, + section .data_init object bsp_cache.o, + section .rodata_init object system_core.o }; +define block LDR_DATA_WBLOCK with fixed order, alignment = 4 + { section .data object startup_core.o, + section .data object system_core.o, + section .data object startup.o, + section .data object system.o, + section .data object bsp_clocks.o, + section .data object bsp_irq_core.o, + section .data object bsp_irq.o, + section .data object bsp_register_protection.o, + section .data object r_ioport.o, + section .data object bsp_cache.o, + section .rodata object system_core.o }; + +define block HEAP_BLOCK with alignment = 8 { rw section HEAP }; +define block THREAD_STACK with alignment = 8 { rw section .stack* }; +define block SYS_STACK with alignment = 8 { rw section .sys_stack }; +define block SVC_STACK with alignment = 8 { rw section .svc_stack }; +define block IRQ_STACK with alignment = 8 { rw section .irq_stack }; +define block FIQ_STACK with alignment = 8 { rw section .fiq_stack }; +define block UND_STACK with alignment = 8 { rw section .und_stack }; +define block ABT_STACK with alignment = 8 { rw section .abt_stack }; + +define block VECTOR_RBLOCK with alignment = 32 { ro code section .intvec_init}; +define block VECTOR_WBLOCK with alignment = 32 { rw code section .intvec}; +define block USER_PRG_RBLOCK with alignment = 4 { ro code }; +define block USER_PRG_WBLOCK with alignment = 4 { rw code }; +define block USER_DATA_ZBLOCK with alignment = 4 { section .bss }; +define block USER_DATA_RBLOCK with fixed order, alignment = 4 + { section .data_init, + section __DLIB_PERTHREAD_init, + section .rodata_init, + section .version_init }; +define block USER_DATA_WBLOCK with fixed order, alignment = 4 + { section .data, + section __DLIB_PERTHREAD, + section .rodata, + section .version }; +define block USER_DATA_NONCACHE_RBLOCK with alignment = 4 { section .data_noncache_init }; +define block USER_DATA_NONCACHE_WBLOCK with alignment = 4 { section .data_noncache }; +define block DMAC_LINK_MODE_ZBLOCK with alignment = 4 { section .dmac_link_mode* }; +define block SHARED_NONCACHE_BUFFER_ZBLOCK with alignment = 32 { section .shared_noncache_buffer* }; +define block NONCACHE_BUFFER_ZBLOCK with alignment = 32 { section .noncache_buffer* }; + +initialize manually { ro code object startup_core.o, + ro code object system_core.o, + ro code object startup.o, + ro code object system.o, + ro code object bsp_clocks.o, + ro code object bsp_irq_core.o, + ro code object bsp_irq.o, + ro code object bsp_register_protection.o, + ro code object r_ioport.o, + ro code object bsp_cache.o, + ro code section .intvec, + ro code section .reset_handler, + ro code section .warm_start, + ro code, + section .data, + section __DLIB_PERTHREAD, + section .rodata, + section .version, + section .data_noncache }; + +do not initialize { section .noinit, + section .bss, + section .dmac_link_mode*, + section .shared_noncache_buffer*, + section .noncache_buffer*, + rw section HEAP, + rw section .stack*, + rw section .sys_stack, + rw section .svc_stack, + rw section .irq_stack, + rw section .fiq_stack, + rw section .und_stack, + rw section .abt_stack }; + +place at address mem: __ICFEDIT_intvec_start__ { block VECTOR_WBLOCK }; + +place in LDR_PARAM_region { readonly section .loader_param }; +place at start of S_LOADER_STACK_region { block LDR_PRG_RBLOCK }; +place in S_LOADER_STACK_region { section LDR_DATA_RBLOCK, block LDR_DATA_RBLOCK }; +place in S_intvec_region { block VECTOR_RBLOCK }; +place in ROM_region { block USER_PRG_RBLOCK, readonly }; +place in S_RAM_region { block USER_DATA_RBLOCK, block USER_DATA_NONCACHE_RBLOCK }; + +place at start of D_LOADER_STACK_region { block LDR_PRG_WBLOCK }; +place in D_LOADER_STACK_region { section LDR_DATA_WBLOCK, block LDR_DATA_WBLOCK, + section LDR_DATA_ZBLOCK, block LDR_DATA_ZBLOCK }; +place in D_LOADER_STACK_region { section SYS_STACK, block SYS_STACK, + section SVC_STACK, block SVC_STACK, + section IRQ_STACK, block IRQ_STACK, + section FIQ_STACK, block FIQ_STACK, + section UND_STACK, block UND_STACK, + section ABT_STACK, block ABT_STACK }; +place in RAM_region { block USER_PRG_WBLOCK }; +place in RAM_region { readwrite, last block CSTACK }; +place in RAM_region { block USER_DATA_WBLOCK, + block USER_DATA_ZBLOCK }; +place in RAM_region { section HEAP_BLOCK, block HEAP_BLOCK, + section THREAD_STACK, block THREAD_STACK }; + +place in DATA_NONCACHE_region { block USER_DATA_NONCACHE_WBLOCK }; +place in DMAC_LINK_MODE_region { block DMAC_LINK_MODE_ZBLOCK }; +place in SHARED_NONCACHE_BUFFER_region { block SHARED_NONCACHE_BUFFER_ZBLOCK }; +place in NONCACHE_BUFFER_region { block NONCACHE_BUFFER_ZBLOCK }; +place in ATCM_region { }; +place in BTCM_region { }; +place in SYSTEM_RAM_region { }; +place in SYSTEM_RAM_MIRROR_region { }; +place in XSPI0_CS0_MIRROR_region { }; +place in XSPI0_CS1_MIRROR_region { }; +place in XSPI1_CS0_MIRROR_region { }; +place in XSPI1_CS1_MIRROR_region { }; +place in CS0_MIRROR_region { }; +place in CS2_MIRROR_region { }; +place in CS3_MIRROR_region { }; +place in CS5_MIRROR_region { }; +place in XSPI0_CS0_region { }; +place in XSPI0_CS1_region { }; +place in XSPI1_CS0_region { }; +place in XSPI1_CS1_region { }; +place in CS0_region { }; +place in CS2_region { }; +place in CS3_region { }; +place in CS5_region { }; diff --git a/bsp/renesas/rzn2l_rsk/script/fsp_xspi0_boot.ld b/bsp/renesas/rzn2l_rsk/script/fsp_xspi0_boot.ld new file mode 100644 index 0000000000..d0ee38a658 --- /dev/null +++ b/bsp/renesas/rzn2l_rsk/script/fsp_xspi0_boot.ld @@ -0,0 +1,398 @@ +/* + Linker File for Renesas RZ/N2L FSP +*/ + +INCLUDE memory_regions.ld + +/* The memory information for each device is done in memory regions file. + * The starting address and length of memory not defined in memory regions file are defined as 0. */ + +ATCM_PRV_START = DEFINED(ATCM_START) ? ATCM_START : 0; +ATCM_PRV_LENGTH = DEFINED(ATCM_LENGTH) ? ATCM_LENGTH : 0; +BTCM_PRV_START = DEFINED(BTCM_START) ? BTCM_START : 0; +BTCM_PRV_LENGTH = DEFINED(BTCM_LENGTH) ? BTCM_LENGTH : 0; +SYSTEM_RAM_PRV_START = DEFINED(SYSTEM_RAM_START) ? SYSTEM_RAM_START : 0; +SYSTEM_RAM_PRV_LENGTH = DEFINED(SYSTEM_RAM_LENGTH) ? SYSTEM_RAM_LENGTH : 0; +SYSTEM_RAM_MIRROR_PRV_START = DEFINED(SYSTEM_RAM_MIRROR_START) ? SYSTEM_RAM_MIRROR_START : 0; +SYSTEM_RAM_MIRROR_PRV_LENGTH = DEFINED(SYSTEM_RAM_MIRROR_LENGTH) ? SYSTEM_RAM_MIRROR_LENGTH : 0; +xSPI0_CS0_SPACE_MIRROR_PRV_START = DEFINED(xSPI0_CS0_SPACE_MIRROR_START) ? xSPI0_CS0_SPACE_MIRROR_START : 0; +xSPI0_CS0_SPACE_MIRROR_PRV_LENGTH = DEFINED(xSPI0_CS0_SPACE_MIRROR_LENGTH) ? xSPI0_CS0_SPACE_MIRROR_LENGTH : 0; +xSPI0_CS1_SPACE_MIRROR_PRV_START = DEFINED(xSPI0_CS1_SPACE_MIRROR_START) ? xSPI0_CS1_SPACE_MIRROR_START : 0; +xSPI0_CS1_SPACE_MIRROR_PRV_LENGTH = DEFINED(xSPI0_CS1_SPACE_MIRROR_LENGTH) ? xSPI0_CS1_SPACE_MIRROR_LENGTH : 0; +xSPI1_CS0_SPACE_MIRROR_PRV_START = DEFINED(xSPI1_CS0_SPACE_MIRROR_START) ? xSPI1_CS0_SPACE_MIRROR_START : 0; +xSPI1_CS0_SPACE_MIRROR_PRV_LENGTH = DEFINED(xSPI1_CS0_SPACE_MIRROR_LENGTH) ? xSPI1_CS0_SPACE_MIRROR_LENGTH : 0; +xSPI1_CS1_SPACE_MIRROR_PRV_START = DEFINED(xSPI1_CS1_SPACE_MIRROR_START) ? xSPI1_CS1_SPACE_MIRROR_START : 0; +xSPI1_CS1_SPACE_MIRROR_PRV_LENGTH = DEFINED(xSPI1_CS1_SPACE_MIRROR_LENGTH) ? xSPI1_CS1_SPACE_MIRROR_LENGTH : 0; +CS0_SPACE_MIRROR_PRV_START = DEFINED(CS0_SPACE_MIRROR_START) ? CS0_SPACE_MIRROR_START : 0; +CS0_SPACE_MIRROR_PRV_LENGTH = DEFINED(CS0_SPACE_MIRROR_LENGTH) ? CS0_SPACE_MIRROR_LENGTH : 0; +CS2_SPACE_MIRROR_PRV_START = DEFINED(CS2_SPACE_MIRROR_START) ? CS2_SPACE_MIRROR_START : 0; +CS2_SPACE_MIRROR_PRV_LENGTH = DEFINED(CS2_SPACE_MIRROR_LENGTH) ? CS2_SPACE_MIRROR_LENGTH : 0; +CS3_SPACE_MIRROR_PRV_START = DEFINED(CS3_SPACE_MIRROR_START) ? CS3_SPACE_MIRROR_START : 0; +CS3_SPACE_MIRROR_PRV_LENGTH = DEFINED(CS3_SPACE_MIRROR_LENGTH) ? CS3_SPACE_MIRROR_LENGTH : 0; +CS5_SPACE_MIRROR_PRV_START = DEFINED(CS5_SPACE_MIRROR_START) ? CS5_SPACE_MIRROR_START : 0; +CS5_SPACE_MIRROR_PRV_LENGTH = DEFINED(CS5_SPACE_MIRROR_LENGTH) ? CS5_SPACE_MIRROR_LENGTH : 0; +xSPI0_CS0_SPACE_PRV_START = DEFINED(xSPI0_CS0_SPACE_START) ? xSPI0_CS0_SPACE_START : 0; +xSPI0_CS0_SPACE_PRV_LENGTH = DEFINED(xSPI0_CS0_SPACE_LENGTH) ? xSPI0_CS0_SPACE_LENGTH : 0; +xSPI0_CS1_SPACE_PRV_START = DEFINED(xSPI0_CS1_SPACE_START) ? xSPI0_CS1_SPACE_START : 0; +xSPI0_CS1_SPACE_PRV_LENGTH = DEFINED(xSPI0_CS1_SPACE_LENGTH) ? xSPI0_CS1_SPACE_LENGTH : 0; +xSPI1_CS0_SPACE_PRV_START = DEFINED(xSPI1_CS0_SPACE_START) ? xSPI1_CS0_SPACE_START : 0; +xSPI1_CS0_SPACE_PRV_LENGTH = DEFINED(xSPI1_CS0_SPACE_LENGTH) ? xSPI1_CS0_SPACE_LENGTH : 0; +xSPI1_CS1_SPACE_PRV_START = DEFINED(xSPI1_CS1_SPACE_START) ? xSPI1_CS1_SPACE_START : 0; +xSPI1_CS1_SPACE_PRV_LENGTH = DEFINED(xSPI1_CS1_SPACE_LENGTH) ? xSPI1_CS1_SPACE_LENGTH : 0; +CS0_SPACE_PRV_START = DEFINED(CS0_SPACE_START) ? CS0_SPACE_START : 0; +CS0_SPACE_PRV_LENGTH = DEFINED(CS0_SPACE_LENGTH) ? CS0_SPACE_LENGTH : 0; +CS2_SPACE_PRV_START = DEFINED(CS2_SPACE_START) ? CS2_SPACE_START : 0; +CS2_SPACE_PRV_LENGTH = DEFINED(CS2_SPACE_LENGTH) ? CS2_SPACE_LENGTH : 0; +CS3_SPACE_PRV_START = DEFINED(CS3_SPACE_START) ? CS3_SPACE_START : 0; +CS3_SPACE_PRV_LENGTH = DEFINED(CS3_SPACE_LENGTH) ? CS3_SPACE_LENGTH : 0; +CS5_SPACE_PRV_START = DEFINED(CS5_SPACE_START) ? CS5_SPACE_START : 0; +CS5_SPACE_PRV_LENGTH = DEFINED(CS5_SPACE_LENGTH) ? CS5_SPACE_LENGTH : 0; + +LOADER_PARAM_ADDRESS = xSPI0_CS0_SPACE_PRV_START; +FLASH_CONTENTS_ADDRESS = LOADER_PARAM_ADDRESS + 0x0000004C; +LOADER_TEXT_ADDRESS = 0x00102000; +INTVEC_ADDRESS = 0x00000000; +TEXT_ADDRESS = 0x00000100; +NONCACHE_BUFFER_OFFSET = 0x00020000; +DMAC_LINK_MODE_OFFSET = 0x00044000; +DATA_NONCACHE_OFFSET = 0x00048000; +RAM_START = ATCM_PRV_START; +RAM_LENGTH = ATCM_PRV_LENGTH; +LOADER_START = BTCM_PRV_START; +LOADER_LENGTH = BTCM_PRV_LENGTH; + +/* Define starting addresses and length for data_noncache, DMAC link mode data, CPU-shared non-cache, and CPU-specific non-cache areas. */ +DATA_NONCACHE_START = DEFINED(SYSTEM_RAM_MIRROR_START) ? SYSTEM_RAM_MIRROR_START + SYSTEM_RAM_MIRROR_LENGTH - DATA_NONCACHE_OFFSET : 0; +DATA_NONCACHE_LENGTH = DEFINED(SYSTEM_RAM_MIRROR_LENGTH) ? 0x00004000 : 0; +DMAC_LINK_MODE_START = DEFINED(SYSTEM_RAM_MIRROR_START) ? SYSTEM_RAM_MIRROR_START + SYSTEM_RAM_MIRROR_LENGTH - DMAC_LINK_MODE_OFFSET : 0; +DMAC_LINK_MODE_LENGTH = DEFINED(SYSTEM_RAM_MIRROR_LENGTH) ? 0x00004000 : 0; +SHARED_NONCACHE_BUFFER_START = DEFINED(SYSTEM_RAM_MIRROR_START) ? SYSTEM_RAM_MIRROR_START + SYSTEM_RAM_MIRROR_LENGTH - 0x00040000 : 0; +SHARED_NONCACHE_BUFFER_LENGTH = DEFINED(SYSTEM_RAM_MIRROR_LENGTH) ? 0x00020000 : 0; +NONCACHE_BUFFER_START = DEFINED(SYSTEM_RAM_MIRROR_START) ? SYSTEM_RAM_MIRROR_START + SYSTEM_RAM_MIRROR_LENGTH - NONCACHE_BUFFER_OFFSET : 0; +NONCACHE_BUFFER_LENGTH = DEFINED(SYSTEM_RAM_MIRROR_LENGTH) ? 0x00020000 : 0; + +MEMORY +{ + ATCM : ORIGIN = ATCM_PRV_START, LENGTH = ATCM_PRV_LENGTH + BTCM : ORIGIN = BTCM_PRV_START, LENGTH = BTCM_PRV_LENGTH + SYSTEM_RAM : ORIGIN = SYSTEM_RAM_PRV_START, LENGTH = SYSTEM_RAM_PRV_LENGTH + SYSTEM_RAM_MIRROR : ORIGIN = SYSTEM_RAM_MIRROR_PRV_START, LENGTH = SYSTEM_RAM_MIRROR_PRV_LENGTH + xSPI0_CS0_SPACE_MIRROR : ORIGIN = xSPI0_CS0_SPACE_MIRROR_PRV_START, LENGTH = xSPI0_CS0_SPACE_MIRROR_PRV_LENGTH + xSPI0_CS1_SPACE_MIRROR : ORIGIN = xSPI0_CS1_SPACE_MIRROR_PRV_START, LENGTH = xSPI0_CS1_SPACE_MIRROR_PRV_LENGTH + xSPI1_CS0_SPACE_MIRROR : ORIGIN = xSPI1_CS0_SPACE_MIRROR_PRV_START, LENGTH = xSPI1_CS0_SPACE_MIRROR_PRV_LENGTH + xSPI1_CS1_SPACE_MIRROR : ORIGIN = xSPI1_CS1_SPACE_MIRROR_PRV_START, LENGTH = xSPI1_CS1_SPACE_MIRROR_PRV_LENGTH + CS0_SPACE_MIRROR : ORIGIN = CS0_SPACE_MIRROR_PRV_START, LENGTH = CS0_SPACE_MIRROR_PRV_LENGTH + CS2_SPACE_MIRROR : ORIGIN = CS2_SPACE_MIRROR_PRV_START, LENGTH = CS2_SPACE_MIRROR_PRV_LENGTH + CS3_SPACE_MIRROR : ORIGIN = CS3_SPACE_MIRROR_PRV_START, LENGTH = CS3_SPACE_MIRROR_PRV_LENGTH + CS5_SPACE_MIRROR : ORIGIN = CS5_SPACE_MIRROR_PRV_START, LENGTH = CS5_SPACE_MIRROR_PRV_LENGTH + xSPI0_CS0_SPACE : ORIGIN = xSPI0_CS0_SPACE_PRV_START, LENGTH = xSPI0_CS0_SPACE_PRV_LENGTH + xSPI0_CS1_SPACE : ORIGIN = xSPI0_CS1_SPACE_PRV_START, LENGTH = xSPI0_CS1_SPACE_PRV_LENGTH + xSPI1_CS0_SPACE : ORIGIN = xSPI1_CS0_SPACE_PRV_START, LENGTH = xSPI1_CS0_SPACE_PRV_LENGTH + xSPI1_CS1_SPACE : ORIGIN = xSPI1_CS1_SPACE_PRV_START, LENGTH = xSPI1_CS1_SPACE_PRV_LENGTH + CS0_SPACE : ORIGIN = CS0_SPACE_PRV_START, LENGTH = CS0_SPACE_PRV_LENGTH + CS2_SPACE : ORIGIN = CS2_SPACE_PRV_START, LENGTH = CS2_SPACE_PRV_LENGTH + CS3_SPACE : ORIGIN = CS3_SPACE_PRV_START, LENGTH = CS3_SPACE_PRV_LENGTH + CS5_SPACE : ORIGIN = CS5_SPACE_PRV_START, LENGTH = CS5_SPACE_PRV_LENGTH + RAM : ORIGIN = RAM_START, LENGTH = RAM_LENGTH + LOADER_STACK : ORIGIN = LOADER_START, LENGTH = LOADER_LENGTH + DUMMY : ORIGIN = RAM_START, LENGTH = RAM_LENGTH + DATA_NONCACHE : ORIGIN = DATA_NONCACHE_START, LENGTH = DATA_NONCACHE_LENGTH + DMAC_LINK_MODE : ORIGIN = DMAC_LINK_MODE_START, LENGTH = DMAC_LINK_MODE_LENGTH + SHARED_NONCACHE_BUFFER : ORIGIN = SHARED_NONCACHE_BUFFER_START, LENGTH = SHARED_NONCACHE_BUFFER_LENGTH + NONCACHE_BUFFER : ORIGIN = NONCACHE_BUFFER_START, LENGTH = NONCACHE_BUFFER_LENGTH +} + +SECTIONS +{ + .loader_param LOADER_PARAM_ADDRESS : AT (LOADER_PARAM_ADDRESS) + { + KEEP(*(.loader_param)) + } > xSPI0_CS0_SPACE + .flash_contents FLASH_CONTENTS_ADDRESS : AT (FLASH_CONTENTS_ADDRESS) + { + _mloader_text = .; + . = . + (_loader_text_end - _loader_text_start); + _mloader_data = .; + . = . + (_loader_data_end - _loader_data_start); + _mfvector = .; + . = . + (_fvector_end - _fvector_start); + _mtext = .; + . = . + (_text_end - _text_start); + _mdummy = .; + . = . + (_dummy_end - _dummy_start); + _mdata = .; + . = . + (_data_end - _data_start); + _mdata_noncache = .; + . = . + (_data_noncache_end - _data_noncache_start); + flash_contents_end = .; + } > xSPI0_CS0_SPACE + .loader_text LOADER_TEXT_ADDRESS : AT (_mloader_text) + { + _loader_text_start = .; + *(.loader_text) + */fsp/src/bsp/cmsis/Device/RENESAS/Source/*.o(.text*) + */fsp/src/bsp/mcu/all/*/bsp_irq_core.o(.text*) + */fsp/src/bsp/mcu/all/bsp_clocks.o(.text*) + */fsp/src/bsp/mcu/all/bsp_irq.o(.text*) + */fsp/src/bsp/mcu/all/bsp_register_protection.o(.text*) + */fsp/src/bsp/mcu/all/bsp_cache.o(.text*) + */fsp/src/r_ioport/r_ioport.o(.text*) + KEEP(*(.warm_start)) + . = . + (512 - ((. - _loader_text_start) % 512)); + _loader_text_end = .; + } > LOADER_STACK + .loader_data : AT (_mloader_data) + { + _loader_data_start = .; + __loader_data_start = .; + */fsp/src/bsp/cmsis/Device/RENESAS/Source/*.o(.data*) + */fsp/src/bsp/cmsis/Device/RENESAS/Source/*/system_core.o(.rodata*) + */fsp/src/bsp/mcu/all/*/bsp_irq_core.o(.data*) + */fsp/src/bsp/mcu/all/bsp_clocks.o(.data*) + */fsp/src/bsp/mcu/all/bsp_irq.o(.data*) + */fsp/src/bsp/mcu/all/bsp_register_protection.o(.data*) + */fsp/src/bsp/mcu/all/bsp_cache.o(.data*) + */fsp/src/r_ioport/r_ioport.o(.data*) + . = ALIGN(4); + __loader_data_end = .; + __loader_bss_start = .; + */fsp/src/bsp/cmsis/Device/RENESAS/Source/*.o(.bss*) + */fsp/src/bsp/mcu/all/*/bsp_irq_core.o(.bss*) + */fsp/src/bsp/mcu/all/bsp_clocks.o(.bss*) + */fsp/src/bsp/mcu/all/bsp_irq.o(.bss*) + */fsp/src/bsp/mcu/all/bsp_register_protection.o(.bss*) + */fsp/src/bsp/mcu/all/bsp_cache.o(.bss*) + */fsp/src/r_ioport/r_ioport.o(.bss*) + */fsp/src/bsp/cmsis/Device/RENESAS/Source/*.o(COMMON) + */fsp/src/bsp/mcu/all/*/bsp_irq_core.o(COMMON) + */fsp/src/bsp/mcu/all/bsp_clocks.o(COMMON) + */fsp/src/bsp/mcu/all/bsp_irq.o(COMMON) + */fsp/src/bsp/mcu/all/bsp_register_protection.o(.COMMON) + */fsp/src/bsp/mcu/all/bsp_cache.o(COMMON) + */fsp/src/r_ioport/r_ioport.o(.COMMON) + . = ALIGN(4); + __loader_bss_end = . ; + _loader_data_end = .; + } > LOADER_STACK + .intvec INTVEC_ADDRESS : AT (_mfvector) + { + _fvector_start = .; + KEEP(*(.intvec)) + _fvector_end = .; + } > RAM + .text TEXT_ADDRESS : AT (_mtext) + { + _text_start = .; + *(.text*) + + KEEP(*(.reset_handler)) + KEEP(*(.init)) + KEEP(*(.fini)) + + /* .ctors */ + *crtbegin.o(.ctors) + *crtbegin?.o(.ctors) + *(EXCLUDE_FILE(*crtend?.o *crtend.o) .ctors) + *(SORT(.ctors.*)) + *(.ctors) + _ctor_end = .; + + /* .dtors */ + *crtbegin.o(.dtors) + *crtbegin?.o(.dtors) + *(EXCLUDE_FILE(*crtend?.o *crtend.o) .dtors) + *(SORT(.dtors.*)) + *(.dtors) + _dtor_end = .; + + + /* section information for finsh shell */ + . = ALIGN(4); + __fsymtab_start = .; + KEEP(*(FSymTab)) + __fsymtab_end = .; + + . = ALIGN(4); + __vsymtab_start = .; + KEEP(*(VSymTab)) + __vsymtab_end = .; + + + + . = ALIGN(4); + KEEP(*(FalPartTable)) + + KEEP(*(.eh_frame*)) + } > RAM + .rvectors : + { + _rvectors_start = .; + KEEP(*(.rvectors)) + _rvectors_end = .; + } > RAM + .ARM.extab : + { + *(.ARM.extab* .gnu.linkonce.armextab.*) + } > RAM + __exidx_start = .; + .ARM.exidx : + { + *(.ARM.exidx* .gnu.linkonce.armexidx.*) + } > RAM + __exidx_end = .; + .got : + { + *(.got) + *(.got.plt) + . = ALIGN(4); + _text_end = .; + } > RAM + .dummy _fvector_end : AT (_mdummy) + { + _dummy_start = .; + KEEP(*(.dummy)); + _dummy_end = .; + } > DUMMY + .data : AT (_mdata) + { + _data_start = .; + + *(vtable) + *(.data.*) + *(.data) + + *(.rodata*) + _erodata = .; + + . = ALIGN(4); + /* preinit data */ + PROVIDE_HIDDEN (__preinit_array_start = .); + KEEP(*(.preinit_array)) + PROVIDE_HIDDEN (__preinit_array_end = .); + + . = ALIGN(4); + /* init data */ + PROVIDE_HIDDEN (__init_array_start = .); + KEEP(*(SORT(.init_array.*))) + KEEP(*(.init_array)) + PROVIDE_HIDDEN (__init_array_end = .); + + . = ALIGN(4); + /* finit data */ + PROVIDE_HIDDEN (__fini_array_start = .); + KEEP(*(SORT(.fini_array.*))) + KEEP(*(.fini_array)) + PROVIDE_HIDDEN (__fini_array_end = .); + + KEEP(*(.jcr*)) + + . = ALIGN(4); + + /* All data end */ + _data_end = .; + } > RAM + .bss : + { + . = ALIGN(4); + __bss_start__ = .; + _bss = .; + *(.bss*) + *(COMMON) + . = ALIGN(4); + __bss_end__ = .; + _ebss = .; + _end = .; + } > RAM + .heap (NOLOAD) : + { + . = ALIGN(8); + __HeapBase = .; + /* Place the STD heap here. */ + KEEP(*(.heap)) + __HeapLimit = .; + } > ATCM + .thread_stack (NOLOAD): + { + . = ALIGN(8); + __ThreadStackBase = .; + /* Place the Thread stacks here. */ + KEEP(*(.stack*)) + __ThreadStackLimit = .; + } > RAM + .sys_stack (NOLOAD) : + { + . = ALIGN(8); + __SysStackBase = .; + /* Place the sys_stack here. */ + KEEP(*(.sys_stack)) + __SysStackLimit = .; + } > LOADER_STACK + .svc_stack (NOLOAD) : + { + . = ALIGN(8); + __SvcStackBase = .; + /* Place the svc_stack here. */ + KEEP(*(.svc_stack)) + __SvcStackLimit = .; + } > LOADER_STACK + .irq_stack (NOLOAD) : + { + . = ALIGN(8); + __IrqStackBase = .; + /* Place the irq_stack here. */ + KEEP(*(.irq_stack)) + __IrqStackLimit = .; + } > LOADER_STACK + .fiq_stack (NOLOAD) : + { + . = ALIGN(8); + __FiqStackBase = .; + /* Place the fiq_stack here. */ + KEEP(*(.fiq_stack)) + __FiqStackLimit = .; + } > LOADER_STACK + .und_stack (NOLOAD) : + { + . = ALIGN(8); + __UndStackBase = .; + /* Place the und_stack here. */ + KEEP(*(.und_stack)) + __UndStackLimit = .; + } > LOADER_STACK + .abt_stack (NOLOAD) : + { + . = ALIGN(8); + __AbtStackBase = .; + /* Place the abt_stack here. */ + KEEP(*(.abt_stack)) + __AbtStackLimit = .; + } > LOADER_STACK + .data_noncache DATA_NONCACHE_START : AT (_mdata_noncache) + { + . = ALIGN(4); + _data_noncache_start = .; + KEEP(*(.data_noncache*)) + _data_noncache_end = .; + } > DATA_NONCACHE + .dmac_link_mode DMAC_LINK_MODE_START : AT (DMAC_LINK_MODE_START) + { + . = ALIGN(4); + _DmacLinkMode_start = .; + KEEP(*(.dmac_link_mode*)) + _DmacLinkMode_end = .; + } > DMAC_LINK_MODE + .shared_noncache_buffer SHARED_NONCACHE_BUFFER_START (NOLOAD) : AT (SHARED_NONCACHE_BUFFER_START) + { + . = ALIGN(32); + _sncbuffer_start = .; + KEEP(*(.shared_noncache_buffer*)) + _sncbuffer_end = .; + } > SHARED_NONCACHE_BUFFER + .noncache_buffer NONCACHE_BUFFER_START (NOLOAD) : AT (NONCACHE_BUFFER_START) + { + . = ALIGN(32); + _ncbuffer_start = .; + KEEP(*(.noncache_buffer*)) + _ncbuffer_end = .; + } > NONCACHE_BUFFER +} diff --git a/bsp/renesas/rzn2l_rsk/script/fsp_xspi0_boot_systemRAM.icf b/bsp/renesas/rzn2l_rsk/script/fsp_xspi0_boot_systemRAM.icf new file mode 100644 index 0000000000..0e3f984c5f --- /dev/null +++ b/bsp/renesas/rzn2l_rsk/script/fsp_xspi0_boot_systemRAM.icf @@ -0,0 +1,699 @@ +include "memory_regions.icf"; + +/* The memory information for each device is done in memory regions file. + * The starting address and length of memory not defined in memory regions file are defined as 0. */ + +if (isdefinedsymbol(ATCM_START)) +{ + define symbol ATCM_PRV_START = ATCM_START; +} +else +{ + define symbol ATCM_PRV_START = 0; +} + +if (isdefinedsymbol(ATCM_LENGTH)) +{ + define symbol ATCM_PRV_LENGTH = ATCM_LENGTH; +} +else +{ + define symbol ATCM_PRV_LENGTH = 0; +} + +if (isdefinedsymbol(BTCM_START)) +{ + define symbol BTCM_PRV_START = BTCM_START; +} +else +{ + define symbol BTCM_PRV_START = 0; +} + +if (isdefinedsymbol(BTCM_LENGTH)) +{ + define symbol BTCM_PRV_LENGTH = BTCM_LENGTH; +} +else +{ + define symbol BTCM_PRV_LENGTH = 0; +} + +if (isdefinedsymbol(SYSTEM_RAM_START)) +{ + define symbol SYSTEM_RAM_PRV_START = SYSTEM_RAM_START; +} +else +{ + define symbol SYSTEM_RAM_PRV_START = 0; +} + +if (isdefinedsymbol(SYSTEM_RAM_LENGTH)) +{ + define symbol SYSTEM_RAM_PRV_LENGTH = SYSTEM_RAM_LENGTH; +} +else +{ + define symbol SYSTEM_RAM_PRV_LENGTH = 0; +} + +if (isdefinedsymbol(SYSTEM_RAM_MIRROR_START)) +{ + define symbol SYSTEM_RAM_MIRROR_PRV_START = SYSTEM_RAM_MIRROR_START; +} +else +{ + define symbol SYSTEM_RAM_MIRROR_PRV_START = 0; +} + +if (isdefinedsymbol(SYSTEM_RAM_MIRROR_LENGTH)) +{ + define symbol SYSTEM_RAM_MIRROR_PRV_LENGTH = SYSTEM_RAM_MIRROR_LENGTH; +} +else +{ + define symbol SYSTEM_RAM_MIRROR_PRV_LENGTH = 0; +} + +if (isdefinedsymbol(xSPI0_CS0_SPACE_MIRROR_START)) +{ + define symbol xSPI0_CS0_SPACE_MIRROR_PRV_START = xSPI0_CS0_SPACE_MIRROR_START; +} +else +{ + define symbol xSPI0_CS0_SPACE_MIRROR_PRV_START = 0; +} + +if (isdefinedsymbol(xSPI0_CS0_SPACE_MIRROR_LENGTH)) +{ + define symbol xSPI0_CS0_SPACE_MIRROR_PRV_LENGTH = xSPI0_CS0_SPACE_MIRROR_LENGTH; +} +else +{ + define symbol xSPI0_CS0_SPACE_MIRROR_PRV_LENGTH = 0; +} + +if (isdefinedsymbol(xSPI0_CS1_SPACE_MIRROR_START)) +{ + define symbol xSPI0_CS1_SPACE_MIRROR_PRV_START = xSPI0_CS1_SPACE_MIRROR_START; +} +else +{ + define symbol xSPI0_CS1_SPACE_MIRROR_PRV_START = 0; +} + +if (isdefinedsymbol(xSPI0_CS1_SPACE_MIRROR_LENGTH)) +{ + define symbol xSPI0_CS1_SPACE_MIRROR_PRV_LENGTH = xSPI0_CS1_SPACE_MIRROR_LENGTH; +} +else +{ + define symbol xSPI0_CS1_SPACE_MIRROR_PRV_LENGTH = 0; +} + +if (isdefinedsymbol(xSPI1_CS0_SPACE_MIRROR_START)) +{ + define symbol xSPI1_CS0_SPACE_MIRROR_PRV_START = xSPI1_CS0_SPACE_MIRROR_START; +} +else +{ + define symbol xSPI1_CS0_SPACE_MIRROR_PRV_START = 0; +} + +if (isdefinedsymbol(xSPI1_CS0_SPACE_MIRROR_LENGTH)) +{ + define symbol xSPI1_CS0_SPACE_MIRROR_PRV_LENGTH = xSPI1_CS0_SPACE_MIRROR_LENGTH; +} +else +{ + define symbol xSPI1_CS0_SPACE_MIRROR_PRV_LENGTH = 0; +} + +if (isdefinedsymbol(xSPI1_CS1_SPACE_MIRROR_START)) +{ + define symbol xSPI1_CS1_SPACE_MIRROR_PRV_START = xSPI1_CS1_SPACE_MIRROR_START; +} +else +{ + define symbol xSPI1_CS1_SPACE_MIRROR_PRV_START = 0; +} + +if (isdefinedsymbol(xSPI1_CS1_SPACE_MIRROR_LENGTH)) +{ + define symbol xSPI1_CS1_SPACE_MIRROR_PRV_LENGTH = xSPI1_CS1_SPACE_MIRROR_LENGTH; +} +else +{ + define symbol xSPI1_CS1_SPACE_MIRROR_PRV_LENGTH = 0; +} + +if (isdefinedsymbol(CS0_SPACE_MIRROR_START)) +{ + define symbol CS0_SPACE_MIRROR_PRV_START = CS0_SPACE_MIRROR_START; +} +else +{ + define symbol CS0_SPACE_MIRROR_PRV_START = 0; +} + +if (isdefinedsymbol(CS0_SPACE_MIRROR_LENGTH)) +{ + define symbol CS0_SPACE_MIRROR_PRV_LENGTH = CS0_SPACE_MIRROR_LENGTH; +} +else +{ + define symbol CS0_SPACE_MIRROR_PRV_LENGTH = 0; +} + +if (isdefinedsymbol(CS2_SPACE_MIRROR_START)) +{ + define symbol CS2_SPACE_MIRROR_PRV_START = CS2_SPACE_MIRROR_START; +} +else +{ + define symbol CS2_SPACE_MIRROR_PRV_START = 0; +} + +if (isdefinedsymbol(CS2_SPACE_MIRROR_LENGTH)) +{ + define symbol CS2_SPACE_MIRROR_PRV_LENGTH = CS2_SPACE_MIRROR_LENGTH; +} +else +{ + define symbol CS2_SPACE_MIRROR_PRV_LENGTH = 0; +} + + +if (isdefinedsymbol(CS3_SPACE_MIRROR_START)) +{ + define symbol CS3_SPACE_MIRROR_PRV_START = CS3_SPACE_MIRROR_START; +} +else +{ + define symbol CS3_SPACE_MIRROR_PRV_START = 0; +} + +if (isdefinedsymbol(CS3_SPACE_MIRROR_LENGTH)) +{ + define symbol CS3_SPACE_MIRROR_PRV_LENGTH = CS3_SPACE_MIRROR_LENGTH; +} +else +{ + define symbol CS3_SPACE_MIRROR_PRV_LENGTH = 0; +} + +if (isdefinedsymbol(CS5_SPACE_MIRROR_START)) +{ + define symbol CS5_SPACE_MIRROR_PRV_START = CS5_SPACE_MIRROR_START; +} +else +{ + define symbol CS5_SPACE_MIRROR_PRV_START = 0; +} + +if (isdefinedsymbol(CS5_SPACE_MIRROR_LENGTH)) +{ + define symbol CS5_SPACE_MIRROR_PRV_LENGTH = CS5_SPACE_MIRROR_LENGTH; +} +else +{ + define symbol CS5_SPACE_MIRROR_PRV_LENGTH = 0; +} + + +if (isdefinedsymbol(xSPI0_CS0_SPACE_START)) +{ + define symbol xSPI0_CS0_SPACE_PRV_START = xSPI0_CS0_SPACE_START; +} +else +{ + define symbol xSPI0_CS0_SPACE_PRV_START = 0; +} + +if (isdefinedsymbol(xSPI0_CS0_SPACE_LENGTH)) +{ + define symbol xSPI0_CS0_SPACE_PRV_LENGTH = xSPI0_CS0_SPACE_LENGTH; +} +else +{ + define symbol xSPI0_CS0_SPACE_PRV_LENGTH = 0; +} + +if (isdefinedsymbol(xSPI0_CS1_SPACE_START)) +{ + define symbol xSPI0_CS1_SPACE_PRV_START = xSPI0_CS1_SPACE_START; +} +else +{ + define symbol xSPI0_CS1_SPACE_PRV_START = 0; +} + +if (isdefinedsymbol(xSPI0_CS1_SPACE_LENGTH)) +{ + define symbol xSPI0_CS1_SPACE_PRV_LENGTH = xSPI0_CS1_SPACE_LENGTH; +} +else +{ + define symbol xSPI0_CS1_SPACE_PRV_LENGTH = 0; +} + +if (isdefinedsymbol(xSPI1_CS0_SPACE_START)) +{ + define symbol xSPI1_CS0_SPACE_PRV_START = xSPI1_CS0_SPACE_START; +} +else +{ + define symbol xSPI1_CS0_SPACE_PRV_START = 0; +} + +if (isdefinedsymbol(xSPI1_CS0_SPACE_LENGTH)) +{ + define symbol xSPI1_CS0_SPACE_PRV_LENGTH = xSPI1_CS0_SPACE_LENGTH; +} +else +{ + define symbol xSPI1_CS0_SPACE_PRV_LENGTH = 0; +} + +if (isdefinedsymbol(xSPI1_CS1_SPACE_START)) +{ + define symbol xSPI1_CS1_SPACE_PRV_START = xSPI1_CS1_SPACE_START; +} +else +{ + define symbol xSPI1_CS1_SPACE_PRV_START = 0; +} + +if (isdefinedsymbol(xSPI1_CS1_SPACE_LENGTH)) +{ + define symbol xSPI1_CS1_SPACE_PRV_LENGTH = xSPI1_CS1_SPACE_LENGTH; +} +else +{ + define symbol xSPI1_CS1_SPACE_PRV_LENGTH = 0; +} + +if (isdefinedsymbol(CS0_SPACE_START)) +{ + define symbol CS0_SPACE_PRV_START = CS0_SPACE_START; +} +else +{ + define symbol CS0_SPACE_PRV_START = 0; +} + +if (isdefinedsymbol(CS0_SPACE_LENGTH)) +{ + define symbol CS0_SPACE_PRV_LENGTH = CS0_SPACE_LENGTH; +} +else +{ + define symbol CS0_SPACE_PRV_LENGTH = 0; +} + +if (isdefinedsymbol(CS2_SPACE_START)) +{ + define symbol CS2_SPACE_PRV_START = CS2_SPACE_START; +} +else +{ + define symbol CS2_SPACE_PRV_START = 0; +} + +if (isdefinedsymbol(CS2_SPACE_LENGTH)) +{ + define symbol CS2_SPACE_PRV_LENGTH = CS2_SPACE_LENGTH; +} +else +{ + define symbol CS2_SPACE_PRV_LENGTH = 0; +} + +if (isdefinedsymbol(CS3_SPACE_START)) +{ + define symbol CS3_SPACE_PRV_START = CS3_SPACE_START; +} +else +{ + define symbol CS3_SPACE_PRV_START = 0; +} + +if (isdefinedsymbol(CS3_SPACE_LENGTH)) +{ + define symbol CS3_SPACE_PRV_LENGTH = CS3_SPACE_LENGTH; +} +else +{ + define symbol CS3_SPACE_PRV_LENGTH = 0; +} + +if (isdefinedsymbol(CS5_SPACE_START)) +{ + define symbol CS5_SPACE_PRV_START = CS5_SPACE_START; +} +else +{ + define symbol CS5_SPACE_PRV_START = 0; +} + +if (isdefinedsymbol(CS5_SPACE_LENGTH)) +{ + define symbol CS5_SPACE_PRV_LENGTH = CS5_SPACE_LENGTH; +} +else +{ + define symbol CS5_SPACE_PRV_LENGTH = 0; +} + +define symbol SYSTEM_RAM_END_OFFSET = 0x00048000; +define symbol FLASH_ADDRESS = xSPI0_CS0_SPACE_PRV_START; + +/* +define symbol INTVEC_ADDRESS = ATCM_PRV_START; +define symbol RAM_ADDRESS = (ATCM_PRV_START + 0x100); +define symbol RAM_END_ADDRESS = (ATCM_PRV_START + ATCM_PRV_LENGTH - 1); +define symbol LOADER_STACK_ADDRESS = (BTCM_PRV_START + 0x2000); +define symbol LOADER_STACK_END_ADDRESS = (BTCM_PRV_START + BTCM_PRV_LENGTH - 1); +define symbol DATA_NONCACHE_OFFSET = 0x00048000; +define symbol DATA_NONCACHE_END_OFFSET = 0x00044000; +define symbol DMAC_LINK_MODE_OFFSET = 0x00044000; +define symbol DMAC_LINK_MODE_END_OFFSET = 0x00040000; +define symbol NONCACHE_BUFFER_OFFSET = 0x00020000; +define symbol NONCACHE_BUFFER_END_OFFSET = 0; +*/ +/************* Override define symbol to place EtherCAT protocol into SystemRAM ************/ +define symbol INTVEC_ADDRESS = SYSTEM_RAM_PRV_START; +define symbol RAM_ADDRESS = (SYSTEM_RAM_PRV_START + 0x100); +define symbol RAM_END_ADDRESS = (SYSTEM_RAM_PRV_START + SYSTEM_RAM_PRV_LENGTH - 1); +define symbol LOADER_STACK_ADDRESS = (BTCM_PRV_START + 0x2000); +define symbol LOADER_STACK_END_ADDRESS = (BTCM_PRV_START + BTCM_PRV_LENGTH - 1); +define symbol DATA_NONCACHE_OFFSET = 0x00048000; +define symbol DATA_NONCACHE_END_OFFSET = 0x00044000; +define symbol DMAC_LINK_MODE_OFFSET = 0x00044000; +define symbol DMAC_LINK_MODE_END_OFFSET = 0x00040000; +define symbol NONCACHE_BUFFER_OFFSET = 0x00020000; +define symbol NONCACHE_BUFFER_END_OFFSET = 0; +/*********************************************************************************************/ + +/*###ICF### Section handled by ICF editor, don't touch! ****/ +/*-Editor annotation file-*/ +/* IcfEditorFile="$TOOLKIT_DIR$\config\ide\IcfEditor\a_v1_0.xml" */ +/*-Specials-*/ +define symbol __ICFEDIT_intvec_start__ = INTVEC_ADDRESS; +/*-Memory Regions-*/ +define symbol __ICFEDIT_region_ROM_start__ = FLASH_ADDRESS + 0x20100; +define symbol __ICFEDIT_region_ROM_end__ = FLASH_ADDRESS + 0x6FFFF; +define symbol __ICFEDIT_region_RAM_start__ = RAM_ADDRESS; +define symbol __ICFEDIT_region_RAM_end__ = RAM_END_ADDRESS; +/**** End of ICF editor section. ###ICF###*/ + +/*-Sizes-*/ +define symbol __ICFEDIT_size_cstack__ = 0x200; +/**** End of ICF editor section. ###ICF###*/ + +define memory mem with size = 4G; +define region ROM_region = mem:[from __ICFEDIT_region_ROM_start__ to __ICFEDIT_region_ROM_end__]; +define region RAM_region = mem:[from __ICFEDIT_region_RAM_start__ to __ICFEDIT_region_RAM_end__]; + +define block CSTACK with alignment = 8, size = __ICFEDIT_size_cstack__ { }; + +define symbol __region_D_LOADER_STACK_start__ = LOADER_STACK_ADDRESS; +define symbol __region_D_LOADER_STACK_end__ = LOADER_STACK_END_ADDRESS; + +define symbol __region_DATA_NONCACHE_start__ = SYSTEM_RAM_MIRROR_PRV_START + SYSTEM_RAM_MIRROR_PRV_LENGTH - DATA_NONCACHE_OFFSET; +define symbol __region_DATA_NONCACHE_end__ = SYSTEM_RAM_MIRROR_PRV_START + SYSTEM_RAM_MIRROR_PRV_LENGTH - DATA_NONCACHE_END_OFFSET - 1; +define symbol __region_DMAC_LINK_MODE_start__ = SYSTEM_RAM_MIRROR_PRV_START + SYSTEM_RAM_MIRROR_PRV_LENGTH - DMAC_LINK_MODE_OFFSET; +define symbol __region_DMAC_LINK_MODE_end__ = SYSTEM_RAM_MIRROR_PRV_START + SYSTEM_RAM_MIRROR_PRV_LENGTH - DMAC_LINK_MODE_END_OFFSET - 1; +define symbol __region_SHARED_NONCACHE_BUFFER_start__ = SYSTEM_RAM_MIRROR_PRV_START + SYSTEM_RAM_MIRROR_PRV_LENGTH - 0x00040000; +define symbol __region_SHARED_NONCACHE_BUFFER_end__ = SYSTEM_RAM_MIRROR_PRV_START + SYSTEM_RAM_MIRROR_PRV_LENGTH - 0x00020000 - 1; +define symbol __region_NONCACHE_BUFFER_start__ = SYSTEM_RAM_MIRROR_PRV_START + SYSTEM_RAM_MIRROR_PRV_LENGTH - NONCACHE_BUFFER_OFFSET; +define symbol __region_NONCACHE_BUFFER_end__ = SYSTEM_RAM_MIRROR_PRV_START + SYSTEM_RAM_MIRROR_PRV_LENGTH - NONCACHE_BUFFER_END_OFFSET - 1; + +define symbol __region_ATCM_start__ = ATCM_PRV_START; +define symbol __region_ATCM_end__ = ATCM_PRV_START + ATCM_PRV_LENGTH - 1; +define symbol __region_BTCM_start__ = BTCM_PRV_START; +define symbol __region_BTCM_end__ = BTCM_PRV_START + BTCM_PRV_LENGTH - 1; +define symbol __region_SYSTEM_RAM_start__ = SYSTEM_RAM_PRV_START; +define symbol __region_SYSTEM_RAM_end__ = SYSTEM_RAM_PRV_START + SYSTEM_RAM_PRV_LENGTH - SYSTEM_RAM_END_OFFSET - 1; +define symbol __region_SYSTEM_RAM_MIRROR_start__ = SYSTEM_RAM_MIRROR_PRV_START; +define symbol __region_SYSTEM_RAM_MIRROR_end__ = SYSTEM_RAM_MIRROR_PRV_START + SYSTEM_RAM_MIRROR_PRV_LENGTH - SYSTEM_RAM_END_OFFSET - 1; + +define symbol __region_XSPI0_CS0_MIRROR_start__ = xSPI0_CS0_SPACE_MIRROR_PRV_START; +define symbol __region_XSPI0_CS0_MIRROR_end__ = xSPI0_CS0_SPACE_MIRROR_PRV_START + xSPI0_CS0_SPACE_MIRROR_PRV_LENGTH - 1; +define symbol __region_XSPI0_CS1_MIRROR_start__ = xSPI0_CS1_SPACE_MIRROR_PRV_START; +define symbol __region_XSPI0_CS1_MIRROR_end__ = xSPI0_CS1_SPACE_MIRROR_PRV_START + xSPI0_CS1_SPACE_MIRROR_PRV_LENGTH - 1; +define symbol __region_XSPI1_CS0_MIRROR_start__ = xSPI1_CS0_SPACE_MIRROR_PRV_START; +define symbol __region_XSPI1_CS0_MIRROR_end__ = xSPI1_CS0_SPACE_MIRROR_PRV_START + xSPI1_CS0_SPACE_MIRROR_PRV_LENGTH - 1; +define symbol __region_XSPI1_CS1_MIRROR_start__ = xSPI1_CS1_SPACE_MIRROR_PRV_START; +define symbol __region_XSPI1_CS1_MIRROR_end__ = xSPI1_CS1_SPACE_MIRROR_PRV_START + xSPI1_CS1_SPACE_MIRROR_PRV_LENGTH - 1; +define symbol __region_CS0_MIRROR_start__ = CS0_SPACE_MIRROR_PRV_START; +define symbol __region_CS0_MIRROR_end__ = CS0_SPACE_MIRROR_PRV_START + CS0_SPACE_MIRROR_PRV_LENGTH - 1; +define symbol __region_CS2_MIRROR_start__ = CS2_SPACE_MIRROR_PRV_START; +define symbol __region_CS2_MIRROR_end__ = CS2_SPACE_MIRROR_PRV_START + CS2_SPACE_MIRROR_PRV_LENGTH - 1; +define symbol __region_CS3_MIRROR_start__ = CS3_SPACE_MIRROR_PRV_START; +define symbol __region_CS3_MIRROR_end__ = CS3_SPACE_MIRROR_PRV_START + CS3_SPACE_MIRROR_PRV_LENGTH - 1; +define symbol __region_CS5_MIRROR_start__ = CS5_SPACE_MIRROR_PRV_START; +define symbol __region_CS5_MIRROR_end__ = CS5_SPACE_MIRROR_PRV_START + CS5_SPACE_MIRROR_PRV_LENGTH - 1; +define symbol __region_XSPI0_CS0_start__ = xSPI0_CS0_SPACE_PRV_START; +define symbol __region_XSPI0_CS0_end__ = xSPI0_CS0_SPACE_PRV_START + xSPI0_CS0_SPACE_PRV_LENGTH - 1; +define symbol __region_XSPI0_CS1_start__ = xSPI0_CS1_SPACE_PRV_START; +define symbol __region_XSPI0_CS1_end__ = xSPI0_CS1_SPACE_PRV_START + xSPI0_CS1_SPACE_PRV_LENGTH - 1; +define symbol __region_XSPI1_CS0_start__ = xSPI1_CS0_SPACE_PRV_START; +define symbol __region_XSPI1_CS0_end__ = xSPI1_CS0_SPACE_PRV_START + xSPI1_CS0_SPACE_PRV_LENGTH - 1; +define symbol __region_XSPI1_CS1_start__ = xSPI1_CS1_SPACE_PRV_START; +define symbol __region_XSPI1_CS1_end__ = xSPI1_CS1_SPACE_PRV_START + xSPI1_CS1_SPACE_PRV_LENGTH - 1; +define symbol __region_CS0_start__ = CS0_SPACE_PRV_START; +define symbol __region_CS0_end__ = CS0_SPACE_PRV_START + CS0_SPACE_PRV_LENGTH - 1; +define symbol __region_CS2_start__ = CS2_SPACE_PRV_START; +define symbol __region_CS2_end__ = CS2_SPACE_PRV_START + CS2_SPACE_PRV_LENGTH - 1; +define symbol __region_CS3_start__ = CS3_SPACE_PRV_START; +define symbol __region_CS3_end__ = CS3_SPACE_PRV_START + CS3_SPACE_PRV_LENGTH - 1; +define symbol __region_CS5_start__ = CS5_SPACE_PRV_START; +define symbol __region_CS5_end__ = CS5_SPACE_PRV_START + CS5_SPACE_PRV_LENGTH - 1; + +/************** SPI boot mode setting **************/ +define symbol __region_LDR_PARAM_start__ = FLASH_ADDRESS; +define symbol __region_LDR_PARAM_end__ = FLASH_ADDRESS + 0x0000004B; +define symbol __region_S_LOADER_STACK_start__ = FLASH_ADDRESS + 0x0000004C; +define symbol __region_S_LOADER_STACK_end__ = FLASH_ADDRESS + 0x0000804B; + +define symbol __region_S_intvec_start__ = FLASH_ADDRESS + 0x20000; +define symbol __region_S_intvec_end__ = FLASH_ADDRESS + 0x200FF; +define symbol __region_S_RAM_start__ = FLASH_ADDRESS + 0x70000; +define symbol __region_S_RAM_end__ = FLASH_ADDRESS + 0x7FFFF; +/****************************************************/ + +define region D_LOADER_STACK_region = mem:[from __region_D_LOADER_STACK_start__ to __region_D_LOADER_STACK_end__]; + +define region LDR_PARAM_region = mem:[from __region_LDR_PARAM_start__ to __region_LDR_PARAM_end__]; +define region S_LOADER_STACK_region = mem:[from __region_S_LOADER_STACK_start__ to __region_S_LOADER_STACK_end__]; + +define region S_intvec_region = mem:[from __region_S_intvec_start__ to __region_S_intvec_end__]; +define region S_RAM_region = mem:[from __region_S_RAM_start__ to __region_S_RAM_end__]; + +define region DATA_NONCACHE_region = mem:[from __region_DATA_NONCACHE_start__ to __region_DATA_NONCACHE_end__]; +define region DMAC_LINK_MODE_region = mem:[from __region_DMAC_LINK_MODE_start__ to __region_DMAC_LINK_MODE_end__]; +define region SHARED_NONCACHE_BUFFER_region = mem:[from __region_SHARED_NONCACHE_BUFFER_start__ to __region_SHARED_NONCACHE_BUFFER_end__]; +define region NONCACHE_BUFFER_region = mem:[from __region_NONCACHE_BUFFER_start__ to __region_NONCACHE_BUFFER_end__]; + +define region ATCM_region = mem:[from __region_ATCM_start__ to __region_ATCM_end__ ]; +define region BTCM_region = mem:[from __region_BTCM_start__ to __region_BTCM_end__ ]; +define region SYSTEM_RAM_region = mem:[from __region_SYSTEM_RAM_start__ to __region_SYSTEM_RAM_end__ ]; +define region SYSTEM_RAM_MIRROR_region = mem:[from __region_SYSTEM_RAM_MIRROR_start__ to __region_SYSTEM_RAM_MIRROR_end__ ]; +define region XSPI0_CS0_MIRROR_region = mem:[from __region_XSPI0_CS0_MIRROR_start__ to __region_XSPI0_CS0_MIRROR_end__ ]; +define region XSPI0_CS1_MIRROR_region = mem:[from __region_XSPI0_CS1_MIRROR_start__ to __region_XSPI0_CS1_MIRROR_end__ ]; +define region XSPI1_CS0_MIRROR_region = mem:[from __region_XSPI1_CS0_MIRROR_start__ to __region_XSPI1_CS0_MIRROR_end__ ]; +define region XSPI1_CS1_MIRROR_region = mem:[from __region_XSPI1_CS1_MIRROR_start__ to __region_XSPI1_CS1_MIRROR_end__ ]; +define region CS0_MIRROR_region = mem:[from __region_CS0_MIRROR_start__ to __region_CS0_MIRROR_end__ ]; +define region CS2_MIRROR_region = mem:[from __region_CS2_MIRROR_start__ to __region_CS2_MIRROR_end__ ]; +define region CS3_MIRROR_region = mem:[from __region_CS3_MIRROR_start__ to __region_CS3_MIRROR_end__ ]; +define region CS5_MIRROR_region = mem:[from __region_CS5_MIRROR_start__ to __region_CS5_MIRROR_end__ ]; +define region XSPI0_CS0_region = mem:[from __region_XSPI0_CS0_start__ to __region_XSPI0_CS0_end__ ]; +define region XSPI0_CS1_region = mem:[from __region_XSPI0_CS1_start__ to __region_XSPI0_CS1_end__ ]; +define region XSPI1_CS0_region = mem:[from __region_XSPI1_CS0_start__ to __region_XSPI1_CS0_end__ ]; +define region XSPI1_CS1_region = mem:[from __region_XSPI1_CS1_start__ to __region_XSPI1_CS1_end__ ]; +define region CS0_region = mem:[from __region_CS0_start__ to __region_CS0_end__ ]; +define region CS2_region = mem:[from __region_CS2_start__ to __region_CS2_end__ ]; +define region CS3_region = mem:[from __region_CS3_start__ to __region_CS3_end__ ]; +define region CS5_region = mem:[from __region_CS5_start__ to __region_CS5_end__ ]; + +define block LDR_PRG_RBLOCK with fixed order + { ro code section .loader_text_init object startup_core.o, + ro code object startup_core.o, + ro code object system_core.o, + ro code object startup.o, + ro code object system.o, + ro code object bsp_clocks.o, + ro code object bsp_irq_core.o, + ro code object bsp_irq.o, + ro code object bsp_register_protection.o, + ro code object r_ioport.o, + ro code object bsp_cache.o, + ro code section .warm_start_init } + except { ro code section .intvec_init, + ro code section .reset_handler_init }; +define block LDR_PRG_WBLOCK with fixed order + { rw code section .loader_text object startup_core.o, + rw code object startup_core.o, + rw code object system_core.o, + rw code object startup.o, + rw code object system.o, + rw code object bsp_clocks.o, + rw code object bsp_irq_core.o, + rw code object bsp_irq.o, + rw code object bsp_register_protection.o, + rw code object r_ioport.o, + rw code object bsp_cache.o, + rw code section .warm_start } + except { rw code section .intvec, + rw code section .reset_handler }; +define block LDR_DATA_ZBLOCK with alignment = 4 + { section .bss object startup_core.o, + section .bss object system_core.o, + section .bss object startup.o, + section .bss object system.o, + section .bss object bsp_clocks.o, + section .bss object bsp_irq_core.o, + section .bss object bsp_irq.o, + section .bss object bsp_register_protection.o, + section .bss object r_ioport.o, + section .bss object bsp_cache.o, + section .bss object bsp_io.o }; +define block LDR_DATA_RBLOCK with fixed order, alignment = 4 + { section .data_init object startup_core.o, + section .data_init object system_core.o, + section .data_init object startup.o, + section .data_init object system.o, + section .data_init object bsp_clocks.o, + section .data_init object bsp_irq_core.o, + section .data_init object bsp_irq.o, + section .data_init object bsp_register_protection.o, + section .data_init object r_ioport.o, + section .data_init object bsp_cache.o, + section .rodata_init object system_core.o }; +define block LDR_DATA_WBLOCK with fixed order, alignment = 4 + { section .data object startup_core.o, + section .data object system_core.o, + section .data object startup.o, + section .data object system.o, + section .data object bsp_clocks.o, + section .data object bsp_irq_core.o, + section .data object bsp_irq.o, + section .data object bsp_register_protection.o, + section .data object r_ioport.o, + section .data object bsp_cache.o, + section .rodata object system_core.o }; + +define block HEAP_BLOCK with alignment = 8 { rw section HEAP }; +define block THREAD_STACK with alignment = 8 { rw section .stack* }; +define block SYS_STACK with alignment = 8 { rw section .sys_stack }; +define block SVC_STACK with alignment = 8 { rw section .svc_stack }; +define block IRQ_STACK with alignment = 8 { rw section .irq_stack }; +define block FIQ_STACK with alignment = 8 { rw section .fiq_stack }; +define block UND_STACK with alignment = 8 { rw section .und_stack }; +define block ABT_STACK with alignment = 8 { rw section .abt_stack }; + +define block VECTOR_RBLOCK with alignment = 32 { ro code section .intvec_init}; +define block VECTOR_WBLOCK with alignment = 32 { rw code section .intvec}; +define block USER_PRG_RBLOCK with alignment = 4 { ro code }; +define block USER_PRG_WBLOCK with alignment = 4 { rw code }; +define block USER_DATA_ZBLOCK with alignment = 4 { section .bss }; +define block USER_DATA_RBLOCK with fixed order, alignment = 4 + { section .data_init, + section __DLIB_PERTHREAD_init, + section .rodata_init, + section .version_init }; +define block USER_DATA_WBLOCK with fixed order, alignment = 4 + { section .data, + section __DLIB_PERTHREAD, + section .rodata, + section .version }; +define block USER_DATA_NONCACHE_RBLOCK with alignment = 4 { section .data_noncache_init }; +define block USER_DATA_NONCACHE_WBLOCK with alignment = 4 { section .data_noncache }; +define block DMAC_LINK_MODE_ZBLOCK with alignment = 4 { section .dmac_link_mode* }; +define block SHARED_NONCACHE_BUFFER_ZBLOCK with alignment = 32 { section .shared_noncache_buffer* }; +define block NONCACHE_BUFFER_ZBLOCK with alignment = 32 { section .noncache_buffer* }; + +initialize manually { ro code object startup_core.o, + ro code object system_core.o, + ro code object startup.o, + ro code object system.o, + ro code object bsp_clocks.o, + ro code object bsp_irq_core.o, + ro code object bsp_irq.o, + ro code object bsp_register_protection.o, + ro code object r_ioport.o, + ro code object bsp_cache.o, + ro code section .intvec, + ro code section .reset_handler, + ro code section .warm_start, + ro code, + section .data, + section __DLIB_PERTHREAD, + section .rodata, + section .version, + section .data_noncache }; + +do not initialize { section .noinit, + section .bss, + section .dmac_link_mode*, + section .shared_noncache_buffer*, + section .noncache_buffer*, + rw section HEAP, + rw section .stack*, + rw section .sys_stack, + rw section .svc_stack, + rw section .irq_stack, + rw section .fiq_stack, + rw section .und_stack, + rw section .abt_stack }; + +place at address mem: __ICFEDIT_intvec_start__ { block VECTOR_WBLOCK }; + +place in LDR_PARAM_region { readonly section .loader_param }; +place at start of S_LOADER_STACK_region { block LDR_PRG_RBLOCK }; +place in S_LOADER_STACK_region { section LDR_DATA_RBLOCK, block LDR_DATA_RBLOCK }; +place in S_intvec_region { block VECTOR_RBLOCK }; +place in ROM_region { block USER_PRG_RBLOCK, readonly }; +place in S_RAM_region { block USER_DATA_RBLOCK, block USER_DATA_NONCACHE_RBLOCK }; + +place at start of D_LOADER_STACK_region { block LDR_PRG_WBLOCK }; +place in D_LOADER_STACK_region { section LDR_DATA_WBLOCK, block LDR_DATA_WBLOCK, + section LDR_DATA_ZBLOCK, block LDR_DATA_ZBLOCK }; +place in D_LOADER_STACK_region { section SYS_STACK, block SYS_STACK, + section SVC_STACK, block SVC_STACK, + section IRQ_STACK, block IRQ_STACK, + section FIQ_STACK, block FIQ_STACK, + section UND_STACK, block UND_STACK, + section ABT_STACK, block ABT_STACK }; +place in RAM_region { block USER_PRG_WBLOCK }; +place in RAM_region { readwrite, last block CSTACK }; +place in RAM_region { block USER_DATA_WBLOCK, + block USER_DATA_ZBLOCK }; +place in RAM_region { section HEAP_BLOCK, block HEAP_BLOCK, + section THREAD_STACK, block THREAD_STACK }; + +place in DATA_NONCACHE_region { block USER_DATA_NONCACHE_WBLOCK }; +place in DMAC_LINK_MODE_region { block DMAC_LINK_MODE_ZBLOCK }; +place in SHARED_NONCACHE_BUFFER_region { block SHARED_NONCACHE_BUFFER_ZBLOCK }; +place in NONCACHE_BUFFER_region { block NONCACHE_BUFFER_ZBLOCK }; +place in ATCM_region { }; +place in BTCM_region { }; +place in SYSTEM_RAM_region { }; +place in SYSTEM_RAM_MIRROR_region { }; +place in XSPI0_CS0_MIRROR_region { }; +place in XSPI0_CS1_MIRROR_region { }; +place in XSPI1_CS0_MIRROR_region { }; +place in XSPI1_CS1_MIRROR_region { }; +place in CS0_MIRROR_region { }; +place in CS2_MIRROR_region { }; +place in CS3_MIRROR_region { }; +place in CS5_MIRROR_region { }; +place in XSPI0_CS0_region { }; +place in XSPI0_CS1_region { }; +place in XSPI1_CS0_region { }; +place in XSPI1_CS1_region { }; +place in CS0_region { }; +place in CS2_region { }; +place in CS3_region { }; +place in CS5_region { }; diff --git a/bsp/renesas/rzn2l_rsk/script/memory_regions.ld b/bsp/renesas/rzn2l_rsk/script/memory_regions.ld new file mode 100644 index 0000000000..227ab3ebb1 --- /dev/null +++ b/bsp/renesas/rzn2l_rsk/script/memory_regions.ld @@ -0,0 +1,38 @@ + + /* generated memory regions file - do not edit */ + ATCM_START = 0x00000000; + ATCM_LENGTH = 0x20000; + BTCM_START = 0x00100000; + BTCM_LENGTH = 0x20000; + SYSTEM_RAM_START = 0x10000000; + SYSTEM_RAM_LENGTH = 0x180000; + SYSTEM_RAM_MIRROR_START = 0x30000000; + SYSTEM_RAM_MIRROR_LENGTH = 0x180000; + xSPI0_CS0_SPACE_MIRROR_START = 0x40000000; + xSPI0_CS0_SPACE_MIRROR_LENGTH = 0x4000000; + xSPI0_CS1_SPACE_MIRROR_START = 0x44000000; + xSPI0_CS1_SPACE_MIRROR_LENGTH = 0x4000000; + xSPI1_CS0_SPACE_MIRROR_START = 0x48000000; + xSPI1_CS0_SPACE_MIRROR_LENGTH = 0x4000000; + CS0_SPACE_MIRROR_START = 0x50000000; + CS0_SPACE_MIRROR_LENGTH = 0x4000000; + CS2_SPACE_MIRROR_START = 0x54000000; + CS2_SPACE_MIRROR_LENGTH = 0x4000000; + CS3_SPACE_MIRROR_START = 0x58000000; + CS3_SPACE_MIRROR_LENGTH = 0x4000000; + CS5_SPACE_MIRROR_START = 0x5C000000; + CS5_SPACE_MIRROR_LENGTH = 0x4000000; + xSPI0_CS0_SPACE_START = 0x60000000; + xSPI0_CS0_SPACE_LENGTH = 0x4000000; + xSPI0_CS1_SPACE_START = 0x64000000; + xSPI0_CS1_SPACE_LENGTH = 0x4000000; + xSPI1_CS0_SPACE_START = 0x68000000; + xSPI1_CS0_SPACE_LENGTH = 0x4000000; + CS0_SPACE_START = 0x70000000; + CS0_SPACE_LENGTH = 0x4000000; + CS2_SPACE_START = 0x74000000; + CS2_SPACE_LENGTH = 0x4000000; + CS3_SPACE_START = 0x78000000; + CS3_SPACE_LENGTH = 0x4000000; + CS5_SPACE_START = 0x7C000000; + CS5_SPACE_LENGTH = 0x4000000; diff --git a/bsp/renesas/rzn2l_rsk/src/hal_entry.c b/bsp/renesas/rzn2l_rsk/src/hal_entry.c new file mode 100644 index 0000000000..416d9f8702 --- /dev/null +++ b/bsp/renesas/rzn2l_rsk/src/hal_entry.c @@ -0,0 +1,32 @@ +/* + * Copyright (c) 2006-2023, RT-Thread Development Team + * + * SPDX-License-Identifier: Apache-2.0 + * + * Change Logs: + * Date Author Notes + * 2024-03-11 Wangyuqiang first version + */ + +#include +#include "hal_data.h" +#include +#include + +#define LED_PIN BSP_IO_PORT_18_PIN_2 /* Onboard LED pins */ + +void hal_entry(void) +{ + rt_kprintf("\nHello RT-Thread!\n"); + rt_kprintf("==================================================\n"); + rt_kprintf("This is a iar project which mode is xspi0 execution!\n"); + rt_kprintf("==================================================\n"); + + while (1) + { + rt_pin_write(LED_PIN, PIN_HIGH); + rt_thread_mdelay(500); + rt_pin_write(LED_PIN, PIN_LOW); + rt_thread_mdelay(500); + } +} diff --git a/bsp/renesas/rzn2l_rsk/template.ewd b/bsp/renesas/rzn2l_rsk/template.ewd new file mode 100644 index 0000000000..f1b2111930 --- /dev/null +++ b/bsp/renesas/rzn2l_rsk/template.ewd @@ -0,0 +1,3276 @@ + + + 4 + + Debug + + ARM + + 1 + + C-SPY + 2 + + 33 + 1 + 1 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + ARMSIM_ID + 2 + + 1 + 1 + 1 + + + + + + + + CADI_ID + 2 + + 0 + 1 + 1 + + + + + + + + + CMSISDAP_ID + 2 + + 4 + 1 + 1 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + E2_ID + 2 + + 0 + 1 + 1 + + + + + + + + + + GDBSERVER_ID + 2 + + 0 + 1 + 1 + + + + + + + + + + + GPLINK_ID + 2 + + 0 + 1 + 1 + + + + + + + IJET_ID + 2 + + 9 + 1 + 1 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + JLINK_ID + 2 + + 16 + 1 + 1 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + LMIFTDI_ID + 2 + + 3 + 1 + 1 + + + + + + + + + + + + + NULINK_ID + 2 + + 0 + 1 + 1 + + + + + + + PEMICRO_ID + 2 + + 3 + 1 + 1 + + + + + + + + STLINK_ID + 2 + + 8 + 1 + 1 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + THIRDPARTY_ID + 2 + + 0 + 1 + 1 + + + + + + + + TIFET_ID + 2 + + 1 + 1 + 1 + + + + + + + + + + + + + + + + + + + XDS100_ID + 2 + + 9 + 1 + 1 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + $TOOLKIT_DIR$\plugins\rtos\Azure\AzureArmPlugin.ENU.ewplugin + 0 + + + $TOOLKIT_DIR$\plugins\rtos\CMX\CmxArmPlugin.ENU.ewplugin + 0 + + + $TOOLKIT_DIR$\plugins\rtos\CMX\CmxTinyArmPlugin.ENU.ewplugin + 0 + + + $TOOLKIT_DIR$\plugins\rtos\embOS\embOSPlugin.ewplugin + 0 + + + $TOOLKIT_DIR$\plugins\rtos\FreeRtos\FreeRtosArmPlugin.ENU.ewplugin + 0 + + + $TOOLKIT_DIR$\plugins\rtos\Mbed\MbedArmPlugin.ENU.ewplugin + 0 + + + $TOOLKIT_DIR$\plugins\rtos\Mbed\MbedArmPlugin2.ENU.ewplugin + 0 + + + $TOOLKIT_DIR$\plugins\rtos\OpenRTOS\OpenRTOSPlugin.ewplugin + 0 + + + $TOOLKIT_DIR$\plugins\rtos\SafeRTOS\SafeRTOSPlugin.ewplugin + 0 + + + $TOOLKIT_DIR$\plugins\rtos\SMX\smxAwareIarArm9a.ewplugin + 0 + + + $TOOLKIT_DIR$\plugins\rtos\ThreadX\ThreadXArmPlugin.ENU.ewplugin + 0 + + + $TOOLKIT_DIR$\plugins\rtos\uCOS-II\uCOS-II-286-KA-CSpy.ewplugin + 0 + + + $TOOLKIT_DIR$\plugins\rtos\uCOS-II\uCOS-II-KA-CSpy.ewplugin + 0 + + + $TOOLKIT_DIR$\plugins\rtos\uCOS-III\uCOS-III-KA-CSpy.ewplugin + 0 + + + $EW_DIR$\common\plugins\Orti\Orti.ENU.ewplugin + 0 + + + $EW_DIR$\common\plugins\TargetAccessServer\TargetAccessServer.ENU.ewplugin + 0 + + + $EW_DIR$\common\plugins\uCProbe\uCProbePlugin.ENU.ewplugin + 0 + + + + + Release + + ARM + + 0 + + C-SPY + 2 + + 33 + 1 + 0 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + ARMSIM_ID + 2 + + 1 + 1 + 0 + + + + + + + + CADI_ID + 2 + + 0 + 1 + 0 + + + + + + + + + CMSISDAP_ID + 2 + + 4 + 1 + 0 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + E2_ID + 2 + + 0 + 1 + 0 + + + + + + + + + + GDBSERVER_ID + 2 + + 0 + 1 + 0 + + + + + + + + + + + GPLINK_ID + 2 + + 0 + 1 + 0 + + + + + + + IJET_ID + 2 + + 9 + 1 + 0 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + JLINK_ID + 2 + + 16 + 1 + 0 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + LMIFTDI_ID + 2 + + 3 + 1 + 0 + + + + + + + + + + + + + NULINK_ID + 2 + + 0 + 1 + 0 + + + + + + + PEMICRO_ID + 2 + + 3 + 1 + 0 + + + + + + + + STLINK_ID + 2 + + 8 + 1 + 0 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + THIRDPARTY_ID + 2 + + 0 + 1 + 0 + + + + + + + + TIFET_ID + 2 + + 1 + 1 + 0 + + + + + + + + + + + + + + + + + + + XDS100_ID + 2 + + 9 + 1 + 0 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + $TOOLKIT_DIR$\plugins\rtos\Azure\AzureArmPlugin.ENU.ewplugin + 0 + + + $TOOLKIT_DIR$\plugins\rtos\CMX\CmxArmPlugin.ENU.ewplugin + 0 + + + $TOOLKIT_DIR$\plugins\rtos\CMX\CmxTinyArmPlugin.ENU.ewplugin + 0 + + + $TOOLKIT_DIR$\plugins\rtos\embOS\embOSPlugin.ewplugin + 0 + + + $TOOLKIT_DIR$\plugins\rtos\FreeRtos\FreeRtosArmPlugin.ENU.ewplugin + 0 + + + $TOOLKIT_DIR$\plugins\rtos\Mbed\MbedArmPlugin.ENU.ewplugin + 0 + + + $TOOLKIT_DIR$\plugins\rtos\Mbed\MbedArmPlugin2.ENU.ewplugin + 0 + + + $TOOLKIT_DIR$\plugins\rtos\OpenRTOS\OpenRTOSPlugin.ewplugin + 0 + + + $TOOLKIT_DIR$\plugins\rtos\SafeRTOS\SafeRTOSPlugin.ewplugin + 0 + + + $TOOLKIT_DIR$\plugins\rtos\SMX\smxAwareIarArm9a.ewplugin + 0 + + + $TOOLKIT_DIR$\plugins\rtos\ThreadX\ThreadXArmPlugin.ENU.ewplugin + 0 + + + $TOOLKIT_DIR$\plugins\rtos\uCOS-II\uCOS-II-286-KA-CSpy.ewplugin + 0 + + + $TOOLKIT_DIR$\plugins\rtos\uCOS-II\uCOS-II-KA-CSpy.ewplugin + 0 + + + $TOOLKIT_DIR$\plugins\rtos\uCOS-III\uCOS-III-KA-CSpy.ewplugin + 0 + + + $EW_DIR$\common\plugins\Orti\Orti.ENU.ewplugin + 0 + + + $EW_DIR$\common\plugins\TargetAccessServer\TargetAccessServer.ENU.ewplugin + 0 + + + $EW_DIR$\common\plugins\uCProbe\uCProbePlugin.ENU.ewplugin + 0 + + + + diff --git a/bsp/renesas/rzn2l_rsk/template.ewp b/bsp/renesas/rzn2l_rsk/template.ewp new file mode 100644 index 0000000000..839155dd14 --- /dev/null +++ b/bsp/renesas/rzn2l_rsk/template.ewp @@ -0,0 +1,2616 @@ + + + 4 + + Debug + + ARM + + 1 + + General + 3 + + 36 + 1 + 1 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + ICCARM + 2 + + 38 + 1 + 1 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + AARM + 2 + + 12 + 1 + 1 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + OBJCOPY + 0 + + 1 + 1 + 1 + + + + + + + + + CUSTOM + 3 + + + + 1 + inputOutputBased + + + + ILINK + 0 + + 27 + 1 + 1 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + IARCHIVE + 0 + + 0 + 1 + 1 + + + + + + + BUILDACTION + 2 + + + + + Release + + ARM + + 0 + + General + 3 + + 36 + 1 + 0 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + ICCARM + 2 + + 38 + 1 + 0 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + AARM + 2 + + 12 + 1 + 0 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + OBJCOPY + 0 + + 1 + 1 + 0 + + + + + + + + + CUSTOM + 3 + + + + 0 + inputOutputBased + + + + ILINK + 0 + + 27 + 1 + 0 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + IARCHIVE + 0 + + 0 + 1 + 0 + + + + + + + BUILDACTION + 2 + + + + cmd /c ""$RASC_EXE_PATH$" -nosplash --launcher.suppressErrors --generate --compiler IAR --devicefamily rzn "$PROJ_DIR$\configuration.xml" 2> "%TEMP%\rasc_stderr.out"" + $PROJ_DIR$ + preCompile + + + $BUILD_FILES_DIR$/.prebuild + + + + + cmd /c ""$RASC_EXE_PATH$" -nosplash --launcher.suppressErrors --gensmartbundle --compiler IAR --devicefamily rzn "$PROJ_DIR$\configuration.xml" "$TARGET_PATH$" 2> "%TEMP%\rasc_stderr.out"" && echo > "$BUILD_FILES_DIR$/.postbuild" + $PROJ_DIR$ + postLink + + + $BUILD_FILES_DIR$/.postbuild + + + + + + + + + Flex Software + + Build Configuration + + $PROJ_DIR$\rzn_cfg\fsp_cfg\bsp\board_cfg.h + + + $PROJ_DIR$\rzn_cfg\fsp_cfg\bsp\bsp_cfg.h + + + $PROJ_DIR$\rzn_cfg\fsp_cfg\bsp\bsp_mcu_device_cfg.h + + + $PROJ_DIR$\rzn_cfg\fsp_cfg\bsp\bsp_mcu_device_memory_cfg.h + + + $PROJ_DIR$\rzn_cfg\fsp_cfg\bsp\bsp_mcu_device_pn_cfg.h + + + $PROJ_DIR$\rzn_cfg\fsp_cfg\bsp\bsp_mcu_family_cfg.h + + + $PROJ_DIR$\rzn_cfg\fsp_cfg\bsp\bsp_memory_cfg.h + + + $PROJ_DIR$\rzn_cfg\fsp_cfg\bsp\bsp_pin_cfg.h + + + $PROJ_DIR$\rzn_cfg\fsp_cfg\r_cmt_cfg.h + + + $PROJ_DIR$\rzn_cfg\fsp_cfg\r_ether_cfg.h + + + $PROJ_DIR$\rzn_cfg\fsp_cfg\r_ether_phy_cfg.h + + + $PROJ_DIR$\rzn_cfg\fsp_cfg\r_ether_selector_cfg.h + + + $PROJ_DIR$\rzn_cfg\fsp_cfg\r_ether_switch_cfg.h + + + $PROJ_DIR$\rzn_cfg\fsp_cfg\r_ioport_cfg.h + + + $PROJ_DIR$\rzn_cfg\fsp_cfg\r_sci_uart_cfg.h + + + $PROJ_DIR$\rzn_cfg\fsp_cfg\rm_ethercat_ssc_port_cfg.h + + + + Components + + $PROJ_DIR$\rzn\board\rzn2l_rsk\board.h + + + $PROJ_DIR$\rzn\board\rzn2l_rsk\board_ethernet_phy.h + + + $PROJ_DIR$\rzn\board\rzn2l_rsk\board_init.c + + + $PROJ_DIR$\rzn\board\rzn2l_rsk\board_init.h + + + $PROJ_DIR$\rzn\board\rzn2l_rsk\board_leds.c + + + $PROJ_DIR$\rzn\board\rzn2l_rsk\board_leds.h + + + $PROJ_DIR$\rzn\fsp\inc\api\bsp_api.h + + + $PROJ_DIR$\rzn\fsp\src\bsp\mcu\all\bsp_cache.c + + + $PROJ_DIR$\rzn\fsp\src\bsp\mcu\all\bsp_cache.h + + + $PROJ_DIR$\rzn\fsp\src\bsp\mcu\all\cr\bsp_cache_core.c + + + $PROJ_DIR$\rzn\fsp\src\bsp\mcu\all\cr\bsp_cache_core.h + + + $PROJ_DIR$\rzn\fsp\src\bsp\mcu\all\bsp_clocks.c + + + $PROJ_DIR$\rzn\fsp\src\bsp\mcu\all\bsp_clocks.h + + + $PROJ_DIR$\rzn\fsp\src\bsp\mcu\all\bsp_common.c + + + $PROJ_DIR$\rzn\fsp\src\bsp\mcu\all\bsp_common.h + + + $PROJ_DIR$\rzn\fsp\src\bsp\mcu\all\bsp_compiler_support.h + + + $PROJ_DIR$\rzn\fsp\src\bsp\mcu\all\bsp_delay.c + + + $PROJ_DIR$\rzn\fsp\src\bsp\mcu\all\bsp_delay.h + + + $PROJ_DIR$\rzn\fsp\src\bsp\mcu\all\cr\bsp_delay_core.c + + + $PROJ_DIR$\rzn\fsp\src\bsp\mcu\all\cr\bsp_delay_core.h + + + $PROJ_DIR$\rzn\fsp\src\bsp\mcu\rzn2l\bsp_elc.h + + + $PROJ_DIR$\rzn\fsp\src\bsp\mcu\all\bsp_exceptions.h + + + $PROJ_DIR$\rzn\fsp\src\bsp\mcu\rzn2l\bsp_feature.h + + + $PROJ_DIR$\rzn\fsp\src\bsp\mcu\all\bsp_io.c + + + $PROJ_DIR$\rzn\fsp\src\bsp\mcu\all\bsp_io.h + + + $PROJ_DIR$\rzn\fsp\src\bsp\mcu\all\bsp_irq.c + + + $PROJ_DIR$\rzn\fsp\src\bsp\mcu\all\bsp_irq.h + + + $PROJ_DIR$\rzn\fsp\src\bsp\mcu\all\cr\bsp_irq_core.c + + + $PROJ_DIR$\rzn\fsp\src\bsp\mcu\all\cr\bsp_irq_core.h + + + $PROJ_DIR$\rzn\fsp\src\bsp\mcu\rzn2l\bsp_irq_sense.c + + + $PROJ_DIR$\rzn\fsp\src\bsp\mcu\rzn2l\bsp_loader_param.c + + + $PROJ_DIR$\rzn\fsp\src\bsp\mcu\all\bsp_mcu_api.h + + + $PROJ_DIR$\rzn\fsp\src\bsp\mcu\rzn2l\bsp_mcu_info.h + + + $PROJ_DIR$\rzn\fsp\src\bsp\mcu\all\bsp_module_stop.h + + + $PROJ_DIR$\rzn\fsp\src\bsp\mcu\rzn2l\bsp_override.h + + + $PROJ_DIR$\rzn\fsp\src\bsp\mcu\all\bsp_register_protection.c + + + $PROJ_DIR$\rzn\fsp\src\bsp\mcu\all\bsp_register_protection.h + + + $PROJ_DIR$\rzn\fsp\src\bsp\mcu\all\bsp_reset.c + + + $PROJ_DIR$\rzn\fsp\src\bsp\mcu\all\bsp_reset.h + + + $PROJ_DIR$\rzn\fsp\src\bsp\mcu\all\bsp_sbrk.c + + + $PROJ_DIR$\rzn\fsp\src\bsp\mcu\all\bsp_tfu.h + + + $PROJ_DIR$\rzn\arm\CMSIS_5\CMSIS\Core_R\Include\cmsis_compiler.h + + + $PROJ_DIR$\rzn\arm\CMSIS_5\CMSIS\Core_R\Include\cmsis_cp15.h + + + $PROJ_DIR$\rzn\arm\CMSIS_5\CMSIS\Core_R\Include\cmsis_gcc.h + + + $PROJ_DIR$\rzn\arm\CMSIS_5\CMSIS\Core_R\Include\cmsis_iccarm.h + + + $PROJ_DIR$\rzn\arm\CMSIS_5\CMSIS\Core_R\Include\cmsis_version.h + + + $PROJ_DIR$\rzn\arm\CMSIS_5\CMSIS\Core_R\Include\core_cr52.h + + + $PROJ_DIR$\rzn\fsp\inc\fsp_common_api.h + + + $PROJ_DIR$\rzn\fsp\inc\fsp_features.h + + + $PROJ_DIR$\rzn\fsp\inc\fsp_version.h + + + $PROJ_DIR$\rzn\arm\CMSIS_5\LICENSE.txt + + + $PROJ_DIR$\rzn\fsp\src\bsp\cmsis\Device\RENESAS\Include\R9A07G084.h + + + $PROJ_DIR$\rzn\fsp\src\r_cmt\r_cmt.c + + + $PROJ_DIR$\rzn\fsp\inc\instances\r_cmt.h + + + $PROJ_DIR$\rzn\fsp\inc\api\r_ether_api.h + + + $PROJ_DIR$\rzn\fsp\src\r_ether_phy\r_ether_phy.c + + + $PROJ_DIR$\rzn\fsp\inc\instances\r_ether_phy.h + + + $PROJ_DIR$\rzn\fsp\inc\api\r_ether_phy_api.h + + + $PROJ_DIR$\rzn\fsp\src\r_ether_selector\r_ether_selector.c + + + $PROJ_DIR$\rzn\fsp\inc\instances\r_ether_selector.h + + + $PROJ_DIR$\rzn\fsp\inc\api\r_ether_selector_api.h + + + $PROJ_DIR$\rzn\fsp\inc\api\r_ether_switch_api.h + + + $PROJ_DIR$\rzn\fsp\src\r_ethsw\r_ethsw.c + + + $PROJ_DIR$\rzn\fsp\inc\instances\r_ethsw.h + + + $PROJ_DIR$\rzn\fsp\src\r_gmac\r_gmac.c + + + $PROJ_DIR$\rzn\fsp\inc\instances\r_gmac.h + + + $PROJ_DIR$\rzn\fsp\src\r_ioport\r_ioport.c + + + $PROJ_DIR$\rzn\fsp\inc\instances\r_ioport.h + + + $PROJ_DIR$\rzn\fsp\inc\api\r_ioport_api.h + + + $PROJ_DIR$\rzn\fsp\src\r_sci_uart\r_sci_uart.c + + + $PROJ_DIR$\rzn\fsp\inc\instances\r_sci_uart.h + + + $PROJ_DIR$\rzn\fsp\inc\api\r_timer_api.h + + + $PROJ_DIR$\rzn\fsp\inc\api\r_transfer_api.h + + + $PROJ_DIR$\rzn\fsp\inc\api\r_uart_api.h + + + $PROJ_DIR$\rzn\fsp\src\bsp\cmsis\Device\RENESAS\Include\renesas.h + + + $PROJ_DIR$\rzn\fsp\src\rm_ethercat_ssc_port\renesashw.h + + + $PROJ_DIR$\rzn\fsp\src\rm_ethercat_ssc_port\rm_ethercat_ssc_port.c + + + $PROJ_DIR$\rzn\fsp\inc\instances\rm_ethercat_ssc_port.h + + + $PROJ_DIR$\rzn\fsp\inc\api\rm_ethercat_ssc_port_api.h + + + $PROJ_DIR$\rzn\fsp\src\bsp\cmsis\Device\RENESAS\Source\startup.c + + + $PROJ_DIR$\rzn\fsp\src\bsp\cmsis\Device\RENESAS\Source\cr\startup_core.c + + + $PROJ_DIR$\rzn\fsp\src\bsp\cmsis\Device\RENESAS\Source\system.c + + + $PROJ_DIR$\rzn\fsp\src\bsp\cmsis\Device\RENESAS\Include\system.h + + + $PROJ_DIR$\rzn\fsp\src\bsp\cmsis\Device\RENESAS\Source\cr\system_core.c + + + + Generated Data + + $PROJ_DIR$\rzn_gen\bsp_clock_cfg.h + + + $PROJ_DIR$\rzn_gen\common_data.c + + + $PROJ_DIR$\rzn_gen\common_data.h + + + $PROJ_DIR$\rzn_gen\hal_data.c + + + $PROJ_DIR$\rzn_gen\hal_data.h + + + $PROJ_DIR$\rzn_gen\main.c + + + $PROJ_DIR$\rzn_gen\pin_data.c + + + $PROJ_DIR$\rzn_gen\vector_data.c + + + $PROJ_DIR$\rzn_gen\vector_data.h + + + + Program Entry + + $PROJ_DIR$\src\hal_entry.c + + + + + $PROJ_DIR$\buildinfo.ipcf + IAR.ControlFile + + diff --git a/bsp/renesas/rzn2l_rsk/template.eww b/bsp/renesas/rzn2l_rsk/template.eww new file mode 100644 index 0000000000..53e2ec6f09 --- /dev/null +++ b/bsp/renesas/rzn2l_rsk/template.eww @@ -0,0 +1,7 @@ + + + + $WS_DIR$\template.ewp + + +