Bug 22634

Summary: 4.2-Beta (11/06) Kernel does not detect Slave HDs
Product: Base System Reporter: mars <mars>
Component: kernAssignee: freebsd-bugs (Nobody) <bugs>
Status: Closed FIXED    
Severity: Affects Only Me    
Priority: Normal    
Version: Unspecified   
Hardware: Any   
OS: Any   
Attachments:
Description Flags
dmesg.20000822
none
dmesg.20001112
none
dmesg-v.20000822
none
dmesg-v.20001112 none

Description mars 2000-11-06 05:00:01 UTC
The Kernel on 4.2-Beta does not seem to support a filesystem that w/c is set ar a Slave HD. I believe that this is a serious bug because some users maybe using filesystems  using slave HDs and since the kernel does not detect it, it will never bring the system up.

Fix: 

I don't know, at the moment i just boot to the old kernel, but i'm having problems like segmentation fault, core dumps, naturally because the Base System is not in tune with the kernel.
I hope this problem gets fixed in time for 4.2-Release on the 15th...

thanx . ;-)
How-To-Repeat: These are my Hardware:
    For IDE0 I am using two 10G HDs as Master and Slave
    For IDE1 I am using a CDRom as Master and a 2.5G as Slave.
   this is my /etc/fstab :

#Device	     Mountpoint	FStype	Options		Dump	Pass#
/dev/ad0s2b  none	swap	sw		0	0
/dev/ad0s2a  /		ufs	rw		1	1
/dev/ad1s1e  /home	ufs	rw		2	2
/dev/ad0s2f  /usr	ufs	rw		2	2
/dev/ad0s2e  /var	ufs	rw		2	2
/dev/acd0c   /cdrom	cd9660	ro,noauto	0	0
proc	     /proc	procfs	rw       	0	0

the Old Kernel detects my Primary Slave, from dmesg:
ad0: 9768MB <ST310212A> [19846/16/63] at ata0-master using UDMA66
ad1: 9768MB <ST310212A> [19846/16/63] at ata0-slave using UDMA66
ad3: 2014 <FUJITSU MPA3026AT> [4092/16/63] at ata1-slave WDMA2

When doing an upgrade to the latest Stable version of FreeBSD, which is 4.2-Beta(11/06). These are the steps i took, as i've always used, and also from /usr/src/UPDATING:
 0.) cvsup sources to cvs server (have tried 3 different servers)
 1.) buildworld
 2.) buildkernel, then installkernel
 3.) reboot to 1 user (shutdown now)
 4.) installworld
No Errors whatsoever in the above process, but in booting to the new kernel, it does not detect it:

       Can't open /dev/ad1s1e: Device not configured
       /dev/ad1s1e: Can't Check file system

   and then FSCK of course complains about inconsistencies...
   this is so because the kernel did not detect it, from dmesg:

    ad0: 9768MB <ST310212A> [19846/16/63] at ata0-master UDMA66
    ad3: 2014 <FUJITSU MPA3026AT> [4092/16/63] at ata1-slave WDMA2
    ^^^
    it was not able to detect ad1.

    I have posted this to sos@freebsd.org, and the freebsd-stable mailing list and various other people have experienced it: 

----------------snip--------------------- 
NAKAJI Hiroyuki <nakaji@tutrp.tut.ac.jp>
I have seen this problem for one and half month. :-<
I'm still using 4.1-STABLE-20000822000000.

This world on 2000/Aug/22 is woking good. Here's an output of dmesg

ata0: at 0x1f0 irq 14 on atapci0
ata1: at 0x170 irq 15 on atapci0
ata0-master: DMA limited to UDMA33, non-ATA66 compliant cable
ad0: 12419MB <ST313032A> [25232/16/63] at ata0-master using UDMA33
ad1: 19547MB <FUJITSU MPE3204AT> [39714/16/63] at ata0-slave using UDMA66
acd0: CDROM <40X CD-ROM> at ata1-master using PIO4

The kernel on yesterday cannot detect the 'ad1'.
----------- 

  I have a (maybe) same problem, too.  My machine has two
IDE disks connected to Promise Ultra66 card.  One is at
ata2-master and another is at ata2-slave.  And no other
disks in the machine.  That is:

