Port-powerpc archive
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]
SMP in ppcoea-renovation
-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1
Hello,
now that I have a dual G4 box I gave ppcoea-renovation a shot. Here's
what I found:
- - uniprocessor kernels seem to work just fine, as expected
- - SMP kernels don't compile but that's trivial to fix, the secondary
CPU startup code tries to write to some OpenPIC register to make sure
only the 1st CPU gets interrupts.
- - with those things fixed the kernel stops in cpu_spinup() when
trying to reset the 2nd CPU via out8(gpio, 4)
The code looks ok to me, gpio is the same as in a 4.0 kernel which
works. So I suspected missing or wrong BAT mappings for the gpio's
address but changing oeaofw_ppcinit() back to use the same code as
macppc in 4.0 didn't help.
So, what needs to be done is:
- - find out why out8(gpio, 4) hangs the machine
- - add an abstract interface for IPIs , hide information which vector
to use etc. inside the PIC drivers, find a sane way to register IPI
handlers.
- - deal with special cases where only CPU0 can handle interrupts like
with legacy Apple PICs. Find out if that's a hardware limitation or
just laziness. Unfortunately I don't have an Old World SMP box.
- - do we need to add locking to interrupt handling code? At least with
Old World PICs we probably have to if we want both CPUs to take
interrupt. OpenPIC seems to do something like that in hardware?
have fun
Michael
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.7 (Darwin)
iQEVAwUBRwLCo8pnzkX8Yg2nAQIrAgf+Lp1Tg+a480UU7PXY2MYrpcfEsQbmQY4k
A1pPkSXFUm/qOz74sCWAl0DvNOvNekBTgA1jnucfGhDKFe9HPGilhNjIW/aDdUYT
fCjuveF5cQHVpDk6opCeWFxVPIJsr6N9YxQX8kQi3DxuhdAHQNo4jqvs/0T6S0cZ
ZNRhdN0/zEUoiPlIzDePF4yUwC16tbtBeDxsBPtlP5odpdF1y18aC4AtPRXMO5kS
+vYX3TNqxIGRjGs5agREkktD0J6UDUCYytzRQ7SH6oWL8xHdEizQ9b59Q6PSGnbl
qDnsUh13GL486UZfdsrLcYvu/yz1XkyRCvXUeshRxwniO3ICo0SpBQ==
=mg+5
-----END PGP SIGNATURE-----
Home |
Main Index |
Thread Index |
Old Index