mbox series

[v5,0/8] Move framebuffer reservation for SPL to RAM end

Message ID 20231205155523.721784-1-devarsht@ti.com
Headers show
Series Move framebuffer reservation for SPL to RAM end | expand

Message

Devarsh Thakkar Dec. 5, 2023, 3:55 p.m. UTC
Move video memory reservation for SPL at end of RAM so that it does
not interefere with reservations for next stage so that the next stage
need not have holes in between for passed regions and instead it can
maintain continuity in reservations.

Also catch the bloblist before starting reservations to avoid the same
problem.

While at it, also fill missing fields in video handoff struct before
passing it to next stage.

This is as per discussions at :
For moving SPL framebuffer reservation at end of RAM:

https://lore.kernel.org/all/CAPnjgZ3xSoe_G3yrqwuAvoiVjUfZ+YQgkOR0ZTVXGT9VK8TwJg@mail.gmail.com/

For filling missing video handoff fields :
https://lore.kernel.org/all/CAPnjgZ1Hs0rNf0JDirp6YPsOQ5=QqQSP9g9qRwLoOASUV8a4cw@mail.gmail.com/

Changelog:
V2:
- Make a generic function to reserve video memory at SPL stage.
- Add debug prints while skipping framebuffer allocation at uboot.
- Correct commenting style as suggested.

V3:
- Change spl_reserve_video to spl_reserve_video_from_ram_top
  which enforce framebuffer reservation from end of RAM.
- Use gd->ram_top instead of local ram_top and update
  gd->reloc_addr after each reservation.
- Print error message on framebuffer reservation.
- Update SPL doc with spl splash screen specific info.

V4:
- Split patches into atomic commits.
- Remove duplicate check for video blob passed addresses and error out
  if invalid address/size received from blob.
- Improve SPL documentation memory reservation scheme and print message
  for video memory reservation from bloblist. 
- Add Reviewed-By.

V5:
 - Add comment for filling video handoff size with aligned size
 - Use PHASE_BOARD_F while checking for U-boot proper stage
 - Add Reviewed-by

Test logs:
https://gist.github.com/devarsht/30a3c1591270c9ebae00714b48d33058

Devarsh Thakkar (8):
  spl: Enforce framebuffer reservation from end of RAM
  arm: mach-k3: common: Reserve video memory from end of the RAM
  board: ti: am62x: evm: Remove video_setup from spl_board_init
  common/board_f: Catch bloblist before starting reservations
  video: Skip framebuffer reservation if already reserved
  video: Fill video handoff in video post probe
  doc: spl: Add info for missing Kconfigs
  doc: spl: Add info regarding memory reservation

 arch/arm/mach-k3/common.c    | 17 ++++++++++-----
 board/ti/am62x/evm.c         | 18 ----------------
 common/board_f.c             | 41 +++++++++++++++++++++++++++++++-----
 common/spl/spl.c             | 19 +++++++++++++++++
 doc/develop/spl.rst          | 37 ++++++++++++++++++++++++++++++++
 drivers/video/video-uclass.c | 40 ++++++++++++++++++++++++-----------
 include/spl.h                | 10 +++++++++
 7 files changed, 142 insertions(+), 40 deletions(-)

Comments

Devarsh Thakkar Dec. 13, 2023, 2:56 p.m. UTC | #1
Hi Antoine,

