Aw: [U-Boot, v3, 1/1]net: phy: Add the Airoha EN8811H PHY driver
Frank Wunderlich
frank-w at public-files.de
Mon Jul 21 18:33:01 CEST 2025
Am 21. Juli 2025 18:19:54 MESZ schrieb Marek Vasut <marek.vasut at mailbox.org>:
>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 ?
It depends on how generic loader interface works,but yes for the fw one if subsystem, partition, basepath
should be defined globally and vendorpath and filename is set by driver these could be dropped and also code below has only 2 calls
to fsloader passing vendorpath and filename.
regards Frank
More information about the U-Boot
mailing list