2002-10-18 01:29:40

by JunHyeok Heo

[permalink] [raw]
Subject: Kernel Panic 2.4.19 with Segate 80GB HDD


I used kernel 2.4.19 with Segate 80GB HDD (ST380020ACE).
The kernel could not recognize the number of sectors correctly, and then
result in kernel panic.
I tried kernel 2.4.18 with the same HDD, there is no problem.

Is this a bug in the ide device driver ? or is there any compatible HDD
list for 2.4.19 kernel ?

The cpu is PentiumIII 700Mhz cpu and
The chipset of motherboard is Intel BX.
The IDE controller is INTEL82801BA_9

In case of 2.4.19 kernel, the booting message as follows...
--
Linux version 2.4.19 (root@i74) (gcc version 2.95.4 (Debian prerelease)) #2
Wed
Oct 16 21:27:55 KST 2002
BIOS-provided physical RAM map:
BIOS-e820: 0000000000000000 - 000000000009fc00 (usable)
BIOS-e820: 000000000009fc00 - 00000000000a0000 (reserved)
BIOS-e820: 00000000000f0000 - 0000000000100000 (reserved)
BIOS-e820: 0000000000100000 - 000000000bfeb000 (usable)
BIOS-e820: 000000000bfeb000 - 000000000bfef000 (ACPI data)
BIOS-e820: 000000000bfef000 - 000000000bfff000 (reserved)
BIOS-e820: 000000000bfff000 - 000000000c000000 (ACPI NVS)
BIOS-e820: 00000000ffff0000 - 0000000100000000 (reserved)
191MB LOWMEM available.
On node 0 totalpages: 49131
zone(0): 4096 pages.
zone(1): 45035 pages.
zone(2): 0 pages.
Kernel command line: BOOT_IMAGE=host19 ro root=301
BOOT_FILE=/boot/vmlinuz-2.4.1
9 console=ttyS0,9600 console=ttyS0,9600
Initializing CPU#0
Detected 706.972 MHz processor.
Console: colour VGA+ 80x25
Calibrating delay loop... 1412.30 BogoMIPS
Memory: 192408k/196524k available (1069k kernel code, 3728k reserved, 260k
data,
60k init, 0k highmem)
Dentry cache hash table entries: 32768 (order: 6, 262144 bytes)
Inode cache hash table entries: 16384 (order: 5, 131072 bytes)
Mount-cache hash table entries: 4096 (order: 3, 32768 bytes)
Buffer-cache hash table entries: 8192 (order: 3, 32768 bytes)
Page-cache hash table entries: 65536 (order: 6, 262144 bytes)
CPU: L1 I cache: 16K, L1 D cache: 16K
CPU: L2 cache: 256K
Intel machine check architecture supported.
Intel machine check reporting enabled on CPU#0.
CPU: Intel Pentium III (Coppermine) stepping 03
Enabling fast FPU save and restore... done.
Enabling unmasked SIMD FPU exception support... done.
Checking 'hlt' instruction... OK.
POSIX conformance testing by UNIFIX
PCI: PCI BIOS revision 2.10 entry at 0xf0d90, last bus=2
PCI: Using configuration type 1
PCI: Probing PCI hardware
Unknown bridge resource 0: assuming transparent
PCI: Using IRQ router PIIX [8086/2440] at 00:1f.0
Linux NET4.0 for Linux 2.4
Based upon Swansea University Computer Society NET3.039
Initializing RT netlink socket
Starting kswapd
Installing knfsd (copyright (C) 1996 [email protected]).
pty: 256 Unix98 ptys configured
Serial driver version 5.05c (2001-07-08) with MANY_PORTS SHARE_IRQ
SERIAL_PCI en
abled
ttyS00 at 0x03f8 (irq = 4) is a 16550A
ttyS01 at 0x02f8 (irq = 3) is a 16550A
Real Time Clock Driver v1.10e
Uniform Multi-Platform E-IDE driver Revision: 6.31
ide: Assuming 33MHz system bus speed for PIO modes; override with idebus=xx
ICH2: IDE controller on PCI bus 00 dev f9
ICH2: chipset revision 1
ICH2: not 100% native mode: will probe irqs later
ide0: BM-DMA at 0xb800-0xb807, BIOS settings: hda:DMA, hdb:pio
ide1: BM-DMA at 0xb808-0xb80f, BIOS settings: hdc:pio, hdd:pio
hda: ST380020ACE, ATA DISK drive
ide0 at 0x1f0-0x1f7,0x3f6 on irq 14
hda: task_no_data_intr: status=0x51 { DriveReady SeekComplete Error }
hda: task_no_data_intr: error=0x04 { DriveStatusError }
hda: setmax_ext LBA 1, native 0
hda: 0 sectors (0 MB) w/2048KiB Cache, CHS=0/255/63, UDMA(33)
PPP generic driver version 2.4.2
NET4: Linux TCP/IP 1.0 for NET4.0
IP Protocols: ICMP, UDP, TCP
IP: routing cache hash table of 1024 buckets, 8Kbytes
TCP: Hash tables configured (established 16384 bind 16384)
NET4: Unix domain sockets 1.0/SMP for Linux NET4.0.
hda1: bad access: block=2, count=2
end_request: I/O error, dev 03:01 (hda), sector 2
EXT2-fs: unable to read superblock
hda1: bad access: block=0, count=1
end_request: I/O error, dev 03:01 (hda), sector 0
FAT: unable to read boot sector
hda1: bad access: block=128, count=1
end_request: I/O error, dev 03:01 (hda), sector 128
read_super_block: bread failed (dev 03:01, block 128, size 512)
hda1: bad access: block=16, count=1
end_request: I/O error, dev 03:01 (hda), sector 16
read_super_block: bread failed (dev 03:01, block 16, size 512)
Kernel panic: VFS: Unable to mount root fs on 03:01

--

In case of 2.4.18 kernel, the booting message as follows...

Linux version 2.4.18 (root@i076) (gcc version 2.95.4 (Debian prerelease)) #5
Fri Mar 22 19:21:49 KST 2002
BIOS-provided physical RAM map:
BIOS-e820: 0000000000000000 - 000000000009fc00 (usable)
BIOS-e820: 000000000009fc00 - 00000000000a0000 (reserved)
BIOS-e820: 00000000000f0000 - 0000000000100000 (reserved)
BIOS-e820: 0000000000100000 - 000000000bfeb000 (usable)
BIOS-e820: 000000000bfeb000 - 000000000bfef000 (ACPI data)
BIOS-e820: 000000000bfef000 - 000000000bfff000 (reserved)
BIOS-e820: 000000000bfff000 - 000000000c000000 (ACPI NVS)
BIOS-e820: 00000000ffff0000 - 0000000100000000 (reserved)
On node 0 totalpages: 49131
zone(0): 4096 pages.
zone(1): 45035 pages.
zone(2): 0 pages.
Local APIC disabled by BIOS -- reenabling.
Found and enabled local APIC!
Kernel command line: BOOT_IMAGE=host18 ro root=301
BOOT_FILE=/boot/vmlinuz-2.4.18
Initializing CPU#0
Detected 706.973 MHz processor.
Console: colour VGA+ 80x25
Calibrating delay loop... 1412.30 BogoMIPS
Memory: 191400k/196524k available (1064k kernel code, 4736k reserved, 287k
data, 76k init, 0k highmem)
Dentry-cache hash table entries: 32768 (order: 6, 262144 bytes)
Inode-cache hash table entries: 16384 (order: 5, 131072 bytes)
Mount-cache hash table entries: 4096 (order: 3, 32768 bytes)
Buffer-cache hash table entries: 8192 (order: 3, 32768 bytes)
Page-cache hash table entries: 65536 (order: 6, 262144 bytes)
CPU: Before vendor init, caps: 0383fbff 00000000 00000000, vendor = 0
CPU: L1 I cache: 16K, L1 D cache: 16K
CPU: L2 cache: 256K
CPU: After vendor init, caps: 0383fbff 00000000 00000000 00000000
Intel machine check architecture supported.
Intel machine check reporting enabled on CPU#0.
CPU: After generic, caps: 0383fbff 00000000 00000000 00000000
CPU: Common caps: 0383fbff 00000000 00000000 00000000
CPU: Intel Pentium III (Coppermine) stepping 03
Enabling fast FPU save and restore... done.
Enabling unmasked SIMD FPU exception support... done.
Checking 'hlt' instruction... OK.
POSIX conformance testing by UNIFIX
enabled ExtINT on CPU#0
ESR value before enabling vector: 00000000
ESR value after enabling vector: 00000000
Using local APIC timer interrupts.
calibrating APIC timer ...
..... CPU clock speed is 706.9670 MHz.
..... host bus clock speed is 100.9952 MHz.
cpu: 0, clocks: 1009952, slice: 504976
CPU0<T0:1009952,T1:504976,D:0,S:504976,C:1009952>
mtrr: v1.40 (20010327) Richard Gooch ([email protected])
mtrr: detected mtrr type: Intel
PCI: PCI BIOS revision 2.10 entry at 0xf0d90, last bus=2
PCI: Using configuration type 1
PCI: Probing PCI hardware
Unknown bridge resource 0: assuming transparent
PCI: Using IRQ router PIIX [8086/2440] at 00:1f.0
Linux NET4.0 for Linux 2.4
Based upon Swansea University Computer Society NET3.039
Initializing RT netlink socket
Starting kswapd
pty: 256 Unix98 ptys configured
Serial driver version 5.05c (2001-07-08) with MANY_PORTS SHARE_IRQ
SERIAL_PCI enabled
ttyS00 at 0x03f8 (irq = 4) is a 16550A
ttyS01 at 0x02f8 (irq = 3) is a 16550A
request_module[parport_lowlevel]: Root fs not mounted
lp: driver loaded but no devices found
ppdev: user-space parallel port driver
block: 128 slots per queue, batch=32
Uniform Multi-Platform E-IDE driver Revision: 6.31
ide: Assuming 33MHz system bus speed for PIO modes; override with idebus=xx
PIIX4: IDE controller on PCI bus 00 dev f9
PIIX4: chipset revision 1
PIIX4: not 100% native mode: will probe irqs later
ide0: BM-DMA at 0xb800-0xb807, BIOS settings: hda:DMA, hdb:pio
ide1: BM-DMA at 0xb808-0xb80f, BIOS settings: hdc:pio, hdd:pio
hda: ST380020ACE, ATA DISK drive
ide0 at 0x1f0-0x1f7,0x3f6 on irq 14
hda: 156301488 sectors (80026 MB) w/2048KiB Cache, CHS=9729/255/63, UDMA(33)
Partition check:
hda: hda1
PPP generic driver version 2.4.1
NET4: Linux TCP/IP 1.0 for NET4.0
IP Protocols: ICMP, UDP, TCP
IP: routing cache hash table of 1024 buckets, 8Kbytes
TCP: Hash tables configured (established 16384 bind 16384)
NET4: Unix domain sockets 1.0/SMP for Linux NET4.0.
FAT: bogus logical sector size 0
reiserfs: checking transaction log (device 03:01) ...
Using r5 hash to sort names
ReiserFS version 3.6.25
VFS: Mounted root (reiserfs filesystem) readonly.
Freeing unused kernel memory: 76k freed
8139too Fast Ethernet driver 0.9.24
PCI: Found IRQ 10 for device 02:0e.0
eth0: RealTek RTL8139 Fast Ethernet at 0xcc8b5000, 00:50:fc:3b:2a:76, IRQ 10
eth0: Identified 8139 chip type 'RTL-8139C'
eth0: Setting half-duplex based on auto-negotiated partner ability 0000.


