On 7/30/07, Roman Kononov <[EMAIL PROTECTED]> 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
>

Nice idea ;-).

I'll try tocombine that with Windows HAL function for the PCI direct IO
because doing it through CF8/CFC is very risky. I'll let the OS do it ;-).

-- 
Regards,

Darmawan Salihun
--------------------------------------------------------------------
-= Human knowledge belongs to the world =-
-- 
linuxbios mailing list
[email protected]
http://www.linuxbios.org/mailman/listinfo/linuxbios

Reply via email to