============================================================================= AST RESEARCH, INC. TECHNICAL BULLETIN #0748 03-18-92 ============================================================================= BIOS SHADOWING IN AST SYSTEMS This document presents information on the topic of BIOS shadowing. Persistent misinformation and rumors abound on BIOS shadowing. If properly informed most users should view shadowing as a positive and significant performance enhancer rather than a feature to be avoided. Performance: System BIOS and video BIOS shadowing is done to improve performance. This is done by executing the BIOS code out of RAM rather than ROM. A performance gain is achieved by executing out of RAM because it has a much faster response time than the ROM. The slower response time of the ROM acts as a barrier to today's higher speed processors. Shadowing Location: During POST the system BIOS copies an image of itself as well as an image of the video BIOS into RAM. The location where this image is copied depends on the vendor's philosophies as well as hardware capabilities. The AST philosophy is to follow the strategy of "in-place" shadowing. What in-place shadowing means is that the system BIOS will be copied into RAM located at F000:0 and the video BIOS will be copied into RAM located at C000:0. For those familiar with the PC architecture, in-place shadowing locates the shadowed BIOS at the same location as the ROM version (unshadowed BIOS). Early in AST's systems history, the hardware was not able to support the in- place shadowing strategy. The very early systems would shadow the system BIOS at F000:0 but the video BIOS had to be shadowed at E000:0. Progress in AST's hardware development made in-place shadowing possible for systems starting in the latter part of 1989. The choice of shadowing in-place or not is limited by hardware and is not a BIOS design issue. Advantages of In-place: Shadowing in-place has the significant advantage of conserving valuable upper memory addresses. A typical unshadowed system will utilize a total of 96K bytes of valuable address space between the 640K and 1M region. This is allocated as 64K bytes at F000:0 for the system BIOS and 32K bytes at C000:0 for the VGA BIOS. The AST strategy of in-place shadowing utilizes exactly 96K bytes of this valuable address space when shadowing is activated. A different shadowing strategy commonly utilizes 160K bytes of this address space between 640K and 1M. The chart below illustrates how the in-place shadowing strategy conserves valuable upper memory addresses. Upper Memory Address Utilization: No Shadow In-Place Other Scheme C0000-C7FFF VGA BIOS VGA BIOS VGA BIOS (ROM) E0000-EFFFF not used not used VGA BIOS (Shadowed) F0000-FFFFF system BIOS system BIOS system BIOS total space 96K bytes 96K bytes 160K bytes The second significant advantage of in-place shadowing is that it presents the same characteristics as the typical unshadowed system. For programs which "sniff" or search the 640K - 1M region, a system which has in-place shadowing has the video BIOS and system BIOS in exactly the same locations as the typical unshadowed system. There is no anomaly as in other shadowing strategies which have a video BIOS located at C000:0 (the ROM image) as well as at E000:0 (the shadow image). Reserved Memory: All current AST systems as well as all new AST designs have 128K bytes of reserved memory set aside to support shadowing. All memory except this 128K bytes is available to the user. The reserved memory is used as the shadow RAM. There has been no attempt to design systems where only 96K is reserved rather than 128K. Providing this extra 32K to the user would significantly increase hardware costs. There are a few exceptions to the 128K reserved memory rule. The Bravo 286/16 is an example of a system which gives reserved memory back to the user. This extra 128K is available if shadowing is turned off in specific memory configurations. Because of the costs and complications involved to provide an extra 128K bytes of memory for the minority of users who wish to disable shadowing, AST systems will continue with the 128K reserved memory rule. Write Protection: Write protecting the shadowed BIOS is important as it prevents program bugs or poorly designed programs from destroying the video or system BIOS images in RAM. This issue affects AST as well as all system vendors. This write protection attribute coupled with the in-place shadowing yields the perfect shadowing scheme. Systems with cache can present a wrinkle in write protecting the shadow RAM. Until very recently, AST systems with cache did not provide the hardware capability to write protect the video BIOS shadow area. Write protection of the video BIOS shadow area was complicated by the fact that the cache was caching the video BIOS addresses. (The system BIOS area has been write protected as the cache does not cover the system BIOS addresses.) With the exception of 486 based systems, recent AST designs now fully write protect the shadowed BIOS areas. The internal cache of the 486 chip presents a challenge to write protection schemes which AST as well as all other vendors are faced with. Essentially there are no hooks in the 486 which allow hardware designers to implement write protection of shadowed areas which are covered by the 486's cache. While full write protection could be achieved by preventing the 486 cache from covering the video BIOS area, this results in a significant performance degradation in video benchmarks. The AST solution to the write protection dilemma of 486 systems is to write protect the shadow RAM. While this does not prevent the cached copy of the video BIOS from being overwritten, the cache will always be able to fetch a correct copy from the protected shadow RAM whenever a cache load cycle is done. This pseudo write protection of the video BIOS presents a much smaller window of vulnerability to program bugs. Permanent Shadowing: All new AST systems and recent BIOS updates provide a feature called permanent shadowing. This feature no longer provides the user with the option to disable shadowing. With in-place shadowing and write protection of the shadowed BIOS, there is little reason to disable shadowing. Disabling shadowing only provides the user with a slower system. As mentioned earlier the reserved memory is typically not returned back to the user when shadowing is disabled. Summary: This paper has attempted to answer many of the persistent questions surrounding shadowing. It has also reiterated the long term AST strategy which, when implemented, results in the perfect shadowing scheme.