diff options
| -rw-r--r-- | sys/src/9/bcm64/mem.h | 28 | ||||
| -rw-r--r-- | sys/src/9/bcm64/mkfile | 8 |
2 files changed, 19 insertions, 17 deletions
diff --git a/sys/src/9/bcm64/mem.h b/sys/src/9/bcm64/mem.h index 46fad55aa..1cd1c5f93 100644 --- a/sys/src/9/bcm64/mem.h +++ b/sys/src/9/bcm64/mem.h @@ -5,11 +5,6 @@ #define MiB 1048576u /* Mebi 0x0000000000100000 */ #define GiB 1073741824u /* Gibi 000000000040000000 */ -#define HOWMANY(x,y) (((x)+((y)-1))/(y)) -#define ROUNDUP(x,y) (HOWMANY((x),(y))*(y)) -#define PGROUND(s) ROUNDUP(s, BY2PG) -#define ROUND(s, sz) (((s)+(sz-1))&~(sz-1)) - /* * Sizes: * L0 L1 L2 L3 @@ -19,19 +14,21 @@ */ #define PGSHIFT 16 /* log(BY2PG) */ #define BY2PG (1ULL<<PGSHIFT) /* bytes per page */ +#define ROUND(s, sz) (((s)+(sz-1))&~(sz-1)) +#define PGROUND(s) ROUND(s, BY2PG) /* effective virtual address space */ -#define EVASHIFT 33 +#define EVASHIFT 34 #define EVAMASK ((1ULL<<EVASHIFT)-1) #define PTSHIFT (PGSHIFT-3) -#define PTLEVELS HOWMANY(EVASHIFT-PGSHIFT, PTSHIFT) +#define PTLEVELS (((EVASHIFT-PGSHIFT)+PTSHIFT-1)/PTSHIFT) #define PTLX(v, l) ((((v) & EVAMASK) >> (PGSHIFT + (l)*PTSHIFT)) & ((1 << PTSHIFT)-1)) #define PGLSZ(l) (1ULL << (PGSHIFT + (l)*PTSHIFT)) #define PTL1X(v, l) (L1TABLEX(v, l) | PTLX(v, l)) #define L1TABLEX(v, l) (L1TABLE(v, l) << PTSHIFT) -#define L1TABLES HOWMANY(-KSEG0, PGLSZ(2)) +#define L1TABLES ((-KSEG0+PGLSZ(2)-1)/PGLSZ(2)) #define L1TABLE(v, l) (L1TABLES - ((PTLX(v, 2) % L1TABLES) >> (((l)-1)*PTSHIFT)) + (l)-1) #define L1TOPSIZE (1ULL << (EVASHIFT - PTLEVELS*PTSHIFT)) @@ -43,12 +40,18 @@ #define TRAPFRAMESIZE (38*8) #define KSEG0 (0xFFFFFFFF00000000ULL) -#define VIRTIO (0xFFFFFFFF3F000000ULL) /* i/o registers */ -#define ARMLOCAL (0xFFFFFFFF40000000ULL) -#define KZERO (0xFFFFFFFF80000000ULL) /* kernel address space */ -#define FRAMEBUFFER (0xFFFFFFFFC0000000ULL|PTEWT) +#define FRAMEBUFFER (0xFFFFFFFF00000000ULL|PTEWT) #define VGPIO 0 /* virtual gpio for pi3 ACT LED */ +#define VIRTPCI (0xFFFFFFFF80000000ULL) /* virtual pcie mmio */ + +#define VIRTIO2 (0xFFFFFFFFBC000000ULL) /* 0x7C000000 - 0xFC000000 */ +#define VIRTIO1 (0xFFFFFFFFBD000000ULL) /* 0x7D000000 - 0xFD000000 */ +#define VIRTIO (0xFFFFFFFFBE000000ULL) /* 0x7E000000 0x3F000000 0xFE000000 */ +#define ARMLOCAL (0xFFFFFFFFBF800000ULL) /* - 0x40000000 0xFF800000 */ + +#define KZERO (0xFFFFFFFFC0000000ULL) /* kernel address space */ + #define SPINTABLE (KZERO+0xd8) #define CONFADDR (KZERO+0x100) #define REBOOTADDR (0x1c00) /* reboot code - physical address */ @@ -127,7 +130,6 @@ * BUS addresses as seen from the videocore gpu. */ #define PHYSDRAM 0 -#define IOSIZE (16*MiB) #define MIN(a, b) ((a) < (b)? (a): (b)) #define MAX(a, b) ((a) > (b)? (a): (b)) diff --git a/sys/src/9/bcm64/mkfile b/sys/src/9/bcm64/mkfile index 4b453e498..d63f47b7e 100644 --- a/sys/src/9/bcm64/mkfile +++ b/sys/src/9/bcm64/mkfile @@ -1,7 +1,7 @@ CONF=pi3 CONFLIST=pi3 -loadaddr=0xffffffff80080000 +loadaddr=0xffffffffc0080000 objtype=arm64 </$objtype/mkfile @@ -107,8 +107,8 @@ main.$O: reboot.h devmouse.$O mouse.$O screen.$O: screen.h usbdwc.$O: dwcotg.h ../port/usb.h -io.h:D: ../bcm/io.h - echo '#include "../bcm/io.h"' > io.h +io.h: ../bcm/io.h + touch $target screen.h:D: ../bcm/screen.h echo '#include "../bcm/screen.h"' > screen.h dwcotg.h:D: ../bcm/dwcotg.h @@ -136,4 +136,4 @@ errstr.h:D: ../port/mkerrstr ../port/error.h rc ../port/mkerrstr > errstr.h $CONF.clean: - rm -rf $p$CONF s$p$CONF errstr.h reboot.h io.h screen.h dwcotg.h $CONF.c boot$CONF.c + rm -rf $p$CONF s$p$CONF errstr.h reboot.h screen.h dwcotg.h $CONF.c boot$CONF.c |
