PDK API Guide for J721E
Board Data Types

Introduction

Data Structures

struct  Board_IDInfo
 This structure contains board specific information. More...
 
struct  __attribute__
 This structure contains board specific information. More...
 
struct  Board_SoCInfo
 This structure contains SoC specific information. More...
 

Typedefs

typedef uint32_t Board_initCfg
 
typedef void(* Board_thermalMgmtCallbackFunction_t) (Board_DDRTempEventType DDRTempEventType)
 

Enumerations

enum  Board_DDRTempEventType {
  BOARD_DDR_TEMP_EVENT_TEMP_ALERT = 1, BOARD_DDR_TEMP_EVENT_LOW_TEMP_ALARM = 2, BOARD_DDR_TEMP_EVENT_TEMP_CHANGE_4X_REFRESH = 3, BOARD_DDR_TEMP_EVENT_TEMP_CHANGE_2X_REFRESH = 4,
  BOARD_DDR_TEMP_EVENT_TEMP_CHANGE_1X_REFRESH = 5, BOARD_DDR_TEMP_EVENT_TEMP_CHANGE_1_BY_2_REFRESH = 6, BOARD_DDR_TEMP_EVENT_TEMP_CHANGE_1_BY_4_REFRESH = 7, BOARD_DDR_TEMP_EVENT_TEMP_CHANGE_1_BY_4_REFRESH_WITH_DERATING = 8,
  BOARD_DDR_TEMP_EVENT_HIGH_TEMP_ALARM = 9
}
 Enumeration of reported temperature event types. More...
 

Macros

#define BOARD_CACHE_LINE_SIZE   (128)
 Board Library uses basic C99 data types. The basic types used are uint32_t, int32_t, uint8_t, int8_t, uint16_t and int16_t. The standard C char is used for strings. Complex types (or typdefs) if used are defined within this header file. More...
 
#define board_roundup(n, w)   (((n) + (w) - 1) & ~((w) - 1))
 
#define BOARD_SOK   0
 
#define BOARD_INVALID_PARAM   -1
 
#define BOARD_UNSUPPORTED_FEATURE   -2
 
#define BOARD_I2C_OPEN_FAIL   -3
 
#define BOARD_I2C_TRANSFER_FAIL   -4
 
#define BOARD_PINMUX_BAD_MEM_REGION   -5
 
#define BOARD_INIT_CLOCK_FAIL   -6
 
#define BOARD_INIT_DDR_FAIL   -7
 
#define BOARD_PINMUX_INVALID_MODE   -8
 
#define BOARD_FAIL   -10
 
#define BOARD_MAX_ID_STR_LEN   20
 
#define BOARD_BOARD_NAME_LEN   (16U)
 
#define BOARD_DESIGN_REV_LEN   (2U)
 
#define BOARD_PROC_NUM_LEN   (4U)
 
#define BOARD_VARIANT_LEN   (2U)
 
#define BOARD_PCBREV_LEN   (2U)
 
#define BOARD_SCHMBOM_REV_LEN   (2U)
 
#define BOARD_SWREV_LEN   (2U)
 
#define BOARD_VENDORID_LEN   (2U)
 
#define BOARD_BUILD_WEEK_LEN   (2U)
 
#define BOARD_BUILD_YEAR_LEN   (2U)
 
#define BOARD_BOARDID_LEN   (6U)
 
#define BOARD_SERIAL_NUM_LEN   (4U)
 
#define BOARD_MAC_ADDR_LEN   (192U)
 
#define BOARD_SYS_CLK_DEFAULT   (0xFFFFFFFFU)
 
#define BOARD_INIT_ALL   (0xFFFFFFFFU)
 
#define BOARD_INIT_UNLOCK_MMR   (1 << 1U)
 
#define BOARD_INIT_PLL   (1 << 2U)
 
#define BOARD_INIT_PLL_MCU   (1 << 3U)
 
#define BOARD_INIT_PLL_MAIN   (1 << 4U)
 
#define BOARD_INIT_MODULE_CLOCK   (1 << 5U)
 
#define BOARD_INIT_MODULE_CLOCK_MCU   (1 << 6U)
 
#define BOARD_INIT_MODULE_CLOCK_MAIN   (1 << 7U)
 
#define BOARD_INIT_DDR   (1 << 8U)
 
#define BOARD_INIT_WATCHDOG_DISABLE   (1 << 9U)
 
#define BOARD_INIT_PINMUX_CONFIG   (1 << 10U)
 
#define BOARD_INIT_PINMUX_CONFIG_MAIN   (1 << 11U)
 
#define BOARD_INIT_PINMUX_CONFIG_MCU   (1 << 12U)
 
#define BOARD_INIT_UART_STDIO   (1 << 13U)
 
