X-Git-Url: https://jxself.org/git/?p=carl9170fw.git;a=blobdiff_plain;f=carlfw%2Fsrc%2Ffw.c;h=b621813c1e1be339c4ee275dc652bd39e083ddc6;hp=00dd221ae93dd97d2b8941bab8096fb2f859d6cf;hb=af915846d44d23adc02c7ded807282d607b46faa;hpb=e72388a0aa23da8bc8e24a0cbe9d523c5a9ce294 diff --git a/carlfw/src/fw.c b/carlfw/src/fw.c index 00dd221..b621813 100644 --- a/carlfw/src/fw.c +++ b/carlfw/src/fw.c @@ -3,7 +3,7 @@ * * Firmware descriptor * - * Copyright 2009, 2010 Christian Lamparter + * Copyright 2009-2011 Christian Lamparter * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by @@ -33,58 +33,63 @@ const struct carl9170_firmware_descriptor __section(fwdsc) carl9170fw_desc = { FILL(otus, OTUS, - .fw_feature_set = cpu_to_le32(BIT(CARL9170FW_DUMMY_FEATURE) | + .feature_set = cpu_to_le32(BIT(CARL9170FW_DUMMY_FEATURE) | + BIT(CARL9170FW_USB_RESP_EP2) | + BIT(CARL9170FW_HANDLE_BACK_REQ) | + BIT(CARL9170FW_RX_FILTER) | +#ifdef CONFIG_CARL9170FW_USB_INIT_FIRMWARE + BIT(CARL9170FW_USB_INIT_FIRMWARE) | +# ifdef CONFIG_CARL9170FW_USB_UP_STREAM + BIT(CARL9170FW_USB_UP_STREAM) | +# endif /* CONFIG_CARL9170FW_USB_UP_STREAM */ +# ifdef CONFIG_CARL9170FW_USB_DOWN_STREAM + BIT(CARL9170FW_USB_DOWN_STREAM) | +# endif /* CONFIG_CARL9170FW_USB_DOWN_STREAM */ +#endif /* CONFIG_CARL9170FW_USB_INIT_FIRMWARE */ #ifdef CONFIG_CARL9170FW_RADIO_FUNCTIONS - BIT(CARL9170FW_COMMAND_PHY) | + BIT(CARL9170FW_COMMAND_PHY) | + BIT(CARL9170FW_PSM) | #endif /* CONFIG_CARL9170FW_RADIO_FUNCTIONS */ #ifdef CONFIG_CARL9170FW_SECURITY_ENGINE - BIT(CARL9170FW_COMMAND_CAM) | + BIT(CARL9170FW_COMMAND_CAM) | #endif /* CONFIG_CARL9170FW_SECURITY_ENGINE */ #ifdef CONFIG_CARL9170FW_CAB_QUEUE - BIT(CARL9170FW_WLANTX_CAB) | + BIT(CARL9170FW_WLANTX_CAB) | #endif /* CONFIG_CARL9170FW_CAB_QUEUE */ -#ifdef CONFIG_CARL9170FW_HANDLE_BACK_REQ - BIT(CARL9170FW_HANDLE_BACK_REQ) | -#endif /* CONFIG_CARL9170FW_HANDLE_BACK_REQ */ #ifdef CONFIG_CARL9170FW_UNUSABLE - BIT(CARL9170FW_UNUSABLE) | + BIT(CARL9170FW_UNUSABLE) | #endif /* CONFIG_CARL9170FW_UNUSABLE */ #ifdef CONFIG_CARL9170FW_GPIO_INTERRUPT - BIT(CARL9170FW_GPIO_INTERRUPT) | + BIT(CARL9170FW_GPIO_INTERRUPT) | #endif /* CONFIG_CARL9170FW_GPIO_INTERRUPT */ -#ifdef CONFIG_CARL9170FW_PSM - BIT(CARL9170FW_PSM) | -#endif - (0)), +#ifdef CONFIG_CARL9170FW_WOL + BIT(CARL9170FW_WOL) | +#endif /* CONFIG_CARL9170FW_WOL */ + (0)), + + .miniboot_size = cpu_to_le16(0), + .tx_descs = AR9170_TX_BLOCK_NUMBER, + .cmd_bufs = CARL9170_INT_RQ_CACHES, + .rx_max_frame_len = cpu_to_le16(CONFIG_CARL9170FW_RX_FRAME_LEN), + .tx_frag_len = cpu_to_le16(AR9170_BLOCK_SIZE), + .fw_address = cpu_to_le32(AR9170_PRAM_OFFSET), .bcn_addr = (__le32) cpu_to_le32(&dma_mem.reserved.bcn), .bcn_len = (__le16) cpu_to_le16(sizeof(dma_mem.reserved.bcn)), .vif_num = CARL9170_INTF_NUM, .api_ver = CONFIG_CARL9170FW_RELEASE_VERSION, ), - FILL(usb, USB, - .usb_feature_set = cpu_to_le32(BIT(CARL9170FW_USB_DUMMY_FEATURE) | - BIT(CARL9170FW_USB_RESP_EP2) | -#ifdef CONFIG_CARL9170FW_USB_INIT_FIRMWARE - BIT(CARL9170FW_USB_INIT_FIRMWARE) | -# ifdef CONFIG_CARL9170FW_USB_UP_STREAM - BIT(CARL9170FW_USB_UP_STREAM) | -# endif /* CONFIG_CARL9170FW_USB_UP_STREAM */ -# ifdef CONFIG_CARL9170FW_USB_DOWN_STREAM - BIT(CARL9170FW_USB_DOWN_STREAM) | -# endif /* CONFIG_CARL9170FW_USB_DOWN_STREAM */ -#endif /* CONFIG_CARL9170FW_USB_INIT_FIRMWARE */ -#ifdef CONFIG_CARL9170FW_USB_WATCHDOG - BIT(CARL9170FW_USB_WATCHDOG) | -#endif /* CONFIG_CARL9170FW_USB_WATCHDOG */ - (0)), + FILL(txsq, TXSQ, + .seq_table_addr = cpu_to_le32(&fw.wlan.sequence), + ), - .miniboot_size = cpu_to_le16(0), - .tx_descs = AR9170_TX_BLOCK_NUMBER, - .rx_max_frame_len = cpu_to_le16(CONFIG_CARL9170FW_RX_FRAME_LEN), - .tx_frag_len = cpu_to_le16(AR9170_BLOCK_SIZE), - .fw_address = cpu_to_le32(AR9170_PRAM_OFFSET), +#ifdef CONFIG_CARL9170FW_WOL + FILL(wol, WOL, + .supported_triggers = BIT(CARL9170_WOL_DISCONNECT) | + BIT(CARL9170_WOL_MAGIC_PKT), ), +#endif /* CONFIG_CARL9170FW_WOL */ + FILL(motd, MOTD, .fw_year_month_day = cpu_to_le32( @@ -95,10 +100,11 @@ const struct carl9170_firmware_descriptor __section(fwdsc) carl9170fw_desc = { .release = CARL9170FW_VERSION_GIT), FILL(dbg, DBG, - .bogoclock_addr = cpu_to_le32(&fw.bogoclock), + .bogoclock_addr = cpu_to_le32(0), .counter_addr = cpu_to_le32(&fw.counter), .rx_total_addr = cpu_to_le32(&fw.wlan.rx_total), .rx_overrun_addr = cpu_to_le32(&fw.wlan.rx_overruns), + .rx_filter = cpu_to_le32(&fw.wlan.rx_filter), ), FILL(last, LAST),