2.4.1 WLAN

The Linux WLAN implements Linux software-specific operations:
  • Controls the Wi-Fi® Link Controller device power
  • Initializes the chip
  • Downloads and starts the firmware
  • Initializes/de-initializes the module during insert/remove
  • Registers Interrupt Service Register (ISR)
  • Sends configuration packets
  • Turns ON and turns OFF the chip by controlling the CHIP_EN and RESET_N GPIOs
  • Registers the net_device interface
  • Processes TX Queue, sending packets to the firmware
  • Receives packets from the firmware and delivers received packets to the Linux stack
  • Implements the following net_device operations:
    • mac_init_fn: This function will be called automatically by OS when module inserted
    • wilc_mac_open: This function is called when this device is set up using the ifconfig command or on starting the wpa_supplicant service
    • wilc_mac_close: This function is called when the network interface is down (for example, ifconfig wlan0 down)
    • wilc_mac_xmit: Sends packet to MAC hardware
    • mac_stats: Reads MAC statistics
    • wilc_set_multicast_list: Sets the multicast list through WID
    • wilc_set_mac_addr: Sets the network interface MAC address