From mteterin@pandora.us.murex.com  Thu Sep  2 20:18:33 2004
Return-Path: <mteterin@pandora.us.murex.com>
Received: from mx1.FreeBSD.org (mx1.freebsd.org [216.136.204.125])
	by hub.freebsd.org (Postfix) with ESMTP id 046B016A4CE
	for <FreeBSD-gnats-submit@freebsd.org>; Thu,  2 Sep 2004 20:18:33 +0000 (GMT)
Received: from harik.murex.com (mail.murex.com [194.98.239.11])
	by mx1.FreeBSD.org (Postfix) with ESMTP id 2D07C43D31
	for <FreeBSD-gnats-submit@freebsd.org>; Thu,  2 Sep 2004 20:18:12 +0000 (GMT)
	(envelope-from mteterin@pandora.us.murex.com)
Message-Id: <200409022013.i82K9cTG011425@harik.murex.com>
Date: Thu, 2 Sep 2004 16:07:23 -0400 (EDT)
From: Mikhail Teterin <mi@aldan.algebra.com>
To: FreeBSD-gnats-submit@freebsd.org
Subject: some SATA disks not seen by -current
X-Send-Pr-Version: 3.113
X-GNATS-Notify: sos@FreeBSD.org

>Number:         71309
>Category:       kern
>Synopsis:       some SATA disks not seen by -current
>Confidential:   no
>Severity:       serious
>Priority:       medium
>Responsible:    sos
>State:          closed
>Quarter:        
>Keywords:       
>Date-Required:  
>Class:          sw-bug
>Submitter-Id:   current-users
>Arrival-Date:   Thu Sep 02 20:20:19 GMT 2004
>Closed-Date:    Mon Sep 06 11:26:13 GMT 2004
>Last-Modified:  Mon Sep 06 11:26:13 GMT 2004
>Originator:     Mikhail Teterin
>Release:        FreeBSD 6.0-CURRENT amd64
>Organization:
Virtual Estates, Inc.
>Environment:

>Description:
	The first FreeBSD installed on this system was 5.2.1-RELEASE.
	We tried to "track -current", but around March 2003, the new
	kernel stopped seeing the system drive -- a serial ATA disk
	connected to one of the on-board SATA connectors.

	Repeated e-mails to sos@ remained unanswered and we stopped
	updating the kernel for a while -- until this week, when the
	downloaded 5.3-BETA2 saw the disk properly and we tried to
	update the sources and try again.

	The 6.0-current as of today STILL HAS THE SAME PROBLEM. The
	disk is not seen. However, downgrading the sys/dev/ata/ subdirectory
	only to RELENG_5:

/usr/src/sys/dev/ata/ata-all.c:
     $FreeBSD: src/sys/dev/ata/ata-all.c,v 1.222 2004/08/16 09:32:35 sos Exp $

/usr/src/sys/dev/ata/ata-all.h:
     $FreeBSD: src/sys/dev/ata/ata-all.h,v 1.81 2004/08/13 08:14:27 sos Exp $

/usr/src/sys/dev/ata/ata-card.c:
     $FreeBSD: src/sys/dev/ata/ata-card.c,v 1.25 2004/05/27 03:49:40 imp Exp $

/usr/src/sys/dev/ata/ata-cbus.c:
     $FreeBSD: src/sys/dev/ata/ata-cbus.c,v 1.13 2004/06/03 06:09:58 phk Exp $

/usr/src/sys/dev/ata/ata-chipset.c:
     $FreeBSD: src/sys/dev/ata/ata-chipset.c,v 1.81 2004/08/16 09:29:46 sos Exp $

/usr/src/sys/dev/ata/ata-commands.h:
     $FreeBSD: src/sys/dev/ata/ata-commands.h,v 1.2 2004/04/30 16:21:34 sos Exp $

/usr/src/sys/dev/ata/ata-disk.c:
     $FreeBSD: src/sys/dev/ata/ata-disk.c,v 1.175 2004/08/05 21:11:32 sos Exp $

/usr/src/sys/dev/ata/ata-disk.h:
     $FreeBSD: src/sys/dev/ata/ata-disk.h,v 1.49 2004/04/30 16:21:34 sos Exp $

/usr/src/sys/dev/ata/ata-dma.c:
     $FreeBSD: src/sys/dev/ata/ata-dma.c,v 1.129 2004/08/13 08:14:27 sos Exp $

