diff options
author | Richard Henderson <rth@twiddle.net> | 2011-05-02 08:48:14 -0700 |
---|---|---|
committer | Richard Henderson <rth@twiddle.net> | 2011-05-02 10:16:53 -0700 |
commit | 2441ea1234e5b4399954ca64a101794cf6e813b3 (patch) | |
tree | 44132ef73b15e4929cad97bde91729fe4142f9f1 /core-typhoon.h | |
parent | 28a139998d9c6f123168c0edd5117ab00c0a6288 (diff) | |
download | qemu-palcode-2441ea1234e5b4399954ca64a101794cf6e813b3.zip qemu-palcode-2441ea1234e5b4399954ca64a101794cf6e813b3.tar.gz qemu-palcode-2441ea1234e5b4399954ca64a101794cf6e813b3.tar.bz2 |
clipper: Report ISA interrupts properly.
Diffstat (limited to 'core-typhoon.h')
-rw-r--r-- | core-typhoon.h | 28 |
1 files changed, 15 insertions, 13 deletions
diff --git a/core-typhoon.h b/core-typhoon.h index 854d4d0..cee6e95 100644 --- a/core-typhoon.h +++ b/core-typhoon.h @@ -105,6 +105,7 @@ #define TYPHOON_PCHIP0_PCI_MEM 0 #define TYPHOON_PCHIP0_PCI_IO 0x1fc000000 #define TYPHOON_PCHIP0_PCI_CONF 0x1fe000000 +#define TYPHOON_PCHIP0_PCI_IACK 0x1f8000000 #ifdef __ASSEMBLER__ @@ -117,18 +118,28 @@ 64-bit constants, dropping them all into the .lit8 section. It is better for us to build these by hand. */ .macro LOAD_PHYS_CCHIP ret - lda \ret, 0x400d + lda \ret, (PIO_PHYS_ADDR + TYPHOON_CCHIP) >> 29 sll \ret, 29, \ret .endm .macro LOAD_PHYS_PCHIP0 ret - lda \ret, 0x400c + lda \ret, (PIO_PHYS_ADDR + TYPHOON_PCHIP0) >> 29 sll \ret, 29, \ret .endm +.macro LOAD_PHYS_PCHIP0_IACK ret + .set macro + lda \ret, (PIO_PHYS_ADDR + TYPHOON_PCHIP0_PCI_IACK) >> 24 + .set nomacro + sll \ret, 24, \ret +.endm + .macro LOAD_KSEG_PCI_IO ret - ldah \ret, -48 - lda \ret, 0x1fc0(\ret) + .set macro + // Note that GAS shifts are logical. Force arithmetic shift style + // results by negating before and after the shift. + lda \ret, -(-(PIO_KSEG_ADDR + TYPHOON_PCHIP0_PCI_IO) >> 20) + .set nomacro sll \ret, 20, \ret .endm @@ -160,15 +171,6 @@ stq_p \t2, TYPHOON_CCHIP_MISC(\t0) .endm -/* Load the device interrupt vector. */ -.macro SYS_DEV_VECTOR ret - mfpr \ret, ptCpuDIR - ldq_p \ret, 0(\ret) - cttz \ret, \ret - sll \ret, 4, \ret - lda \ret, 0x800(\ret) -.endm - /* Interrupt another CPU. */ .macro SYS_WRIPIR target, t0, t1, t2 LOAD_PHYS_CCHIP \t0 |