[PATCH 1/1] [U-Boot, v4, 1/1]net: phy: Add the Airoha EN8811H PHY driver

Lucien.Jheng lucienzx159 at gmail.com
Mon Sep 22 00:59:10 CEST 2025


Hi Marek

Marek Vasut 於 2025/9/22 上午 06:40 寫道:
> On 9/15/25 4:35 PM, Lucien.Jheng wrote:
>
> Hi,
>
> sorry for the late reply.
>
>>>> +__weak int en8811h_read_fw(void **addr)
>>>
>>> Does this still have to be a __weak function, now that it uses 
>>> generic fw loader ?
>>>
>>>> +{
>>>> +    void *buffer;
>>>> +    int ret;
>>>> +
>>>> +    if (!IS_ENABLED(CONFIG_FS_LOADER))
>>>> +        return -EOPNOTSUPP;
>>>> +
>>>> +    buffer = malloc(EN8811H_MD32_DM_SIZE + EN8811H_MD32_DSP_SIZE);
>>>> +    if (!buffer) {
>>>> +        printf("Failed to allocate memory for firmware\n");
>>>> +        return -ENOMEM;
>>>> +    }
>>>> +
>>>> +    ret = request_firmware_into_buf_via_script(&buffer,
>>>
>>> I think 'buffer' without the & should be used here.
>>
>> Regarding buffer,
>>
>> I've reviewed the function definition for 
>> request_firmware_into_buf_via_script.
>> The first parameter is void **buf, which is a pointer to a pointer.
>>
>> I think passing &buffer is the correct way to call this function.
>>
>> If we were to pass just buffer (a void *), the function would receive 
>> a copy of the pointer's value, and any memory allocation inside the 
>> function would not be reflected in our original buffer variable.
>>
>> Please let me know if my understanding is incorrect, as I want to 
>> ensure I'm using the function as intended.
> I was confused by the current request_firmware_into_buf_via_script() 
> interface.
>
> In the current design, passing pointer to pointer into 
> request_firmware_into_buf_via_script() is not necessary, because the 
> request_firmware_into_buf_via_script() function internally does 
> memcpy() into the 'buf' buffer, and for that to work, pointer to 
> pointer is not necessary, plain pointer to buffer would do just fine.
>
> I think this current interface which does memcpy() is actually better 
> than the one I originally suggested which would use memdup(), so let's 
> keep it.
>
> I now sent an update patch to remove the pointer to pointer:
>
> [PATCH] misc: fs_loader: Use buffer pointer in 
> request_firmware_into_buf_via_script()
>
> That should be all I hope.

Thank you for sharing.

After your patch commit, I will update the driver again.



More information about the U-Boot mailing list