Levi Khatskevitch <[EMAIL PROTECTED]> writes:
> On Mon, 11 Dec 2000, Ronald G Minnich wrote:
> > 1) find the first pcidev in the resets array that matches the actual
> > hardware
> > 2) using the pcidv, set bit 'bit' to val 'val' in register
> > 'registernumber'
> >
> > Comments?
> >
> > ron
>
> I like it. It's quite simple and will work until we come accross a chipset with
> more complex reset procedure, which is quite unlikely.
>
> On the other hand since we want to plug in more chipset features into the kernel
>
> there is another way of doing it. Link the kernel with the right chipset.o for
> the chipset and thus import a set of chipset_xxx (like chipset_setclock)
> functions into the kernel namespace. This way we can have chipset_reset
> function and call it from restart_machine. The good thing is that chipset_xxx
> functions are available to all kernel code and may be even exported to modules,
> also they can be made available in user space by separate modules (/proc
> approach) or just by creating new sys_calls. The biggest limitation of this is
> that we won't be able to use the same precomplied kernel for more than one
> chipset. If this is a probem the only way around it is using service
> interrupts (which I don't think is so bad idea) and write standard code for
> chipset_xxx function that will use the interrup.
Nope. Alpha already has explicity support for every chipset &
motherboard it runs on. It doesn't need a specific compile. It just
has a vector full of different function to call, and it changes the
contents based on the machine that it is running on.
>
> I'm not yet sure myself which approach is better, so please send
> your comments
I think service interrupts are bad. They don't even exist on other
platforms. x86 isn't the only platform I want linuxBIOS to run on.
Eric