diff options
author | cinap_lenrek <cinap_lenrek@felloff.net> | 2018-10-06 00:30:59 +0200 |
---|---|---|
committer | cinap_lenrek <cinap_lenrek@felloff.net> | 2018-10-06 00:30:59 +0200 |
commit | e5cb695c7ab91b35684937e6c311eb4fe9270d67 (patch) | |
tree | 789a92dfce355286a013d19dcda5d38c59dded6c | |
parent | 7efc2e761d4d7b2d20325b17e80b835b15f124b5 (diff) | |
parent | f9839ed0a29a0598fa383f9c5e8d5c366f93596a (diff) |
merge
-rw-r--r-- | sys/src/9/pc/mem.h | 10 | ||||
-rw-r--r-- | sys/src/9/pc/mkfile | 2 | ||||
-rw-r--r-- | sys/src/9/pc/usbehcipc.c | 2 | ||||
-rw-r--r-- | sys/src/9/pc/usbxhci.c | 10 | ||||
-rw-r--r-- | sys/src/9/pc64/mem.h | 8 | ||||
-rw-r--r-- | sys/src/9/pc64/mkfile | 2 |
6 files changed, 16 insertions, 18 deletions
diff --git a/sys/src/9/pc/mem.h b/sys/src/9/pc/mem.h index 6de469cb3..79ed4347b 100644 --- a/sys/src/9/pc/mem.h +++ b/sys/src/9/pc/mem.h @@ -57,8 +57,8 @@ * Fundamental addresses - bottom 64kB saved for return to real mode */ #define CONFADDR (KZERO+0x1200) /* info passed from boot loader */ -#define TMPADDR (KZERO+0x2000) /* used for temporary mappings */ -#define APBOOTSTRAP (KZERO+0x3000) /* AP bootstrap code */ +#define APBOOTSTRAP (KZERO+0x7000) /* AP bootstrap code (overlaps CONFADDR) */ +#define TMPADDR (KZERO+0x8000) /* used for temporary mappings */ #define IDTADDR (KZERO+0x10800) /* idt */ #define REBOOTADDR (0x11000) /* reboot code - physical address */ #define CPU0PDB (KZERO+0x12000) /* bootstrap processor PDB */ @@ -79,14 +79,12 @@ /* * Where configuration info is left for the loaded programme. - * This will turn into a structure as more is done by the boot loader - * (e.g. why parse the .ini file twice?). - * There are 3584 bytes available at CONFADDR. + * There are 24064 bytes available at CONFADDR. */ #define BOOTLINE ((char*)CONFADDR) #define BOOTLINELEN 64 #define BOOTARGS ((char*)(CONFADDR+BOOTLINELEN)) -#define BOOTARGSLEN (4096-0x200-BOOTLINELEN) +#define BOOTARGSLEN (0x6000-0x200-BOOTLINELEN) /* * known x86 segments (in GDT) and their selectors diff --git a/sys/src/9/pc/mkfile b/sys/src/9/pc/mkfile index 850a08092..ee05c3a29 100644 --- a/sys/src/9/pc/mkfile +++ b/sys/src/9/pc/mkfile @@ -8,7 +8,7 @@ objtype=386 p=9 # must match mem.h -APBOOTSTRAP=0xF0003000 +APBOOTSTRAP=0xF0007000 KTZERO=0xF0100020 DEVS=`{rc ../port/mkdevlist $CONF} diff --git a/sys/src/9/pc/usbehcipc.c b/sys/src/9/pc/usbehcipc.c index 082117c31..29a49bb6f 100644 --- a/sys/src/9/pc/usbehcipc.c +++ b/sys/src/9/pc/usbehcipc.c @@ -41,7 +41,7 @@ getehci(Ctlr* ctlr) off = ehciecap(ctlr, Clegacy); if(off == -1) return; - if(pcicfgr8(ctlr->pcidev, off+CLbiossem) != 0){ + if(getconf("*noehcihandoff") == nil && pcicfgr8(ctlr->pcidev, off+CLbiossem) != 0){ dprint("ehci %#p: bios active, taking over...\n", ctlr->capio); pcicfgw8(ctlr->pcidev, off+CLossem, 1); for(i = 0; i < 100; i++){ diff --git a/sys/src/9/pc/usbxhci.c b/sys/src/9/pc/usbxhci.c index 489de15a3..42947173f 100644 --- a/sys/src/9/pc/usbxhci.c +++ b/sys/src/9/pc/usbxhci.c @@ -393,11 +393,13 @@ handoff(Ctlr *ctlr) if((r = xecp(ctlr, 1, nil)) == nil) return; - r[0] |= 1<<24; /* request ownership */ - for(i = 0; (r[0] & (1<<16)) != 0 && i<100; i++) - tsleep(&up->sleep, return0, nil, 10); + if(getconf("*noxhcihandoff") == nil){ + r[0] |= 1<<24; /* request ownership */ + for(i = 0; (r[0] & (1<<16)) != 0 && i<100; i++) + tsleep(&up->sleep, return0, nil, 10); + r[0] &= ~(1<<16); /* in case of timeout */ + } r[1] = 0; /* disable SMI interrupts */ - r[0] &= ~(1<<16); /* in case of timeout */ } static void diff --git a/sys/src/9/pc64/mem.h b/sys/src/9/pc64/mem.h index 4c07bf99b..e2d93cc4a 100644 --- a/sys/src/9/pc64/mem.h +++ b/sys/src/9/pc64/mem.h @@ -64,7 +64,7 @@ * Fundamental addresses - bottom 64kB saved for return to real mode */ #define CONFADDR (KZERO+0x1200ull) /* info passed from boot loader */ -#define APBOOTSTRAP (KZERO+0x3000ull) /* AP bootstrap code */ +#define APBOOTSTRAP (KZERO+0x7000ull) /* AP bootstrap code */ #define IDTADDR (KZERO+0x10000ull) /* idt */ #define REBOOTADDR (0x11000) /* reboot code - physical address */ @@ -82,14 +82,12 @@ /* * Where configuration info is left for the loaded programme. - * This will turn into a structure as more is done by the boot loader - * (e.g. why parse the .ini file twice?). - * There are 3584 bytes available at CONFADDR. + * There are 24064 bytes available at CONFADDR. */ #define BOOTLINE ((char*)CONFADDR) #define BOOTLINELEN 64 #define BOOTARGS ((char*)(CONFADDR+BOOTLINELEN)) -#define BOOTARGSLEN (4096-0x200-BOOTLINELEN) +#define BOOTARGSLEN (0x6000-0x200-BOOTLINELEN) /* * known x86 segments (in GDT) and their selectors diff --git a/sys/src/9/pc64/mkfile b/sys/src/9/pc64/mkfile index f4531fa66..51204dcee 100644 --- a/sys/src/9/pc64/mkfile +++ b/sys/src/9/pc64/mkfile @@ -6,7 +6,7 @@ objtype=amd64 p=9 KTZERO=0xffffffff80110000 -APBOOTSTRAP=0xffffffff80003000 +APBOOTSTRAP=0xffffffff80007000 REBOOTADDR=0x11000 DEVS=`{rc ../port/mkdevlist $CONF} |