ata0-master: none
        ata0-slave: none
        ata1-master: CD-ROM
        ata1-slave: none
        ata2-master: 20GB HDD
        ata2-slave: 10GB HDD
        ata3-master: none
        ata3-slave: none

(ata0/ata1 is on-board IDE controller, and ata1/ata2 is
Promise Ultra66 IDE controller.)

  4.1.1-STABLE which was cvsuped at Oct. 14th said:

ad4: 19600MB <SAMSUNG SV2046D> [39824/16/63] at ata2-master using UDMA66
ad5: 9768MB <ST310212A> [19846/16/63] at ata2-slave using UDMA66
acd0: CDROM <NEC CD-ROM DRIVE:273> at ata1-master using PIO3

  But 4.2-BETA which was cvsuped at Nov. 3rd only said:

ad4: 19600MB <SAMSUNG SV2046D> [39824/16/63] at ata2-master UDMA66
acd0: CDROM <NEC CD-ROM DRIVE:273> at ata1-master using PIO3

  As above, 4.2-BETA does not detect ata2-slave.  What's
wrong?

--
Yoichi Ogawa <yo1@lares.dti.ne.jp>

--------snip---------------------------------
Comment 1 mars 2000-11-08 03:32:08 UTC
guys,    

         Btw, the kernel detects the ATA-Slave but not the ad1s1 device; from the dmesg in both kernels (using original 4.0R and 4.2Beta sources) :
    atapci0: <VIA 82C596 ATA33 controller> port 0xd800-0xd80f at device 4.1 on pci0
    ata0: at 0x1f0 irq 14 on atapci0
    ata1: at 0x170 irq 15 on atapci0
    pci0: <VIA 83C572 USB controller> at 4.2 irq 11

way down using the 4.0R sources, kernel detects it:
ad0: 9768MB <ST310212A> [19846/16/63] at ata0-master using UDMA66
ad1: 9768MB <ST310212A> [19846/16/63] at ata0-slave using UDMA66
ad3: 2014 <FUJITSU MPA3026AT> [4092/16/63] at ata1-slave WDMA2

but loses it in mounting the filesystems using the kernel compiled from 4.2Beta src:
    ad0: 9768MB <ST310212A> [19846/16/63] at ata0-master UDMA66
    ad3: 2014 <FUJITSU MPA3026AT> [4092/16/63] at ata1-slave WDMA2


Cheers,
Mars

Comment 2 nakaji 2000-11-10 16:26:00 UTC
Hi,

I tried today's kernel. It only detect ata0-master. :(
The problem is getting more serious/critical. Ata1 also disappeared.

The source tree (kernel and the world) is cvsupped since Fri Nov 10
21:38 JST. Then 'make buildworld' and 'make buildkernel' are executed.

I have 2 HDD and 1 CD which are connected to ata0-master, ata0-slave
and ata1-slave respectively. 

Old workable kernel which is built from the source of 'tag=RELENG_4
date=2000.08.22.00.00.' detects them as:

ata0: at 0x1f0 irq 14 on atapci0
ata1: at 0x170 irq 15 on atapci0
ata0-master: DMA limited to UDMA33, non-ATA66 compliant cable
ad0: 12419MB <ST313032A> [25232/16/63] at ata0-master using UDMA33
ad1: 19547MB <FUJITSU MPE3204AT> [39714/16/63] at ata0-slave using UDMA66
acd0: CDROM <40X CD-ROM> at ata1-master using PIO4

But today's kernel cannot detect ata1, ad1 and acd0, like this:

ata0: at 0x1f0 irq 14 on atapci0
ata0-master: DMA limited to UDMA33, non-ATA66 compliant cable
ad0: 12419MB <ST313032A> [25232/16/63] at ata0-master UDMA33

Kernel configuration is same which is at
http://www.heimat.gr.jp/~nakaji/FreeBSD/NAKAJI4

My motherboard is ECS P6BAT-A+. I'm using on-board IDE, I have no
Ultra100 or RAID cards.

Thanks.
-- 
NAKAJI Hiroyuki
Comment 3 sos 2000-11-10 18:08:56 UTC
It seems NAKAJI Hiroyuki wrote:
> Hi,
> 
> I tried today's kernel. It only detect ata0-master. :(
> The problem is getting more serious/critical. Ata1 also disappeared.
 
