[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Xen-devel] [PATCH v2 5/4] xen: arm: ensure that the boot code is <4K in size



On 18/07/14 17:57, Ian Campbell wrote:
> This avoids having to deal with the 1:1 boot mapping crossing a
> section or page boundary.
>
> Signed-off-by: Ian Campbell <ian.campbell@xxxxxxxxxx>
> ---
>  xen/arch/arm/arm32/head.S |    3 +++
>  xen/arch/arm/arm64/head.S |    3 +++
>  xen/arch/arm/xen.lds.S    |    6 ++++++
>  3 files changed, 12 insertions(+)
>
> diff --git a/xen/arch/arm/arm32/head.S b/xen/arch/arm/arm32/head.S
> index caf7934..b4c3973 100644
> --- a/xen/arch/arm/arm32/head.S
> +++ b/xen/arch/arm/arm32/head.S
> @@ -458,6 +458,9 @@ fail:   PRINT("- Boot failed -\r\n")
>  1:      wfe
>          b     1b
>  
> +.globl _end_boot
> +_end_boot:
> +

GLOBAL() should be in scope (although git grep shows that some use of
.global has slipped back into the arm .S files)

~Andrew

>  /* Copy Xen to new location and switch TTBR
>   * r1:r0       ttbr
>   * r2          source address
> diff --git a/xen/arch/arm/arm64/head.S b/xen/arch/arm/arm64/head.S
> index f28b74a..a52e2e4 100644
> --- a/xen/arch/arm/arm64/head.S
> +++ b/xen/arch/arm/arm64/head.S
> @@ -487,6 +487,9 @@ fail:   PRINT("- Boot failed -\r\n")
>  1:      wfe
>          b     1b
>  
> +.globl _end_boot
> +_end_boot:
> +
>  /* Copy Xen to new location and switch TTBR
>   * x0    ttbr
>   * x1    source address
> diff --git a/xen/arch/arm/xen.lds.S b/xen/arch/arm/xen.lds.S
> index be55dad..079e085 100644
> --- a/xen/arch/arm/xen.lds.S
> +++ b/xen/arch/arm/xen.lds.S
> @@ -178,3 +178,9 @@ SECTIONS
>    .stab.indexstr 0 : { *(.stab.indexstr) }
>    .comment 0 : { *(.comment) }
>  }
> +
> +/*
> + * We require that Xen is loaded at a 4K boundary, so this ensures that any
> + * code running on the boot time identity map cannot cross a section 
> boundary.
> + */
> +ASSERT( _end_boot - start <= PAGE_SIZE, "Boot code is larger than 4K")


_______________________________________________
Xen-devel mailing list
Xen-devel@xxxxxxxxxxxxx
http://lists.xen.org/xen-devel


 


Rackspace

Lists.xenproject.org is hosted with RackSpace, monitoring our
servers 24x7x365 and backed by RackSpace's Fanatical Support®.