/usr/src/sys/dev/ata/ata-isa.c:
     $FreeBSD: src/sys/dev/ata/ata-isa.c,v 1.22 2004/04/30 16:21:34 sos Exp $

/usr/src/sys/dev/ata/ata-lowlevel.c:
     $FreeBSD: src/sys/dev/ata/ata-lowlevel.c,v 1.44 2004/08/16 09:32:35 sos Exp $

/usr/src/sys/dev/ata/ata-pci.c:
     $FreeBSD: src/sys/dev/ata/ata-pci.c,v 1.87 2004/08/12 08:20:36 sos Exp $

/usr/src/sys/dev/ata/ata-pci.h:
     $FreeBSD: src/sys/dev/ata/ata-pci.h,v 1.32 2004/06/15 11:02:09 sos Exp $

/usr/src/sys/dev/ata/ata-queue.c:
     $FreeBSD: src/sys/dev/ata/ata-queue.c,v 1.32 2004/08/16 09:32:35 sos Exp $

/usr/src/sys/dev/ata/ata-raid.c:
     $FreeBSD: src/sys/dev/ata/ata-raid.c,v 1.81 2004/08/09 14:22:58 sos Exp $

/usr/src/sys/dev/ata/ata-raid.h:
     $FreeBSD: src/sys/dev/ata/ata-raid.h,v 1.27 2004/06/25 21:21:59 sos Exp $

/usr/src/sys/dev/ata/atapi-cam.c:
     $FreeBSD: src/sys/dev/ata/atapi-cam.c,v 1.35 2004/06/17 07:29:56 green Exp $

/usr/src/sys/dev/ata/atapi-cd.c:
     $FreeBSD: src/sys/dev/ata/atapi-cd.c,v 1.170 2004/08/08 07:57:50 phk Exp $

/usr/src/sys/dev/ata/atapi-cd.h:
     $FreeBSD: src/sys/dev/ata/atapi-cd.h,v 1.43 2004/04/30 16:21:34 sos Exp $

/usr/src/sys/dev/ata/atapi-fd.c:
     $FreeBSD: src/sys/dev/ata/atapi-fd.c,v 1.97 2004/08/05 21:11:33 sos Exp $

/usr/src/sys/dev/ata/atapi-fd.h:
     $FreeBSD: src/sys/dev/ata/atapi-fd.h,v 1.23 2004/04/30 16:21:34 sos Exp $

/usr/src/sys/dev/ata/atapi-tape.c:
     $FreeBSD: src/sys/dev/ata/atapi-tape.c,v 1.93 2004/08/05 21:11:33 sos Exp $

/usr/src/sys/dev/ata/atapi-tape.h:
     $FreeBSD: src/sys/dev/ata/atapi-tape.h,v 1.22 2004/06/16 09:46:37 phk Exp $

	solves the problem. dmesg.boot and the kernel's config files are below.

Copyright (c) 1992-2004 The FreeBSD Project.
Copyright (c) 1979, 1980, 1983, 1986, 1988, 1989, 1991, 1992, 1993, 1994
	The Regents of the University of California. All rights reserved.
FreeBSD 6.0-CURRENT #1: Thu Sep  2 15:28:27 EDT 2004
    root@pandora.us.murex.com:/backup/obj/usr/src/sys/DIOSCURI
Timecounter "i8254" frequency 1193182 Hz quality 0
CPU: AMD Opteron(tm) Processor 244 (1793.45-MHz K8-class CPU)
  Origin = "AuthenticAMD"  Id = 0xf58  Stepping = 8
  Features=0x78bfbff<FPU,VME,DE,PSE,TSC,MSR,PAE,MCE,CX8,APIC,SEP,MTRR,PGE,MCA,CMOV,PAT,PSE36,CLFLUSH,MMX,FXSR,SSE,SSE2>
  AMD Features=0xe0500800<SYSCALL,NX,MMX+,LM,3DNow+,3DNow>
