Electrical computers and digital processing systems: support – Digital data processing system initialization or configuration
Reexamination Certificate
1998-04-30
2001-06-05
Beausoleil, Robert (Department: 2184)
Electrical computers and digital processing systems: support
Digital data processing system initialization or configuration
C713S100000
Reexamination Certificate
active
06243809
ABSTRACT:
BACKGROUND OF THE INVENTION
1. Field of the Invention
The present invention relates to flashing and reading a non-volatile memory, and more particularly to flashing and reading a read-only memory of a computer system independently of its operating system.
2. Description of the Related Art
Access to flash ROM devices in a computer system is increasingly being safeguarded by software and/or hardware protection and virtualization mechanisms. Such mechanisms, which range from block locking and write protection to password protection and secure memory devices, may be traversed by devices having the necessary privilege level. In a computer system, an application is typically given the lowest privilege level. An application requiring direct access to a flash ROM device, such as software for flashing a ROM image or for reading a version of a ROM, thus must be able to direct a device having the necessary privilege level to release security protection for the flash ROM device. Similarly, access to certain areas of a memory space of a computer system, such as high regions of memory where critical code is often stored, has required a particular privilege level.
Software for flashing a ROM image or for reading a version of a ROM has traditionally relied upon a driver to obtain a privilege level necessary to release any security protection for a flash ROM device and to access certain areas of a memory space. Drivers (also called device drivers), which generally serve to link a peripheral device to an operating system, are commonly used in programming and reading flash ROM devices in a computer system. In particular, a driver is typically used to control command and status registers of a flash ROM device for erasing, writing, or reading the device. Various types of information may be read from a flash ROM device, such as status data, ROM version data, device identification data, or a ROM image. Accessing a flash ROM device to read or write data has occurred exclusively in an operating system environment.
Accessing a flash ROM device in an operating system environment, however, has required updates to drivers for each hardware and operating system environment in which access to a flash ROM device is desired. Such updates, for example, may account for definitions of new bus interface standards and new memory standards. Drivers are also frequently updated to handle new ROM versions of application software, new device identification codes, or new memory size boundaries. It has been necessary, therefore, to match maintenance of a driver for accessing a flash ROM device with the frequency of changes in the hardware environment of the flash ROM device, the operating system environment, and ROM versions.
Most of today's computer systems provide an operating state known as a protected mode which supports advanced features. A protected mode has provided hardware support for multitasking and virtual memory management. At certain times in a protected mode, however, an operating system has been unable to grant a driver the privilege level necessary to release security protection for a flash ROM device. An application thus has not been guaranteed access to a flash ROM device when a computer system is in a protected mode.
SUMMARY OF THE INVENTION
Briefly, the present invention provides a method of flashing a non-volatile memory image to a non-volatile memory of a computer system and reading data from a non-volatile memory independently of an operating system. An image buffer is allocated in a volatile memory of the computer system. If flashing a non-volatile memory image to the non-volatile memory is desired, the image buffer is loaded with a portion of the non-volatile memory image. BIOS interface code is then called to place an SMI event code into a memory and to generate a system management interrupt causing the computer system to enter a system management mode.
In the system management mode, an SMI handler code examines the SMI event code and calls SMI service code. Next, the SMI service code locates the image buffer, and the portion of the non-volatile memory in the image buffer is flashed to the non-volatile memory. Locating the image buffer may include locating an image header defined within the volatile memory. The image header may include a password for providing access to the non-volatile memory. The steps of loading the image buffer, calling BIOS interface code, and flashing a portion of the non-volatile memory image to the non-volatile memory may be repeated until the entire non-volatile memory image is flashed to the non-volatile memory. Alternatively, if reading data from a non-volatile memory independently of an operating system is desired, a system management interrupt is generated to place the computer system in a system management mode, the image buffer is located, and data from the non-volatile memory is copied to the image buffer.
The present invention further provides a method of providing a memory command to a non-volatile memory having a locked state independently of the operating system. The computer system is placed in a system management mode, and an SMI event code is placed into a memory. The SMI handler code processes the SMI event code and calls the SMI service code. Next, an image buffer and image header are located in a volatile memory of the computer system. The image header is then read, and a password is provided from the image header to a secure memory device. If the password provided matches the password stored in the secure memory device, the secure memory device places the non-volatile memory in an unlocked or unprotected state. A protected command may then be provided from the image header to the non-volatile memory by the SMI service code.
The non-volatile memory or a volatile memory of the computer system stores a driver for performing the method of flashing a non-volatile memory image to the non-volatile memory and reading from a non-volatile memory independent of an operating system. The BIOS interface code, SMI handler code, and SMI service code are also stored in the non-volatile memory or a volatile memory. In a system management mode, the SMI service code operates at a high privilege level which gives the SMI service code access to the non-volatile memory and the full memory space of the computer system. In accordance with the present invention, reading or flashing non-volatile memory thus is not dependent upon the operating system.
REFERENCES:
patent: 5339437 (1994-08-01), Yuen
patent: 5375243 (1994-12-01), Parzych et al.
patent: 5684997 (1997-11-01), Kau et al.
patent: 5724027 (1998-03-01), Shipman et al.
patent: 5724544 (1998-03-01), Nishi
patent: 5796984 (1998-08-01), Pearce et al.
patent: 5809515 (1998-09-01), Kaki et al.
patent: 5835594 (1998-11-01), Albrecht et al.
patent: 5835760 (1998-10-01), Harmer
patent: 5859911 (1999-01-01), Angelo et al.
patent: 5898843 (1999-04-01), Deceased et al.
patent: 5956743 (1999-09-01), Bruce et al.
patent: 5963738 (1999-10-01), Yamaki et al.
patent: 6009520 (1999-12-01), Gharda
patent: 6009524 (1999-12-01), Olarig et al.
Advanced Micro Devices, Inc., “Am291F002T/Am29F002B, 2 Megabit (262,144×8-Bit) CMOS 5.0 Volt-only, Sector Architecture, Flash Memory,”© 1996, pp. 1-34.
Intel Corporation, Intel486™ SL Microprocessor SuperSet Programmer's Reference Manual, System and Power Management, pp. 6-28 through 6-53.
Intel Corporation, Pentium™ Processor User's Manual, vol. 3: Architecture and Programming Manual, © Intel Corporation 1994, pp. 20-1 through 20-9.
Broyles, III Paul J.
Gibbons Patrick L.
Akin Gump Strauss Hauer & Feld & LLP
Beausoleil Robert
Compaq Computer Corporation
Ziemer Rita
LandOfFree
Method of flash programming or reading a ROM of a computer... does not yet have a rating. At this time, there are no reviews or comments for this patent.
If you have personal experience with Method of flash programming or reading a ROM of a computer..., we encourage you to share that experience with our LandOfFree.com community. Your opinion is very important and Method of flash programming or reading a ROM of a computer... will most certainly appreciate the feedback.
Profile ID: LFUS-PAI-O-2501090