[LinuxBIOS] Winflashrom -- Current Status

Darmawan Salihun 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
>>  2000.
> 
> 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.
> 
> Roman
> 

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.

--Darmawan Salihun




More information about the coreboot mailing list