[PATCH 1/1] drivers: add memory disk support

Heinrich Schuchardt heinrich.schuchardt at canonical.com
Wed Apr 20 08:48:28 CEST 2022



On 4/20/22 01:01, Tom Rini wrote:
> On Wed, Apr 20, 2022 at 12:20:43AM +0200, Heinrich Schuchardt wrote:
>> On 4/19/22 23:54, Simon Glass wrote:
>>> Hi Heinrich,
>>>
>>> On Tue, 19 Apr 2022 at 15:14, Heinrich Schuchardt
>>> <heinrich.schuchardt at canonical.com> wrote:
>>>>
>>>> In some scenarios it is desirable to package U-Boot with other files into
>>>> a single blob. This patch allows to embed a memory disk into the U-Boot
>>>> binary. This memory disk can be accessed like any other block
>>>> device as 'mem 0'.
>>>>
>>>> Signed-off-by: Heinrich Schuchardt <heinrich.schuchardt at canonical.com>
>>>> ---
>>>>    MAINTAINERS                      |   6 ++
>>>>    common/board_r.c                 |   4 +
>>>>    drivers/Kconfig                  |   2 +
>>>>    drivers/Makefile                 |   1 +
>>>>    drivers/block/blk-uclass.c       |   2 +
>>>>    drivers/memdisk/Kconfig          |  13 ++++
>>>>    drivers/memdisk/Makefile         |  11 +++
>>>>    drivers/memdisk/memdisk-uclass.c |  22 ++++++
>>>>    drivers/memdisk/memdisk.c        | 128 +++++++++++++++++++++++++++++++
>>>>    drivers/memdisk/memdisk_file.S   |  17 ++++
>>>>    include/asm-generic/sections.h   |   2 +
>>>>    include/blk.h                    |   1 +
>>>>    include/dm/uclass-id.h           |   1 +
>>>>    include/memdisk.h                |  28 +++++++
>>>>    14 files changed, 238 insertions(+)
>>>>    create mode 100644 drivers/memdisk/Kconfig
>>>>    create mode 100644 drivers/memdisk/Makefile
>>>>    create mode 100644 drivers/memdisk/memdisk-uclass.c
>>>>    create mode 100644 drivers/memdisk/memdisk.c
>>>>    create mode 100644 drivers/memdisk/memdisk_file.S
>>>>    create mode 100644 include/memdisk.h
>>>
>>> Can this use binman to create the image and find the memdisk?
>>
>> binman requires board specific layout information. I cannot see how binman
>> would help for a Kconfig option that can be switched on and off for any
>> board.
>>
>> binman may provide addresses in the control device-tree which later could be
>> relocated. But this seems to result in a larger image size.
> 
> This is something analogous to the initrd/initramfs framework within the
> Linux kernel, yes?
> 

Yes, it is like appending an initrd to a kernel.

Best regards

Heinrich


More information about the U-Boot mailing list