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