On Mon, Dec 13, 2010 at 11:10:38AM +0200, Avi Kivity wrote: > On 12/13/2010 11:03 AM, Gleb Natapov wrote: > >> We could also deprecate the old port and use fwcfg for everything > >> (try fwcfg, fall back to ae00). > >> > >fwcfg designed to be simple for easy use by firmware. It has two port > >one for index another for value, so its use is racy in multi-threaded SMP > >environment. DSDT code is executed in such environment. There is lock > >facility in AML, but why complicate things. > > I prefer to remove complexity from interfaces and have it in the > implementation instead. I prefer whatever is simpler :) simpler == less bugs. And it is not like we discuss new interface here. You want to deprecate existing interface in favor of something that was not designed to handle the task.
> > >> >> We could do this in two ways: by adding a fwcfg client to the DSDT, > >> >> or by copying the information to system memory, and referencing > >> >> system memory from the DSDT. > >> >> > >> >This is even worse. It requires some fixed address to be shared between > >> >DSDT and Seabios (or alternatively Seabios will have to generate this > >> >part of DSDT dynamically). > >> > > >> > >> Could easily be something in the F segment. > >> > >Yes, but then we will have two magic values (fwcfg index + address > >in F segment) instead of one (address of pci hot-plug controller). > > The F segment address is internal to SeaBIOS; it isn't an external > interface. > Depends on how you define external interface. It can be considered as interface between OSPM and firmware. Next time layout of F segment changes in SeaBIOS will you remember fixing DSDT too? -- Gleb.