blob: f76867a81b11b738b755998956cbfa165798596e (
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
91
92
93
94
95
|
/*
* Memory and machine-specific definitions. Used in C and assembler.
*/
/*
* Sizes
*/
#define BI2BY 8 /* bits per byte */
#define BI2WD 32 /* bits per word */
#define BY2WD 4 /* bytes per word */
#define BY2PG 4096 /* bytes per page */
#define WD2PG (BY2PG/BY2WD) /* words per page */
#define PGSHIFT 12 /* log(BY2PG) */
#define PGROUND(s) (((s)+(BY2PG-1))&~(BY2PG-1))
#define MAXMACH 1 /* max # cpus system can run */
#define CACHELINELOG 4
#define CACHELINESZ (1<<CACHELINELOG)
/*
* Time
*/
#define HZ (50) /* clock frequency */
#define MS2HZ (1000/HZ) /* millisec per clock tick */
#define TK2SEC(t) ((t)/HZ) /* ticks to seconds */
#define TK2MS(t) ((((ulong)(t))*1000)/HZ) /* ticks to milliseconds */
#define MS2TK(t) ((((ulong)(t))*HZ)/1000) /* milliseconds to ticks */
#define MHz 1000000
/*
* Fundamental values
*/
#define KZERO 0 /* bootstrap runs in real mode */
#define MACHSIZE 4096
/*
* physical MMU
*/
#define KSEG0 0x20000000
#define KSEGM 0xE0000000 /* mask to check which seg */
/*
* MSR bits
*/
#define POW 0x40000 /* enable power mgmt */
#define TGPR 0x20000 /* GPR0-3 remapped; 603/603e specific */
#define ILE 0x10000 /* interrupts little endian */
#define EE 0x08000 /* enable external/decrementer interrupts */
#define PR 0x04000 /* =1, user mode */
#define FPE 0x02000 /* enable floating point */
#define ME 0x01000 /* enable machine check exceptions */
#define FE0 0x00800
#define SE 0x00400 /* single-step trace */
#define BE 0x00200 /* branch trace */
#define FE1 0x00100
#define IP 0x00040 /* =0, vector to nnnnn; =1, vector to FFFnnnnn */
#define IR 0x00020 /* enable instruction address translation */
#define DR 0x00010 /* enable data address translation */
#define RI 0x00002 /* exception is recoverable */
#define LE 0x00001 /* little endian mode */
#define KMSR (ME|FE0|FE1|FPE)
#define UMSR (KMSR|PR|EE|IR|DR)
/*
* MPC82x addresses; mpc8bug is happy with these
*/
#define BCSRMEM 0x02100000
#define INTMEM 0x02200000
#define FLASHMEM 0x02800000
#define SDRAMMEM 0x03000000
#define DPRAM (INTMEM+0x2000)
#define DPLEN1 0x400
#define DPLEN2 0x200
#define DPLEN3 0x100
#define DPBASE (DPRAM+DPLEN1)
#define SCC1P (INTMEM+0x3C00)
#define I2CP (INTMEM+0x3C80)
#define MISCP (INTMEM+0x3CB0)
#define IDMA1P (INTMEM+0x3CC0)
#define SCC2P (INTMEM+0x3D00)
#define SCC3P (INTMEM+0x3E00)
#define SCC4P (INTMEM+0x3F00)
#define SPIP (INTMEM+0x3D80)
#define TIMERP (INTMEM+0x3DB0)
#define SMC1P (INTMEM+0x3E80)
#define DSP1P (INTMEM+0x3EC0)
#define SMC2P (INTMEM+0x3F80)
#define DSP2P (INTMEM+0x3FC0)
#define KEEP_ALIVE_KEY 0x55ccaa33 /* clock and rtc register key */
|