wifi6 Linux driver - Intel ax201 wifi driver - 4 - firmware
續前篇: intel ax201 pcie/probe 認卡
發生:
no suitable firmware found!
minimum version required: iwlwifi-QuZ-a0-hr-b0-39
maximum version supported: iwlwifi-QuZ-a0-hr-b0-50
在 Intel 官網上 所下載的 iwlwifi-Qu-48.13675109.0.tgz
並沒有這個 firmware, 但可以從 linux-firmware 這個 github 得到.
這相關程式是在
iwl_drv_start() -> iwl_request_firmware() 中
--
IS_ERR() 判斷是看是否這 ptr 值 >= -MAX_ERRNO(4095) , 也就是 0xFFFFF001
這相關的定義在 linux/err.h
這是因為 Linux 內核分配, 0~3G 是 用戶空間, 3G~4G 是 內核空間,
而在這0xFFFF001之後的大小只有 4K 不到, 而一個 page size 至少是 4K.
所以可以用這方式 判斷這個值並非指標值, 而是 error number.
回傳時可以用 ERR_PTR() 直接轉換成 (void *) 指標值即可.
而轉回 errno 也很容易, 可以用 PTR_ERR() 轉回 long 型態即可.
--
這問題並非發生在 iwl_request_firmware 的回傳值, (0)
而是在 callback function, 所以我們會先看到 probe function 做完, 然後才是 callback function 的訊息.
request_firmware_nowait(THIS_MODULE, 1, drv->firmware_name,
drv->trans->dev,
GFP_KERNEL, drv, iwl_req_fw_callback);
--
設定 cpu 的 affinity : irq_set_affinity_hint
接下來乾脆先把 fw/ 底下先都換到 kernel 5.4 的 iwlwifi.
解決 compile error 中....
發生:
no suitable firmware found!
minimum version required: iwlwifi-QuZ-a0-hr-b0-39
maximum version supported: iwlwifi-QuZ-a0-hr-b0-50
在 Intel 官網上 所下載的 iwlwifi-Qu-48.13675109.0.tgz
並沒有這個 firmware, 但可以從 linux-firmware 這個 github 得到.
這相關程式是在
iwl_drv_start() -> iwl_request_firmware() 中
--
IS_ERR() 判斷是看是否這 ptr 值 >= -MAX_ERRNO(4095) , 也就是 0xFFFFF001
這相關的定義在 linux/err.h
這是因為 Linux 內核分配, 0~3G 是 用戶空間, 3G~4G 是 內核空間,
而在這0xFFFF001之後的大小只有 4K 不到, 而一個 page size 至少是 4K.
所以可以用這方式 判斷這個值並非指標值, 而是 error number.
回傳時可以用 ERR_PTR() 直接轉換成 (void *) 指標值即可.
而轉回 errno 也很容易, 可以用 PTR_ERR() 轉回 long 型態即可.
--
這問題並非發生在 iwl_request_firmware 的回傳值, (0)
而是在 callback function, 所以我們會先看到 probe function 做完, 然後才是 callback function 的訊息.
request_firmware_nowait(THIS_MODULE, 1, drv->firmware_name,
drv->trans->dev,
GFP_KERNEL, drv, iwl_req_fw_callback);
--
設定 cpu 的 affinity : irq_set_affinity_hint
接下來乾脆先把 fw/ 底下先都換到 kernel 5.4 的 iwlwifi.
解決 compile error 中....
留言
張貼留言