Browse Prior Art Database

Dynamic Extended BIOS Data Area Allocation and Expansion for Personal Computer Systems

IP.com Disclosure Number: IPCOM000107630D
Original Publication Date: 1992-Mar-01
Included in the Prior Art Database: 2005-Mar-22
Document File: 4 page(s) / 176K

Publishing Venue

IBM

Related People

Blackledge, JW: AUTHOR [+6]

Abstract

Described is a method whereby personal computer systems can dynamically expand the basic input/output system (BIOS) data area (EBDA). A dynamic data region is defined within the original data area definition so as to allow for the movement of already allocated memory to another base address when the upper limit of memory is reached. This allows existing offsets to remain the same.

This text was extracted from an ASCII text file.
This is the abbreviated version, containing approximately 39% of the total text.

Dynamic Extended BIOS Data Area Allocation and Expansion for Personal Computer Systems

       Described is a method whereby personal computer systems
can dynamically expand the basic input/output system (BIOS) data area
(EBDA).  A dynamic data region is defined within the original data
area definition so as to allow for the movement of already allocated
memory to another base address when the upper limit of memory is
reached.  This allows existing offsets to remain the same.

      Typically, the EBDA is allocated by the system power-on
self-test (POST) code at the highest possible kilobyte (KB) of memory
below a designated area.  The word memory location at 40:OEh contains
the segment of the EBDA.  The first byte in the EBDA contains the
length in KB of this data area. Memory within the EBDA has been
assigned on an as-needed basis at fixed offsets within the data area.
Due to the increasing complexity of the adapters and the BIOS code
which supports the adapters, the required BIOS data structures are
increasing.

      Often, depending on the system's hardware configuration, the
data structures are variable in length. To statically assign memory
locations within the EBDA is considered inefficient because reserving
an address range for a specific function or adapter quickly can
exhaust the available memory resources.  Also, since the adapter may
not be present in the system, the allocated memory may not even be
used.

      The concept described herein addresses the allocation of memory
problems by allocating memory for BIOS only as required.  Also, the
concept expands the allocation of the EBDA beyond the initial amount
setup by the system's planar POST code.  The concept uses a
structured method of supporting variable length allocations.  An
adapter allocates its own space on an as-needed basis at the feature
read-only memory (ROM) scan execution time performed during POST.
Allocation granularity is one paragraph, i.e., twelve bytes plus the
four bytes required for chain maintenance. Provisions are made to
allow the EBDA to be expanded, if required, up to a maximum size of
63 KB.

      The structure used in the dynamic region is a linked list of
data blocks.  The first two words of each block identify the starting
offset address of the next block and a unique identification (ID) by
which the data block may be identified.  The dynamic region is
defined as the memory within the EBDA beginning at the offset address
180H.

      The chain maintenance words may be identified by using the
following data structure definition:
DYNAMIC     STRUC
NEXT_BLOCK  DW    ? :OFFSET VALUE FROM EBDA OF NEXT DATA
BLOCK IN CHAIN BLOCK_ID    DW    ? :ID INDICATING OWNERSHIP OF MEMORY
BLOCK
                                    :(e.g. 8EFEH IS A CONTROLLER CARD
ID)
DATA        DB    ? :FIRST LOCATION OF THE NEWLY ALLOCATED DATA
                      ...