Patent ID: 7284084

Claim:
A computer-implemented method for configuring and enabling multiple peripheral devices to participate in booting, such that a quantity of bootable peripheral devices is not limited by an amount of computer system memory that is dedicated to storing executable boot code for the multiple peripheral devices, the computer-implemented method comprising: inserting an Over Commit Read Only Memory (ROM) scan header into a boot ROM in an add-in device adapter, wherein the Over Commit ROM scan header identifies the boot ROM of the add-in device adapter as being capable of supporting a process of paging out, from a ROM scan area, a previously stored boot ROM for an earlier peripheral device with a new boot ROM for a new peripheral device, and wherein each add-in device adapter provides an interface logic for a peripheral device; loading and executing add-in boot ROMs for peripheral devices that are coupled to the computer by add-in device adapters until the ROM scan area is recognized by the computer as being full; setting an overcommit flag to indicate to a Power On Self Test (POST) that an Over Commit module of a System Memory Interrupt (SMI) handler needs to be loaded into a System Management Memory (SMM) and linked to the SMI handler, wherein the overcommit flag signals a ROM scan process to determine which interrupt vectors each add-in boot ROM uses, and wherein a set overcommit flag enables a building of a table for the SMI handler to be able to recognize which add-in boot ROM is to be loaded into the ROM scan area during boot time; in response to the computer detecting an overcommit condition in which the ROM scan area is unable to load add-in boot ROMs for all of the multiple peripheral devices, determining a next available address for allocation in an upper portion of a system memory's address space; and paging ROM data in and out of the ROM scan area by: calling the Over Commit module of the SMI handler, invoking a POST/BIOS (Power-On Self Test/Basic Input-Output System) paging handler to determine if an initialization code from the new boot ROM is stored in the ROM scan area, in response to determining that the initialization code from the new boot ROM is not stored in the ROM scan area, paging out all contents of the ROM scan area region to the next available address available for allocation in the upper memory location of system memory, and storing the new boot ROM in the ROM scan area.