|
|
@@ -84,19 +84,29 @@ MODULE_PARM_DESC(led_id,
|
|
|
* array size should be in sync with the declaration in the wil6210.h
|
|
|
*/
|
|
|
const struct fw_map fw_mapping[] = {
|
|
|
- {0x000000, 0x040000, 0x8c0000, "fw_code"}, /* FW code RAM 256k */
|
|
|
- {0x800000, 0x808000, 0x900000, "fw_data"}, /* FW data RAM 32k */
|
|
|
- {0x840000, 0x860000, 0x908000, "fw_peri"}, /* periph. data RAM 128k */
|
|
|
- {0x880000, 0x88a000, 0x880000, "rgf"}, /* various RGF 40k */
|
|
|
- {0x88a000, 0x88b000, 0x88a000, "AGC_tbl"}, /* AGC table 4k */
|
|
|
- {0x88b000, 0x88c000, 0x88b000, "rgf_ext"}, /* Pcie_ext_rgf 4k */
|
|
|
- {0x88c000, 0x88c200, 0x88c000, "mac_rgf_ext"}, /* mac_ext_rgf 512b */
|
|
|
- {0x8c0000, 0x949000, 0x8c0000, "upper"}, /* upper area 548k */
|
|
|
- /*
|
|
|
- * 920000..930000 ucode code RAM
|
|
|
- * 930000..932000 ucode data RAM
|
|
|
- * 932000..949000 back-door debug data
|
|
|
+ /* FW code RAM 256k */
|
|
|
+ {0x000000, 0x040000, 0x8c0000, "fw_code", true},
|
|
|
+ /* FW data RAM 32k */
|
|
|
+ {0x800000, 0x808000, 0x900000, "fw_data", true},
|
|
|
+ /* periph data 128k */
|
|
|
+ {0x840000, 0x860000, 0x908000, "fw_peri", true},
|
|
|
+ /* various RGF 40k */
|
|
|
+ {0x880000, 0x88a000, 0x880000, "rgf", true},
|
|
|
+ /* AGC table 4k */
|
|
|
+ {0x88a000, 0x88b000, 0x88a000, "AGC_tbl", true},
|
|
|
+ /* Pcie_ext_rgf 4k */
|
|
|
+ {0x88b000, 0x88c000, 0x88b000, "rgf_ext", true},
|
|
|
+ /* mac_ext_rgf 512b */
|
|
|
+ {0x88c000, 0x88c200, 0x88c000, "mac_rgf_ext", true},
|
|
|
+ /* upper area 548k */
|
|
|
+ {0x8c0000, 0x949000, 0x8c0000, "upper", true},
|
|
|
+ /* UCODE areas - accessible by debugfs blobs but not by
|
|
|
+ * wmi_addr_remap. UCODE areas MUST be added AFTER FW areas!
|
|
|
*/
|
|
|
+ /* ucode code RAM 128k */
|
|
|
+ {0x000000, 0x020000, 0x920000, "uc_code", false},
|
|
|
+ /* ucode data RAM 16k */
|
|
|
+ {0x800000, 0x804000, 0x940000, "uc_data", false},
|
|
|
};
|
|
|
|
|
|
struct blink_on_off_time led_blink_time[] = {
|
|
|
@@ -108,7 +118,7 @@ struct blink_on_off_time led_blink_time[] = {
|
|
|
u8 led_polarity = LED_POLARITY_LOW_ACTIVE;
|
|
|
|
|
|
/**
|
|
|
- * return AHB address for given firmware/ucode internal (linker) address
|
|
|
+ * return AHB address for given firmware internal (linker) address
|
|
|
* @x - internal address
|
|
|
* If address have no valid AHB mapping, return 0
|
|
|
*/
|
|
|
@@ -117,7 +127,8 @@ static u32 wmi_addr_remap(u32 x)
|
|
|
uint i;
|
|
|
|
|
|
for (i = 0; i < ARRAY_SIZE(fw_mapping); i++) {
|
|
|
- if ((x >= fw_mapping[i].from) && (x < fw_mapping[i].to))
|
|
|
+ if (fw_mapping[i].fw &&
|
|
|
+ ((x >= fw_mapping[i].from) && (x < fw_mapping[i].to)))
|
|
|
return x + fw_mapping[i].host - fw_mapping[i].from;
|
|
|
}
|
|
|
|