#define BOARD_INIT_ICSS_PINMUX   (1 << 14U)
 
#define BOARD_INIT_ETH_PHY   (1 << 15U)
 
#define BOARD_INIT_ECC   (1 << 16U)
 
#define BOARD_INIT_PLL_OPP_HIGH   (1 << 17U)
 
#define BOARD_INIT_PLL_OPP_OD   (1 << 18U)
 
#define BOARD_INIT_PLL_OPP_NOM   (1 << 19U)
 
#define BOARD_INIT_ICSS_ETH_PHY   (1 << 20U)
 
#define BOARD_INIT_EMIF_PINMUX   (1 << 21U)
 
#define BOARD_INIT_DDR_ECC   (1 << 22U)
 
#define BOARD_INIT_SERDES_PHY   (1 << 23U)
 
#define BOARD_INIT_I2C   (1 << 24U)
 
#define BOARD_DEINIT_I2C   (1 << 25U)
 
#define BOARD_INIT_CPSW9G_ETH_PHY   (1 << 26U)
 
#define BOARD_INIT_ENETCTRL_CPSW3G   (1 << 27U)
 
#define BOARD_INIT_ENETCTRL_CPSW2G   (1 << 27U)
 
#define BOARD_INIT_ENETCTRL_CPSW9G   (1 << 28U)
 
#define BOARD_INIT_ENETCTRL_ICSS   (1 << 29U)
 
#define BOARD_INIT_DEFAULT   BOARD_INIT_ALL
 
#define BOARD_INIT_CPSW5G_ETH_PHY   (BOARD_INIT_CPSW9G_ETH_PHY)
 
#define BOARD_INIT_ENETCTRL_CPSW5G   (BOARD_INIT_ENETCTRL_CPSW9G)
 
#define BOARD_DEINIT_ALL   (0xFFFFFFFFU)
 
#define BOARD_DEINIT_LOCK_MMR   (1 << 1U)
 
#define BOARD_DEINIT_MODULE_CLOCK   (1 << 2U)
 
#define BOARD_DEINIT_UART_STDIO   (1 << 3U)
 
#define BOARD_DEINIT_DEFAULT   BOARD_DEINIT_ALL
 
#define BOARD_RESOURCE_ALL   (0xFFFFU)
 
#define BOARD_RESOURCE_MMR   (1U)
 
#define BOARD_RESOURCE_MODULE_CLOCK   (2U)
 
#define BOARD_RESOURCE_UART_STDIO   (3U)
 
#define BOARD_RESOURCE_SCICLIENT   (4U)
 

Macro Definition Documentation

◆ BOARD_CACHE_LINE_SIZE

#define BOARD_CACHE_LINE_SIZE   (128)

Board Library uses basic C99 data types. The basic types used are uint32_t, int32_t, uint8_t, int8_t, uint16_t and int16_t. The standard C char is used for strings. Complex types (or typdefs) if used are defined within this header file.

The following definitions are for handling cache alignment on the board.

    MAX_CACHE_LINE must be set to the cache line size of the board.

    When allocating memory that must be cache aligned, it must be a multiple of
    the cache line size. Use board_roundup to get the appropriate size.

    As an example to allocate a cache aligned block of memory you would do
    something like:

        buffer_len_aligned = board_roundup (buffer_len, MAX_CACHE_LINE)
        Malloc (buffer_len_aligned)

◆ board_roundup

#define board_roundup (   n,
 
)    (((n) + (w) - 1) & ~((w) - 1))

◆ BOARD_SOK

#define BOARD_SOK   0

Board status OK

◆ BOARD_INVALID_PARAM

#define BOARD_INVALID_PARAM   -1

Error code for invalid parameters

◆ BOARD_UNSUPPORTED_FEATURE

#define BOARD_UNSUPPORTED_FEATURE   -2

Error code for unsupported feature

◆ BOARD_I2C_OPEN_FAIL

#define BOARD_I2C_OPEN_FAIL   -3

I2C handle open failed

◆ BOARD_I2C_TRANSFER_FAIL

#define BOARD_I2C_TRANSFER_FAIL   -4

I2C transfer call failed

◆ BOARD_PINMUX_BAD_MEM_REGION

#define BOARD_PINMUX_BAD_MEM_REGION   -5

IO Delay region not in internal memory

◆ BOARD_INIT_CLOCK_FAIL

#define BOARD_INIT_CLOCK_FAIL   -6

Error code for init clock module

◆ BOARD_INIT_DDR_FAIL

#define BOARD_INIT_DDR_FAIL   -7

Error code for init DDR

◆ BOARD_PINMUX_INVALID_MODE

#define BOARD_PINMUX_INVALID_MODE   -8

Runtime pinmux configuration mode

◆ BOARD_FAIL

