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.clinux-2.4.19/drivers/ide/ide-disk.c
drivers/ide/ide-disk.c Mon Oct 21 17:09:09 2002 renamed from drivers/ide/ide-disk.c Sat Aug 3 09:39:44 2002 +3 -0
@@ -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
Quoted 9 lines
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 ?
Quoted 7 lines
The cpu is PentiumIII 700Mhz cpu and
The chipset of motherboard is Intel BX.
The IDE controller isINTEL82801BA_9In 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
Quoted 51 lines
Wed
Oct 16 21:27:55 KST 2002BIOS-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 at0xf0d90, 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
Quoted 8 lines
Serial driver version 5.05c (2001-07-08) with
MANY_PORTSSHARE_IRQSERIAL_PCIen
abled
ttyS00 at0x03f8(irq = 4) is a 16550A
ttyS01 at0x02f8(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
Quoted 29 lines
ICH2: IDE controller on PCI bus 00 dev f9
ICH2: chipset revision 1
ICH2: not 100% native mode: will probe irqs lateride0: BM-DMA at 0xb800-0xb807, BIOS settings: hda:DMA, hdb:pio ide1: BM-DMA at 0xb808-0xb80f, BIOS settings: hdc:pio, hdd:piohda: 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_extLBA 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=2end_request: I/O error, dev 03:01 (hda), sector 2
EXT2-fs: unable to read superblock
hda1: bad access: block=0, count=1end_request: I/O error, dev 03:01 (hda), sector 0
FAT: unable to read boot sector
hda1: bad access: block=128, count=1end_request: I/O error, dev 03:01 (hda), sector 128read_super_block: bread failed (dev 03:01, block 128, size 512)
hda1: bad access: block=16, count=1end_request: I/O error, dev 03:01 (hda), sector 16read_super_block: bread failed (dev 03:01, block 16, size 512)
Quoted 7 lines
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
Quoted 65 lines
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:0383fbff00000000 00000000, vendor = 0
CPU: L1 I cache: 16K, L1 D cache: 16K
CPU: L2 cache: 256K
CPU: After vendor init, caps:0383fbff00000000 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 03Enabling 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 at0xf0d90, 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) withMANY_PORTSSHARE_IRQSERIAL_PCIenabled
Quoted 8 lines
ttyS00 at
0x03f8(irq = 4) is a 16550A
ttyS01 at0x02f8(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
Quoted 8 lines
PIIX4: IDE controller on PCI bus 00 dev f9
PIIX4: chipset revision 1
PIIX4: not 100% native mode: will probe irqs lateride0: BM-DMA at 0xb800-0xb807, BIOS settings: hda:DMA, hdb:pio ide1: BM-DMA at 0xb808-0xb80f, BIOS settings: hdc:pio, hdd:piohda: 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)
Quoted 9 lines
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
Quoted 8 lines
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 at0xcc8b5000, 00:50:fc:3b:2a:76, IRQ
10
Quoted 3 lines
eth0: Identified 8139 chip type 'RTL-8139C'
eth0: Setting half-duplex based on auto-negotiated partner ability 0000.
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.
Quoted 258 lines · JunHyeok Heo
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 -urNlinux-2.4.19-ori/drivers/ide/ide-disk.clinux-2.4.19/drivers/ide/ide-disk.cdrivers/ide/ide-disk.c Mon Oct 21 17:09:09 2002 renamed from drivers/ide/ide-disk.c Sat Aug 3 09:39:44 2002 +7
-0@@ -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 HDDQuoted 9 lines
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 ?
Quoted 7 lines
The cpu is PentiumIII 700Mhz cpu and
The chipset of motherboard is Intel BX.
The IDE controller isINTEL82801BA_9In 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
Quoted 51 lines
Wed
Oct 16 21:27:55 KST 2002BIOS-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 at0xf0d90, 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 configuredQuoted 8 lines
Serial driver version 5.05c (2001-07-08) with
MANY_PORTSSHARE_IRQSERIAL_PCIen
abled
ttyS00 at0x03f8(irq = 4) is a 16550A
ttyS01 at0x02f8(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 withidebus=xx
Quoted 29 lines
ICH2: IDE controller on PCI bus 00 dev f9
ICH2: chipset revision 1
ICH2: not 100% native mode: will probe irqs lateride0: BM-DMA at 0xb800-0xb807, BIOS settings: hda:DMA, hdb:pio ide1: BM-DMA at 0xb808-0xb80f, BIOS settings: hdc:pio, hdd:piohda: 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_extLBA 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=2end_request: I/O error, dev 03:01 (hda), sector 2
EXT2-fs: unable to read superblock
hda1: bad access: block=0, count=1end_request: I/O error, dev 03:01 (hda), sector 0
FAT: unable to read boot sector
hda1: bad access: block=128, count=1end_request: I/O error, dev 03:01 (hda), sector 128read_super_block: bread failed (dev 03:01, block 128, size 512)
hda1: bad access: block=16, count=1end_request: I/O error, dev 03:01 (hda), sector 16read_super_block: bread failed (dev 03:01, block 16, size 512)Quoted 7 lines
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
Quoted 65 lines
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:0383fbff00000000 00000000, vendor = 0
CPU: L1 I cache: 16K, L1 D cache: 16K
CPU: L2 cache: 256K
CPU: After vendor init, caps:0383fbff00000000 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 03Enabling 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 at0xf0d90, 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) withMANY_PORTSSHARE_IRQSERIAL_PCIenabledQuoted 8 lines
ttyS00 at
0x03f8(irq = 4) is a 16550A
ttyS01 at0x02f8(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 withidebus=xx
Quoted 8 lines
PIIX4: IDE controller on PCI bus 00 dev f9
PIIX4: chipset revision 1
PIIX4: not 100% native mode: will probe irqs lateride0: BM-DMA at 0xb800-0xb807, BIOS settings: hda:DMA, hdb:pio ide1: BM-DMA at 0xb808-0xb80f, BIOS settings: hdc:pio, hdd:piohda: 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)
Quoted 9 lines
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 0Quoted 8 lines
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 at0xcc8b5000, 00:50:fc:3b:2a:76, IRQ10
Quoted 3 lines
eth0: Identified 8139 chip type 'RTL-8139C'
eth0: Setting half-duplex based on auto-negotiated partner ability 0000.
Quoted 6 lines
-
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
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
Quoted 13 lines
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?
Quoted 11 lines
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.
Quoted 3 lines · JunHyeok Heo
I investigated this problem.
The problem was that Segate 80GB HDD (ST380020ACE) erroneously has 48bit
LBA
Quoted 5 lines
Quoted 5 lines
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.
Quoted 32 lines
Quoted 32 lines
If there is someone who suffers from the same symptom, try the following patch at your own risk. ^^;;;
--------- From Here -----------------
diff -urNlinux-2.4.19-ori/drivers/ide/ide-disk.clinux-2.4.19/drivers/ide/ide-disk.cdrivers/ide/ide-disk.c Mon Oct 21 17:09:09 2002 renamed from drivers/ide/ide-disk.c Sat Aug 3 09:39:44 2002 +7
-0@@ -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 HDDQuoted 1 line
Quoted 2 lines
Quoted 2 lines
Quoted 2 lines
I used kernel 2.4.19 with Segate 80GB HDD (ST380020ACE). The kernel could not recognize the number of sectors correctly, and
then
Quoted 4 lines
Quoted 4 lines
Quoted 4 lines
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
Quoted 9 lines
Quoted 9 lines
Quoted 9 lines
list for 2.4.19 kernel ?
The cpu is PentiumIII 700Mhz cpu and
The chipset of motherboard is Intel BX.
The IDE controller isINTEL82801BA_9In 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))
Quoted 17 lines
Quoted 17 lines
#2
Quoted 16 lines
Wed
Oct 16 21:27:55 KST 2002BIOS-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.
Quoted 8 lines
Quoted 8 lines
Quoted 8 lines
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
Quoted 67 lines
Quoted 67 lines
Quoted 27 lines
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 at0xf0d90, 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 configuredQuoted 8 lines
Serial driver version 5.05c (2001-07-08) with
MANY_PORTSSHARE_IRQSERIAL_PCIen
abled
ttyS00 at0x03f8(irq = 4) is a 16550A
ttyS01 at0x02f8(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 withidebus=xx
Quoted 31 lines
ICH2: IDE controller on PCI bus 00 dev f9
ICH2: chipset revision 1
ICH2: not 100% native mode: will probe irqs lateride0: BM-DMA at 0xb800-0xb807, BIOS settings: hda:DMA, hdb:pio ide1: BM-DMA at 0xb808-0xb80f, BIOS settings: hdc:pio, hdd:piohda: 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_extLBA 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=2end_request: I/O error, dev 03:01 (hda), sector 2
EXT2-fs: unable to read superblock
hda1: bad access: block=0, count=1end_request: I/O error, dev 03:01 (hda), sector 0
FAT: unable to read boot sector
hda1: bad access: block=128, count=1end_request: I/O error, dev 03:01 (hda), sector 128read_super_block: bread failed (dev 03:01, block 128, size 512)
hda1: bad access: block=16, count=1end_request: I/O error, dev 03:01 (hda), sector 16read_super_block: bread failed (dev 03:01, block 16, size 512)Kernel panic: VFS: Unable to mount root fs on 03:01
Quoted 5 lines
Quoted 5 lines
Quoted 5 lines
--
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))
Quoted 16 lines
Quoted 16 lines
#5
Quoted 15 lines
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.
Quoted 8 lines
Quoted 8 lines
Quoted 8 lines
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
Quoted 69 lines
Quoted 69 lines
Quoted 42 lines
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:0383fbff00000000 00000000, vendor = 0
CPU: L1 I cache: 16K, L1 D cache: 16K
CPU: L2 cache: 256K
CPU: After vendor init, caps:0383fbff00000000 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 03Enabling 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 at0xf0d90, 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) withMANY_PORTSSHARE_IRQSERIAL_PCIenabledQuoted 8 lines
ttyS00 at
0x03f8(irq = 4) is a 16550A
ttyS01 at0x02f8(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 withidebus=xx
Quoted 8 lines
PIIX4: IDE controller on PCI bus 00 dev f9
PIIX4: chipset revision 1
PIIX4: not 100% native mode: will probe irqs lateride0: BM-DMA at 0xb800-0xb807, BIOS settings: hda:DMA, hdb:pio ide1: BM-DMA at 0xb808-0xb80f, BIOS settings: hdc:pio, hdd:piohda: 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)
Quoted 9 lines
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
Quoted 8 lines
Quoted 8 lines
Quoted 8 lines
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 at0xcc8b5000, 00:50:fc:3b:2a:76,
IRQ
Quoted 3 lines
Quoted 3 lines
10
Quoted 2 lines
eth0: Identified 8139 chip type 'RTL-8139C'
eth0: Setting half-duplex based on auto-negotiated partner ability
0000.
Quoted 4 lines
Quoted 4 lines
Quoted 1 line
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel"
in
Quoted 9 lines
Quoted 4 lines
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