Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit ec350f9e authored by spuligil's avatar spuligil
Browse files

fw-api: CL 16893507 - update fw common interface files

add mlo_glb_chip_crash_info defs

Change-Id: Ie09fb05019abd15ae3353de01177f5dc1ce1a4db
CRs-Fixed: 2262693
parent 9450e384
Loading
Loading
Loading
Loading
+49 −0
Original line number Diff line number Diff line
@@ -1366,6 +1366,8 @@ typedef enum {
    MLO_SHMEM_TLV_STRUCT_MLO_GLB_LINK,
    MLO_SHMEM_TLV_STRUCT_MLO_GLB_LINK_INFO,
    MLO_SHMEM_TLV_STRUCT_MLO_GLB_H_SHMEM,
    MLO_SHMEM_TLV_STRUCT_MLO_GLB_CHIP_CRASH_INFO,
    MLO_SHMEM_TLV_STRUCT_MLO_GLB_PER_CHIP_CRASH_INFO,
} MLO_SHMEM_TLV_TAG_ID;

/** Helper macro for params GET/SET of mgmt_rx_reo_snapshot */
@@ -1542,6 +1544,52 @@ typedef struct {
A_COMPILE_TIME_ASSERT(check_mlo_glb_link_info_8byte_size_quantum,
        (((sizeof(mlo_glb_link_info) % sizeof(A_UINT64) == 0x0))));

typedef enum {
    MLO_SHMEM_CRASH_PARTNER_CHIPS = 1,
} MLO_SHMEM_CHIP_CRASH_REASON;

/* glb link info structures used for scratchpad memory (crash and recovery) */
typedef struct {
    /* TLV tag and len; tag equals MLO_SHMEM_TLV_STRUCT_MLO_GLB_PER_CHIP_CRASH_INFO */
    A_UINT32 tlv_header;
    /**
     * crash reason, takes value in enum MLO_SHMEM_CHIP_CRASH_REASON
     */
    A_UINT32 crash_reason;
} mlo_glb_per_chip_crash_info;

A_COMPILE_TIME_ASSERT(check_mlo_glb_per_chip_crash_info,
        (((sizeof(mlo_glb_per_chip_crash_info) % sizeof(A_UINT64) == 0x0))));

/** Helper macro for params GET/SET of mlo_glb_chip_crash_info */
#define MLO_SHMEM_CHIP_CRASH_INFO_PARAM_NO_OF_CHIPS_GET(chip_info) MLO_SHMEM_GET_BITS(chip_info, 0, 2)
#define MLO_SHMEM_CHIP_CRASH_INFO_PARAM_NO_OF_CHIPS_SET(chip_info, value) MLO_SHMEM_SET_BITS(chip_info, 0, 2, value)

#define MLO_SHMEM_CHIP_CRASH_INFO_PARAM_VALID_CHIP_BMAP_GET(chip_info) MLO_SHMEM_GET_BITS(chip_info, 2, 3)
#define MLO_SHMEM_CHIP_CRASH_INFO_PARAM_VALID_CHIP_BMAP_SET(chip_info, value) MLO_SHMEM_SET_BITS(chip_info, 2, 3, value)

typedef struct {
    /* TLV tag and len; tag equals MLO_SHMEM_TLV_STRUCT_MLO_GLB_CHIP_CRASH_INFO */
    A_UINT32 tlv_header;

    /**
     * chip_info
     *
     * [1:0]:  no_of_chips
     * [4:2]:  valid_chip_bmap
     * [31:6]: reserved
     */
    A_UINT32 chip_info;
    /*  This TLV is followed by array of mlo_glb_per_chip_crash_info:
     *  mlo_glb_per_chip_crash_info will have mutiple instances equal to num of partner chips
     *  received by no_of_chips
     *  mlo_glb_per_chip_crash_info per_chip_crash_info[];
     */
} mlo_glb_chip_crash_info;

A_COMPILE_TIME_ASSERT(check_mlo_glb_chip_crash_info,
        (((sizeof(mlo_glb_chip_crash_info) % sizeof(A_UINT64) == 0x0))));

/** Helper macro for params GET/SET of mlo_glb_h_shmem */
#define MLO_SHMEM_GLB_H_SHMEM_PARAM_MINOR_VERSION_GET(major_minor_version) MLO_SHMEM_GET_BITS(major_minor_version, 0, 16)
#define MLO_SHMEM_GLB_H_SHMEM_PARAM_MINOR_VERSION_SET(major_minor_version, value) MLO_SHMEM_SET_BITS(major_minor_version, 0, 16, value)
@@ -1563,6 +1611,7 @@ typedef struct {
/*  This TLV is followed by TLVs
 *  mlo_glb_rx_reo_snapshot_info reo_snapshot;
 *  mlo_glb_link_info glb_info;
 *  mlo_glb_chip_crash_info crash_info;
 */
} mlo_glb_h_shmem;