Linux Kernel
3.7.1
Main Page
Related Pages
Modules
Namespaces
Data Structures
Files
File List
Globals
All
Data Structures
Namespaces
Files
Functions
Variables
Typedefs
Enumerations
Enumerator
Macros
Groups
Pages
drivers
net
wireless
iwlwifi
iwl-fw-file.h
Go to the documentation of this file.
1
/******************************************************************************
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
* GPL LICENSE SUMMARY
7
*
8
* Copyright(c) 2008 - 2012 Intel Corporation. All rights reserved.
9
*
10
* This program is free software; you can redistribute it and/or modify
11
* it under the terms of version 2 of the GNU General Public License as
12
* published by the Free Software Foundation.
13
*
14
* This program is distributed in the hope that it will be useful, but
15
* WITHOUT ANY WARRANTY; without even the implied warranty of
16
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
17
* General Public License for more details.
18
*
19
* You should have received a copy of the GNU General Public License
20
* along with this program; if not, write to the Free Software
21
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110,
22
* USA
23
*
24
* The full GNU General Public License is included in this distribution
25
* in the file called LICENSE.GPL.
26
*
27
* Contact Information:
28
* Intel Linux Wireless <
[email protected]
>
29
* Intel Corporation, 5200 N.E. Elam Young Parkway, Hillsboro, OR 97124-6497
30
*
31
* BSD LICENSE
32
*
33
* Copyright(c) 2005 - 2012 Intel Corporation. All rights reserved.
34
* All rights reserved.
35
*
36
* Redistribution and use in source and binary forms, with or without
37
* modification, are permitted provided that the following conditions
38
* are met:
39
*
40
* * Redistributions of source code must retain the above copyright
41
* notice, this list of conditions and the following disclaimer.
42
* * Redistributions in binary form must reproduce the above copyright
43
* notice, this list of conditions and the following disclaimer in
44
* the documentation and/or other materials provided with the
45
* distribution.
46
* * Neither the name Intel Corporation nor the names of its
47
* contributors may be used to endorse or promote products derived
48
* from this software without specific prior written permission.
49
*
50
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
51
* "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
52
* LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
53
* A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
54
* OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
55
* SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
56
* LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
57
* DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
58
* THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
59
* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
60
* OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
61
*****************************************************************************/
62
63
#ifndef __iwl_fw_file_h__
64
#define __iwl_fw_file_h__
65
66
#include <linux/netdevice.h>
67
68
/* v1/v2 uCode file layout */
69
struct
iwl_ucode_header
{
70
__le32
ver
;
/* major/minor/API/serial */
71
union
{
72
struct
{
73
__le32
inst_size
;
/* bytes of runtime code */
74
__le32
data_size
;
/* bytes of runtime data */
75
__le32
init_size
;
/* bytes of init code */
76
__le32
init_data_size
;
/* bytes of init data */
77
__le32
boot_size
;
/* bytes of bootstrap code */
78
u8
data
[0];
/* in same order as sizes */
79
}
v1
;
80
struct
{
81
__le32
build
;
/* build number */
82
__le32
inst_size
;
/* bytes of runtime code */
83
__le32
data_size
;
/* bytes of runtime data */
84
__le32
init_size
;
/* bytes of init code */
85
__le32
init_data_size
;
/* bytes of init data */
86
__le32
boot_size
;
/* bytes of bootstrap code */
87
u8
data
[0];
/* in same order as sizes */
88
}
v2
;
89
}
u
;
90
};
91
92
/*
93
* new TLV uCode file layout
94
*
95
* The new TLV file format contains TLVs, that each specify
96
* some piece of data.
97
*/
98
99
enum
iwl_ucode_tlv_type
{
100
IWL_UCODE_TLV_INVALID
= 0,
/* unused */
101
IWL_UCODE_TLV_INST
= 1,
102
IWL_UCODE_TLV_DATA
= 2,
103
IWL_UCODE_TLV_INIT
= 3,
104
IWL_UCODE_TLV_INIT_DATA
= 4,
105
IWL_UCODE_TLV_BOOT
= 5,
106
IWL_UCODE_TLV_PROBE_MAX_LEN
= 6,
/* a u32 value */
107
IWL_UCODE_TLV_PAN
= 7,
108
IWL_UCODE_TLV_RUNT_EVTLOG_PTR
= 8,
109
IWL_UCODE_TLV_RUNT_EVTLOG_SIZE
= 9,
110
IWL_UCODE_TLV_RUNT_ERRLOG_PTR
= 10,
111
IWL_UCODE_TLV_INIT_EVTLOG_PTR
= 11,
112
IWL_UCODE_TLV_INIT_EVTLOG_SIZE
= 12,
113
IWL_UCODE_TLV_INIT_ERRLOG_PTR
= 13,
114
IWL_UCODE_TLV_ENHANCE_SENS_TBL
= 14,
115
IWL_UCODE_TLV_PHY_CALIBRATION_SIZE
= 15,
116
IWL_UCODE_TLV_WOWLAN_INST
= 16,
117
IWL_UCODE_TLV_WOWLAN_DATA
= 17,
118
IWL_UCODE_TLV_FLAGS
= 18,
119
IWL_UCODE_TLV_SEC_RT
= 19,
120
IWL_UCODE_TLV_SEC_INIT
= 20,
121
IWL_UCODE_TLV_SEC_WOWLAN
= 21,
122
IWL_UCODE_TLV_DEF_CALIB
= 22,
123
IWL_UCODE_TLV_PHY_SKU
= 23,
124
};
125
126
struct
iwl_ucode_tlv
{
127
__le32
type
;
/* see above */
128
__le32
length
;
/* not including type/length fields */
129
u8
data
[0];
130
};
131
132
#define IWL_TLV_UCODE_MAGIC 0x0a4c5749
133
134
struct
iwl_tlv_ucode_header
{
135
/*
136
* The TLV style ucode header is distinguished from
137
* the v1/v2 style header by first four bytes being
138
* zero, as such is an invalid combination of
139
* major/minor/API/serial versions.
140
*/
141
__le32
zero
;
142
__le32
magic
;
143
u8
human_readable
[64];
144
__le32
ver
;
/* major/minor/API/serial */
145
__le32
build
;
146
__le64
ignore
;
147
/*
148
* The data contained herein has a TLV layout,
149
* see above for the TLV header and types.
150
* Note that each TLV is padded to a length
151
* that is a multiple of 4 for alignment.
152
*/
153
u8
data
[0];
154
};
155
156
#endif
/* __iwl_fw_file_h__ */
Generated on Thu Jan 10 2013 14:11:50 for Linux Kernel by
1.8.2