[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] Re: [PATCH] xen/arm: skip first 32 bytes of zimage32
+xen-devel On Sat, 19 Mar 2022, Stefano Stabellini wrote: > From: Stefano Stabellini <stefano.stabellini@xxxxxxxxxx> > > The first 32 bytes of zImage32 are NOPs, not useful just there for > compatibility. The reason is that some bootloaders skip the first 32 > bytes when starting the kernel. See the comment in Linux > arch/arm/boot/compressed/head.S. > > Since the introduction of CONFIG_EFI in Linux arm32, those NOPs > operations have changed implementation from: > > mov r0, r0 > > to: > .inst MZ_MAGIC | (0x1310 << 16) @ tstne r0, #0x4d000 > > See arch/arm/boot/compressed/efi-header.S. > > The new implementation doesn't work on Xen (at least on all versions of > QEMU I tried). > > Since the first 32 bytes are made to be skipped anyway, skip them. This > enables Xen to load and start successfully (on QEMU) aarch32 kernels > with CONFIG_EFI. > > Signed-off-by: Stefano Stabellini <stefano.stabellini@xxxxxxxxxx> > --- > xen/arch/arm/kernel.c | 4 ++-- > 1 file changed, 2 insertions(+), 2 deletions(-) > > diff --git a/xen/arch/arm/kernel.c b/xen/arch/arm/kernel.c > index 8f43caa186..105a010bf4 100644 > --- a/xen/arch/arm/kernel.c > +++ b/xen/arch/arm/kernel.c > @@ -411,10 +411,10 @@ static int __init kernel_zimage32_probe(struct > kernel_info *info, > } > } > > - info->zimage.kernel_addr = addr; > + info->zimage.kernel_addr = addr + 32; > > info->zimage.start = start; > - info->zimage.len = end - start; > + info->zimage.len = end - start - 32; > > info->load = kernel_zimage_load; > > -- > 2.25.1 >
|
![]() |
Lists.xenproject.org is hosted with RackSpace, monitoring our |