## diffname mtx/mem.h 2001/0810 ## diff -e /dev/null /n/emeliedump/2001/0810/sys/src/9/mtx/mem.h 0a /* none of this is meant to be correct yet */ /* * 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 BY2V 8 /* bytes per vlong */ #define BY2PG 8192 /* bytes per page */ #define WD2PG (BY2PG/BY2WD) /* words per page */ #define PGSHIFT 13 /* log(BY2PG) */ #define ROUND(s, sz) (((s)+(sz-1))&~(sz-1)) #define PGROUND(s) ROUND(s, BY2PG) #define BLOCKALIGN 8 #define BY2PTE 8 /* bytes per pte entry */ #define PTE2PG (BY2PG/BY2PTE) /* pte entries per page */ #define MAXMACH 1 /* max # cpus system can run */ #define KSTACK 4096 /* Size of kernel stack */ /* * Time */ #define HZ 100 /* clock frequency */ #define MS2HZ (1000/HZ) #define TK2SEC(t) ((t)/HZ) /* ticks to seconds */ #define MS2TK(t) (((t)*HZ+500)/1000) /* milliseconds to closest tick */ /* * Magic registers */ #define MACH 30 /* R30 is m-> */ #define USER 29 /* R29 is up-> */ /* * Fundamental addresses */ #define UREGSIZE ((8+32)*4) /* * MMU * */ /* L1 table entry and Mx_TWC flags */ #define PTEVALID (1<<0) #define PTEWT (1<<1) /* write through */ #define PTE4K (0<<2) #define PTE512K (1<<2) #define PTE8MB (3<<2) #define PTEG (1<<4) /* guarded */ /* L2 table entry and Mx_RPN flags (also PTEVALID) */ #define PTECI (1<<1) /* cache inhibit */ #define PTESH (1<<2) /* page is shared; ASID ignored */ #define PTELPS (1<<3) /* large page size */ #define PTEWRITE 0x9F0 /* TLB and MxEPN flag */ #define TLBVALID (1<<9) #define TLBSETS 32 /* number of tlb sets (603/603e) */ #define PTEMAPMEM (1024*1024) #define PTEPERTAB (PTEMAPMEM/BY2PG) #define SEGMAPSIZE 512 #define SSEGMAPSIZE 16 /* * Address spaces */ #define UZERO 0 /* base of user address space */ #define UTZERO (UZERO+BY2PG) /* first address in user text */ #define USTKTOP (TSTKTOP-TSTKSIZ*BY2PG) /* byte just beyond user stack */ #define TSTKTOP KZERO /* top of temporary stack */ #define TSTKSIZ 100 #define KZERO 0x80000000 /* base of kernel address space */ #define KTZERO (KZERO+0x400000) /* first address in kernel text */ #define USTKSIZE (4*1024*1024) /* size of user stack */ #define PCI1 0x40000000 #define PCI0 0xfd000000 #define IOMEM 0xfe000000 #define FALCON 0xfef80000 #define RAVEN 0xfeff0000 #define FLASHA 0xff000000 #define FLASHB 0xff800000 #define FLASHAorB 0xfff00000 #define isphys(x) (((ulong)x&KZERO)!=0) . ## diffname mtx/mem.h 2001/1122 ## diff -e /n/emeliedump/2001/0810/sys/src/9/mtx/mem.h /n/emeliedump/2001/1122/sys/src/9/mtx/mem.h 101a /* * standard ppc special purpose registers */ #define DSISR 18 #define DAR 19 /* Data Address Register */ #define DEC 22 /* Decrementer */ #define SRR0 26 /* Saved Registers (exception) */ #define SRR1 27 #define SPRG0 272 /* Supervisor Private Registers */ #define SPRG1 273 #define SPRG2 274 #define SPRG3 275 #define TBRU 269 /* Time base Upper/Lower (Reading) */ #define TBRL 268 #define TBWU 284 /* Time base Upper/Lower (Writing) */ #define TBWL 285 #define PVR 287 /* Processor Version */ . 74,78d 68a #define PTEKERNEL (0<<2) #define PTEUSER (1<<2) #define PTESIZE (1<<7) #define NTLBPID 16 #define TLBPID(n) ((n)&(NTLBPID-1)) /* soft tlb */ #define STLBLOG 12 #define STLBSIZE (1<>22)&0x3f)) . 25c #define BY2PTEG 64 /* bytes per pte group */ . ## diffname mtx/mem.h 2002/0116 ## diff -e /n/emeliedump/2002/0112/sys/src/9/mtx/mem.h /n/emeliedump/2002/0116/sys/src/9/mtx/mem.h 151,154c #define PTE1_W BIT(25) #define PTE1_I BIT(26) #define PTE1_M BIT(27) #define PTE1_G BIT(28) #define PTE1_RW BIT(30) #define PTE1_RO BIT(31) /* * PTE bits for fault.c. These belong to the second PTE word. Validity is * implied for putmmu(), and we always set PTE0_V. PTEVALID is used * here to set cache policy bits on a global basis. */ #define PTEVALID 0 #define PTEWRITE PTE1_RW #define PTERONLY PTE1_RO #define PTEUNCACHED PTE1_I . 149c * Second pte word; WIMG & PP(RW/RO) common to page table and BATs . ## diffname mtx/mem.h 2002/0125 ## diff -e /n/emeliedump/2002/0116/sys/src/9/mtx/mem.h /n/emeliedump/2002/0125/sys/src/9/mtx/mem.h 101a #define MSR_PM BIT(29) /* Performance Monitor marked mode (604e specific) */ . ## diffname mtx/mem.h 2002/0326 ## diff -e /n/emeliedump/2002/0125/sys/src/9/mtx/mem.h /n/emeliedump/2002/0326/sys/src/9/mtx/mem.h 38d ## diffname mtx/mem.h 2002/0710 ## diff -e /n/emeliedump/2002/0326/sys/src/9/mtx/mem.h /n/emeliedump/2002/0710/sys/src/9/mtx/mem.h 37d 35d