real memory  = 2147418112 (2047 MB)
avail memory = 2064113664 (1968 MB)
ACPI APIC Table: <A M I  OEMAPIC >
MADT: Forcing active-low polarity and level trigger for SCI
ioapic0 <Version 1.1> irqs 0-23 on motherboard
ioapic1 <Version 1.1> irqs 24-27 on motherboard
ioapic2 <Version 1.1> irqs 28-31 on motherboard
acpi0: <A M I OEMXSDT> on motherboard
acpi0: Power Button (fixed)
Timecounter "ACPI-fast" frequency 3579545 Hz quality 1000
acpi_timer0: <24-bit timer at 3.579545MHz> port 0x5008-0x500b on acpi0
cpu0: <ACPI CPU> on acpi0
pcib0: <ACPI Host-PCI bridge> port 0xcf8-0xcff on acpi0
pci0: <ACPI PCI bus> on pcib0
pcib1: <ACPI PCI-PCI bridge> at device 6.0 on pci0
pci3: <ACPI PCI bus> on pcib1
ohci0: <OHCI (generic) USB controller> mem 0xff3fc000-0xff3fcfff irq 19 at device 0.0 on pci3
ohci0: [GIANT-LOCKED]
usb0: OHCI version 1.0, legacy support
usb0: <OHCI (generic) USB controller> on ohci0
usb0: USB revision 1.0
uhub0: AMD OHCI root hub, class 9/0, rev 1.00/1.00, addr 1
uhub0: 3 ports with 3 removable, self powered
ohci1: <OHCI (generic) USB controller> mem 0xff3fd000-0xff3fdfff irq 19 at device 0.1 on pci3
ohci1: [GIANT-LOCKED]
usb1: OHCI version 1.0, legacy support
usb1: <OHCI (generic) USB controller> on ohci1
usb1: USB revision 1.0
uhub1: AMD OHCI root hub, class 9/0, rev 1.00/1.00, addr 1
uhub1: 3 ports with 3 removable, self powered
ahc0: <Adaptec 2940 Ultra SCSI adapter> port 0x8000-0x80ff mem 0xff3fe000-0xff3fefff irq 16 at device 10.0 on pci3
ahc0: [GIANT-LOCKED]
aic7880: Ultra Wide Channel A, SCSI Id=7, 16/253 SCBs
atapci0: <SiI 3114 SATA150 controller> port 0x8400-0x840f,0x8480-0x8483,0x8800-0x8807,0x8880-0x8883,0x8c00-0x8c07 mem 0xff3ffc00-0xff3fffff irq 17 at device 11.0 on pci3
ata2: channel #0 on atapci0
ata3: channel #1 on atapci0
ata4: channel #2 on atapci0
ata5: channel #3 on atapci0
isab0: <PCI-ISA bridge> at device 7.0 on pci0
isa0: <ISA bus> on isab0
atapci1: <AMD 8111 UDMA133 controller> port 0xffa0-0xffaf,0x376,0x170-0x177,0x3f6,0x1f0-0x1f7 at device 7.1 on pci0
ata0: channel #0 on atapci1
ata1: channel #1 on atapci1
pci0: <serial bus, SMBus> at device 7.2 (no driver attached)
pci0: <bridge, PCI-unknown> at device 7.3 (no driver attached)
pci0: <multimedia, audio> at device 7.5 (no driver attached)
pcib2: <ACPI PCI-PCI bridge> at device 10.0 on pci0
pci2: <ACPI PCI bus> on pcib2
amr0: <LSILogic MegaRAID> mem 0xe67f0000-0xe67fffff irq 26 at device 7.0 on pci2
amr0: [GIANT-LOCKED]
amr0: <LSILogic MegaRAID SATA 150-6D> Firmware 712T, BIOS G116, 64MB RAM
bge0: <Broadcom BCM5703 Gigabit Ethernet, ASIC rev. 0x1002> mem 0xff1f0000-0xff1fffff irq 24 at device 9.0 on pci2
miibus0: <MII bus> on bge0
brgphy0: <BCM5703 10/100/1000baseTX PHY> on miibus0
brgphy0:  10baseT, 10baseT-FDX, 100baseTX, 100baseTX-FDX, 1000baseTX, 1000baseTX-FDX, auto
bge0: Ethernet address: 00:e0:81:28:21:04
pci0: <base peripheral, interrupt controller> at device 10.1 (no driver attached)
pcib3: <ACPI PCI-PCI bridge> at device 11.0 on pci0
pci1: <ACPI PCI bus> on pcib3
pci0: <base peripheral, interrupt controller> at device 11.1 (no driver attached)
pcib4: <ACPI Host-PCI bridge> on acpi0
pcib4: could not get PCI interrupt routing table for \\_SB_.PCIB - AE_NOT_FOUND
pci4: <ACPI PCI bus> on pcib4
pcib5: <ACPI PCI-PCI bridge> at device 1.0 on pci4
pci5: <ACPI PCI bus> on pcib5
pci5: <display, VGA> at device 0.0 (no driver attached)
acpi_button0: <Power Button> on acpi0
atkbdc0: <Keyboard controller (i8042)> port 0x64,0x60 irq 1 on acpi0
atkbd0: <AT Keyboard> flags 0x1 irq 1 on atkbdc0
kbd0 at atkbd0
atkbd0: [GIANT-LOCKED]
sio0: configured irq 4 not in bitmap of probed irqs 0
sio0: port may not be enabled
sio0 port 0x3f8-0x3ff irq 4 on acpi0
sio0: type 16550A
sio1: configured irq 3 not in bitmap of probed irqs 0
sio1: port may not be enabled
sio1 port 0x2f8-0x2ff irq 3 on acpi0
sio1: type 16550A
fdc0: <floppy drive controller (FDE)> port 0x3f7,0x3f0-0x3f5 irq 6 drq 2 on acpi0
ppc0 port 0x378-0x37f irq 7 on acpi0
ppc0: Generic chipset (NIBBLE-only) in COMPATIBLE mode
ppbus0: <Parallel port bus> on ppc0
lpt0: <Printer> on ppbus0
lpt0: Interrupt-driven port
orm0: <ISA Option ROMs> at iomem 0xcd000-0xcd7ff,0xc8000-0xcc7ff,0xc0000-0xc7fff on isa0
sc0: <System console> at flags 0x100 on isa0
sc0: VGA <16 virtual consoles, flags=0x300>
vga0: <Generic ISA VGA> at port 0x3c0-0x3df iomem 0xa0000-0xbffff on isa0
Timecounter "TSC" frequency 1793450655 Hz quality 800
Timecounters tick every 0.976 msec
acpi_cpu: throttling enabled, 8 steps (100% to 12.5%), currently 100.0%
ATAPI_RESET time = 60us
acd0: CDROM <FX320S/q01> at ata0-master PIO4
ad6: 190782MB <ST3200822AS/3.01> [387621/16/63] at ata3-master SATA150
Waiting 15 seconds for SCSI devices to settle
amrd0: <LSILogic MegaRAID logical drive> on amr0
amrd0: 953885MB (1953556480 sectors) RAID 5 (degraded)
Mounting root from ufs:/dev/ad6s1a
bge0: gigabit link up


