xref: /plan9-contrib/sys/src/boot/vt4/physmem.h (revision da917039c7f233c1a27d212bf012c6afa758af39)
1*da917039SDavid du Colombier /*
2*da917039SDavid du Colombier  * Memory-mapped IO
3*da917039SDavid du Colombier  */
4*da917039SDavid du Colombier 
5*da917039SDavid du Colombier /*
6*da917039SDavid du Colombier  * virtex4 system loses top 1/9th of 128MB to ECC in the secure memory system.
7*da917039SDavid du Colombier  * if the mac boundary is not a cache-line boundary (multiple of 32),
8*da917039SDavid du Colombier  * don't touch anything in the last cache-line (round mac boundary down
9*da917039SDavid du Colombier  * to a multiple of 32).  MEMTOP computes the first untouchable address.
10*da917039SDavid du Colombier  */
11*da917039SDavid du Colombier #define MEMTOP(phys)	(((((phys)/DCACHELINESZ)*8)/9) * DCACHELINESZ)
12*da917039SDavid du Colombier #define MAXMEM		(128*MB)
13*da917039SDavid du Colombier 
14*da917039SDavid du Colombier /* memory map for rae's virtex4 design */
15*da917039SDavid du Colombier #define	PHYSDRAM	0
16*da917039SDavid du Colombier #define PHYSSRAM	0xfffe0000	/* 128K long, in top 128M */
17*da917039SDavid du Colombier 
18*da917039SDavid du Colombier #define	Io		0xf0000000	/* ~512K of IO registers */
19*da917039SDavid du Colombier #define Uartlite	0xf0000000
20*da917039SDavid du Colombier #define Gpio		0xf0010000
21*da917039SDavid du Colombier #define Intctlr		0xf0020000
22*da917039SDavid du Colombier #define Temac		0xf0030000
23*da917039SDavid du Colombier #define Llfifo		0xf0040000
24*da917039SDavid du Colombier #define Dmactlr		0xf0050000
25*da917039SDavid du Colombier #define Dmactlr2	0xf0060000
26*da917039SDavid du Colombier /*
27*da917039SDavid du Colombier  * if these devices exist in a given hardware configuration,
28*da917039SDavid du Colombier  * they will be at these addresses.
29*da917039SDavid du Colombier  */
30*da917039SDavid du Colombier #define Qtm		0xf0070000	/* encrypted memory control */
31*da917039SDavid du Colombier #define Mpmc		0xf0080000	/* multi-port memory controller */
32*da917039SDavid du Colombier /* setting low bit interrupts cpu0; don't set Hie */
33*da917039SDavid du Colombier #define Intctlr2	0xf0090000	/* sw interrupt controller */
34