[PATCH 1/2] ARM: set zero page accessible before copying ATAGs there

Ahmad Fatoum a.fatoum at pengutronix.de
Wed May 31 03:08:54 PDT 2023


On 31.05.23 12:01, Sascha Hauer wrote:
> We used skip setting up the zero page as faulting when the SDRAM
> starts at 0x0. One reason for doing that was that ATAGs will be copied
> there in that case. Call zero_page_access() if necessary to be able
> to set the zero page to faulting during barebox startup in the next
> step.
> 
> Signed-off-by: Sascha Hauer <s.hauer at pengutronix.de>
> ---
>  arch/arm/lib32/armlinux.c | 7 ++++++-
>  1 file changed, 6 insertions(+), 1 deletion(-)
> 
> diff --git a/arch/arm/lib32/armlinux.c b/arch/arm/lib32/armlinux.c
> index 6cb7d4b5f3..9b2f1f4544 100644
> --- a/arch/arm/lib32/armlinux.c
> +++ b/arch/arm/lib32/armlinux.c
> @@ -18,6 +18,7 @@
>  #include <memory.h>
>  #include <of.h>
>  #include <magicvar.h>
> +#include <zero_page.h>
>  
>  #include <asm/byteorder.h>
>  #include <asm/setup.h>
> @@ -265,8 +266,12 @@ void start_linux(void *adr, int swap, unsigned long initrd_address,
>  		pr_debug("booting kernel with devicetree\n");
>  		params = oftree;
>  	} else {
> -		setup_tags(initrd_address, initrd_size, swap);
>  		params = armlinux_get_bootparams();
> +
> +		if ((unsigned long)params <= PAGE_SIZE)
> +			zero_page_access();

Just < should be enough, no?

> +
> +		setup_tags(initrd_address, initrd_size, swap);
>  	}
>  	architecture = armlinux_get_architecture();
>  

-- 
Pengutronix e.K.                           |                             |
Steuerwalder Str. 21                       | http://www.pengutronix.de/  |
31137 Hildesheim, Germany                  | Phone: +49-5121-206917-0    |
Amtsgericht Hildesheim, HRA 2686           | Fax:   +49-5121-206917-5555 |




More information about the barebox mailing list