[PATCH 04/16] event: add event to notify lmb memory map changes
Sughosh Ganu
sughosh.ganu at linaro.org
Tue Sep 17 14:33:25 CEST 2024
On Sat, 14 Sept 2024 at 20:38, Heinrich Schuchardt <xypron.glpk at gmx.de> wrote:
>
> On 9/5/24 10:27, Sughosh Ganu wrote:
> > Add an event which would be used for notifying changes in the
> > LMB modules' memory map. This is to be used for having a
> > synchronous view of the memory that is currently in use, and that is
> > available for allocations.
>
> The synchronous view problem only exists because we are duplicating
> data. Store the EFI memory type in LMB and the problem vanishes.
The LMB module only concerns itself with RAM memory. If I understand
correctly, you are proposing maintaining the EFI memory map within the
LMB module ? That would mean handling memory types other than
conventional memory in LMB.
-sughosh
>
> The event is only needed to notify EFI_EVENT_GROUP_MEMORY_MAP_CHANGE.
>
> Best regards
>
> Heinrich
>
> >
> > Signed-off-by: Sughosh Ganu <sughosh.ganu at linaro.org>
> > ---
> > common/event.c | 2 ++
> > include/event.h | 14 ++++++++++++++
> > 2 files changed, 16 insertions(+)
> >
> > diff --git a/common/event.c b/common/event.c
> > index dda569d447..fc8002603c 100644
> > --- a/common/event.c
> > +++ b/common/event.c
> > @@ -48,6 +48,8 @@ const char *const type_name[] = {
> >
> > /* main loop events */
> > "main_loop",
> > +
> > + "lmb_map_update",
> > };
> >
> > _Static_assert(ARRAY_SIZE(type_name) == EVT_COUNT, "event type_name size");
> > diff --git a/include/event.h b/include/event.h
> > index fb353ad623..fce7e96170 100644
> > --- a/include/event.h
> > +++ b/include/event.h
> > @@ -153,6 +153,14 @@ enum event_t {
> > */
> > EVT_MAIN_LOOP,
> >
> > + /**
> > + * @EVT_LMB_MAP_UPDATE:
> > + * This event is triggered on an update to the LMB reserved memory
> > + * region. This can be used to notify about any LMB memory allocation
> > + * or freeing of memory having occurred.
> > + */
> > + EVT_LMB_MAP_UPDATE,
> > +
> > /**
> > * @EVT_COUNT:
> > * This constants holds the maximum event number + 1 and is used when
> > @@ -203,6 +211,12 @@ union event_data {
> > oftree tree;
> > struct bootm_headers *images;
> > } ft_fixup;
> > +
> > + struct event_lmb_map_update {
> > + u64 base;
> > + u64 size;
> > + u8 op;
> > + } lmb_map;
> > };
> >
> > /**
>
More information about the U-Boot
mailing list