# $FreeBSD: src/sys/amd64/conf/GENERIC,v 1.399.2.3 2004/01/26 19:42:11 nectar Exp $

machine		amd64
cpu		HAMMER
ident		GENERIC

#To statically compile in device wiring instead of /boot/device.hints
#hints		"GENERIC.hints"		#Default places to look for devices.

#makeoptions	DEBUG=-g		#Build kernel with gdb(1) debug symbols
makeoptions	NO_MODULES=not_yet

options 	SCHED_4BSD		#4BSD scheduler
options 	INET			#InterNETworking
options 	BRIDGE
#options 	INET6			#IPv6 communications protocols
options 	FFS			#Berkeley Fast Filesystem
options 	SOFTUPDATES		#Enable FFS soft updates support
#options 	UFS_ACL			#Support for access control lists
options 	UFS_DIRHASH		#Improve performance on big directories
#options 	MD_ROOT			#MD is a potential root device
options 	NFSCLIENT		#Network Filesystem Client
options 	NFSSERVER		#Network Filesystem Server
#options 	NFS_ROOT		#NFS usable as /, requires NFSCLIENT
options 	MSDOSFS			#MSDOS Filesystem
options 	CD9660			#ISO 9660 Filesystem
options 	PROCFS			#Process filesystem (requires PSEUDOFS)
options 	PSEUDOFS		#Pseudo-filesystem framework
options 	COMPAT_IA32		#Compatible with i386 binaries
options 	COMPAT_FREEBSD4		#Compatible with FreeBSD4
options 	SCSI_DELAY=15000	#Delay (in ms) before probing SCSI
options 	KTRACE			#ktrace(1) support
options 	SYSVSHM			#SYSV-style shared memory
options 	SYSVMSG			#SYSV-style message queues
options 	SYSVSEM			#SYSV-style semaphores
options 	_KPOSIX_PRIORITY_SCHEDULING #Posix P1003_1B real-time extensions
options 	KBD_INSTALL_CDEV	# install a CDEV entry in /dev
options 	AHC_REG_PRETTY_PRINT	# Print register bitfields in debug
					# output.  Adds ~128k to driver.
