Changeset View
Changeset View
Standalone View
Standalone View
sys/dev/rtwn/rtl8188e/r88e_rom_image.h
Show First 20 Lines • Show All 51 Lines • ▼ Show 20 Lines | #define R88E_ROM_CRYSTALCAP_DEF 0x20 | ||||
uint8_t reserved7[2]; | uint8_t reserved7[2]; | ||||
uint8_t string[33]; /* "realtek 802.11n NIC" */ | uint8_t string[33]; /* "realtek 802.11n NIC" */ | ||||
uint8_t reserved8[256]; | uint8_t reserved8[256]; | ||||
} __packed; | } __packed; | ||||
_Static_assert(sizeof(struct r88e_rom) == R88E_EFUSE_MAP_LEN, | _Static_assert(sizeof(struct r88e_rom) == R88E_EFUSE_MAP_LEN, | ||||
"R88E_EFUSE_MAP_LEN must be equal to sizeof(struct r88e_rom)!"); | "R88E_EFUSE_MAP_LEN must be equal to sizeof(struct r88e_rom)!"); | ||||
/* | |||||
* RTL8188EE ROM image. | |||||
* Largely derived from this: | |||||
* http://src.illumos.org/source/xref/linux-master/drivers/net/wireless/realtek/rtlwifi/rtl8188ee/hw.c#1576 | |||||
*/ | |||||
struct _bw40_bw20_ofdm_cck { | |||||
uint8_t bw40:4; | |||||
uint8_t bw20:4; | |||||
uint8_t ofdm:4; | |||||
uint8_t cck:4; | |||||
} __packed; | |||||
struct _r88ee_rom_24g { | |||||
uint8_t index_cck_base[6]; | |||||
uint8_t index_bw40_base[6-1]; | |||||
uint8_t bw20_ofdm; | |||||
struct _bw40_bw20_ofdm_cck bw40_bw20_ofdm_cck[4-1]; | |||||
} __packed; | |||||
struct _r88ee_rom_5g { | |||||
uint8_t index_bw40_base[14]; | |||||
uint8_t bw20_ofdm; | |||||
uint8_t bw40_bw20[4-1]; | |||||
uint8_t ofdm_1[2]; | |||||
} __packed; | |||||
struct _r88ee_rf_path { | |||||
struct _r88ee_rom_24g rfpath_24g; | |||||
struct _r88ee_rom_5g rfpath_5g; | |||||
} __packed; | |||||
struct r88ee_rom { | |||||
uint16_t id; /* Always 0x8129 */ | |||||
uint8_t hpon[4]; | |||||
uint16_t clk; | |||||
uint8_t testr[8]; | |||||
struct _r88ee_rf_path rfpath[4]; | |||||
uint8_t unknown3[16]; | |||||
uint16_t channel_plan; | |||||
uint8_t xtal; | |||||
uint8_t thermal_meter; | |||||
uint8_t unknown4[5]; | |||||
uint8_t rf_board_opt; | |||||
uint8_t rf_feature_opt; | |||||
uint8_t rf_bt_setting; | |||||
uint8_t version; | |||||
uint8_t customer_id; | |||||
uint8_t reserved1[3]; | |||||
uint8_t rf_antenna_opt; | |||||
uint8_t reserved2[6]; | |||||
uint8_t macaddr[IEEE80211_ADDR_LEN]; | |||||
uint16_t vid; | |||||
uint16_t did; | |||||
uint16_t svid; | |||||
uint16_t smid; | |||||
uint8_t unknown5[290]; | |||||
} __packed; // Should be 512 byte | |||||
_Static_assert(sizeof(struct r88ee_rom) == R88E_EFUSE_MAP_LEN, | |||||
"R88EE_EFUSE_MAP_LEN must be equal to sizeof(struct r88ee_rom)!"); | |||||
#endif /* R88E_ROM_IMAGE_H */ | #endif /* R88E_ROM_IMAGE_H */ |