xref: /plan9-contrib/sys/src/9/ppc/blast.h (revision 5d9de2d38d2503efca29e12e0e32036368a7a75f)
1458db832SDavid du Colombier /*
2458db832SDavid du Colombier  * Here, we define everything that is specific for the blast board from Crawford Hill
3458db832SDavid du Colombier  */
4458db832SDavid du Colombier 
5458db832SDavid du Colombier 
6458db832SDavid du Colombier /* Clock speed of the blast board */
7458db832SDavid du Colombier #define	CLKIN	72000000
8458db832SDavid du Colombier 
9458db832SDavid du Colombier /*
10458db832SDavid du Colombier  * Blast memory layout:
11458db832SDavid du Colombier  *	CS0: FE000000 -> FFFFFFFF (Flash)
12458db832SDavid du Colombier  *	CS1: FC000000 -> FCFFFFFF (DSP hpi)
13458db832SDavid du Colombier  *	CS2: 00000000 -> 03FFFFFF (60x sdram)
14458db832SDavid du Colombier  *	CS3: 04000000 -> 04FFFFFF (FPGA)
15458db832SDavid du Colombier  *	CS4: 05000000 -> 06FFFFFF (local bus sdram)
16458db832SDavid du Colombier  *	CS5: 07000000 -> 070FFFFF (eeprom - not populated)
17458db832SDavid du Colombier  *	CS6: E0000000 -> E0FFFFFF (FPGA)
18458db832SDavid du Colombier  *
19458db832SDavid du Colombier  * Main Board memory lay out:
20458db832SDavid du Colombier  *	CS0: FE000000 -> FEFFFFFF (16 M FLASH)
21458db832SDavid du Colombier  *	CS1: FC000000 -> FCFFFFFF (16 M DSP1)
22458db832SDavid du Colombier  *	CS2: 00000000 -> 03FFFFFF (64 M SDRAM)
23458db832SDavid du Colombier  *	CS3: 04000000 -> 04FFFFFF (16M DSP2)
24458db832SDavid du Colombier  *	CS4: 05000000 -> 06FFFFFF (32 M Local SDRAM)
25458db832SDavid du Colombier  *	CS5: 07000000 -> 070FFFFF (eeprom - not populated)
26458db832SDavid du Colombier  *	CS6: E0000000 -> E0FFFFFF (16 M FPGA)
27458db832SDavid du Colombier  *
28458db832SDavid du Colombier  *	CS2, CS3, CS4, (and CS5) are covered by DBAT 0,  CS0 and CS1 by DBAT 3, CS6 by DBAT 2
29458db832SDavid du Colombier  */
30*5d9de2d3SDavid du Colombier #define	IMMR		0xf0000000
31*5d9de2d3SDavid du Colombier 
32458db832SDavid du Colombier #define	FLASHMEM	0xfe000000
33458db832SDavid du Colombier #define	FLASHSIZE	0x01000000
34458db832SDavid du Colombier #define	DSP1BASE		0xfc000000
35458db832SDavid du Colombier #define	DSP1SIZE		0x01000000
36458db832SDavid du Colombier #define	MEM1BASE	0x00000000
37458db832SDavid du Colombier #define	MEM1SIZE	0x04000000
38458db832SDavid du Colombier #define	DSP2BASE		0x04000000
39458db832SDavid du Colombier #define	DSP2SIZE		0x01000000
40458db832SDavid du Colombier #define	MEM2BASE	0x05000000
41458db832SDavid du Colombier /* #define	MEM2SIZE	0x02000000 */
42458db832SDavid du Colombier #define	MEM2SIZE	0
43458db832SDavid du Colombier #define	FPGABASE		0xe0000000
44458db832SDavid du Colombier #define	FPGASIZE		0x01000000
45458db832SDavid du Colombier 
46458db832SDavid du Colombier #define	PLAN9INI		0x00460000
47458db832SDavid du Colombier 
48458db832SDavid du Colombier #define	TLBENTRIES	32
49458db832SDavid du Colombier /*
50458db832SDavid du Colombier  *  PTE bits for fault.c.  These belong to the second PTE word.  Validity is
51458db832SDavid du Colombier  *  implied for putmmu(), and we always set PTE0_V.  PTEVALID is used
52458db832SDavid du Colombier  *  here to set cache policy bits on a global basis.
53458db832SDavid du Colombier  */
54458db832SDavid du Colombier #define	PTEVALID		PTE1_M
55458db832SDavid du Colombier #define	PTEWRITE		(PTE1_RW|PTE1_C)
56458db832SDavid du Colombier #define	PTERONLY	PTE1_RO
57458db832SDavid du Colombier #define	PTEUNCACHED	PTE1_I
58458db832SDavid du Colombier 
59458db832SDavid du Colombier /* SMC Uart configuration */
60458db832SDavid du Colombier #define	SMC1PORT	3	/* Port D */
61458db832SDavid du Colombier #define	SMTXD1		BIT(9)
62458db832SDavid du Colombier #define	SMRXD1		BIT(8)
63458db832SDavid du Colombier 
64458db832SDavid du Colombier /* Ethernet FCC configuration */
65458db832SDavid du Colombier #define	A1txer	 	0x00000004
66458db832SDavid du Colombier #define	A1rxdv	 	0x00000010
67458db832SDavid du Colombier #define	A1txen		 0x00000008
68458db832SDavid du Colombier #define	A1rxer		 0x00000020
69458db832SDavid du Colombier #define	A1col		 0x00000001
70458db832SDavid du Colombier #define	A1crs		 0x00000002
71458db832SDavid du Colombier #define	A1txdat		 0x00003c00
72458db832SDavid du Colombier #define	A1rxdat		 0x0003c000
73458db832SDavid du Colombier #define	B2txer		 0x00000001
74458db832SDavid du Colombier #define	B2rxdv		 0x00000002
75458db832SDavid du Colombier #define	B2txen		 0x00000004
76458db832SDavid du Colombier #define	B2rxer		 0x00000008
77458db832SDavid du Colombier #define	B2col		 0x00000010
78458db832SDavid du Colombier #define	B2crs		 0x00000020
79458db832SDavid du Colombier #define	B2txdat		 0x000003c0
80458db832SDavid du Colombier #define	B2rxdat		 0x00003c00
81458db832SDavid du Colombier #define	B3rxdv		 0x00004000
82458db832SDavid du Colombier #define	B3rxer		 0x00008000
83458db832SDavid du Colombier #define	B3txer		 0x00010000
84458db832SDavid du Colombier #define	B3txen		 0x00020000
85458db832SDavid du Colombier #define	B3col		 0x00040000
86458db832SDavid du Colombier #define	B3crs		 0x00080000
87458db832SDavid du Colombier #define	B3txdat		 0x0f000000
88458db832SDavid du Colombier #define	B3rxdat		 0x00f00000
89458db832SDavid du Colombier 
90458db832SDavid du Colombier #define	A1psor0		 (A1rxdat | A1txdat)
91458db832SDavid du Colombier #define	A1psor1		 (A1col | A1crs | A1txer | A1txen | A1rxdv | A1rxer)
92458db832SDavid du Colombier #define	A1dir0		 (A1rxdat | A1crs | A1col | A1rxer | A1rxdv)
93458db832SDavid du Colombier #define	A1dir1		 (A1txdat | A1txen | A1txer)
94458db832SDavid du Colombier #define	B2psor0		 (B2rxdat | B2txdat | B2crs | B2col | B2rxer | B2rxdv | B2txer)
95458db832SDavid du Colombier #define	B2psor1		 (B2txen)
96458db832SDavid du Colombier #define	B2dir0		 (B2rxdat | B2crs | B2col | B2rxer | B2rxdv)
97458db832SDavid du Colombier #define	B2dir1		 (B2txdat | B2txen | B2txer)
98458db832SDavid du Colombier #define	B3psor0		 (B3rxdat | B3txdat | B3crs | B3col | B3rxer | B3rxdv | B3txer | B3txen)
99458db832SDavid du Colombier #define	B3psor1		 0
100458db832SDavid du Colombier #define	B3dir0		 (B3rxdat | B3crs | B3col | B3rxer | B3rxdv)
101458db832SDavid du Colombier #define	B3dir1		 (B3txdat | B3txen | B3txer)
102