On 05/12/23 21:25, Devarsh Thakkar wrote:
> Move video memory reservation for SPL at end of RAM so that it does
> not interefere with reservations for next stage so that the next stage
> need not have holes in between for passed regions and instead it can
> maintain continuity in reservations.
> 
> Also catch the bloblist before starting reservations to avoid the same
> problem.
> 
> While at it, also fill missing fields in video handoff struct before
> passing it to next stage.
> 
> This is as per discussions at :
> For moving SPL framebuffer reservation at end of RAM:
> 
> https://lore.kernel.org/all/CAPnjgZ3xSoe_G3yrqwuAvoiVjUfZ+YQgkOR0ZTVXGT9VK8TwJg@mail.gmail.com/
> 
> For filling missing video handoff fields :
> https://lore.kernel.org/all/CAPnjgZ1Hs0rNf0JDirp6YPsOQ5=QqQSP9g9qRwLoOASUV8a4cw@mail.gmail.com/
> 
> Changelog:
> V2:
> - Make a generic function to reserve video memory at SPL stage.
> - Add debug prints while skipping framebuffer allocation at uboot.
> - Correct commenting style as suggested.
> 
> V3:
> - Change spl_reserve_video to spl_reserve_video_from_ram_top
>   which enforce framebuffer reservation from end of RAM.
> - Use gd->ram_top instead of local ram_top and update
>   gd->reloc_addr after each reservation.
> - Print error message on framebuffer reservation.
> - Update SPL doc with spl splash screen specific info.
> 
> V4:
> - Split patches into atomic commits.
> - Remove duplicate check for video blob passed addresses and error out
>   if invalid address/size received from blob.
> - Improve SPL documentation memory reservation scheme and print message
>   for video memory reservation from bloblist. 
> - Add Reviewed-By.
> 
> V5:
>  - Add comment for filling video handoff size with aligned size
>  - Use PHASE_BOARD_F while checking for U-boot proper stage
>  - Add Reviewed-by
> 

Is it possible to pull this series in if no further comments ?

Regards
Devarsh

> Test logs:
> https://gist.github.com/devarsht/30a3c1591270c9ebae00714b48d33058
> 
> Devarsh Thakkar (8):
>   spl: Enforce framebuffer reservation from end of RAM
>   arm: mach-k3: common: Reserve video memory from end of the RAM
>   board: ti: am62x: evm: Remove video_setup from spl_board_init
>   common/board_f: Catch bloblist before starting reservations
>   video: Skip framebuffer reservation if already reserved
>   video: Fill video handoff in video post probe
>   doc: spl: Add info for missing Kconfigs
>   doc: spl: Add info regarding memory reservation
> 
>  arch/arm/mach-k3/common.c    | 17 ++++++++++-----
>  board/ti/am62x/evm.c         | 18 ----------------
>  common/board_f.c             | 41 +++++++++++++++++++++++++++++++-----
>  common/spl/spl.c             | 19 +++++++++++++++++
>  doc/develop/spl.rst          | 37 ++++++++++++++++++++++++++++++++
>  drivers/video/video-uclass.c | 40 ++++++++++++++++++++++++-----------
>  include/spl.h                | 10 +++++++++
>  7 files changed, 142 insertions(+), 40 deletions(-)
>
Simon Glass Dec. 26, 2023, 9:47 a.m. UTC | #2
On Wed, Dec 13, 2023 at 2:56 PM Devarsh Thakkar <devarsht@ti.com> wrote:
>
> Hi Antoine,
>
> On 05/12/23 21:25, Devarsh Thakkar wrote:
> > Move video memory reservation for SPL at end of RAM so that it does
> > not interefere with reservations for next stage so that the next stage
> > need not have holes in between for passed regions and instead it can
> > maintain continuity in reservations.
> >
> > Also catch the bloblist before starting reservations to avoid the same
> > problem.
> >
> > While at it, also fill missing fields in video handoff struct before
> > passing it to next stage.
> >
> > This is as per discussions at :
> > For moving SPL framebuffer reservation at end of RAM:
> >
> > https://lore.kernel.org/all/CAPnjgZ3xSoe_G3yrqwuAvoiVjUfZ+YQgkOR0ZTVXGT9VK8TwJg@mail.gmail.com/
> >
> > For filling missing video handoff fields :
> > https://lore.kernel.org/all/CAPnjgZ1Hs0rNf0JDirp6YPsOQ5=QqQSP9g9qRwLoOASUV8a4cw@mail.gmail.com/
> >
> > Changelog:
> > V2:
> > - Make a generic function to reserve video memory at SPL stage.
> > - Add debug prints while skipping framebuffer allocation at uboot.
> > - Correct commenting style as suggested.
> >
> > V3:
> > - Change spl_reserve_video to spl_reserve_video_from_ram_top
> >   which enforce framebuffer reservation from end of RAM.
> > - Use gd->ram_top instead of local ram_top and update
> >   gd->reloc_addr after each reservation.
> > - Print error message on framebuffer reservation.
> > - Update SPL doc with spl splash screen specific info.
> >
> > V4:
> > - Split patches into atomic commits.
> > - Remove duplicate check for video blob passed addresses and error out
> >   if invalid address/size received from blob.
> > - Improve SPL documentation memory reservation scheme and print message
> >   for video memory reservation from bloblist.
> > - Add Reviewed-By.
> >
> > V5:
> >  - Add comment for filling video handoff size with aligned size
> >  - Use PHASE_BOARD_F while checking for U-boot proper stage
> >  - Add Reviewed-by
> >
>
> Is it possible to pull this series in if no further comments ?

