Subject: Re: ext_intr thoughts
To: Tim Rightnour <root@garbled.net>
From: Michael Lorenz <macallan@netbsd.org>
List: port-powerpc
Date: 04/29/2007 03:11:18
--Apple-Mail-2--192500137
Content-Type: multipart/mixed; boundary=Apple-Mail-1--192500187
--Apple-Mail-1--192500187
Content-Transfer-Encoding: 7bit
Content-Type: text/plain;
charset=US-ASCII;
format=flowed
Hello,
so I sat down and ripped macppc's extintr.c apart and a few minutes ago
my PowerBook went multiuser with the new interrupt code.
For macppc we need to support 4 different PICs:
- GrandCentral - 32 IRQs, MP capable
- ohare - 32 IRQs, might have a 2nd, identical PIC, no MP capability
- Heathrow - 64 IRQs, might have a 2nd identical PIC, MP capable
- and OpenPIC
I only did ohare for now, because that's what the PowerBook uses.
We need an additional method - pic_reenable_irq, which checks for lost
interrupts and marks them as pending. Since the pending filed is in
struct cpu we can't do that during setup, at least not on macppc. The
spl* stuff in interrupts.c should probably go to powerpc/ so only the
actual PIC setup stays there.
Then, what's openpic_eoi() for? Just interrupt clearing? I added
pic_ack_irq for it but that can probably go.
Some of the stuff in pic/ is rather powerpc-ish ( mtmsr/mfmsr etc. ) -
we should probably require macros for that in machine/intr.h, with that
the code would be pretty much MI.
Then we need to specify how PICs are supposed to signal IPIs, that
seems to be rather different between GC and OpenPIC.
And lastly - is there a good reason to let only CPU 0 take non-IPI
interrupts? I think with a bunch of mutex_enter/mutex_exit we can let
them all help.
have fun
Michael
--Apple-Mail-1--192500187
Content-Transfer-Encoding: base64
Content-Type: application/x-gzip;
x-unix-mode=0644;
name="macppc.tar.gz"
Content-Disposition: attachment;
filename=macppc.tar.gz
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
--Apple-Mail-1--192500187
Content-Transfer-Encoding: base64
Content-Type: application/x-gzip;
x-unix-mode=0644;
name="pic.tar.gz"
Content-Disposition: attachment;
filename=pic.tar.gz
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
bt6DfHolGu3jR3anlK08gd/xe76/4yQyd6EJnctKzfSJ7zkLjM+0iMvfG7o/dUB780lJ2r4qhUCj
JbcbZE4F7Z7IbXB8S5ravGSNuvCg/0EIT+Nwv/KgaP5e33VPzK7qkDGdjb2PkxoJmI99RxbwWX0J
ZXECfbV9eMIni3SiNLfJMyyVF/pNUrYKOdQz/jlBlu5yL1BgS+EF2OxN7eLXoLRpLCcHLU7VLzOx
AgzVx4pqcsC/+/s/9XuD3/6A7wmXlS+d/7Ozu7tw/s/2ZkN///kNiv7+U3//qb//1N9/6u8/9fef
f8fvP/X5P3+b83/0aT76NB99ms8fXDD/A1LI4rmPlAB+If/b2traEed/b+1u72xS/rerz//5JkXn
fzr/0/mfzv90/qfzv79d/vdnO9e/QJmof//jz4n/lv79j53tuo7/vkH5M//+x63++x9/eskF81i7
fw85/3Vn/vzXRmNTz/9vUXT+p/M/nf/p/E/nfzr/+9vlf/r8V33+60Sf/6rPf9Xnv+rzX/X5r/r8
V33+qz7/VZ//qs9/1ee/6vNf9fmv+vxXff6rPv9Vn/9a0ue/6vNf9fmv+vxXff6rPv9Vn/+qz3/V
57/q81/1+a/6/Fd9/qs+/1Wf/6rPf9Xnv+rzX/X5r/r8V33+qz7/VZ//qs9//eue/6pPf9Wnv+rT
X/Xpr/r0V1100UUXXXTRRRdddNFFF1100UUXXXTRRRdddNFFF1100UUXXXTRRRdddNHlL1/+HweJ
8msAyAAA
--Apple-Mail-1--192500187
Content-Transfer-Encoding: 7bit
Content-Type: text/plain;
charset=US-ASCII;
format=flowed
--Apple-Mail-1--192500187--
--Apple-Mail-2--192500137
content-type: application/pgp-signature; x-mac-type=70674453;
name=PGP.sig
content-description: This is a digitally signed message part
content-disposition: inline; filename=PGP.sig
content-transfer-encoding: 7bit
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.2.4 (Darwin)
iQEVAwUBRjRFFspnzkX8Yg2nAQKQ7ggAssk7QuYWH7QfpKI2HJG2GuMxD/2ROi5A
B4y/1sbSA1M13UCIX1xDm5fVmHcm/6H3ByjPBSk7XU/JI/BtorKpKPd7De7I1wPk
qdEBMCcHhAWNXsxf41zlyETfdF4vTkqCb57LqYSvcdK1tABMK0YBeNQyEkxSBOgJ
UIJbKMa1dC3T8pQqRdfCFNS8YgBZYQEnRvOrIoh6QrN0vpJyNEuzmnRkEwRPHMy+
z10mP53CCphvtk9djp9vAxMOYWuDoSXZjWRhl6DJxnHZvR2KFY9qO9FfIAxlWaly
7v3nigfH+YHcRqHMvEyluJ17JfRAdquzS9eLmAdYC9sqrbi0ScsTJw==
=rgC7
-----END PGP SIGNATURE-----
--Apple-Mail-2--192500137--