[LinuxBIOS] Winflashrom -- Current Status
darmawan.salihun at gmail.com
Fri Aug 10 10:08:26 CEST 2007
Roman Kononov wrote:
> Darmawan Salihun wrote:
>> As I couldn't find any better replacement to the PCI direct I/O
>> function at the moment (which is needed in chipset_enable and
>> board_enable), I will try to implement them using a quite old kernel
>> mode API, i.e. HalGetBusData and HalSetBusData. I hope the kernel
>> "emulates" these functions so that it works like in NT4 and Windows
> A more "portable" way:
> Make all CPUs spinning inside a DPC function:
> KeQueryActiveProcessors() is used to get all processors.
> KeSetTargetProcessorDpc() is used to tie the DPC function and particular
> SMP processors.
> When all CPUs are spinning inside the function, one of them does IO
> (CF8/CFC) to the PCI configuration space.
> After the IO completes, let all DPC functions finish.
After discussing about the access method at length with more experienced
Windows driver developers. I think if HalGetBusData is not working at
all then direct I/O port access with your "multiprocessor-aware kernel
thread protection" is the "safest" method.
More information about the coreboot