System and method for accessing peripheral devices on a non-functional controller
First Claim
1. A method for accessing a memory in a bus adapter of a computer system, the computer system comprising a CPU, a first bus coupled to the CPU, and the bus adapter coupled to the first bus, wherein the bus adapter comprises a bus interface for coupling to said first bus, a second bus coupled to said bus interface, a local processor coupled to said second bus, a peripheral bus coupled to said bus interface, and the memory coupled to said peripheral bus, the method comprising:
- configuring said memory coupled to said peripheral bus to map to said bus interface, wherein said memory is accessible by said CPU when said memory is mapped to said bus interface;
said CPU beginning a startup routine after said configuring said memory, wherein said CPU detects said memory coupled to said peripheral bus as being mapped to said bus interface;
said CPU accessing said memory coupled to said peripheral bus in said bus adapter after said CPU beginning said startup routine;
reconfiguring said memory to unmap said memory from said bus interface after said CPU accessing said memory, wherein said memory is accessible to said local processor comprised in said bus adapter in response to said reconfiguring; and
said CPU restarting after said reconfiguring said memory.
7 Assignments
0 Petitions
Accused Products
Abstract
A computer system including a host CPU, a primary PCI bus coupled to the CPU, and a bus adapter coupled to the primary PCI bus, wherein the host CPU can access peripherals comprised in the bus adapter even when the bus adapter is inoperable. The bus adapter includes a PCI to PCI interface controller which includes a primary PCI interface for coupling to the primary PCI bus and a secondary PCI interface bridge for coupling to a secondary PCI bus. Peripheral bus interface logic is coupled between the primary PCI interface and the secondary PCI interface, and this interface logic couples to various peripheral devices, including ROM/Flash memory and non-volatile static random access memory (NVSRAM). According to the present invention, a host utility executing on the CPU can access the peripheral devices without having to access the secondary PCI bus. Thus, if the secondary PCI bus becomes inoperable or the local processor is unable to boot, the host can still access the memory in the peripheral devices because the peripheral interface is effectively decoupled from the secondary PCI bus and the local processor. The present invention includes a host utility which can update the Flash memory, thereby providing a cost-effective and efficient mechanism for restoring code in a corrupted Flash device on a failed board. This also enables the Flash memory to be programmed for the first time during manufacturing. The system and method of the present invention allows the host CPU to access the NVRAM to obtain event failure information even if the secondary PCI bus has failed.
-
Citations
16 Claims
-
1. A method for accessing a memory in a bus adapter of a computer system, the computer system comprising a CPU, a first bus coupled to the CPU, and the bus adapter coupled to the first bus, wherein the bus adapter comprises a bus interface for coupling to said first bus, a second bus coupled to said bus interface, a local processor coupled to said second bus, a peripheral bus coupled to said bus interface, and the memory coupled to said peripheral bus, the method comprising:
-
configuring said memory coupled to said peripheral bus to map to said bus interface, wherein said memory is accessible by said CPU when said memory is mapped to said bus interface; said CPU beginning a startup routine after said configuring said memory, wherein said CPU detects said memory coupled to said peripheral bus as being mapped to said bus interface; said CPU accessing said memory coupled to said peripheral bus in said bus adapter after said CPU beginning said startup routine; reconfiguring said memory to unmap said memory from said bus interface after said CPU accessing said memory, wherein said memory is accessible to said local processor comprised in said bus adapter in response to said reconfiguring; and said CPU restarting after said reconfiguring said memory. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10, 11)
-
-
12. A method for installing and programming a memory in a controller of a computer system, the computer system comprising a CPU, a first bus coupled to the CPU, and the controller coupled to the first bus, wherein the controller comprises a bus interface for coupling to said first bus, a second bus coupled to said bus interface, a jumper coupled to said bus interface, a local processor coupled to said second bus, a peripheral bus, the method comprising:
-
installing said memory in said controller of said computer system, wherein said memory is not programmed; configuring said memory after said installing said memory to map said memory to said bus interface, wherein said memory is accessible by said CPU when said memory is mapped to said bus interface; said CPU beginning a startup routine after said configuring said memory; said CPU accessing said bus interface to write data to said memory in said controller after said CPU beginning said startup routine; reconfiguring said memory after said CPU accessing said bus interface to unmap said memory from said bus interface, wherein said memory is accessible to said local processor; and said CPU restarting after reconfiguring said memory. - View Dependent Claims (13, 14, 15, 16)
-
Specification