US5819087A

Flash ROM sharing between processor and microcontroller during booting and handling warm-booting events

Claim Score by NHIP

Read claim 14, the broadest

Abstract

A computer system having a processor, a microcontroller, a flash ROM is provided with an address remapper for handling warm-boot events, and an arbiter for selectively assigning the ownership of the flash ROM to either the microprocessor or the microcontroller. The arbiter assigns the flash ROM initially to the microcontroller when power is initially provided to the system. After the flash ROM boots up and checks the integrity of the flash ROM and updates the content of the flash ROM with valid firmware if necessary, the microcontroller releases the flash ROM to the microprocessor to enable the computer system to proceed with the normal boot-up process. In this process, various system self tests are performed. Next, the microprocessor copies or shadows one or more portions of the flash ROM BIOS into a main memory array. After the shadow operation, the processor sets a remap bit to indicate that the ROM BIOS content has been copied into the main memory array. The setting of the remap bit enables the remapper to deflect accesses to the flash ROM. The restarting of the clock signal to the microcontroller to switch the ownership of the flash ROM back to the microcontroller. In the event that the microprocessor needs to regain access to the flash ROM contents, the microprocessor writes to the mailbox register of the arbiter to request access to the flash ROM. The microprocessor waits for a confirmation from the arbiter that the microcontroller is entering an idled mode. Next, the microprocessor halts the clock of the microcontroller. These events cause the microcontroller to float or tristate the signal lines going from the microcontroller to the flash ROM such that the microprocessor can drive the signal lines without any conflict potentials. In this manner, the microprocessor can still access the shared flash ROM after it has booted up. Thus, the system cost is reduced, the system reliability is enhanced, while the system accessibility to the flash ROM after the boot-up period is still preserved.

US5819087A, drawing sheet 1
Sheet 1 of 22

Term

Term ended

Expired 31 December 2016, 9.7 years ago.

  1. Priority
  2. Filed
  3. Granted
  4. Expired
  5. Today

34 claims: 3 independent, 31 dependent

  1. 1
    A computer system, comprising:a processor;a peripheral device coupled to said processor for storing boot data;a resource coupled to said processor, said resource storing a resource code located at a resource address;a system memory coupled to said processor, said system memory having a shadow region adapted to receive said resource code into said shadow region after said processor boots up, said shadow region having a shadow address;a flag coupled to said processor, said flag being asserted after said boot code has been copied into said shadow region;an address remapper coupled to said flag, said resource, said system memory and said processor, said address remapper substituting said resource address with said shadow address when said resource is accessed and said flag is asserted;a microcontroller coupled to said resource and said processor, said microcontroller allowing said processor to boot from said stored boot data after said microcontroller boots, said microcontroller having an active mode for engaging said resource and an idle mode for disengaging said resource;and an arbiter coupled to said processor, said microcontroller and said resource, said arbiter adapted to receive a request from said processor to access said resource, said arbiter placing said microcontroller in the idle mode before granting said processor access to said resource, said arbiter further placing said microcontroller into the active mode to engage said resource after said processor releases said resource.
  2. 14
    Broadest claimClaim Score 65, broad(NHIP)A method for sharing a non-volatile memory in a computer system, said computer system having a processor, a system memory coupled to said processor, a display coupled to said processor for communicating with the user, a disk drive coupled to said processor for storing data, a resource coupled to said processor, and a microcontroller coupled to said resource and said processor, said method comprising the steps of:shadowing said resource in said system memory;setting a flag to indicate that said resource has been shadowed;detecting a warm boot request to said processor and if said warm boot request occurs when said flag is set, diverting said access to said system memory;and responding to a resource access request by: idling said microcontroller in response to said resource access request;granting said processor access to said resource after said microcontroller as been idled;releasing said resource from said processor;and activating said microcontroller to engage said resource after said processor releases said resource.
  3. 22
    An apparatus for arbitrating accesses in a computer, said computer having a processor and a system memory coupled to said processor, said apparatus comprising:a resource coupled to said processor, said resource storing a resource code located at a resource address;a system memory coupled to said processor, said system memory having a shadow region adapted to receive said resource code into said shadow region after said processor boots up, said shadow region having a shadow address;a flag coupled to said processor, said flag being asserted after said boot code has been copied into said shadow region;an address remapper coupled to said flag, said resource, said system memory and said processor, said address remapper substituting said resource address with said shadow address when said resource is accessed and said flag is asserted;a microcontroller coupled to said resource and said processor, said microcontroller allowing said processor to boot from said stored boot data after said microcontroller boots, said microcontroller having an active mode for engaging said resource and an idle mode for disengaging said resource;and an arbiter coupled to said processor, said microcontroller and said resource, said arbiter adapted to receive a request from said processor to access said resource, said arbiter placing said microcontroller in the idle mode before granting said processor access to said resource, said arbiter further placing said microcontroller into the active mode to engage said resource after said processor releases said resource.