wok rev 16547

linux: update ATA config
author Pascal Bellard <pascal.bellard@slitaz.org>
date Tue Apr 29 16:08:33 2014 +0000 (2014-04-29)
parents 77fb5713f10e
children 56dd53ed321f
files linux/stuff/linux-header.u linux/stuff/linux-slitaz.config
line diff
     1.1 --- a/linux/stuff/linux-header.u	Tue Apr 29 11:19:12 2014 +0000
     1.2 +++ b/linux/stuff/linux-header.u	Tue Apr 29 16:08:33 2014 +0000
     1.3 @@ -4,7 +4,7 @@
     1.4    *	modified by more people than can be counted
     1.5    *
     1.6    *	Rewritten as a common file by H. Peter Anvin (Apr 2007)
     1.7 -+ *	Rewritten Pascal Bellard (Nov 2009)
     1.8 ++ *	Rewritten by Pascal Bellard (Nov 2009)
     1.9    *
    1.10    * BIG FAT NOTE: We're in real mode using 64k segments.  Therefore segment
    1.11    * addresses must be multiplied by 16 to obtain their respective linear
    1.12 @@ -24,7 +24,7 @@
    1.13   
    1.14   #ifndef SVGA_MODE
    1.15   #define SVGA_MODE ASK_VGA
    1.16 -@@ -40,53 +44,480 @@
    1.17 +@@ -40,53 +44,505 @@
    1.18   #define ROOT_RDONLY 1
    1.19   #endif
    1.20   
    1.21 @@ -33,16 +33,15 @@
    1.22  +cmd_line_ptr	= 0x228
    1.23  +
    1.24  +/* some extra features */
    1.25 -+#define EXE_SUPPORT		real mode dos .exe file support (no himem.sys)
    1.26 ++#define EXE_SUPPORT		real mode dos .exe file support
    1.27  +#define CMDLINE			kernel >= 2.4
    1.28  +#define OLDCMDLINE		kernel  < 2.4
    1.29  +#define HELP			display version for ? argument
    1.30  +#define MORETHAN16M		up to 4Gb RAM, not 16Mb
    1.31  +#define KEYBOARDLESS_SUPPORT	scan floppy swap each 5 seconds
    1.32 -+#define FULL_ZIMAGE		Up to 512K system zImage
    1.33  +
    1.34 -+/* some limitations to reduce code size */
    1.35 -+//#define FLOPPY_1440K_ONLY	1.44M floppies support only
    1.36 ++/* some limitations to reduce the code size */
    1.37 ++#define FLOPPY_1440K_ONLY	1.44M floppies support only (no 1.72M, 1.96M...)
    1.38  +
    1.39   	.code16
    1.40   	.section ".bstext", "ax"
    1.41 @@ -90,15 +89,16 @@
    1.42  -	xorw	%sp, %sp
    1.43  -	sti
    1.44  -	cld
    1.45 -+#ifdef FULL_ZIMAGE
    1.46 -+#define LOADSEG	0x8800		// Up to 512K zImage
    1.47 -+#else
    1.48 -+#define LOADSEG	 0x8000		// 0x1000 multiple, up to 480K zImage
    1.49 ++LOADSEG		= 0x8000		# 0x1000 multiple, up to 512K zImage
    1.50 ++LOADSZ		= 0x10000
    1.51 ++#ifdef EXE_SUPPORT
    1.52 ++#A20BUFFER	= 0x60000		# a20 gate / himem.sys support
    1.53 ++A20BUFFER	= 0x68000		# a20 gate / himem.sys support
    1.54 ++#define USEA20BUFFER
    1.55  +#endif
    1.56 -+#define LOADSZ	 0x8000
    1.57   
    1.58  -	movw	$bugger_off_msg, %si
    1.59 -+oldstart:
    1.60 ++# bootsect_start:
    1.61  +	cld				# assume nothing
    1.62  +stacktop	= 0x9E00		# in 0x8000 .. 0xA000
    1.63  +zeroed		= 48+12			# gdt + zeroed registers
    1.64 @@ -109,7 +109,15 @@
    1.65  +	pushw	$INITSEG
    1.66  +	popw	%ss			# %ss contain INITSEG
    1.67  +	movw	%di, %sp		# put stack at INITSEG:stacktop-...
    1.68 -+
    1.69 + 
    1.70 +-msg_loop:
    1.71 +-	lodsb
    1.72 +-	andb	%al, %al
    1.73 +-	jz	bs_die
    1.74 +-	movb	$0xe, %ah
    1.75 +-	movw	$7, %bx
    1.76 +-	int	$0x10
    1.77 +-	jmp	msg_loop
    1.78  +# Many BIOS's default disk parameter tables will not recognize
    1.79  +# multi-sector reads beyond the maximum sector number specified
    1.80  +# in the default diskette parameter tables - this may mean 7
    1.81 @@ -121,7 +129,10 @@
    1.82  +# count to 36 - the most we will encounter on an ED 2.88.  
    1.83  +#
    1.84  +# High doesn't hurt.  Low does.  Let's use the max: 63
    1.85 -+
    1.86 + 
    1.87 +-bs_die:
    1.88 +-	# Allow the user to press a key, then reboot
    1.89 +-	xorw	%ax, %ax
    1.90  +	pushw	%ss
    1.91  +	popw	%es			# %es = %ss = INITSEG
    1.92  +	xorw	%ax, %ax		# %ax = 0
    1.93 @@ -178,27 +189,37 @@
    1.94  +	movw	%sp, %si		# for bootsect_gdt
    1.95  +init_gdt:
    1.96  +	decw	bootsect_src_limit(%bx,%si)	# max 64Kb
    1.97 -+#if LOADSEG % 0x1000 == 0
    1.98  +	movw	$0x9300+(LOADSEG/0x1000), bootsect_src_base+2(%bx,%si)
    1.99 -+#else
   1.100 -+	movl	$0x93000000+(LOADSEG*0x10), bootsect_src_base(%bx,%si)
   1.101 -+#endif
   1.102  +	xorb	$bootsect_dst_limit-bootsect_src_limit, %bl
   1.103  +	jne	init_gdt
   1.104  +code32_start	=	0x214
   1.105 -+#ifdef MORETHAN16M
   1.106 -+	movb	code32_start+3, %al		# destination = 0x00100000 or 0x00010000
   1.107 -+	movb	%al, bootsect_dst_base_hi(%si)	# load high (> 16M) ?
   1.108 -+#endif
   1.109  +	movw	code32_start+1, %ax		# destination = 0x00100000 or 0x00010000
   1.110  +	movl	syssize, %ebx
   1.111  +	decl	%ebx
   1.112  +	shrl	$5, %ebx
   1.113 ++#ifdef MORETHAN16M
   1.114  +	incl	%ebx
   1.115 ++#else
   1.116 ++	incw	%bx
   1.117 ++#endif
   1.118 ++#ifdef USEA20BUFFER
   1.119 ++	movw	$0x00100000>>8, %di
   1.120 ++#endif
   1.121  +syslp:
   1.122 ++#ifdef USEA20BUFFER
   1.123 ++	cmpw	%ax, %di
   1.124 ++	jne	nota20
   1.125 ++	xorw	$(0x00100000+A20BUFFER)>>8, %ax
   1.126 ++nota20:
   1.127 ++#endif
   1.128  +	movw	%ax, bootsect_dst_base+1(%si)
   1.129 ++#ifdef MORETHAN16M
   1.130 ++	movl	$LOADSZ/512, %edi	# size in sectors
   1.131 ++	subl	%edi, %ebx
   1.132 ++#else
   1.133  +	movw	$LOADSZ/512, %di	# size in sectors
   1.134 -+	subl	$LOADSZ/512, %ebx
   1.135 ++	subw	%di, %bx
   1.136 ++#endif
   1.137  +	pushf
   1.138  +	jnc	not_last
   1.139  +	addw	%bx, %di
   1.140 @@ -219,25 +240,25 @@
   1.141  +	popw	%es			# restore es
   1.142  +	int	$0x15			# max 16M, maybe more...
   1.143  +	popw	%ax
   1.144 -+	addw	$LOADSZ/256, %ax	# next dest
   1.145 ++	incb	%ah			# next dest (ax+=LOADSZ/256)
   1.146  +#ifdef MORETHAN16M
   1.147  +	adcb	%cl, bootsect_dst_base_hi(%si)	# breaks 16M limit ?
   1.148  +#endif
   1.149 ++#ifdef USEA20BUFFER
   1.150 ++	movw	$(LOADSZ+A20BUFFER)>>8, %di
   1.151 ++#endif
   1.152  +	popf
   1.153  +	ja	syslp
   1.154 - 
   1.155 --msg_loop:
   1.156 --	lodsb
   1.157 --	andb	%al, %al
   1.158 --	jz	bs_die
   1.159 --	movb	$0xe, %ah
   1.160 --	movw	$7, %bx
   1.161 --	int	$0x10
   1.162 --	jmp	msg_loop
   1.163 --
   1.164 --bs_die:
   1.165 --	# Allow the user to press a key, then reboot
   1.166 --	xorw	%ax, %ax
   1.167 ++#ifdef USEA20BUFFER
   1.168 ++#ifdef MORETHAN16M
   1.169 ++	movb	%cl, bootsect_dst_base_hi(%si)
   1.170 ++#endif
   1.171 ++	movb	$0x10, bootsect_dst_base+2(%si)
   1.172 ++	movw	$A20BUFFER/0x100, bootsect_src_base+1(%si)
   1.173 ++	movb	$0x87, %ah
   1.174 ++	int	$0x15
   1.175 ++#endif
   1.176 ++
   1.177  +# This procedure turns off the floppy drive motor, so
   1.178  +# that we enter the kernel in a known state, and
   1.179  +# don't have to worry about it later.
   1.180 @@ -395,25 +416,27 @@
   1.181  -	int	$0x19
   1.182  +#endif
   1.183  +        jmp	read_sectorslp
   1.184 -+
   1.185 + 
   1.186 +-	# int 0x19 should never return.  In case it does anyway,
   1.187 +-	# invoke the BIOS reset code...
   1.188 +-	ljmp	$0xf000,$0xfff0
   1.189  +#ifdef EXE_SUPPORT
   1.190  +read_sectors_dos:
   1.191 ++	xorw	%dx, %dx	// write to %ds:%dx, not %es:%bx
   1.192 ++	call	read_sectors_dosz
   1.193 ++read_sectors_dosz:
   1.194  +	pushw	%es
   1.195  +	popw	%ds
   1.196  +	movb	$0x3F, %ah	// read
   1.197 -+	cwd			// write to %ds:%dx, not %es:%bx
   1.198  +	movw	%di, %cx
   1.199 -+	shlw	$9, %cx		// byte count
   1.200 ++	shlw	$8, %cx		// byte count / 2
   1.201  +	movw	%bp, %bx
   1.202  +	int	$0x21
   1.203 ++	xchgw	%ax, %dx
   1.204  +	pushw	%ss
   1.205  +	popw	%ds
   1.206  +#endif
   1.207   
   1.208 --	# int 0x19 should never return.  In case it does anyway,
   1.209 --	# invoke the BIOS reset code...
   1.210 --	ljmp	$0xf000,$0xfff0
   1.211 --
   1.212  -	.section ".bsdata", "a"
   1.213  -bugger_off_msg:
   1.214  -	.ascii	"Direct booting from floppy is no longer supported.\r\n"
   1.215 @@ -432,7 +455,7 @@
   1.216  +	cmp	$0xd, %al		# CR ?
   1.217  +	je	putclf
   1.218  +	ret
   1.219 -+
   1.220 + 
   1.221  +#ifdef KEYBOARDLESS_SUPPORT
   1.222  +clock	= 0x46C
   1.223  +wait:
   1.224 @@ -453,7 +476,7 @@
   1.225  +waitdone:
   1.226  +	ret
   1.227  +#endif
   1.228 - 
   1.229 ++
   1.230  +#ifdef EXE_SUPPORT
   1.231  +comstart:
   1.232  +	cld				# assume nothing
     2.1 --- a/linux/stuff/linux-slitaz.config	Tue Apr 29 11:19:12 2014 +0000
     2.2 +++ b/linux/stuff/linux-slitaz.config	Tue Apr 29 16:08:33 2014 +0000
     2.3 @@ -135,7 +135,9 @@
     2.4  # CONFIG_SYSFS_DEPRECATED is not set
     2.5  # CONFIG_RELAY is not set
     2.6  CONFIG_BLK_DEV_INITRD=y
     2.7 -CONFIG_INITRAMFS_SOURCE=""
     2.8 +CONFIG_INITRAMFS_SOURCE="initrd.cpio"
     2.9 +CONFIG_INITRAMFS_ROOT_UID=0
    2.10 +CONFIG_INITRAMFS_ROOT_GID=0
    2.11  CONFIG_RD_GZIP=y
    2.12  CONFIG_RD_BZIP2=y
    2.13  CONFIG_RD_LZMA=y
    2.14 @@ -1401,39 +1403,39 @@
    2.15  CONFIG_SATA_AHCI_PLATFORM=m
    2.16  CONFIG_SATA_INIC162X=m
    2.17  CONFIG_SATA_ACARD_AHCI=m
    2.18 -CONFIG_SATA_SIL24=m
    2.19 +CONFIG_SATA_SIL24=y
    2.20  CONFIG_ATA_SFF=y
    2.21  
    2.22  #
    2.23  # SFF controllers with custom DMA interface
    2.24  #
    2.25 -CONFIG_PDC_ADMA=m
    2.26 -CONFIG_SATA_QSTOR=m
    2.27 -CONFIG_SATA_SX4=m
    2.28 +CONFIG_PDC_ADMA=y
    2.29 +CONFIG_SATA_QSTOR=y
    2.30 +CONFIG_SATA_SX4=y
    2.31  CONFIG_ATA_BMDMA=y
    2.32  
    2.33  #
    2.34  # SATA SFF controllers with BMDMA
    2.35  #
    2.36  CONFIG_ATA_PIIX=y
    2.37 -CONFIG_SATA_MV=m
    2.38 -CONFIG_SATA_NV=m
    2.39 -CONFIG_SATA_PROMISE=m
    2.40 -CONFIG_SATA_SIL=m
    2.41 -CONFIG_SATA_SIS=m
    2.42 -CONFIG_SATA_SVW=m
    2.43 -CONFIG_SATA_ULI=m
    2.44 -CONFIG_SATA_VIA=m
    2.45 -CONFIG_SATA_VITESSE=m
    2.46 +CONFIG_SATA_MV=y
    2.47 +CONFIG_SATA_NV=y
    2.48 +CONFIG_SATA_PROMISE=y
    2.49 +CONFIG_SATA_SIL=y
    2.50 +CONFIG_SATA_SIS=y
    2.51 +CONFIG_SATA_SVW=y
    2.52 +CONFIG_SATA_ULI=y
    2.53 +CONFIG_SATA_VIA=y
    2.54 +CONFIG_SATA_VITESSE=y
    2.55  
    2.56  #
    2.57  # PATA SFF controllers with BMDMA
    2.58  #
    2.59 -CONFIG_PATA_ALI=m
    2.60 -CONFIG_PATA_AMD=m
    2.61 -CONFIG_PATA_ARTOP=m
    2.62 -CONFIG_PATA_ATIIXP=m
    2.63 -CONFIG_PATA_ATP867X=m
    2.64 +CONFIG_PATA_ALI=y
    2.65 +CONFIG_PATA_AMD=y
    2.66 +CONFIG_PATA_ARTOP=y
    2.67 +CONFIG_PATA_ATIIXP=y
    2.68 +CONFIG_PATA_ATP867X=y
    2.69  CONFIG_PATA_CMD64X=m
    2.70  CONFIG_PATA_CS5520=m
    2.71  CONFIG_PATA_CS5530=m
    2.72 @@ -1447,9 +1449,9 @@
    2.73  CONFIG_PATA_HPT3X3=m
    2.74  # CONFIG_PATA_HPT3X3_DMA is not set
    2.75  CONFIG_PATA_IT8213=m
    2.76 -CONFIG_PATA_IT821X=m
    2.77 -CONFIG_PATA_JMICRON=m
    2.78 -CONFIG_PATA_MARVELL=m
    2.79 +CONFIG_PATA_IT821X=y
    2.80 +CONFIG_PATA_JMICRON=y
    2.81 +CONFIG_PATA_MARVELL=y
    2.82  CONFIG_PATA_NETCELL=m
    2.83  CONFIG_PATA_NINJA32=m
    2.84  CONFIG_PATA_NS87415=m
    2.85 @@ -1463,18 +1465,18 @@
    2.86  CONFIG_PATA_SCH=m
    2.87  CONFIG_PATA_SERVERWORKS=m
    2.88  CONFIG_PATA_SIL680=m
    2.89 -CONFIG_PATA_SIS=m
    2.90 -CONFIG_PATA_TOSHIBA=m
    2.91 +CONFIG_PATA_SIS=y
    2.92 +CONFIG_PATA_TOSHIBA=y
    2.93  CONFIG_PATA_TRIFLEX=m
    2.94 -CONFIG_PATA_VIA=m
    2.95 +CONFIG_PATA_VIA=y
    2.96  CONFIG_PATA_WINBOND=m
    2.97  
    2.98  #
    2.99  # PIO-only SFF controllers
   2.100  #
   2.101 -CONFIG_PATA_CMD640_PCI=m
   2.102 +CONFIG_PATA_CMD640_PCI=y
   2.103  CONFIG_PATA_ISAPNP=y
   2.104 -CONFIG_PATA_MPIIX=m
   2.105 +CONFIG_PATA_MPIIX=y
   2.106  CONFIG_PATA_NS87410=m
   2.107  CONFIG_PATA_OPTI=m
   2.108  CONFIG_PATA_PCMCIA=m
   2.109 @@ -1485,8 +1487,8 @@
   2.110  #
   2.111  # Generic fallback / legacy drivers
   2.112  #
   2.113 -CONFIG_PATA_ACPI=m
   2.114 -CONFIG_ATA_GENERIC=m
   2.115 +CONFIG_PATA_ACPI=y
   2.116 +CONFIG_ATA_GENERIC=y
   2.117  CONFIG_PATA_LEGACY=y
   2.118  CONFIG_MD=y
   2.119  CONFIG_BLK_DEV_MD=m