#define BOARD_FAIL   -10

Board status FAIL

◆ BOARD_MAX_ID_STR_LEN

#define BOARD_MAX_ID_STR_LEN   20

◆ BOARD_BOARD_NAME_LEN

#define BOARD_BOARD_NAME_LEN   (16U)

◆ BOARD_DESIGN_REV_LEN

#define BOARD_DESIGN_REV_LEN   (2U)

◆ BOARD_PROC_NUM_LEN

#define BOARD_PROC_NUM_LEN   (4U)

◆ BOARD_VARIANT_LEN

#define BOARD_VARIANT_LEN   (2U)

◆ BOARD_PCBREV_LEN

#define BOARD_PCBREV_LEN   (2U)

◆ BOARD_SCHMBOM_REV_LEN

#define BOARD_SCHMBOM_REV_LEN   (2U)

◆ BOARD_SWREV_LEN

#define BOARD_SWREV_LEN   (2U)

◆ BOARD_VENDORID_LEN

#define BOARD_VENDORID_LEN   (2U)

◆ BOARD_BUILD_WEEK_LEN

#define BOARD_BUILD_WEEK_LEN   (2U)

◆ BOARD_BUILD_YEAR_LEN

#define BOARD_BUILD_YEAR_LEN   (2U)

◆ BOARD_BOARDID_LEN

#define BOARD_BOARDID_LEN   (6U)

◆ BOARD_SERIAL_NUM_LEN

#define BOARD_SERIAL_NUM_LEN   (4U)

◆ BOARD_MAC_ADDR_LEN

#define BOARD_MAC_ADDR_LEN   (192U)

◆ BOARD_SYS_CLK_DEFAULT

#define BOARD_SYS_CLK_DEFAULT   (0xFFFFFFFFU)

◆ BOARD_INIT_ALL

#define BOARD_INIT_ALL   (0xFFFFFFFFU)

◆ BOARD_INIT_UNLOCK_MMR

#define BOARD_INIT_UNLOCK_MMR   (1 << 1U)

◆ BOARD_INIT_PLL

#define BOARD_INIT_PLL   (1 << 2U)

◆ BOARD_INIT_PLL_MCU

#define BOARD_INIT_PLL_MCU   (1 << 3U)

◆ BOARD_INIT_PLL_MAIN

#define BOARD_INIT_PLL_MAIN   (1 << 4U)

◆ BOARD_INIT_MODULE_CLOCK

#define BOARD_INIT_MODULE_CLOCK   (1 << 5U)

◆ BOARD_INIT_MODULE_CLOCK_MCU

#define BOARD_INIT_MODULE_CLOCK_MCU   (1 << 6U)

◆ BOARD_INIT_MODULE_CLOCK_MAIN

#define BOARD_INIT_MODULE_CLOCK_MAIN   (1 << 7U)

◆ BOARD_INIT_DDR

#define BOARD_INIT_DDR   (1 << 8U)

◆ BOARD_INIT_WATCHDOG_DISABLE

#define BOARD_INIT_WATCHDOG_DISABLE   (1 << 9U)

◆ BOARD_INIT_PINMUX_CONFIG

#define BOARD_INIT_PINMUX_CONFIG   (1 << 10U)

◆ BOARD_INIT_PINMUX_CONFIG_MAIN

#define BOARD_INIT_PINMUX_CONFIG_MAIN   (1 << 11U)

◆ BOARD_INIT_PINMUX_CONFIG_MCU

#define BOARD_INIT_PINMUX_CONFIG_MCU   (1 << 12U)

◆ BOARD_INIT_UART_STDIO

#define BOARD_INIT_UART_STDIO   (1 << 13U)

◆ BOARD_INIT_ICSS_PINMUX

#define BOARD_INIT_ICSS_PINMUX   (1 << 14U)

◆ BOARD_INIT_ETH_PHY

#define BOARD_INIT_ETH_PHY   (1 << 15U)

◆ BOARD_INIT_ECC

#define BOARD_INIT_ECC   (1 << 16U)

◆ BOARD_INIT_PLL_OPP_HIGH

#define BOARD_INIT_PLL_OPP_HIGH   (1 << 17U)

◆ BOARD_INIT_PLL_OPP_OD

#define BOARD_INIT_PLL_OPP_OD   (1 << 18U)

◆ BOARD_INIT_PLL_OPP_NOM

#define BOARD_INIT_PLL_OPP_NOM   (1 << 19U)

◆ BOARD_INIT_ICSS_ETH_PHY

#define BOARD_INIT_ICSS_ETH_PHY   (1 << 20U)

◆ BOARD_INIT_EMIF_PINMUX

#define BOARD_INIT_EMIF_PINMUX   (1 << 21U)

