nRF WiFi
Loading...
Searching...
No Matches
rpu_if.h File Reference

Common structures and definitions for RPU interface. More...

#include "pack_def.h"

Go to the source code of this file.

Data Structures

struct  rpu_addr_region
 Address limits of each MCU local memory region. More...
 
struct  rpu_addr_map
 Address map of the MCU memory. More...
 
struct  rpu_mcu_boot_vector
 Boot vector definition for a MCU in nRF70. More...
 
struct  rpu_mcu_boot_vectors
 Boot vectors for the MCUs in nRF70. More...
 
struct  host_rpu_rx_buf_info
 RX buffer related information to be passed to nRF70. More...
 
struct  host_rpu_hpq
 Hostport Queue (HPQ) information. More...
 
struct  host_rpu_hpqm_info
 Information about Hostport Queues (HPQ) to be used for exchanging information between the Host and RPU. More...
 
struct  host_rpu_msg_hdr
 Common header included in each command/event. This structure encapsulates the common information included at the start of each command/event exchanged with the RPU. More...
 

Macros

#define RPU_ADDR_GRAM_START   0xB7000000
 
#define RPU_ADDR_GRAM_END   0xB70101FF
 
#define RPU_ADDR_SBUS_START   0xA4000000
 
#define RPU_ADDR_SBUS_END   0xA4007FFF
 
#define RPU_ADDR_PBUS_START   0xA5000000
 
#define RPU_ADDR_PBUS_END   0xA503FFFF
 
#define RPU_ADDR_BEV_START   0xBFC00000
 
#define RPU_ADDR_BEV_END   0xBFCFFFFF
 
#define RPU_ADDR_PKTRAM_START   0xB0000000
 
#define RPU_ADDR_PKTRAM_END   0xB0030FFF
 
#define RPU_ADDR_LMAC_CORE_RET_START   0x80040000
 
#define RPU_ADDR_UMAC_CORE_RET_START   0x80080000
 
#define RPU_MCU_MAX_BOOT_VECTORS   4
 
#define RPU_ADDR_MASK_BASE   0xFF000000
 
#define RPU_ADDR_MASK_OFFSET   0x00FFFFFF
 
#define RPU_ADDR_MASK_BEV_OFFSET   0x000FFFFF
 
#define RPU_REG_INT_FROM_RPU_CTRL   0xA4000400
 
#define RPU_REG_BIT_INT_FROM_RPU_CTRL   17
 
#define RPU_REG_INT_TO_MCU_CTRL   0xA4000480
 
#define RPU_REG_INT_FROM_MCU_ACK   0xA4000488
 
#define RPU_REG_BIT_INT_FROM_MCU_ACK   31
 
#define RPU_REG_INT_FROM_MCU_CTRL   0xA4000494
 
#define RPU_REG_BIT_INT_FROM_MCU_CTRL   31
 
#define RPU_REG_UCC_SLEEP_CTRL_DATA_0   0xA4002C2C
 
#define RPU_REG_UCC_SLEEP_CTRL_DATA_1   0xA4002C30
 
#define RPU_REG_MIPS_MCU_CONTROL   0xA4000000
 
#define RPU_REG_MIPS_MCU2_CONTROL   0xA4000100
 
#define RPU_REG_MIPS_MCU_UCCP_INT_STATUS   0xA4000004
 
#define RPU_REG_BIT_MIPS_WATCHDOG_INT_STATUS   1
 
#define RPU_REG_MIPS_MCU_TIMER   0xA400004C /* 24 bit timer@core clock ticks*/
 
#define RPU_REG_MIPS_MCU_TIMER_RESET_VAL   0xFFFFFF
 
#define RPU_REG_MIPS_MCU_UCCP_INT_CLEAR   0xA400000C
 
#define RPU_REG_BIT_MIPS_WATCHDOG_INT_CLEAR   1
 
