#define SBSDIO_CIS_SIZE_LIMIT 0x200 /* maximum bytes in one CIS */\r
\r
const static char *bcm4330b2_fw_name[] = {\r
- "fw_bcm40183b2.bin",\r
- "fw_bcm40183b2_apsta.bin",\r
- "fw_bcm40183b2_p2p.bin",\r
+ "fw_RK903b2.bin",
+ "fw_RK903b2_apsta.bin",
+ "fw_RK903b2_p2p.bin",
"fw_bcm40183b2_es.bin",\r
- "fw_bcm40183b2_mfg.bin"\r
+ "fw_RK903b2_mfg.bin"
};\r
\r
const static char *bcm4330b2_ag_fw_name[] = {\r
- "fw_bcm40183b2_ag.bin",\r
- "fw_bcm40183b2_ag_apsta.bin",\r
- "fw_bcm40183b2_ag_p2p.bin",\r
+ "fw_RK903_ag.bin",
+ "fw_RK903_ag_apsta.bin",
+ "fw_RK903_ag_p2p.bin",
"fw_bcm40183b2_ag_es.bin",\r
- "fw_bcm40183b2_ag_mfg.bin"\r
+ "fw_RK903_ag_mfg.bin"
};\r
\r
const static char *bcm43362a0_fw_name[] = {\r
- "fw_bcm40181a0.bin",\r
- "fw_bcm40181a0_apsta.bin",\r
- "fw_bcm40181a0_p2p.bin",\r
+ "fw_RK901a0.bin",
+ "fw_RK901a0_apsta.bin",
+ "fw_RK901a0_p2p.bin",
"fw_bcm40181a0_es.bin",\r
- "fw_bcm40181a0_mfg.bin"\r
+ "fw_RK901a0_mfg.bin"
};\r
\r
const static char *bcm43362a2_fw_name[] = {\r
- "fw_bcm40181a2.bin",\r
- "fw_bcm40181a2_apsta.bin",\r
- "fw_bcm40181a2_p2p.bin",\r
+ "fw_RK901a2.bin",
+ "fw_RK901a2_apsta.bin",
+ "fw_RK901a2_p2p.bin",
"fw_bcm40181a2_es.bin",\r
- "fw_bcm40181a2_mfg.bin"\r
+ "fw_RK901a2_mfg.bin"
};\r
\r
const static char *bcm4334b1_ag_fw_name[] = {\r
#endif\r
\r
void\r
-dhd_conf_set_fw_name_by_chip(dhd_pub_t *dhd, char *fw_path)\r
+dhd_conf_set_fw_name_by_chip(dhd_pub_t *dhd, char *fw_path, char *nv_path)
{\r
int fw_type, ag_type;\r
uint chip, chiprev;\r
- int i;\r
+ int i, j;
\r
chip = dhd->conf->chip;\r
chiprev = dhd->conf->chiprev;\r
if (fw_path[i] == '/') break;\r
i--;\r
}\r
+ j = strlen(nv_path);
+ while (j > 0) {
+ if (nv_path[j] == '/')
+ break;
+ j--;
+ }
#ifdef BAND_AG\r
ag_type = FW_TYPE_AG;\r
#else\r
} else {\r
if (chiprev == BCM4330B2_CHIP_REV)\r
strcpy(&fw_path[i+1], bcm4330b2_ag_fw_name[fw_type]);\r
+ strcpy(&nv_path[j + 1], "nvram_AP6330.txt");
break;\r
}\r
case BCM43362_CHIP_ID:\r
strcpy(&fw_path[i+1], bcm43362a0_fw_name[fw_type]);\r
else\r
strcpy(&fw_path[i+1], bcm43362a2_fw_name[fw_type]);\r
+ if (!strstr(nv_path, "6476"))
+ strcpy(&nv_path[j + 1], "nvram_AP6210.txt");
break;\r
case BCM43430_CHIP_ID:\r
if (chiprev == BCM43430A0_CHIP_REV)\r
strcpy(&fw_path[i+1], bcm43438a0_fw_name[fw_type]);\r
else if (chiprev == BCM43430A1_CHIP_REV)\r
strcpy(&fw_path[i+1], bcm43438a1_fw_name[fw_type]);\r
+ strcpy(&nv_path[j + 1], "nvram_ap6212.txt");
break;\r
case BCM4334_CHIP_ID:\r
if (chiprev == BCM4334B1_CHIP_REV)\r
case BCM4324_CHIP_ID:\r
if (chiprev == BCM43241B4_CHIP_REV)\r
strcpy(&fw_path[i+1], bcm43241b4_ag_fw_name[fw_type]);\r
+ strcpy(&nv_path[j + 1], "nvram_ap62x2.txt");
break;\r
case BCM4335_CHIP_ID:\r
if (chiprev == BCM4335A0_CHIP_REV)\r
case BCM43454_CHIP_ID:\r
if (chiprev == BCM43455C0_CHIP_REV)\r
strcpy(&fw_path[i+1], bcm43455c0_ag_fw_name[fw_type]);\r
+ strcpy(&nv_path[j + 1], "nvram_ap6255.txt");
break;\r
case BCM4339_CHIP_ID:\r
if (chiprev == BCM4339A0_CHIP_REV)\r
strcpy(&fw_path[i+1], bcm4339a0_ag_fw_name[fw_type]);\r
+ strcpy(&nv_path[j + 1], "nvram_AP6335.txt");
break;\r
case BCM4354_CHIP_ID:\r
- if (chiprev == BCM4354A1_CHIP_REV)\r
+ if (chiprev == BCM4354A1_CHIP_REV) {
strcpy(&fw_path[i+1], bcm4354a1_ag_fw_name[fw_type]);\r
- else if (chiprev == BCM4356A2_CHIP_REV)\r
+ strcpy(&nv_path[j + 1], "nvram_ap6354.txt");
+ } else if (chiprev == BCM4356A2_CHIP_REV) {
strcpy(&fw_path[i+1], bcm4356a2_ag_fw_name[fw_type]);\r
+ strcpy(&nv_path[j + 1], "nvram_ap6356.txt");
+ }
break;\r
case BCM4356_CHIP_ID:\r
case BCM4371_CHIP_ID:\r
if (chiprev == BCM4356A2_CHIP_REV)\r
strcpy(&fw_path[i+1], bcm4356a2_ag_fw_name[fw_type]);\r
+ strcpy(&nv_path[j + 1], "nvram_ap6356.txt");
break;\r
case BCM4359_CHIP_ID:\r
if (chiprev == BCM4359B1_CHIP_REV)\r