[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

FW: HOT Plug and Expansion ROMs





The "HOT PLUG' proposal excludes the possibility of using Expansion ROMS for Adapter initialization. This seems to be a retrograde step because:

a) There are many cases where generations of an adapter might be register compatible to the HOST driver yet require different initialization procedures. (Expansion ROM initialization is specific to the Hardware the ROM resides on.)

b) It does not seem to be in the spirit of "Hot Plugging" to require that a user replaces an "old" generation Adapter with the same "old" generation or figure out that some different driver has to be dynamically loaded.

I guess the objection to Expansion ROM initialization is the assumption that it will be X86 Real Mode "classic BIOS" code.  However, PCI 2.1- 3.6.1  has the provision for the execution of F-Code (interpreted code).  This code can be run by the operating system at Hot Plug insertion time. 

The benefits are:

a)The F-code interpreter can be written by the OS vendor who has specific knowledge of the internal interfaces required and the platform it is running on. Thus it only has to be written once and maintained by one organization.

b) The F-Code for the device is written by the Adapter Vendor who has specific knowledge of his hardware. It only has to be written once for any platform.

c) It reduces the support nightmare of users inserting nearly identical Adapters into systems and then finding that the installed drive is incorrect or "nearly works".

We suggest that the spec be modified to read something like:

Expansion ROM initialization will only be entered in a HOT Plug initialization process if in one of the ROM Images defined in 
PCI 2.1 - 3.6.1 indicates that it is Hot Plug Compatible. Hot Plug Compatibility could be indicated as follows:

The Expansion ROM Header Format is as defined in PCI Bus Binding to IEEE Std 1275-1994 Section 9  except that The Code Type in the PCI Data Structure PCI Spec 6.3.1.2 has a value of 2. This value means that the Firmware code is in Fcode and is Hot Plug Aware.

We feel that this is an important requirement to the "Hot Plug" proposal and will make the implementation easier to for users to adopt.

Any Comments ?

.

¨—