shithub: riscv

Download patch

ref: f9f13bbd0ed680c16615fe925782e0c7335e1952
parent: 7c55ca5fff01fa28b99a0717860848071fca80ce
parent: f48f1a324aaad4616b93ec595d5e0f2e22d12bc4
author: cinap_lenrek <[email protected]>
date: Wed Dec 4 17:04:12 EST 2019

merge

--- a/sys/src/9/bcm/archbcm.c
+++ b/sys/src/9/bcm/archbcm.c
@@ -116,12 +116,6 @@
 }
 
 int
-l2ap(int ap)
-{
-	return (AP(3, (ap))|AP(2, (ap))|AP(1, (ap))|AP(0, (ap)));
-}
-
-int
 cmpswap(long *addr, long old, long new)
 {
 	return cas32(addr, old, new);
--- a/sys/src/9/bcm/archbcm2.c
+++ b/sys/src/9/bcm/archbcm2.c
@@ -221,12 +221,6 @@
 	addclock0link(wdogfeed, HZ);
 }
 
-int
-l2ap(int ap)
-{
-	return (AP(0, (ap)));
-}
-
 void
 cpustart(int cpu)
 {
--- a/sys/src/9/bcm/arm.h
+++ b/sys/src/9/bcm/arm.h
@@ -123,6 +123,7 @@
 #define CpCha		(1<<17)		/* HA: hw access flag enable */
 #define CpCdz		(1<<19)		/* DZ: divide by zero fault enable */
 #define CpCfi		(1<<21)		/* FI: fast intrs */
+#define CpCxp		(1<<23)		/* XP: subpage AP bits disabled */
 #define CpCve		(1<<24)		/* VE: intr vectors enable */
 #define CpCee		(1<<25)		/* EE: exception endianness */
 #define CpCnmfi		(1<<27)		/* NMFI: non-maskable fast intrs. */
@@ -309,8 +310,8 @@
 
 #define F(v, o, w)	(((v) & ((1<<(w))-1))<<(o))
 #define AP(n, v)	F((v), ((n)*2)+4, 2)
-#define L1AP(ap)	(AP(3, (ap)))
-/* L2AP differs between armv6 and armv7 -- see l2ap in arch*.c */
+#define L1AP(ap)	AP(3, (ap))
+#define L2AP(ap)	AP(0, (ap))
 #define DAC(n, v)	F((v), (n)*2, 2)
 
 #define HVECTORS	0xffff0000
--- a/sys/src/9/bcm/armv6.s
+++ b/sys/src/9/bcm/armv6.s
@@ -57,7 +57,7 @@
 	 * enable caches, mmu, and high vectors
 	 */
 	MRC	CpSC, 0, R0, C(CpCONTROL), C(0), CpMainctl
-	ORR	$(CpChv|CpCdcache|CpCicache|CpCpredict|CpCmmu), R0
+	ORR	$(CpCxp|CpChv|CpCdcache|CpCicache|CpCpredict|CpCmmu), R0
 	MCR	CpSC, 0, R0, C(CpCONTROL), C(0), CpMainctl
 	ISB
 
--- a/sys/src/9/bcm/fns.h
+++ b/sys/src/9/bcm/fns.h
@@ -99,7 +99,6 @@
 extern void wdogfeed(void);
 extern void writeconf(void);
 extern void vtable(void);
-extern int l2ap(int);
 extern uint getcputemp(void);
 extern char *cputype2name(char *buf, int size);
 extern uint getboardrev(void);
--- a/sys/src/9/bcm/mkfile
+++ b/sys/src/9/bcm/mkfile
@@ -112,6 +112,7 @@
 main.$O: errstr.h init.h reboot.h
 devmouse.$O mouse.$O screen.$O: screen.h
 usbdwc.$O: dwcotg.h ../port/usb.h
+arch.$O archbcm.$O archbcm2.$O clock.$O coproc.$O fpiarn.$O mmu.$O trap.$O vfp3.$O: arm.h mem.h
 
 init.h:D:	../port/initcode.c init9.s
 	$CC ../port/initcode.c
--- a/sys/src/9/bcm/mmu.c
+++ b/sys/src/9/bcm/mmu.c
@@ -9,7 +9,6 @@
 #define FEXT(d, o, w)	(((d)>>(o)) & ((1<<(w))-1))
 #define L1X(va)		FEXT((va), 20, 12)
 #define L2X(va)		FEXT((va), 12, 8)
-#define L2AP(ap)	l2ap(ap)
 #define L1ptedramattrs	soc.l1ptedramattrs
 #define L2ptedramattrs	soc.l2ptedramattrs
 #define PTEDRAM		(PHYSDRAM|Dom0|L1AP(Krw)|Section|L1ptedramattrs)
--- a/sys/src/9/boot/net.rc
+++ b/sys/src/9/boot/net.rc
@@ -10,7 +10,7 @@
 
 	# setup wifi encryption if any
 	if(~ $1 ether && test -x /bin/aux/wpa){
-		essid=`{grep '^essid: ' $2/ifstats | sed 's/^essid: //; q'}
+		essid=`{grep '^essid: ' $2/ifstats >[2]/dev/null | sed 's/^essid: //; q'}
 		if(! ~ $#essid 0){
 			if(! ~ $#wpapsk 0 || grep -s '^status: need authentication' $2/ifstats >[2]/dev/null){
 				x=(aux/wpa -s $"essid)