Hi,
I see — in this case you might want to try using the tcp_terminal in combination with terminal_log and route the LOG session of the wifi_drv accordingly. This atleast enables you to get the wifi_drv messages via TCP :-)
I used this configuration on a different device, but on my target device (Tablet) all I have for the moment is USB.... I also have an usb-nic but it is not detected by Genode's driver.
Yeah, the problem is related to how DMA memory is handled in Linux and with how we deal with it in dde_linux. Almost all memory allocations in the vanilla source, even the ones that are used later on for DMA, are done with GFP_KERNEL. In dde_linux we employ two memory pools. One for “normal” memory and one for memory which may be used for DMA. We introduced a flag (GFP_LX_DMA) to distinguish between the two. Unfortunatly, you have to patch the vanilla sources for this to work (you may take a look at the wifi_mem.patch). Since the wifi_drv was only tested on 6xxx cards only the dvm source is patched. To enable the 7260 card you would have to trace all memory allocations done by this part of the iwlwifi driver and change the flags on all allocations that might end up being used in an DMA transaction.
Thank you for the explanation. I traced down two such allocs and changed the flag accordingly. Now the log is error free (besides the "slab too large" messages mentioned before). However, as it appears the driver is not working. I get the message "iwl driver loaded" but then nothing happens anymore. I guess there should be more output for searching the network, establishing connection etc?
I tried to track down the problem, but so far I only found that wpa_supplicant blocks on it's socket in netlink_init(). The _handle() function which would unblock wpa_supplicant is never called. Oddly, this part seems to work fine without my changes to the DMA memory allocations. Do you have any ideas what might be wrong?
Cheers Christian