~ [ source navigation ] ~ [ diff markup ] ~ [ identifier search ] ~

TOMOYO Linux Cross Reference
Linux/include/uapi/sound/sof/fw.h

Version: ~ [ linux-6.12-rc7 ] ~ [ linux-6.11.7 ] ~ [ linux-6.10.14 ] ~ [ linux-6.9.12 ] ~ [ linux-6.8.12 ] ~ [ linux-6.7.12 ] ~ [ linux-6.6.60 ] ~ [ linux-6.5.13 ] ~ [ linux-6.4.16 ] ~ [ linux-6.3.13 ] ~ [ linux-6.2.16 ] ~ [ linux-6.1.116 ] ~ [ linux-6.0.19 ] ~ [ linux-5.19.17 ] ~ [ linux-5.18.19 ] ~ [ linux-5.17.15 ] ~ [ linux-5.16.20 ] ~ [ linux-5.15.171 ] ~ [ linux-5.14.21 ] ~ [ linux-5.13.19 ] ~ [ linux-5.12.19 ] ~ [ linux-5.11.22 ] ~ [ linux-5.10.229 ] ~ [ linux-5.9.16 ] ~ [ linux-5.8.18 ] ~ [ linux-5.7.19 ] ~ [ linux-5.6.19 ] ~ [ linux-5.5.19 ] ~ [ linux-5.4.285 ] ~ [ linux-5.3.18 ] ~ [ linux-5.2.21 ] ~ [ linux-5.1.21 ] ~ [ linux-5.0.21 ] ~ [ linux-4.20.17 ] ~ [ linux-4.19.323 ] ~ [ linux-4.18.20 ] ~ [ linux-4.17.19 ] ~ [ linux-4.16.18 ] ~ [ linux-4.15.18 ] ~ [ linux-4.14.336 ] ~ [ linux-4.13.16 ] ~ [ linux-4.12.14 ] ~ [ linux-4.11.12 ] ~ [ linux-4.10.17 ] ~ [ linux-4.9.337 ] ~ [ linux-4.4.302 ] ~ [ linux-3.10.108 ] ~ [ linux-2.6.32.71 ] ~ [ linux-2.6.0 ] ~ [ linux-2.4.37.11 ] ~ [ unix-v6-master ] ~ [ ccs-tools-1.8.12 ] ~ [ policy-sample ] ~
Architecture: ~ [ i386 ] ~ [ alpha ] ~ [ m68k ] ~ [ mips ] ~ [ ppc ] ~ [ sparc ] ~ [ sparc64 ] ~

  1 /* SPDX-License-Identifier: ((GPL-2.0 WITH Linux-syscall-note) OR BSD-3-Clause) */
  2 /*
  3  * This file is provided under a dual BSD/GPLv2 license.  When using or
  4  * redistributing this file, you may do so under either license.
  5  *
  6  * Copyright(c) 2018 Intel Corporation
  7  */
  8 
  9 /*
 10  * Firmware file format .
 11  */
 12 
 13 #ifndef __INCLUDE_UAPI_SOF_FW_H__
 14 #define __INCLUDE_UAPI_SOF_FW_H__
 15 
 16 #include <linux/types.h>
 17 
 18 #define SND_SOF_FW_SIG_SIZE     4
 19 #define SND_SOF_FW_ABI          1
 20 #define SND_SOF_FW_SIG          "Reef"
 21 
 22 /*
 23  * Firmware module is made up of 1 . N blocks of different types. The
 24  * Block header is used to determine where and how block is to be copied in the
 25  * DSP/host memory space.
 26  */
 27 enum snd_sof_fw_blk_type {
 28         SOF_FW_BLK_TYPE_INVALID = -1,
 29         SOF_FW_BLK_TYPE_START   = 0,
 30         SOF_FW_BLK_TYPE_RSRVD0  = SOF_FW_BLK_TYPE_START,
 31         SOF_FW_BLK_TYPE_IRAM    = 1,    /* local instruction RAM */
 32         SOF_FW_BLK_TYPE_DRAM    = 2,    /* local data RAM */
 33         SOF_FW_BLK_TYPE_SRAM    = 3,    /* system RAM */
 34         SOF_FW_BLK_TYPE_ROM     = 4,
 35         SOF_FW_BLK_TYPE_IMR     = 5,
 36         SOF_FW_BLK_TYPE_RSRVD6  = 6,
 37         SOF_FW_BLK_TYPE_RSRVD7  = 7,
 38         SOF_FW_BLK_TYPE_RSRVD8  = 8,
 39         SOF_FW_BLK_TYPE_RSRVD9  = 9,
 40         SOF_FW_BLK_TYPE_RSRVD10 = 10,
 41         SOF_FW_BLK_TYPE_RSRVD11 = 11,
 42         SOF_FW_BLK_TYPE_RSRVD12 = 12,
 43         SOF_FW_BLK_TYPE_RSRVD13 = 13,
 44         SOF_FW_BLK_TYPE_RSRVD14 = 14,
 45         /* use SOF_FW_BLK_TYPE_RSVRDX for new block types */
 46         SOF_FW_BLK_TYPE_NUM
 47 };
 48 
 49 struct snd_sof_blk_hdr {
 50         enum snd_sof_fw_blk_type type;
 51         __u32 size;             /* bytes minus this header */
 52         __u32 offset;           /* offset from base */
 53 } __packed;
 54 
 55 /*
 56  * Firmware file is made up of 1 .. N different modules types. The module
 57  * type is used to determine how to load and parse the module.
 58  */
 59 enum snd_sof_fw_mod_type {
 60         SOF_FW_BASE     = 0,    /* base firmware image */
 61         SOF_FW_MODULE   = 1,    /* firmware module */
 62 };
 63 
 64 struct snd_sof_mod_hdr {
 65         enum snd_sof_fw_mod_type type;
 66         __u32 size;             /* bytes minus this header */
 67         __u32 num_blocks;       /* number of blocks */
 68 } __packed;
 69 
 70 /*
 71  * Firmware file header.
 72  */
 73 struct snd_sof_fw_header {
 74         unsigned char sig[SND_SOF_FW_SIG_SIZE]; /* "Reef" */
 75         __u32 file_size;        /* size of file minus this header */
 76         __u32 num_modules;      /* number of modules */
 77         __u32 abi;              /* version of header format */
 78 } __packed;
 79 
 80 #endif
 81 

~ [ source navigation ] ~ [ diff markup ] ~ [ identifier search ] ~

kernel.org | git.kernel.org | LWN.net | Project Home | SVN repository | Mail admin

Linux® is a registered trademark of Linus Torvalds in the United States and other countries.
TOMOYO® is a registered trademark of NTT DATA CORPORATION.

sflogo.php