7 149 854

7,149,854 Title:

External locking mechanism for personal computer memory locations

Abstract:

A method and system for providing an external locking mechanism for memory locations. The memory includes a first plurality of storage locations configured with BIOS data and a second plurality of storage locations. The second plurality of storage locations includes a first plurality of blocks readable only in SMM and a second plurality of blocks readable in SMM and at least one operating mode other than SMM. The computer system includes a bus, a memory coupled to the bus, and a device coupled to access the memory over the bus. The memory includes a plurality of storage locations, divided into a plurality of memory units. The device includes one or more locks configured to control access to one or more of the plurality of memory units.

Claims:

What is claimed is:

1. A computer system, comprising: a bus; a memory coupled to the bus, wherein the memory includes a plurality of storage locations, wherein the plurality of storagelocations are divided into a plurality of memory units; and a device coupled to access the memory over the bus, the device being configured to determine whether the computer system is operating in a system management mode (SMM), and wherein the deviceincludes one or more locks configured to control access to one or more of the plurality of memory units based on the determination of whether the computer system is operating in the system management mode (SMM).

2. The computer system of claim 1, wherein the bus is configured to operate according to a low pin count (LPC) bus protocol.

3. The computer system of claim 1, wherein the memory is a ROM.

4. The computer system of claim 3, wherein the ROM is a BIOS ROM.

5. The computer system of claim 1, wherein the device is a south bridge.

6. The computer system of claim 1, wherein the locks include a plurality of registers, wherein one or more entries in one or more of the plurality of registers indicate an access control setting for one or more of the memory units.

7. The computer system of claim 6, wherein at least one of the plurality of registers is configured to store three locking bits for one of the memory blocks, wherein the three locking bits include a read lock bit, a write lock bit, and alock-down bit, wherein the read lock bit and the write lock bit are permanent until reset when the lock-down bit is set.

8. The computer system of claim 6, wherein at least one of the plurality of registers is configured to store eight bits, wherein the eight bits include three locking bits for one of the memory blocks and another three locking bits for anotherone of the memory blocks, wherein the three locking bits include a first read lock bit, a first write lock bit, and a first lock-down bit, wherein when the first lock-down bit is set, the first read lock bit and the first write lock bit are permanentuntil reset, and wherein the another three locking bits include a second read lock bit, a second write lock bit, and a second lock-down bit, wherein when the second lock-down bit is set, the second read lock bit and the second write lock bit arepermanent until reset.

9. The computer system of claim 8, wherein the at least one of the plurality of registers is configured with bit 0 as the first write lock bit, bit 1 as the first lock-down bit, bit 2 as the first read lock bit, bit 4 as the second write lockbit, bit 5 as the second lock-down bit, and bit 6 as the second read lock bit.

10. A method for operating a computer system, the method comprising: requesting a memory transaction for one or more memory addresses; determining a lock status for the one or more memory addresses; returning the lock status for the one ormore memory addresses; determining whether the computer system is operating in a system management mode (SMM); determining, based on the determination of whether the computer system is operating in the system management mode(SMM), if the lock statusfor the one or more memory addresses can be changed if the lock status indicates that the memory transaction for the one or more memory addresses is not allowed; changing the lock status of the one or more memory addresses to allow the memorytransaction if the lock status of the one or more memory addresses can be changed.

11. The method of claim 10, wherein determining a lock status includes reading a first lock bit; and wherein returning the lock status includes returning the value of the first lock bit.

12. The method of claim 11, wherein determining if the lock status for the one or more memory address can be changed includes reading a second lock bit.

13. The method of claim 12, wherein changing the lock status of the one or more memory addresses to allow the memory transaction includes changing the value of the first lock bit.

14. A computer system, comprising: means for requesting a memory transaction for one or more memory addresses; means for determining a lock status for the one or more memory addresses; means for returning the lock status for the one or morememory addresses; means for determining whether the computer system is operating in a system management mode (SMM); means for determining, based on the determination of whether the computer system is operating in the system management mode (SMM), ifthe lock status for the one or more memory addresses can be changed if the lock status indicates that the memory transaction for the one or more memory addresses is not allowed; means for changing the lock status of the one or more memory addresses toallow the memory transaction if the lock status of the one or more memory addresses can be changed.

15. The computer system of claim 14, wherein the means for determining the lock status comprises means for reading a first lock bit; and wherein the means for returning the lock status includes means for returning the value of the first lockbit.

16. The computer system of claim 15, wherein determining if the lock status for the one or more memory address can be changed includes reading a second lock bit.

17. The computer system of claim 16, wherein the means for changing the lock status of the one or more memory addresses to allow the memory transaction includes means for changing the value of the first lock bit.

18. A computer readable program storage device encoded with instructions that, when executed by a computer system, performs a method of operating the computer system, the method comprising: requesting a memory transaction for one or more memoryaddresses; determining a lock status for the one or more memory addresses; returning the lock status for the one or more memory addresses; determining whether the computer system is operating in a system management mode (SMM); determining, based onthe determination of whether the computer system is operating in the system management mode (SMM), if the lock status for the one or more memory addresses can be changed if the lock status indicates that the memory transaction for the one or more memoryaddresses is not allowed; changing the lock status of the one or more memory addresses to allow the memory transaction if the lock status of the one or more memory addresses can be changed.

19. The computer readable program storage device of claim 18, wherein determining a lock status includes reading a first lock bit; and wherein returning the lock status includes returning the value of the first lock bit.

20. The computer readable program storage device of claim 19, wherein determining if the lock status for the one or more memory address can be changed includes reading a second lock bit.

21. The computer readable program storage device of claim 20, wherein changing the lock status of the one or more memory addresses to allow the memory transaction includes changing the value of the first lock bit.