Author Topic: IDE Promise Technologies PDC20265 - any datasheet?  (Read 1308 times)

0 Members and 1 Guest are viewing this topic.

Offline legacyTopic starter

  • Super Contributor
  • ***
  • !
  • Posts: 4415
  • Country: ch
IDE Promise Technologies PDC20265 - any datasheet?
« on: October 01, 2019, 10:05:21 pm »
I am fighting against this chip; it's a PCI bus mastering ATA controller able to supports complete UDMA/100 specifications. It communicates with the PCI bus using a burst bus mastering, but I am really confused about its setup.

I have googled a lot, but I have yet found any datasheet  :-//
 

Offline MrMobodies

  • Super Contributor
  • ***
  • Posts: 1901
  • Country: gb
Re: IDE Promise Technologies PDC20265 - any datasheet?
« Reply #1 on: October 03, 2019, 08:09:20 pm »
Not sure if any of this is any help maybe you already came across them.

I found a datasheet for the PCI cards that doesn't say much and I see they go by different names too, such as Ultra/ Fastrack/Lite and TX and some use the next controller model.

https://www.drvhub.net/devices/controllers/promise

Quote
Promise FastTrak100 Controller (PDC20265)
Promise Ultra100 IDE Controller (PDC20265)
Promise FastTrak100 Controller (PDC20267)

A driver that might give some insight to how it may work and in there I see it works with the other models up.

http://courses.cs.tau.ac.il/0368-2162/orish/src/drivers/ide/pci/pdc202xx_old.c


An article about it and the specifications:
http://ixbtlabs.com/articles/u100/index.html

Quote
By Kiril Kochetkov

Promise FastTrak100

The characteristics:

Supported devices: Ultra ATA/100, Ultra ATA/33, EIDE
Maximum quantity of devices is 4
The bus: PCI
Maximum transfer rate: peak 133 MBytes per second PCI 2.1 32 bit/33 MHz
The requirements IRQ: one interruption on the device, support IRQ sharing
The requirements UMA: 32 KBytes in the area 0xC000-0xEFFF
Supported modes: Ultra DMA 5/4/3/2/1, PIO 4/3/2, DMA 2/1/0
Possibilities of BIOS controller: autodetection and disks configuration, the possibility of loading from any array
RAID level: RAID 0 (striping, 1-4 drives), RAID 1 (mirroring, 2 drives), RAID 1 + spare (3 drives), RAID 0+1 (4 drives only), JBOD (spanning, 1-4 drives)
Support of operation systems: a DOS / Windows 3.x, Windows 95/98, Windows NT 3.5/4.x, Windows2000
Utilities: FastBuild for automatic RAID configuration; FastCheck for arrays and disks condition monitoring
Cable in the package: two 80-conductor/40-pin IDE
The recommended price: $124
The completeness is similar to Ultra100: the
 

Offline legacyTopic starter

  • Super Contributor
  • ***
  • !
  • Posts: 4415
  • Country: ch
Re: IDE Promise Technologies PDC20265 - any datasheet?
« Reply #2 on: October 03, 2019, 11:42:08 pm »
Thanks so much!

This chip is causing me A LOT of troubles with the Linux kernel. I am on kernel 4.11, git bisecting back to previous versions, because it doesn't respect the PCI spec concerning the possibility to reprogram BAR.

Code: [Select]
pci 0008:00:04.0: BAR 5: pci_size=0, skipped -> cannot be programmed
pci 0008:00:04.0: ugly legacy mode stuff, skipped

I have already rewritten from scratch the support for u-boot-2019, pusthing the driver into a "memory mapped" model and, without touching the defailt setup of its BARs, it works (slowly but it works), while on Linux ... well, perhaps I'd better re implement it as "memory" mapped device rather than IO, this because forcing quirks on fixed memory addresses is simpler than forcing IO fixed address.

I'd really like to know if there is a better way, and the datasheet might tell it.

I will check it out tomorrow. Thank you again  :D
« Last Edit: October 07, 2019, 09:35:13 am by legacy »
 

Offline legacyTopic starter

  • Super Contributor
  • ***
  • !
  • Posts: 4415
  • Country: ch
Re: IDE Promise Technologies PDC20265 - any datasheet?
« Reply #3 on: October 05, 2019, 03:24:09 pm »
Code: [Select]
    arch/powerpc/kernel/pci-common.pci_process_bridge_OF_ranges
    {
pci: host bridge /plb/pci@ec000000 (primary) ranges:
 MEM 0x0000000080000000..0x000000009fffffff -> 0x0000000080000000
  IO 0x00000000b0000000..0x00000000b000ffff -> 0x0000000000000000
         ( value ) range.size=0x00010000
         ( value ) range.cpu_addr=0xb0000000
         ( value ) range.size=0x00010000
    }
4xx PCI DMA offset set to 0x00000000
4xx PCI DMA window base to 0x0000000000000000
DMA window size 0x0000000080000000
pci: Probing PCI hardware
PCI host bridge to bus 0008:00
pci_bus 0008:00: root bus resource [io  0x0000-0xffff]
pci_bus 0008:00: root bus resource [mem 0x80000000-0x9fffffff]
pci_bus 0008:00: root bus resource [bus 00-ff]
pci: dev[1014:0156] type 00 class 0x060000 (drivers/pci/probe)
    arch/powerpc/kernel/pci-common.pcibios_fixup_resources
    {
    }
PCI: Hiding 4xx host bridge resources 0008:00:00.0
pci: dev[1033:0035] type 00 class 0x0c0310 (drivers/pci/probe)
    arch/powerpc/kernel/pci-common.pcibios_fixup_resources
    {
    }
pci: dev[1033:00e0] type 00 class 0x0c0320 (drivers/pci/probe)
    arch/powerpc/kernel/pci-common.pcibios_fixup_resources
    {
    }
