IDE Promise Technologies PDC20265 - any datasheet? - Page 1
Forum section: electronics / general

author: legacy
author_rank: Super Contributor
timestamp: October 01, 2019, 10:05:21 pm
content: 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

author: MrMobodies
author_rank: Super Contributor
timestamp: October 03, 2019, 08:09:20 pm
content: 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/promiseQuoteA 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.cAn article about it and the specifications:http://ixbtlabs.com/articles/u100/index.htmlQuote

author: legacy
author_rank: Super Contributor
timestamp: October 03, 2019, 11:42:08 pm
content: 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:pci 0008:00:04.0: BAR 5: pci_size=0, skipped -> cannot be programmedpci 0008:00:04.0: ugly legacy mode stuff, skippedI 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

author: legacy
author_rank: Super Contributor
timestamp: October 05, 2019, 03:24:09 pm
content: Code:arch/powerpc/kernel/pci-common.pci_process_bridge_OF_ranges{pci: host bridge /plb/pci@ec000000 (primary) ranges:MEM 0x0000000080000000..0x000000009fffffff -> 0x0000000080000000IO 0x00000000b0000000..0x00000000b000ffff -> 0x0000000000000000( value ) range.size=0x00010000( value ) range.cpu_addr=0xb0000000( value ) range.size=0x00010000}4xx PCI DMA offset set to 0x000000004xx PCI DMA window base to 0x0000000000000000DMA window size 0x0000000080000000pci: Probing PCI hardwarePCI host bridge to bus 0008:00pci_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.0pci: 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.start=0x00000000( value ) dev->resource.end=0x00000000( value ) dev->resource.flags=0x00000000( value ) dev->resource.start=0x00000000( value ) dev->resource.end=0x00000000( value ) dev->resource.flags=0x00000000}drivers/pci/quirks.quirk_promise_20265_ide{( value ) flags=0x00000000}pci 0008:00:00.0: of_irq_parse_pci: failed with rc=-22pci: 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 initializedusbcore: registered new interface driver usbfsusbcore: registered new interface driver hubusbcore: registered new device driver usbclocksource: Switched to clocksource timebaseNET: Registered protocol family 2TCP 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 1RPC: 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-0xf0001fffworkingset: timestamp_bits=30 max_order=14 bucket_order=0Block layer SCSI generic (bsg) driver version 0.4 loaded (major 254)io scheduler noop registeredio scheduler deadline registered (default)io scheduler cfq registeredio scheduler mq-deadline registeredSerial: 8250/16550 driver, 1 ports, IRQ sharing enabledconsole  disabledserial8250.0: ttyS0 at MMIO 0xef600300 (irq = 16, base_baud = 694375) is a 16550Aconsole  enabledloop: module loadedLoading 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=0pATA_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