Yes please, this has been pending for a while.

>
> Regards
> Devarsh
>
> > Test logs:
> > https://gist.github.com/devarsht/30a3c1591270c9ebae00714b48d33058
> >
> > Devarsh Thakkar (8):
> >   spl: Enforce framebuffer reservation from end of RAM
> >   arm: mach-k3: common: Reserve video memory from end of the RAM
> >   board: ti: am62x: evm: Remove video_setup from spl_board_init
> >   common/board_f: Catch bloblist before starting reservations
> >   video: Skip framebuffer reservation if already reserved
> >   video: Fill video handoff in video post probe
> >   doc: spl: Add info for missing Kconfigs
> >   doc: spl: Add info regarding memory reservation
> >
> >  arch/arm/mach-k3/common.c    | 17 ++++++++++-----
> >  board/ti/am62x/evm.c         | 18 ----------------
> >  common/board_f.c             | 41 +++++++++++++++++++++++++++++++-----
> >  common/spl/spl.c             | 19 +++++++++++++++++
> >  doc/develop/spl.rst          | 37 ++++++++++++++++++++++++++++++++
> >  drivers/video/video-uclass.c | 40 ++++++++++++++++++++++++-----------
> >  include/spl.h                | 10 +++++++++
> >  7 files changed, 142 insertions(+), 40 deletions(-)
> >

Regards,
Simon
Devarsh Thakkar Jan. 8, 2024, 8:02 a.m. UTC | #3
Hi Anatolij, Tom,

On 26/12/23 15:17, Simon Glass wrote:
> On Wed, Dec 13, 2023 at 2:56 PM Devarsh Thakkar <devarsht@ti.com> wrote:
>>
>> Hi Antoine,
>>
>> On 05/12/23 21:25, Devarsh Thakkar wrote:
>>> Move video memory reservation for SPL at end of RAM so that it does
>>> not interefere with reservations for next stage so that the next stage
>>> need not have holes in between for passed regions and instead it can
>>> maintain continuity in reservations.
>>>
>>> Also catch the bloblist before starting reservations to avoid the same
>>> problem.
>>>
>>> While at it, also fill missing fields in video handoff struct before
>>> passing it to next stage.
>>>
>>> This is as per discussions at :
>>> For moving SPL framebuffer reservation at end of RAM:
>>>
>>> https://lore.kernel.org/all/CAPnjgZ3xSoe_G3yrqwuAvoiVjUfZ+YQgkOR0ZTVXGT9VK8TwJg@mail.gmail.com/
>>>
>>> For filling missing video handoff fields :
>>> https://lore.kernel.org/all/CAPnjgZ1Hs0rNf0JDirp6YPsOQ5=QqQSP9g9qRwLoOASUV8a4cw@mail.gmail.com/
>>>
>>> Changelog:
>>> V2:
>>> - Make a generic function to reserve video memory at SPL stage.
>>> - Add debug prints while skipping framebuffer allocation at uboot.
>>> - Correct commenting style as suggested.
>>>
>>> V3:
>>> - Change spl_reserve_video to spl_reserve_video_from_ram_top
>>>   which enforce framebuffer reservation from end of RAM.
>>> - Use gd->ram_top instead of local ram_top and update
>>>   gd->reloc_addr after each reservation.
>>> - Print error message on framebuffer reservation.
>>> - Update SPL doc with spl splash screen specific info.
>>>
>>> V4:
>>> - Split patches into atomic commits.
>>> - Remove duplicate check for video blob passed addresses and error out
>>>   if invalid address/size received from blob.
>>> - Improve SPL documentation memory reservation scheme and print message
>>>   for video memory reservation from bloblist.
>>> - Add Reviewed-By.
>>>
>>> V5:
>>>  - Add comment for filling video handoff size with aligned size
>>>  - Use PHASE_BOARD_F while checking for U-boot proper stage
>>>  - Add Reviewed-by
>>>
>>
>> Is it possible to pull this series in if no further comments ?
> 
> Yes please, this has been pending for a while.