2002-10-18 01:46:15

by GrandMasterLee

[permalink] [raw]
Subject: Re: Kernel Panic 2.4.19 with Segate 80GB HDD

On Thu, 2002-10-17 at 20:35, JunHyeok Heo wrote:
> I used kernel 2.4.19 with Segate 80GB HDD (ST380020ACE).
> The kernel could not recognize the number of sectors correctly, and then
> result in kernel panic.
> I tried kernel 2.4.18 with the same HDD, there is no problem.

I've been running 2.4.19 with ALi Magic chipset for a long time, with no
oops or panics related to HDD, FS, or anything.

> Is this a bug in the ide device driver ? or is there any compatible HDD
> list for 2.4.19 kernel ?
>
> The cpu is PentiumIII 700Mhz cpu and
> The chipset of motherboard is Intel BX.
> The IDE controller is INTEL82801BA_9
>
> In case of 2.4.19 kernel, the booting message as follows...
> --
> Linux version 2.4.19 (root@i74) (gcc version 2.95.4 (Debian prerelease)) #2
> Wed
> Oct 16 21:27:55 KST 2002
> BIOS-provided physical RAM map:
> BIOS-e820: 0000000000000000 - 000000000009fc00 (usable)
> BIOS-e820: 000000000009fc00 - 00000000000a0000 (reserved)
> BIOS-e820: 00000000000f0000 - 0000000000100000 (reserved)
> BIOS-e820: 0000000000100000 - 000000000bfeb000 (usable)
> BIOS-e820: 000000000bfeb000 - 000000000bfef000 (ACPI data)
> BIOS-e820: 000000000bfef000 - 000000000bfff000 (reserved)
> BIOS-e820: 000000000bfff000 - 000000000c000000 (ACPI NVS)
> BIOS-e820: 00000000ffff0000 - 0000000100000000 (reserved)
> 191MB LOWMEM available.
> On node 0 totalpages: 49131
> zone(0): 4096 pages.
> zone(1): 45035 pages.
> zone(2): 0 pages.
> Kernel command line: BOOT_IMAGE=host19 ro root=301
> BOOT_FILE=/boot/vmlinuz-2.4.1
> 9 console=ttyS0,9600 console=ttyS0,9600
> Initializing CPU#0
> Detected 706.972 MHz processor.
> Console: colour VGA+ 80x25
> Calibrating delay loop... 1412.30 BogoMIPS
> Memory: 192408k/196524k available (1069k kernel code, 3728k reserved, 260k
> data,
> 60k init, 0k highmem)
> Dentry cache hash table entries: 32768 (order: 6, 262144 bytes)
> Inode cache hash table entries: 16384 (order: 5, 131072 bytes)
> Mount-cache hash table entries: 4096 (order: 3, 32768 bytes)
> Buffer-cache hash table entries: 8192 (order: 3, 32768 bytes)
> Page-cache hash table entries: 65536 (order: 6, 262144 bytes)
> CPU: L1 I cache: 16K, L1 D cache: 16K
> CPU: L2 cache: 256K
> Intel machine check architecture supported.
> Intel machine check reporting enabled on CPU#0.
> CPU: Intel Pentium III (Coppermine) stepping 03
> Enabling fast FPU save and restore... done.
> Enabling unmasked SIMD FPU exception support... done.
> Checking 'hlt' instruction... OK.
> POSIX conformance testing by UNIFIX
> PCI: PCI BIOS revision 2.10 entry at 0xf0d90, last bus=2
> PCI: Using configuration type 1
> PCI: Probing PCI hardware
> Unknown bridge resource 0: assuming transparent
> PCI: Using IRQ router PIIX [8086/2440] at 00:1f.0
> Linux NET4.0 for Linux 2.4
> Based upon Swansea University Computer Society NET3.039
> Initializing RT netlink socket
> Starting kswapd
> Installing knfsd (copyright (C) 1996 [email protected]).
> pty: 256 Unix98 ptys configured
> Serial driver version 5.05c (2001-07-08) with MANY_PORTS SHARE_IRQ
> SERIAL_PCI en
> abled
> ttyS00 at 0x03f8 (irq = 4) is a 16550A
> ttyS01 at 0x02f8 (irq = 3) is a 16550A
> Real Time Clock Driver v1.10e
> Uniform Multi-Platform E-IDE driver Revision: 6.31
> ide: Assuming 33MHz system bus speed for PIO modes; override with idebus=xx
> ICH2: IDE controller on PCI bus 00 dev f9
> ICH2: chipset revision 1
> ICH2: not 100% native mode: will probe irqs later
> ide0: BM-DMA at 0xb800-0xb807, BIOS settings: hda:DMA, hdb:pio
> ide1: BM-DMA at 0xb808-0xb80f, BIOS settings: hdc:pio, hdd:pio
> hda: ST380020ACE, ATA DISK drive
> ide0 at 0x1f0-0x1f7,0x3f6 on irq 14
> hda: task_no_data_intr: status=0x51 { DriveReady SeekComplete Error }
> hda: task_no_data_intr: error=0x04 { DriveStatusError }
> hda: setmax_ext LBA 1, native 0
> hda: 0 sectors (0 MB) w/2048KiB Cache, CHS=0/255/63, UDMA(33)
> PPP generic driver version 2.4.2
> NET4: Linux TCP/IP 1.0 for NET4.0
> IP Protocols: ICMP, UDP, TCP
> IP: routing cache hash table of 1024 buckets, 8Kbytes
> TCP: Hash tables configured (established 16384 bind 16384)
> NET4: Unix domain sockets 1.0/SMP for Linux NET4.0.
> hda1: bad access: block=2, count=2
> end_request: I/O error, dev 03:01 (hda), sector 2
> EXT2-fs: unable to read superblock
> hda1: bad access: block=0, count=1
> end_request: I/O error, dev 03:01 (hda), sector 0
> FAT: unable to read boot sector
> hda1: bad access: block=128, count=1
> end_request: I/O error, dev 03:01 (hda), sector 128
> read_super_block: bread failed (dev 03:01, block 128, size 512)
> hda1: bad access: block=16, count=1
> end_request: I/O error, dev 03:01 (hda), sector 16
> read_super_block: bread failed (dev 03:01, block 16, size 512)
> Kernel panic: VFS: Unable to mount root fs on 03:01
>
> --
>
> In case of 2.4.18 kernel, the booting message as follows...
>
> Linux version 2.4.18 (root@i076) (gcc version 2.95.4 (Debian prerelease)) #5
> Fri Mar 22 19:21:49 KST 2002
> BIOS-provided physical RAM map:
> BIOS-e820: 0000000000000000 - 000000000009fc00 (usable)
> BIOS-e820: 000000000009fc00 - 00000000000a0000 (reserved)
> BIOS-e820: 00000000000f0000 - 0000000000100000 (reserved)
> BIOS-e820: 0000000000100000 - 000000000bfeb000 (usable)
> BIOS-e820: 000000000bfeb000 - 000000000bfef000 (ACPI data)
> BIOS-e820: 000000000bfef000 - 000000000bfff000 (reserved)
> BIOS-e820: 000000000bfff000 - 000000000c000000 (ACPI NVS)
> BIOS-e820: 00000000ffff0000 - 0000000100000000 (reserved)
> On node 0 totalpages: 49131
> zone(0): 4096 pages.
> zone(1): 45035 pages.
> zone(2): 0 pages.
> Local APIC disabled by BIOS -- reenabling.
> Found and enabled local APIC!
> Kernel command line: BOOT_IMAGE=host18 ro root=301
> BOOT_FILE=/boot/vmlinuz-2.4.18
> Initializing CPU#0
> Detected 706.973 MHz processor.
> Console: colour VGA+ 80x25
> Calibrating delay loop... 1412.30 BogoMIPS
> Memory: 191400k/196524k available (1064k kernel code, 4736k reserved, 287k
> data, 76k init, 0k highmem)
> Dentry-cache hash table entries: 32768 (order: 6, 262144 bytes)
> Inode-cache hash table entries: 16384 (order: 5, 131072 bytes)
> Mount-cache hash table entries: 4096 (order: 3, 32768 bytes)
> Buffer-cache hash table entries: 8192 (order: 3, 32768 bytes)
> Page-cache hash table entries: 65536 (order: 6, 262144 bytes)
> CPU: Before vendor init, caps: 0383fbff 00000000 00000000, vendor = 0
> CPU: L1 I cache: 16K, L1 D cache: 16K
> CPU: L2 cache: 256K
> CPU: After vendor init, caps: 0383fbff 00000000 00000000 00000000
> Intel machine check architecture supported.
> Intel machine check reporting enabled on CPU#0.
> CPU: After generic, caps: 0383fbff 00000000 00000000 00000000
> CPU: Common caps: 0383fbff 00000000 00000000 00000000
> CPU: Intel Pentium III (Coppermine) stepping 03
> Enabling fast FPU save and restore... done.
> Enabling unmasked SIMD FPU exception support... done.
> Checking 'hlt' instruction... OK.
> POSIX conformance testing by UNIFIX
> enabled ExtINT on CPU#0
> ESR value before enabling vector: 00000000
> ESR value after enabling vector: 00000000
> Using local APIC timer interrupts.
> calibrating APIC timer ...
> ..... CPU clock speed is 706.9670 MHz.
> ..... host bus clock speed is 100.9952 MHz.
> cpu: 0, clocks: 1009952, slice: 504976
> CPU0<T0:1009952,T1:504976,D:0,S:504976,C:1009952>
> mtrr: v1.40 (20010327) Richard Gooch ([email protected])
> mtrr: detected mtrr type: Intel
> PCI: PCI BIOS revision 2.10 entry at 0xf0d90, last bus=2
> PCI: Using configuration type 1
> PCI: Probing PCI hardware
> Unknown bridge resource 0: assuming transparent
> PCI: Using IRQ router PIIX [8086/2440] at 00:1f.0
> Linux NET4.0 for Linux 2.4
> Based upon Swansea University Computer Society NET3.039
> Initializing RT netlink socket
> Starting kswapd
> pty: 256 Unix98 ptys configured
> Serial driver version 5.05c (2001-07-08) with MANY_PORTS SHARE_IRQ
> SERIAL_PCI enabled
> ttyS00 at 0x03f8 (irq = 4) is a 16550A
> ttyS01 at 0x02f8 (irq = 3) is a 16550A
> request_module[parport_lowlevel]: Root fs not mounted
> lp: driver loaded but no devices found
> ppdev: user-space parallel port driver
> block: 128 slots per queue, batch=32
> Uniform Multi-Platform E-IDE driver Revision: 6.31
> ide: Assuming 33MHz system bus speed for PIO modes; override with idebus=xx
> PIIX4: IDE controller on PCI bus 00 dev f9
> PIIX4: chipset revision 1
> PIIX4: not 100% native mode: will probe irqs later
> ide0: BM-DMA at 0xb800-0xb807, BIOS settings: hda:DMA, hdb:pio
> ide1: BM-DMA at 0xb808-0xb80f, BIOS settings: hdc:pio, hdd:pio
> hda: ST380020ACE, ATA DISK drive
> ide0 at 0x1f0-0x1f7,0x3f6 on irq 14
> hda: 156301488 sectors (80026 MB) w/2048KiB Cache, CHS=9729/255/63, UDMA(33)
> Partition check:
> hda: hda1
> PPP generic driver version 2.4.1
> NET4: Linux TCP/IP 1.0 for NET4.0
> IP Protocols: ICMP, UDP, TCP
> IP: routing cache hash table of 1024 buckets, 8Kbytes
> TCP: Hash tables configured (established 16384 bind 16384)
> NET4: Unix domain sockets 1.0/SMP for Linux NET4.0.
> FAT: bogus logical sector size 0
> reiserfs: checking transaction log (device 03:01) ...
> Using r5 hash to sort names
> ReiserFS version 3.6.25
> VFS: Mounted root (reiserfs filesystem) readonly.
> Freeing unused kernel memory: 76k freed
> 8139too Fast Ethernet driver 0.9.24
> PCI: Found IRQ 10 for device 02:0e.0
> eth0: RealTek RTL8139 Fast Ethernet at 0xcc8b5000, 00:50:fc:3b:2a:76, IRQ 10
> eth0: Identified 8139 chip type 'RTL-8139C'
> eth0: Setting half-duplex based on auto-negotiated partner ability 0000.
>
> -
> To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
> the body of a message to [email protected]
> More majordomo info at http://vger.kernel.org/majordomo-info.html
> Please read the FAQ at http://www.tux.org/lkml/

