On Fri, Jan 18, 2013 at 01:20:05AM +0000, David Woodhouse wrote: > On Thu, 2013-01-17 at 19:58 -0500, Kevin O'Connor wrote: > > Does this table have to be in the f-segment, or can it be anywhere in > > the binary? BTW, how does OVMF know where to place the seabios blob > > in memory? > > It can be anywhere in memory. OVMF loads the blob so that it ends at > 1MiB.
Okay, sounds like we could end up doing csm.c entirely in 32bit code then. (Enhance the build with an "export" equivalent of VAR32FLATVISIBLE and invoke call32 directly from entry_csm.) > > > + /* FIXME: I don't know if we can allocate in the E000 segment at all. */ > > > + dprintf(3, "Legacy16GetTableAddress size %x align %x region %d\n", > > > + size, align, region); > > > + chunk = pmm_malloc(&ZoneFSeg, PMM_DEFAULT_HANDLE, size, align); > > > > This is the same as malloc_fseg(). > > Apart from the alignment. Which is a power of two, yes. I'll fix it to > use ZoneLow for the e-segment too; thanks. If no preference is expressed > by the caller, should I try ZoneLow first? That'll be larger, right? Yes, ZoneLow will be larger than ZoneFSeg, though both should be pretty large. This is assuming CONFIG_RELOCATE_INIT is made to work - without that ZoneLow will likely go below the e-segment and there wont be much space in the f-segment. It should be possible to enable CONFIG_RELOCATE_INIT once the PMM regions are filled. -Kevin _______________________________________________ SeaBIOS mailing list [email protected] http://www.seabios.org/mailman/listinfo/seabios
