On Wed, Feb 26, 2020 at 12:06 PM Matthias Brugger <mbrug...@suse.com> wrote: > > > > On 26/02/2020 15:03, kev...@freebsd.org wrote: > > From: Kyle Evans <kev...@freebsd.org> > > > > The psci stub provided by Raspberry Pi is around 5k in size, thus residing > > in the first two pages of memory. Without this reservation, the next stage > > or OS assume they're free to use the second page and may get catastrophic > > results from clobbering it. > > > > Signed-off-by: Kyle Evans <kev...@freebsd.org> > > Cc: Matthias Brugger <mbrug...@suse.com> > > --- > > board/raspberrypi/rpi/rpi.c | 4 ++-- > > 1 file changed, 2 insertions(+), 2 deletions(-) > > > > diff --git a/board/raspberrypi/rpi/rpi.c b/board/raspberrypi/rpi/rpi.c > > index e367ba3092..d3f9bd16ac 100644 > > --- a/board/raspberrypi/rpi/rpi.c > > +++ b/board/raspberrypi/rpi/rpi.c > > @@ -488,8 +488,8 @@ int ft_board_setup(void *blob, bd_t *bd) > > lcd_dt_simplefb_add_node(blob); > > > > #ifdef CONFIG_EFI_LOADER > > - /* Reserve the spin table */ > > - efi_add_memory_map(0, 1, EFI_RESERVED_MEMORY_TYPE, 0); > > + /* Reserve the first two pages for spin table/psci stub. */ > > + efi_add_memory_map(0, 2, EFI_RESERVED_MEMORY_TYPE, 0); > > Is this that changed recently or was the memory reservation wrong from the > beginning? >
As far as I can tell it just wasn't quite accounted for in the initial reservation -- Linux presumably uses spin-table as described in the DTS, where-as FreeBSD opts for PSCI instead since it's available. I don't have a good intuition for who else may be using PSCI for RPi; we may be in the minority. FWIW, /memreserve/ in the upstream (raspberrypi/firmware) DTB also do not account for PSCI stubs -- I've filed an issue[1] there, as well. Thanks, Kyle Evans [1] https://github.com/raspberrypi/firmware/issues/1340