All of lore.kernel.org
 help / color / mirror / Atom feed
* Re: Pata support on Promise controller under Fedora Core 3
       [not found] <006101c4baed$f3b46d80$0c01a8c0@nugget>
@ 2004-10-27 13:58 ` Ericisko
  2004-10-27 14:08   ` Jeff Garzik
  0 siblings, 1 reply; 7+ messages in thread
From: Ericisko @ 2004-10-27 13:58 UTC (permalink / raw)
  To: James C. Bevier; +Cc: linux-ide

James,

you have the same controller as me (PDC20378) which
has only 1 PATA port. PATA ports support up to 2
devices per port, as opposed to SATA ports which
support only 1 device per port.
There is source code for 2.4 linux driver on Promise
web site, you can have a look.
Could you send your dmesg output?

  Erik

 --- "James C. Bevier" <jbev@jbsys.com> wrote: 
> I have played around with the driver patches a
> little
> and I think the folowing code needs some
> modifications
> to work on the ASUS MB Promise controller.
> 
>   case board_2037x:
> -         probe_ent->n_ports = 2;
> +  /* Some boards have also PATA port */
> +  tmp = readb(base + PDC_FLASH_CTL+1);
> +  if (!(tmp & 0x80))
> +  {
> + //  probe_ent->n_ports = 3;
> +   probe_ent->n_ports = 4;                       //
> I think this should be
> 4
> +   pdc_sata_setup_port(&probe_ent->port[2], base +
> 0x300);
> +   pdc_sata_setup_port(&probe_ent->port[3], base +
> 0x380);  // this does
> not work, need port address
> +   probe_ent->port_flags[2] = ATA_FLAG_SLAVE_POSS;
> +   probe_ent->port_flags[3] = ATA_FLAG_SLAVE_POSS; 
>  // this needs to be
> there for 2nd pata disk
> +   printk(KERN_INFO DRV_NAME " PATA port found\n");
> +  }
> +  else
> +          probe_ent->n_ports = 2;
>    break;
> 
> I think if I had the valid port address, it might
> work.  Do you have it?
> 
> Jim
> 
> 
> ----- Original Message ----- 
> From: "Ericisko" <linux2@rogers.com>
> To: "James C. Bevier" <jbev@jbsys.com>; "Jeff
> Garzik" <jgarzik@pobox.com>
> Cc: <linux-ide@vger.kernel.org>
> Sent: Tuesday, October 26, 2004 4:17 AM
> Subject: Re: Pata support on Promise controller
> under Fedora Core 3
> 
> 
> > James,
> >
> > I don't have any additional code. I quickly tested
> it
> > on my system (PDC20378) and both drives were
> > recognized.
> > However, I've got hard lockup after about 1 min.
> It is
> > with vanilla 2.6.9-rc3, smp, preempt enabled.
> Didn't
> > have time to investigate further.
> > Are your drives recognized by BIOS? Also, AFAIK
> PATA
> > port on 378 supports only ATA (disk) drives, not
> ATAPI
> > drives (CD/DVD). Is your second drive disk or
> CD/DVD?
> >
> >   Erik
> >
> >  --- "James  C. Bevier" <jbev@jbsys.com> wrote:
> > > Jeff,
> > >
> > > I cut out the attached patch from the
> sata_promise
> > > dev patches on kernel.org.  I
> > > put it in the latest kernel in Fedora Core 3
> RC1.
> > > It is version 2.6.9-1.640
> > > kernel.  It works well enough to be able to see
> the
> > > first PATA drive on the
> > > Promise controller.  It does not see the second
> > > drive.  The code only seems to
> > > work for one drive.  Could you (or Erik) provide
> the
> > > rest of the code that will
> > > see the second drive.  If you could point me to
> > > specs for the controller or give
> > > me the register offset for the last drive, I
> could
> > > try to hack at it myself.  I
> > > really need this to work in Fedora Core 3.
> > >
> > > Thanks for your help!
> > >
> > > Jim Bevier
> > >
> >
> > > ATTACHMENT part 2 application/octet-stream
> > name=linux-2.6.9-sata_promise.patch
> >  )
> >
> 
>  

^ permalink raw reply	[flat|nested] 7+ messages in thread

* Re: Pata support on Promise controller under Fedora Core 3
  2004-10-27 13:58 ` Pata support on Promise controller under Fedora Core 3 Ericisko
@ 2004-10-27 14:08   ` Jeff Garzik
  2004-10-27 16:05     ` James  C. Bevier
  0 siblings, 1 reply; 7+ messages in thread
From: Jeff Garzik @ 2004-10-27 14:08 UTC (permalink / raw)
  To: Ericisko; +Cc: James C. Bevier, linux-ide

Ericisko wrote:
> James,
> 
> you have the same controller as me (PDC20378) which
> has only 1 PATA port. PATA ports support up to 2
> devices per port, as opposed to SATA ports which
> support only 1 device per port.
> There is source code for 2.4 linux driver on Promise
> web site, you can have a look.
> Could you send your dmesg output?


Note that PDC2037x has a "dual master mode", where two PATA devices 
(master/slave) on the same cable can be made to look like two 
independent PATA masters, thus giving the illusion that there are two ports.

	Jeff



^ permalink raw reply	[flat|nested] 7+ messages in thread

* Re: Pata support on Promise controller under Fedora Core 3
  2004-10-27 14:08   ` Jeff Garzik
@ 2004-10-27 16:05     ` James  C. Bevier
  2004-10-27 17:18       ` Ericisko
  0 siblings, 1 reply; 7+ messages in thread
From: James  C. Bevier @ 2004-10-27 16:05 UTC (permalink / raw)
  To: Jeff Garzik, Ericisko; +Cc: linux-ide

