* [PATCH v3] xen/arm: build as zImage
@ 2012-11-27 12:15 Stefano Stabellini
2012-11-27 12:42 ` Stefano Stabellini
0 siblings, 1 reply; 4+ messages in thread
From: Stefano Stabellini @ 2012-11-27 12:15 UTC (permalink / raw)
To: xen-devel@lists.xensource.com
Cc: Anthony Perard, Tim (Xen.org), Ian Campbell, Stefano Stabellini
The zImage format is extremely simple: it only consists of a magic
number and 2 addresses in a specific position (see
http://www.simtec.co.uk/products/SWLINUX/files/booting_article.html#d0e309).
Some bootloaders expect a zImage; considering that it doesn't cost us
much to build Xen compatible with the format, make it so.
Changes in v3:
- pass the correct size;
- go back to the original no-ops plus branch for consistency with Linux.
Changes in v2:
- code style;
- pass 0 a start address.
Signed-off-by: Stefano Stabellini <stefano.stabellini@eu.citrix.com>
diff --git a/xen/arch/arm/head.S b/xen/arch/arm/head.S
index 25c4cfe..a78363b 100644
--- a/xen/arch/arm/head.S
+++ b/xen/arch/arm/head.S
@@ -22,6 +22,8 @@
#include <asm/processor-ca15.h>
#include <asm/asm_defns.h>
+#define ZIMAGE_MAGIC_NUMBER 0x016f2818
+
#define PT_PT 0xe7f /* nG=1, AF=1, SH=10, AP=01, NS=1, ATTR=111, T=1, P=1 */
#define PT_MEM 0xe7d /* nG=1, AF=1, SH=10, AP=01, NS=1, ATTR=111, T=0, P=1 */
#define PT_DEV 0xe71 /* nG=1, AF=1, SH=10, AP=01, NS=1, ATTR=100, T=0, P=1 */
@@ -52,6 +54,22 @@
* or the initial pagetable code below will need adjustment. */
.global start
start:
+
+ /* zImage magic header, see:
+ * http://www.simtec.co.uk/products/SWLINUX/files/booting_article.html#d0e309
+ */
+ .rept 7
+ mov r0, r0
+ .endr
+ mov r0, r0
+ b past_zImage
+
+ .word ZIMAGE_MAGIC_NUMBER /* Magic numbers to help the loader */
+ .word 0x00000000 /* absolute load/run zImage address or
+ * 0 for PiC */
+ .word (_end - _start) /* zImage end address */
+
+past_zImage:
cpsid aif /* Disable all interrupts */
/* Save the bootloader arguments in less-clobberable registers */
^ permalink raw reply related [flat|nested] 4+ messages in thread
* Re: [PATCH v3] xen/arm: build as zImage
2012-11-27 12:15 [PATCH v3] xen/arm: build as zImage Stefano Stabellini
@ 2012-11-27 12:42 ` Stefano Stabellini
2012-11-27 14:31 ` Tim Deegan
0 siblings, 1 reply; 4+ messages in thread
From: Stefano Stabellini @ 2012-11-27 12:42 UTC (permalink / raw)
To: Stefano Stabellini
Cc: Anthony Perard, xen-devel@lists.xensource.com, Tim (Xen.org),
Ian Campbell
On Tue, 27 Nov 2012, Stefano Stabellini wrote:
> + .word (_end - _start) /* zImage end address */
Actually the assembler has problems digesting this expression.
This patch actually compiles:
---
xen/arm: build as zImage
The zImage format is extremely simple: it only consists of a magic
number and 2 addresses in a specific position (see
http://www.simtec.co.uk/products/SWLINUX/files/booting_article.html#d0e309).
Some bootloaders expect a zImage; considering that it doesn't cost us
much to build Xen compatible with the format, make it so.
Changes in v3:
- pass the correct size;
- go back to the original no-ops plus branch for consistency with Linux.
Changes in v2:
- code style;
- pass 0 a start address.
Signed-off-by: Stefano Stabellini <stefano.stabellini@eu.citrix.com>
diff --git a/xen/arch/arm/head.S b/xen/arch/arm/head.S
index 25c4cfe..6cb5d1b 100644
--- a/xen/arch/arm/head.S
+++ b/xen/arch/arm/head.S
@@ -22,6 +22,8 @@
#include <asm/processor-ca15.h>
#include <asm/asm_defns.h>
+#define ZIMAGE_MAGIC_NUMBER 0x016f2818
+
#define PT_PT 0xe7f /* nG=1, AF=1, SH=10, AP=01, NS=1, ATTR=111, T=1, P=1 */
#define PT_MEM 0xe7d /* nG=1, AF=1, SH=10, AP=01, NS=1, ATTR=111, T=0, P=1 */
#define PT_DEV 0xe71 /* nG=1, AF=1, SH=10, AP=01, NS=1, ATTR=100, T=0, P=1 */
@@ -52,6 +54,22 @@
* or the initial pagetable code below will need adjustment. */
.global start
start:
+
+ /* zImage magic header, see:
+ * http://www.simtec.co.uk/products/SWLINUX/files/booting_article.html#d0e309
+ */
+ .rept 7
+ mov r0, r0
+ .endr
+ mov r0, r0
+ b past_zImage
+
+ .word ZIMAGE_MAGIC_NUMBER /* Magic numbers to help the loader */
+ .word 0x00000000 /* absolute load/run zImage address or
+ * 0 for PiC */
+ .word (_end - start) /* zImage end address */
+
+past_zImage:
cpsid aif /* Disable all interrupts */
/* Save the bootloader arguments in less-clobberable registers */
^ permalink raw reply related [flat|nested] 4+ messages in thread
* Re: [PATCH v3] xen/arm: build as zImage
2012-11-27 12:42 ` Stefano Stabellini
@ 2012-11-27 14:31 ` Tim Deegan
2012-11-29 11:29 ` Ian Campbell
0 siblings, 1 reply; 4+ messages in thread
From: Tim Deegan @ 2012-11-27 14:31 UTC (permalink / raw)
To: Stefano Stabellini
Cc: Anthony Perard, xen-devel@lists.xensource.com, Ian Campbell
At 12:42 +0000 on 27 Nov (1354020121), Stefano Stabellini wrote:
> On Tue, 27 Nov 2012, Stefano Stabellini wrote:
> > + .word (_end - _start) /* zImage end address */
>
> Actually the assembler has problems digesting this expression.
> This patch actually compiles:
>
> ---
>
> xen/arm: build as zImage
>
> The zImage format is extremely simple: it only consists of a magic
> number and 2 addresses in a specific position (see
> http://www.simtec.co.uk/products/SWLINUX/files/booting_article.html#d0e309).
>
> Some bootloaders expect a zImage; considering that it doesn't cost us
> much to build Xen compatible with the format, make it so.
>
> Changes in v3:
> - pass the correct size;
> - go back to the original no-ops plus branch for consistency with Linux.
>
> Changes in v2:
> - code style;
> - pass 0 a start address.
>
> Signed-off-by: Stefano Stabellini <stefano.stabellini@eu.citrix.com>
>
> diff --git a/xen/arch/arm/head.S b/xen/arch/arm/head.S
> index 25c4cfe..6cb5d1b 100644
> --- a/xen/arch/arm/head.S
> +++ b/xen/arch/arm/head.S
> @@ -22,6 +22,8 @@
> #include <asm/processor-ca15.h>
> #include <asm/asm_defns.h>
>
> +#define ZIMAGE_MAGIC_NUMBER 0x016f2818
> +
> #define PT_PT 0xe7f /* nG=1, AF=1, SH=10, AP=01, NS=1, ATTR=111, T=1, P=1 */
> #define PT_MEM 0xe7d /* nG=1, AF=1, SH=10, AP=01, NS=1, ATTR=111, T=0, P=1 */
> #define PT_DEV 0xe71 /* nG=1, AF=1, SH=10, AP=01, NS=1, ATTR=100, T=0, P=1 */
> @@ -52,6 +54,22 @@
> * or the initial pagetable code below will need adjustment. */
> .global start
> start:
> +
> + /* zImage magic header, see:
> + * http://www.simtec.co.uk/products/SWLINUX/files/booting_article.html#d0e309
> + */
> + .rept 7
> + mov r0, r0
> + .endr
> + mov r0, r0
OK, with this changed to a .rept 8 and the singleton removed,
Acked-by: Tim Deegan <tim@xen.org>
> + b past_zImage
> +
> + .word ZIMAGE_MAGIC_NUMBER /* Magic numbers to help the loader */
> + .word 0x00000000 /* absolute load/run zImage address or
> + * 0 for PiC */
> + .word (_end - start) /* zImage end address */
> +
> +past_zImage:
> cpsid aif /* Disable all interrupts */
>
> /* Save the bootloader arguments in less-clobberable registers */
>
> _______________________________________________
> Xen-devel mailing list
> Xen-devel@lists.xen.org
> http://lists.xen.org/xen-devel
^ permalink raw reply [flat|nested] 4+ messages in thread
* Re: [PATCH v3] xen/arm: build as zImage
2012-11-27 14:31 ` Tim Deegan
@ 2012-11-29 11:29 ` Ian Campbell
0 siblings, 0 replies; 4+ messages in thread
From: Ian Campbell @ 2012-11-29 11:29 UTC (permalink / raw)
To: Tim Deegan
Cc: Anthony Perard, xen-devel@lists.xensource.com, Stefano Stabellini
On Tue, 2012-11-27 at 14:31 +0000, Tim Deegan wrote:
> > + /* zImage magic header, see:
> > + * http://www.simtec.co.uk/products/SWLINUX/files/booting_article.html#d0e309
> > + */
> > + .rept 7
> > + mov r0, r0
> > + .endr
> > + mov r0, r0
>
> OK, with this changed to a .rept 8 and the singleton removed,
> Acked-by: Tim Deegan <tim@xen.org>
And me, I've applied with this trivial modification.
Ian.
^ permalink raw reply [flat|nested] 4+ messages in thread
end of thread, other threads:[~2012-11-29 11:29 UTC | newest]
Thread overview: 4+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2012-11-27 12:15 [PATCH v3] xen/arm: build as zImage Stefano Stabellini
2012-11-27 12:42 ` Stefano Stabellini
2012-11-27 14:31 ` Tim Deegan
2012-11-29 11:29 ` Ian Campbell
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).