[OpenBIOS] [PATCH] Make interrupts work on newworld machines

Alexander Graf agraf at suse.de
Sun Dec 20 03:20:38 CET 2009


Am 20.12.2009 um 00:31 schrieb Benjamin Herrenschmidt <benh at kernel.crashing.org 
 >:

> On Sun, 2009-12-20 at 10:26 +1100, Benjamin Herrenschmidt wrote:
>
>> And that encoding depends on what the parent PIC is. I don't think  
>> the
>> drivers should setup their own interrupt properties that way anyways.
>>
>> Platform code in forth should layout that stuff. Where does that 0x24
>> come from anyways ? It's just arbitrary crap. Nothing to do in the  
>> escc
>> driver itself.
>
> More specifically, in the case of macs, the ESCC, along with a lot of
> other devices, is part of the "macio" asic. There's various families  
> and
> generations of these, though we probably really only care about
> heathrow, keylargo and K2.
>
> How those interrupts are routed (and in fact the PIC itself) are a
> property of the ASIC.
>
> Thus the "ASIC" driver (again, it should be a bit of f-code that binds
> all that together) should layout the interrupt wiring for a given  
> chip.
>
> Now the interesting thing is that in large part that routing  
> information
> ends up being duplicated: in qemu to emulate the ASIC and in OpenBIOS.
>
> Thus, maybe a "smart" thing to do here would be to have a  
> representation
> inside qemu of the "bindings" (interrupt, address, driver maps) of a
> given macio-asic, that openbios can suck out using a private call and
> use to construct the device-tree. Or we could have qemu -itself- get  
> fed
> a device-tree, use it to instanciate the HW devices and pass it  
> along to
> openbios :-) That would also allow openbios-less booting using epapr  
> on
> ppc which is handy.

I think there is a proposal for exactly that going on on the qemu ml  
right now.

So I suppose the best would be to keep it hardcoded for now and move  
to the dt based approach later?

Alex

>
> Cheers,
> Ben.
>



More information about the OpenBIOS mailing list