Opened 17 years ago

Closed 12 years ago

#226 closed defect (wontfix)

Implement PCIWRITE in ACPI 3.x

Reported by: Chuck McKinnis 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 17 years ago.
acpi223test-Acer-info2.zip (98.9 KB ) - added by yoda 17 years ago.
acpi223test-Acer-info3.zip (99.4 KB ) - added by yoda 17 years ago.
pci-write-logs.zip (12.9 KB ) - added by Chuck McKinnis 17 years ago.
acpi-07042008.zip (17.0 KB ) - added by Chuck McKinnis 17 years ago.

Download all attachments as: .zip

Change History (25)

comment:1 by yoda, 17 years ago

Cc: yoda added
Keywords: PCIWRITE added
Milestone: eCS 2.0
Priority: majorblocker

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

by yoda, 17 years ago

Attachment: acpi223test-Acer-info1.zip added

by yoda, 17 years ago

Attachment: acpi223test-Acer-info2.zip added

by yoda, 17 years ago

Attachment: acpi223test-Acer-info3.zip added

comment:2 by Chuck McKinnis, 17 years ago

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

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

in reply to:  2 comment:3 by yoda, 17 years ago

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 by Chuck McKinnis, 17 years ago

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 by Chuck McKinnis, 17 years ago

Resolution: fixed
Status: newclosed

e-co:

OK, special build seems working.

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

comment:6 by Chuck McKinnis, 17 years ago

Resolution: fixed
Status: closedreopened

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

by Chuck McKinnis, 17 years ago

Attachment: pci-write-logs.zip added

by Chuck McKinnis, 17 years ago

Attachment: acpi-07042008.zip added

comment:7 by Chuck McKinnis, 17 years ago

e-co:

Yoda confirms: PCIWRITE doesn't work with UNI krnl

comment:8 by Steven Levine, 17 years ago

Milestone: eCS 2.0Release version 3.11

comment:9 by Chuck McKinnis, 17 years ago

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 by pasha, 16 years ago

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

comment:11 by ecsnl, 16 years ago

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 by eco, 16 years ago

e-co:

PCIWRITE doesn't work on UNI kernel

comment:13 by pasha, 16 years ago

1.Where is tester?

  1. As I remember now only SMP kernel?

comment:14 by eco, 16 years ago

Resolution: fixed
Status: reopenedclosed

e-co:

Yes.. SMP kernel is default now.

Yes, user confirmed that PCIWRITE works.

comment:15 by eco, 16 years ago

Resolution: fixed
Status: closedreopened

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 by Steven Levine, 16 years ago

Milestone: Release version 3.15Release version 3.16
Owner: pasha removed
Status: reopenednew

comment:17 by Steven Levine, 16 years ago

Milestone: Release version 3.16Release version 3.15

comment:18 by yoda, 16 years ago

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 by pasha, 16 years ago

Owner: pasha removed

comment:20 by David Azarewicz, 12 years ago

Resolution: wontfix
Status: newclosed

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.