Hello Edoardo,
I don't know if "Chocolate Doom" is the homonymous video game, but unfortunately I wasn't able to play it cause an infinite "I_init: setting up machine state", the audio driver was the bsd_audio_drv while the wm was the themed_wm (internet connection under nic_router), do you know if I am doing anything wrong? I am not big fans of video games, but I would like to try it!
This is a known problem - some archives referenced by my index no longer work on vanilla Sculpt-20.08. Since I do not plan to update the archives I removed my index file to prevent others from stumpling upon this issue.
Josef, I started yesterday studying how Genode handles wifi connections, it is almost identical to Linux, for the software stack (mac80211 and cfg80211) but I haven't understood why in firmware.cc ( the text file you linked to me ), in Fw_list struct some firmware images have NULL as available name while others have their correspondent name? Are still unimplemented some models ?
For some devices the driver will ask for a different firmware version than is available because the the driver supports a range of different versions. However, not all supported firmware versions are publicly available (or were not at the time support for a device was added to the wifi_drv). In this case we supply the firmware version we have at hand. If you follow the implementation of 'request_firmware_nowait()' the intention becomes clear.
I would like to start writing a software stack for BLE, any hints? Bluez could be a good starting point but honestly, I have no idea of how to port it on A non Unix system.
I have no experience with BLE; the general approach would be to look at how other OS' implement the stack - which parts are implemented by a kernel driver and which parts are implemented as user-land component and go from there.
One example would by our USB LTE modem stack where we ported the kernel driver from Linux and created a driver component that presents the data channel as a Uplink session and the management channel as a Terminal session. The 'mbimcli' port uses the Terminal session via the libc and VFS to perform the necessary configuration of the modem while the Uplink is used to transfer the data. So in this case you have two components, a driver and a configuration component.
Regards Josef