Aw: [U-Boot, v3, 1/1]net: phy: Add the Airoha EN8811H PHY driver
Marek Vasut
marek.vasut at mailbox.org
Mon Jul 21 18:19:54 CEST 2025
On 7/21/25 5:26 PM, frank-w at public-files.de wrote:
> Hi
>
>> Gesendet: Sonntag, 20. Juli 2025 um 14:28
>> Von: "Lucien.Jheng" <lucienzx159 at gmail.com>
>> Betreff: [U-Boot, v3, 1/1]net: phy: Add the Airoha EN8811H PHY driver
>>
>> Add the driver for the Airoha EN8811H 2.5 Gigabit PHY. The PHY supports
>> 100/1000/2500 Mbps with auto negotiation only.
>>
>> The driver uses two firmware files, for which updated versions are added to
>> linux-firmware already.
>>
>> Locating the AIROHA FW within the filesystem at the designated partition
>> and path will trigger its automatic loading and writing to the PHY via MDIO.
>> If need board specific loading override,
>> please override the en8811h_read_fw function on board or architecture level.
>>
>> Linux upstream AIROHA EN8811H driver commit:
>> 71e79430117d56c409c5ea485a263bc0d8083390
>>
>> Based on the Linux upstream AIROHA EN8811H driver code(air_en8811h.c),
>> I have modified the relevant process to align with the U-Boot boot sequence.
>> and have validated this on Banana Pi BPI-R3 Mini.
>>
>> Signed-off-by: Lucien.Jheng <lucienzx159 at gmail.com>
>> ---
>> Change in PATCH v3:
>> air_en8811h.c:
>> * Add U-Boot environment variable(en8811h_fw_part, en8811h_fw_dm_dir, en8811h_fw_dsp_dir)
>> support for firmware loading.
>
> Thank you lucien for taking care of this driver...
Indeed, and thank you for the patience.
>> drivers/net/phy/Kconfig | 25 +
>> drivers/net/phy/Makefile | 1 +
>> drivers/net/phy/air_en8811h.c | 880 ++++++++++++++++++++++++++++++++++
>> 3 files changed, 906 insertions(+)
>> create mode 100644 drivers/net/phy/air_en8811h.c
>>
>> diff --git a/drivers/net/phy/Kconfig b/drivers/net/phy/Kconfig
>> index 8d88c142900..9f12238e1ea 100644
>> --- a/drivers/net/phy/Kconfig
>> +++ b/drivers/net/phy/Kconfig
>> @@ -79,6 +79,31 @@ config PHY_ADIN
>> help
>> Add support for configuring RGMII on Analog Devices ADIN PHYs.
>>
>> +menuconfig PHY_AIROHA
>> + bool "Airoha Ethernet PHYs support"
>> +
>> +config PHY_AIROHA_EN8811H
>> + bool "Airoha Ethernet EN8811H support"
>> + depends on PHY_AIROHA
>> + help
>> + AIROHA EN8811H supported.
>> +
>> +choice
>> + prompt "Location of the Airoha PHY firmware"
>> + default PHY_AIROHA_FW_IN_MMC
>> + depends on PHY_AIROHA_EN8811H
>> +
>> +config PHY_AIROHA_FW_IN_MMC
>> + bool "Airoha firmware in MMC partition"
>> + help
>> + Airoha PHYs use firmware which can be loaded automatically
>> + from storage directly attached to the PHY, and then loaded
>> + via MDIO commands by the boot loader. The firmware is loaded
>> + from a file specified by the U-Boot environment variables
>> + en8811h_fw_part, en8811h_fw_dm_dir, and en8811h_fw_dsp_dir.
>
> maybe something like PHY_AIROHA_FW_IN_SUBSYSTEM = (MMC/USB/NVME/...) as choice? or better PHY_AIROHA_FW_BY_ENV and then check env-var with default "mmc" for maximum on flexibility without recompile.
If we could use the generic loader interface, than these Kconfig symbols
go away altogether , right ?
More information about the U-Boot
mailing list