options 	AHD_REG_PRETTY_PRINT	# Print register bitfields in debug
					# output.  Adds ~215k to driver.

# Debugging for use in -current
#options 	DDB			#Enable the kernel debugger
#options 	INVARIANTS		#Enable calls of extra sanity checking
#options 	INVARIANT_SUPPORT	#Extra sanity checks of internal structures, required by INVARIANTS
#options 	WITNESS			#Enable checks to detect deadlocks and cycles
#options 	WITNESS_SKIPSPIN	#Don't run witness on spinlocks for speed

# Make an SMP-capable kernel by default
#options 	SMP			# Symmetric MultiProcessor Kernel
# Workarounds for some known-to-be-broken chipsets (nVidia nForce3-Pro150)
#device		atpic			# 8259A compatability
options 	NO_MIXED_MODE		# Don't penalize working chipsets

device		acpi
device		isa
device		pci


# Sound (no modules)
device		sound
device		snd_ad1816

# Floppy drives
device		fdc

# ATA and ATAPI devices
device		ata
device		atadisk			# ATA disk drives
#device		ataraid			# ATA RAID drives
device		atapicd			# ATAPI CDROM drives
device		atapifd			# ATAPI floppy drives
#device		atapist			# ATAPI tape drives
options 	ATA_STATIC_ID		#Static device numbering

# SCSI Controllers
device		ahc		# AHA2940 and onboard AIC7xxx devices

# SCSI peripherals
device		scbus		# SCSI bus (required for SCSI)
device		ch		# SCSI media changers
device		da		# Direct Access (disks)
device		sa		# Sequential Access (tape etc)
device		cd		# CD
device		pass		# Passthrough device (direct SCSI access)
device		ses		# SCSI Environmental Services (and SAF-TE)

# RAID controllers interfaced to the SCSI subsystem
device		amr		# AMI MegaRAID

# atkbdc0 controls both the keyboard and the PS/2 mouse
device		atkbdc		# AT keyboard controller
device		atkbd		# AT keyboard
device		psm		# PS/2 mouse

device		vga		# VGA video card driver

# syscons is the default console driver, resembling an SCO console
device		sc

# Serial (COM) ports
device		sio		# 8250, 16[45]50 based serial ports

# Parallel port
device		ppc
device		ppbus		# Parallel port bus (required)
device		lpt		# Printer

# If you've got a "dumb" serial or parallel PCI card that is
# supported by the puc(4) glue driver, uncomment the following
# line to enable it (connects to the sio and/or ppc drivers):
#device         puc

# PCI Ethernet NICs.
device		txp		# 3Com 3cR990 (``Typhoon'')

# PCI Ethernet NICs that use the common MII bus controller code.
# NOTE: Be sure to keep the 'device miibus' line in order to use these NICs!
device		miibus		# MII bus support
device		bge		# Broadcom BCM570xx Gigabit Ethernet

# Pseudo devices - the number indicates how many units to allocate.
device		random		# Entropy device
device		loop		# Network loopback
device		ether		# Ethernet support
device		tun		# Packet tunnel.
device		pty		# Pseudo-ttys (telnet etc)
device		md		# Memory "disks"
device		gif		# IPv6 and IPv4 tunneling

# The `bpf' device enables the Berkeley Packet Filter.
# Be aware of the administrative consequences of enabling this!
device		bpf		# Berkeley packet filter

# USB support
device		ohci		# OHCI PCI->USB interface
device		usb		# USB Bus (required)
#device		udbp		# USB Double Bulk Pipe devices
device		ugen		# Generic
device		uhid		# "Human Interface Devices"
device		ukbd		# Keyboard
device		ulpt		# Printer
device		umass		# Disks/Mass storage - Requires scbus and da
device		ums		# Mouse
#device		urio		# Diamond Rio 500 MP3 player
device		uscanner	# Scanners

# FireWire support
device		firewire	# FireWire bus code
device		sbp		# SCSI over FireWire (Requires scbus and da)
device		fwe		# Ethernet over FireWire (non-standard!)