Could you please try the patch I've announced on the lists and
get back to me with the result ?

ftp://freebsd.dk/pub/ATA/

diff-42 for 4.2-BETA
diff-50 for 5.0-current


-Søren
Comment 4 nakaji 2000-11-11 01:09:42 UTC
Soren, thank you for your work.

>>>>> In <200011101810.KAA83061@freefall.freebsd.org> 
>>>>>	sos@freebsd.dk (Soren Schmidt) wrote:

nakaji> I tried today's kernel. It only detect ata0-master. :(
nakaji> The problem is getting more serious/critical. Ata1 also disappeared.
  
sos>  Could you please try the patch I've announced on the lists and
sos>  get back to me with the result ?

With same source tree (ata-all.c is 1.50.2.11), I executed the
following commands.

# cd /sys/dev/ata
# patch < 4.2-diff
# cd /usr/src
# make buildkernel KERNEL=NAKAJI4
# make installkernel KERNEL=NAKAJI4
# reboot (in sigle user mode)

After this, 'dmesg | grep ata' reports:

atapci0: <VIA 82C596 ATA66 controller> port 0xd000-0xd00f at device 7.1 on pci0
ata0: mask=03 status0=50 status1=50
ata0: mask=03 status0=50 status1=00
ata0: at 0x1f0 irq 14 on atapci0
ata1: mask=03 status0=50 status1=51
ata1: mask=03 status0=10 status1=00
ata1: at 0x170 irq 15 on atapci0
ata0-master: DMA limited to UDMA33, non-ATA66 compliant cable
ad0: 12419MB <ST313032A> [25232/16/63] at ata0-master UDMA33
acd0: CDROM <40X CD-ROM> at ata1-master using PIO4

Ata1 and acd0 are back again, thanks, but ad1 still not come back!

Bios and /boot/loader both detect two hard disk drives on primary
master and slave, i.e. disk C: and D:.
-- 
NAKAJI Hiroyuki
Comment 5 sos 2000-11-11 07:13:01 UTC
It seems NAKAJI Hiroyuki wrote:
> After this, 'dmesg | grep ata' reports:

I need the _full_ dmesg to tell what going on, please mail that to me..


-Søren
Comment 6 nakaji 2000-11-12 12:04:09 UTC
>>>>> In <200011110713.IAA16857@freebsd.dk> 
>>>>>	Soren Schmidt <sos@freebsd.dk> wrote:

Soren> I need the _full_ dmesg to tell what going on, please mail that to me..

Sorry. Here are attachments.

1. dmesg from kernel of 2000.08.22.
2. dmesg from kernel of 2000.11.11.
-- 
NAKAJI Hiroyuki
Comment 7 sos 2000-11-12 14:37:27 UTC
It seems NAKAJI Hiroyuki wrote:
> >>>>> In <200011110713.IAA16857@freebsd.dk> 
> >>>>>	Soren Schmidt <sos@freebsd.dk> wrote:
> 
> Soren> I need the _full_ dmesg to tell what going on, please mail that to me..
> 
> Sorry. Here are attachments.

OK, the old one is not of much use since its not verbose and doesn't
contain the info I'm looking for, but, the new one is with the first
patch I announced, please try the new one diff-4.2-1 as that should
fix the problem...

-Søren
Comment 8 nakaji 2000-11-12 15:46:25 UTC
>>>>> In <200011121437.PAA47290@freebsd.dk> 
>>>>>	Soren Schmidt <sos@freebsd.dk> wrote:

Soren> OK, the old one is not of much use since its not verbose and doesn't
Soren> contain the info I'm looking for, but, the new one is with the first
Soren> patch I announced, please try the new one diff-4.2-1 as that should
Soren> fix the problem...

I see. I got dmesg again with '-v' option. But new diff-4.2-1 did not
fix the problem, acd0 disappeared again...

Here are dmesges. First is kernel of 2000.08.22 and the other is
kernel of 2000.11.11 patched with diff-4.2-1.

Thanks.
-- 
NAKAJI Hiroyuki
Comment 9 Søren Schmidt freebsd_committer freebsd_triage 2001-05-30 10:34:29 UTC
State Changed
From-To: open->closed

This is belived to be fixed in 4.3