plan9fox/sys/src/9/bcm
cinap_lenrek 89c659d80b bcm: fix mysterious core clock resets under SMP (thanks richard miller)
reference: https://github.com/raspberrypi/firmware/issues/542

procsave(Proc* p)
{
	uvlong t;

	cycles(&t);
	p->pcycles += t;

// TODO: save and restore VFPv3 FP state once 5[cal] know the new registers.
	fpuprocsave(p);
	/*
	 * Prevent the following scenario:
	 *	pX sleeps on cpuA, leaving its page tables in mmul1
	 *	pX wakes up on cpuB, and exits, freeing its page tables
	 *  pY on cpuB allocates a freed page table page and overwrites with data
	 *  cpuA takes an interrupt, and is now running with bad page tables
	 * In theory this shouldn't hurt because only user address space tables
	 * are affected, and mmuswitch will clear mmul1 before a user process is
	 * dispatched.  But empirically it correlates with weird problems, eg
	 * resetting of the core clock at 0x4000001C which confuses local timers.
	 */
	if(conf.nmach > 1)
		mmuswitch(nil);
}
2018-11-04 16:00:32 +01:00
..
arch.c bcm: fix mysterious core clock resets under SMP (thanks richard miller) 2018-11-04 16:00:32 +01:00
archbcm.c bcm: import changes for raspi2/3 from richard miller 2018-10-20 19:56:31 +02:00
archbcm2.c bcm: fix /dev/reboot text/data corruption (thanks richard miller) 2018-10-31 19:48:16 +01:00
arm.h bcm: import changes for raspi2/3 from richard miller 2018-10-20 19:56:31 +02:00
arm.s bcm: simplify reboot code 2018-10-28 06:16:10 +01:00
armv6.s bcm: import changes for raspi2/3 from richard miller 2018-10-20 19:56:31 +02:00
armv7.s bcm: fix /dev/reboot text/data corruption (thanks richard miller) 2018-10-31 19:48:16 +01:00
cache.v7.s bcm: fix l2 cache maintenance routines for raspi3 (armv8) 2018-10-28 06:05:43 +01:00
clock.c bcm: cleanup clock code 2018-10-28 06:09:05 +01:00
coproc.c add raspberry pi kernel (from sources) 2013-01-26 17:33:56 +01:00
dat.h bcm: import changes for raspi2/3 from richard miller 2018-10-20 19:56:31 +02:00
devarch.c bcm: provide /dev/cputemp in a format stats can understand 2018-10-28 07:10:27 +01:00
devgpio.c bcm: import changes for raspi2/3 from richard miller 2018-10-20 19:56:31 +02:00
dma.c bcm: import changes for raspi2/3 from richard miller 2018-10-20 19:56:31 +02:00
dwcotg.h bcm: import changes for raspi2/3 from richard miller 2018-10-20 19:56:31 +02:00
emmc.c emmc/pmmc: make all symbols static 2015-05-11 05:27:05 +02:00
fns.h bcm: simplify reboot code 2018-10-28 06:16:10 +01:00
fpi.c add raspberry pi kernel (from sources) 2013-01-26 17:33:56 +01:00
fpi.h add raspberry pi kernel (from sources) 2013-01-26 17:33:56 +01:00
fpiarm.c kernel: introduce per process FPU struct (PFPU) for more flexible machine specific fpu handling 2017-11-04 20:08:22 +01:00
fpimem.c add raspberry pi kernel (from sources) 2013-01-26 17:33:56 +01:00
gpio.c bcm: import changes for raspi2/3 from richard miller 2018-10-20 19:56:31 +02:00
init9.s add raspberry pi kernel (from sources) 2013-01-26 17:33:56 +01:00
io.h bcm: import changes for raspi2/3 from richard miller 2018-10-20 19:56:31 +02:00
l.s bcm: import changes for raspi2/3 from richard miller 2018-10-20 19:56:31 +02:00
lexception.s bcm: import changes for raspi2/3 from richard miller 2018-10-20 19:56:31 +02:00
lproc.s add raspberry pi kernel (from sources) 2013-01-26 17:33:56 +01:00
main.c bcm: fix /dev/reboot text/data corruption (thanks richard miller) 2018-10-31 19:48:16 +01:00
mem.h bcm: simplify reboot code 2018-10-28 06:16:10 +01:00
mkfile bcm: fix mistake in mkfile 2018-11-01 01:07:51 +01:00
mmu.c bcm: simplify reboot code 2018-10-28 06:16:10 +01:00
mouse.c add raspberry pi kernel (from sources) 2013-01-26 17:33:56 +01:00
pi bcm: import changes for raspi2/3 from richard miller 2018-10-20 19:56:31 +02:00
pi2 bcm: import changes for raspi2/3 from richard miller 2018-10-20 19:56:31 +02:00
picpuf kernel: introduce devswap #¶ to serve /dev/swap and handle swapfile encryption 2017-10-29 23:09:54 +01:00
rebootcode.s bcm: fix /dev/reboot text/data corruption (thanks richard miller) 2018-10-31 19:48:16 +01:00
screen.c kernel: fix bounds check in screenputc() 2017-07-20 21:03:00 +02:00
screen.h devmouse: change msec argument of *mousetrack() to ulong 2016-12-10 16:12:18 +01:00
softfpu.c add raspberry pi kernel (from sources) 2013-01-26 17:33:56 +01:00
syscall.c add raspberry pi kernel (from sources) 2013-01-26 17:33:56 +01:00
trap.c bcm: import changes for raspi2/3 from richard miller 2018-10-20 19:56:31 +02:00
uartmini.c bcm: import changes for raspi2/3 from richard miller 2018-10-20 19:56:31 +02:00
usbdwc.c bcm: import changes for raspi2/3 from richard miller 2018-10-20 19:56:31 +02:00
vcore.c bcm: import changes for raspi2/3 from richard miller 2018-10-20 19:56:31 +02:00
vfp3.c bcm: import changes for raspi2/3 from richard miller 2018-10-20 19:56:31 +02:00
words add raspberry pi kernel (from sources) 2013-01-26 17:33:56 +01:00