wireless/scsc: introduce up_wlan_get_firmware()
authorHeesub Shin <heesub.shin@samsung.com>
Thu, 13 Apr 2017 08:20:58 +0000 (17:20 +0900)
committerHeesub Shin <heesub.shin@samsung.com>
Tue, 18 Apr 2017 03:02:18 +0000 (12:02 +0900)
This commit adds a new board-specific function, up_wlan_get_firmware()
that returns the address to flash region WiFi Firmware is stored.

Change-Id: I2f73f12b9e31188ee5e0777ab042eb577256ef03
Signed-off-by: Heesub Shin <heesub.shin@samsung.com>
os/arch/arm/src/artik053/src/artik053_wlan.c
os/arch/arm/src/sidk_s5jt200/src/s5jt200_wlan.c
os/drivers/wireless/scsc/misc/mif_reg.h
os/drivers/wireless/scsc/misc/mxman.c
os/drivers/wireless/scsc/misc/platform_mif.c

index ba29310..8cd8358 100644 (file)
@@ -149,6 +149,11 @@ int up_wlan_get_mac_addr(char *macaddr)
        return 0;
 }
 
+void *up_wlan_get_firmware(void)
+{
+       return (void *)0x04048000;
+}
+
 void up_wlan_init(struct netif *dev)
 {
        struct ip_addr ipaddr;
index 0be7e6f..43215f1 100644 (file)
@@ -153,6 +153,11 @@ int up_wlan_get_mac_addr(char *macaddr)
        return 0;
 }
 
+void *up_wlan_get_firmware(void)
+{
+       return (void *)0x04048000;
+}
+
 struct netif *wlan_netif;
 
 void up_wlan_init(struct netif *dev)
index eb214ad..0a07292 100644 (file)
@@ -133,9 +133,6 @@ struct peterson_mutex {
 #define WIFI2AP_PMU_SPARE0      ((void *)(PMU_ALIVE_BASE + 0x0900))       /* Control PMU_SPARE0 */
 
 /* Wi-Fi Firmware load address */
-#define WLAN_FW_LOAD_ADDR               0x04048000
-
-#define WIFI_FW_LOAD_BASE               (WLAN_FW_LOAD_ADDR >> 12) /* Base address where the Wi-Fi firmware is loaded */
 #define WIFI_IRAM_MEM_BASE              0x2020                    /* Base address for iRAM mappings */
 #define WIFI_IMEM_SIZE                  0x800                     /* Mapped flash region up to the top of the iram_shared block (8 MB) */
 
index f40885d..5093276 100644 (file)
@@ -448,7 +448,7 @@ static int fw_init(struct mxman *mxman, bool *fwhdr_parsed_ok)
        int          r;
        char         *build_id;
        struct fwhdr *fwhdr = &mxman->fwhdr;
-       char         *fw = (void *)WLAN_FW_LOAD_ADDR;
+       char         *fw = (void *)up_wlan_get_firmware();
 
        r = fwhdr_init(fw, fwhdr, fwhdr_parsed_ok, &mxman->check_crc);
        if (r) {
index 0f2bf39..0b828f5 100644 (file)
@@ -329,7 +329,7 @@ static int platform_mif_reset(struct scsc_mif_abs *interface, bool reset)
        if (enable_platform_mif_arm_reset || !reset) {
                if (!reset) { /* Release from reset */
                        /* Set WIFI_MEM_BA0 */
-                       val = WIFI_FW_LOAD_BASE;
+                       val = up_wlan_get_firmware() >> 12;
                        putreg32(val, WIFI2AP_MEM_CONFIG1);
 
                        /* Set WIFI_MEM_BA1 */