Native SATA vs. PATA-emulation - difference?

Patrick M. Hausen hausen at punkt.de
Fri May 18 09:04:38 UTC 2007


Hi, all!

I have a Tyan barebone on my desk that is based on the
ServerWorks HT1000 chipset. It features 4 SATA connectors
and 4 hot plug drive bays.

I installed FreeBSD on the system with the BIOS settings as
set by the manufacturer. This includes setting the "SATA mode"
to "P-ATA emulation".

The devices are probed by FreeBSD like this:

server# dmesg | grep ata
atapci0: <ServerWorks HT1000 SATA150 controller> port 0xc080-0xc087,0xc000-0xc003,0xbc00-0xbc07,0xb880-0xb883,0xb800-0xb80f mem 0xff3fe000-0xff3fffff irq 11 at device 14.0 on pci1
ata2: <ATA channel 0> on atapci0
ata3: <ATA channel 1> on atapci0
atapci1: <ServerWorks HT1000 SATA150 controller> port 0xcc00-0xcc07,0xc880-0xc883,0xc800-0xc807,0xc480-0xc483,0xc400-0xc40f irq 11 at device 14.1 on pci1
ata4: <ATA channel 0> on atapci1
ata5: <ATA channel 1> on atapci1
atapci2: <ServerWorks HT1000 UDMA100 controller> port 0x1f0-0x1f7,0x3f6,0x170-0x177,0x376,0xffa0-0xffaf at device 2.1 on pci0
ata0: <ATA channel 0> on atapci2
ata1: <ATA channel 1> on atapci2
acd0: CDROM <CD-224E-N/1.AA> at ata0-slave UDMA33
ad4: DMA limited to UDMA33, device found non-ATA66 cable
ad4: 157066MB <WDC WD1600YS-01SHB1 20.06C06> at ata2-master UDMA33
ad6: DMA limited to UDMA33, device found non-ATA66 cable
ad6: 157066MB <WDC WD1600YS-01SHB1 20.06C06> at ata3-master UDMA33
ad8: DMA limited to UDMA33, device found non-ATA66 cable
ad8: 157066MB <WDC WD1600YS-01SHB1 20.06C06> at ata4-master UDMA33
ad10: DMA limited to UDMA33, device found non-ATA66 cable
ad10: 157066MB <WDC WD1600YS-01SHB1 20.06C06> at ata5-master UDMA33

Everything's working fine, besides the messages about DMA limited
to UDMA33. I figure, they can safely be ignored?

I set up a GEOM mirror on my boot disk, again, everythings working
as expected:

server# cat /boot/loader.conf
geom_mirror_load="YES"

server# gmirror list
Geom name: gm0s1
State: COMPLETE
Components: 2
Balance: round-robin
Slice: 4096
Flags: NONE
GenID: 2
SyncID: 1
ID: 2124128128
Providers:
1. Name: mirror/gm0s1
   Mediasize: 164694458368 (153G)
   Sectorsize: 512
   Mode: r4w4e4
Consumers:
1. Name: ad4s1
   Mediasize: 164694458880 (153G)
   Sectorsize: 512
   Mode: r1w1e1
   State: ACTIVE
   Priority: 0
   Flags: NONE
   GenID: 2
   SyncID: 1
   ID: 1671205054
2. Name: ad6s1
   Mediasize: 164694458880 (153G)
   Sectorsize: 512
   Mode: r1w1e1
   State: ACTIVE
   Priority: 0
   Flags: NONE
   GenID: 2
   SyncID: 1
   ID: 1645626982

Now for the part that I do not understand ;-)

Out of curiosity I changed the BIOS setup setting for the
SATA controller to "native SATA".

When booting, the controller and all disks are probed OK.
The output shows "SATA150" for the devices.

Yet, the root filesystem on /dev/mirror/gm0s1 cannot be found.
Hitting "?" at the prompt that asks for manual root dev specification,
I get "ad4, ad4s1, ad4s1a ... ad6, ad6s1, ad6s1a ...". I can even
boot ad4s1 to single user mode, so all data on the disk can be
read just like when in "P-ATA emulation" mode.

Why does gmirror fail to load?

An answer to this question could prove critical in the future
if one of theses servers fails an I need to put the disks in
a different chassis/mainboard combination.

I used to think that in LBA mode all disks and disk access
methods were created equal.

Thanks in advance,
Patrick M. Hausen
Leiter Netzwerke und Sicherheit
-- 
punkt.de GmbH * Vorholzstr. 25 * 76137 Karlsruhe
Tel. 0721 9109 0 * Fax 0721 9109 100
info at punkt.de       http://www.punkt.de
Gf: Jürgen Egeling      AG Mannheim 108285


More information about the freebsd-stable mailing list