pci: dev[1011:0024] type 01 class 0x060400 (drivers/pci/probe)
    arch/powerpc/kernel/pci-common.pcibios_fixup_resources
    {
    }
pci: dev[105a:0d30] type 00 class 0x01018a (drivers/pci/probe)
pci 0008:00:04.0: [Firmware Bug]: reg 0x10: invalid BAR (can't size)
pci 0008:00:04.0: [Firmware Bug]: reg 0x14: invalid BAR (can't size)
pci 0008:00:04.0: [Firmware Bug]: reg 0x18: invalid BAR (can't size)
pci 0008:00:04.0: [Firmware Bug]: reg 0x1c: invalid BAR (can't size)
pci: ugly legacy mode stuff, skipped (drivers/pci/probe)
    arch/powerpc/kernel/pci-common.pcibios_fixup_resources
    {
    }
    arch/powerpc/kernel/pci-common.fixup_pdc20265_pci32
    {
         ( value ) dev->resource[0].start=0x00000000
         ( value ) dev->resource[0].end=0x00000000
         ( value ) dev->resource[0].flags=0x00000000
         ( value ) dev->resource[1].start=0x00000000
         ( value ) dev->resource[1].end=0x00000000
         ( value ) dev->resource[1].flags=0x00000000
    }
    drivers/pci/quirks.quirk_promise_20265_ide
    {
         ( value ) flags=0x00000000
    }
pci 0008:00:00.0: of_irq_parse_pci: failed with rc=-22
pci: dev[1011:0009] type 00 class 0x020000 (drivers/pci/probe)
    arch/powerpc/kernel/pci-common.pcibios_fixup_resources
    {
    }
pci: dev[1011:0009] type 00 class 0x020000 (drivers/pci/probe)
    arch/powerpc/kernel/pci-common.pcibios_fixup_resources
    {
    }
pci 0008:00:03.0: PCI bridge to [bus 01]
pci 0008:00:03.0: BAR 8: assigned [mem 0x80000000-0x800fffff]
pci 0008:00:04.0: BAR 5: assigned [mem 0x80100000-0x8011ffff]
pci 0008:00:04.0: BAR 6: assigned [mem 0x80120000-0x80123fff pref]
pci 0008:00:02.0: BAR 0: assigned [mem 0x80124000-0x80124fff]
pci 0008:00:03.0: BAR 7: assigned [io  0x1000-0x1fff]
pci 0008:00:02.1: BAR 0: assigned [mem 0x80125000-0x801250ff]
pci 0008:00:04.0: BAR 4: assigned [io  0x2000-0x203f]
pci 0008:01:04.0: BAR 6: assigned [mem 0x80000000-0x8003ffff pref]
pci 0008:01:05.0: BAR 6: assigned [mem 0x80040000-0x8007ffff pref]
pci 0008:01:04.0: BAR 0: assigned [io  0x1000-0x107f]
pci 0008:01:04.0: BAR 1: assigned [mem 0x80080000-0x8008007f]
pci 0008:01:05.0: BAR 0: assigned [io  0x1080-0x10ff]
pci 0008:01:05.0: BAR 1: assigned [mem 0x80080080-0x800800ff]
pci 0008:00:03.0: PCI bridge to [bus 01]
pci 0008:00:03.0:   bridge window [io  0x1000-0x1fff]
pci 0008:00:03.0:   bridge window [mem 0x80000000-0x800fffff]
SCSI subsystem initialized
usbcore: registered new interface driver usbfs
usbcore: registered new interface driver hub
usbcore: registered new device driver usb
clocksource: Switched to clocksource timebase
NET: Registered protocol family 2
TCP established hash table entries: 1024 (order: 0, 4096 bytes)
TCP bind hash table entries: 1024 (order: 0, 4096 bytes)
TCP: Hash tables configured (established 1024 bind 1024)
UDP hash table entries: 256 (order: 0, 4096 bytes)
UDP-Lite hash table entries: 256 (order: 0, 4096 bytes)
NET: Registered protocol family 1
RPC: Registered named UNIX socket transport module.
RPC: Registered udp transport module.
RPC: Registered tcp transport module.
RPC: Registered tcp NFSv4.1 backchannel transport module.
pci 0008:00:02.0: enabling device (0004 -> 0006)
pci 0008:00:02.1: enabling device (0004 -> 0006)
OF_RTC: /plb/ebc/nvram@1,0 is a rtc-ds1742 @ 0xf0000000-0xf0001fff
workingset: timestamp_bits=30 max_order=14 bucket_order=0
Block layer SCSI generic (bsg) driver version 0.4 loaded (major 254)
io scheduler noop registered
io scheduler deadline registered (default)
io scheduler cfq registered
io scheduler mq-deadline registered
Serial: 8250/16550 driver, 1 ports, IRQ sharing enabled
console [ttyS0] disabled
serial8250.0: ttyS0 at MMIO 0xef600300 (irq = 16, base_baud = 694375) is a 16550A
console [ttyS0] enabled
loop: module loaded
Loading iSCSI transport class v2.0-870.
iscsi: registered transport (tcp)
pATA_PROMISE_PDC20265 0008:00:04.0: enabling device (0005 -> 0007)
pci: drivers/ata/libata-sf.addr=0
    pATA_PROMISE_PDC20265 0008:00:04.0
    {
         ( value ) drivers/ata/libata-sf.port0 is disabled
         ( value ) drivers/ata/libata-sf.port1 is disabled
         ( value ) drivers/ata/libata-sf has no available native ports
    }


So, it seems we have a BIG problem with this chip  :palm:


 


Share me

Digg  Facebook  SlashDot  Delicious  Technorati  Twitter  Google  Yahoo
Smf