[U-Boot] [PATCH 1/5] remoteproc: elf_loader: Add elf resource table load support
fabien.dessenne at st.com
Wed Oct 30 09:50:49 UTC 2019
On 30/10/2019 2:49 AM, Simon Glass wrote:
> Hi Fabien,
> On Tue, 22 Oct 2019 at 03:08, Fabien DESSENNE <fabien.dessenne at st.com> wrote:
>> Hi Simon,
>> On 22/10/2019 1:47 AM, Simon Glass wrote:
>>> Hi Fabien,
>>> On Wed, 9 Oct 2019 at 09:36, Fabien Dessenne <fabien.dessenne at st.com> wrote:
>>>> Add rproc_elf_load_rsc_table(), which searches for a resource table in
>>>> an elf64/elf32 image, and if found, copies it to device memory.
>>>> Add also the elf32 and elf64 variants of this API.
>>>> Add a test for this.
>>>> Signed-off-by: Fabien Dessenne <fabien.dessenne at st.com>
>>>> drivers/remoteproc/rproc-elf-loader.c | 269 ++++++++++++++++++++++++++++++++++
>>>> include/remoteproc.h | 70 +++++++++
>>>> test/dm/remoteproc.c | 91 ++++++++++--
>>>> 3 files changed, 419 insertions(+), 11 deletions(-)
>>> If you are putting stuff in the image, should you use binman to build
>>> the image, then find the contents using the binman tables?
>> The "resource table" may be located anywhere, there is no strict rule
>> defining where it is expected to be.
>> Nevertheless the Linux remoteproc and OpenAmp (running RTOS) 
>> frameworks expect the resource table to be stored in a dedicated ELF
>> section. Both of them run some ELF scanning to find out this section.
>> The proposed patch is for the "ELF section" variant of the resource table.
>> Other variants like binman packing may be proposed as well, both
>> implementations can coexist alongside.
> So why not use binman to pack the image and find the components? This
> is U-Boot, after all.
Packing the firmware together with the other U-Boot components is
acceptable if the firmware is controlled only by U-Boot.
My requirement is that the coprocessor firmware shall be loaded by
U-Boot or by Linux.
You can have a look at  for more details on the way this is handled
on STM32 MPU. In that case, the .elf firmware is stored in a in File
System that can be read by both U-Boot and Linux.
If we have the firmware packed in the image (for U-Boot), we need to
have a copy in the FileSystem (for Linux) which would not be a good idea.
>>  https://www.kernel.org/doc/Documentation/remoteproc.txt
>>> Scanning the image for a table seems a bit horrible.
More information about the U-Boot