Gentle reminder. Is it possible to pick this series ?

Regards
Devarsh

> 
>>
>> Regards
>> Devarsh
>>
>>> Test logs:
>>> https://gist.github.com/devarsht/30a3c1591270c9ebae00714b48d33058
>>>
>>> Devarsh Thakkar (8):
>>>   spl: Enforce framebuffer reservation from end of RAM
>>>   arm: mach-k3: common: Reserve video memory from end of the RAM
>>>   board: ti: am62x: evm: Remove video_setup from spl_board_init
>>>   common/board_f: Catch bloblist before starting reservations
>>>   video: Skip framebuffer reservation if already reserved
>>>   video: Fill video handoff in video post probe
>>>   doc: spl: Add info for missing Kconfigs
>>>   doc: spl: Add info regarding memory reservation
>>>
>>>  arch/arm/mach-k3/common.c    | 17 ++++++++++-----
>>>  board/ti/am62x/evm.c         | 18 ----------------
>>>  common/board_f.c             | 41 +++++++++++++++++++++++++++++++-----
>>>  common/spl/spl.c             | 19 +++++++++++++++++
>>>  doc/develop/spl.rst          | 37 ++++++++++++++++++++++++++++++++
>>>  drivers/video/video-uclass.c | 40 ++++++++++++++++++++++++-----------
>>>  include/spl.h                | 10 +++++++++
>>>  7 files changed, 142 insertions(+), 40 deletions(-)
>>>
> 
> Regards,
> Simon
Devarsh Thakkar Jan. 29, 2024, 4:11 p.m. UTC | #4
Hi Anatolij, Tom,

