ad driver fails on 6.2, OK on 4.11 with Dell Latitude XPi P133ST

Ian Smith smithi at nimnet.asn.au
Wed Apr 18 06:03:05 UTC 2007


On Tue, 17 Apr 2007 18:43:01 +0200, Julian Stacey wrote:

 > FreeBSD-mobile folks, Advice please for a Dell Latitude XPi P133ST :
 > Summary:	2 problems:
 > 		  - ad driver fails on 6.2, OK on 4.11
 > 		  - MBR problem ?
 > 
 > Laptop runs 4.11-RELEASE OK.  ( Installed a year back when I
 > 	installed the MBR ready with space for FreeBSD-6 later).
 > 
 > I have this fdisk layout 
 >    F1   The data for partition 1 is: sysid 165,(FreeBSD/NetBSD/386BSD)
 >    4.11      start 63, size 1228689 (599 Meg), flag 80 (active)
 >              beg: cyl 0/ head 1/ sector 1; end: cyl 1023/ head 15/ sector 63
 >    F2   The data for partition 2 is: sysid 165,(FreeBSD/NetBSD/386BSD)
 >    6.2       start 1228752, size 1228689 (599 Meg), flag 80 (active)
 >              beg: cyl 195/ head 0/ sector 1; end: cyl 389/ head 14/ sector 63
 >    F3   The data for partition 3 is: sysid 165,(FreeBSD/NetBSD/386BSD)
 >    /usr1     start 2457441, size 5550111 (2710 Meg), flag 80 (active)
 >              beg: cyl 389/ head 15/ sector 1; end: cyl 775/ head 15/ sector 63

Firstly, it looks weird having flag 80 (active) on more than one slice; 
I'm not sure what the MBR boot manager would make of that (as it usually
offers the currently marked active slice as default).

Also the break between slices 2 and 3 looks possibly unusual, F3 not
starting on a (CHS) head 0 sector 1; this might be ok but it might
explain 6.2 install fdisk wanting to start your slice 3 a bit later on. 

 > I NFS'd a 6.2 on, but on reboot, F2 just beeped; I suspected a
 > corrupt MBR, so to test, on 4.11 did :
 > 	cd /usr/src; make install
 > 	dd if=/dev/ad0c of=/dev/ad1c

Is ad1 a separate drive you haven't mentioned?  and ad0c doesn't make
sense to me anyway (ad0s1c maybe).  What were you trying to do here?

 > 	disklabel -B /dev/ad0s2
 > 	reboot

So you installed 4.11 bootstrap code on your 6.2 slice?

 > F2 just beeped again. (same beep as for an invalid key)

Mmm.  Sounds like you want a new MBR with the right data, and I'd
suggest using 6.2 to fix that, not 4.11 .. see below. 

 > Restored F2 back to 6.2 using NFS + AMD from another 6.2-RELEASE box &
 > 	setenv DESTDIR /host/test/a
 > 	grep "CFLAGS /etc/make.conf # "CFLAGS += -march=i586
 > 	cd /usr/src;make clean all install # & install kernel etc
 > F2 still just beeped.

Can't comment on that procedure.

 > Booted 6.2-RELEASE floppies,
 > 	6.2 kernel saw nothing on disc !  Offered ito install on whole disc.
 > I told it to to use same 1228689 for F1 & 1228689 for F2 as above,
 > ( & it came up with 5552064 not 5550111 ) for F3. I accepted &
 > aloc'd F2 with / & var & usr & no swap, & F3 mainly for /usr1 with
 > 300M swap at end).  I told it to set normal FreeSBD boot manager
 > etc, then it failed to write with:
 > 	ad0 timeout READ_DMA timed out

Sure your BIOS hasn't got 'virus protection' MBR writes prohibited? 

 > Reboot ... No sign 6.2 has ever written disc.  F2 6.2 is intact
 > with data I'd expected wiped if 6.2 boot from floppy + newfs had succeeded.
 > 	Is 6.2 ad driver too ambitious during install ? Needs more
 > 	conservative sysctls to avoid failures to upgrade/ install ?
 > 
 > F1 4.11 is intact so I can easily run tests anyone might suggest.  I ran
 > 	dd if=/dev/ad0 of=/dev/null
 > to see if any block errors. - None reported.
 > 8007552+0 records 4099866624 bytes (1633191 bytes/sec)

That's some good news :)

 > About the only other thing I can think of is somehow within the floppy install
 > trying to add the equivalent of:
 > 	/boot/loader.conf
 > 		 hw.ata.ata_dma="0"
 > 		 hw.ata.wc="0"
 > Though I dont believe that will solve the F2 beep.

I tend to doubt that this is really a dma (or for that matter, ata)
problem; it might be spurious to the problem of having a crook MBR or
your 6.2 boot blocks mangled.

If it were me, I think I'd use 6.2 sysinstall to a) preserve your 4.11
slice, of course; b) delete slices 2 and 3 completely; then c) allocate
slice 2 afresh (600MB is a bit teensy for 6.2, I'd have thought, and it
might be safer in this present context to put your swap on ad0s2 also) 
and partition/label (for now) just slice 2, then install 6.2 minimally.

And of course install the standard FreeBSD boot manager from 6.2; that
should leave your 4.11 slice alone ok, but properly install 6.2 boot
blocks in s2, and a fresh good MBR.

You can easily allocate the remaining space for your third /usr1 slice
later, once happily installed .. my maxim with sysinstall is if you just
do one thing at a time with it, then it'll probably work out ok :)

Good luck,

Ian

 >   ad0: 3909MB <TOSHIBA MK4006MAV> [7944/16/63] at ata0-master WDMA2



More information about the freebsd-mobile mailing list