Method, system, and apparatus for allocating memory to a plurality of expansion
slots in a data processing system. During initialization, firmware allocates memory
among a plurality of expansion slots on a rigid basis. If an input/output adapter
functionally connected to one of the plurality of expansion slots requires more
memory, the firmware reallocates the memory among the plurality of expansion slots
such that the expansion slot occupied by the input/output adapter is allocated
sufficient memory. If during runtime, an input/output adapter is hotplugged into
the system and requires more memory than allocated to the slot in which the input/output
adapter has been inserted, the firmware reallocates memory, first from unoccupied
expansion slots and then, if necessary, from selected ones of occupied expansion slots.