On Wed, 11 May 2011 11:09:08 -0400, Vivek Goyal wrote: > We have discussed this in the past and due to various reasons the max > amount of RAM you can boot your kernel from seems to be 896MB for x86_64 > and 512MB for 32bit. I shall have to open a previous thread with hpa to > get exact numbers. So loading kernel even higher is not the solution. > On the kexec-tools side, I think the limit is hard-coded, ./include/x86/x86-linux.h:250:#define DEFAULT_INITRD_ADDR_MAX 0x37FFFFFF but we have, initrd_addr_max = DEFAULT_INITRD_ADDR_MAX; if (real_mode->protocol_version >= 0x0203) { initrd_addr_max = real_mode->initrd_addr_max; dbgprintf("initrd_addr_max is 0x%lx\n", initrd_addr_max); } so, from the code, initrd_addr_max can be provided by the bootloader. I remember on the kernel side there's also such a limit, but I can't find where it is. I am wondering what prevents us from increasing this limit to 4G on i386 and even higher on x86_64. Thanks.