Charles.Forsyth20060303644188019 years agoHistory
95 lines · 2.6 KB · C
RawDownload
/* * 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 */