summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorcinap_lenrek <cinap_lenrek@felloff.net>2018-10-06 00:30:59 +0200
committercinap_lenrek <cinap_lenrek@felloff.net>2018-10-06 00:30:59 +0200
commite5cb695c7ab91b35684937e6c311eb4fe9270d67 (patch)
tree789a92dfce355286a013d19dcda5d38c59dded6c
parent7efc2e761d4d7b2d20325b17e80b835b15f124b5 (diff)
parentf9839ed0a29a0598fa383f9c5e8d5c366f93596a (diff)
merge
-rw-r--r--sys/src/9/pc/mem.h10
-rw-r--r--sys/src/9/pc/mkfile2
-rw-r--r--sys/src/9/pc/usbehcipc.c2
-rw-r--r--sys/src/9/pc/usbxhci.c10
-rw-r--r--sys/src/9/pc64/mem.h8
-rw-r--r--sys/src/9/pc64/mkfile2
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}