PPC BSPs VME changes
strauman at slac.stanford.edu
Mon Jan 29 19:48:04 UTC 2007
I am about to commit (to 4.7 branch and head) a few changes
to the VME support of PPC BSPs using the 'vmeUniverse' driver.
1) move the user API header 'VME.h' from powerpc/shared/vme/
to shared/vmeUniverse -- eventually this header should be moved
to 'cpukit' where other API headers (pci.h, irq.h) live.
2) cleanup of the 'ep1a, score3e, mvme5500' BSPs so that more
code from the 'shared' area is used. The idea is that BSPs should
define relevant constants in their VMEConfig.h and use the rest
of the files from 'powerpc/shared/vme'.
3) I also removed the definition of 'BSP_PIC_DO_EOI' from
BSPs that inappropriately defined it. I added more comments
to motorola_powerpc/include/bsp.h explaining the purpose
of this symbol so hopefully future BSPs won't commit the
same error. The READMEs in the vmeUniverse driver
directory have also been updated.
4) I added a API for VME DMA as well as code that implements
it (using the tundra drivers).
I verified that 'ep1a', 'mvme2307', 'mvme2100', 'score3e', 'mvme5500'
build w/o errors or warnings [the VME pieces, that's to say]. I didn't
try to build all variants of 'motorola_powerpc', though.
I performed run-time tests on all platforms available to me ('mvme2307',
'mvme5500' as well as two other BSPs using vmeUniverse and/or vmeTsi148
that I use locally).
Users of 'ep1a', 'mvme2100', 'score3e' are encouraged to test
particularly the VME interrupt functionality [which may have been
broken all along]. For that purpose, the vmeUniverse driver features the
vmeUniverseIntLoopbackTst(int irq_level, unsigned vector)
It installs diagnostic ISRs, raises a VME interrupt and
verifies that the ISR are executed printing diagnostic
messages to the console. Consult 'vmeUniverse.h/vmeUniverse.c'
for more information.
If there are no serious objections then I'll go ahead and
commit the changes by the end of this business day.
More information about the users