On Thu, Jun 22, 2006 at 02:38:02PM -0700, H. Peter Anvin wrote:It turns out x86-64, unlike i386, does still have a hardcoded limit,
but the limit in build.c is wrong:
kernel/head.S:
/* 40MB kernel mapping. The kernel code cannot be bigger than that.
When you change this change KERNEL_TEXT_SIZE in page.h too. */
/* (2^48-(2*1024*1024*1024)-((2^39)*511)-((2^30)*510)) = 0 */
So this should be replaced by KERNEL_TEXT_SIZE in page.h, or better,
this should be done dynamically in x86-64 too.
Interesting. KERNEL_TEXT_SIZE wouldn't work though, since that's the
decompressed size while the 4Mb limit is on the compressed size. As a
datapoint, though, the uncompressed image is 15.7Mb, for a 4.5Mb
compressed image.