diff --git a/drivers/net/phy/Kconfig b/drivers/net/phy/Kconfig index 8141736e18d..7b03c920db1 100644 --- a/drivers/net/phy/Kconfig +++ b/drivers/net/phy/Kconfig @@ -106,6 +106,9 @@ config PHY_AIROHA_FW_IN_UBI config PHY_AIROHA_FW_IN_MTD bool "Airoha firmware in MTD partition on raw flash" +config PHY_AIROHA_FW_BUILTIN + bool "Airoha firmware builtin in uboot binary" + endchoice menuconfig PHY_AQUANTIA diff --git a/drivers/net/phy/air_en8811h.c b/drivers/net/phy/air_en8811h.c index 07caa046db2..e1a8147966a 100644 --- a/drivers/net/phy/air_en8811h.c +++ b/drivers/net/phy/air_en8811h.c @@ -29,6 +29,10 @@ #include #endif +#if CONFIG_PHY_AIROHA_FW_BUILTIN +#include "air_en8811h_fw.h" +#endif + #if AIR_UBOOT_REVISION > 0x202004 #include #endif @@ -311,7 +315,11 @@ static int en8811h_load_firmware(struct phy_device *phydev) return -ENOMEM; } -#if CONFIG_PHY_AIROHA_FW_IN_UBI +#if CONFIG_PHY_AIROHA_FW_BUILTIN + //firmware_buf=EthMD32_dm; + memcpy(firmware_buf,EthMD32_dm,EN8811H_MD32_DM_SIZE+EN8811H_MD32_DSP_SIZE); + //memcpy((void *)(firmware_buf+EN8811H_MD32_DM_SIZE),EthMD32_pm,EthMD32_pm_size); +#elif CONFIG_PHY_AIROHA_FW_IN_UBI ret = ubi_volume_read("en8811h-fw", firmware_buf, EN8811H_MD32_DM_SIZE + EN8811H_MD32_DSP_SIZE); if (ret) { printf("[Airoha] read firmware from UBI failed.\n");