I'm CC'ing the seabios mailing list.
On Sun, Jul 08, 2012 at 02:20:20AM -0700, Yeong Uk Jo wrote:
Recently patched SeaBIOS has LOWMEM features that locates part of EBDA data in E segment area. This feature is useful only with no memory manager or basic memory manager like MS-DOS's EMM386. With advanced memory manager(like QEMM, Memory Commander, etc),this feature interferes to secure contiguous memory block. - SeaBIOS 1.7.0 dated 2012.4.15 can use segment C900-FBFF as UMB, but recent version split C900-EDFF,F000-FBFF.
Older versions of SeaBIOS allocate dynamic ram from the end of the 9-segment, not the EBDA. These allocations were not relocatable. Indeed, the reason the 9-segment was used instead of the EBDA is that some low memory allocations are needed for DMA buffers which must not be relocated.
Given the choice between using the 9-segment or the e-segment, I think using the e-segment is preferable.
It is true that variables in the EBDA were also moved to the e-segment. This was done as a code simplification (once the e-segment was used, there was no need to use the ebda for internal allocations). This doesn't impact fragmentation, because the dynamic memory allocations already fragment the space.
Note that advanced memory managers can relocate EBDA data to appropriate area.Experienced users can write program to move EBDA data.
Jo Yeong-uk
-Kevin