◆ BOARD_INIT_DDR_ECC

#define BOARD_INIT_DDR_ECC   (1 << 22U)

◆ BOARD_INIT_SERDES_PHY

#define BOARD_INIT_SERDES_PHY   (1 << 23U)

◆ BOARD_INIT_I2C

#define BOARD_INIT_I2C   (1 << 24U)

◆ BOARD_DEINIT_I2C

#define BOARD_DEINIT_I2C   (1 << 25U)

◆ BOARD_INIT_CPSW9G_ETH_PHY

#define BOARD_INIT_CPSW9G_ETH_PHY   (1 << 26U)

◆ BOARD_INIT_ENETCTRL_CPSW3G

#define BOARD_INIT_ENETCTRL_CPSW3G   (1 << 27U)

◆ BOARD_INIT_ENETCTRL_CPSW2G

#define BOARD_INIT_ENETCTRL_CPSW2G   (1 << 27U)

◆ BOARD_INIT_ENETCTRL_CPSW9G

#define BOARD_INIT_ENETCTRL_CPSW9G   (1 << 28U)

◆ BOARD_INIT_ENETCTRL_ICSS

#define BOARD_INIT_ENETCTRL_ICSS   (1 << 29U)

◆ BOARD_INIT_DEFAULT

#define BOARD_INIT_DEFAULT   BOARD_INIT_ALL

◆ BOARD_INIT_CPSW5G_ETH_PHY

#define BOARD_INIT_CPSW5G_ETH_PHY   (BOARD_INIT_CPSW9G_ETH_PHY)

◆ BOARD_INIT_ENETCTRL_CPSW5G

#define BOARD_INIT_ENETCTRL_CPSW5G   (BOARD_INIT_ENETCTRL_CPSW9G)

◆ BOARD_DEINIT_ALL

#define BOARD_DEINIT_ALL   (0xFFFFFFFFU)

◆ BOARD_DEINIT_LOCK_MMR

#define BOARD_DEINIT_LOCK_MMR   (1 << 1U)

◆ BOARD_DEINIT_MODULE_CLOCK

#define BOARD_DEINIT_MODULE_CLOCK   (1 << 2U)

◆ BOARD_DEINIT_UART_STDIO

#define BOARD_DEINIT_UART_STDIO   (1 << 3U)

◆ BOARD_DEINIT_DEFAULT

#define BOARD_DEINIT_DEFAULT   BOARD_DEINIT_ALL

◆ BOARD_RESOURCE_ALL

#define BOARD_RESOURCE_ALL   (0xFFFFU)

◆ BOARD_RESOURCE_MMR

#define BOARD_RESOURCE_MMR   (1U)

◆ BOARD_RESOURCE_MODULE_CLOCK

#define BOARD_RESOURCE_MODULE_CLOCK   (2U)

◆ BOARD_RESOURCE_UART_STDIO

#define BOARD_RESOURCE_UART_STDIO   (3U)

◆ BOARD_RESOURCE_SCICLIENT

#define BOARD_RESOURCE_SCICLIENT   (4U)

Typedef Documentation

◆ Board_initCfg

typedef uint32_t Board_initCfg

◆ Board_thermalMgmtCallbackFunction_t

typedef void(* Board_thermalMgmtCallbackFunction_t) (Board_DDRTempEventType DDRTempEventType)

Enumeration Type Documentation

◆ Board_DDRTempEventType

Enumeration of reported temperature event types.



Enumerator
BOARD_DDR_TEMP_EVENT_TEMP_ALERT 

Temperature alert event occurred

BOARD_DDR_TEMP_EVENT_LOW_TEMP_ALARM 

Low temperature alarm event occurred

BOARD_DDR_TEMP_EVENT_TEMP_CHANGE_4X_REFRESH 

Temperature change event occurred: Needs 4 x refresh

BOARD_DDR_TEMP_EVENT_TEMP_CHANGE_2X_REFRESH 

Temperature change event occurred: Needs 2 x refresh

BOARD_DDR_TEMP_EVENT_TEMP_CHANGE_1X_REFRESH 

Temperature change event occurred: Needs 1 x refresh

BOARD_DDR_TEMP_EVENT_TEMP_CHANGE_1_BY_2_REFRESH 

Temperature change event occurred: Needs 0.5 x refresh

BOARD_DDR_TEMP_EVENT_TEMP_CHANGE_1_BY_4_REFRESH 

Temperature change event occurred: Needs 0.25 x refresh

BOARD_DDR_TEMP_EVENT_TEMP_CHANGE_1_BY_4_REFRESH_WITH_DERATING 

Temperature change event occurred: Needs 0.25 x refresh and derating

BOARD_DDR_TEMP_EVENT_HIGH_TEMP_ALARM 

High temperature alarm event occurred