aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/net/wimax/i2400m/i2400m.h
diff options
context:
space:
mode:
authorInaky Perez-Gonzalez <inaky@linux.intel.com>2009-09-04 20:07:21 -0400
committerInaky Perez-Gonzalez <inaky@linux.intel.com>2009-10-19 02:55:57 -0400
commitbfc44187bbaeabf597be6566a24e8fa7d689b984 (patch)
treeaa7d6f28babc971950bf1e7589919c74f2ca6fa9 /drivers/net/wimax/i2400m/i2400m.h
parentfabce1a485dd985c0e4c16f61f4ddb5e27e49cbf (diff)
wimax/i2400m: support extended firmware format
The SBCF firmware format has been extended to support extra headers after the main payload. These extra headers are used to sign the firmware code with more than one certificate. This eases up distributing single code images that work in more than one SKU of the device. The changes to support this feature will be spread in a series of commits. This one just adds the support to parse the extra headers and store them in i2400m->fw_hdrs. Coming changes to the loader code will use that to determine which header to upload to the device. The i2400m_fw_check() function now iterates over all the headers and for each, calls i2400m_fw_hdr_check(), which does some basic checks on each header. It then stores the headers for the bootloader code to use. The i2400m_dev_bootstrap() function has been modified to cleanup i2400m->fw_hdrs when done. Signed-off-by: Inaky Perez-Gonzalez <inaky@linux.intel.com>
Diffstat (limited to 'drivers/net/wimax/i2400m/i2400m.h')
-rw-r--r--drivers/net/wimax/i2400m/i2400m.h4
1 files changed, 4 insertions, 0 deletions
diff --git a/drivers/net/wimax/i2400m/i2400m.h b/drivers/net/wimax/i2400m/i2400m.h
index bcb1882ed741..5ac2cce88ba0 100644
--- a/drivers/net/wimax/i2400m/i2400m.h
+++ b/drivers/net/wimax/i2400m/i2400m.h
@@ -421,6 +421,9 @@ struct i2400m_barker_db;
421 * @fw_version: version of the firmware interface, Major.minor, 421 * @fw_version: version of the firmware interface, Major.minor,
422 * encoded in the high word and low word (major << 16 | minor). 422 * encoded in the high word and low word (major << 16 | minor).
423 * 423 *
424 * @fw_hdrs: NULL terminated array of pointers to the firmware
425 * headers. This is only available during firmware load time.
426 *
424 * @barker: barker type that the device uses; this is initialized by 427 * @barker: barker type that the device uses; this is initialized by
425 * i2400m_is_boot_barker() the first time it is called. Then it 428 * i2400m_is_boot_barker() the first time it is called. Then it
426 * won't change during the life cycle of the device and everytime 429 * won't change during the life cycle of the device and everytime
@@ -491,6 +494,7 @@ struct i2400m {
491 struct dentry *debugfs_dentry; 494 struct dentry *debugfs_dentry;
492 const char *fw_name; /* name of the current firmware image */ 495 const char *fw_name; /* name of the current firmware image */
493 unsigned long fw_version; /* version of the firmware interface */ 496 unsigned long fw_version; /* version of the firmware interface */
497 const struct i2400m_bcf_hdr **fw_hdrs;
494 struct i2400m_barker_db *barker; 498 struct i2400m_barker_db *barker;
495}; 499};
496 500