# HG changeset patch # User Pascal Bellard # Date 1398787713 0 # Node ID 98da7130169f2e01165582eae8f039a1ae0566e4 # Parent 77fb5713f10eb29e56b4a9b36cf3c53587c33be3 linux: update ATA config diff -r 77fb5713f10e -r 98da7130169f linux/stuff/linux-header.u --- a/linux/stuff/linux-header.u Tue Apr 29 11:19:12 2014 +0000 +++ b/linux/stuff/linux-header.u Tue Apr 29 16:08:33 2014 +0000 @@ -4,7 +4,7 @@ * modified by more people than can be counted * * Rewritten as a common file by H. Peter Anvin (Apr 2007) -+ * Rewritten Pascal Bellard (Nov 2009) ++ * Rewritten by Pascal Bellard (Nov 2009) * * BIG FAT NOTE: We're in real mode using 64k segments. Therefore segment * addresses must be multiplied by 16 to obtain their respective linear @@ -24,7 +24,7 @@ #ifndef SVGA_MODE #define SVGA_MODE ASK_VGA -@@ -40,53 +44,480 @@ +@@ -40,53 +44,505 @@ #define ROOT_RDONLY 1 #endif @@ -33,16 +33,15 @@ +cmd_line_ptr = 0x228 + +/* some extra features */ -+#define EXE_SUPPORT real mode dos .exe file support (no himem.sys) ++#define EXE_SUPPORT real mode dos .exe file support +#define CMDLINE kernel >= 2.4 +#define OLDCMDLINE kernel < 2.4 +#define HELP display version for ? argument +#define MORETHAN16M up to 4Gb RAM, not 16Mb +#define KEYBOARDLESS_SUPPORT scan floppy swap each 5 seconds -+#define FULL_ZIMAGE Up to 512K system zImage + -+/* some limitations to reduce code size */ -+//#define FLOPPY_1440K_ONLY 1.44M floppies support only ++/* some limitations to reduce the code size */ ++#define FLOPPY_1440K_ONLY 1.44M floppies support only (no 1.72M, 1.96M...) + .code16 .section ".bstext", "ax" @@ -90,15 +89,16 @@ - xorw %sp, %sp - sti - cld -+#ifdef FULL_ZIMAGE -+#define LOADSEG 0x8800 // Up to 512K zImage -+#else -+#define LOADSEG 0x8000 // 0x1000 multiple, up to 480K zImage ++LOADSEG = 0x8000 # 0x1000 multiple, up to 512K zImage ++LOADSZ = 0x10000 ++#ifdef EXE_SUPPORT ++#A20BUFFER = 0x60000 # a20 gate / himem.sys support ++A20BUFFER = 0x68000 # a20 gate / himem.sys support ++#define USEA20BUFFER +#endif -+#define LOADSZ 0x8000 - movw $bugger_off_msg, %si -+oldstart: ++# bootsect_start: + cld # assume nothing +stacktop = 0x9E00 # in 0x8000 .. 0xA000 +zeroed = 48+12 # gdt + zeroed registers @@ -109,7 +109,15 @@ + pushw $INITSEG + popw %ss # %ss contain INITSEG + movw %di, %sp # put stack at INITSEG:stacktop-... -+ + +-msg_loop: +- lodsb +- andb %al, %al +- jz bs_die +- movb $0xe, %ah +- movw $7, %bx +- int $0x10 +- jmp msg_loop +# Many BIOS's default disk parameter tables will not recognize +# multi-sector reads beyond the maximum sector number specified +# in the default diskette parameter tables - this may mean 7 @@ -121,7 +129,10 @@ +# count to 36 - the most we will encounter on an ED 2.88. +# +# High doesn't hurt. Low does. Let's use the max: 63 -+ + +-bs_die: +- # Allow the user to press a key, then reboot +- xorw %ax, %ax + pushw %ss + popw %es # %es = %ss = INITSEG + xorw %ax, %ax # %ax = 0 @@ -178,27 +189,37 @@ + movw %sp, %si # for bootsect_gdt +init_gdt: + decw bootsect_src_limit(%bx,%si) # max 64Kb -+#if LOADSEG % 0x1000 == 0 + movw $0x9300+(LOADSEG/0x1000), bootsect_src_base+2(%bx,%si) -+#else -+ movl $0x93000000+(LOADSEG*0x10), bootsect_src_base(%bx,%si) -+#endif + xorb $bootsect_dst_limit-bootsect_src_limit, %bl + jne init_gdt +code32_start = 0x214 -+#ifdef MORETHAN16M -+ movb code32_start+3, %al # destination = 0x00100000 or 0x00010000 -+ movb %al, bootsect_dst_base_hi(%si) # load high (> 16M) ? -+#endif + movw code32_start+1, %ax # destination = 0x00100000 or 0x00010000 + movl syssize, %ebx + decl %ebx + shrl $5, %ebx ++#ifdef MORETHAN16M + incl %ebx ++#else ++ incw %bx ++#endif ++#ifdef USEA20BUFFER ++ movw $0x00100000>>8, %di ++#endif +syslp: ++#ifdef USEA20BUFFER ++ cmpw %ax, %di ++ jne nota20 ++ xorw $(0x00100000+A20BUFFER)>>8, %ax ++nota20: ++#endif + movw %ax, bootsect_dst_base+1(%si) ++#ifdef MORETHAN16M ++ movl $LOADSZ/512, %edi # size in sectors ++ subl %edi, %ebx ++#else + movw $LOADSZ/512, %di # size in sectors -+ subl $LOADSZ/512, %ebx ++ subw %di, %bx ++#endif + pushf + jnc not_last + addw %bx, %di @@ -219,25 +240,25 @@ + popw %es # restore es + int $0x15 # max 16M, maybe more... + popw %ax -+ addw $LOADSZ/256, %ax # next dest ++ incb %ah # next dest (ax+=LOADSZ/256) +#ifdef MORETHAN16M + adcb %cl, bootsect_dst_base_hi(%si) # breaks 16M limit ? +#endif ++#ifdef USEA20BUFFER ++ movw $(LOADSZ+A20BUFFER)>>8, %di ++#endif + popf + ja syslp - --msg_loop: -- lodsb -- andb %al, %al -- jz bs_die -- movb $0xe, %ah -- movw $7, %bx -- int $0x10 -- jmp msg_loop -- --bs_die: -- # Allow the user to press a key, then reboot -- xorw %ax, %ax ++#ifdef USEA20BUFFER ++#ifdef MORETHAN16M ++ movb %cl, bootsect_dst_base_hi(%si) ++#endif ++ movb $0x10, bootsect_dst_base+2(%si) ++ movw $A20BUFFER/0x100, bootsect_src_base+1(%si) ++ movb $0x87, %ah ++ int $0x15 ++#endif ++ +# This procedure turns off the floppy drive motor, so +# that we enter the kernel in a known state, and +# don't have to worry about it later. @@ -395,25 +416,27 @@ - int $0x19 +#endif + jmp read_sectorslp -+ + +- # int 0x19 should never return. In case it does anyway, +- # invoke the BIOS reset code... +- ljmp $0xf000,$0xfff0 +#ifdef EXE_SUPPORT +read_sectors_dos: ++ xorw %dx, %dx // write to %ds:%dx, not %es:%bx ++ call read_sectors_dosz ++read_sectors_dosz: + pushw %es + popw %ds + movb $0x3F, %ah // read -+ cwd // write to %ds:%dx, not %es:%bx + movw %di, %cx -+ shlw $9, %cx // byte count ++ shlw $8, %cx // byte count / 2 + movw %bp, %bx + int $0x21 ++ xchgw %ax, %dx + pushw %ss + popw %ds +#endif -- # int 0x19 should never return. In case it does anyway, -- # invoke the BIOS reset code... -- ljmp $0xf000,$0xfff0 -- - .section ".bsdata", "a" -bugger_off_msg: - .ascii "Direct booting from floppy is no longer supported.\r\n" @@ -432,7 +455,7 @@ + cmp $0xd, %al # CR ? + je putclf + ret -+ + +#ifdef KEYBOARDLESS_SUPPORT +clock = 0x46C +wait: @@ -453,7 +476,7 @@ +waitdone: + ret +#endif - ++ +#ifdef EXE_SUPPORT +comstart: + cld # assume nothing diff -r 77fb5713f10e -r 98da7130169f linux/stuff/linux-slitaz.config --- a/linux/stuff/linux-slitaz.config Tue Apr 29 11:19:12 2014 +0000 +++ b/linux/stuff/linux-slitaz.config Tue Apr 29 16:08:33 2014 +0000 @@ -135,7 +135,9 @@ # CONFIG_SYSFS_DEPRECATED is not set # CONFIG_RELAY is not set CONFIG_BLK_DEV_INITRD=y -CONFIG_INITRAMFS_SOURCE="" +CONFIG_INITRAMFS_SOURCE="initrd.cpio" +CONFIG_INITRAMFS_ROOT_UID=0 +CONFIG_INITRAMFS_ROOT_GID=0 CONFIG_RD_GZIP=y CONFIG_RD_BZIP2=y CONFIG_RD_LZMA=y @@ -1401,39 +1403,39 @@ CONFIG_SATA_AHCI_PLATFORM=m CONFIG_SATA_INIC162X=m CONFIG_SATA_ACARD_AHCI=m -CONFIG_SATA_SIL24=m +CONFIG_SATA_SIL24=y CONFIG_ATA_SFF=y # # SFF controllers with custom DMA interface # -CONFIG_PDC_ADMA=m -CONFIG_SATA_QSTOR=m -CONFIG_SATA_SX4=m +CONFIG_PDC_ADMA=y +CONFIG_SATA_QSTOR=y +CONFIG_SATA_SX4=y CONFIG_ATA_BMDMA=y # # SATA SFF controllers with BMDMA # CONFIG_ATA_PIIX=y -CONFIG_SATA_MV=m -CONFIG_SATA_NV=m -CONFIG_SATA_PROMISE=m -CONFIG_SATA_SIL=m -CONFIG_SATA_SIS=m -CONFIG_SATA_SVW=m -CONFIG_SATA_ULI=m -CONFIG_SATA_VIA=m -CONFIG_SATA_VITESSE=m +CONFIG_SATA_MV=y +CONFIG_SATA_NV=y +CONFIG_SATA_PROMISE=y +CONFIG_SATA_SIL=y +CONFIG_SATA_SIS=y +CONFIG_SATA_SVW=y +CONFIG_SATA_ULI=y +CONFIG_SATA_VIA=y +CONFIG_SATA_VITESSE=y # # PATA SFF controllers with BMDMA # -CONFIG_PATA_ALI=m -CONFIG_PATA_AMD=m -CONFIG_PATA_ARTOP=m -CONFIG_PATA_ATIIXP=m -CONFIG_PATA_ATP867X=m +CONFIG_PATA_ALI=y +CONFIG_PATA_AMD=y +CONFIG_PATA_ARTOP=y +CONFIG_PATA_ATIIXP=y +CONFIG_PATA_ATP867X=y CONFIG_PATA_CMD64X=m CONFIG_PATA_CS5520=m CONFIG_PATA_CS5530=m @@ -1447,9 +1449,9 @@ CONFIG_PATA_HPT3X3=m # CONFIG_PATA_HPT3X3_DMA is not set CONFIG_PATA_IT8213=m -CONFIG_PATA_IT821X=m -CONFIG_PATA_JMICRON=m -CONFIG_PATA_MARVELL=m +CONFIG_PATA_IT821X=y +CONFIG_PATA_JMICRON=y +CONFIG_PATA_MARVELL=y CONFIG_PATA_NETCELL=m CONFIG_PATA_NINJA32=m CONFIG_PATA_NS87415=m @@ -1463,18 +1465,18 @@ CONFIG_PATA_SCH=m CONFIG_PATA_SERVERWORKS=m CONFIG_PATA_SIL680=m -CONFIG_PATA_SIS=m -CONFIG_PATA_TOSHIBA=m +CONFIG_PATA_SIS=y +CONFIG_PATA_TOSHIBA=y CONFIG_PATA_TRIFLEX=m -CONFIG_PATA_VIA=m +CONFIG_PATA_VIA=y CONFIG_PATA_WINBOND=m # # PIO-only SFF controllers # -CONFIG_PATA_CMD640_PCI=m +CONFIG_PATA_CMD640_PCI=y CONFIG_PATA_ISAPNP=y -CONFIG_PATA_MPIIX=m +CONFIG_PATA_MPIIX=y CONFIG_PATA_NS87410=m CONFIG_PATA_OPTI=m CONFIG_PATA_PCMCIA=m @@ -1485,8 +1487,8 @@ # # Generic fallback / legacy drivers # -CONFIG_PATA_ACPI=m -CONFIG_ATA_GENERIC=m +CONFIG_PATA_ACPI=y +CONFIG_ATA_GENERIC=y CONFIG_PATA_LEGACY=y CONFIG_MD=y CONFIG_BLK_DEV_MD=m