wifi: rtw89: 8922a: set memory heap address for secure firmware
authorPing-Ke Shih <pkshih@realtek.com>
Fri, 1 Sep 2023 07:39:56 +0000 (15:39 +0800)
committerKalle Valo <kvalo@kernel.org>
Thu, 7 Sep 2023 05:57:16 +0000 (08:57 +0300)
Secure firmware is protected by public/private key cryptography. To help
firmware self verify integrity, configure a heap address for these
data before downloading firmware.

Signed-off-by: Ping-Ke Shih <pkshih@realtek.com>
Signed-off-by: Kalle Valo <kvalo@kernel.org>
Link: https://lore.kernel.org/r/20230901073956.54203-9-pkshih@realtek.com
drivers/net/wireless/realtek/rtw89/fw.c
drivers/net/wireless/realtek/rtw89/reg.h

index e69cc3ec0eb97ddf40fa7a1b65810b24859f1196..dc951cf95576822eef6a4a079c4441b105562b68 100644 (file)
@@ -912,6 +912,10 @@ static int rtw89_fw_download_suit(struct rtw89_dev *rtwdev,
                return ret;
        }
 
+       if (rtwdev->chip->chip_id == RTL8922A &&
+           (fw_suit->type == RTW89_FW_NORMAL || fw_suit->type == RTW89_FW_WOWLAN))
+               rtw89_write32(rtwdev, R_BE_SECURE_BOOT_MALLOC_INFO, 0x20248000);
+
        ret = mac->fwdl_check_path_ready(rtwdev, true);
        if (ret) {
                rtw89_err(rtwdev, "[ERR]H2C path ready\n");
index 55ba995da1bc3a597ce6ac056b5c980d47d28ae7..95dc51eb515f4792c2d0dbd5bebd70de402e2ac1 100644 (file)
 #define B_BE_LPS_STATUS BIT(3)
 #define B_BE_HCI_TXDMA_BUSY BIT(2)
 
+#define R_BE_SECURE_BOOT_MALLOC_INFO 0x0184
+
 #define R_BE_WCPU_FW_CTRL 0x01E0
 #define B_BE_RUN_ENV_MASK GENMASK(31, 30)
 #define B_BE_WCPU_FWDL_STATUS_MASK GENMASK(29, 26)