>How-To-Repeat:

>Fix:
	Use ata-driver from RELENG_5.
>Release-Note:
>Audit-Trail:
Responsible-Changed-From-To: freebsd-bugs->sos 
Responsible-Changed-By: ceri 
Responsible-Changed-When: Thu Sep 2 20:28:42 GMT 2004 
Responsible-Changed-Why:  
One for sos@. 

http://www.freebsd.org/cgi/query-pr.cgi?pr=71309 

From: =?ISO-8859-1?Q?S=F8ren_Schmidt?= <sos@DeepCore.dk>
To: Mikhail Teterin <mi@aldan.algebra.com>
Cc: FreeBSD-gnats-submit@FreeBSD.ORG
Subject: Re: kern/71309: some SATA disks not seen by -current
Date: Thu, 02 Sep 2004 22:36:53 +0200

 This is a multi-part message in MIME format.
 --------------020305090501010506070207
 Content-Type: text/plain; charset=ISO-8859-1; format=flowed
 Content-Transfer-Encoding: quoted-printable
 
 Mikhail Teterin wrote:
 
 > 	The first FreeBSD installed on this system was 5.2.1-RELEASE.
 > 	We tried to "track -current", but around March 2003, the new
 > 	kernel stopped seeing the system drive -- a serial ATA disk
 > 	connected to one of the on-board SATA connectors.
 >=20
 > 	Repeated e-mails to sos@ remained unanswered and we stopped
 > 	updating the kernel for a while -- until this week, when the
 > 	downloaded 5.3-BETA2 saw the disk properly and we tried to
 > 	update the sources and try again.
 >=20
 > 	The 6.0-current as of today STILL HAS THE SAME PROBLEM. The
 > 	disk is not seen. However, downgrading the sys/dev/ata/ subdirectory
 > 	only to RELENG_5:
 
 Hmm, please try this patch and let me know if that helps
 
 -S=F8ren
 
 --------------020305090501010506070207
 Content-Type: text/plain;
  name="ata_usleep.p1"
 Content-Transfer-Encoding: 7bit
 Content-Disposition: inline;
  filename="ata_usleep.p1"
 
 Index: ata-all.c
 ===================================================================
 RCS file: /home/ncvs/src/sys/dev/ata/ata-all.c,v
 retrieving revision 1.223
 diff -u -r1.223 ata-all.c
 --- ata-all.c	24 Aug 2004 15:09:05 -0000	1.223
 +++ ata-all.c	25 Aug 2004 07:54:34 -0000
 @@ -735,6 +735,23 @@
  /*
   * misc support functions
   */
 +
 +extern u_int64_t tsc_freq;
 +
 +void
 +ata_usleep(int interval)
 +{
 +    u_int64_t v1, v2;
 +
 +    v1 = rdtsc();
 +    if (ata_delayed_attach)
 +	DELAY(interval);
 +    else
 +	tsleep(&v1, PRIBIO, "ataslp", interval/(1000000/hz));
 +    v2 = rdtsc();
 +    printf("ata_usleep: %qdus\n", (long long)((v2 - v1)/(tsc_freq/1000000)));
 +}
 +
  static void
  bswap(int8_t *buf, int len)
  {
 Index: ata-all.h
 ===================================================================
 RCS file: /home/ncvs/src/sys/dev/ata/ata-all.h,v
 retrieving revision 1.81
 diff -u -r1.81 ata-all.h
 --- ata-all.h	13 Aug 2004 08:14:27 -0000	1.81
 +++ ata-all.h	25 Aug 2004 07:20:32 -0000
 @@ -390,6 +390,7 @@
  int ata_detach(device_t dev);
  int ata_suspend(device_t dev);
  int ata_resume(device_t dev);
 +void ata_usleep(int interval);
  int ata_printf(struct ata_channel *ch, int device, const char *fmt, ...) __printflike(3, 4);
  int ata_prtdev(struct ata_device *atadev, const char *fmt, ...) __printflike(2, 3);
  void ata_set_name(struct ata_device *atadev, char *name, int lun);
 Index: ata-chipset.c
 ===================================================================
 RCS file: /home/ncvs/src/sys/dev/ata/ata-chipset.c,v
 retrieving revision 1.81
 diff -u -r1.81 ata-chipset.c
 --- ata-chipset.c	16 Aug 2004 09:29:46 -0000	1.81
 +++ ata-chipset.c	25 Aug 2004 07:47:13 -0000
 @@ -923,9 +923,9 @@
      pci_write_config(parent, 0x92, pci_read_config(parent, 0x92, 2) | mask, 2);
  
      while (timeout--) {
 -	DELAY(10000);
 +	ata_usleep(10000);
  	if ((pci_read_config(parent, 0x92, 2) & (mask << 4)) == (mask << 4)) {
 -	    DELAY(10000);
 +	    ata_usleep(10000);
  	    return;
  	}
      }
 @@ -2160,9 +2160,9 @@
  ata_sii_reset(struct ata_channel *ch)
  {
      ATA_IDX_OUTL(ch, ATA_BMDEVSPEC_1, 0x00000001);
 -    DELAY(25000);
 +    ata_usleep(25000);
      ATA_IDX_OUTL(ch, ATA_BMDEVSPEC_1, 0x00000000);
 -    DELAY(250000);
 +    ata_usleep(1000000);
  }
  
  static void
 Index: ata-lowlevel.c
 ===================================================================
 RCS file: /home/ncvs/src/sys/dev/ata/ata-lowlevel.c,v
 retrieving revision 1.44
 diff -u -r1.44 ata-lowlevel.c
 --- ata-lowlevel.c	16 Aug 2004 09:32:35 -0000	1.44
 +++ ata-lowlevel.c	25 Aug 2004 07:46:18 -0000
 @@ -48,7 +48,6 @@
  static void ata_generic_interrupt(void *);
  static void ata_generic_reset(struct ata_channel *);
  static int ata_wait(struct ata_device *, u_int8_t);
 -/*static int ata_command(struct ata_device *, u_int8_t, u_int64_t, u_int16_t, u_int16_t);*/
  static void ata_pio_read(struct ata_request *, int);
  static void ata_pio_write(struct ata_request *, int);
  
 @@ -577,9 +576,9 @@
      ATA_IDX_OUTB(ch, ATA_DRIVE, ATA_D_IBM | ATA_MASTER);
      DELAY(10);
      ATA_IDX_OUTB(ch, ATA_ALTSTAT, ATA_A_IDS | ATA_A_RESET);
 -    DELAY(10000); 
 +    ata_usleep(10000); 
      ATA_IDX_OUTB(ch, ATA_ALTSTAT, ATA_A_IDS);
 -    DELAY(100000);
 +    ata_usleep(100000);
      ATA_IDX_INB(ch, ATA_ERROR);
  
      /* wait for BUSY to go inactive */
 @@ -648,7 +647,7 @@
  	    if (stat1 == 0xff && timeout > 5)
  		mask &= ~0x02;
  	}
 -	DELAY(100000);
 +	ata_usleep(100000);
      }	
  
      if (bootverbose)
 @@ -686,7 +685,7 @@
  
  	if (timeout > 1000) {
  	    timeout += 1000;
 -	    DELAY(1000);
 +	    ata_usleep(1000);
  	}
  	else {
  	    timeout += 10;
  
 
 --------------020305090501010506070207--

From: Mikhail Teterin <mi+mxmoz@aldan.algebra.com>
To: =?ISO-8859-1?Q?S=F8ren_Schmidt?= <sos@DeepCore.dk>
Cc: Mikhail Teterin <mi@aldan.algebra.com>,
	FreeBSD-gnats-submit@FreeBSD.ORG
Subject: Re: kern/71309: some SATA disks not seen by -current
Date: Fri, 03 Sep 2004 13:39:34 -0400

 Sren Schmidt wrote:
 
 > Mikhail Teterin wrote:
 >
 >>
 >>     The 6.0-current as of today STILL HAS THE SAME PROBLEM. The
 >>     disk is not seen. However, downgrading the sys/dev/ata/ subdirectory
 >>     only to RELENG_5:
 >
 >
 > Hmm, please try this patch and let me know if that helps.
 
 Should I update back up to -current before applying the patch? Thanks!
 
     -mi
 
State-Changed-From-To: open->closed 
State-Changed-By: sos 
State-Changed-When: Mon Sep 6 11:25:01 GMT 2004 
State-Changed-Why:  
Fixed in -current already. 

http://www.freebsd.org/cgi/query-pr.cgi?pr=71309 
>Unformatted:
