freebsd-dev/sys/arm/broadcom/bcm2835
Andrew Turner 17fb49c1e4 An IPI must be cleared before it is handled otherwise next IPI could be
missed. In other words, if a new request for an IPI is sent while the
previous request is being handled but the IPI is not cleared yet, the
clearing of the previous IPI request also clears the new one and the
handling is missed.

There are only three MP interrupt controllers in ARM now. Two of them are
fixed by this change, the third one is correct, probably only just by
accident. The fix is minimalistic as new interrupt framework is awaited.

It was debugged on RPi2 where missing IPI handling together with SCHED_ULE
led to situation in which tdq_ipipending was not cleared and so IPI_PREEMPT
was stopped to be sent. Various odditys were found related to slow system
response time like various events timed out, and slow console response.

Submitted by:	Svatopluk Kraus <onwahe@gmail.com>
Reviewed by:	loos, kib
MFC after:	1 week
Differential Revision:	https://reviews.freebsd.org/D3722
2015-10-01 12:09:05 +00:00
..
bcm283x_dwc_fdt.c Remove now unneeded headers from the Broadcom DWC driver 2015-03-20 14:23:40 +00:00
bcm2835_audio.c Add VideoCore audio driver for Rasperry Pi (BCM2835) 2015-02-08 01:12:40 +00:00
bcm2835_bsc.c Add a mask to match only the relative base address of BSC controllers. 2015-02-16 19:06:31 +00:00
bcm2835_bscreg.h Add the Raspberry Pi BSC (I2C compliant) controller driver. 2013-10-23 12:29:39 +00:00
bcm2835_bscvar.h Add a mask to match only the relative base address of BSC controllers. 2015-02-16 19:06:31 +00:00
bcm2835_common.c Stop using machine/fdt.h in the arm kernel code when we don't need it. 2015-04-04 21:34:26 +00:00
bcm2835_cpufreq.c Add the SMP support for Raspberry Pi 2 (BCM2836). 2015-05-07 22:11:44 +00:00
bcm2835_dma.c Follow r261352 by updating all drivers which are children of simplebus 2014-02-02 19:17:28 +00:00
bcm2835_dma.h Add driver for BCM2835's DMA engine 2013-02-28 19:48:19 +00:00
bcm2835_fb.c Fix the sc(4) framebuffer driver on RPi 2. 2015-05-02 22:40:41 +00:00
bcm2835_fbd.c Fix the vt(4) framebuffer driver on RPi 2. 2015-05-02 22:48:56 +00:00
bcm2835_gpio.c Make use of the newly introduced macros. 2015-02-17 20:37:21 +00:00
bcm2835_gpio.h Export a function to allow BCM2835's peripheral devices to enable their 2013-09-07 18:48:15 +00:00
bcm2835_intr.c Add support for the Raspberry Pi 2. As the chip is based on the bcm2835 in 2015-03-25 10:59:42 +00:00
bcm2835_machdep.c Add support for the Raspberry Pi 2. As the chip is based on the bcm2835 in 2015-03-25 10:59:42 +00:00
bcm2835_mbox_prop.h Add the routines to query and setup the framebuffer state using the 2015-05-02 22:24:33 +00:00
bcm2835_mbox.c Add the routines to query and setup the framebuffer state using the 2015-05-02 22:24:33 +00:00
bcm2835_mbox.h Driver for CPU frequency/voltage control on the Raspberry Pi. 2014-12-20 19:15:10 +00:00
bcm2835_sdhci.c Remove unused mutex and softc variables. 2015-05-26 01:30:09 +00:00
bcm2835_spi.c Add a missing wakeup when releasing ownership of the SPI hardware. 2015-06-02 16:07:28 +00:00
bcm2835_spireg.h Add the Raspberry Pi SPI controller driver. 2013-10-24 16:27:33 +00:00
bcm2835_spivar.h Add the Raspberry Pi SPI controller driver. 2013-10-24 16:27:33 +00:00
bcm2835_systimer.c Use simple fixed name strings for these timecounters and eventimers which 2015-08-14 16:48:07 +00:00
bcm2835_vcbus.h Fix DMA on RPi 2. 2015-05-05 00:19:04 +00:00
bcm2835_wdog.c Stop using machine/fdt.h in the arm kernel code when we don't need it. 2015-04-04 21:34:26 +00:00
bcm2835_wdog.h
bcm2836_mp.c An IPI must be cleared before it is handled otherwise next IPI could be 2015-10-01 12:09:05 +00:00
bcm2836.c Add the SMP support for Raspberry Pi 2 (BCM2836). 2015-05-07 22:11:44 +00:00
bcm2836.h Add support for the Raspberry Pi 2. As the chip is based on the bcm2835 in 2015-03-25 10:59:42 +00:00
files.bcm283x Build the cpufunc_asm_* files based on the cpu type, not which config file 2015-03-29 22:43:39 +00:00
files.bcm2835 Build the cpufunc_asm_* files based on the cpu type, not which config file 2015-03-29 22:43:39 +00:00
files.bcm2836 Add the SMP support for Raspberry Pi 2 (BCM2836). 2015-05-07 22:11:44 +00:00
std.bcm2835 Add the SOC_BCM2835 and SOC_BCM2836 options for the arm kernel and add the 2015-03-24 18:46:01 +00:00
std.bcm2836 Add the SMP support for Raspberry Pi 2 (BCM2836). 2015-05-07 22:11:44 +00:00
std.rpi Move including std.bcm2835 to the RPI-B kernel config. The std.rpi file 2015-03-24 19:01:42 +00:00
vc_vchi_audioserv_defs.h Add VideoCore audio driver for Rasperry Pi (BCM2835) 2015-02-08 01:12:40 +00:00