summaryrefslogtreecommitdiff
path: root/sys-clipper.S
blob: e3fc6f5e58887e1b790c4a14a0d6482fe1f9e596 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
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