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