Opened 10 years ago

Closed 5 years ago

#226 closed defect (wontfix)

Implement PCIWRITE in ACPI 3.x

Reported by: guest Owned by:
Priority: blocker Milestone: Release version 3.19
Component: ACPI PSD Version: 3.08
Keywords: PCIWRITE Cc: yoda

Description

e-co:

Two (or more) users need this feature to activate WiFi? adapters.

Experiments with ACPI 2.22+ (not released) which includes PCIWRITE, give good results, wifi adapter becomes visible for the operating system:

PCIWRITE 3:0:0:0x4 0x00100006 PCIWRITE 3:0:0:0x10 0xB0200000

WRND322$ WRAPPER for bus: 3 slot: 0 Vendor: 0x8086 Device: 0x4222.

WRND322$ load SYS: "NETW3X32.SYS" length: 1783936 CRC: 0x0ce2 / 0x1005. WRND322$ load INF: "NETW3X32.REG" length: 1840. WRND322$ WRAPPER hardware init successfull MAC : 001302:20C324. WRND32$ WRAPPER ErrorLog? 0x4005000b.

Attachments (5)

acpi223test-Acer-info1.zip (42.7 KB) - added by yoda 10 years ago.
acpi223test-Acer-info2.zip (98.9 KB) - added by yoda 10 years ago.
acpi223test-Acer-info3.zip (99.4 KB) - added by yoda 10 years ago.
pci-write-logs.zip (12.9 KB) - added by guest 10 years ago.
acpi-07042008.zip (17.0 KB) - added by guest 10 years ago.

Download all attachments as: .zip

Change History (25)

comment:1 Changed 10 years ago by yoda

  • Cc yoda added
  • Keywords PCIWRITE added
  • Milestone set to eCS 2.0
  • Priority changed from major to blocker

PCIWRITE would indeed be nice to get back, as it seems useful to track problems and do some crazy testing :-)

However, lets not forget, that the real problem (In my case) is, that the ACPI driver destroys some of the data in PCI config space. The data, as shown in log1 is how BIOS initializes it, when ACPI driver is not loaded. The data in log2 shows how PCI config space is now changed -for several devices- after ACPI driver is loaded. The data in log3 shows how we changed it using PCIWRITE. With these changes, the 4222 WiFi? device is now working together with ACPI in APIC mode.

Logs attached.

Yoda

Changed 10 years ago by yoda

Changed 10 years ago by yoda

Changed 10 years ago by yoda

comment:2 follow-up: Changed 10 years ago by mckinnis

Note that this adapter is used on some Thinkpads as well.

Intel 3945 a/b/g [8086:4222]

comment:3 in reply to: ↑ 2 Changed 10 years ago by yoda

Replying to mckinnis:

Note that this adapter is used on some Thinkpads as well.

Intel 3945 a/b/g 8086:4222

Yes, many laptops use this device, but the problem is not related specific to this device. I have heard of people using this device with success, and I have heard of people using other types of devices with same problem as here (PCI config space mangled - device not working together with ACPI loaded).

It is _not_ a 8086:4222 specific issue.

Adding PCIWRITE code to ACPI driver is a tool for developers and superusers to test and see how to fix things.

The real goal is of course to figure out, why a perfect working PCI config space gets changed to a not useful solution.

comment:4 Changed 10 years ago by guest

From froloff

I think it will be better to keep this code in ACPI snooper, removing the rest code, which now part of ACPI.PSD, so users, which doesn't need this future, will be safe.

comment:5 Changed 10 years ago by guest

  • Resolution set to fixed
  • Status changed from new to closed

e-co:

OK, special build seems working.

Added info to ACPI docs (troubleshooting, acpi.cfg)

comment:6 Changed 10 years ago by guest

  • Resolution fixed deleted
  • Status changed from closed to reopened

I tested with ACPI06042008.ZIP and ACPI07042008.ZIP ACPI builds, none worked.

Changed 10 years ago by guest

Changed 10 years ago by guest

comment:7 Changed 10 years ago by guest

e-co:

Yoda confirms: PCIWRITE doesn't work with UNI krnl

comment:8 Changed 10 years ago by stevenhl

  • Milestone changed from eCS 2.0 to Release version 3.11

comment:9 Changed 10 years ago by guest

e-co

There is PCIWRITE for SMP. Does user need PCIWRITE for UNI?

pro and contra

+ User boots to UNI for recover purposes.

+ PCIWRITE allows use Acer notebooks, (it's impossible to fix the tables)

+ write to pci config space may be useful for other purposes

  • it's difficult to adjust parameters for PCIWRITE
  • if recovery purpose then no need in ACPI(?)

comment:10 Changed 9 years ago by pasha

PCIWRITE in acpi.cfg, ticket is open. Very good for looking every day dummy ticket

comment:11 Changed 9 years ago by ecsnl

Well it should be tested before the ticket is closed. Any of the people that have such a failing system reading this ticket ?

comment:12 Changed 9 years ago by eco

e-co:

PCIWRITE doesn't work on UNI kernel

comment:13 Changed 9 years ago by pasha

1.Where is tester?

  1. As I remember now only SMP kernel?

comment:14 Changed 9 years ago by eco

  • Resolution set to fixed
  • Status changed from reopened to closed

e-co:

Yes.. SMP kernel is default now.

Yes, user confirmed that PCIWRITE works.

comment:15 Changed 9 years ago by eco

  • Resolution fixed deleted
  • Status changed from closed to reopened

e-co:

Yoda:

Ticket was created because PCIWRITE didn't work in UNI kernel. Is UNI kernel now suddanly UNSUPPORTED by eCOmStation ? BTW: the latest 3.14 testcase drivers doesn't work with PCIWRITE on SMP kernel either. That was reported to Pasha on IRC 1-2 months ago - and he noticed the (new!) problems - just never fixed them .. .. and latest still doesn't.

comment:16 Changed 9 years ago by stevenhl

  • Milestone changed from Release version 3.15 to Release version 3.16
  • Owner pasha deleted
  • Status changed from reopened to new

comment:17 Changed 9 years ago by stevenhl

  • Milestone changed from Release version 3.16 to Release version 3.15

comment:18 Changed 9 years ago by yoda

  • Owner set to pasha

PCIWRITE seems to work in todays testbuild (3.15pre). I have only tested it with SMP (actually OS/4) kernel so far.

It is needed for all kernels, and earlier it didn't work for UNI kernel. Please test this feature for all kernels before closing ticket.

comment:19 Changed 9 years ago by pasha

  • Owner pasha deleted

comment:20 Changed 5 years ago by dazarewicz

  • Resolution set to wontfix
  • Status changed from new to closed

It is not appropriate nor necessary to put a user driven PCI write function in the PSD. The proper place to configure the PCI config space for an adapter is in the device driver for that adapter. If you think you need manual control of some of the PCI config registers, you can use one of the already existing tools for doing that. I know of two but there are probably others: <​http://kannegieser.net/veit/quelle/wpcicfg.arj> and <​http://88watts.net/download/pcicfgwr-0.01.zip>. The latter has better documentation and is easier to use.

Note: See TracTickets for help on using tickets.