On 08/01/24 13:32, Devarsh Thakkar wrote:
> Hi Anatolij, Tom,
> 
> On 26/12/23 15:17, Simon Glass wrote:
>> On Wed, Dec 13, 2023 at 2:56 PM Devarsh Thakkar <devarsht@ti.com> wrote:
>>>
>>> Hi Antoine,
>>>
>>> On 05/12/23 21:25, Devarsh Thakkar wrote:
>>>> Move video memory reservation for SPL at end of RAM so that it does
>>>> not interefere with reservations for next stage so that the next stage
>>>> need not have holes in between for passed regions and instead it can
>>>> maintain continuity in reservations.
>>>>
>>>> Also catch the bloblist before starting reservations to avoid the same
>>>> problem.
>>>>
>>>> While at it, also fill missing fields in video handoff struct before
>>>> passing it to next stage.
>>>>
>>>> This is as per discussions at :
>>>> For moving SPL framebuffer reservation at end of RAM:
>>>>
>>>> https://lore.kernel.org/all/CAPnjgZ3xSoe_G3yrqwuAvoiVjUfZ+YQgkOR0ZTVXGT9VK8TwJg@mail.gmail.com/
>>>>
>>>> For filling missing video handoff fields :
>>>> https://lore.kernel.org/all/CAPnjgZ1Hs0rNf0JDirp6YPsOQ5=QqQSP9g9qRwLoOASUV8a4cw@mail.gmail.com/
>>>>
>>>> Changelog:
>>>> V2:
>>>> - Make a generic function to reserve video memory at SPL stage.
>>>> - Add debug prints while skipping framebuffer allocation at uboot.
>>>> - Correct commenting style as suggested.
>>>>
>>>> V3:
>>>> - Change spl_reserve_video to spl_reserve_video_from_ram_top
>>>>    which enforce framebuffer reservation from end of RAM.
>>>> - Use gd->ram_top instead of local ram_top and update
>>>>    gd->reloc_addr after each reservation.
>>>> - Print error message on framebuffer reservation.
>>>> - Update SPL doc with spl splash screen specific info.
>>>>
>>>> V4:
>>>> - Split patches into atomic commits.
>>>> - Remove duplicate check for video blob passed addresses and error out
>>>>    if invalid address/size received from blob.
>>>> - Improve SPL documentation memory reservation scheme and print message
>>>>    for video memory reservation from bloblist.
>>>> - Add Reviewed-By.
>>>>
>>>> V5:
>>>>   - Add comment for filling video handoff size with aligned size
>>>>   - Use PHASE_BOARD_F while checking for U-boot proper stage
>>>>   - Add Reviewed-by
>>>>
>>>
>>> Is it possible to pull this series in if no further comments ?
>>
>> Yes please, this has been pending for a while.
> 
> Gentle reminder. Is it possible to pick this series ?
> 

Gentle reminder.
Is it possible to pull this in for current merge window for v2024.04 ?

Regards
Devarsh
> Regards
> Devarsh
> 
>>
>>>
>>> Regards
>>> Devarsh
>>>
>>>> Test logs:
>>>> https://gist.github.com/devarsht/30a3c1591270c9ebae00714b48d33058
>>>>
>>>> Devarsh Thakkar (8):
>>>>    spl: Enforce framebuffer reservation from end of RAM
>>>>    arm: mach-k3: common: Reserve video memory from end of the RAM
>>>>    board: ti: am62x: evm: Remove video_setup from spl_board_init
>>>>    common/board_f: Catch bloblist before starting reservations
>>>>    video: Skip framebuffer reservation if already reserved
>>>>    video: Fill video handoff in video post probe
>>>>    doc: spl: Add info for missing Kconfigs
>>>>    doc: spl: Add info regarding memory reservation
>>>>
>>>>   arch/arm/mach-k3/common.c    | 17 ++++++++++-----
>>>>   board/ti/am62x/evm.c         | 18 ----------------
>>>>   common/board_f.c             | 41 +++++++++++++++++++++++++++++++-----
>>>>   common/spl/spl.c             | 19 +++++++++++++++++
>>>>   doc/develop/spl.rst          | 37 ++++++++++++++++++++++++++++++++
>>>>   drivers/video/video-uclass.c | 40 ++++++++++++++++++++++++-----------
>>>>   include/spl.h                | 10 +++++++++
>>>>   7 files changed, 142 insertions(+), 40 deletions(-)
>>>>
>>
>> Regards,
>> Simon
Tom Rini Jan. 30, 2024, 1:54 a.m. UTC | #5
On Tue, 05 Dec 2023 21:25:15 +0530, Devarsh Thakkar wrote:

> Move video memory reservation for SPL at end of RAM so that it does
> not interefere with reservations for next stage so that the next stage
> need not have holes in between for passed regions and instead it can
> maintain continuity in reservations.
> 
> Also catch the bloblist before starting reservations to avoid the same
> problem.
> 
> [...]

Applied to u-boot/master, thanks!