diff options
author | fishsoupisgood <github@madingley.org> | 2019-04-29 01:17:54 +0100 |
---|---|---|
committer | fishsoupisgood <github@madingley.org> | 2019-05-27 03:43:43 +0100 |
commit | 3f2546b2ef55b661fd8dd69682b38992225e86f6 (patch) | |
tree | 65ca85f13617aee1dce474596800950f266a456c /roms/SLOF/board-js2x/slof/ioapic.fs | |
download | qemu-master.tar.gz qemu-master.tar.bz2 qemu-master.zip |
Diffstat (limited to 'roms/SLOF/board-js2x/slof/ioapic.fs')
-rw-r--r-- | roms/SLOF/board-js2x/slof/ioapic.fs | 36 |
1 files changed, 36 insertions, 0 deletions
diff --git a/roms/SLOF/board-js2x/slof/ioapic.fs b/roms/SLOF/board-js2x/slof/ioapic.fs new file mode 100644 index 00000000..685d6dfe --- /dev/null +++ b/roms/SLOF/board-js2x/slof/ioapic.fs @@ -0,0 +1,36 @@ +\ ***************************************************************************** +\ * Copyright (c) 2004, 2008 IBM Corporation +\ * All rights reserved. +\ * This program and the accompanying materials +\ * are made available under the terms of the BSD License +\ * which accompanies this distribution, and is available at +\ * http://www.opensource.org/licenses/bsd-license.php +\ * +\ * Contributors: +\ * IBM Corporation - initial implementation +\ ****************************************************************************/ + +\ ( ioapic-addr -- ) +\ IO-APIC setup. + +CONSTANT ioapic + +: ioapic@ ( offset -- x ) ioapic rb! ioapic 10 + rl@-le ; +: ioapic! ( x offset -- ) ioapic rb! ioapic 10 + rl!-le ; + +: init-ioapic ( irq# -- ) + 1a000 or 1 ioapic@ 10 rshift 1+ 0 ?DO + 0 i 2* 11 + ioapic! dup + \ move all ISA IRQs to 40 and higher, + \ as to not conflict with U3/U4 internal + \ IRQs. ISA IRQs are positive edge. + dup ff and 0c < IF a000 - 40 + THEN + i 2* 10 + ioapic! 1+ LOOP drop +; + +: dump-ioapic ( -- ) + 1 ioapic@ 10 rshift 1+ + dup cr . ." irqs" 0 ?DO + cr i 2 0.r space i 2* 11 + ioapic@ 8 0.r + i 2* 10 + ioapic@ 8 0.r LOOP +; |