Re: 2.6.21-rc5-mm3 - no boot, "address not 2M aligned"

Vivek Goyal
2007-04-02T11:36:50Z

On Mon, Apr 02, 2007 at 01:17:45PM +0200, thunder7@xs4all.nl wrote:
[..]
> > + /*
> > + * Make sure kernel is aligned to 2MB address. Catching it at compile
> > + * time is better. Change your config file and compile the kernel
> > + * for a 2MB aligned address (CONFIG_PHYSICAL_START)
> > + */
> > + BUILD_BUG_ON(ALIGN(CONFIG_PHYSICAL_START, __KERNEL_ALIGN)
> > + != CONFIG_PHYSICAL_START);
> > +
> > /* clear bss before set_intr_gate with early_idt_handler */
> > clear_bss();
> >
> > diff -puN include/asm-x86_64/page.h~x86_64-check-for-config-physical-start-aligned-2M include/asm-x86_64/page.h
> > --- linux-2.6.21-rc5-mm3-vanilla/include/asm-x86_64/page.h~x86_64-check-for-config-physical-start-aligned-2M 2007-04-02 20:50:55.000000000 +0530
> > +++ linux-2.6.21-rc5-mm3-vanilla-root/include/asm-x86_64/page.h 2007-04-02 20:51:34.000000000 +0530
> > @@ -79,6 +79,7 @@ extern unsigned long phys_base;
> > #endif /* !__ASSEMBLY__ */
> >
> > #define __PHYSICAL_START CONFIG_PHYSICAL_START
> > +#define __KERNEL_ALIGN 0x200000
> > #define __START_KERNEL (__START_KERNEL_map + __PHYSICAL_START)
> > #define __START_KERNEL_map 0xffffffff80000000
> > #define __PAGE_OFFSET 0xffff810000000000
> > _
>
> I'm only a user, so I'm not uptodate on these addresses and how they
> work. However, how does this solve the problem that running
>
> make oldconfig
>
> on a working 2.6.21-rc3-mm2 .config gives an unbootable 2.6.21-rc5-mm3
> kernel? If I read things correctly, you now get a BUG, but the kernel
> still won't boot. If that is correct, than I, as a user, don't think
> that this is the solution that I feel comfortable with.
>

You will get a compile time error and your compilation will not be
through if your physical address is not 2MB aligned. Just give it a try.

Thanks
Vivek