[Linux-ia64] Two PCI Hotplug Drivers for 2.5

From: Lee, Jung-Ik <jung-ik.lee_at_intel.com>
Date: 2002-10-23 09:28:14
Hi Greg,

Please find the attached two PCI hotplug drivers for 2.5.

 intcphp: New Intel's PHP driver for CPQ or equivalent Intel
	    controllers for IA32/IA64, ACPI/legacy platforms.
	    This driver is needed for IA64 servers (Lion,
	    Tiger, etc), and has been verified on 2.5.39
 acpiphp: ACPI based PHP driver updated to support CAL(*).
	    ACPI based ctrl/slot operations are abstracted to
	    CAL module. This has been verified on 2.5.39 and
	    Feature/functionality remain the same. 
	    Patch against Tak's 2.5.39 patch is included.

(*) CAL is a Controller Abstraction Layer that we came up to provide a
convenient and uniform interface to different types of hotplug controllers.
CAL abstracts details of individual HP controller/slot operations and also
provides flexibility of binding different CAL modules to single php driver
core. Both intcphp driver and acpiphp driver support CAL interface.

The reason why we separated slot/controller operations(event management) as
CAL is to make most of Common hotplug driver components not only for Hotplug
PCI driver but also for Hotplug-Everything, required for Atlas project, and
other server platforms.
For Hotplug-everything - Hotplug-PCI, IO-Node, and memory, etc.-, ACPI based
Resource Management and Event management are key common components.

To design an ACPI based PCI HP driver, we need a combination of the two
common Hotplug-Everything components and PCI HP driver core.
	1. ACPI based PHPRM(Resource Management/configuration)
	2. Event Management(ACPI based or OEM ctrl based CAL)
	3. PHP driver core: usage model of PHP

For Hotplug-Others, #1, and #2 should be the same and #3 will be replaced
with Hotplug-Other driver core.

This release is the first step to achieve the goal of the Common HotPlug
architecture while minimizing affects on existing PHP driver features and
functionalities. Current status of the drivers is: 
  + Both conform to CAL.
  + hotplug_ops routines are identical.
  + Functionality of Resource managements(PHPRM) are the
    same and soon will share phprm_acpi.
  + Both will use common php core.

The ultimate difference between acpiphp driver and intcphp driver,
therefore, will be the CAL implementation only. I.e., acpiphp will use ACPI
based event management for controller/slot operations thru CAL interface,
while intcphp can use either it's own HPC controller based CAL or acpiphp's
ACPI based event management CAL.

We've tested two drivers with 2.5.39/IA64. This should also apply to 2.5.41
and later. 2.4 backport will be available later as needed.
Please apply.

	Jung-Ik Lee/Intel,
	Takayoshi Kochi/NEC,
	Tony Luck/Intel

LIST of attached:
1.  arch_ia64_2539.diff:
	Fix for PCI bridge cards. Accepted by David Mosberger.
2.  drivers_acpi_2539.diff:
	Fix for slot configuration. Accepted by Andrew Grover.
3.  hotplug_2539_patch.diff.gz:
	Patch against 2.5.39 + acpiphp 2.5.39 patch

 Config.help               |   10 
 Config.in                 |    1 
 Makefile                  |   22 

 phpcal.h                  |  204 +++
 phpdvr.h                  |  490 +++++++

 acpiphp.h                 |   50 
 acpiphp_core.c            |  207 +--
 acpiphp_glue.c            |  449 ++----
 acpiphp_pci.c             |   48 
 acpiphp_res.c             |   46 
 phpcal_acpi/Makefile      |   23 
 phpcal_acpi/acpiphp_cal.c |  336 +++++
 phpcal_acpi/acpiphp_cal.h |   86 +

 intcphp_core.c            |  859 +++++++++++++
 intcphp_ctrl.c            | 1916 +++++++++++++++++++++++++++++
 intcphp_pci.c             | 1295 ++++++++++++++++++++
 intcphp_proc.c            |  212 +++
 phpcal_intc/Makefile      |   23 
 phpcal_intc/intcphp_cal.c | 2260 +++++++++++++++++++++++++++++++++++
 phpcal_intc/intcphp_cal.h |  158 ++

 phprm.h                   |   70 +
 phprm_acpi.c              | 2951
 phprm_acpi.h              |  152 ++
 23 files changed, 11359 insertions(+), 509 deletions(-)

The following files are excluded for this release and will be available
later as needed.
	phprm_legacy.[ch] for non-ACPI platforms, 
	intc_isa_ctrl.[ch] for ISA based PHP controller.

Received on Tue Oct 22 16:28:31 2002

This archive was generated by hypermail 2.1.8 : 2005-08-02 09:20:10 EST