[-- Attachment #1: Type: text/plain, Size: 1158 bytes --]


----- Original Message ----- 
From: "Jeff Garzik" <jgarzik@pobox.com>
To: "Ericisko" <linux2@rogers.com>
Cc: "James C. Bevier" <jbev@jbsys.com>; <linux-ide@vger.kernel.org>
Sent: Wednesday, October 27, 2004 7:08 AM
Subject: Re: Pata support on Promise controller under Fedora Core 3


> Ericisko wrote:
>> James,
>> 
>> you have the same controller as me (PDC20378) which
>> has only 1 PATA port. PATA ports support up to 2
>> devices per port, as opposed to SATA ports which
>> support only 1 device per port.
>> There is source code for 2.4 linux driver on Promise
>> web site, you can have a look.
>> Could you send your dmesg output?
> 
> 
> Note that PDC2037x has a "dual master mode", where two PATA devices 
> (master/slave) on the same cable can be made to look like two 
> independent PATA masters, thus giving the illusion that there are two ports.
> 
> Jeff
>

Here is the dmesg output.  The Promise controller is built into the ASUS mb.
If the one port can have two drives, there must be some more status that
can be read to see if two drives are present.  The current code does not
seem to do anything like that.  Where can I go from here?

Jim

[-- Attachment #2: dmesg.txt --]
[-- Type: text/plain, Size: 15321 bytes --]

Bootdata ok (command line is ro root=/dev/hdb7)
Linux version 2.6.9-1.643.pata (root@jbsys) (gcc version 3.4.2 20041017 (Red Hat 3.4.2-6)) #1 Tue Oct 26 13:54:53 MST 2004
BIOS-provided physical RAM map:
 BIOS-e820: 0000000000000000 - 000000000009fc00 (usable)
 BIOS-e820: 000000000009fc00 - 00000000000a0000 (reserved)
 BIOS-e820: 00000000000e4000 - 0000000000100000 (reserved)
 BIOS-e820: 0000000000100000 - 000000003ff30000 (usable)
 BIOS-e820: 000000003ff30000 - 000000003ff40000 (ACPI data)
 BIOS-e820: 000000003ff40000 - 000000003fff0000 (ACPI NVS)
 BIOS-e820: 000000003fff0000 - 0000000040000000 (reserved)
 BIOS-e820: 00000000fff80000 - 0000000100000000 (reserved)
No mptable found.
On node 0 totalpages: 261936
  DMA zone: 4096 pages, LIFO batch:1
  Normal zone: 257840 pages, LIFO batch:16
  HighMem zone: 0 pages, LIFO batch:1
ACPI: RSDP (v000 ACPIAM                                ) @ 0x00000000000fa8b0
ACPI: RSDT (v001 A M I  OEMRSDT  0x08000403 MSFT 0x00000097) @ 0x000000003ff30000
ACPI: FADT (v001 A M I  OEMFACP  0x08000403 MSFT 0x00000097) @ 0x000000003ff30200
ACPI: MADT (v001 A M I  OEMAPIC  0x08000403 MSFT 0x00000097) @ 0x000000003ff30390
ACPI: OEMB (v001 A M I  OEMBIOS  0x08000403 MSFT 0x00000097) @ 0x000000003ff40040
ACPI: DSDT (v001  A0058 A0058002 0x00000002 MSFT 0x0100000d) @ 0x0000000000000000
ACPI: Local APIC address 0xfee00000
ACPI: LAPIC (acpi_id[0x01] lapic_id[0x00] enabled)
Processor #0 15:4 APIC version 16
ACPI: IOAPIC (id[0x01] address[0xfec00000] gsi_base[0])
IOAPIC[0]: apic_id 1, version 3, address 0xfec00000, GSI 0-23
ACPI: INT_SRC_OVR (bus 0 bus_irq 0 global_irq 2 dfl dfl)
ACPI: IRQ0 used by override.
ACPI: IRQ2 used by override.
ACPI: IRQ9 used by override.
Using ACPI (MADT) for SMP configuration information
Checking aperture...
CPU 0: aperture @ f8000000 size 64 MB
Built 1 zonelists
Kernel command line: ro root=/dev/hdb7 console=tty0
Initializing CPU#0
PID hash table entries: 4096 (order: 12, 131072 bytes)
time.c: Using 1.193182 MHz PIT timer.
time.c: Detected 2100.101 MHz processor.
Console: colour VGA+ 80x25
Dentry cache hash table entries: 262144 (order: 9, 2097152 bytes)
Inode-cache hash table entries: 131072 (order: 8, 1048576 bytes)
Memory: 1024012k/1047744k available (2469k kernel code, 23012k reserved, 1311k data, 164k init)
Calibrating delay loop... 4128.76 BogoMIPS (lpj=2064384)
Security Scaffold v1.0.0 initialized
SELinux:  Initializing.
SELinux:  Starting in permissive mode
There is already a security framework initialized, register_security failed.
selinux_register_security:  Registering secondary module capability
Capability LSM initialized as secondary
Mount-cache hash table entries: 256 (order: 0, 4096 bytes)
CPU: L1 I Cache: 64K (64 bytes/line), D cache 64K (64 bytes/line)
CPU: L2 Cache: 1024K (64 bytes/line)
CPU: AMD Athlon(tm) 64 Processor 3200+ stepping 08
Using local APIC NMI watchdog using perfctr0
Using local APIC timer interrupts.
Detected 13.125 MHz APIC timer.
checking if image is initramfs... it is
NET: Registered protocol family 16
PCI: Using configuration type 1
mtrr: v2.0 (20020519)
ACPI: Subsystem revision 20040816
ACPI: Interpreter enabled
ACPI: Using IOAPIC for interrupt routing
ACPI: PCI Root Bridge [PCI0] (00:00)
PCI: Probing PCI hardware (bus 00)
ACPI: PCI Interrupt Routing Table [\_SB_.PCI0._PRT]
ACPI: PCI Interrupt Link [LNKA] (IRQs 3 4 5 7 10 *11 14 15)
ACPI: PCI Interrupt Link [LNKB] (IRQs 3 4 5 7 *10 11 14 15)
ACPI: PCI Interrupt Link [LNKC] (IRQs 3 4 *5 7 10 11 14 15)
ACPI: PCI Interrupt Link [LNKD] (IRQs 3 4 5 7 10 11 14 15) *0, disabled.
ACPI: PCI Interrupt Link [LNKE] (IRQs 3 4 5 7 10 11 14 15) *0, disabled.
ACPI: PCI Interrupt Link [LNKF] (IRQs 3 4 5 7 10 11 14 15) *0, disabled.
ACPI: PCI Interrupt Link [LNKG] (IRQs 3 4 5 7 10 11 14 15) *0, disabled.
ACPI: PCI Interrupt Link [LNKH] (IRQs 3 4 5 7 10 11 14 15) *0, disabled.
usbcore: registered new driver usbfs
usbcore: registered new driver hub
PCI: Using ACPI for IRQ routing
ACPI: PCI interrupt 0000:00:07.0[A] -> GSI 16 (level, low) -> IRQ 169
ACPI: PCI interrupt 0000:00:08.0[A] -> GSI 18 (level, low) -> IRQ 177
ACPI: PCI interrupt 0000:00:0a.0[A] -> GSI 17 (level, low) -> IRQ 185
ACPI: PCI interrupt 0000:00:0d.0[A] -> GSI 18 (level, low) -> IRQ 177
ACPI: PCI interrupt 0000:00:0f.0[B] -> GSI 20 (level, low) -> IRQ 193
ACPI: PCI interrupt 0000:00:0f.1[A] -> GSI 20 (level, low) -> IRQ 193
ACPI: PCI interrupt 0000:00:10.0[A] -> GSI 21 (level, low) -> IRQ 201
ACPI: PCI interrupt 0000:00:10.1[A] -> GSI 21 (level, low) -> IRQ 201
ACPI: PCI interrupt 0000:00:10.2[B] -> GSI 21 (level, low) -> IRQ 201
ACPI: PCI interrupt 0000:00:10.3[B] -> GSI 21 (level, low) -> IRQ 201
ACPI: PCI interrupt 0000:00:10.4[C] -> GSI 21 (level, low) -> IRQ 201
ACPI: PCI interrupt 0000:00:11.5[C] -> GSI 22 (level, low) -> IRQ 209
ACPI: PCI interrupt 0000:01:00.0[A] -> GSI 16 (level, low) -> IRQ 169
agpgart: Detected AGP bridge 0
agpgart: Maximum main memory to use for agp memory: 941M
agpgart: AGP aperture is 64M @ 0xf8000000
PCI-DMA: Disabling IOMMU.
IA32 emulation $Id: sys_ia32.c,v 1.32 2002/03/24 13:02:28 ak Exp $
audit: initializing netlink socket (disabled)
audit(1098802611.202:0): initialized
Total HugeTLB memory allocated, 0
VFS: Disk quotas dquot_6.5.1
Dquot-cache hash table entries: 512 (order 0, 4096 bytes)
NTFS driver 2.1.20 [Flags: R/W].
SELinux:  Registering netfilter hooks
Initializing Cryptographic API
ksign: Installing public key data
Loading keyring
- Added public key E678DFAC3562A82
  - key was been created 21251 seconds in future
- User ID: Red Hat, Inc. (Kernel Module GPG key)
PCI: Via IRQ fixup for 0000:00:10.0, from 11 to 9
PCI: Via IRQ fixup for 0000:00:10.1, from 11 to 9
PCI: Via IRQ fixup for 0000:00:10.2, from 10 to 9
PCI: Via IRQ fixup for 0000:00:10.3, from 10 to 9
pci_hotplug: PCI Hot Plug PCI Core version: 0.5
vesafb: probe of vesafb0 failed with error -6
ACPI: Processor [CPU1] (supports C1)
Real Time Clock Driver v1.12
Linux agpgart interface v0.100 (c) Dave Jones
serio: i8042 AUX port at 0x60,0x64 irq 12
serio: i8042 KBD port at 0x60,0x64 irq 1
Serial: 8250/16550 driver $Revision: 1.90 $ 8 ports, IRQ sharing enabled
ttyS0 at I/O 0x3f8 (irq = 4) is a 16550A
ttyS1 at I/O 0x2f8 (irq = 3) is a 16550A
RAMDISK driver initialized: 16 RAM disks of 16384K size 1024 blocksize
divert: not allocating divert_blk for non-ethernet device lo
Uniform Multi-Platform E-IDE driver Revision: 7.00alpha2
ide: Assuming 33MHz system bus speed for PIO modes; override with idebus=xx
VP_IDE: IDE controller at PCI slot 0000:00:0f.1
ACPI: PCI interrupt 0000:00:0f.1[A] -> GSI 20 (level, low) -> IRQ 193
VP_IDE: chipset revision 6
VP_IDE: not 100% native mode: will probe irqs later
VP_IDE: VIA vt8237 (rev 00) IDE UDMA133 controller on pci0000:00:0f.1
    ide0: BM-DMA at 0xfc00-0xfc07, BIOS settings: hda:DMA, hdb:DMA
    ide1: BM-DMA at 0xfc08-0xfc0f, BIOS settings: hdc:DMA, hdd:DMA
Probing IDE interface ide0...
hda: Maxtor 6Y080P0, ATA DISK drive
hdb: WDC WD300BB-32AUA1, ATA DISK drive
Using cfq io scheduler
ide0 at 0x1f0-0x1f7,0x3f6 on irq 14
Probing IDE interface ide1...
hdc: JLMS XJ-HD166S, ATAPI CD/DVD-ROM drive
hdd: _NEC DVD_RW ND-2500A, ATAPI CD/DVD-ROM drive
ide1 at 0x170-0x177,0x376 on irq 15
Probing IDE interface ide2...
ide2: Wait for ready failed before probe !
Probing IDE interface ide3...
ide3: Wait for ready failed before probe !
Probing IDE interface ide4...
ide4: Wait for ready failed before probe !
Probing IDE interface ide5...
ide5: Wait for ready failed before probe !
hda: max request size: 128KiB
hda: 160086528 sectors (81964 MB) w/7936KiB Cache, CHS=65535/16/63, UDMA(133)
hda: cache flushes supported
 hda: hda1 hda2 hda3 hda4 < hda5 hda6 >
hdb: max request size: 128KiB
hdb: 58633344 sectors (30020 MB) w/2048KiB Cache, CHS=58168/16/63, UDMA(100)
hdb: cache flushes not supported
 hdb: hdb1 hdb2 < hdb5 hdb6 hdb7 >
hdc: ATAPI 48X DVD-ROM drive, 512kB Cache, UDMA(33)
Uniform CD-ROM driver Revision: 3.20
hdd: ATAPI 40X DVD-ROM DVD-R CD-R/RW drive, 2048kB Cache, UDMA(33)
ide-floppy driver 0.99.newide
usbcore: registered new driver hiddev
usbcore: registered new driver usbhid
drivers/usb/input/hid-core.c: v2.0:USB HID core driver
mice: PS/2 mouse device common for all mice
input: AT Translated Set 2 keyboard on isa0060/serio0
input: ImExPS/2 Logitech Explorer Mouse on isa0060/serio1
md: md driver 0.90.0 MAX_MD_DEVS=256, MD_SB_DISKS=27
NET: Registered protocol family 2
IP: routing cache hash table of 1024 buckets, 56Kbytes
TCP: Hash tables configured (established 262144 bind 37449)
Initializing IPsec netlink socket
NET: Registered protocol family 1
NET: Registered protocol family 17
powernow-k8: Found 1 AMD Athlon 64 / Opteron processors (version 1.00.09b)
powernow-k8: BIOS error - no PSB
ACPI: (supports S0 S1 S3 S4 S5)
ACPI wakeup devices: 
PCI0 PS2K PS2M UAR2 UAR1 AC97 USB1 USB2 USB3 USB4 EHCI PWRB SLPB 
Freeing unused kernel memory: 164k freed
SCSI subsystem initialized
libata version 1.02 loaded.
sata_via version 0.20
ACPI: PCI interrupt 0000:00:0f.0[B] -> GSI 20 (level, low) -> IRQ 193
sata_via(0000:00:0f.0): routed to hard irq line 10
ata1: SATA max UDMA/133 cmd 0xE800 ctl 0xE402 bmdma 0xD400 irq 193
ata2: SATA max UDMA/133 cmd 0xE000 ctl 0xD802 bmdma 0xD408 irq 193
ata1: no device found (phy stat 00000000)
scsi0 : sata_via
ata2: no device found (phy stat 00000000)
scsi1 : sata_via
sata_promise version 1.00
ACPI: PCI interrupt 0000:00:08.0[A] -> GSI 18 (level, low) -> IRQ 177
sata_promise PATA port found
ata3: PATA max UDMA/133 cmd 0xFFFFFF0000004200 ctl 0xFFFFFF0000004238 bmdma 0x0 irq 177
ata4: PATA max UDMA/133 cmd 0xFFFFFF0000004280 ctl 0xFFFFFF00000042B8 bmdma 0x0 irq 177
ata5: PATA max UDMA/133 cmd 0xFFFFFF0000004300 ctl 0xFFFFFF0000004338 bmdma 0x0 irq 177
ATA: abnormal status 0x7F on port 0xFFFFFF000000421C
scsi2 : sata_promise
ATA: abnormal status 0x7F on port 0xFFFFFF000000429C
scsi3 : sata_promise
ata5: dev 0 cfg 49:2f00 82:346b 83:7f01 84:4003 85:3469 86:3c01 87:4003 88:203f
ata5: dev 0 ATA, max UDMA/100, 312581808 sectors: lba48
ata5: dev 0 configured for UDMA/100
scsi4 : sata_promise
  Vendor: ATA       Model: WDC WD1600JB-00E  Rev: 15.0
  Type:   Direct-Access                      ANSI SCSI revision: 05
SCSI device sda: 312581808 512-byte hdwr sectors (160042 MB)
SCSI device sda: drive cache: write back
 sda: sda1 sda2
Attached scsi disk sda at scsi4, channel 0, id 0, lun 0
kjournald starting.  Commit interval 5 seconds
EXT3-fs: mounted filesystem with ordered data mode.
SELinux:  Disabled at runtime.
SELinux:  Unregistering netfilter hooks
inserting floppy driver for 2.6.9-1.643.pata
Floppy drive(s): fd0 is 1.44M
FDC 0 is a post-1991 82077
ACPI: PCI interrupt 0000:00:0a.0[A] -> GSI 17 (level, low) -> IRQ 185
ACPI: PCI interrupt 0000:00:0a.0[A] -> GSI 17 (level, low) -> IRQ 185
divert: allocating divert_blk for eth0
sk98lin: Asus mainboard with buggy VPD? Correcting data.
eth0: Yukon Gigabit Ethernet 10/100/1000Base-T Adapter
      PrefPort:A  RlmtMode:Check Link State
ACPI: PCI interrupt 0000:00:11.5[C] -> GSI 22 (level, low) -> IRQ 209
PCI: Setting latency timer of device 0000:00:11.5 to 64
codec_read: codec 0 is not valid [0xfe0000]
codec_read: codec 0 is not valid [0xfe0000]
codec_read: codec 0 is not valid [0xfe0000]
codec_read: codec 0 is not valid [0xfe0000]
Linux video capture interface: v1.00
cx2388x v4l2 driver version 0.0.4 loaded
ACPI: PCI interrupt 0000:00:0d.0[A] -> GSI 18 (level, low) -> IRQ 177
cx8800[0]: found at 0000:00:0d.0, rev: 5, irq: 177, latency: 64, mmio: 0xf6000000
cx8800[0]: subsystem: 107d:6613, board: Leadtek Winfast 2000XP Expert [card=5,autodetected]
cx8800[0]: i2c register ok
cx8800[0]: Leadtek Winfast 2000 XP config: tuner=43, eeprom[0]=0x01
tuner: Ignoring new-style parameters in presence of obsolete ones
tuner: chip found at addr 0xc0 i2c-bus cx8800[0]
tuner: type set to 43 (Philips NTSC MK3 (FM1236MK3 or FM1236/F)) by cx8800[0]
cx8800[0]: i2c attach [client=Philips NTSC MK3 (FM1236MK3 or FM1236/F)]
tda9887: Ignoring new-style parameters in presence of obsolete ones
tda9885/6/7: chip found @ 0x86
cx8800[0]: i2c attach [client=tda9887]
cx8800[0]: registered device video0 [v4l2]
cx8800[0]: registered device vbi0
cx8800[0]: registered device radio0
cx8800[0]: set_audio_standard_BTSC (status: known-good)
cx8800[0]: cx88: tvaudio thread started
ACPI: PCI interrupt 0000:00:10.4[C] -> GSI 21 (level, low) -> IRQ 201
ehci_hcd 0000:00:10.4: EHCI Host Controller
ehci_hcd 0000:00:10.4: irq 201, pci mem ffffff0000006000
ehci_hcd 0000:00:10.4: new USB bus registered, assigned bus number 1
ehci_hcd 0000:00:10.4: USB 2.0 enabled, EHCI 1.00, driver 2004-May-10
hub 1-0:1.0: USB hub found
hub 1-0:1.0: 8 ports detected
USB Universal Host Controller Interface driver v2.2
ACPI: PCI interrupt 0000:00:10.0[A] -> GSI 21 (level, low) -> IRQ 201
uhci_hcd 0000:00:10.0: UHCI Host Controller
uhci_hcd 0000:00:10.0: irq 201, io base 000000000000b400
uhci_hcd 0000:00:10.0: new USB bus registered, assigned bus number 2
hub 2-0:1.0: USB hub found
hub 2-0:1.0: 2 ports detected
ACPI: PCI interrupt 0000:00:10.1[A] -> GSI 21 (level, low) -> IRQ 201
uhci_hcd 0000:00:10.1: UHCI Host Controller
uhci_hcd 0000:00:10.1: irq 201, io base 000000000000b800
uhci_hcd 0000:00:10.1: new USB bus registered, assigned bus number 3
hub 3-0:1.0: USB hub found
hub 3-0:1.0: 2 ports detected
ACPI: PCI interrupt 0000:00:10.2[B] -> GSI 21 (level, low) -> IRQ 201
uhci_hcd 0000:00:10.2: UHCI Host Controller
uhci_hcd 0000:00:10.2: irq 201, io base 000000000000c000
uhci_hcd 0000:00:10.2: new USB bus registered, assigned bus number 4
hub 4-0:1.0: USB hub found
hub 4-0:1.0: 2 ports detected
ACPI: PCI interrupt 0000:00:10.3[B] -> GSI 21 (level, low) -> IRQ 201
uhci_hcd 0000:00:10.3: UHCI Host Controller
uhci_hcd 0000:00:10.3: irq 201, io base 000000000000c400
uhci_hcd 0000:00:10.3: new USB bus registered, assigned bus number 5
hub 5-0:1.0: USB hub found
hub 5-0:1.0: 2 ports detected
ohci1394: $Rev: 1223 $ Ben Collins <bcollins@debian.org>
ACPI: PCI interrupt 0000:00:07.0[A] -> GSI 16 (level, low) -> IRQ 169
ohci1394: fw-host0: OHCI-1394 1.0 (PCI): IRQ=[169]  MMIO=[f7a00000-f7a007ff]  Max Packet=[2048]
md: Autodetecting RAID arrays.
md: autorun ...
md: ... autorun DONE.
cx8800[0]: AUD_STATUS: 0xf632 [mono/no pilot] ctl=BTSC_AUTO_STEREO
ieee1394: Host added: ID:BUS[0-00:1023]  GUID[00e018000055ac35]
ACPI: Power Button (FF) [PWRF]
ACPI: Sleep Button (CM) [SLPB]
EXT3 FS on hdb7, internal journal
device-mapper: 4.1.0-ioctl (2003-12-10) initialised: dm@uk.sistina.com
cdrom: open failed.
cdrom: open failed.
cx8800[0]: AUD_STATUS: 0xf3f2 [mono/no pilot] ctl=BTSC_AUTO_STEREO
kjournald starting.  Commit interval 5 seconds
EXT3 FS on hda6, internal journal
EXT3-fs: mounted filesystem with ordered data mode.
kjournald starting.  Commit interval 5 seconds
EXT3 FS on hda1, internal journal
EXT3-fs: mounted filesystem with ordered data mode.
Adding 1718912k swap on /dev/hdb6.  Priority:-1 extents:1
Adding 2008116k swap on /dev/hda3.  Priority:-2 extents:1

^ permalink raw reply	[flat|nested] 7+ messages in thread

* Re: Pata support on Promise controller under Fedora Core 3
  2004-10-27 16:05     ` James  C. Bevier
@ 2004-10-27 17:18       ` Ericisko
  0 siblings, 0 replies; 7+ messages in thread
From: Ericisko @ 2004-10-27 17:18 UTC (permalink / raw)
  To: James  C. Bevier; +Cc: linux-ide, Jeff Garzik

James,

you seem to have only part of the patch. First 2 ports
on Promise controller should show up as SATA, not
PATA.

You can have a look at source code on Promise web
site. Search for DualOnly, there seems to be detection
code for dual master mode. Btw. it seems that port
0x380 should be correct value but you may need to do
some controller initialization before you can use it.
I'll have a look when I get home today.

  Erik

 --- "James  C. Bevier" <jbev@jbsys.com> wrote: 
> 
> ----- Original Message ----- 
> From: "Jeff Garzik" <jgarzik@pobox.com>
> To: "Ericisko" <linux2@rogers.com>
> Cc: "James C. Bevier" <jbev@jbsys.com>;
> <linux-ide@vger.kernel.org>
> Sent: Wednesday, October 27, 2004 7:08 AM
> Subject: Re: Pata support on Promise controller
> under Fedora Core 3
> 
> 
> > Ericisko wrote:
> >> James,
> >> 
> >> you have the same controller as me (PDC20378)
> which
> >> has only 1 PATA port. PATA ports support up to 2
> >> devices per port, as opposed to SATA ports which
> >> support only 1 device per port.
> >> There is source code for 2.4 linux driver on
> Promise
> >> web site, you can have a look.
> >> Could you send your dmesg output?
> > 
> > 
> > Note that PDC2037x has a "dual master mode", where
> two PATA devices 
> > (master/slave) on the same cable can be made to
> look like two 
> > independent PATA masters, thus giving the illusion
> that there are two ports.
> > 
> > Jeff
> >
> 
> Here is the dmesg output.  The Promise controller is
> built into the ASUS mb.
> If the one port can have two drives, there must be
> some more status that
> can be read to see if two drives are present.  The
> current code does not
> seem to do anything like that.  Where can I go from
> here?
> 
> Jim> Bootdata ok (command line is ro root=/dev/hdb7)
> Linux version 2.6.9-1.643.pata (root@jbsys) (gcc
> version 3.4.2 20041017 (Red Hat 3.4.2-6)) #1 Tue Oct
> 26 13:54:53 MST 2004
> BIOS-provided physical RAM map:
>  BIOS-e820: 0000000000000000 - 000000000009fc00
> (usable)
>  BIOS-e820: 000000000009fc00 - 00000000000a0000
> (reserved)
>  BIOS-e820: 00000000000e4000 - 0000000000100000
> (reserved)
>  BIOS-e820: 0000000000100000 - 000000003ff30000
> (usable)
>  BIOS-e820: 000000003ff30000 - 000000003ff40000
> (ACPI data)
>  BIOS-e820: 000000003ff40000 - 000000003fff0000
> (ACPI NVS)
>  BIOS-e820: 000000003fff0000 - 0000000040000000
> (reserved)
>  BIOS-e820: 00000000fff80000 - 0000000100000000
> (reserved)
> No mptable found.
> On node 0 totalpages: 261936
>   DMA zone: 4096 pages, LIFO batch:1
>   Normal zone: 257840 pages, LIFO batch:16
>   HighMem zone: 0 pages, LIFO batch:1
> ACPI: RSDP (v000 ACPIAM                             
>   ) @ 0x00000000000fa8b0
> ACPI: RSDT (v001 A M I  OEMRSDT  0x08000403 MSFT
> 0x00000097) @ 0x000000003ff30000
> ACPI: FADT (v001 A M I  OEMFACP  0x08000403 MSFT
> 0x00000097) @ 0x000000003ff30200
> ACPI: MADT (v001 A M I  OEMAPIC  0x08000403 MSFT
> 0x00000097) @ 0x000000003ff30390
> ACPI: OEMB (v001 A M I  OEMBIOS  0x08000403 MSFT
> 0x00000097) @ 0x000000003ff40040
> ACPI: DSDT (v001  A0058 A0058002 0x00000002 MSFT
> 0x0100000d) @ 0x0000000000000000
> ACPI: Local APIC address 0xfee00000
> ACPI: LAPIC (acpi_id[0x01] lapic_id[0x00] enabled)
> Processor #0 15:4 APIC version 16
> ACPI: IOAPIC (id[0x01] address[0xfec00000]
> gsi_base[0])
> IOAPIC[0]: apic_id 1, version 3, address 0xfec00000,
> GSI 0-23
> ACPI: INT_SRC_OVR (bus 0 bus_irq 0 global_irq 2 dfl
> dfl)
> ACPI: IRQ0 used by override.
> ACPI: IRQ2 used by override.
> ACPI: IRQ9 used by override.
> Using ACPI (MADT) for SMP configuration information
> Checking aperture...
> CPU 0: aperture @ f8000000 size 64 MB
> Built 1 zonelists
> Kernel command line: ro root=/dev/hdb7 console=tty0
> Initializing CPU#0
> PID hash table entries: 4096 (order: 12, 131072
> bytes)
> time.c: Using 1.193182 MHz PIT timer.
> time.c: Detected 2100.101 MHz processor.
> Console: colour VGA+ 80x25
> Dentry cache hash table entries: 262144 (order: 9,
> 2097152 bytes)
> Inode-cache hash table entries: 131072 (order: 8,
> 1048576 bytes)
> Memory: 1024012k/1047744k available (2469k kernel
> code, 23012k reserved, 1311k data, 164k init)
> Calibrating delay loop... 4128.76 BogoMIPS
> (lpj=2064384)
> Security Scaffold v1.0.0 initialized
> SELinux:  Initializing.
> SELinux:  Starting in permissive mode
> There is already a security framework initialized,
> register_security failed.
> selinux_register_security:  Registering secondary
> module capability
> Capability LSM initialized as secondary
> Mount-cache hash table entries: 256 (order: 0, 4096
> bytes)
> CPU: L1 I Cache: 64K (64 bytes/line), D cache 64K
> (64 bytes/line)
> CPU: L2 Cache: 1024K (64 bytes/line)
> CPU: AMD Athlon(tm) 64 Processor 3200+ stepping 08
> Using local APIC NMI watchdog using perfctr0
> Using local APIC timer interrupts.
> Detected 13.125 MHz APIC timer.
> checking if image is initramfs... it is
> NET: Registered protocol family 16
> PCI: Using configuration type 1
> mtrr: v2.0 (20020519)
> ACPI: Subsystem revision 20040816
> ACPI: Interpreter enabled
> ACPI: Using IOAPIC for interrupt routing
> ACPI: PCI Root Bridge [PCI0] (00:00)
> PCI: Probing PCI hardware (bus 00)
> ACPI: PCI Interrupt Routing Table [\_SB_.PCI0._PRT]
> ACPI: PCI Interrupt Link [LNKA] (IRQs 3 4 5 7 10 *11
> 14 15)
> ACPI: PCI Interrupt Link [LNKB] (IRQs 3 4 5 7 *10 11
> 14 15)
> ACPI: PCI Interrupt Link [LNKC] (IRQs 3 4 *5 7 10 11
> 14 15)
> ACPI: PCI Interrupt Link [LNKD] (IRQs 3 4 5 7 10 11
> 14 15) *0, disabled.
> ACPI: PCI Interrupt Link [LNKE] (IRQs 3 4 5 7 10 11
> 14 15) *0, disabled.
> ACPI: PCI Interrupt Link [LNKF] (IRQs 3 4 5 7 10 11
> 14 15) *0, disabled.
> ACPI: PCI Interrupt Link [LNKG] (IRQs 3 4 5 7 10 11
> 14 15) *0, disabled.
> ACPI: PCI Interrupt Link [LNKH] (IRQs 3 4 5 7 10 11
> 14 15) *0, disabled.
> usbcore: registered new driver usbfs
> usbcore: registered new driver hub
> PCI: Using ACPI for IRQ routing
> ACPI: PCI interrupt 0000:00:07.0[A] -> GSI 16
> (level, low) -> IRQ 169
> ACPI: PCI interrupt 0000:00:08.0[A] -> GSI 18
> (level, low) -> IRQ 177
> ACPI: PCI interrupt 0000:00:0a.0[A] -> GSI 17
> (level, low) -> IRQ 185
> ACPI: PCI interrupt 0000:00:0d.0[A] -> GSI 18
> (level, low) -> IRQ 177
> ACPI: PCI interrupt 0000:00:0f.0[B] -> GSI 20
> (level, low) -> IRQ 193
> ACPI: PCI interrupt 0000:00:0f.1[A] -> GSI 20
> (level, low) -> IRQ 193
> ACPI: PCI interrupt 0000:00:10.0[A] -> GSI 21
> (level, low) -> IRQ 201
> ACPI: PCI interrupt 0000:00:10.1[A] -> GSI 21
> (level, low) -> IRQ 201
> ACPI: PCI interrupt 0000:00:10.2[B] -> GSI 21
> (level, low) -> IRQ 201
> ACPI: PCI interrupt 0000:00:10.3[B] -> GSI 21
> (level, low) -> IRQ 201
> ACPI: PCI interrupt 0000:00:10.4[C] -> GSI 21
> (level, low) -> IRQ 201
> ACPI: PCI interrupt 0000:00:11.5[C] -> GSI 22
> (level, low) -> IRQ 209
> ACPI: PCI interrupt 0000:01:00.0[A] -> GSI 16
> (level, low) -> IRQ 169
> agpgart: Detected AGP bridge 0
> agpgart: Maximum main memory to use for agp memory:
> 941M
> agpgart: AGP aperture is 64M @ 0xf8000000
> PCI-DMA: Disabling IOMMU.
> IA32 emulation $Id: sys_ia32.c,v 1.32 2002/03/24
> 13:02:28 ak Exp $
> audit: initializing netlink socket (disabled)
> audit(1098802611.202:0): initialized
> Total HugeTLB memory allocated, 0
> VFS: Disk quotas dquot_6.5.1
> Dquot-cache hash table entries: 512 (order 0, 4096
> bytes)
> NTFS driver 2.1.20 [Flags: R/W].
> SELinux:  Registering netfilter hooks
> Initializing Cryptographic API
> ksign: Installing public key data
> Loading keyring
> - Added public key E678DFAC3562A82
>   - key was been created 21251 seconds in future
> - User ID: Red Hat, Inc. (Kernel Module GPG key)
> PCI: Via IRQ fixup for 0000:00:10.0, from 11 to 9
> PCI: Via IRQ fixup for 0000:00:10.1, from 11 to 9
> PCI: Via IRQ fixup for 0000:00:10.2, from 10 to 9
> PCI: Via IRQ fixup for 0000:00:10.3, from 10 to 9
> pci_hotplug: PCI Hot Plug PCI Core version: 0.5
> vesafb: probe of vesafb0 failed with error -6
> ACPI: Processor [CPU1] (supports C1)
> Real Time Clock Driver v1.12
> Linux agpgart interface v0.100 (c) Dave Jones
> serio: i8042 AUX port at 0x60,0x64 irq 12
> serio: i8042 KBD port at 0x60,0x64 irq 1
> Serial: 8250/16550 driver $Revision: 1.90 $ 8 ports,
> IRQ sharing enabled
> ttyS0 at I/O 0x3f8 (irq = 4) is a 16550A
> ttyS1 at I/O 0x2f8 (irq = 3) is a 16550A
> RAMDISK driver initialized: 16 RAM disks of 16384K
> size 1024 blocksize
> divert: not allocating divert_blk for non-ethernet
> device lo
> Uniform Multi-Platform E-IDE driver Revision:
> 7.00alpha2
> ide: Assuming 33MHz system bus speed for PIO modes;
> override with idebus=xx
> VP_IDE: IDE controller at PCI slot 0000:00:0f.1
> ACPI: PCI interrupt 0000:00:0f.1[A] -> GSI 20
> (level, low) -> IRQ 193
> VP_IDE: chipset revision 6
> VP_IDE: not 100% native mode: will probe irqs later
> VP_IDE: VIA vt8237 (rev 00) IDE UDMA133 controller
> on pci0000:00:0f.1
>     ide0: BM-DMA at 0xfc00-0xfc07, BIOS settings:
> hda:DMA, hdb:DMA
>     ide1: BM-DMA at 0xfc08-0xfc0f, BIOS settings:
> hdc:DMA, hdd:DMA
> Probing IDE interface ide0...
> hda: Maxtor 6Y080P0, ATA DISK drive
> hdb: WDC WD300BB-32AUA1, ATA DISK drive
> Using cfq io scheduler
> ide0 at 0x1f0-0x1f7,0x3f6 on irq 14
> Probing IDE interface ide1...
> hdc: JLMS XJ-HD166S, ATAPI CD/DVD-ROM drive
> hdd: _NEC DVD_RW ND-2500A, ATAPI CD/DVD-ROM drive
> ide1 at 0x170-0x177,0x376 on irq 15
> Probing IDE interface ide2...
> ide2: Wait for ready failed before probe !
> Probing IDE interface ide3...
> ide3: Wait for ready failed before probe !
> Probing IDE interface ide4...
> ide4: Wait for ready failed before probe !
> Probing IDE interface ide5...
> ide5: Wait for ready failed before probe !
> hda: max request size: 128KiB
> hda: 160086528 sectors (81964 MB) w/7936KiB Cache,
> CHS=65535/16/63, UDMA(133)
> hda: cache flushes supported
>  hda: hda1 hda2 hda3 hda4 < hda5 hda6 >
> hdb: max request size: 128KiB
> hdb: 58633344 sectors (30020 MB) w/2048KiB Cache,
> CHS=58168/16/63, UDMA(100)
> hdb: cache flushes not supported
>  hdb: hdb1 hdb2 < hdb5 hdb6 hdb7 >
> hdc: ATAPI 48X DVD-ROM drive, 512kB Cache, UDMA(33)
> Uniform CD-ROM driver Revision: 3.20
> hdd: ATAPI 40X DVD-ROM DVD-R CD-R/RW drive, 2048kB
> Cache, UDMA(33)
> ide-floppy driver 0.99.newide
> usbcore: registered new driver hiddev
> usbcore: registered new driver usbhid
> drivers/usb/input/hid-core.c: v2.0:USB HID core
> driver
> mice: PS/2 mouse device common for all mice
> input: AT Translated Set 2 keyboard on
> isa0060/serio0
> input: ImExPS/2 Logitech Explorer Mouse on
> isa0060/serio1
> md: md driver 0.90.0 MAX_MD_DEVS=256, MD_SB_DISKS=27
> NET: Registered protocol family 2
> IP: routing cache hash table of 1024 buckets,
> 56Kbytes
> TCP: Hash tables configured (established 262144 bind
> 37449)
> Initializing IPsec netlink socket
> NET: Registered protocol family 1
> NET: Registered protocol family 17
> powernow-k8: Found 1 AMD Athlon 64 / Opteron
> processors (version 1.00.09b)
> powernow-k8: BIOS error - no PSB
> ACPI: (supports S0 S1 S3 S4 S5)
> ACPI wakeup devices: 
> PCI0 PS2K PS2M UAR2 UAR1 AC97 USB1 USB2 USB3 USB4
> EHCI PWRB SLPB 
> Freeing unused kernel memory: 164k freed
> SCSI subsystem initialized
> libata version 1.02 loaded.
> sata_via version 0.20
> ACPI: PCI interrupt 0000:00:0f.0[B] -> GSI 20
> (level, low) -> IRQ 193
> sata_via(0000:00:0f.0): routed to hard irq line 10
> ata1: SATA max UDMA/133 cmd 0xE800 ctl 0xE402 bmdma
> 0xD400 irq 193
> ata2: SATA max UDMA/133 cmd 0xE000 ctl 0xD802 bmdma
> 0xD408 irq 193
> ata1: no device found (phy stat 00000000)
> scsi0 : sata_via
> ata2: no device found (phy stat 00000000)
> scsi1 : sata_via
> sata_promise version 1.00
> ACPI: PCI interrupt 0000:00:08.0[A] -> GSI 18
> (level, low) -> IRQ 177
> sata_promise PATA port found
> ata3: PATA max UDMA/133 cmd 0xFFFFFF0000004200 ctl
> 0xFFFFFF0000004238 bmdma 0x0 irq 177
> ata4: PATA max UDMA/133 cmd 0xFFFFFF0000004280 ctl
> 0xFFFFFF00000042B8 bmdma 0x0 irq 177
> ata5: PATA max UDMA/133 cmd 0xFFFFFF0000004300 ctl
> 0xFFFFFF0000004338 bmdma 0x0 irq 177
> ATA: abnormal status 0x7F on port 0xFFFFFF000000421C
> scsi2 : sata_promise
> ATA: abnormal status 0x7F on port 0xFFFFFF000000429C
> scsi3 : sata_promise
> ata5: dev 0 cfg 49:2f00 82:346b 83:7f01 84:4003
> 85:3469 86:3c01 87:4003 88:203f
> ata5: dev 0 ATA, max UDMA/100, 312581808 sectors:
> lba48
> ata5: dev 0 configured for UDMA/100
> scsi4 : sata_promise
>   Vendor: ATA       Model: WDC WD1600JB-00E  Rev:
> 15.0
>   Type:   Direct-Access                      ANSI
> SCSI revision: 05
> SCSI device sda: 312581808 512-byte hdwr sectors
> (160042 MB)
> SCSI device sda: drive cache: write back
>  sda: sda1 sda2
> Attached scsi disk sda at scsi4, channel 0, id 0,
> lun 0
> kjournald starting.  Commit interval 5 seconds
> EXT3-fs: mounted filesystem with ordered data mode.
> SELinux:  Disabled at runtime.
> SELinux:  Unregistering netfilter hooks
> inserting floppy driver for 2.6.9-1.643.pata
> Floppy drive(s): fd0 is 1.44M
> FDC 0 is a post-1991 82077
> ACPI: PCI interrupt 0000:00:0a.0[A] -> GSI 17
> (level, low) -> IRQ 185
> ACPI: PCI interrupt 0000:00:0a.0[A] -> GSI 17
> (level, low) -> IRQ 185
> divert: allocating divert_blk for eth0
> sk98lin: Asus mainboard with buggy VPD? Correcting
> data.
> eth0: Yukon Gigabit Ethernet 10/100/1000Base-T
> Adapter
>       PrefPort:A  RlmtMode:Check Link State
> ACPI: PCI interrupt 0000:00:11.5[C] -> GSI 22
> (level, low) -> IRQ 209
> PCI: Setting latency timer of device 0000:00:11.5 to
> 64
> codec_read: codec 0 is not valid [0xfe0000]
> codec_read: codec 0 is not valid [0xfe0000]
> codec_read: codec 0 is not valid [0xfe0000]
> codec_read: codec 0 is not valid [0xfe0000]
> Linux video capture interface: v1.00
> cx2388x v4l2 driver version 0.0.4 loaded
> ACPI: PCI interrupt 0000:00:0d.0[A] -> GSI 18
> (level, low) -> IRQ 177
> cx8800[0]: found at 0000:00:0d.0, rev: 5, irq: 177,
> latency: 64, mmio: 0xf6000000
> cx8800[0]: subsystem: 107d:6613, board: Leadtek
> Winfast 2000XP Expert [card=5,autodetected]
> cx8800[0]: i2c register ok
> cx8800[0]: Leadtek Winfast 2000 XP config: tuner=43,
> eeprom[0]=0x01
> tuner: Ignoring new-style parameters in presence of
> obsolete ones
> tuner: chip found at addr 0xc0 i2c-bus cx8800[0]
> tuner: type set to 43 (Philips NTSC MK3 (FM1236MK3
> or FM1236/F)) by cx8800[0]
> cx8800[0]: i2c attach [client=Philips NTSC MK3
> (FM1236MK3 or FM1236/F)]
> tda9887: Ignoring new-style parameters in presence
> of obsolete ones
> tda9885/6/7: chip found @ 0x86
> cx8800[0]: i2c attach [client=tda9887]
> cx8800[0]: registered device video0 [v4l2]
> cx8800[0]: registered device vbi0
> cx8800[0]: registered device radio0
> cx8800[0]: set_audio_standard_BTSC (status:
> known-good)
> cx8800[0]: cx88: tvaudio thread started
> ACPI: PCI interrupt 0000:00:10.4[C] -> GSI 21
> (level, low) -> IRQ 201
> ehci_hcd 0000:00:10.4: EHCI Host Controller
> ehci_hcd 0000:00:10.4: irq 201, pci mem
> ffffff0000006000
> ehci_hcd 0000:00:10.4: new USB bus registered,
> assigned bus number 1
> ehci_hcd 0000:00:10.4: USB 2.0 enabled, EHCI 1.00,
> driver 2004-May-10
> hub 1-0:1.0: USB hub found
> hub 1-0:1.0: 8 ports detected
> USB Universal Host Controller Interface driver v2.2
> ACPI: PCI interrupt 0000:00:10.0[A] -> GSI 21
> (level, low) -> IRQ 201
> uhci_hcd 0000:00:10.0: UHCI Host Controller
> uhci_hcd 0000:00:10.0: irq 201, io base
> 000000000000b400
> uhci_hcd 0000:00:10.0: new USB bus registered,
> assigned bus number 2
> hub 2-0:1.0: USB hub found
> hub 2-0:1.0: 2 ports detected
> ACPI: PCI interrupt 0000:00:10.1[A] -> GSI 21
> (level, low) -> IRQ 201
> uhci_hcd 0000:00:10.1: UHCI Host Controller
> uhci_hcd 0000:00:10.1: irq 201, io base
> 000000000000b800
> uhci_hcd 0000:00:10.1: new USB bus registered,
> assigned bus number 3
> hub 3-0:1.0: USB hub found
> hub 3-0:1.0: 2 ports detected
> ACPI: PCI interrupt 0000:00:10.2[B] -> GSI 21
> (level, low) -> IRQ 201
> uhci_hcd 0000:00:10.2: UHCI Host Controller
> uhci_hcd 0000:00:10.2: irq 201, io base
> 000000000000c000
> uhci_hcd 0000:00:10.2: new USB bus registered,
> assigned bus number 4
> hub 4-0:1.0: USB hub found
> hub 4-0:1.0: 2 ports detected
> ACPI: PCI interrupt 0000:00:10.3[B] -> GSI 21
> (level, low) -> IRQ 201
> uhci_hcd 0000:00:10.3: UHCI Host Controller
> uhci_hcd 0000:00:10.3: irq 201, io base
> 000000000000c400
> uhci_hcd 0000:00:10.3: new USB bus registered,
> assigned bus number 5
> hub 5-0:1.0: USB hub found
> hub 5-0:1.0: 2 ports detected
> ohci1394: $Rev: 1223 $ Ben Collins
> <bcollins@debian.org>
> ACPI: PCI interrupt 0000:00:07.0[A] -> GSI 16
> (level, low) -> IRQ 169
> ohci1394: fw-host0: OHCI-1394 1.0 (PCI): IRQ=[169] 
> MMIO=[f7a00000-f7a007ff]  Max Packet=[2048]
> md: Autodetecting RAID arrays.
> md: autorun ...
> md: ... autorun DONE.
> cx8800[0]: AUD_STATUS: 0xf632 [mono/no pilot]
> ctl=BTSC_AUTO_STEREO
> ieee1394: Host added: ID:BUS[0-00:1023] 
> GUID[00e018000055ac35]
> ACPI: Power Button (FF) [PWRF]
> ACPI: Sleep Button (CM) [SLPB]
> EXT3 FS on hdb7, internal journal
> device-mapper: 4.1.0-ioctl (2003-12-10) initialised:
> dm@uk.sistina.com
> cdrom: open failed.
> cdrom: open failed.
> cx8800[0]: AUD_STATUS: 0xf3f2 [mono/no pilot]
> ctl=BTSC_AUTO_STEREO
> kjournald starting.  Commit interval 5 seconds
> EXT3 FS on hda6, internal journal
> EXT3-fs: mounted filesystem with ordered data mode.
> kjournald starting.  Commit interval 5 seconds
> EXT3 FS on hda1, internal journal
> EXT3-fs: mounted filesystem with ordered data mode.
> Adding 1718912k swap on /dev/hdb6.  Priority:-1
> extents:1
> Adding 2008116k swap on /dev/hda3.  Priority:-2
> extents:1
>  

^ permalink raw reply	[flat|nested] 7+ messages in thread

* Re: Pata support on Promise controller under Fedora Core 3
  2004-10-26 11:17 ` Ericisko
@ 2004-10-26 15:48   ` James  C. Bevier
  0 siblings, 0 replies; 7+ messages in thread
From: James  C. Bevier @ 2004-10-26 15:48 UTC (permalink / raw)
  To: Ericisko, Jeff Garzik; +Cc: linux-ide

Ericisko,

The disks are two identical Western Digital 160 GB drives.  They are
seen by Windows XP and were seen by the Promise driver under
Linux 2.4.  I have the BIOS set on the K8V SE Deluxe motherboard
to be non-raid disks on the Promise controller.  The first drive has
two NTFS partitions and the second has three Linux partitions.  Hda
& hdb are 80 GB drives and hdc & hdd are DVDROM & DVD Writer.
I was able to read the NTFS files and did not experience any lock-ups.
I have an Athlon64  3200+ and am only running the 64 bit version of
Fedora Core 3 RC1.

I will do some more testing to see if I can see the second drive.
Thanks for the information.

Jim

----- Original Message ----- 
From: "Ericisko" <linux2@rogers.com>
To: "James C. Bevier" <jbev@jbsys.com>; "Jeff Garzik" <jgarzik@pobox.com>
Cc: <linux-ide@vger.kernel.org>
Sent: Tuesday, October 26, 2004 4:17 AM
Subject: Re: Pata support on Promise controller under Fedora Core 3


> James,
> 
> I don't have any additional code. I quickly tested it
> on my system (PDC20378) and both drives were
> recognized.
> However, I've got hard lockup after about 1 min. It is
> with vanilla 2.6.9-rc3, smp, preempt enabled. Didn't
> have time to investigate further.
> Are your drives recognized by BIOS? Also, AFAIK PATA
> port on 378 supports only ATA (disk) drives, not ATAPI
> drives (CD/DVD). Is your second drive disk or CD/DVD?
> 
>  Erik
> 
> --- "James  C. Bevier" <jbev@jbsys.com> wrote: 
>> Jeff,
>> 
>> I cut out the attached patch from the sata_promise
>> dev patches on kernel.org.  I 
>> put it in the latest kernel in Fedora Core 3 RC1. 
>> It is version 2.6.9-1.640 
>> kernel.  It works well enough to be able to see the
>> first PATA drive on the 
>> Promise controller.  It does not see the second
>> drive.  The code only seems to 
>> work for one drive.  Could you (or Erik) provide the
>> rest of the code that will 
>> see the second drive.  If you could point me to
>> specs for the controller or give 
>> me the register offset for the last drive, I could
>> try to hack at it myself.  I 
>> really need this to work in Fedora Core 3.
>> 
>> Thanks for your help!
>> 
>> Jim Bevier 
>> 
> 
>> ATTACHMENT part 2 application/octet-stream
> name=linux-2.6.9-sata_promise.patch
> )
>

^ permalink raw reply	[flat|nested] 7+ messages in thread

* Re: Pata support on Promise controller under Fedora Core 3
  2004-10-25  4:58 James  C. Bevier
@ 2004-10-26 11:17 ` Ericisko
  2004-10-26 15:48   ` James  C. Bevier
  0 siblings, 1 reply; 7+ messages in thread
From: Ericisko @ 2004-10-26 11:17 UTC (permalink / raw)
  To: James  C. Bevier, Jeff Garzik; +Cc: linux-ide

James,

I don't have any additional code. I quickly tested it
on my system (PDC20378) and both drives were
recognized.
However, I've got hard lockup after about 1 min. It is
with vanilla 2.6.9-rc3, smp, preempt enabled. Didn't
have time to investigate further.
Are your drives recognized by BIOS? Also, AFAIK PATA
port on 378 supports only ATA (disk) drives, not ATAPI
drives (CD/DVD). Is your second drive disk or CD/DVD?

  Erik

 --- "James  C. Bevier" <jbev@jbsys.com> wrote: 
> Jeff,
> 
> I cut out the attached patch from the sata_promise
> dev patches on kernel.org.  I 
> put it in the latest kernel in Fedora Core 3 RC1. 
> It is version 2.6.9-1.640 
> kernel.  It works well enough to be able to see the
> first PATA drive on the 
> Promise controller.  It does not see the second
> drive.  The code only seems to 
> work for one drive.  Could you (or Erik) provide the
> rest of the code that will 
> see the second drive.  If you could point me to
> specs for the controller or give 
> me the register offset for the last drive, I could
> try to hack at it myself.  I 
> really need this to work in Fedora Core 3.
> 
> Thanks for your help!
> 
> Jim Bevier 
> 

> ATTACHMENT part 2 application/octet-stream
name=linux-2.6.9-sata_promise.patch
 

^ permalink raw reply	[flat|nested] 7+ messages in thread

* Pata support on Promise controller under Fedora Core 3
@ 2004-10-25  4:58 James  C. Bevier
  2004-10-26 11:17 ` Ericisko
  0 siblings, 1 reply; 7+ messages in thread
From: James  C. Bevier @ 2004-10-25  4:58 UTC (permalink / raw)
  To: Jeff Garzik; +Cc: linux-ide

[-- Attachment #1: Type: text/plain, Size: 647 bytes --]

Jeff,

I cut out the attached patch from the sata_promise dev patches on kernel.org.  I 
put it in the latest kernel in Fedora Core 3 RC1.  It is version 2.6.9-1.640 
kernel.  It works well enough to be able to see the first PATA drive on the 
Promise controller.  It does not see the second drive.  The code only seems to 
work for one drive.  Could you (or Erik) provide the rest of the code that will 
see the second drive.  If you could point me to specs for the controller or give 
me the register offset for the last drive, I could try to hack at it myself.  I 
really need this to work in Fedora Core 3.

Thanks for your help!

Jim Bevier 

[-- Attachment #2: linux-2.6.9-sata_promise.patch --]
[-- Type: application/octet-stream, Size: 3592 bytes --]

BK users:

	bk pull bk://gkernel.bkbits.net/libata-dev-2.6

This will update the following files:

 drivers/scsi/sata_promise.c  |   56 ++
 /include/linux/libata.h

<erikbenada:yahoo.ca>:
  o [libata sata_promise] support PATA ports on SATA controllers

diff -Nru a/drivers/scsi/sata_promise.c b/drivers/scsi/sata_promise.c
--- a/drivers/scsi/sata_promise.c	2004-10-18 19:10:23 -04:00
+++ b/drivers/scsi/sata_promise.c	2004-10-18 19:10:23 -04:00
@@ -79,6 +79,8 @@
 static int pdc_port_start(struct ata_port *ap);
 static void pdc_port_stop(struct ata_port *ap);
 static void pdc_phy_reset(struct ata_port *ap);
+static void pdc_pata_phy_reset(struct ata_port *ap);
+static void pdc_pata_cbl_detect(struct ata_port *ap);
 static void pdc_qc_prep(struct ata_queued_cmd *qc);
 static void pdc_tf_load_mmio(struct ata_port *ap, struct ata_taskfile *tf);
 static void pdc_exec_command_mmio(struct ata_port *ap, struct ata_taskfile *tf);
@@ -127,7 +129,7 @@
 	/* board_2037x */
 	{
 		.sht		= &pdc_sata_sht,
-		.host_flags	= ATA_FLAG_SATA | ATA_FLAG_NO_LEGACY |
+		.host_flags	= /* ATA_FLAG_SATA | */ ATA_FLAG_NO_LEGACY |
 				  ATA_FLAG_SRST | ATA_FLAG_MMIO,
 		.pio_mask	= 0x1f, /* pio0-4 */
 		.mwdma_mask	= 0x07, /* mwdma0-2 */
@@ -244,7 +246,35 @@
 static void pdc_phy_reset(struct ata_port *ap)
 {
 	pdc_reset_port(ap);
-	sata_phy_reset(ap);
+	if (ap->flags & ATA_FLAG_SATA)
+		sata_phy_reset(ap);
+	else
+		pdc_pata_phy_reset(ap);
+}
+
+static void pdc_pata_cbl_detect(struct ata_port *ap)
+{
+	u8 tmp;
+	void *mmio = (void *) ap->ioaddr.cmd_addr + PDC_CTLSTAT + 0x03;
+
+	tmp = readb(mmio);
+	
+	if (tmp & 0x01)
+	{
+		ap->cbl = ATA_CBL_PATA40;
+		ap->udma_mask &= ATA_UDMA_MASK_40C;
+	}
+	else
+		ap->cbl = ATA_CBL_PATA80;
+}
+		
+static void pdc_pata_phy_reset(struct ata_port *ap)
+{
+	pdc_pata_cbl_detect(ap);
+
+	ata_port_probe(ap);
+	
+	ata_bus_reset(ap);
 }
 
 static u32 pdc_sata_scr_read (struct ata_port *ap, unsigned int sc_reg)
@@ -547,6 +577,7 @@
 	void *mmio_base;
 	unsigned int board_idx = (unsigned int) ent->driver_data;
 	int rc;
+	u8 tmp;
 
 	if (!printed_version++)
 		printk(KERN_DEBUG DRV_NAME " version " DRV_VERSION "\n");
@@ -605,6 +636,9 @@
 	probe_ent->port[0].scr_addr = base + 0x400;
 	probe_ent->port[1].scr_addr = base + 0x500;
 
+	probe_ent->port_flags[0] = ATA_FLAG_SATA;
+	probe_ent->port_flags[1] = ATA_FLAG_SATA;
+	
 	/* notice 4-port boards */
 	switch (board_idx) {
 	case board_20319:
@@ -615,9 +649,25 @@
 
 		probe_ent->port[2].scr_addr = base + 0x600;
 		probe_ent->port[3].scr_addr = base + 0x700;
+	
+		probe_ent->port_flags[2] = ATA_FLAG_SATA;
+		probe_ent->port_flags[3] = ATA_FLAG_SATA;
 		break;
 	case board_2037x:
-       		probe_ent->n_ports = 2;
+		/* Some boards have also PATA port */
+		tmp = readb(base + PDC_FLASH_CTL+1);
+		if (!(tmp & 0x80))
+		{
+			probe_ent->n_ports = 3;
+			
+			pdc_sata_setup_port(&probe_ent->port[2], base + 0x300);
+			
+			probe_ent->port_flags[2] = ATA_FLAG_SLAVE_POSS;
+			
+			printk(KERN_INFO DRV_NAME " PATA port found\n");
+		}
+		else
+       			probe_ent->n_ports = 2;
 		break;
 	default:
 		BUG();
diff -Nru a/include/linux/libata.h b/include/linux/libata.h
--- a/include/linux/libata.h	2004-10-18 19:10:23 -04:00
+++ b/include/linux/libata.h	2004-10-18 19:10:23 -04:00
@@ -197,6 +197,7 @@
 	unsigned long		irq;
 	unsigned int		irq_flags;
 	unsigned long		host_flags;
+	unsigned long		port_flags[ATA_MAX_PORTS];
 	void __iomem		*mmio_base;
 	void			*private_data;
 };

^ permalink raw reply	[flat|nested] 7+ messages in thread

end of thread, other threads:[~2004-10-27 17:18 UTC | newest]

Thread overview: 7+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
     [not found] <006101c4baed$f3b46d80$0c01a8c0@nugget>
2004-10-27 13:58 ` Pata support on Promise controller under Fedora Core 3 Ericisko
2004-10-27 14:08   ` Jeff Garzik
2004-10-27 16:05     ` James  C. Bevier
2004-10-27 17:18       ` Ericisko
2004-10-25  4:58 James  C. Bevier
2004-10-26 11:17 ` Ericisko
2004-10-26 15:48   ` James  C. Bevier

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.