diff options
author | Richard Henderson <rth@twiddle.net> | 2011-04-27 09:43:00 -0700 |
---|---|---|
committer | Richard Henderson <rth@twiddle.net> | 2011-04-27 09:43:00 -0700 |
commit | ea0e38f6bc1e458b34b11b40c1092036db34f548 (patch) | |
tree | 78a8757d7a5d6bc16cce2c63beb652b78dd520a6 /sys-clipper.S | |
parent | 331e6b4c75dd8095a29ed2991e32a862dc40074b (diff) | |
download | qemu-palcode-ea0e38f6bc1e458b34b11b40c1092036db34f548.zip qemu-palcode-ea0e38f6bc1e458b34b11b40c1092036db34f548.tar.gz qemu-palcode-ea0e38f6bc1e458b34b11b40c1092036db34f548.tar.bz2 |
Re-org for Clipper system.
Diffstat (limited to 'sys-clipper.S')
-rw-r--r-- | sys-clipper.S | 90 |
1 files changed, 90 insertions, 0 deletions
diff --git a/sys-clipper.S b/sys-clipper.S new file mode 100644 index 0000000..e3fc6f5 --- /dev/null +++ b/sys-clipper.S @@ -0,0 +1,90 @@ +#include "pal.h" +#include SYSTEM_H + +/* + * Sys_Setup + * + * Do any system specific setup necessary. + * + * INPUT PARAMETERS + * + * r16 (a0) = whami + * r26 (ra) = return address + */ + .globl Sys_Setup + .ent Sys_Setup +Sys_Setup: + .frame $sp, 0, p7, 0 + lda t0, TYPHOON_CCHIP_DIM0 + lda t1, TYPHOON_CCHIP_DIM2 + lda t2, TYPHOON_CCHIP_IIC0 + lda t3, TYPHOON_CCHIP_IIC2 + and a0, 2, t4 + cmovne t4, t1, t0 + cmovne t4, t3, t2 + and a0, 1, t4 + sll t4, 6, t4 + addq t0, t4, t0 + addq t2, t4, t2 + LOAD_PHYS_CCHIP t4 + addq t0, t4, t0 + addq t2, t4, t2 + mtpr t0, ptCpuDIR + mtpr t2, ptCpuIIC + ret + .end Sys_Setup + +/* + * Cserve_Ena + * + * Unmask a PCI interrupt + */ + .globl Cserve_Ena +Cserve_Ena: + // FIXME + hw_rei +ENDFN Cserve_Ena + +/* + * Cserve_Dis + * + * Mask a PCI interrupt + */ + .globl Cserve_Dis +Cserve_Dis: + // FIXME + hw_rei +ENDFN Cserve_Dis + +/* + * inb + * + * Read a byte from the PCI I/O bus. + */ + .globl inb + .ent inb +inb: + .frame $sp, 0, $26, 0 + .prologue 0 + LOAD_KSEG_PCI_IO v0 + addq v0, a0, v0 + ldbu v0, 0(v0) + ret + .end inb + +/* + * outb + * + * Write a byte to the PCI I/O bus. + */ + .globl outb + .ent outb +outb: + .frame $sp, 0, $26, 0 + .prologue 0 + LOAD_KSEG_PCI_IO p0 + addq p0, a1, p0 + stb a0, 0(p0) + ret + .end outb + |