#define RPU_REG_MIPS_MCU_SYS_CORE_MEM_CTRL   0xA4000030
 
#define RPU_REG_MIPS_MCU_SYS_CORE_MEM_WDATA   0xA4000034
 
#define RPU_REG_MIPS_MCU_BOOT_EXCP_INSTR_0   0xA4000050
 
#define RPU_REG_MIPS_MCU_BOOT_EXCP_INSTR_1   0xA4000054
 
#define RPU_REG_MIPS_MCU_BOOT_EXCP_INSTR_2   0xA4000058
 
#define RPU_REG_MIPS_MCU_BOOT_EXCP_INSTR_3   0xA400005C
 
#define RPU_REG_MIPS_MCU2_SYS_CORE_MEM_CTRL   0xA4000130
 
#define RPU_REG_MIPS_MCU2_SYS_CORE_MEM_WDATA   0xA4000134
 
#define RPU_REG_MIPS_MCU2_BOOT_EXCP_INSTR_0   0xA4000150
 
#define RPU_REG_MIPS_MCU2_BOOT_EXCP_INSTR_1   0xA4000154
 
#define RPU_REG_MIPS_MCU2_BOOT_EXCP_INSTR_2   0xA4000158
 
#define RPU_REG_MIPS_MCU2_BOOT_EXCP_INSTR_3   0xA400015C
 
#define RPU_REG_BIT_PS_CTRL   0
 
#define RPU_REG_BIT_PS_STATE   1
 
#define RPU_REG_BIT_READY_STATE   2
 
#define RPU_MEM_RX_CMD_BASE   0xB7000D58
 
#define RPU_MEM_HPQ_INFO   0xB0000024
 
#define RPU_MEM_TX_CMD_BASE   0xB00000B8
 
#define RPU_MEM_OTP_FT_PROG_VERSION   0xB0004FD8
 
#define RPU_MEM_OTP_INFO_FLAGS   0xB0004FDC
 
#define RPU_MEM_OTP_PACKAGE_TYPE   0xB0004FD4
 
#define RPU_MEM_PKT_BASE   0xB0005000
 
#define RPU_CMD_START_MAGIC   0xDEAD
 
#define RPU_DATA_CMD_SIZE_MAX_RX   8
 
#define RPU_DATA_CMD_SIZE_MAX_TX   148
 
#define RPU_EVENT_COMMON_SIZE_MAX   128
 
#define MAX_EVENT_POOL_LEN   1000
 
#define MAX_NUM_OF_RX_QUEUES   3
 
#define RPU_PKTRAM_SIZE   (RPU_ADDR_PKTRAM_END - RPU_MEM_PKT_BASE + 1)
 
#define RPU_MEM_RF_TEST_CAP_BASE   0xB0006000
 
#define REGION_PROTECT   64
 
#define PRODTEST_FT_PROGVERSION   29
 
#define PRODTEST_TRIM0   32
 
#define PRODTEST_TRIM1   33
 
#define PRODTEST_TRIM2   34
 
#define PRODTEST_TRIM3   35
 
#define PRODTEST_TRIM4   36
 
#define PRODTEST_TRIM5   37
 
#define PRODTEST_TRIM6   38
 
#define PRODTEST_TRIM7   39
 
#define PRODTEST_TRIM8   40
 
#define PRODTEST_TRIM9   41
 
#define PRODTEST_TRIM10   42
 
#define PRODTEST_TRIM11   43
 
#define PRODTEST_TRIM12   44
 
#define PRODTEST_TRIM13   45
 
#define PRODTEST_TRIM14   46
 
#define INFO_PART   48
 
#define INFO_VARIANT   49
 
#define INFO_UUID   52
 
#define QSPI_KEY   68
 
#define MAC0_ADDR   72
 
#define MAC1_ADDR   74
 
#define CALIB_XO   76
 
#define REGION_DEFAULTS   85
 
#define PRODRETEST_PROGVERSION   86
 