2002-10-19 13:46:31

by Michael Kiefer

[permalink] [raw]
Subject: Re: Kernel Panic 2.4.19 with Segate 80GB HDD

I have the same problem:
ST380020ACE produces a kernel panic when I try to pass the disk geometry data manually "hda=noprobe hda=XXXXX/YYY/ZZ hdb=none" to the kernels 2.4.18 _and_ 2.4.19. I have to do it this way as autodetection fails. I use a NMC-7VAX (Via KX133) Mainboard / Athlon 800


________________________________________________________________
Keine verlorenen Lotto-Quittungen, keine vergessenen Gewinne mehr!
Beim WEB.DE Lottoservice: http://tippen2.web.de/?x=13


2002-10-21 08:26:00

by JunHyeok Heo

[permalink] [raw]
Subject: Re: Kernel Panic 2.4.19 with Segate 80GB HDD


I investigated this problem.
The problem was that Segate 80GB HDD (ST380020ACE) erroneously has 48bit LBA
turned on,
but the capacity field for 48Bit LBA has 0.
So, i modified the "init_idedisk_capacity()" function to forcily use the
28bit LBA mode
in this case. I know that the HDD less than 137GB no need to use 48bit LBA.

If there is someone who suffers from the same symptom,
try the following patch at your own risk. ^^;;;

--------- From Here -----------------
diff -urN linux-2.4.19-ori/drivers/ide/ide-disk.c
linux-2.4.19/drivers/ide/ide-disk.c
--- linux-2.4.19-ori/drivers/ide/ide-disk.c Sat Aug 3 09:39:44 2002
+++ linux-2.4.19/drivers/ide/ide-disk.c Mon Oct 21 17:09:09 2002
@@ -928,6 +928,13 @@
drive->select.b.lba = 0;

