# HG changeset patch # User Pascal Bellard # Date 1393950596 0 # Node ID 825165c08d2542f12d1d456fd9011a6f3a9b2f20 # Parent 4a47613290670b9859805e23f58d9cb281d240d6 syslinux/iso2exe: keep 16M..48M for the kernel diff -r 4a4761329067 -r 825165c08d25 syslinux/stuff/iso2exe/bootlinux.c --- a/syslinux/stuff/iso2exe/bootlinux.c Tue Mar 04 13:27:14 2014 +0100 +++ b/syslinux/stuff/iso2exe/bootlinux.c Tue Mar 04 16:29:56 2014 +0000 @@ -83,7 +83,7 @@ mov ax, #0x8793 mov [si+0x15], al xchg [si+0x1D], al - mov [si+0x1F], al // bits 24..31 + xchg [si+0x1F], al // bits 24..31 int 0x15 add sp, #0x30 popa @@ -121,16 +121,16 @@ switch (p->align) { case 0: // kernel switch (dosversion()) { - case 3: case 4: case 6: break; + case 3: case 4: case 6: case 7: break; default: printf("DOS %d not supported.\nTrying anyway...\n", versiondos); } p->align = PAGE_SIZE; break; - case PAGE_SIZE: // first initrd : skip mapping hole before 16M - if (extendedramsizeinkb() > 24000U && p->base < 0x1000000) - p->base = 0x1000000; + case PAGE_SIZE: // first initrd : keep 16M..48M for the kernel + if (extendedramsizeinkb() > 0xF000U && p->base < 0x3000000) + p->base = 0x3000000; initrd_addr = p->base; p->align = 4; }