0001
0002
0003
0004
0005
0006
0007
0008
0009
0010
0011
0012
0013 #ifndef __INCLUDE_UAPI_SOF_FW_H__
0014 #define __INCLUDE_UAPI_SOF_FW_H__
0015
0016 #include <linux/types.h>
0017
0018 #define SND_SOF_FW_SIG_SIZE 4
0019 #define SND_SOF_FW_ABI 1
0020 #define SND_SOF_FW_SIG "Reef"
0021
0022
0023
0024
0025
0026
0027 enum snd_sof_fw_blk_type {
0028 SOF_FW_BLK_TYPE_INVALID = -1,
0029 SOF_FW_BLK_TYPE_START = 0,
0030 SOF_FW_BLK_TYPE_RSRVD0 = SOF_FW_BLK_TYPE_START,
0031 SOF_FW_BLK_TYPE_IRAM = 1,
0032 SOF_FW_BLK_TYPE_DRAM = 2,
0033 SOF_FW_BLK_TYPE_SRAM = 3,
0034 SOF_FW_BLK_TYPE_ROM = 4,
0035 SOF_FW_BLK_TYPE_IMR = 5,
0036 SOF_FW_BLK_TYPE_RSRVD6 = 6,
0037 SOF_FW_BLK_TYPE_RSRVD7 = 7,
0038 SOF_FW_BLK_TYPE_RSRVD8 = 8,
0039 SOF_FW_BLK_TYPE_RSRVD9 = 9,
0040 SOF_FW_BLK_TYPE_RSRVD10 = 10,
0041 SOF_FW_BLK_TYPE_RSRVD11 = 11,
0042 SOF_FW_BLK_TYPE_RSRVD12 = 12,
0043 SOF_FW_BLK_TYPE_RSRVD13 = 13,
0044 SOF_FW_BLK_TYPE_RSRVD14 = 14,
0045
0046 SOF_FW_BLK_TYPE_NUM
0047 };
0048
0049 struct snd_sof_blk_hdr {
0050 enum snd_sof_fw_blk_type type;
0051 __u32 size;
0052 __u32 offset;
0053 } __packed;
0054
0055
0056
0057
0058
0059 enum snd_sof_fw_mod_type {
0060 SOF_FW_BASE = 0,
0061 SOF_FW_MODULE = 1,
0062 };
0063
0064 struct snd_sof_mod_hdr {
0065 enum snd_sof_fw_mod_type type;
0066 __u32 size;
0067 __u32 num_blocks;
0068 } __packed;
0069
0070
0071
0072
0073 struct snd_sof_fw_header {
0074 unsigned char sig[SND_SOF_FW_SIG_SIZE];
0075 __u32 file_size;
0076 __u32 num_modules;
0077 __u32 abi;
0078 } __packed;
0079
0080 #endif