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

Marek Vasut marek.vasut at mailbox.org
Mon Sep 22 01:14:51 CEST 2025


On 9/22/25 12:59 AM, Lucien.Jheng wrote:
> 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.
Thank you for that. I sent a few trivial nitpicks for V4 too, but 
nothing significant.


More information about the U-Boot mailing list