if (id->cfs_enable_2 & 0x0400) {
+ if (id->lba_capacity_2 == (long long) 0) {
+ id->cfs_enable_2 &= ~0x0400;
+ printk("%s: not suitable for 48bit LBA, forcily 28bit LBA is
used\n",drive->name);
+ }
+ }
+
+ if (id->cfs_enable_2 & 0x0400) {
capacity_2 = id->lba_capacity_2;
drive->head = drive->bios_head = 255;
drive->sect = drive->bios_sect = 63;
----- Original Message -----
From: "JunHyeok Heo" <[email protected]>
To: <[email protected]>
Sent: Friday, October 18, 2002 10:35 AM
Subject: Kernel Panic 2.4.19 with Segate 80GB HDD


>
> I used kernel 2.4.19 with Segate 80GB HDD (ST380020ACE).
> The kernel could not recognize the number of sectors correctly, and then
> result in kernel panic.
> I tried kernel 2.4.18 with the same HDD, there is no problem.
>
> Is this a bug in the ide device driver ? or is there any compatible HDD
> list for 2.4.19 kernel ?
>
> The cpu is PentiumIII 700Mhz cpu and
> The chipset of motherboard is Intel BX.
> The IDE controller is INTEL82801BA_9
>
> In case of 2.4.19 kernel, the booting message as follows...
> --
> Linux version 2.4.19 (root@i74) (gcc version 2.95.4 (Debian prerelease))
#2
> Wed
> Oct 16 21:27:55 KST 2002
> BIOS-provided physical RAM map:
> BIOS-e820: 0000000000000000 - 000000000009fc00 (usable)
> BIOS-e820: 000000000009fc00 - 00000000000a0000 (reserved)
> BIOS-e820: 00000000000f0000 - 0000000000100000 (reserved)
> BIOS-e820: 0000000000100000 - 000000000bfeb000 (usable)
> BIOS-e820: 000000000bfeb000 - 000000000bfef000 (ACPI data)
> BIOS-e820: 000000000bfef000 - 000000000bfff000 (reserved)
> BIOS-e820: 000000000bfff000 - 000000000c000000 (ACPI NVS)
> BIOS-e820: 00000000ffff0000 - 0000000100000000 (reserved)
> 191MB LOWMEM available.
> On node 0 totalpages: 49131
> zone(0): 4096 pages.
> zone(1): 45035 pages.
> zone(2): 0 pages.
> Kernel command line: BOOT_IMAGE=host19 ro root=301
> BOOT_FILE=/boot/vmlinuz-2.4.1
> 9 console=ttyS0,9600 console=ttyS0,9600
> Initializing CPU#0
> Detected 706.972 MHz processor.
> Console: colour VGA+ 80x25
> Calibrating delay loop... 1412.30 BogoMIPS
> Memory: 192408k/196524k available (1069k kernel code, 3728k reserved, 260k
> data,
> 60k init, 0k highmem)
> Dentry cache hash table entries: 32768 (order: 6, 262144 bytes)
> Inode cache hash table entries: 16384 (order: 5, 131072 bytes)
> Mount-cache hash table entries: 4096 (order: 3, 32768 bytes)
> Buffer-cache hash table entries: 8192 (order: 3, 32768 bytes)
> Page-cache hash table entries: 65536 (order: 6, 262144 bytes)
> CPU: L1 I cache: 16K, L1 D cache: 16K
> CPU: L2 cache: 256K
> Intel machine check architecture supported.
> Intel machine check reporting enabled on CPU#0.
> CPU: Intel Pentium III (Coppermine) stepping 03
> Enabling fast FPU save and restore... done.
> Enabling unmasked SIMD FPU exception support... done.
> Checking 'hlt' instruction... OK.
> POSIX conformance testing by UNIFIX
> PCI: PCI BIOS revision 2.10 entry at 0xf0d90, last bus=2
> PCI: Using configuration type 1
> PCI: Probing PCI hardware
> Unknown bridge resource 0: assuming transparent
> PCI: Using IRQ router PIIX [8086/2440] at 00:1f.0
> Linux NET4.0 for Linux 2.4
> Based upon Swansea University Computer Society NET3.039
> Initializing RT netlink socket
> Starting kswapd
> Installing knfsd (copyright (C) 1996 [email protected]).
> pty: 256 Unix98 ptys configured
> Serial driver version 5.05c (2001-07-08) with MANY_PORTS SHARE_IRQ
> SERIAL_PCI en
> abled
> ttyS00 at 0x03f8 (irq = 4) is a 16550A
> ttyS01 at 0x02f8 (irq = 3) is a 16550A
> Real Time Clock Driver v1.10e
> Uniform Multi-Platform E-IDE driver Revision: 6.31
> ide: Assuming 33MHz system bus speed for PIO modes; override with
idebus=xx
> ICH2: IDE controller on PCI bus 00 dev f9
> ICH2: chipset revision 1
> ICH2: not 100% native mode: will probe irqs later
> ide0: BM-DMA at 0xb800-0xb807, BIOS settings: hda:DMA, hdb:pio
> ide1: BM-DMA at 0xb808-0xb80f, BIOS settings: hdc:pio, hdd:pio
> hda: ST380020ACE, ATA DISK drive
> ide0 at 0x1f0-0x1f7,0x3f6 on irq 14
> hda: task_no_data_intr: status=0x51 { DriveReady SeekComplete Error }
> hda: task_no_data_intr: error=0x04 { DriveStatusError }
> hda: setmax_ext LBA 1, native 0
> hda: 0 sectors (0 MB) w/2048KiB Cache, CHS=0/255/63, UDMA(33)
> PPP generic driver version 2.4.2
> NET4: Linux TCP/IP 1.0 for NET4.0
> IP Protocols: ICMP, UDP, TCP
> IP: routing cache hash table of 1024 buckets, 8Kbytes
> TCP: Hash tables configured (established 16384 bind 16384)
> NET4: Unix domain sockets 1.0/SMP for Linux NET4.0.
> hda1: bad access: block=2, count=2
> end_request: I/O error, dev 03:01 (hda), sector 2
> EXT2-fs: unable to read superblock
> hda1: bad access: block=0, count=1
> end_request: I/O error, dev 03:01 (hda), sector 0
> FAT: unable to read boot sector
> hda1: bad access: block=128, count=1
> end_request: I/O error, dev 03:01 (hda), sector 128
> read_super_block: bread failed (dev 03:01, block 128, size 512)
> hda1: bad access: block=16, count=1
> end_request: I/O error, dev 03:01 (hda), sector 16
> read_super_block: bread failed (dev 03:01, block 16, size 512)
> Kernel panic: VFS: Unable to mount root fs on 03:01
>
> --
>
> In case of 2.4.18 kernel, the booting message as follows...
>
> Linux version 2.4.18 (root@i076) (gcc version 2.95.4 (Debian prerelease))
#5
> Fri Mar 22 19:21:49 KST 2002
> BIOS-provided physical RAM map:
> BIOS-e820: 0000000000000000 - 000000000009fc00 (usable)
> BIOS-e820: 000000000009fc00 - 00000000000a0000 (reserved)
> BIOS-e820: 00000000000f0000 - 0000000000100000 (reserved)
> BIOS-e820: 0000000000100000 - 000000000bfeb000 (usable)
> BIOS-e820: 000000000bfeb000 - 000000000bfef000 (ACPI data)
> BIOS-e820: 000000000bfef000 - 000000000bfff000 (reserved)
> BIOS-e820: 000000000bfff000 - 000000000c000000 (ACPI NVS)
> BIOS-e820: 00000000ffff0000 - 0000000100000000 (reserved)
> On node 0 totalpages: 49131
> zone(0): 4096 pages.
> zone(1): 45035 pages.
> zone(2): 0 pages.
> Local APIC disabled by BIOS -- reenabling.
> Found and enabled local APIC!
> Kernel command line: BOOT_IMAGE=host18 ro root=301
> BOOT_FILE=/boot/vmlinuz-2.4.18
> Initializing CPU#0
> Detected 706.973 MHz processor.
> Console: colour VGA+ 80x25
> Calibrating delay loop... 1412.30 BogoMIPS
> Memory: 191400k/196524k available (1064k kernel code, 4736k reserved, 287k
> data, 76k init, 0k highmem)
> Dentry-cache hash table entries: 32768 (order: 6, 262144 bytes)
> Inode-cache hash table entries: 16384 (order: 5, 131072 bytes)
> Mount-cache hash table entries: 4096 (order: 3, 32768 bytes)
> Buffer-cache hash table entries: 8192 (order: 3, 32768 bytes)
> Page-cache hash table entries: 65536 (order: 6, 262144 bytes)
> CPU: Before vendor init, caps: 0383fbff 00000000 00000000, vendor = 0
> CPU: L1 I cache: 16K, L1 D cache: 16K
> CPU: L2 cache: 256K
> CPU: After vendor init, caps: 0383fbff 00000000 00000000 00000000
> Intel machine check architecture supported.
> Intel machine check reporting enabled on CPU#0.
> CPU: After generic, caps: 0383fbff 00000000 00000000 00000000
> CPU: Common caps: 0383fbff 00000000 00000000 00000000
> CPU: Intel Pentium III (Coppermine) stepping 03
> Enabling fast FPU save and restore... done.
> Enabling unmasked SIMD FPU exception support... done.
> Checking 'hlt' instruction... OK.
> POSIX conformance testing by UNIFIX
> enabled ExtINT on CPU#0
> ESR value before enabling vector: 00000000
> ESR value after enabling vector: 00000000
> Using local APIC timer interrupts.
> calibrating APIC timer ...
> ..... CPU clock speed is 706.9670 MHz.
> ..... host bus clock speed is 100.9952 MHz.
> cpu: 0, clocks: 1009952, slice: 504976
> CPU0<T0:1009952,T1:504976,D:0,S:504976,C:1009952>
> mtrr: v1.40 (20010327) Richard Gooch ([email protected])
> mtrr: detected mtrr type: Intel
> PCI: PCI BIOS revision 2.10 entry at 0xf0d90, last bus=2
> PCI: Using configuration type 1
> PCI: Probing PCI hardware
> Unknown bridge resource 0: assuming transparent
> PCI: Using IRQ router PIIX [8086/2440] at 00:1f.0
> Linux NET4.0 for Linux 2.4
> Based upon Swansea University Computer Society NET3.039
> Initializing RT netlink socket
> Starting kswapd
> pty: 256 Unix98 ptys configured
> Serial driver version 5.05c (2001-07-08) with MANY_PORTS SHARE_IRQ
> SERIAL_PCI enabled
> ttyS00 at 0x03f8 (irq = 4) is a 16550A
> ttyS01 at 0x02f8 (irq = 3) is a 16550A
> request_module[parport_lowlevel]: Root fs not mounted
> lp: driver loaded but no devices found
> ppdev: user-space parallel port driver
> block: 128 slots per queue, batch=32
> Uniform Multi-Platform E-IDE driver Revision: 6.31
> ide: Assuming 33MHz system bus speed for PIO modes; override with
idebus=xx
> PIIX4: IDE controller on PCI bus 00 dev f9
> PIIX4: chipset revision 1
> PIIX4: not 100% native mode: will probe irqs later
> ide0: BM-DMA at 0xb800-0xb807, BIOS settings: hda:DMA, hdb:pio
> ide1: BM-DMA at 0xb808-0xb80f, BIOS settings: hdc:pio, hdd:pio
> hda: ST380020ACE, ATA DISK drive
> ide0 at 0x1f0-0x1f7,0x3f6 on irq 14
> hda: 156301488 sectors (80026 MB) w/2048KiB Cache, CHS=9729/255/63,
UDMA(33)
> Partition check:
> hda: hda1
> PPP generic driver version 2.4.1
> NET4: Linux TCP/IP 1.0 for NET4.0
> IP Protocols: ICMP, UDP, TCP
> IP: routing cache hash table of 1024 buckets, 8Kbytes
> TCP: Hash tables configured (established 16384 bind 16384)
> NET4: Unix domain sockets 1.0/SMP for Linux NET4.0.
> FAT: bogus logical sector size 0
> reiserfs: checking transaction log (device 03:01) ...
> Using r5 hash to sort names
> ReiserFS version 3.6.25
> VFS: Mounted root (reiserfs filesystem) readonly.
> Freeing unused kernel memory: 76k freed
> 8139too Fast Ethernet driver 0.9.24
> PCI: Found IRQ 10 for device 02:0e.0
> eth0: RealTek RTL8139 Fast Ethernet at 0xcc8b5000, 00:50:fc:3b:2a:76, IRQ
10
> eth0: Identified 8139 chip type 'RTL-8139C'
> eth0: Setting half-duplex based on auto-negotiated partner ability 0000.
>

2002-10-21 23:48:47

by Andre Hedrick

[permalink] [raw]
Subject: Re: Kernel Panic 2.4.19 with Segate 80GB HDD


No "erroneously has 48bit LBA turned on" is not what is happening.
There are general purpose logs which reqire 48-bit operations.
A device can support 48-bit command and be less than 137GB.
Also if you disable 48-bit some of the drive features will not work.

Bit on and zero in words 100-103 is a Buggy SPEC!

Currently an beautiful mess has been made by the committe.

If device supports 48-bit is it required to report capacity in all 48-bit
locations in the IDENTIFY Page?

If the device is destroked to less than 137GB does it report the same in
both words 60-61 and 100-103?

There are worse yet to come.


On Mon, 21 Oct 2002, JunHyeok Heo wrote:

>
> I investigated this problem.
> The problem was that Segate 80GB HDD (ST380020ACE) erroneously has 48bit LBA
> turned on,
> but the capacity field for 48Bit LBA has 0.
> So, i modified the "init_idedisk_capacity()" function to forcily use the
> 28bit LBA mode
> in this case. I know that the HDD less than 137GB no need to use 48bit LBA.
>
> If there is someone who suffers from the same symptom,
> try the following patch at your own risk. ^^;;;
>
> --------- From Here -----------------
> diff -urN linux-2.4.19-ori/drivers/ide/ide-disk.c
> linux-2.4.19/drivers/ide/ide-disk.c
> --- linux-2.4.19-ori/drivers/ide/ide-disk.c Sat Aug 3 09:39:44 2002
> +++ linux-2.4.19/drivers/ide/ide-disk.c Mon Oct 21 17:09:09 2002
> @@ -928,6 +928,13 @@
> drive->select.b.lba = 0;
>
> if (id->cfs_enable_2 & 0x0400) {
> + if (id->lba_capacity_2 == (long long) 0) {
> + id->cfs_enable_2 &= ~0x0400;
> + printk("%s: not suitable for 48bit LBA, forcily 28bit LBA is
> used\n",drive->name);
> + }
> + }
> +
> + if (id->cfs_enable_2 & 0x0400) {
> capacity_2 = id->lba_capacity_2;
> drive->head = drive->bios_head = 255;
> drive->sect = drive->bios_sect = 63;
> ----- Original Message -----
> From: "JunHyeok Heo" <[email protected]>
> To: <[email protected]>
> Sent: Friday, October 18, 2002 10:35 AM
> Subject: Kernel Panic 2.4.19 with Segate 80GB HDD
>
>
> >
> > I used kernel 2.4.19 with Segate 80GB HDD (ST380020ACE).
> > The kernel could not recognize the number of sectors correctly, and then
> > result in kernel panic.
> > I tried kernel 2.4.18 with the same HDD, there is no problem.
> >
> > Is this a bug in the ide device driver ? or is there any compatible HDD
> > list for 2.4.19 kernel ?
> >
> > The cpu is PentiumIII 700Mhz cpu and
> > The chipset of motherboard is Intel BX.
> > The IDE controller is INTEL82801BA_9
> >
> > In case of 2.4.19 kernel, the booting message as follows...
> > --
> > Linux version 2.4.19 (root@i74) (gcc version 2.95.4 (Debian prerelease))
> #2
> > Wed
> > Oct 16 21:27:55 KST 2002
> > BIOS-provided physical RAM map:
> > BIOS-e820: 0000000000000000 - 000000000009fc00 (usable)
> > BIOS-e820: 000000000009fc00 - 00000000000a0000 (reserved)
> > BIOS-e820: 00000000000f0000 - 0000000000100000 (reserved)
> > BIOS-e820: 0000000000100000 - 000000000bfeb000 (usable)
> > BIOS-e820: 000000000bfeb000 - 000000000bfef000 (ACPI data)
> > BIOS-e820: 000000000bfef000 - 000000000bfff000 (reserved)
> > BIOS-e820: 000000000bfff000 - 000000000c000000 (ACPI NVS)
> > BIOS-e820: 00000000ffff0000 - 0000000100000000 (reserved)
> > 191MB LOWMEM available.
> > On node 0 totalpages: 49131
> > zone(0): 4096 pages.
> > zone(1): 45035 pages.
> > zone(2): 0 pages.
> > Kernel command line: BOOT_IMAGE=host19 ro root=301
> > BOOT_FILE=/boot/vmlinuz-2.4.1
> > 9 console=ttyS0,9600 console=ttyS0,9600
> > Initializing CPU#0
> > Detected 706.972 MHz processor.
> > Console: colour VGA+ 80x25
> > Calibrating delay loop... 1412.30 BogoMIPS
> > Memory: 192408k/196524k available (1069k kernel code, 3728k reserved, 260k
> > data,
> > 60k init, 0k highmem)
> > Dentry cache hash table entries: 32768 (order: 6, 262144 bytes)
> > Inode cache hash table entries: 16384 (order: 5, 131072 bytes)
> > Mount-cache hash table entries: 4096 (order: 3, 32768 bytes)
> > Buffer-cache hash table entries: 8192 (order: 3, 32768 bytes)
> > Page-cache hash table entries: 65536 (order: 6, 262144 bytes)
> > CPU: L1 I cache: 16K, L1 D cache: 16K
> > CPU: L2 cache: 256K
> > Intel machine check architecture supported.
> > Intel machine check reporting enabled on CPU#0.
> > CPU: Intel Pentium III (Coppermine) stepping 03
> > Enabling fast FPU save and restore... done.
> > Enabling unmasked SIMD FPU exception support... done.
> > Checking 'hlt' instruction... OK.
> > POSIX conformance testing by UNIFIX
> > PCI: PCI BIOS revision 2.10 entry at 0xf0d90, last bus=2
> > PCI: Using configuration type 1
> > PCI: Probing PCI hardware
> > Unknown bridge resource 0: assuming transparent
> > PCI: Using IRQ router PIIX [8086/2440] at 00:1f.0
> > Linux NET4.0 for Linux 2.4
> > Based upon Swansea University Computer Society NET3.039
> > Initializing RT netlink socket
> > Starting kswapd
> > Installing knfsd (copyright (C) 1996 [email protected]).
> > pty: 256 Unix98 ptys configured
> > Serial driver version 5.05c (2001-07-08) with MANY_PORTS SHARE_IRQ
> > SERIAL_PCI en
> > abled
> > ttyS00 at 0x03f8 (irq = 4) is a 16550A
> > ttyS01 at 0x02f8 (irq = 3) is a 16550A
> > Real Time Clock Driver v1.10e
> > Uniform Multi-Platform E-IDE driver Revision: 6.31
> > ide: Assuming 33MHz system bus speed for PIO modes; override with
> idebus=xx
> > ICH2: IDE controller on PCI bus 00 dev f9
> > ICH2: chipset revision 1
> > ICH2: not 100% native mode: will probe irqs later
> > ide0: BM-DMA at 0xb800-0xb807, BIOS settings: hda:DMA, hdb:pio
> > ide1: BM-DMA at 0xb808-0xb80f, BIOS settings: hdc:pio, hdd:pio
> > hda: ST380020ACE, ATA DISK drive
> > ide0 at 0x1f0-0x1f7,0x3f6 on irq 14
> > hda: task_no_data_intr: status=0x51 { DriveReady SeekComplete Error }
> > hda: task_no_data_intr: error=0x04 { DriveStatusError }
> > hda: setmax_ext LBA 1, native 0
> > hda: 0 sectors (0 MB) w/2048KiB Cache, CHS=0/255/63, UDMA(33)
> > PPP generic driver version 2.4.2
> > NET4: Linux TCP/IP 1.0 for NET4.0
> > IP Protocols: ICMP, UDP, TCP
> > IP: routing cache hash table of 1024 buckets, 8Kbytes
> > TCP: Hash tables configured (established 16384 bind 16384)
> > NET4: Unix domain sockets 1.0/SMP for Linux NET4.0.
> > hda1: bad access: block=2, count=2
> > end_request: I/O error, dev 03:01 (hda), sector 2
> > EXT2-fs: unable to read superblock
> > hda1: bad access: block=0, count=1
> > end_request: I/O error, dev 03:01 (hda), sector 0
> > FAT: unable to read boot sector
> > hda1: bad access: block=128, count=1
> > end_request: I/O error, dev 03:01 (hda), sector 128
> > read_super_block: bread failed (dev 03:01, block 128, size 512)
> > hda1: bad access: block=16, count=1
> > end_request: I/O error, dev 03:01 (hda), sector 16
> > read_super_block: bread failed (dev 03:01, block 16, size 512)
> > Kernel panic: VFS: Unable to mount root fs on 03:01
> >
> > --
> >
> > In case of 2.4.18 kernel, the booting message as follows...
> >
> > Linux version 2.4.18 (root@i076) (gcc version 2.95.4 (Debian prerelease))
> #5
> > Fri Mar 22 19:21:49 KST 2002
> > BIOS-provided physical RAM map:
> > BIOS-e820: 0000000000000000 - 000000000009fc00 (usable)
> > BIOS-e820: 000000000009fc00 - 00000000000a0000 (reserved)
> > BIOS-e820: 00000000000f0000 - 0000000000100000 (reserved)
> > BIOS-e820: 0000000000100000 - 000000000bfeb000 (usable)
> > BIOS-e820: 000000000bfeb000 - 000000000bfef000 (ACPI data)
> > BIOS-e820: 000000000bfef000 - 000000000bfff000 (reserved)
> > BIOS-e820: 000000000bfff000 - 000000000c000000 (ACPI NVS)
> > BIOS-e820: 00000000ffff0000 - 0000000100000000 (reserved)
> > On node 0 totalpages: 49131
> > zone(0): 4096 pages.
> > zone(1): 45035 pages.
> > zone(2): 0 pages.
> > Local APIC disabled by BIOS -- reenabling.
> > Found and enabled local APIC!
> > Kernel command line: BOOT_IMAGE=host18 ro root=301
> > BOOT_FILE=/boot/vmlinuz-2.4.18
> > Initializing CPU#0
> > Detected 706.973 MHz processor.
> > Console: colour VGA+ 80x25
> > Calibrating delay loop... 1412.30 BogoMIPS
> > Memory: 191400k/196524k available (1064k kernel code, 4736k reserved, 287k
> > data, 76k init, 0k highmem)
> > Dentry-cache hash table entries: 32768 (order: 6, 262144 bytes)
> > Inode-cache hash table entries: 16384 (order: 5, 131072 bytes)
> > Mount-cache hash table entries: 4096 (order: 3, 32768 bytes)
> > Buffer-cache hash table entries: 8192 (order: 3, 32768 bytes)
> > Page-cache hash table entries: 65536 (order: 6, 262144 bytes)
> > CPU: Before vendor init, caps: 0383fbff 00000000 00000000, vendor = 0
> > CPU: L1 I cache: 16K, L1 D cache: 16K
> > CPU: L2 cache: 256K
> > CPU: After vendor init, caps: 0383fbff 00000000 00000000 00000000
> > Intel machine check architecture supported.
> > Intel machine check reporting enabled on CPU#0.
> > CPU: After generic, caps: 0383fbff 00000000 00000000 00000000
> > CPU: Common caps: 0383fbff 00000000 00000000 00000000
> > CPU: Intel Pentium III (Coppermine) stepping 03
> > Enabling fast FPU save and restore... done.
> > Enabling unmasked SIMD FPU exception support... done.
> > Checking 'hlt' instruction... OK.
> > POSIX conformance testing by UNIFIX
> > enabled ExtINT on CPU#0
> > ESR value before enabling vector: 00000000
> > ESR value after enabling vector: 00000000
> > Using local APIC timer interrupts.
> > calibrating APIC timer ...
> > ..... CPU clock speed is 706.9670 MHz.
> > ..... host bus clock speed is 100.9952 MHz.
> > cpu: 0, clocks: 1009952, slice: 504976
> > CPU0<T0:1009952,T1:504976,D:0,S:504976,C:1009952>
> > mtrr: v1.40 (20010327) Richard Gooch ([email protected])
> > mtrr: detected mtrr type: Intel
> > PCI: PCI BIOS revision 2.10 entry at 0xf0d90, last bus=2
> > PCI: Using configuration type 1
> > PCI: Probing PCI hardware
> > Unknown bridge resource 0: assuming transparent
> > PCI: Using IRQ router PIIX [8086/2440] at 00:1f.0
> > Linux NET4.0 for Linux 2.4
> > Based upon Swansea University Computer Society NET3.039
> > Initializing RT netlink socket
> > Starting kswapd
> > pty: 256 Unix98 ptys configured
> > Serial driver version 5.05c (2001-07-08) with MANY_PORTS SHARE_IRQ
> > SERIAL_PCI enabled
> > ttyS00 at 0x03f8 (irq = 4) is a 16550A
> > ttyS01 at 0x02f8 (irq = 3) is a 16550A
> > request_module[parport_lowlevel]: Root fs not mounted
> > lp: driver loaded but no devices found
> > ppdev: user-space parallel port driver
> > block: 128 slots per queue, batch=32
> > Uniform Multi-Platform E-IDE driver Revision: 6.31
> > ide: Assuming 33MHz system bus speed for PIO modes; override with
> idebus=xx
> > PIIX4: IDE controller on PCI bus 00 dev f9
> > PIIX4: chipset revision 1
> > PIIX4: not 100% native mode: will probe irqs later
> > ide0: BM-DMA at 0xb800-0xb807, BIOS settings: hda:DMA, hdb:pio
> > ide1: BM-DMA at 0xb808-0xb80f, BIOS settings: hdc:pio, hdd:pio
> > hda: ST380020ACE, ATA DISK drive
> > ide0 at 0x1f0-0x1f7,0x3f6 on irq 14
> > hda: 156301488 sectors (80026 MB) w/2048KiB Cache, CHS=9729/255/63,
> UDMA(33)
> > Partition check:
> > hda: hda1
> > PPP generic driver version 2.4.1
> > NET4: Linux TCP/IP 1.0 for NET4.0
> > IP Protocols: ICMP, UDP, TCP
> > IP: routing cache hash table of 1024 buckets, 8Kbytes
> > TCP: Hash tables configured (established 16384 bind 16384)
> > NET4: Unix domain sockets 1.0/SMP for Linux NET4.0.
> > FAT: bogus logical sector size 0
> > reiserfs: checking transaction log (device 03:01) ...
> > Using r5 hash to sort names
> > ReiserFS version 3.6.25
> > VFS: Mounted root (reiserfs filesystem) readonly.
> > Freeing unused kernel memory: 76k freed
> > 8139too Fast Ethernet driver 0.9.24
> > PCI: Found IRQ 10 for device 02:0e.0
> > eth0: RealTek RTL8139 Fast Ethernet at 0xcc8b5000, 00:50:fc:3b:2a:76, IRQ
> 10
> > eth0: Identified 8139 chip type 'RTL-8139C'
> > eth0: Setting half-duplex based on auto-negotiated partner ability 0000.
> >
>
> -
> To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
> the body of a message to [email protected]
> More majordomo info at http://vger.kernel.org/majordomo-info.html
> Please read the FAQ at http://www.tux.org/lkml/
>

Andre Hedrick
LAD Storage Consulting Group

2002-10-22 02:05:29

by JunHyeok Heo

[permalink] [raw]
Subject: Re: Kernel Panic 2.4.19 with Segate 80GB HDD


I am sorry that i have little knowledge on the spec. related to IDE.
The statement of "erroneously has 48bit LBA turned on" was made
based on the original code and the following experiment.
When i copied "id->lba_capacity" to "id->lba_capacity_2" with maintaining
48bit LBA
in case that id->lba_capacity_2 (100-103th byte in ID) was zero,
I could not access the HDD correctly and i got always "DriveStatusError".
So i assumed Seagate80GB HDD does not support 48bit LBA properly.
I inserted the following code at the very first part of the
"init_idedisk_capacity()" function at the experiment.

if (id->cfs_enable_2 & 0x0400) {
if (id->lba_capacity_2 == (long long) 0)

id->lba_capacity_2 = id->lba_capacity;
}
}

p.s.
Anyway it is my pleasure i can talk to you.
I always thank you for what you have done related to the IDE stuff.

----- Original Message -----
From: "Andre Hedrick" <[email protected]>
To: "JunHyeok Heo" <[email protected]>
Cc: <[email protected]>; "Michael Goertz" <[email protected]>;
"Michael Kiefer" <[email protected]>
Sent: Tuesday, October 22, 2002 8:52 AM
Subject: Re: Kernel Panic 2.4.19 with Segate 80GB HDD


>
> No "erroneously has 48bit LBA turned on" is not what is happening.
> There are general purpose logs which reqire 48-bit operations.
> A device can support 48-bit command and be less than 137GB.
> Also if you disable 48-bit some of the drive features will not work.
>
> Bit on and zero in words 100-103 is a Buggy SPEC!
>
> Currently an beautiful mess has been made by the committe.
>
> If device supports 48-bit is it required to report capacity in all 48-bit
> locations in the IDENTIFY Page?
>
> If the device is destroked to less than 137GB does it report the same in
> both words 60-61 and 100-103?
>
> There are worse yet to come.
>
>
> On Mon, 21 Oct 2002, JunHyeok Heo wrote:
>
> >
> > I investigated this problem.
> > The problem was that Segate 80GB HDD (ST380020ACE) erroneously has 48bit
LBA
> > turned on,
> > but the capacity field for 48Bit LBA has 0.
> > So, i modified the "init_idedisk_capacity()" function to forcily use the
> > 28bit LBA mode
> > in this case. I know that the HDD less than 137GB no need to use 48bit
LBA.
> >
> > If there is someone who suffers from the same symptom,
> > try the following patch at your own risk. ^^;;;
> >
> > --------- From Here -----------------
> > diff -urN linux-2.4.19-ori/drivers/ide/ide-disk.c
> > linux-2.4.19/drivers/ide/ide-disk.c
> > --- linux-2.4.19-ori/drivers/ide/ide-disk.c Sat Aug 3 09:39:44 2002
> > +++ linux-2.4.19/drivers/ide/ide-disk.c Mon Oct 21 17:09:09 2002
> > @@ -928,6 +928,13 @@
> > drive->select.b.lba = 0;
> >
> > if (id->cfs_enable_2 & 0x0400) {
> > + if (id->lba_capacity_2 == (long long) 0) {
> > + id->cfs_enable_2 &= ~0x0400;
> > + printk("%s: not suitable for 48bit LBA, forcily 28bit LBA is
> > used\n",drive->name);
> > + }
> > + }
> > +
> > + if (id->cfs_enable_2 & 0x0400) {
> > capacity_2 = id->lba_capacity_2;
> > drive->head = drive->bios_head = 255;
> > drive->sect = drive->bios_sect = 63;
> > ----- Original Message -----
> > From: "JunHyeok Heo" <[email protected]>
> > To: <[email protected]>
> > Sent: Friday, October 18, 2002 10:35 AM
> > Subject: Kernel Panic 2.4.19 with Segate 80GB HDD
> >
> >
> > >
> > > I used kernel 2.4.19 with Segate 80GB HDD (ST380020ACE).
> > > The kernel could not recognize the number of sectors correctly, and
then
> > > result in kernel panic.
> > > I tried kernel 2.4.18 with the same HDD, there is no problem.
> > >
> > > Is this a bug in the ide device driver ? or is there any compatible
HDD
> > > list for 2.4.19 kernel ?
> > >
> > > The cpu is PentiumIII 700Mhz cpu and
> > > The chipset of motherboard is Intel BX.
> > > The IDE controller is INTEL82801BA_9
> > >
> > > In case of 2.4.19 kernel, the booting message as follows...
> > > --
> > > Linux version 2.4.19 (root@i74) (gcc version 2.95.4 (Debian
prerelease))
> > #2
> > > Wed
> > > Oct 16 21:27:55 KST 2002
> > > BIOS-provided physical RAM map:
> > > BIOS-e820: 0000000000000000 - 000000000009fc00 (usable)
> > > BIOS-e820: 000000000009fc00 - 00000000000a0000 (reserved)
> > > BIOS-e820: 00000000000f0000 - 0000000000100000 (reserved)
> > > BIOS-e820: 0000000000100000 - 000000000bfeb000 (usable)
> > > BIOS-e820: 000000000bfeb000 - 000000000bfef000 (ACPI data)
> > > BIOS-e820: 000000000bfef000 - 000000000bfff000 (reserved)
> > > BIOS-e820: 000000000bfff000 - 000000000c000000 (ACPI NVS)
> > > BIOS-e820: 00000000ffff0000 - 0000000100000000 (reserved)
> > > 191MB LOWMEM available.
> > > On node 0 totalpages: 49131
> > > zone(0): 4096 pages.
> > > zone(1): 45035 pages.
> > > zone(2): 0 pages.
> > > Kernel command line: BOOT_IMAGE=host19 ro root=301
> > > BOOT_FILE=/boot/vmlinuz-2.4.1
> > > 9 console=ttyS0,9600 console=ttyS0,9600
> > > Initializing CPU#0
> > > Detected 706.972 MHz processor.
> > > Console: colour VGA+ 80x25
> > > Calibrating delay loop... 1412.30 BogoMIPS
> > > Memory: 192408k/196524k available (1069k kernel code, 3728k reserved,
260k
> > > data,
> > > 60k init, 0k highmem)
> > > Dentry cache hash table entries: 32768 (order: 6, 262144 bytes)
> > > Inode cache hash table entries: 16384 (order: 5, 131072 bytes)
> > > Mount-cache hash table entries: 4096 (order: 3, 32768 bytes)
> > > Buffer-cache hash table entries: 8192 (order: 3, 32768 bytes)
> > > Page-cache hash table entries: 65536 (order: 6, 262144 bytes)
> > > CPU: L1 I cache: 16K, L1 D cache: 16K
> > > CPU: L2 cache: 256K
> > > Intel machine check architecture supported.
> > > Intel machine check reporting enabled on CPU#0.
> > > CPU: Intel Pentium III (Coppermine) stepping 03
> > > Enabling fast FPU save and restore... done.
> > > Enabling unmasked SIMD FPU exception support... done.
> > > Checking 'hlt' instruction... OK.
> > > POSIX conformance testing by UNIFIX
> > > PCI: PCI BIOS revision 2.10 entry at 0xf0d90, last bus=2
> > > PCI: Using configuration type 1
> > > PCI: Probing PCI hardware
> > > Unknown bridge resource 0: assuming transparent
> > > PCI: Using IRQ router PIIX [8086/2440] at 00:1f.0
> > > Linux NET4.0 for Linux 2.4
> > > Based upon Swansea University Computer Society NET3.039
> > > Initializing RT netlink socket
> > > Starting kswapd
> > > Installing knfsd (copyright (C) 1996 [email protected]).
> > > pty: 256 Unix98 ptys configured
> > > Serial driver version 5.05c (2001-07-08) with MANY_PORTS SHARE_IRQ
> > > SERIAL_PCI en
> > > abled
> > > ttyS00 at 0x03f8 (irq = 4) is a 16550A
> > > ttyS01 at 0x02f8 (irq = 3) is a 16550A
> > > Real Time Clock Driver v1.10e
> > > Uniform Multi-Platform E-IDE driver Revision: 6.31
> > > ide: Assuming 33MHz system bus speed for PIO modes; override with
> > idebus=xx
> > > ICH2: IDE controller on PCI bus 00 dev f9
> > > ICH2: chipset revision 1
> > > ICH2: not 100% native mode: will probe irqs later
> > > ide0: BM-DMA at 0xb800-0xb807, BIOS settings: hda:DMA, hdb:pio
> > > ide1: BM-DMA at 0xb808-0xb80f, BIOS settings: hdc:pio, hdd:pio
> > > hda: ST380020ACE, ATA DISK drive
> > > ide0 at 0x1f0-0x1f7,0x3f6 on irq 14
> > > hda: task_no_data_intr: status=0x51 { DriveReady SeekComplete Error }
> > > hda: task_no_data_intr: error=0x04 { DriveStatusError }
> > > hda: setmax_ext LBA 1, native 0
> > > hda: 0 sectors (0 MB) w/2048KiB Cache, CHS=0/255/63, UDMA(33)
> > > PPP generic driver version 2.4.2
> > > NET4: Linux TCP/IP 1.0 for NET4.0
> > > IP Protocols: ICMP, UDP, TCP
> > > IP: routing cache hash table of 1024 buckets, 8Kbytes
> > > TCP: Hash tables configured (established 16384 bind 16384)
> > > NET4: Unix domain sockets 1.0/SMP for Linux NET4.0.
> > > hda1: bad access: block=2, count=2
> > > end_request: I/O error, dev 03:01 (hda), sector 2
> > > EXT2-fs: unable to read superblock
> > > hda1: bad access: block=0, count=1
> > > end_request: I/O error, dev 03:01 (hda), sector 0
> > > FAT: unable to read boot sector
> > > hda1: bad access: block=128, count=1
> > > end_request: I/O error, dev 03:01 (hda), sector 128
> > > read_super_block: bread failed (dev 03:01, block 128, size 512)
> > > hda1: bad access: block=16, count=1
> > > end_request: I/O error, dev 03:01 (hda), sector 16
> > > read_super_block: bread failed (dev 03:01, block 16, size 512)
> > > Kernel panic: VFS: Unable to mount root fs on 03:01
> > >
> > > --
> > >
> > > In case of 2.4.18 kernel, the booting message as follows...
> > >
> > > Linux version 2.4.18 (root@i076) (gcc version 2.95.4 (Debian
prerelease))
> > #5
> > > Fri Mar 22 19:21:49 KST 2002
> > > BIOS-provided physical RAM map:
> > > BIOS-e820: 0000000000000000 - 000000000009fc00 (usable)
> > > BIOS-e820: 000000000009fc00 - 00000000000a0000 (reserved)
> > > BIOS-e820: 00000000000f0000 - 0000000000100000 (reserved)
> > > BIOS-e820: 0000000000100000 - 000000000bfeb000 (usable)
> > > BIOS-e820: 000000000bfeb000 - 000000000bfef000 (ACPI data)
> > > BIOS-e820: 000000000bfef000 - 000000000bfff000 (reserved)
> > > BIOS-e820: 000000000bfff000 - 000000000c000000 (ACPI NVS)
> > > BIOS-e820: 00000000ffff0000 - 0000000100000000 (reserved)
> > > On node 0 totalpages: 49131
> > > zone(0): 4096 pages.
> > > zone(1): 45035 pages.
> > > zone(2): 0 pages.
> > > Local APIC disabled by BIOS -- reenabling.
> > > Found and enabled local APIC!
> > > Kernel command line: BOOT_IMAGE=host18 ro root=301
> > > BOOT_FILE=/boot/vmlinuz-2.4.18
> > > Initializing CPU#0
> > > Detected 706.973 MHz processor.
> > > Console: colour VGA+ 80x25
> > > Calibrating delay loop... 1412.30 BogoMIPS
> > > Memory: 191400k/196524k available (1064k kernel code, 4736k reserved,
287k
> > > data, 76k init, 0k highmem)
> > > Dentry-cache hash table entries: 32768 (order: 6, 262144 bytes)
> > > Inode-cache hash table entries: 16384 (order: 5, 131072 bytes)
> > > Mount-cache hash table entries: 4096 (order: 3, 32768 bytes)
> > > Buffer-cache hash table entries: 8192 (order: 3, 32768 bytes)
> > > Page-cache hash table entries: 65536 (order: 6, 262144 bytes)
> > > CPU: Before vendor init, caps: 0383fbff 00000000 00000000, vendor = 0
> > > CPU: L1 I cache: 16K, L1 D cache: 16K
> > > CPU: L2 cache: 256K
> > > CPU: After vendor init, caps: 0383fbff 00000000 00000000 00000000
> > > Intel machine check architecture supported.
> > > Intel machine check reporting enabled on CPU#0.
> > > CPU: After generic, caps: 0383fbff 00000000 00000000 00000000
> > > CPU: Common caps: 0383fbff 00000000 00000000 00000000
> > > CPU: Intel Pentium III (Coppermine) stepping 03
> > > Enabling fast FPU save and restore... done.
> > > Enabling unmasked SIMD FPU exception support... done.
> > > Checking 'hlt' instruction... OK.
> > > POSIX conformance testing by UNIFIX
> > > enabled ExtINT on CPU#0
> > > ESR value before enabling vector: 00000000
> > > ESR value after enabling vector: 00000000
> > > Using local APIC timer interrupts.
> > > calibrating APIC timer ...
> > > ..... CPU clock speed is 706.9670 MHz.
> > > ..... host bus clock speed is 100.9952 MHz.
> > > cpu: 0, clocks: 1009952, slice: 504976
> > > CPU0<T0:1009952,T1:504976,D:0,S:504976,C:1009952>
> > > mtrr: v1.40 (20010327) Richard Gooch ([email protected])
> > > mtrr: detected mtrr type: Intel
> > > PCI: PCI BIOS revision 2.10 entry at 0xf0d90, last bus=2
> > > PCI: Using configuration type 1
> > > PCI: Probing PCI hardware
> > > Unknown bridge resource 0: assuming transparent
> > > PCI: Using IRQ router PIIX [8086/2440] at 00:1f.0
> > > Linux NET4.0 for Linux 2.4
> > > Based upon Swansea University Computer Society NET3.039
> > > Initializing RT netlink socket
> > > Starting kswapd
> > > pty: 256 Unix98 ptys configured
> > > Serial driver version 5.05c (2001-07-08) with MANY_PORTS SHARE_IRQ
> > > SERIAL_PCI enabled
> > > ttyS00 at 0x03f8 (irq = 4) is a 16550A
> > > ttyS01 at 0x02f8 (irq = 3) is a 16550A
> > > request_module[parport_lowlevel]: Root fs not mounted
> > > lp: driver loaded but no devices found
> > > ppdev: user-space parallel port driver
> > > block: 128 slots per queue, batch=32
> > > Uniform Multi-Platform E-IDE driver Revision: 6.31
> > > ide: Assuming 33MHz system bus speed for PIO modes; override with
> > idebus=xx
> > > PIIX4: IDE controller on PCI bus 00 dev f9
> > > PIIX4: chipset revision 1
> > > PIIX4: not 100% native mode: will probe irqs later
> > > ide0: BM-DMA at 0xb800-0xb807, BIOS settings: hda:DMA, hdb:pio
> > > ide1: BM-DMA at 0xb808-0xb80f, BIOS settings: hdc:pio, hdd:pio
> > > hda: ST380020ACE, ATA DISK drive
> > > ide0 at 0x1f0-0x1f7,0x3f6 on irq 14
> > > hda: 156301488 sectors (80026 MB) w/2048KiB Cache, CHS=9729/255/63,
> > UDMA(33)
> > > Partition check:
> > > hda: hda1
> > > PPP generic driver version 2.4.1
> > > NET4: Linux TCP/IP 1.0 for NET4.0
> > > IP Protocols: ICMP, UDP, TCP
> > > IP: routing cache hash table of 1024 buckets, 8Kbytes
> > > TCP: Hash tables configured (established 16384 bind 16384)
> > > NET4: Unix domain sockets 1.0/SMP for Linux NET4.0.
> > > FAT: bogus logical sector size 0
> > > reiserfs: checking transaction log (device 03:01) ...
> > > Using r5 hash to sort names
> > > ReiserFS version 3.6.25
> > > VFS: Mounted root (reiserfs filesystem) readonly.
> > > Freeing unused kernel memory: 76k freed
> > > 8139too Fast Ethernet driver 0.9.24
> > > PCI: Found IRQ 10 for device 02:0e.0
> > > eth0: RealTek RTL8139 Fast Ethernet at 0xcc8b5000, 00:50:fc:3b:2a:76,
IRQ
> > 10
> > > eth0: Identified 8139 chip type 'RTL-8139C'
> > > eth0: Setting half-duplex based on auto-negotiated partner ability
0000.
> > >
> >
> > -
> > To unsubscribe from this list: send the line "unsubscribe linux-kernel"
in
> > the body of a message to [email protected]
> > More majordomo info at http://vger.kernel.org/majordomo-info.html
> > Please read the FAQ at http://www.tux.org/lkml/
> >
>
> Andre Hedrick
> LAD Storage Consulting Group
>
>

2002-11-11 23:34:35

by Joachim Herb

[permalink] [raw]
Subject: Re: Kernel Panic 2.4.19 with Segate 80GB HDD

Hello!

I have exactly the same problem with this harddrive and the kernel of
SUSE 8.0 (2.4.18 with their patches). When I apply the patch of JunHyeok
Heo the harddrive is detected an I can install SuSE. When this patch is
not the correct solution, what else to do?

Thank you for your help.

Joachim
--
Joachim Herb
mailto:[email protected]