Incomplete (potentially broken) Raven Chipset support for PREP machines.
VALETTE Eric
valette at crf.canon.fr
Thu Dec 10 00:32:54 EST 1998
>>>>> "Gabriel" == Gabriel Paubert <paubert at iram.es> writes:
Gabriel> To quote Linus: there ain't such thing as interrupt priority (I disagree
Gabriel> for RT, and while trying to measure interrupt latency on VME, I've found
Gabriel> nasty occasional long delays).
Being the guy that have specified and architectured Chorus Interrupt handling
I also disagree.
>> 3) handle multi-function devices?
Gabriel> Hopefully my patch works for multifunction devices too.
>> 4) Change the IRQ for PCI devices... (writting the PCI configuration
>> register is not sufficeint. You must also enable the interrupt in the
>> raven registers),
Gabriel> This is done when doing request_irq.
NO!. The actual code do nothing at RAVEN MPIC interrupt controller level.
It works because the cascade mode is not used (M bit of the RAVEN MPIC
global configuration register Page 2-73 of the mcp750a/pg1 manual).
extract of motorola doc :
M bit : 0 => pass through
1 cascade mode
"CASCADE MODE. Allows cascading of an external 8259 pair connected
to the first interrupt source input pin (0). In the pass through mode,
interrupt source 0 is passed directly through to the processor 0 INT pin.
RavenMPIC is essentially disabled. In the mixed mode, 8259 interrupts
are delivered using the priority and distribution mechanism of RavenMPIC.
The Vector/Priority and Destination registers for interrupt source 0 are
used to control the delivery mode for all 8259 generated interrupt sources.
Basically anything that comes from ISA/PCI go first through the
8259_emulation = > raven => processor.
NOTE : there is no MPC106/MPC105 and I cannot figure what the following
supposed code for routing the interrupts does...
-----------------
unsigned char *ibc_pirq = (unsigned char *)0x80800860; <===== Can find anything on RAVEN...
unsigned char *ibc_pcicon = (unsigned char *)0x80800840; <==== that lloks like this
....
/* Set up mapping from slots */
for (i = 1; i <= 4; i++)
{
ibc_pirq[i-1] = Motherboard_routes[i];
}
/* Enable PCI interrupts */
*ibc_pcicon |= 0x20;
-----------------
Gabriel> Note that if you have an initrd image, please send me. Eitehr I have
Gabriel> managed to destriy them all, or they have disappeared from vger. But
Gabriel> I want to add initrd support to my bootloader.
You mean a ramdisk image??? Sure I have one but in order to use it you must
change you RAMDISK configuration to have 8192 instead of 4096 1K block...
Putting it on your ftp server is convenient?
--
__
/ ` Eric Valette
/-- __ o _. Canon CRF
(___, / (_(_(__ Rue de la touche lambert
35517 Cesson-Sevigne Cedex
FRANCE
Tel: +33 (0)2 99 87 68 91 Fax: +33 (0)2 99 84 11 30
E-mail: valette at crf.canon.fr
[[ This message was sent via the linuxppc-dev mailing list. Replies are ]]
[[ not forced back to the list, so be sure to Cc linuxppc-dev if your ]]
[[ reply is of general interest. To unsubscribe from linuxppc-dev, send ]]
[[ the message 'unsubscribe' to linuxppc-dev-request at lists.linuxppc.org ]]
More information about the Linuxppc-dev
mailing list