#define PRODRETEST_TRIM0   87
 
#define PRODRETEST_TRIM1   88
 
#define PRODRETEST_TRIM2   89
 
#define PRODRETEST_TRIM3   90
 
#define PRODRETEST_TRIM4   91
 
#define PRODRETEST_TRIM5   92
 
#define PRODRETEST_TRIM6   93
 
#define PRODRETEST_TRIM7   94
 
#define PRODRETEST_TRIM8   95
 
#define PRODRETEST_TRIM9   96
 
#define PRODRETEST_TRIM10   97
 
#define PRODRETEST_TRIM11   98
 
#define PRODRETEST_TRIM12   99
 
#define PRODRETEST_TRIM13   100
 
#define PRODRETEST_TRIM14   101
 
#define OTP_MAX_WORD_LEN   128
 
#define QSPI_KEY_LENGTH_BYTES   16
 
#define RETRIM_LEN   15
 
#define OTP_SZ_CALIB_XO   1
 
#define OTP_OFF_CALIB_XO   0
 
#define QSPI_KEY_FLAG_MASK   ~(1U<<0)
 
#define MAC0_ADDR_FLAG_MASK   ~(1U<<1)
 
#define MAC1_ADDR_FLAG_MASK   ~(1U<<2)
 
#define CALIB_XO_FLAG_MASK   ~(1U<<3)
 
#define OTP_VOLTCTRL_ADDR   0x19004
 
#define OTP_VOLTCTRL_2V5   0x3b
 
#define OTP_VOLTCTRL_1V8   0xb
 
#define OTP_POLL_ADDR   0x01B804
 
#define OTP_WR_DONE   0x1
 
#define OTP_READ_VALID   0x2
 
#define OTP_READY   0x4
 
#define OTP_RWSBMODE_ADDR   0x01B800
 
#define OTP_READ_MODE   0x1
 
#define OTP_BYTE_WRITE_MODE   0x42
 
#define OTP_RDENABLE_ADDR   0x01B810
 
#define OTP_READREG_ADDR   0x01B814
 
#define OTP_WRENABLE_ADDR   0x01B808
 
#define OTP_WRITEREG_ADDR   0x01B80C
 
#define OTP_TIMING_REG1_ADDR   0x01B820
 
#define OTP_TIMING_REG1_VAL   0x0
 
#define OTP_TIMING_REG2_ADDR   0x01B824
 
#define OTP_TIMING_REG2_VAL   0x030D8B
 
#define OTP_FRESH_FROM_FAB   0xFFFFFFFF
 
#define OTP_PROGRAMMED   0x00000000
 
#define OTP_ENABLE_PATTERN   0x50FA50FA
 
#define OTP_INVALID   0xDEADBEEF
 
#define FT_PROG_VER_MASK   0xF0000
 

Enumerations

enum  RPU_MCU_ADDR_REGIONS { RPU_MCU_ADDR_REGION_ROM = 0 , RPU_MCU_ADDR_REGION_RETENTION , RPU_MCU_ADDR_REGION_SCRATCH , RPU_MCU_ADDR_REGION_MAX }
 Regions in the MCU local memory. More...
 

Functions

struct host_rpu_rx_buf_info __attribute__ ((packed))
 

Variables

static const struct rpu_addr_map RPU_ADDR_MAP_MCU []
 Memory map of the MCUs in the RPU.
 
unsigned int addr
 
unsigned int enqueue_addr
 
unsigned int dequeue_addr
 
struct host_rpu_hpq event_busy_queue
 
struct host_rpu_hpq event_avl_queue
 
struct host_rpu_hpq cmd_busy_queue
 
struct host_rpu_hpq cmd_avl_queue
 
struct host_rpu_hpq rx_buf_busy_queue [3]
 
unsigned int len
 
unsigned int resubmit
 

Detailed Description

Common structures and definitions for RPU interface.