From mboxrd@z Thu Jan 1 00:00:00 1970 From: "KOCHI, Takayoshi" Date: Wed, 24 Jul 2002 04:30:59 +0000 Subject: Re: [Linux-ia64] kernel update (relative to v2.4.18) MIME-Version: 1 Content-Type: multipart/mixed; boundary="------_3D3E1C8742C701025438_MULTIPART_MIXED_" Message-Id: List-Id: References: In-Reply-To: To: linux-ia64@vger.kernel.org --------_3D3E1C8742C701025438_MULTIPART_MIXED_ Content-Type: text/plain; charset="US-ASCII" Content-Transfer-Encoding: 7bit Hi All, Here's a port of the ACPI PCI hotplug driver I posted to Greg K-H last week. This patch should apply against 2.4.18 + david's 020722 patch. I tested this on McKinley SDV. But this may not work depending on firmware version. acpi/acpi_ksyms.c | 1 acpi/events/evrgnini.c | 60 + hotplug/Config.in | 1 hotplug/Makefile | 17 hotplug/acpiphp.h | 322 ++++++++++ hotplug/acpiphp_core.c | 470 +++++++++++++++ hotplug/acpiphp_glue.c | 1514 +++++++++++++++++++++++++++++++++++++++++++++++++ hotplug/acpiphp_pci.c | 763 ++++++++++++++++++++++++ hotplug/acpiphp_res.c | 708 ++++++++++++++++++++++ pci/names.c | 10 10 files changed, 3859 insertions(+), 7 deletions(-) Although the patch to acpi_ksyms.c makes `acpi_walk_namespace' exported, you will fail to resolve `pci_pin_to_vector' (which is in iosapic.c) for modules. So please compile in ACPI PCI hotplug statically. This ACPI PCI hotplug driver implements minimal functionality and the status is experimental. Please do not use for production purpose (but patches to leverage it to production level are welcome:) This driver does not implement handling of PCI-to-PCI bridge on a card (such as multi-port ethernet cards) yet. So please test it with non PCI-to-PCI bridge cards (multi-function cards are ok). How to use: First of all, after booting the kernel, you will have to mount `pcihpfs' to somewhere. # mount -t pcihpfs none /mnt/somewhere Then you can find several ACPIxx (xx is a number) directories under the mountpoint. If you can't find any directory under it, your platform doesn't support PCI hotplug or it's my bug:) Probably you can find a tab, which is called "MRL" (manually-operated retension latch) and green/amber leds for each PCI slot. You can turn off a PCI card by doing # echo 0 > /mnt/somewhere/ACPIxx/power Or, if your platform have a push-button near the slot, pushing it may initiate hot-remove process. Opening an MRL means immediate shutdown of power supply and not recommended. Typically, inserting a card and closing MRL will initiate hot-add process. If it's successfully added to the system, the green LED will be on, otherwise amber LED will be on. And then, the hotplug subsystem will bind the inserted device to an apropriate driver or run /sbin/hotplug. Even if there's no driver for the device, at least it's visible through /proc/pci proc/bus/pci/xx/yy. There's a GUI program to control PCI hotplug. You can find at http://www.kroah.com/linux/hotplug/ But I haven't tested yet... Caveats: If your PCI device is bound to its driver and it's not hotplug-aware, hot-removal process may fail. For hotplugging, a driver should support new PCI driver interface (struct pci_driver). For related information, see http://www.uwsg.indiana.edu/hypermail/linux/kernel/0207.1/1078.html If your card's driver don't call pci_enable_device() at startup, your card may not operate correctly. Because I/O port and memory- mapped I/O space access is not enabled after PCI hotplug, PCI device drivers are responsible for enabling them. (For example, drivers/net/acenic.c don't call pci_enable_device() at startup, but enables by itself...) Related sites: SourceForge PCI hotplug for Linux project http://sourceforge.net/projects/pcihpd If there are problems (perhaps many), please report to me / pcihpd-discuss@lists.sourceforge.net, with full dmesg. If you don't see any legal problem, attaching /proc/acpi/dsdt is very helpful. On Tue, 23 Jul 2002 11:08:42 -0700 "KOCHI, Takayoshi" wrote: > For those who would like to play with PCI hotplug with ACPI, > I'll post patches necessary for the latest 2.4.18 patch later on > today. Thanks, -- KOCHI, Takayoshi --------_3D3E1C8742C701025438_MULTIPART_MIXED_ Content-Type: application/octet-stream; name="acpiphp-ia64-0722.diff.gz" Content-Disposition: attachment; filename="acpiphp-ia64-0722.diff.gz" Content-Transfer-Encoding: base64 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 XIPns1wlmN1r3d3/A2OlDZ4BmAEA --------_3D3E1C8742C701025438_MULTIPART_MIXED_--