Patent ID: 7617391
Filing Date: 2009-11-10
Classification: G06F

Abstract:
1. A method for dynamically selecting one of multiple different input/output (I/O) firmware images to boot an I/O controller, the method comprising: storing a plurality of different I/O firmware images sequentially in a single file; determining a configuration of the I/O controller; determining a configuration that is supported by a first one of the plurality of different I/O firmware images in the single file to use to boot the I/O controller; in response to determining that the first one of the plurality of different I/O firmware images in the single file does support the configuration of the I/O controller, selecting the first one of the plurality of different I/O firmware images in the file; in response to determining that the first one of said plurality of different I/O firmware images in the file does not support the configuration of the I/O controller, determining a configuration that is supported by a second one of the plurality of different I/O firmware images in the file; in response to determining that the second one of said plurality of different I/O firmware images in the file does support the configuration of the I/O controller, selecting the second one of the plurality of different I/O firmware images in the file; storing a boot services driver, that is required in order for said I/O controller to be booted, in a first flash memory location; storing the plurality of different I/O firmware images in a second flash memory location; beginning a boot of the data processing system; copying, by a system BIOS, the boot services driver from the first flash memory location to a first system memory location; and copying, by the system BIOS, the plurality of different I/O firmware images from the second flash memory location to a second system memory location, wherein the plurality of different I/O firmware images and the boot services driver are stored separately in the system memory.