System and method for updating contents of a flash ROM
First Claim
1. In a computer system containing a processor coupled to a non-volatile memory system for storing a non-volatile memory image representing read-only-memory of the computer system, a method for updating the non-volatile memory image with a software update, the method comprising:
- processing the software update by the processor to validate the software update, wherein the processor is to execute an operating system;
partitioning the non-volatile memory image into a plurality of non-volatile memory regions, the non-volatile memory regions each potentially having a varying size,allocating an image buffer for storing an address location, a size, and a purpose for at least a portion of the non-volatile memory regions;
designating a selected non-volatile memory region to receive the software update by identifying an existing non-volatile memory region at least large enough to accommodate the software update or repartitioning a portion of the non-volatile memory image to form a new non-volatile memory region at least large enough to accommodate the software update;
overwriting the selected non-volatile memory region with the software update without having to overwrite the non-volatile memory image in its entirety; and
updating the image buffer such that the address location, the size, and the purpose for the selected non-volatile memory region are current.
2 Assignments
0 Petitions
Accused Products
Abstract
Upgrading a non-volatile memory image such as a flash ROM is accomplished by partitioning the flash ROM into a plurality of flash ROM regions. One of the flash ROM regions is selected to receive the software upgrade, which can then be directly overwritten without having to overwrite the flash ROM image in its entirety. Through the use of an image buffer, which stores information about the ROM regions, it is possible to move ROM regions, delete ROM regions, add ROM regions, expand/contact ROM regions, update ROM regions, and enable/disable ROM regions without having to modify the entire ROM image or shadow parts of the ROM image in RAM. Additionally, security and registry information can also be logically linked to a particular region.
76 Citations
33 Claims
-
1. In a computer system containing a processor coupled to a non-volatile memory system for storing a non-volatile memory image representing read-only-memory of the computer system, a method for updating the non-volatile memory image with a software update, the method comprising:
-
processing the software update by the processor to validate the software update, wherein the processor is to execute an operating system; partitioning the non-volatile memory image into a plurality of non-volatile memory regions, the non-volatile memory regions each potentially having a varying size, allocating an image buffer for storing an address location, a size, and a purpose for at least a portion of the non-volatile memory regions; designating a selected non-volatile memory region to receive the software update by identifying an existing non-volatile memory region at least large enough to accommodate the software update or repartitioning a portion of the non-volatile memory image to form a new non-volatile memory region at least large enough to accommodate the software update; overwriting the selected non-volatile memory region with the software update without having to overwrite the non-volatile memory image in its entirety; and updating the image buffer such that the address location, the size, and the purpose for the selected non-volatile memory region are current. - View Dependent Claims (2, 3, 4, 5, 6)
-
-
7. A method for maintaining a non-volatile memory of a computer system having a processor coupled to the non-volatile memory, the non-volatile memory containing a boot loader, a kernel, an operating system to be executed by the processor and other functional devices, the method comprising:
-
partitioning the non-volatile memory into a plurality of non-volatile memory regions; maintaining an image buffer containing an information entry including an address location, a size, and a purpose for at least a portion of the non-volatile memory regions; updating the image buffer to reflect changes in the address location, the size, and the purpose of at least one of the non-volatile memory regions; and referencing, by the processor, the image buffer rather than the boot loader and/or kernel to identify the locations of one or more of the non-volatile memory regions. - View Dependent Claims (8, 9, 10, 11)
-
-
12. A method for maintaining a flash ROM in a computer system having a processor, the flash ROM including a kernel, an operation system and other devices, the method comprising:
-
partitioning the flash ROM into a plurality of flash ROM regions; storing contents of the kernel, operating systems, and other devices in separate flash ROM regions among the plurality of flash ROM regions; storing an address location, a size, and a purpose for at least a portion of the plurality of flash ROM regions in an image buffer; maintaining the image buffer to reflect changes in the address location, the size, and the purpose of at least one of the plurality of flash ROM regions; and enabling the computer system under control of the operation system to access the other devices stored in the plurality of flash ROM regions by referencing the image buffer, wherein the processor is to execute the operating system. - View Dependent Claims (13, 14, 15, 16, 17)
-
-
18. A non-volatile memory system, comprising:
-
a plurality of flash ROMs having a specified address location and size;
each of the flash ROMs containing one or more functional devices;an image buffer containing address locations, sizes, and purposes for each of the flash ROMs, the image buffer being modifiable to reflect changes in the address locations, the sizes, and the purposes of the flash ROMS; and an operating system to be executed by a processor coupled to the non-volatile memory system, the operating system being stored in at least one of the of the plurality of flash ROMs, wherein during operation of the system the operating system is to read the image buffer and link the plurality of flash ROMs so that they function together as single ROM image. - View Dependent Claims (19, 20, 21)
-
-
22. One or more computer-readable media having stored thereon computer executable instructions that, when executed by one or more processors coupled to a non-volatile memory system, causes the one or more processor of a computer system to:
-
execute an operating system, wherein each of the one or more processors is to selectively execute the operating system; receive a file used to update an old version of a non-volatile memory image to a new version of a non-volatile memory image, wherein the new version of the non-volatile memory image contains a software update to the old version of the non-volatile memory image, wherein the non-volatile memory image is logically partitioned into a plurality of non-volatile memory regions, the non-volatile memory regions each potentially having a varying size; allocate an image buffer for storing an address location, a size, and a purpose for at least a portion of the non-volatile memory regions; process the file by the one or more processors to validate the software update; designate a selected non-volatile memory regions to receive the software update by identifying an existing non-volatile memory region at least large enough to accommodate the software update or repartitioning a portion of the non-volatile memory image to form a new non-volatile memory region at least large enough to accommodate the software update; overwrite the selected non-volatile memory region with the software update without having to overwrite the non-volatile memory image int its entirety; and update the image buffer such that the address location, the size, and the purpose for the selected non-volatile memory region are current. - View Dependent Claims (23, 24, 25, 26)
-
-
27. One or more computer-readable media having stored thereon computer executable instructions that, when executed by one ore more processors, causes the one or more processors of a computer system to:
-
partition a non-volatile memory of the computer system into a plurality of non-volatile memory regions each storing a separate one of a boot loader, a kernel, an operating system and other functional devices; execute the operating system, wherein each of the one or more processors is to selectively execute the operating system; maintaining an image buffer containing an information entry including an address location, a size, and a purpose for at least a portion of the non-volatile memory regions; update the address location in the image buffer to reflect changes in the address location, the sizes, and the purpose of at least one of the non-volatile memory regions; and reference the image buffer rather than the boot loader and/or kernel to identify the locations of one or more of the non-volatile memory regions. - View Dependent Claims (28, 29)
-
-
30. A computer system, comprising:
-
a processor to execute an operating system, a configurable memory device containing a plurality of ROMs each containing software contents and potentially having a varying size; an image buffer for storing an address location, a size, and a purpose for at least a portion of the software contents stored in the configurable memory device; and ROM update software that when verified and executed by the processor causes; the software contents in one of the plurality of ROMs to be overwritten by revised software contents without having to overwrite the other of the plurality of ROMs in their entirety; and the image buffer to be updated to reflect changes in the address location, the size, and the purpose for the software contents overwritten by the revised software contents. - View Dependent Claims (31, 32, 33)
-
Specification