#
1.57 |
|
05-Oct-2023 |
riastradh |
arm/gic: Check l_blcnt, not l_biglocks.
l_biglocks is a now-defunct temporary storage used only when sleeping; l_blcnt is the number of kernel locks held by the lwp when not sleeping.
Should fix arm builds.
|
Revision tags: netbsd-10-base bouyer-sunxi-drm-base
|
#
1.56 |
|
26-Jun-2022 |
jmcneill |
build fix: remove includes of opt_gic.h
|
#
1.55 |
|
25-Jun-2022 |
jmcneill |
Remove GIC_SPLFUNCS.
|
#
1.54 |
|
25-Jun-2022 |
jmcneill |
pic: Update ci_cpl in pic_set_priority callback.
Not all ICs need interrupts disabled to update the priority. DAIF accesses are not cheap, so push the update of ci_cpl from pic_set_priority to the IC's pic_set_priority callback, and let the IC driver determine whether or not it needs interrupts disabled.
|
#
1.53 |
|
03-Mar-2022 |
riastradh |
arm: Use device_set_private for various drivers.
|
#
1.52 |
|
02-Jan-2022 |
riastradh |
arm: Remove #ifdef DIAGNOSTIC now wrong after KASSERT change.
Objects in question aren't volatile here so access is flushable.
|
#
1.51 |
|
21-Oct-2021 |
skrll |
Fix some conditionals to match gicv3 and add some comments to describe what's going on.
Fixes PR port-evbarm/56420
|
#
1.50 |
|
26-Sep-2021 |
jmcneill |
If an SGI or PPI is established after interrupts are enabled, make sure we unblock the source on _all_ CPUs and not just the CPU that is establishing the interrupt.
|
#
1.49 |
|
10-Aug-2021 |
jmcneill |
Make gic_splfuncs optional and disable it by default until it has had more testing.
|
#
1.48 |
|
10-Aug-2021 |
jmcneill |
Use custom spl funcs for GIC and avoid unnecessary pmr register accesses in splx.
|
Revision tags: thorpej-i2c-spi-conf2-base thorpej-futex2-base thorpej-cfargs2-base cjep_sun2x-base1 cjep_sun2x-base cjep_staticlib_x-base1 cjep_staticlib_x-base thorpej-i2c-spi-conf-base thorpej-cfargs-base thorpej-futex-base
|
#
1.47 |
|
28-Mar-2021 |
skrll |
Only target the boot cpu for real with SPI interrupts. I tried to do this back in 2014, but somehow I missed a spot.
This is a quick-and-dirty fix for the USB stack which expects transfer completions to be in-order. If interrupts happen across the CPUs then this isn't guaranteed (yet).
kern/55243 panic at usb_transfer_complete() on raspberry pi 4
|
#
1.46 |
|
23-Feb-2021 |
jmcneill |
branches: 1.46.2; If we are committing a deferred splhigh() to hardware, no need to continue.
|
#
1.45 |
|
21-Feb-2021 |
jmcneill |
Apply PMR optimizations from gicv3
|
#
1.44 |
|
09-Feb-2021 |
jakllsch |
Avoid an extra daif read when dispatching interrupts by using ENABLE_INTERRUPT() / DISABLE_INTERRUPT() instead of cpsie() / cpsid() macros.
|
#
1.43 |
|
03-Dec-2020 |
skrll |
Provide and use a sev() macro for the sev instruction.
While here use the correct barrier to ensure completion of memory accesses before a couple of the sev() calls.
|
#
1.42 |
|
26-Sep-2020 |
skrll |
branches: 1.42.2; G/C arm/atomic.h
|
#
1.41 |
|
27-Jul-2020 |
jmcneill |
Remove CPU ID test in armgic_match. Perfectly normal to have GIC in non-Cortex cores.
|
#
1.40 |
|
12-Jul-2020 |
skrll |
Avoid undefined behaviour. Detected by KUBSAN.
|
Revision tags: bouyer-xenpvh-base2 phil-wifi-20200421 bouyer-xenpvh-base1
|
#
1.39 |
|
13-Apr-2020 |
jmcneill |
Fix "left shift of 255 by 24 places cannot be represented in type 'int'" warning from UBSan.
|
Revision tags: netbsd-9-1-RELEASE phil-wifi-20200411 bouyer-xenpvh-base is-mlppp-base phil-wifi-20200406 ad-namecache-base3 netbsd-9-0-RELEASE netbsd-9-0-RC2 ad-namecache-base2 ad-namecache-base1 ad-namecache-base netbsd-9-0-RC1 phil-wifi-20191119 netbsd-9-base phil-wifi-20190609 isaki-audio2-base pgoyette-compat-20190127 pgoyette-compat-20190118 pgoyette-compat-1226 pgoyette-compat-1126
|
#
1.38 |
|
16-Nov-2018 |
jmcneill |
branches: 1.38.4; 1.38.10; Use intr_establish_xname
|
Revision tags: pgoyette-compat-1020 pgoyette-compat-0930
|
#
1.37 |
|
10-Sep-2018 |
jmcneill |
armgic_ipi_send: use GIC interface number, not CPU index, when setting the target(s) for an IPI.
|
#
1.36 |
|
10-Sep-2018 |
jmcneill |
Update sc_mptargets atomically, as PEs will be started up in parallel w/o locking here
|
Revision tags: pgoyette-compat-0906 pgoyette-compat-0728
|
#
1.35 |
|
15-Jul-2018 |
jmcneill |
Support pic_set_affinity and pic_get_affinity
|
Revision tags: phil-wifi-base pgoyette-compat-0625 pgoyette-compat-0521 pgoyette-compat-0502
|
#
1.34 |
|
28-Apr-2018 |
jakllsch |
branches: 1.34.2; Cover all pic_maxsources lines for armgic_cpu_init_priorities() and armgic_cpu_update_priorities().
Previously only the first 32 lines were covered, which is significantly less than the 1000-some interrupt lines possible.
Only relevant to MULTIPROCESSOR configurations.
|
Revision tags: pgoyette-compat-0422 pgoyette-compat-0415 pgoyette-compat-0407
|
#
1.33 |
|
01-Apr-2018 |
ryo |
Add initial support for ARMv8 (AARCH64) (by nisimura@ and ryo@)
- sys/arch/evbarm64 is gone and integrated into sys/arch/evbarm. (by skrll@) - add support fdt. evbarm/conf/GENERIC64 fdt (bcm2837,sunxi,tegra) based generic 64bit kernel config. (by skrll@, jmcneill@)
|
Revision tags: pgoyette-compat-0330 pgoyette-compat-0322 pgoyette-compat-0315 pgoyette-compat-base
|
#
1.32 |
|
07-Feb-2018 |
jmcneill |
branches: 1.32.2; PR# port-evbarm/49468: Cortex GIC assertion triggered on Allwinner A80 SoC
The priority level is changed by writing to GICC_PMR with interrupts disabled. However, interrupts are enabled/disabled downstream of the GICC at the CPU. When raising priority level, there is a window between the time that interrupts are disabled and the GICC_PMR register is written. If an interrupt occurs at a previously allowed priority before GICC_PMR is changed, the CPU will receive the signal when interrupts are re-enabled. At this time, GICC_PMR is now the new priority level, so reads of GICC_IAR will report a spurious IRQ.
Move the "old_ipl != IPL_HIGH" test until after we have confirmed that there is at least one pending IRQ.
|
Revision tags: tls-maxphys-base-20171202 nick-nhusb-base-20170825 perseant-stdc-iso10646-base
|
#
1.31 |
|
14-Jul-2017 |
skrll |
KNF
|
#
1.30 |
|
29-Jun-2017 |
jmcneill |
ARM Trusted Firmware reserves SGIs 8-15 for secure use. Even without ATF, U-Boot on some platforms may use SGIs in this range for the PSCI implementation.
Change ARMGIC_IPI_BASE to 0 from (16 - NIPI) and add a compile-time assert to ensure that we don't end up with a conflict.
|
#
1.29 |
|
28-Jun-2017 |
skrll |
Revert the KERNHIST for now it causes problems
|
#
1.28 |
|
22-Jun-2017 |
skrll |
If we see GICC_IAR_IRQ_SSPURIOUS we should also stop looking for irqs
|
#
1.27 |
|
22-Jun-2017 |
skrll |
Wrap long line
|
#
1.26 |
|
22-Jun-2017 |
skrll |
Print the GICC_IIDR when AB_DEBUG
|
#
1.25 |
|
22-Jun-2017 |
skrll |
Add 'armgichist' KERNHIST for (future) debugging.
|
#
1.24 |
|
18-Jun-2017 |
jmcneill |
Don't assume that CPU index = GIC CPU interface number. We can determine the current CPU interface number by reading from the read-only GICD_ITARGETSR0 through GICD_ITARGETSR7 registers.
This gets interrupts working on Exynos 5422, where the boot processor has GIC CPU interface #4.
|
#
1.23 |
|
05-Jun-2017 |
skrll |
Clean out some #if 0'ed or //'ed code
|
#
1.22 |
|
04-Jun-2017 |
skrll |
Initialise all the SGI/PPI priorities for all CPUs to mask the interrupts
|
Revision tags: netbsd-8-base
|
#
1.21 |
|
30-May-2017 |
jmcneill |
branches: 1.21.2; Use an FDT-based ARM_INTR_IMPL for Tegra.
|
Revision tags: prg-localcount2-base3 prg-localcount2-base2 prg-localcount2-base1 prg-localcount2-base pgoyette-localcount-20170426 bouyer-socketcan-base1 jdolecek-ncq-base pgoyette-localcount-20170320 nick-nhusb-base-20170204 bouyer-socketcan-base pgoyette-localcount-20170107 nick-nhusb-base-20161204 pgoyette-localcount-20161104 nick-nhusb-base-20161004 localcount-20160914 pgoyette-localcount-20160806 pgoyette-localcount-20160726 pgoyette-localcount-base nick-nhusb-base-20160907 nick-nhusb-base-20160529 nick-nhusb-base-20160422 nick-nhusb-base-20160319 nick-nhusb-base-20151226 nick-nhusb-base-20150921
|
#
1.20 |
|
29-Jul-2015 |
matt |
Adjust some of IPLs of various IPIs.
|
Revision tags: nick-nhusb-base-20150606
|
#
1.19 |
|
15-Apr-2015 |
matt |
Add separate IPI routines for IPI_AST and IPI_KPREEMPT.
|
#
1.18 |
|
11-Apr-2015 |
matt |
Add a pic_cpus to the softc which specifies which cpus the pic can send IPIs to. For GIC, initialize pic_cpus to kcpuset_running since it can handle all the cpus.
|
#
1.17 |
|
09-Apr-2015 |
matt |
All SGIs are MPSAFE so establish them as such.
|
Revision tags: nick-nhusb-base-20150406
|
#
1.16 |
|
20-Mar-2015 |
skrll |
Trailing whitespace
|
#
1.15 |
|
12-Mar-2015 |
skrll |
G/C armgic_last_priority
|
#
1.14 |
|
03-Mar-2015 |
jmcneill |
in armgic_establish_irq, make sure to write the new value to GICD_ICFGRn when setting irq type (IST_LEVEL/IST_EDGE)
|
#
1.13 |
|
02-Mar-2015 |
jmcneill |
sc_gic_lines is the total number of valid lines but pic_sources[] is sparse; when initializing mpsafe targets make sure to go all the way to the end (sc_pic.pic_maxsources) instead
|
Revision tags: nick-nhusb-base
|
#
1.12 |
|
29-Oct-2014 |
skrll |
branches: 1.12.2; Only target boot cpu for SPIs atm. Fix a couple of bugs in the now disabled code.
|
#
1.11 |
|
29-Oct-2014 |
skrll |
Sprinkle #include "opt_multiprocessor.h"
|
Revision tags: netbsd-7-base tls-earlyentropy-base tls-maxphys-base
|
#
1.10 |
|
19-May-2014 |
rmind |
branches: 1.10.2; Implement MI IPI interface with cross-call support.
|
Revision tags: yamt-pagecache-base9 rmind-smpnet-nbase rmind-smpnet-base
|
#
1.9 |
|
27-Apr-2014 |
matt |
When dealing with the PMR register, only use non-secure priority values.
|
#
1.8 |
|
13-Apr-2014 |
matt |
Move aprint to print sooner.
|
Revision tags: riastradh-xf86-video-intel-2-7-1-pre-2-21-15
|
#
1.7 |
|
28-Mar-2014 |
matt |
branches: 1.7.2; Various MP changes.
|
Revision tags: riastradh-drm2-base3
|
#
1.6 |
|
04-Mar-2014 |
matt |
Don't byte swap the data, assume the bus_space will do it.
|
#
1.5 |
|
17-Dec-2013 |
joerg |
branches: 1.5.2; armgic_priority_to_ipl is only used in #if 0'd code, so apply that as well.
|
Revision tags: riastradh-drm2-base2 riastradh-drm2-base1 riastradh-drm2-base
|
#
1.4 |
|
20-Jun-2013 |
matt |
branches: 1.4.2; Pass the offset from CBAR/PERIPHBASE in mpcore_attach_args. Modify the list of devices to include the offset(s) from PERIPHBASE.
|
Revision tags: agc-symver-base yamt-pagecache-base8 yamt-pagecache-base7 yamt-pagecache-base6
|
#
1.3 |
|
16-Sep-2012 |
rmind |
branches: 1.3.2; 1.3.4; Rename kcpuset_copybits() to kcpuset_export_u32() and thus be more specific about the interface.
|
#
1.2 |
|
14-Sep-2012 |
matt |
Verify the source isn't a dummy source.
|
#
1.1 |
|
01-Sep-2012 |
matt |
branches: 1.1.2; Add Cortex-A9 support including the ARM Generic Interrupt Controller and the A9 Global Timer / Watchdog.
|
#
1.56 |
|
26-Jun-2022 |
jmcneill |
build fix: remove includes of opt_gic.h
|
#
1.55 |
|
25-Jun-2022 |
jmcneill |
Remove GIC_SPLFUNCS.
|
#
1.54 |
|
25-Jun-2022 |
jmcneill |
pic: Update ci_cpl in pic_set_priority callback.
Not all ICs need interrupts disabled to update the priority. DAIF accesses are not cheap, so push the update of ci_cpl from pic_set_priority to the IC's pic_set_priority callback, and let the IC driver determine whether or not it needs interrupts disabled.
|
#
1.53 |
|
03-Mar-2022 |
riastradh |
arm: Use device_set_private for various drivers.
|
#
1.52 |
|
02-Jan-2022 |
riastradh |
arm: Remove #ifdef DIAGNOSTIC now wrong after KASSERT change.
Objects in question aren't volatile here so access is flushable.
|
#
1.51 |
|
21-Oct-2021 |
skrll |
Fix some conditionals to match gicv3 and add some comments to describe what's going on.
Fixes PR port-evbarm/56420
|
#
1.50 |
|
26-Sep-2021 |
jmcneill |
If an SGI or PPI is established after interrupts are enabled, make sure we unblock the source on _all_ CPUs and not just the CPU that is establishing the interrupt.
|
#
1.49 |
|
10-Aug-2021 |
jmcneill |
Make gic_splfuncs optional and disable it by default until it has had more testing.
|
#
1.48 |
|
10-Aug-2021 |
jmcneill |
Use custom spl funcs for GIC and avoid unnecessary pmr register accesses in splx.
|
Revision tags: thorpej-i2c-spi-conf2-base thorpej-futex2-base thorpej-cfargs2-base cjep_sun2x-base1 cjep_sun2x-base cjep_staticlib_x-base1 cjep_staticlib_x-base thorpej-i2c-spi-conf-base thorpej-cfargs-base thorpej-futex-base
|
#
1.47 |
|
28-Mar-2021 |
skrll |
Only target the boot cpu for real with SPI interrupts. I tried to do this back in 2014, but somehow I missed a spot.
This is a quick-and-dirty fix for the USB stack which expects transfer completions to be in-order. If interrupts happen across the CPUs then this isn't guaranteed (yet).
kern/55243 panic at usb_transfer_complete() on raspberry pi 4
|
#
1.46 |
|
23-Feb-2021 |
jmcneill |
branches: 1.46.2; If we are committing a deferred splhigh() to hardware, no need to continue.
|
#
1.45 |
|
21-Feb-2021 |
jmcneill |
Apply PMR optimizations from gicv3
|
#
1.44 |
|
09-Feb-2021 |
jakllsch |
Avoid an extra daif read when dispatching interrupts by using ENABLE_INTERRUPT() / DISABLE_INTERRUPT() instead of cpsie() / cpsid() macros.
|
#
1.43 |
|
03-Dec-2020 |
skrll |
Provide and use a sev() macro for the sev instruction.
While here use the correct barrier to ensure completion of memory accesses before a couple of the sev() calls.
|
#
1.42 |
|
26-Sep-2020 |
skrll |
branches: 1.42.2; G/C arm/atomic.h
|
#
1.41 |
|
27-Jul-2020 |
jmcneill |
Remove CPU ID test in armgic_match. Perfectly normal to have GIC in non-Cortex cores.
|
#
1.40 |
|
12-Jul-2020 |
skrll |
Avoid undefined behaviour. Detected by KUBSAN.
|
Revision tags: bouyer-xenpvh-base2 phil-wifi-20200421 bouyer-xenpvh-base1
|
#
1.39 |
|
13-Apr-2020 |
jmcneill |
Fix "left shift of 255 by 24 places cannot be represented in type 'int'" warning from UBSan.
|
Revision tags: netbsd-9-1-RELEASE phil-wifi-20200411 bouyer-xenpvh-base is-mlppp-base phil-wifi-20200406 ad-namecache-base3 netbsd-9-0-RELEASE netbsd-9-0-RC2 ad-namecache-base2 ad-namecache-base1 ad-namecache-base netbsd-9-0-RC1 phil-wifi-20191119 netbsd-9-base phil-wifi-20190609 isaki-audio2-base pgoyette-compat-20190127 pgoyette-compat-20190118 pgoyette-compat-1226 pgoyette-compat-1126
|
#
1.38 |
|
16-Nov-2018 |
jmcneill |
branches: 1.38.4; 1.38.10; Use intr_establish_xname
|
Revision tags: pgoyette-compat-1020 pgoyette-compat-0930
|
#
1.37 |
|
10-Sep-2018 |
jmcneill |
armgic_ipi_send: use GIC interface number, not CPU index, when setting the target(s) for an IPI.
|
#
1.36 |
|
10-Sep-2018 |
jmcneill |
Update sc_mptargets atomically, as PEs will be started up in parallel w/o locking here
|
Revision tags: pgoyette-compat-0906 pgoyette-compat-0728
|
#
1.35 |
|
15-Jul-2018 |
jmcneill |
Support pic_set_affinity and pic_get_affinity
|
Revision tags: phil-wifi-base pgoyette-compat-0625 pgoyette-compat-0521 pgoyette-compat-0502
|
#
1.34 |
|
28-Apr-2018 |
jakllsch |
branches: 1.34.2; Cover all pic_maxsources lines for armgic_cpu_init_priorities() and armgic_cpu_update_priorities().
Previously only the first 32 lines were covered, which is significantly less than the 1000-some interrupt lines possible.
Only relevant to MULTIPROCESSOR configurations.
|
Revision tags: pgoyette-compat-0422 pgoyette-compat-0415 pgoyette-compat-0407
|
#
1.33 |
|
01-Apr-2018 |
ryo |
Add initial support for ARMv8 (AARCH64) (by nisimura@ and ryo@)
- sys/arch/evbarm64 is gone and integrated into sys/arch/evbarm. (by skrll@) - add support fdt. evbarm/conf/GENERIC64 fdt (bcm2837,sunxi,tegra) based generic 64bit kernel config. (by skrll@, jmcneill@)
|
Revision tags: pgoyette-compat-0330 pgoyette-compat-0322 pgoyette-compat-0315 pgoyette-compat-base
|
#
1.32 |
|
07-Feb-2018 |
jmcneill |
branches: 1.32.2; PR# port-evbarm/49468: Cortex GIC assertion triggered on Allwinner A80 SoC
The priority level is changed by writing to GICC_PMR with interrupts disabled. However, interrupts are enabled/disabled downstream of the GICC at the CPU. When raising priority level, there is a window between the time that interrupts are disabled and the GICC_PMR register is written. If an interrupt occurs at a previously allowed priority before GICC_PMR is changed, the CPU will receive the signal when interrupts are re-enabled. At this time, GICC_PMR is now the new priority level, so reads of GICC_IAR will report a spurious IRQ.
Move the "old_ipl != IPL_HIGH" test until after we have confirmed that there is at least one pending IRQ.
|
Revision tags: tls-maxphys-base-20171202 nick-nhusb-base-20170825 perseant-stdc-iso10646-base
|
#
1.31 |
|
14-Jul-2017 |
skrll |
KNF
|
#
1.30 |
|
29-Jun-2017 |
jmcneill |
ARM Trusted Firmware reserves SGIs 8-15 for secure use. Even without ATF, U-Boot on some platforms may use SGIs in this range for the PSCI implementation.
Change ARMGIC_IPI_BASE to 0 from (16 - NIPI) and add a compile-time assert to ensure that we don't end up with a conflict.
|
#
1.29 |
|
28-Jun-2017 |
skrll |
Revert the KERNHIST for now it causes problems
|
#
1.28 |
|
22-Jun-2017 |
skrll |
If we see GICC_IAR_IRQ_SSPURIOUS we should also stop looking for irqs
|
#
1.27 |
|
22-Jun-2017 |
skrll |
Wrap long line
|
#
1.26 |
|
22-Jun-2017 |
skrll |
Print the GICC_IIDR when AB_DEBUG
|
#
1.25 |
|
22-Jun-2017 |
skrll |
Add 'armgichist' KERNHIST for (future) debugging.
|
#
1.24 |
|
18-Jun-2017 |
jmcneill |
Don't assume that CPU index = GIC CPU interface number. We can determine the current CPU interface number by reading from the read-only GICD_ITARGETSR0 through GICD_ITARGETSR7 registers.
This gets interrupts working on Exynos 5422, where the boot processor has GIC CPU interface #4.
|
#
1.23 |
|
05-Jun-2017 |
skrll |
Clean out some #if 0'ed or //'ed code
|
#
1.22 |
|
04-Jun-2017 |
skrll |
Initialise all the SGI/PPI priorities for all CPUs to mask the interrupts
|
Revision tags: netbsd-8-base
|
#
1.21 |
|
30-May-2017 |
jmcneill |
branches: 1.21.2; Use an FDT-based ARM_INTR_IMPL for Tegra.
|
Revision tags: prg-localcount2-base3 prg-localcount2-base2 prg-localcount2-base1 prg-localcount2-base pgoyette-localcount-20170426 bouyer-socketcan-base1 jdolecek-ncq-base pgoyette-localcount-20170320 nick-nhusb-base-20170204 bouyer-socketcan-base pgoyette-localcount-20170107 nick-nhusb-base-20161204 pgoyette-localcount-20161104 nick-nhusb-base-20161004 localcount-20160914 pgoyette-localcount-20160806 pgoyette-localcount-20160726 pgoyette-localcount-base nick-nhusb-base-20160907 nick-nhusb-base-20160529 nick-nhusb-base-20160422 nick-nhusb-base-20160319 nick-nhusb-base-20151226 nick-nhusb-base-20150921
|
#
1.20 |
|
29-Jul-2015 |
matt |
Adjust some of IPLs of various IPIs.
|
Revision tags: nick-nhusb-base-20150606
|
#
1.19 |
|
15-Apr-2015 |
matt |
Add separate IPI routines for IPI_AST and IPI_KPREEMPT.
|
#
1.18 |
|
11-Apr-2015 |
matt |
Add a pic_cpus to the softc which specifies which cpus the pic can send IPIs to. For GIC, initialize pic_cpus to kcpuset_running since it can handle all the cpus.
|
#
1.17 |
|
09-Apr-2015 |
matt |
All SGIs are MPSAFE so establish them as such.
|
Revision tags: nick-nhusb-base-20150406
|
#
1.16 |
|
20-Mar-2015 |
skrll |
Trailing whitespace
|
#
1.15 |
|
12-Mar-2015 |
skrll |
G/C armgic_last_priority
|
#
1.14 |
|
03-Mar-2015 |
jmcneill |
in armgic_establish_irq, make sure to write the new value to GICD_ICFGRn when setting irq type (IST_LEVEL/IST_EDGE)
|
#
1.13 |
|
02-Mar-2015 |
jmcneill |
sc_gic_lines is the total number of valid lines but pic_sources[] is sparse; when initializing mpsafe targets make sure to go all the way to the end (sc_pic.pic_maxsources) instead
|
Revision tags: nick-nhusb-base
|
#
1.12 |
|
29-Oct-2014 |
skrll |
branches: 1.12.2; Only target boot cpu for SPIs atm. Fix a couple of bugs in the now disabled code.
|
#
1.11 |
|
29-Oct-2014 |
skrll |
Sprinkle #include "opt_multiprocessor.h"
|
Revision tags: netbsd-7-base tls-earlyentropy-base tls-maxphys-base
|
#
1.10 |
|
19-May-2014 |
rmind |
branches: 1.10.2; Implement MI IPI interface with cross-call support.
|
Revision tags: yamt-pagecache-base9 rmind-smpnet-nbase rmind-smpnet-base
|
#
1.9 |
|
27-Apr-2014 |
matt |
When dealing with the PMR register, only use non-secure priority values.
|
#
1.8 |
|
13-Apr-2014 |
matt |
Move aprint to print sooner.
|
Revision tags: riastradh-xf86-video-intel-2-7-1-pre-2-21-15
|
#
1.7 |
|
28-Mar-2014 |
matt |
branches: 1.7.2; Various MP changes.
|
Revision tags: riastradh-drm2-base3
|
#
1.6 |
|
04-Mar-2014 |
matt |
Don't byte swap the data, assume the bus_space will do it.
|
#
1.5 |
|
17-Dec-2013 |
joerg |
branches: 1.5.2; armgic_priority_to_ipl is only used in #if 0'd code, so apply that as well.
|
Revision tags: riastradh-drm2-base2 riastradh-drm2-base1 riastradh-drm2-base
|
#
1.4 |
|
20-Jun-2013 |
matt |
branches: 1.4.2; Pass the offset from CBAR/PERIPHBASE in mpcore_attach_args. Modify the list of devices to include the offset(s) from PERIPHBASE.
|
Revision tags: agc-symver-base yamt-pagecache-base8 yamt-pagecache-base7 yamt-pagecache-base6
|
#
1.3 |
|
16-Sep-2012 |
rmind |
branches: 1.3.2; 1.3.4; Rename kcpuset_copybits() to kcpuset_export_u32() and thus be more specific about the interface.
|
#
1.2 |
|
14-Sep-2012 |
matt |
Verify the source isn't a dummy source.
|
#
1.1 |
|
01-Sep-2012 |
matt |
branches: 1.1.2; Add Cortex-A9 support including the ARM Generic Interrupt Controller and the A9 Global Timer / Watchdog.
|
#
1.53 |
|
03-Mar-2022 |
riastradh |
arm: Use device_set_private for various drivers.
|
#
1.52 |
|
02-Jan-2022 |
riastradh |
arm: Remove #ifdef DIAGNOSTIC now wrong after KASSERT change.
Objects in question aren't volatile here so access is flushable.
|
#
1.51 |
|
21-Oct-2021 |
skrll |
Fix some conditionals to match gicv3 and add some comments to describe what's going on.
Fixes PR port-evbarm/56420
|
#
1.50 |
|
26-Sep-2021 |
jmcneill |
If an SGI or PPI is established after interrupts are enabled, make sure we unblock the source on _all_ CPUs and not just the CPU that is establishing the interrupt.
|
#
1.49 |
|
10-Aug-2021 |
jmcneill |
Make gic_splfuncs optional and disable it by default until it has had more testing.
|
#
1.48 |
|
10-Aug-2021 |
jmcneill |
Use custom spl funcs for GIC and avoid unnecessary pmr register accesses in splx.
|
Revision tags: thorpej-i2c-spi-conf2-base thorpej-futex2-base thorpej-cfargs2-base cjep_sun2x-base1 cjep_sun2x-base cjep_staticlib_x-base1 cjep_staticlib_x-base thorpej-i2c-spi-conf-base thorpej-cfargs-base thorpej-futex-base
|
#
1.47 |
|
28-Mar-2021 |
skrll |
Only target the boot cpu for real with SPI interrupts. I tried to do this back in 2014, but somehow I missed a spot.
This is a quick-and-dirty fix for the USB stack which expects transfer completions to be in-order. If interrupts happen across the CPUs then this isn't guaranteed (yet).
kern/55243 panic at usb_transfer_complete() on raspberry pi 4
|
#
1.46 |
|
23-Feb-2021 |
jmcneill |
branches: 1.46.2; If we are committing a deferred splhigh() to hardware, no need to continue.
|
#
1.45 |
|
21-Feb-2021 |
jmcneill |
Apply PMR optimizations from gicv3
|
#
1.44 |
|
09-Feb-2021 |
jakllsch |
Avoid an extra daif read when dispatching interrupts by using ENABLE_INTERRUPT() / DISABLE_INTERRUPT() instead of cpsie() / cpsid() macros.
|
#
1.43 |
|
03-Dec-2020 |
skrll |
Provide and use a sev() macro for the sev instruction.
While here use the correct barrier to ensure completion of memory accesses before a couple of the sev() calls.
|
#
1.42 |
|
26-Sep-2020 |
skrll |
branches: 1.42.2; G/C arm/atomic.h
|
#
1.41 |
|
27-Jul-2020 |
jmcneill |
Remove CPU ID test in armgic_match. Perfectly normal to have GIC in non-Cortex cores.
|
#
1.40 |
|
12-Jul-2020 |
skrll |
Avoid undefined behaviour. Detected by KUBSAN.
|
Revision tags: bouyer-xenpvh-base2 phil-wifi-20200421 bouyer-xenpvh-base1
|
#
1.39 |
|
13-Apr-2020 |
jmcneill |
Fix "left shift of 255 by 24 places cannot be represented in type 'int'" warning from UBSan.
|
Revision tags: netbsd-9-1-RELEASE phil-wifi-20200411 bouyer-xenpvh-base is-mlppp-base phil-wifi-20200406 ad-namecache-base3 netbsd-9-0-RELEASE netbsd-9-0-RC2 ad-namecache-base2 ad-namecache-base1 ad-namecache-base netbsd-9-0-RC1 phil-wifi-20191119 netbsd-9-base phil-wifi-20190609 isaki-audio2-base pgoyette-compat-20190127 pgoyette-compat-20190118 pgoyette-compat-1226 pgoyette-compat-1126
|
#
1.38 |
|
16-Nov-2018 |
jmcneill |
branches: 1.38.4; 1.38.10; Use intr_establish_xname
|
Revision tags: pgoyette-compat-1020 pgoyette-compat-0930
|
#
1.37 |
|
10-Sep-2018 |
jmcneill |
armgic_ipi_send: use GIC interface number, not CPU index, when setting the target(s) for an IPI.
|
#
1.36 |
|
10-Sep-2018 |
jmcneill |
Update sc_mptargets atomically, as PEs will be started up in parallel w/o locking here
|
Revision tags: pgoyette-compat-0906 pgoyette-compat-0728
|
#
1.35 |
|
15-Jul-2018 |
jmcneill |
Support pic_set_affinity and pic_get_affinity
|
Revision tags: phil-wifi-base pgoyette-compat-0625 pgoyette-compat-0521 pgoyette-compat-0502
|
#
1.34 |
|
28-Apr-2018 |
jakllsch |
branches: 1.34.2; Cover all pic_maxsources lines for armgic_cpu_init_priorities() and armgic_cpu_update_priorities().
Previously only the first 32 lines were covered, which is significantly less than the 1000-some interrupt lines possible.
Only relevant to MULTIPROCESSOR configurations.
|
Revision tags: pgoyette-compat-0422 pgoyette-compat-0415 pgoyette-compat-0407
|
#
1.33 |
|
01-Apr-2018 |
ryo |
Add initial support for ARMv8 (AARCH64) (by nisimura@ and ryo@)
- sys/arch/evbarm64 is gone and integrated into sys/arch/evbarm. (by skrll@) - add support fdt. evbarm/conf/GENERIC64 fdt (bcm2837,sunxi,tegra) based generic 64bit kernel config. (by skrll@, jmcneill@)
|
Revision tags: pgoyette-compat-0330 pgoyette-compat-0322 pgoyette-compat-0315 pgoyette-compat-base
|
#
1.32 |
|
07-Feb-2018 |
jmcneill |
branches: 1.32.2; PR# port-evbarm/49468: Cortex GIC assertion triggered on Allwinner A80 SoC
The priority level is changed by writing to GICC_PMR with interrupts disabled. However, interrupts are enabled/disabled downstream of the GICC at the CPU. When raising priority level, there is a window between the time that interrupts are disabled and the GICC_PMR register is written. If an interrupt occurs at a previously allowed priority before GICC_PMR is changed, the CPU will receive the signal when interrupts are re-enabled. At this time, GICC_PMR is now the new priority level, so reads of GICC_IAR will report a spurious IRQ.
Move the "old_ipl != IPL_HIGH" test until after we have confirmed that there is at least one pending IRQ.
|
Revision tags: tls-maxphys-base-20171202 nick-nhusb-base-20170825 perseant-stdc-iso10646-base
|
#
1.31 |
|
14-Jul-2017 |
skrll |
KNF
|
#
1.30 |
|
29-Jun-2017 |
jmcneill |
ARM Trusted Firmware reserves SGIs 8-15 for secure use. Even without ATF, U-Boot on some platforms may use SGIs in this range for the PSCI implementation.
Change ARMGIC_IPI_BASE to 0 from (16 - NIPI) and add a compile-time assert to ensure that we don't end up with a conflict.
|
#
1.29 |
|
28-Jun-2017 |
skrll |
Revert the KERNHIST for now it causes problems
|
#
1.28 |
|
22-Jun-2017 |
skrll |
If we see GICC_IAR_IRQ_SSPURIOUS we should also stop looking for irqs
|
#
1.27 |
|
22-Jun-2017 |
skrll |
Wrap long line
|
#
1.26 |
|
22-Jun-2017 |
skrll |
Print the GICC_IIDR when AB_DEBUG
|
#
1.25 |
|
22-Jun-2017 |
skrll |
Add 'armgichist' KERNHIST for (future) debugging.
|
#
1.24 |
|
18-Jun-2017 |
jmcneill |
Don't assume that CPU index = GIC CPU interface number. We can determine the current CPU interface number by reading from the read-only GICD_ITARGETSR0 through GICD_ITARGETSR7 registers.
This gets interrupts working on Exynos 5422, where the boot processor has GIC CPU interface #4.
|
#
1.23 |
|
05-Jun-2017 |
skrll |
Clean out some #if 0'ed or //'ed code
|
#
1.22 |
|
04-Jun-2017 |
skrll |
Initialise all the SGI/PPI priorities for all CPUs to mask the interrupts
|
Revision tags: netbsd-8-base
|
#
1.21 |
|
30-May-2017 |
jmcneill |
branches: 1.21.2; Use an FDT-based ARM_INTR_IMPL for Tegra.
|
Revision tags: prg-localcount2-base3 prg-localcount2-base2 prg-localcount2-base1 prg-localcount2-base pgoyette-localcount-20170426 bouyer-socketcan-base1 jdolecek-ncq-base pgoyette-localcount-20170320 nick-nhusb-base-20170204 bouyer-socketcan-base pgoyette-localcount-20170107 nick-nhusb-base-20161204 pgoyette-localcount-20161104 nick-nhusb-base-20161004 localcount-20160914 pgoyette-localcount-20160806 pgoyette-localcount-20160726 pgoyette-localcount-base nick-nhusb-base-20160907 nick-nhusb-base-20160529 nick-nhusb-base-20160422 nick-nhusb-base-20160319 nick-nhusb-base-20151226 nick-nhusb-base-20150921
|
#
1.20 |
|
29-Jul-2015 |
matt |
Adjust some of IPLs of various IPIs.
|
Revision tags: nick-nhusb-base-20150606
|
#
1.19 |
|
15-Apr-2015 |
matt |
Add separate IPI routines for IPI_AST and IPI_KPREEMPT.
|
#
1.18 |
|
11-Apr-2015 |
matt |
Add a pic_cpus to the softc which specifies which cpus the pic can send IPIs to. For GIC, initialize pic_cpus to kcpuset_running since it can handle all the cpus.
|
#
1.17 |
|
09-Apr-2015 |
matt |
All SGIs are MPSAFE so establish them as such.
|
Revision tags: nick-nhusb-base-20150406
|
#
1.16 |
|
20-Mar-2015 |
skrll |
Trailing whitespace
|
#
1.15 |
|
12-Mar-2015 |
skrll |
G/C armgic_last_priority
|
#
1.14 |
|
03-Mar-2015 |
jmcneill |
in armgic_establish_irq, make sure to write the new value to GICD_ICFGRn when setting irq type (IST_LEVEL/IST_EDGE)
|
#
1.13 |
|
02-Mar-2015 |
jmcneill |
sc_gic_lines is the total number of valid lines but pic_sources[] is sparse; when initializing mpsafe targets make sure to go all the way to the end (sc_pic.pic_maxsources) instead
|
Revision tags: nick-nhusb-base
|
#
1.12 |
|
29-Oct-2014 |
skrll |
branches: 1.12.2; Only target boot cpu for SPIs atm. Fix a couple of bugs in the now disabled code.
|
#
1.11 |
|
29-Oct-2014 |
skrll |
Sprinkle #include "opt_multiprocessor.h"
|
Revision tags: netbsd-7-base tls-earlyentropy-base tls-maxphys-base
|
#
1.10 |
|
19-May-2014 |
rmind |
branches: 1.10.2; Implement MI IPI interface with cross-call support.
|
Revision tags: yamt-pagecache-base9 rmind-smpnet-nbase rmind-smpnet-base
|
#
1.9 |
|
27-Apr-2014 |
matt |
When dealing with the PMR register, only use non-secure priority values.
|
#
1.8 |
|
13-Apr-2014 |
matt |
Move aprint to print sooner.
|
Revision tags: riastradh-xf86-video-intel-2-7-1-pre-2-21-15
|
#
1.7 |
|
28-Mar-2014 |
matt |
branches: 1.7.2; Various MP changes.
|
Revision tags: riastradh-drm2-base3
|
#
1.6 |
|
04-Mar-2014 |
matt |
Don't byte swap the data, assume the bus_space will do it.
|
#
1.5 |
|
17-Dec-2013 |
joerg |
branches: 1.5.2; armgic_priority_to_ipl is only used in #if 0'd code, so apply that as well.
|
Revision tags: riastradh-drm2-base2 riastradh-drm2-base1 riastradh-drm2-base
|
#
1.4 |
|
20-Jun-2013 |
matt |
branches: 1.4.2; Pass the offset from CBAR/PERIPHBASE in mpcore_attach_args. Modify the list of devices to include the offset(s) from PERIPHBASE.
|
Revision tags: agc-symver-base yamt-pagecache-base8 yamt-pagecache-base7 yamt-pagecache-base6
|
#
1.3 |
|
16-Sep-2012 |
rmind |
branches: 1.3.2; 1.3.4; Rename kcpuset_copybits() to kcpuset_export_u32() and thus be more specific about the interface.
|
#
1.2 |
|
14-Sep-2012 |
matt |
Verify the source isn't a dummy source.
|
#
1.1 |
|
01-Sep-2012 |
matt |
branches: 1.1.2; Add Cortex-A9 support including the ARM Generic Interrupt Controller and the A9 Global Timer / Watchdog.
|
#
1.52 |
|
02-Jan-2022 |
riastradh |
arm: Remove #ifdef DIAGNOSTIC now wrong after KASSERT change.
Objects in question aren't volatile here so access is flushable.
|
#
1.51 |
|
21-Oct-2021 |
skrll |
Fix some conditionals to match gicv3 and add some comments to describe what's going on.
Fixes PR port-evbarm/56420
|
#
1.50 |
|
26-Sep-2021 |
jmcneill |
If an SGI or PPI is established after interrupts are enabled, make sure we unblock the source on _all_ CPUs and not just the CPU that is establishing the interrupt.
|
#
1.49 |
|
10-Aug-2021 |
jmcneill |
Make gic_splfuncs optional and disable it by default until it has had more testing.
|
#
1.48 |
|
10-Aug-2021 |
jmcneill |
Use custom spl funcs for GIC and avoid unnecessary pmr register accesses in splx.
|
Revision tags: thorpej-i2c-spi-conf2-base thorpej-futex2-base thorpej-cfargs2-base cjep_sun2x-base1 cjep_sun2x-base cjep_staticlib_x-base1 cjep_staticlib_x-base thorpej-i2c-spi-conf-base thorpej-cfargs-base thorpej-futex-base
|
#
1.47 |
|
28-Mar-2021 |
skrll |
Only target the boot cpu for real with SPI interrupts. I tried to do this back in 2014, but somehow I missed a spot.
This is a quick-and-dirty fix for the USB stack which expects transfer completions to be in-order. If interrupts happen across the CPUs then this isn't guaranteed (yet).
kern/55243 panic at usb_transfer_complete() on raspberry pi 4
|
#
1.46 |
|
23-Feb-2021 |
jmcneill |
branches: 1.46.2; If we are committing a deferred splhigh() to hardware, no need to continue.
|
#
1.45 |
|
21-Feb-2021 |
jmcneill |
Apply PMR optimizations from gicv3
|
#
1.44 |
|
09-Feb-2021 |
jakllsch |
Avoid an extra daif read when dispatching interrupts by using ENABLE_INTERRUPT() / DISABLE_INTERRUPT() instead of cpsie() / cpsid() macros.
|
#
1.43 |
|
03-Dec-2020 |
skrll |
Provide and use a sev() macro for the sev instruction.
While here use the correct barrier to ensure completion of memory accesses before a couple of the sev() calls.
|
#
1.42 |
|
26-Sep-2020 |
skrll |
branches: 1.42.2; G/C arm/atomic.h
|
#
1.41 |
|
27-Jul-2020 |
jmcneill |
Remove CPU ID test in armgic_match. Perfectly normal to have GIC in non-Cortex cores.
|
#
1.40 |
|
12-Jul-2020 |
skrll |
Avoid undefined behaviour. Detected by KUBSAN.
|
Revision tags: bouyer-xenpvh-base2 phil-wifi-20200421 bouyer-xenpvh-base1
|
#
1.39 |
|
13-Apr-2020 |
jmcneill |
Fix "left shift of 255 by 24 places cannot be represented in type 'int'" warning from UBSan.
|
Revision tags: netbsd-9-1-RELEASE phil-wifi-20200411 bouyer-xenpvh-base is-mlppp-base phil-wifi-20200406 ad-namecache-base3 netbsd-9-0-RELEASE netbsd-9-0-RC2 ad-namecache-base2 ad-namecache-base1 ad-namecache-base netbsd-9-0-RC1 phil-wifi-20191119 netbsd-9-base phil-wifi-20190609 isaki-audio2-base pgoyette-compat-20190127 pgoyette-compat-20190118 pgoyette-compat-1226 pgoyette-compat-1126
|
#
1.38 |
|
16-Nov-2018 |
jmcneill |
branches: 1.38.4; 1.38.10; Use intr_establish_xname
|
Revision tags: pgoyette-compat-1020 pgoyette-compat-0930
|
#
1.37 |
|
10-Sep-2018 |
jmcneill |
armgic_ipi_send: use GIC interface number, not CPU index, when setting the target(s) for an IPI.
|
#
1.36 |
|
10-Sep-2018 |
jmcneill |
Update sc_mptargets atomically, as PEs will be started up in parallel w/o locking here
|
Revision tags: pgoyette-compat-0906 pgoyette-compat-0728
|
#
1.35 |
|
15-Jul-2018 |
jmcneill |
Support pic_set_affinity and pic_get_affinity
|
Revision tags: phil-wifi-base pgoyette-compat-0625 pgoyette-compat-0521 pgoyette-compat-0502
|
#
1.34 |
|
28-Apr-2018 |
jakllsch |
branches: 1.34.2; Cover all pic_maxsources lines for armgic_cpu_init_priorities() and armgic_cpu_update_priorities().
Previously only the first 32 lines were covered, which is significantly less than the 1000-some interrupt lines possible.
Only relevant to MULTIPROCESSOR configurations.
|
Revision tags: pgoyette-compat-0422 pgoyette-compat-0415 pgoyette-compat-0407
|
#
1.33 |
|
01-Apr-2018 |
ryo |
Add initial support for ARMv8 (AARCH64) (by nisimura@ and ryo@)
- sys/arch/evbarm64 is gone and integrated into sys/arch/evbarm. (by skrll@) - add support fdt. evbarm/conf/GENERIC64 fdt (bcm2837,sunxi,tegra) based generic 64bit kernel config. (by skrll@, jmcneill@)
|
Revision tags: pgoyette-compat-0330 pgoyette-compat-0322 pgoyette-compat-0315 pgoyette-compat-base
|
#
1.32 |
|
07-Feb-2018 |
jmcneill |
branches: 1.32.2; PR# port-evbarm/49468: Cortex GIC assertion triggered on Allwinner A80 SoC
The priority level is changed by writing to GICC_PMR with interrupts disabled. However, interrupts are enabled/disabled downstream of the GICC at the CPU. When raising priority level, there is a window between the time that interrupts are disabled and the GICC_PMR register is written. If an interrupt occurs at a previously allowed priority before GICC_PMR is changed, the CPU will receive the signal when interrupts are re-enabled. At this time, GICC_PMR is now the new priority level, so reads of GICC_IAR will report a spurious IRQ.
Move the "old_ipl != IPL_HIGH" test until after we have confirmed that there is at least one pending IRQ.
|
Revision tags: tls-maxphys-base-20171202 nick-nhusb-base-20170825 perseant-stdc-iso10646-base
|
#
1.31 |
|
14-Jul-2017 |
skrll |
KNF
|
#
1.30 |
|
29-Jun-2017 |
jmcneill |
ARM Trusted Firmware reserves SGIs 8-15 for secure use. Even without ATF, U-Boot on some platforms may use SGIs in this range for the PSCI implementation.
Change ARMGIC_IPI_BASE to 0 from (16 - NIPI) and add a compile-time assert to ensure that we don't end up with a conflict.
|
#
1.29 |
|
28-Jun-2017 |
skrll |
Revert the KERNHIST for now it causes problems
|
#
1.28 |
|
22-Jun-2017 |
skrll |
If we see GICC_IAR_IRQ_SSPURIOUS we should also stop looking for irqs
|
#
1.27 |
|
22-Jun-2017 |
skrll |
Wrap long line
|
#
1.26 |
|
22-Jun-2017 |
skrll |
Print the GICC_IIDR when AB_DEBUG
|
#
1.25 |
|
22-Jun-2017 |
skrll |
Add 'armgichist' KERNHIST for (future) debugging.
|
#
1.24 |
|
18-Jun-2017 |
jmcneill |
Don't assume that CPU index = GIC CPU interface number. We can determine the current CPU interface number by reading from the read-only GICD_ITARGETSR0 through GICD_ITARGETSR7 registers.
This gets interrupts working on Exynos 5422, where the boot processor has GIC CPU interface #4.
|
#
1.23 |
|
05-Jun-2017 |
skrll |
Clean out some #if 0'ed or //'ed code
|
#
1.22 |
|
04-Jun-2017 |
skrll |
Initialise all the SGI/PPI priorities for all CPUs to mask the interrupts
|
Revision tags: netbsd-8-base
|
#
1.21 |
|
30-May-2017 |
jmcneill |
branches: 1.21.2; Use an FDT-based ARM_INTR_IMPL for Tegra.
|
Revision tags: prg-localcount2-base3 prg-localcount2-base2 prg-localcount2-base1 prg-localcount2-base pgoyette-localcount-20170426 bouyer-socketcan-base1 jdolecek-ncq-base pgoyette-localcount-20170320 nick-nhusb-base-20170204 bouyer-socketcan-base pgoyette-localcount-20170107 nick-nhusb-base-20161204 pgoyette-localcount-20161104 nick-nhusb-base-20161004 localcount-20160914 pgoyette-localcount-20160806 pgoyette-localcount-20160726 pgoyette-localcount-base nick-nhusb-base-20160907 nick-nhusb-base-20160529 nick-nhusb-base-20160422 nick-nhusb-base-20160319 nick-nhusb-base-20151226 nick-nhusb-base-20150921
|
#
1.20 |
|
29-Jul-2015 |
matt |
Adjust some of IPLs of various IPIs.
|
Revision tags: nick-nhusb-base-20150606
|
#
1.19 |
|
15-Apr-2015 |
matt |
Add separate IPI routines for IPI_AST and IPI_KPREEMPT.
|
#
1.18 |
|
11-Apr-2015 |
matt |
Add a pic_cpus to the softc which specifies which cpus the pic can send IPIs to. For GIC, initialize pic_cpus to kcpuset_running since it can handle all the cpus.
|
#
1.17 |
|
09-Apr-2015 |
matt |
All SGIs are MPSAFE so establish them as such.
|
Revision tags: nick-nhusb-base-20150406
|
#
1.16 |
|
20-Mar-2015 |
skrll |
Trailing whitespace
|
#
1.15 |
|
12-Mar-2015 |
skrll |
G/C armgic_last_priority
|
#
1.14 |
|
03-Mar-2015 |
jmcneill |
in armgic_establish_irq, make sure to write the new value to GICD_ICFGRn when setting irq type (IST_LEVEL/IST_EDGE)
|
#
1.13 |
|
02-Mar-2015 |
jmcneill |
sc_gic_lines is the total number of valid lines but pic_sources[] is sparse; when initializing mpsafe targets make sure to go all the way to the end (sc_pic.pic_maxsources) instead
|
Revision tags: nick-nhusb-base
|
#
1.12 |
|
29-Oct-2014 |
skrll |
branches: 1.12.2; Only target boot cpu for SPIs atm. Fix a couple of bugs in the now disabled code.
|
#
1.11 |
|
29-Oct-2014 |
skrll |
Sprinkle #include "opt_multiprocessor.h"
|
Revision tags: netbsd-7-base tls-earlyentropy-base tls-maxphys-base
|
#
1.10 |
|
19-May-2014 |
rmind |
branches: 1.10.2; Implement MI IPI interface with cross-call support.
|
Revision tags: yamt-pagecache-base9 rmind-smpnet-nbase rmind-smpnet-base
|
#
1.9 |
|
27-Apr-2014 |
matt |
When dealing with the PMR register, only use non-secure priority values.
|
#
1.8 |
|
13-Apr-2014 |
matt |
Move aprint to print sooner.
|
Revision tags: riastradh-xf86-video-intel-2-7-1-pre-2-21-15
|
#
1.7 |
|
28-Mar-2014 |
matt |
branches: 1.7.2; Various MP changes.
|
Revision tags: riastradh-drm2-base3
|
#
1.6 |
|
04-Mar-2014 |
matt |
Don't byte swap the data, assume the bus_space will do it.
|
#
1.5 |
|
17-Dec-2013 |
joerg |
branches: 1.5.2; armgic_priority_to_ipl is only used in #if 0'd code, so apply that as well.
|
Revision tags: riastradh-drm2-base2 riastradh-drm2-base1 riastradh-drm2-base
|
#
1.4 |
|
20-Jun-2013 |
matt |
branches: 1.4.2; Pass the offset from CBAR/PERIPHBASE in mpcore_attach_args. Modify the list of devices to include the offset(s) from PERIPHBASE.
|
Revision tags: agc-symver-base yamt-pagecache-base8 yamt-pagecache-base7 yamt-pagecache-base6
|
#
1.3 |
|
16-Sep-2012 |
rmind |
branches: 1.3.2; 1.3.4; Rename kcpuset_copybits() to kcpuset_export_u32() and thus be more specific about the interface.
|
#
1.2 |
|
14-Sep-2012 |
matt |
Verify the source isn't a dummy source.
|
#
1.1 |
|
01-Sep-2012 |
matt |
branches: 1.1.2; Add Cortex-A9 support including the ARM Generic Interrupt Controller and the A9 Global Timer / Watchdog.
|
#
1.51 |
|
21-Oct-2021 |
skrll |
Fix some conditionals to match gicv3 and add some comments to describe what's going on.
Fixes PR port-evbarm/56420
|
#
1.50 |
|
26-Sep-2021 |
jmcneill |
If an SGI or PPI is established after interrupts are enabled, make sure we unblock the source on _all_ CPUs and not just the CPU that is establishing the interrupt.
|
#
1.49 |
|
10-Aug-2021 |
jmcneill |
Make gic_splfuncs optional and disable it by default until it has had more testing.
|
#
1.48 |
|
10-Aug-2021 |
jmcneill |
Use custom spl funcs for GIC and avoid unnecessary pmr register accesses in splx.
|
Revision tags: thorpej-i2c-spi-conf2-base thorpej-futex2-base thorpej-cfargs2-base cjep_sun2x-base1 cjep_sun2x-base cjep_staticlib_x-base1 cjep_staticlib_x-base thorpej-i2c-spi-conf-base thorpej-cfargs-base thorpej-futex-base
|
#
1.47 |
|
28-Mar-2021 |
skrll |
Only target the boot cpu for real with SPI interrupts. I tried to do this back in 2014, but somehow I missed a spot.
This is a quick-and-dirty fix for the USB stack which expects transfer completions to be in-order. If interrupts happen across the CPUs then this isn't guaranteed (yet).
kern/55243 panic at usb_transfer_complete() on raspberry pi 4
|
#
1.46 |
|
23-Feb-2021 |
jmcneill |
branches: 1.46.2; If we are committing a deferred splhigh() to hardware, no need to continue.
|
#
1.45 |
|
21-Feb-2021 |
jmcneill |
Apply PMR optimizations from gicv3
|
#
1.44 |
|
09-Feb-2021 |
jakllsch |
Avoid an extra daif read when dispatching interrupts by using ENABLE_INTERRUPT() / DISABLE_INTERRUPT() instead of cpsie() / cpsid() macros.
|
#
1.43 |
|
03-Dec-2020 |
skrll |
Provide and use a sev() macro for the sev instruction.
While here use the correct barrier to ensure completion of memory accesses before a couple of the sev() calls.
|
#
1.42 |
|
26-Sep-2020 |
skrll |
branches: 1.42.2; G/C arm/atomic.h
|
#
1.41 |
|
27-Jul-2020 |
jmcneill |
Remove CPU ID test in armgic_match. Perfectly normal to have GIC in non-Cortex cores.
|
#
1.40 |
|
12-Jul-2020 |
skrll |
Avoid undefined behaviour. Detected by KUBSAN.
|
Revision tags: bouyer-xenpvh-base2 phil-wifi-20200421 bouyer-xenpvh-base1
|
#
1.39 |
|
13-Apr-2020 |
jmcneill |
Fix "left shift of 255 by 24 places cannot be represented in type 'int'" warning from UBSan.
|
Revision tags: netbsd-9-1-RELEASE phil-wifi-20200411 bouyer-xenpvh-base is-mlppp-base phil-wifi-20200406 ad-namecache-base3 netbsd-9-0-RELEASE netbsd-9-0-RC2 ad-namecache-base2 ad-namecache-base1 ad-namecache-base netbsd-9-0-RC1 phil-wifi-20191119 netbsd-9-base phil-wifi-20190609 isaki-audio2-base pgoyette-compat-20190127 pgoyette-compat-20190118 pgoyette-compat-1226 pgoyette-compat-1126
|
#
1.38 |
|
16-Nov-2018 |
jmcneill |
branches: 1.38.4; 1.38.10; Use intr_establish_xname
|
Revision tags: pgoyette-compat-1020 pgoyette-compat-0930
|
#
1.37 |
|
10-Sep-2018 |
jmcneill |
armgic_ipi_send: use GIC interface number, not CPU index, when setting the target(s) for an IPI.
|
#
1.36 |
|
10-Sep-2018 |
jmcneill |
Update sc_mptargets atomically, as PEs will be started up in parallel w/o locking here
|
Revision tags: pgoyette-compat-0906 pgoyette-compat-0728
|
#
1.35 |
|
15-Jul-2018 |
jmcneill |
Support pic_set_affinity and pic_get_affinity
|
Revision tags: phil-wifi-base pgoyette-compat-0625 pgoyette-compat-0521 pgoyette-compat-0502
|
#
1.34 |
|
28-Apr-2018 |
jakllsch |
branches: 1.34.2; Cover all pic_maxsources lines for armgic_cpu_init_priorities() and armgic_cpu_update_priorities().
Previously only the first 32 lines were covered, which is significantly less than the 1000-some interrupt lines possible.
Only relevant to MULTIPROCESSOR configurations.
|
Revision tags: pgoyette-compat-0422 pgoyette-compat-0415 pgoyette-compat-0407
|
#
1.33 |
|
01-Apr-2018 |
ryo |
Add initial support for ARMv8 (AARCH64) (by nisimura@ and ryo@)
- sys/arch/evbarm64 is gone and integrated into sys/arch/evbarm. (by skrll@) - add support fdt. evbarm/conf/GENERIC64 fdt (bcm2837,sunxi,tegra) based generic 64bit kernel config. (by skrll@, jmcneill@)
|
Revision tags: pgoyette-compat-0330 pgoyette-compat-0322 pgoyette-compat-0315 pgoyette-compat-base
|
#
1.32 |
|
07-Feb-2018 |
jmcneill |
branches: 1.32.2; PR# port-evbarm/49468: Cortex GIC assertion triggered on Allwinner A80 SoC
The priority level is changed by writing to GICC_PMR with interrupts disabled. However, interrupts are enabled/disabled downstream of the GICC at the CPU. When raising priority level, there is a window between the time that interrupts are disabled and the GICC_PMR register is written. If an interrupt occurs at a previously allowed priority before GICC_PMR is changed, the CPU will receive the signal when interrupts are re-enabled. At this time, GICC_PMR is now the new priority level, so reads of GICC_IAR will report a spurious IRQ.
Move the "old_ipl != IPL_HIGH" test until after we have confirmed that there is at least one pending IRQ.
|
Revision tags: tls-maxphys-base-20171202 nick-nhusb-base-20170825 perseant-stdc-iso10646-base
|
#
1.31 |
|
14-Jul-2017 |
skrll |
KNF
|
#
1.30 |
|
29-Jun-2017 |
jmcneill |
ARM Trusted Firmware reserves SGIs 8-15 for secure use. Even without ATF, U-Boot on some platforms may use SGIs in this range for the PSCI implementation.
Change ARMGIC_IPI_BASE to 0 from (16 - NIPI) and add a compile-time assert to ensure that we don't end up with a conflict.
|
#
1.29 |
|
28-Jun-2017 |
skrll |
Revert the KERNHIST for now it causes problems
|
#
1.28 |
|
22-Jun-2017 |
skrll |
If we see GICC_IAR_IRQ_SSPURIOUS we should also stop looking for irqs
|
#
1.27 |
|
22-Jun-2017 |
skrll |
Wrap long line
|
#
1.26 |
|
22-Jun-2017 |
skrll |
Print the GICC_IIDR when AB_DEBUG
|
#
1.25 |
|
22-Jun-2017 |
skrll |
Add 'armgichist' KERNHIST for (future) debugging.
|
#
1.24 |
|
18-Jun-2017 |
jmcneill |
Don't assume that CPU index = GIC CPU interface number. We can determine the current CPU interface number by reading from the read-only GICD_ITARGETSR0 through GICD_ITARGETSR7 registers.
This gets interrupts working on Exynos 5422, where the boot processor has GIC CPU interface #4.
|
#
1.23 |
|
05-Jun-2017 |
skrll |
Clean out some #if 0'ed or //'ed code
|
#
1.22 |
|
04-Jun-2017 |
skrll |
Initialise all the SGI/PPI priorities for all CPUs to mask the interrupts
|
Revision tags: netbsd-8-base
|
#
1.21 |
|
30-May-2017 |
jmcneill |
branches: 1.21.2; Use an FDT-based ARM_INTR_IMPL for Tegra.
|
Revision tags: prg-localcount2-base3 prg-localcount2-base2 prg-localcount2-base1 prg-localcount2-base pgoyette-localcount-20170426 bouyer-socketcan-base1 jdolecek-ncq-base pgoyette-localcount-20170320 nick-nhusb-base-20170204 bouyer-socketcan-base pgoyette-localcount-20170107 nick-nhusb-base-20161204 pgoyette-localcount-20161104 nick-nhusb-base-20161004 localcount-20160914 pgoyette-localcount-20160806 pgoyette-localcount-20160726 pgoyette-localcount-base nick-nhusb-base-20160907 nick-nhusb-base-20160529 nick-nhusb-base-20160422 nick-nhusb-base-20160319 nick-nhusb-base-20151226 nick-nhusb-base-20150921
|
#
1.20 |
|
29-Jul-2015 |
matt |
Adjust some of IPLs of various IPIs.
|
Revision tags: nick-nhusb-base-20150606
|
#
1.19 |
|
15-Apr-2015 |
matt |
Add separate IPI routines for IPI_AST and IPI_KPREEMPT.
|
#
1.18 |
|
11-Apr-2015 |
matt |
Add a pic_cpus to the softc which specifies which cpus the pic can send IPIs to. For GIC, initialize pic_cpus to kcpuset_running since it can handle all the cpus.
|
#
1.17 |
|
09-Apr-2015 |
matt |
All SGIs are MPSAFE so establish them as such.
|
Revision tags: nick-nhusb-base-20150406
|
#
1.16 |
|
20-Mar-2015 |
skrll |
Trailing whitespace
|
#
1.15 |
|
12-Mar-2015 |
skrll |
G/C armgic_last_priority
|
#
1.14 |
|
03-Mar-2015 |
jmcneill |
in armgic_establish_irq, make sure to write the new value to GICD_ICFGRn when setting irq type (IST_LEVEL/IST_EDGE)
|
#
1.13 |
|
02-Mar-2015 |
jmcneill |
sc_gic_lines is the total number of valid lines but pic_sources[] is sparse; when initializing mpsafe targets make sure to go all the way to the end (sc_pic.pic_maxsources) instead
|
Revision tags: nick-nhusb-base
|
#
1.12 |
|
29-Oct-2014 |
skrll |
branches: 1.12.2; Only target boot cpu for SPIs atm. Fix a couple of bugs in the now disabled code.
|
#
1.11 |
|
29-Oct-2014 |
skrll |
Sprinkle #include "opt_multiprocessor.h"
|
Revision tags: netbsd-7-base tls-earlyentropy-base tls-maxphys-base
|
#
1.10 |
|
19-May-2014 |
rmind |
branches: 1.10.2; Implement MI IPI interface with cross-call support.
|
Revision tags: yamt-pagecache-base9 rmind-smpnet-nbase rmind-smpnet-base
|
#
1.9 |
|
27-Apr-2014 |
matt |
When dealing with the PMR register, only use non-secure priority values.
|
#
1.8 |
|
13-Apr-2014 |
matt |
Move aprint to print sooner.
|
Revision tags: riastradh-xf86-video-intel-2-7-1-pre-2-21-15
|
#
1.7 |
|
28-Mar-2014 |
matt |
branches: 1.7.2; Various MP changes.
|
Revision tags: riastradh-drm2-base3
|
#
1.6 |
|
04-Mar-2014 |
matt |
Don't byte swap the data, assume the bus_space will do it.
|
#
1.5 |
|
17-Dec-2013 |
joerg |
branches: 1.5.2; armgic_priority_to_ipl is only used in #if 0'd code, so apply that as well.
|
Revision tags: riastradh-drm2-base2 riastradh-drm2-base1 riastradh-drm2-base
|
#
1.4 |
|
20-Jun-2013 |
matt |
branches: 1.4.2; Pass the offset from CBAR/PERIPHBASE in mpcore_attach_args. Modify the list of devices to include the offset(s) from PERIPHBASE.
|
Revision tags: agc-symver-base yamt-pagecache-base8 yamt-pagecache-base7 yamt-pagecache-base6
|
#
1.3 |
|
16-Sep-2012 |
rmind |
branches: 1.3.2; 1.3.4; Rename kcpuset_copybits() to kcpuset_export_u32() and thus be more specific about the interface.
|
#
1.2 |
|
14-Sep-2012 |
matt |
Verify the source isn't a dummy source.
|
#
1.1 |
|
01-Sep-2012 |
matt |
branches: 1.1.2; Add Cortex-A9 support including the ARM Generic Interrupt Controller and the A9 Global Timer / Watchdog.
|
#
1.50 |
|
26-Sep-2021 |
jmcneill |
If an SGI or PPI is established after interrupts are enabled, make sure we unblock the source on _all_ CPUs and not just the CPU that is establishing the interrupt.
|
#
1.49 |
|
10-Aug-2021 |
jmcneill |
Make gic_splfuncs optional and disable it by default until it has had more testing.
|
#
1.48 |
|
10-Aug-2021 |
jmcneill |
Use custom spl funcs for GIC and avoid unnecessary pmr register accesses in splx.
|
Revision tags: thorpej-i2c-spi-conf2-base thorpej-futex2-base thorpej-cfargs2-base cjep_sun2x-base1 cjep_sun2x-base cjep_staticlib_x-base1 cjep_staticlib_x-base thorpej-i2c-spi-conf-base thorpej-cfargs-base thorpej-futex-base
|
#
1.47 |
|
28-Mar-2021 |
skrll |
Only target the boot cpu for real with SPI interrupts. I tried to do this back in 2014, but somehow I missed a spot.
This is a quick-and-dirty fix for the USB stack which expects transfer completions to be in-order. If interrupts happen across the CPUs then this isn't guaranteed (yet).
kern/55243 panic at usb_transfer_complete() on raspberry pi 4
|
#
1.46 |
|
23-Feb-2021 |
jmcneill |
branches: 1.46.2; If we are committing a deferred splhigh() to hardware, no need to continue.
|
#
1.45 |
|
21-Feb-2021 |
jmcneill |
Apply PMR optimizations from gicv3
|
#
1.44 |
|
09-Feb-2021 |
jakllsch |
Avoid an extra daif read when dispatching interrupts by using ENABLE_INTERRUPT() / DISABLE_INTERRUPT() instead of cpsie() / cpsid() macros.
|
#
1.43 |
|
03-Dec-2020 |
skrll |
Provide and use a sev() macro for the sev instruction.
While here use the correct barrier to ensure completion of memory accesses before a couple of the sev() calls.
|
#
1.42 |
|
26-Sep-2020 |
skrll |
branches: 1.42.2; G/C arm/atomic.h
|
#
1.41 |
|
27-Jul-2020 |
jmcneill |
Remove CPU ID test in armgic_match. Perfectly normal to have GIC in non-Cortex cores.
|
#
1.40 |
|
12-Jul-2020 |
skrll |
Avoid undefined behaviour. Detected by KUBSAN.
|
Revision tags: bouyer-xenpvh-base2 phil-wifi-20200421 bouyer-xenpvh-base1
|
#
1.39 |
|
13-Apr-2020 |
jmcneill |
Fix "left shift of 255 by 24 places cannot be represented in type 'int'" warning from UBSan.
|
Revision tags: netbsd-9-1-RELEASE phil-wifi-20200411 bouyer-xenpvh-base is-mlppp-base phil-wifi-20200406 ad-namecache-base3 netbsd-9-0-RELEASE netbsd-9-0-RC2 ad-namecache-base2 ad-namecache-base1 ad-namecache-base netbsd-9-0-RC1 phil-wifi-20191119 netbsd-9-base phil-wifi-20190609 isaki-audio2-base pgoyette-compat-20190127 pgoyette-compat-20190118 pgoyette-compat-1226 pgoyette-compat-1126
|
#
1.38 |
|
16-Nov-2018 |
jmcneill |
branches: 1.38.4; 1.38.10; Use intr_establish_xname
|
Revision tags: pgoyette-compat-1020 pgoyette-compat-0930
|
#
1.37 |
|
10-Sep-2018 |
jmcneill |
armgic_ipi_send: use GIC interface number, not CPU index, when setting the target(s) for an IPI.
|
#
1.36 |
|
10-Sep-2018 |
jmcneill |
Update sc_mptargets atomically, as PEs will be started up in parallel w/o locking here
|
Revision tags: pgoyette-compat-0906 pgoyette-compat-0728
|
#
1.35 |
|
15-Jul-2018 |
jmcneill |
Support pic_set_affinity and pic_get_affinity
|
Revision tags: phil-wifi-base pgoyette-compat-0625 pgoyette-compat-0521 pgoyette-compat-0502
|
#
1.34 |
|
28-Apr-2018 |
jakllsch |
branches: 1.34.2; Cover all pic_maxsources lines for armgic_cpu_init_priorities() and armgic_cpu_update_priorities().
Previously only the first 32 lines were covered, which is significantly less than the 1000-some interrupt lines possible.
Only relevant to MULTIPROCESSOR configurations.
|
Revision tags: pgoyette-compat-0422 pgoyette-compat-0415 pgoyette-compat-0407
|
#
1.33 |
|
01-Apr-2018 |
ryo |
Add initial support for ARMv8 (AARCH64) (by nisimura@ and ryo@)
- sys/arch/evbarm64 is gone and integrated into sys/arch/evbarm. (by skrll@) - add support fdt. evbarm/conf/GENERIC64 fdt (bcm2837,sunxi,tegra) based generic 64bit kernel config. (by skrll@, jmcneill@)
|
Revision tags: pgoyette-compat-0330 pgoyette-compat-0322 pgoyette-compat-0315 pgoyette-compat-base
|
#
1.32 |
|
07-Feb-2018 |
jmcneill |
branches: 1.32.2; PR# port-evbarm/49468: Cortex GIC assertion triggered on Allwinner A80 SoC
The priority level is changed by writing to GICC_PMR with interrupts disabled. However, interrupts are enabled/disabled downstream of the GICC at the CPU. When raising priority level, there is a window between the time that interrupts are disabled and the GICC_PMR register is written. If an interrupt occurs at a previously allowed priority before GICC_PMR is changed, the CPU will receive the signal when interrupts are re-enabled. At this time, GICC_PMR is now the new priority level, so reads of GICC_IAR will report a spurious IRQ.
Move the "old_ipl != IPL_HIGH" test until after we have confirmed that there is at least one pending IRQ.
|
Revision tags: tls-maxphys-base-20171202 nick-nhusb-base-20170825 perseant-stdc-iso10646-base
|
#
1.31 |
|
14-Jul-2017 |
skrll |
KNF
|
#
1.30 |
|
29-Jun-2017 |
jmcneill |
ARM Trusted Firmware reserves SGIs 8-15 for secure use. Even without ATF, U-Boot on some platforms may use SGIs in this range for the PSCI implementation.
Change ARMGIC_IPI_BASE to 0 from (16 - NIPI) and add a compile-time assert to ensure that we don't end up with a conflict.
|
#
1.29 |
|
28-Jun-2017 |
skrll |
Revert the KERNHIST for now it causes problems
|
#
1.28 |
|
22-Jun-2017 |
skrll |
If we see GICC_IAR_IRQ_SSPURIOUS we should also stop looking for irqs
|
#
1.27 |
|
22-Jun-2017 |
skrll |
Wrap long line
|
#
1.26 |
|
22-Jun-2017 |
skrll |
Print the GICC_IIDR when AB_DEBUG
|
#
1.25 |
|
22-Jun-2017 |
skrll |
Add 'armgichist' KERNHIST for (future) debugging.
|
#
1.24 |
|
18-Jun-2017 |
jmcneill |
Don't assume that CPU index = GIC CPU interface number. We can determine the current CPU interface number by reading from the read-only GICD_ITARGETSR0 through GICD_ITARGETSR7 registers.
This gets interrupts working on Exynos 5422, where the boot processor has GIC CPU interface #4.
|
#
1.23 |
|
05-Jun-2017 |
skrll |
Clean out some #if 0'ed or //'ed code
|
#
1.22 |
|
04-Jun-2017 |
skrll |
Initialise all the SGI/PPI priorities for all CPUs to mask the interrupts
|
Revision tags: netbsd-8-base
|
#
1.21 |
|
30-May-2017 |
jmcneill |
branches: 1.21.2; Use an FDT-based ARM_INTR_IMPL for Tegra.
|
Revision tags: prg-localcount2-base3 prg-localcount2-base2 prg-localcount2-base1 prg-localcount2-base pgoyette-localcount-20170426 bouyer-socketcan-base1 jdolecek-ncq-base pgoyette-localcount-20170320 nick-nhusb-base-20170204 bouyer-socketcan-base pgoyette-localcount-20170107 nick-nhusb-base-20161204 pgoyette-localcount-20161104 nick-nhusb-base-20161004 localcount-20160914 pgoyette-localcount-20160806 pgoyette-localcount-20160726 pgoyette-localcount-base nick-nhusb-base-20160907 nick-nhusb-base-20160529 nick-nhusb-base-20160422 nick-nhusb-base-20160319 nick-nhusb-base-20151226 nick-nhusb-base-20150921
|
#
1.20 |
|
29-Jul-2015 |
matt |
Adjust some of IPLs of various IPIs.
|
Revision tags: nick-nhusb-base-20150606
|
#
1.19 |
|
15-Apr-2015 |
matt |
Add separate IPI routines for IPI_AST and IPI_KPREEMPT.
|
#
1.18 |
|
11-Apr-2015 |
matt |
Add a pic_cpus to the softc which specifies which cpus the pic can send IPIs to. For GIC, initialize pic_cpus to kcpuset_running since it can handle all the cpus.
|
#
1.17 |
|
09-Apr-2015 |
matt |
All SGIs are MPSAFE so establish them as such.
|
Revision tags: nick-nhusb-base-20150406
|
#
1.16 |
|
20-Mar-2015 |
skrll |
Trailing whitespace
|
#
1.15 |
|
12-Mar-2015 |
skrll |
G/C armgic_last_priority
|
#
1.14 |
|
03-Mar-2015 |
jmcneill |
in armgic_establish_irq, make sure to write the new value to GICD_ICFGRn when setting irq type (IST_LEVEL/IST_EDGE)
|
#
1.13 |
|
02-Mar-2015 |
jmcneill |
sc_gic_lines is the total number of valid lines but pic_sources[] is sparse; when initializing mpsafe targets make sure to go all the way to the end (sc_pic.pic_maxsources) instead
|
Revision tags: nick-nhusb-base
|
#
1.12 |
|
29-Oct-2014 |
skrll |
branches: 1.12.2; Only target boot cpu for SPIs atm. Fix a couple of bugs in the now disabled code.
|
#
1.11 |
|
29-Oct-2014 |
skrll |
Sprinkle #include "opt_multiprocessor.h"
|
Revision tags: netbsd-7-base tls-earlyentropy-base tls-maxphys-base
|
#
1.10 |
|
19-May-2014 |
rmind |
branches: 1.10.2; Implement MI IPI interface with cross-call support.
|
Revision tags: yamt-pagecache-base9 rmind-smpnet-nbase rmind-smpnet-base
|
#
1.9 |
|
27-Apr-2014 |
matt |
When dealing with the PMR register, only use non-secure priority values.
|
#
1.8 |
|
13-Apr-2014 |
matt |
Move aprint to print sooner.
|
Revision tags: riastradh-xf86-video-intel-2-7-1-pre-2-21-15
|
#
1.7 |
|
28-Mar-2014 |
matt |
branches: 1.7.2; Various MP changes.
|
Revision tags: riastradh-drm2-base3
|
#
1.6 |
|
04-Mar-2014 |
matt |
Don't byte swap the data, assume the bus_space will do it.
|
#
1.5 |
|
17-Dec-2013 |
joerg |
branches: 1.5.2; armgic_priority_to_ipl is only used in #if 0'd code, so apply that as well.
|
Revision tags: riastradh-drm2-base2 riastradh-drm2-base1 riastradh-drm2-base
|
#
1.4 |
|
20-Jun-2013 |
matt |
branches: 1.4.2; Pass the offset from CBAR/PERIPHBASE in mpcore_attach_args. Modify the list of devices to include the offset(s) from PERIPHBASE.
|
Revision tags: agc-symver-base yamt-pagecache-base8 yamt-pagecache-base7 yamt-pagecache-base6
|
#
1.3 |
|
16-Sep-2012 |
rmind |
branches: 1.3.2; 1.3.4; Rename kcpuset_copybits() to kcpuset_export_u32() and thus be more specific about the interface.
|
#
1.2 |
|
14-Sep-2012 |
matt |
Verify the source isn't a dummy source.
|
#
1.1 |
|
01-Sep-2012 |
matt |
branches: 1.1.2; Add Cortex-A9 support including the ARM Generic Interrupt Controller and the A9 Global Timer / Watchdog.
|
#
1.49 |
|
10-Aug-2021 |
jmcneill |
Make gic_splfuncs optional and disable it by default until it has had more testing.
|
#
1.48 |
|
10-Aug-2021 |
jmcneill |
Use custom spl funcs for GIC and avoid unnecessary pmr register accesses in splx.
|
Revision tags: thorpej-i2c-spi-conf2-base thorpej-futex2-base thorpej-cfargs2-base cjep_sun2x-base1 cjep_sun2x-base cjep_staticlib_x-base1 cjep_staticlib_x-base thorpej-i2c-spi-conf-base thorpej-cfargs-base thorpej-futex-base
|
#
1.47 |
|
28-Mar-2021 |
skrll |
Only target the boot cpu for real with SPI interrupts. I tried to do this back in 2014, but somehow I missed a spot.
This is a quick-and-dirty fix for the USB stack which expects transfer completions to be in-order. If interrupts happen across the CPUs then this isn't guaranteed (yet).
kern/55243 panic at usb_transfer_complete() on raspberry pi 4
|
#
1.46 |
|
23-Feb-2021 |
jmcneill |
branches: 1.46.2; If we are committing a deferred splhigh() to hardware, no need to continue.
|
#
1.45 |
|
21-Feb-2021 |
jmcneill |
Apply PMR optimizations from gicv3
|
#
1.44 |
|
09-Feb-2021 |
jakllsch |
Avoid an extra daif read when dispatching interrupts by using ENABLE_INTERRUPT() / DISABLE_INTERRUPT() instead of cpsie() / cpsid() macros.
|
#
1.43 |
|
03-Dec-2020 |
skrll |
Provide and use a sev() macro for the sev instruction.
While here use the correct barrier to ensure completion of memory accesses before a couple of the sev() calls.
|
#
1.42 |
|
26-Sep-2020 |
skrll |
branches: 1.42.2; G/C arm/atomic.h
|
#
1.41 |
|
27-Jul-2020 |
jmcneill |
Remove CPU ID test in armgic_match. Perfectly normal to have GIC in non-Cortex cores.
|
#
1.40 |
|
12-Jul-2020 |
skrll |
Avoid undefined behaviour. Detected by KUBSAN.
|
Revision tags: bouyer-xenpvh-base2 phil-wifi-20200421 bouyer-xenpvh-base1
|
#
1.39 |
|
13-Apr-2020 |
jmcneill |
Fix "left shift of 255 by 24 places cannot be represented in type 'int'" warning from UBSan.
|
Revision tags: netbsd-9-1-RELEASE phil-wifi-20200411 bouyer-xenpvh-base is-mlppp-base phil-wifi-20200406 ad-namecache-base3 netbsd-9-0-RELEASE netbsd-9-0-RC2 ad-namecache-base2 ad-namecache-base1 ad-namecache-base netbsd-9-0-RC1 phil-wifi-20191119 netbsd-9-base phil-wifi-20190609 isaki-audio2-base pgoyette-compat-20190127 pgoyette-compat-20190118 pgoyette-compat-1226 pgoyette-compat-1126
|
#
1.38 |
|
16-Nov-2018 |
jmcneill |
branches: 1.38.4; 1.38.10; Use intr_establish_xname
|
Revision tags: pgoyette-compat-1020 pgoyette-compat-0930
|
#
1.37 |
|
10-Sep-2018 |
jmcneill |
armgic_ipi_send: use GIC interface number, not CPU index, when setting the target(s) for an IPI.
|
#
1.36 |
|
10-Sep-2018 |
jmcneill |
Update sc_mptargets atomically, as PEs will be started up in parallel w/o locking here
|
Revision tags: pgoyette-compat-0906 pgoyette-compat-0728
|
#
1.35 |
|
15-Jul-2018 |
jmcneill |
Support pic_set_affinity and pic_get_affinity
|
Revision tags: phil-wifi-base pgoyette-compat-0625 pgoyette-compat-0521 pgoyette-compat-0502
|
#
1.34 |
|
28-Apr-2018 |
jakllsch |
branches: 1.34.2; Cover all pic_maxsources lines for armgic_cpu_init_priorities() and armgic_cpu_update_priorities().
Previously only the first 32 lines were covered, which is significantly less than the 1000-some interrupt lines possible.
Only relevant to MULTIPROCESSOR configurations.
|
Revision tags: pgoyette-compat-0422 pgoyette-compat-0415 pgoyette-compat-0407
|
#
1.33 |
|
01-Apr-2018 |
ryo |
Add initial support for ARMv8 (AARCH64) (by nisimura@ and ryo@)
- sys/arch/evbarm64 is gone and integrated into sys/arch/evbarm. (by skrll@) - add support fdt. evbarm/conf/GENERIC64 fdt (bcm2837,sunxi,tegra) based generic 64bit kernel config. (by skrll@, jmcneill@)
|
Revision tags: pgoyette-compat-0330 pgoyette-compat-0322 pgoyette-compat-0315 pgoyette-compat-base
|
#
1.32 |
|
07-Feb-2018 |
jmcneill |
branches: 1.32.2; PR# port-evbarm/49468: Cortex GIC assertion triggered on Allwinner A80 SoC
The priority level is changed by writing to GICC_PMR with interrupts disabled. However, interrupts are enabled/disabled downstream of the GICC at the CPU. When raising priority level, there is a window between the time that interrupts are disabled and the GICC_PMR register is written. If an interrupt occurs at a previously allowed priority before GICC_PMR is changed, the CPU will receive the signal when interrupts are re-enabled. At this time, GICC_PMR is now the new priority level, so reads of GICC_IAR will report a spurious IRQ.
Move the "old_ipl != IPL_HIGH" test until after we have confirmed that there is at least one pending IRQ.
|
Revision tags: tls-maxphys-base-20171202 nick-nhusb-base-20170825 perseant-stdc-iso10646-base
|
#
1.31 |
|
14-Jul-2017 |
skrll |
KNF
|
#
1.30 |
|
29-Jun-2017 |
jmcneill |
ARM Trusted Firmware reserves SGIs 8-15 for secure use. Even without ATF, U-Boot on some platforms may use SGIs in this range for the PSCI implementation.
Change ARMGIC_IPI_BASE to 0 from (16 - NIPI) and add a compile-time assert to ensure that we don't end up with a conflict.
|
#
1.29 |
|
28-Jun-2017 |
skrll |
Revert the KERNHIST for now it causes problems
|
#
1.28 |
|
22-Jun-2017 |
skrll |
If we see GICC_IAR_IRQ_SSPURIOUS we should also stop looking for irqs
|
#
1.27 |
|
22-Jun-2017 |
skrll |
Wrap long line
|
#
1.26 |
|
22-Jun-2017 |
skrll |
Print the GICC_IIDR when AB_DEBUG
|
#
1.25 |
|
22-Jun-2017 |
skrll |
Add 'armgichist' KERNHIST for (future) debugging.
|
#
1.24 |
|
18-Jun-2017 |
jmcneill |
Don't assume that CPU index = GIC CPU interface number. We can determine the current CPU interface number by reading from the read-only GICD_ITARGETSR0 through GICD_ITARGETSR7 registers.
This gets interrupts working on Exynos 5422, where the boot processor has GIC CPU interface #4.
|
#
1.23 |
|
05-Jun-2017 |
skrll |
Clean out some #if 0'ed or //'ed code
|
#
1.22 |
|
04-Jun-2017 |
skrll |
Initialise all the SGI/PPI priorities for all CPUs to mask the interrupts
|
Revision tags: netbsd-8-base
|
#
1.21 |
|
30-May-2017 |
jmcneill |
branches: 1.21.2; Use an FDT-based ARM_INTR_IMPL for Tegra.
|
Revision tags: prg-localcount2-base3 prg-localcount2-base2 prg-localcount2-base1 prg-localcount2-base pgoyette-localcount-20170426 bouyer-socketcan-base1 jdolecek-ncq-base pgoyette-localcount-20170320 nick-nhusb-base-20170204 bouyer-socketcan-base pgoyette-localcount-20170107 nick-nhusb-base-20161204 pgoyette-localcount-20161104 nick-nhusb-base-20161004 localcount-20160914 pgoyette-localcount-20160806 pgoyette-localcount-20160726 pgoyette-localcount-base nick-nhusb-base-20160907 nick-nhusb-base-20160529 nick-nhusb-base-20160422 nick-nhusb-base-20160319 nick-nhusb-base-20151226 nick-nhusb-base-20150921
|
#
1.20 |
|
29-Jul-2015 |
matt |
Adjust some of IPLs of various IPIs.
|
Revision tags: nick-nhusb-base-20150606
|
#
1.19 |
|
15-Apr-2015 |
matt |
Add separate IPI routines for IPI_AST and IPI_KPREEMPT.
|
#
1.18 |
|
11-Apr-2015 |
matt |
Add a pic_cpus to the softc which specifies which cpus the pic can send IPIs to. For GIC, initialize pic_cpus to kcpuset_running since it can handle all the cpus.
|
#
1.17 |
|
09-Apr-2015 |
matt |
All SGIs are MPSAFE so establish them as such.
|
Revision tags: nick-nhusb-base-20150406
|
#
1.16 |
|
20-Mar-2015 |
skrll |
Trailing whitespace
|
#
1.15 |
|
12-Mar-2015 |
skrll |
G/C armgic_last_priority
|
#
1.14 |
|
03-Mar-2015 |
jmcneill |
in armgic_establish_irq, make sure to write the new value to GICD_ICFGRn when setting irq type (IST_LEVEL/IST_EDGE)
|
#
1.13 |
|
02-Mar-2015 |
jmcneill |
sc_gic_lines is the total number of valid lines but pic_sources[] is sparse; when initializing mpsafe targets make sure to go all the way to the end (sc_pic.pic_maxsources) instead
|
Revision tags: nick-nhusb-base
|
#
1.12 |
|
29-Oct-2014 |
skrll |
branches: 1.12.2; Only target boot cpu for SPIs atm. Fix a couple of bugs in the now disabled code.
|
#
1.11 |
|
29-Oct-2014 |
skrll |
Sprinkle #include "opt_multiprocessor.h"
|
Revision tags: netbsd-7-base tls-earlyentropy-base tls-maxphys-base
|
#
1.10 |
|
19-May-2014 |
rmind |
branches: 1.10.2; Implement MI IPI interface with cross-call support.
|
Revision tags: yamt-pagecache-base9 rmind-smpnet-nbase rmind-smpnet-base
|
#
1.9 |
|
27-Apr-2014 |
matt |
When dealing with the PMR register, only use non-secure priority values.
|
#
1.8 |
|
13-Apr-2014 |
matt |
Move aprint to print sooner.
|
Revision tags: riastradh-xf86-video-intel-2-7-1-pre-2-21-15
|
#
1.7 |
|
28-Mar-2014 |
matt |
branches: 1.7.2; Various MP changes.
|
Revision tags: riastradh-drm2-base3
|
#
1.6 |
|
04-Mar-2014 |
matt |
Don't byte swap the data, assume the bus_space will do it.
|
#
1.5 |
|
17-Dec-2013 |
joerg |
branches: 1.5.2; armgic_priority_to_ipl is only used in #if 0'd code, so apply that as well.
|
Revision tags: riastradh-drm2-base2 riastradh-drm2-base1 riastradh-drm2-base
|
#
1.4 |
|
20-Jun-2013 |
matt |
branches: 1.4.2; Pass the offset from CBAR/PERIPHBASE in mpcore_attach_args. Modify the list of devices to include the offset(s) from PERIPHBASE.
|
Revision tags: agc-symver-base yamt-pagecache-base8 yamt-pagecache-base7 yamt-pagecache-base6
|
#
1.3 |
|
16-Sep-2012 |
rmind |
branches: 1.3.2; 1.3.4; Rename kcpuset_copybits() to kcpuset_export_u32() and thus be more specific about the interface.
|
#
1.2 |
|
14-Sep-2012 |
matt |
Verify the source isn't a dummy source.
|
#
1.1 |
|
01-Sep-2012 |
matt |
branches: 1.1.2; Add Cortex-A9 support including the ARM Generic Interrupt Controller and the A9 Global Timer / Watchdog.
|
#
1.47 |
|
28-Mar-2021 |
skrll |
Only target the boot cpu for real with SPI interrupts. I tried to do this back in 2014, but somehow I missed a spot.
This is a quick-and-dirty fix for the USB stack which expects transfer completions to be in-order. If interrupts happen across the CPUs then this isn't guaranteed (yet).
kern/55243 panic at usb_transfer_complete() on raspberry pi 4
|
Revision tags: thorpej-cfargs-base
|
#
1.46 |
|
23-Feb-2021 |
jmcneill |
If we are committing a deferred splhigh() to hardware, no need to continue.
|
#
1.45 |
|
21-Feb-2021 |
jmcneill |
Apply PMR optimizations from gicv3
|
#
1.44 |
|
09-Feb-2021 |
jakllsch |
Avoid an extra daif read when dispatching interrupts by using ENABLE_INTERRUPT() / DISABLE_INTERRUPT() instead of cpsie() / cpsid() macros.
|
Revision tags: thorpej-futex-base
|
#
1.43 |
|
03-Dec-2020 |
skrll |
Provide and use a sev() macro for the sev instruction.
While here use the correct barrier to ensure completion of memory accesses before a couple of the sev() calls.
|
#
1.42 |
|
26-Sep-2020 |
skrll |
branches: 1.42.2; G/C arm/atomic.h
|
#
1.41 |
|
27-Jul-2020 |
jmcneill |
Remove CPU ID test in armgic_match. Perfectly normal to have GIC in non-Cortex cores.
|
#
1.40 |
|
12-Jul-2020 |
skrll |
Avoid undefined behaviour. Detected by KUBSAN.
|
Revision tags: bouyer-xenpvh-base2 phil-wifi-20200421 bouyer-xenpvh-base1
|
#
1.39 |
|
13-Apr-2020 |
jmcneill |
Fix "left shift of 255 by 24 places cannot be represented in type 'int'" warning from UBSan.
|
Revision tags: netbsd-9-1-RELEASE phil-wifi-20200411 bouyer-xenpvh-base is-mlppp-base phil-wifi-20200406 ad-namecache-base3 netbsd-9-0-RELEASE netbsd-9-0-RC2 ad-namecache-base2 ad-namecache-base1 ad-namecache-base netbsd-9-0-RC1 phil-wifi-20191119 netbsd-9-base phil-wifi-20190609 isaki-audio2-base pgoyette-compat-20190127 pgoyette-compat-20190118 pgoyette-compat-1226 pgoyette-compat-1126
|
#
1.38 |
|
16-Nov-2018 |
jmcneill |
branches: 1.38.10; Use intr_establish_xname
|
Revision tags: pgoyette-compat-1020 pgoyette-compat-0930
|
#
1.37 |
|
10-Sep-2018 |
jmcneill |
armgic_ipi_send: use GIC interface number, not CPU index, when setting the target(s) for an IPI.
|
#
1.36 |
|
10-Sep-2018 |
jmcneill |
Update sc_mptargets atomically, as PEs will be started up in parallel w/o locking here
|
Revision tags: pgoyette-compat-0906 pgoyette-compat-0728
|
#
1.35 |
|
15-Jul-2018 |
jmcneill |
Support pic_set_affinity and pic_get_affinity
|
Revision tags: phil-wifi-base pgoyette-compat-0625 pgoyette-compat-0521 pgoyette-compat-0502
|
#
1.34 |
|
28-Apr-2018 |
jakllsch |
branches: 1.34.2; Cover all pic_maxsources lines for armgic_cpu_init_priorities() and armgic_cpu_update_priorities().
Previously only the first 32 lines were covered, which is significantly less than the 1000-some interrupt lines possible.
Only relevant to MULTIPROCESSOR configurations.
|
Revision tags: pgoyette-compat-0422 pgoyette-compat-0415 pgoyette-compat-0407
|
#
1.33 |
|
01-Apr-2018 |
ryo |
Add initial support for ARMv8 (AARCH64) (by nisimura@ and ryo@)
- sys/arch/evbarm64 is gone and integrated into sys/arch/evbarm. (by skrll@) - add support fdt. evbarm/conf/GENERIC64 fdt (bcm2837,sunxi,tegra) based generic 64bit kernel config. (by skrll@, jmcneill@)
|
Revision tags: pgoyette-compat-0330 pgoyette-compat-0322 pgoyette-compat-0315 pgoyette-compat-base
|
#
1.32 |
|
07-Feb-2018 |
jmcneill |
branches: 1.32.2; PR# port-evbarm/49468: Cortex GIC assertion triggered on Allwinner A80 SoC
The priority level is changed by writing to GICC_PMR with interrupts disabled. However, interrupts are enabled/disabled downstream of the GICC at the CPU. When raising priority level, there is a window between the time that interrupts are disabled and the GICC_PMR register is written. If an interrupt occurs at a previously allowed priority before GICC_PMR is changed, the CPU will receive the signal when interrupts are re-enabled. At this time, GICC_PMR is now the new priority level, so reads of GICC_IAR will report a spurious IRQ.
Move the "old_ipl != IPL_HIGH" test until after we have confirmed that there is at least one pending IRQ.
|
Revision tags: tls-maxphys-base-20171202 nick-nhusb-base-20170825 perseant-stdc-iso10646-base
|
#
1.31 |
|
14-Jul-2017 |
skrll |
KNF
|
#
1.30 |
|
29-Jun-2017 |
jmcneill |
ARM Trusted Firmware reserves SGIs 8-15 for secure use. Even without ATF, U-Boot on some platforms may use SGIs in this range for the PSCI implementation.
Change ARMGIC_IPI_BASE to 0 from (16 - NIPI) and add a compile-time assert to ensure that we don't end up with a conflict.
|
#
1.29 |
|
28-Jun-2017 |
skrll |
Revert the KERNHIST for now it causes problems
|
#
1.28 |
|
22-Jun-2017 |
skrll |
If we see GICC_IAR_IRQ_SSPURIOUS we should also stop looking for irqs
|
#
1.27 |
|
22-Jun-2017 |
skrll |
Wrap long line
|
#
1.26 |
|
22-Jun-2017 |
skrll |
Print the GICC_IIDR when AB_DEBUG
|
#
1.25 |
|
22-Jun-2017 |
skrll |
Add 'armgichist' KERNHIST for (future) debugging.
|
#
1.24 |
|
18-Jun-2017 |
jmcneill |
Don't assume that CPU index = GIC CPU interface number. We can determine the current CPU interface number by reading from the read-only GICD_ITARGETSR0 through GICD_ITARGETSR7 registers.
This gets interrupts working on Exynos 5422, where the boot processor has GIC CPU interface #4.
|
#
1.23 |
|
05-Jun-2017 |
skrll |
Clean out some #if 0'ed or //'ed code
|
#
1.22 |
|
04-Jun-2017 |
skrll |
Initialise all the SGI/PPI priorities for all CPUs to mask the interrupts
|
Revision tags: netbsd-8-base
|
#
1.21 |
|
30-May-2017 |
jmcneill |
branches: 1.21.2; Use an FDT-based ARM_INTR_IMPL for Tegra.
|
Revision tags: prg-localcount2-base3 prg-localcount2-base2 prg-localcount2-base1 prg-localcount2-base pgoyette-localcount-20170426 bouyer-socketcan-base1 jdolecek-ncq-base pgoyette-localcount-20170320 nick-nhusb-base-20170204 bouyer-socketcan-base pgoyette-localcount-20170107 nick-nhusb-base-20161204 pgoyette-localcount-20161104 nick-nhusb-base-20161004 localcount-20160914 pgoyette-localcount-20160806 pgoyette-localcount-20160726 pgoyette-localcount-base nick-nhusb-base-20160907 nick-nhusb-base-20160529 nick-nhusb-base-20160422 nick-nhusb-base-20160319 nick-nhusb-base-20151226 nick-nhusb-base-20150921
|
#
1.20 |
|
29-Jul-2015 |
matt |
Adjust some of IPLs of various IPIs.
|
Revision tags: nick-nhusb-base-20150606
|
#
1.19 |
|
15-Apr-2015 |
matt |
Add separate IPI routines for IPI_AST and IPI_KPREEMPT.
|
#
1.18 |
|
11-Apr-2015 |
matt |
Add a pic_cpus to the softc which specifies which cpus the pic can send IPIs to. For GIC, initialize pic_cpus to kcpuset_running since it can handle all the cpus.
|
#
1.17 |
|
09-Apr-2015 |
matt |
All SGIs are MPSAFE so establish them as such.
|
Revision tags: nick-nhusb-base-20150406
|
#
1.16 |
|
20-Mar-2015 |
skrll |
Trailing whitespace
|
#
1.15 |
|
12-Mar-2015 |
skrll |
G/C armgic_last_priority
|
#
1.14 |
|
03-Mar-2015 |
jmcneill |
in armgic_establish_irq, make sure to write the new value to GICD_ICFGRn when setting irq type (IST_LEVEL/IST_EDGE)
|
#
1.13 |
|
02-Mar-2015 |
jmcneill |
sc_gic_lines is the total number of valid lines but pic_sources[] is sparse; when initializing mpsafe targets make sure to go all the way to the end (sc_pic.pic_maxsources) instead
|
Revision tags: nick-nhusb-base
|
#
1.12 |
|
29-Oct-2014 |
skrll |
branches: 1.12.2; Only target boot cpu for SPIs atm. Fix a couple of bugs in the now disabled code.
|
#
1.11 |
|
29-Oct-2014 |
skrll |
Sprinkle #include "opt_multiprocessor.h"
|
Revision tags: netbsd-7-base tls-earlyentropy-base tls-maxphys-base
|
#
1.10 |
|
19-May-2014 |
rmind |
branches: 1.10.2; Implement MI IPI interface with cross-call support.
|
Revision tags: yamt-pagecache-base9 rmind-smpnet-nbase rmind-smpnet-base
|
#
1.9 |
|
27-Apr-2014 |
matt |
When dealing with the PMR register, only use non-secure priority values.
|
#
1.8 |
|
13-Apr-2014 |
matt |
Move aprint to print sooner.
|
Revision tags: riastradh-xf86-video-intel-2-7-1-pre-2-21-15
|
#
1.7 |
|
28-Mar-2014 |
matt |
branches: 1.7.2; Various MP changes.
|
Revision tags: riastradh-drm2-base3
|
#
1.6 |
|
04-Mar-2014 |
matt |
Don't byte swap the data, assume the bus_space will do it.
|
#
1.5 |
|
17-Dec-2013 |
joerg |
branches: 1.5.2; armgic_priority_to_ipl is only used in #if 0'd code, so apply that as well.
|
Revision tags: riastradh-drm2-base2 riastradh-drm2-base1 riastradh-drm2-base
|
#
1.4 |
|
20-Jun-2013 |
matt |
branches: 1.4.2; Pass the offset from CBAR/PERIPHBASE in mpcore_attach_args. Modify the list of devices to include the offset(s) from PERIPHBASE.
|
Revision tags: agc-symver-base yamt-pagecache-base8 yamt-pagecache-base7 yamt-pagecache-base6
|
#
1.3 |
|
16-Sep-2012 |
rmind |
branches: 1.3.2; 1.3.4; Rename kcpuset_copybits() to kcpuset_export_u32() and thus be more specific about the interface.
|
#
1.2 |
|
14-Sep-2012 |
matt |
Verify the source isn't a dummy source.
|
#
1.1 |
|
01-Sep-2012 |
matt |
branches: 1.1.2; Add Cortex-A9 support including the ARM Generic Interrupt Controller and the A9 Global Timer / Watchdog.
|
#
1.46 |
|
23-Feb-2021 |
jmcneill |
If we are committing a deferred splhigh() to hardware, no need to continue.
|
#
1.45 |
|
21-Feb-2021 |
jmcneill |
Apply PMR optimizations from gicv3
|
#
1.44 |
|
09-Feb-2021 |
jakllsch |
Avoid an extra daif read when dispatching interrupts by using ENABLE_INTERRUPT() / DISABLE_INTERRUPT() instead of cpsie() / cpsid() macros.
|
Revision tags: thorpej-futex-base
|
#
1.43 |
|
03-Dec-2020 |
skrll |
Provide and use a sev() macro for the sev instruction.
While here use the correct barrier to ensure completion of memory accesses before a couple of the sev() calls.
|
#
1.42 |
|
26-Sep-2020 |
skrll |
branches: 1.42.2; G/C arm/atomic.h
|
#
1.41 |
|
27-Jul-2020 |
jmcneill |
Remove CPU ID test in armgic_match. Perfectly normal to have GIC in non-Cortex cores.
|
#
1.40 |
|
12-Jul-2020 |
skrll |
Avoid undefined behaviour. Detected by KUBSAN.
|
Revision tags: bouyer-xenpvh-base2 phil-wifi-20200421 bouyer-xenpvh-base1
|
#
1.39 |
|
13-Apr-2020 |
jmcneill |
Fix "left shift of 255 by 24 places cannot be represented in type 'int'" warning from UBSan.
|
Revision tags: netbsd-9-1-RELEASE phil-wifi-20200411 bouyer-xenpvh-base is-mlppp-base phil-wifi-20200406 ad-namecache-base3 netbsd-9-0-RELEASE netbsd-9-0-RC2 ad-namecache-base2 ad-namecache-base1 ad-namecache-base netbsd-9-0-RC1 phil-wifi-20191119 netbsd-9-base phil-wifi-20190609 isaki-audio2-base pgoyette-compat-20190127 pgoyette-compat-20190118 pgoyette-compat-1226 pgoyette-compat-1126
|
#
1.38 |
|
16-Nov-2018 |
jmcneill |
branches: 1.38.10; Use intr_establish_xname
|
Revision tags: pgoyette-compat-1020 pgoyette-compat-0930
|
#
1.37 |
|
10-Sep-2018 |
jmcneill |
armgic_ipi_send: use GIC interface number, not CPU index, when setting the target(s) for an IPI.
|
#
1.36 |
|
10-Sep-2018 |
jmcneill |
Update sc_mptargets atomically, as PEs will be started up in parallel w/o locking here
|
Revision tags: pgoyette-compat-0906 pgoyette-compat-0728
|
#
1.35 |
|
15-Jul-2018 |
jmcneill |
Support pic_set_affinity and pic_get_affinity
|
Revision tags: phil-wifi-base pgoyette-compat-0625 pgoyette-compat-0521 pgoyette-compat-0502
|
#
1.34 |
|
28-Apr-2018 |
jakllsch |
branches: 1.34.2; Cover all pic_maxsources lines for armgic_cpu_init_priorities() and armgic_cpu_update_priorities().
Previously only the first 32 lines were covered, which is significantly less than the 1000-some interrupt lines possible.
Only relevant to MULTIPROCESSOR configurations.
|
Revision tags: pgoyette-compat-0422 pgoyette-compat-0415 pgoyette-compat-0407
|
#
1.33 |
|
01-Apr-2018 |
ryo |
Add initial support for ARMv8 (AARCH64) (by nisimura@ and ryo@)
- sys/arch/evbarm64 is gone and integrated into sys/arch/evbarm. (by skrll@) - add support fdt. evbarm/conf/GENERIC64 fdt (bcm2837,sunxi,tegra) based generic 64bit kernel config. (by skrll@, jmcneill@)
|
Revision tags: pgoyette-compat-0330 pgoyette-compat-0322 pgoyette-compat-0315 pgoyette-compat-base
|
#
1.32 |
|
07-Feb-2018 |
jmcneill |
branches: 1.32.2; PR# port-evbarm/49468: Cortex GIC assertion triggered on Allwinner A80 SoC
The priority level is changed by writing to GICC_PMR with interrupts disabled. However, interrupts are enabled/disabled downstream of the GICC at the CPU. When raising priority level, there is a window between the time that interrupts are disabled and the GICC_PMR register is written. If an interrupt occurs at a previously allowed priority before GICC_PMR is changed, the CPU will receive the signal when interrupts are re-enabled. At this time, GICC_PMR is now the new priority level, so reads of GICC_IAR will report a spurious IRQ.
Move the "old_ipl != IPL_HIGH" test until after we have confirmed that there is at least one pending IRQ.
|
Revision tags: tls-maxphys-base-20171202 nick-nhusb-base-20170825 perseant-stdc-iso10646-base
|
#
1.31 |
|
14-Jul-2017 |
skrll |
KNF
|
#
1.30 |
|
29-Jun-2017 |
jmcneill |
ARM Trusted Firmware reserves SGIs 8-15 for secure use. Even without ATF, U-Boot on some platforms may use SGIs in this range for the PSCI implementation.
Change ARMGIC_IPI_BASE to 0 from (16 - NIPI) and add a compile-time assert to ensure that we don't end up with a conflict.
|
#
1.29 |
|
28-Jun-2017 |
skrll |
Revert the KERNHIST for now it causes problems
|
#
1.28 |
|
22-Jun-2017 |
skrll |
If we see GICC_IAR_IRQ_SSPURIOUS we should also stop looking for irqs
|
#
1.27 |
|
22-Jun-2017 |
skrll |
Wrap long line
|
#
1.26 |
|
22-Jun-2017 |
skrll |
Print the GICC_IIDR when AB_DEBUG
|
#
1.25 |
|
22-Jun-2017 |
skrll |
Add 'armgichist' KERNHIST for (future) debugging.
|
#
1.24 |
|
18-Jun-2017 |
jmcneill |
Don't assume that CPU index = GIC CPU interface number. We can determine the current CPU interface number by reading from the read-only GICD_ITARGETSR0 through GICD_ITARGETSR7 registers.
This gets interrupts working on Exynos 5422, where the boot processor has GIC CPU interface #4.
|
#
1.23 |
|
05-Jun-2017 |
skrll |
Clean out some #if 0'ed or //'ed code
|
#
1.22 |
|
04-Jun-2017 |
skrll |
Initialise all the SGI/PPI priorities for all CPUs to mask the interrupts
|
Revision tags: netbsd-8-base
|
#
1.21 |
|
30-May-2017 |
jmcneill |
branches: 1.21.2; Use an FDT-based ARM_INTR_IMPL for Tegra.
|
Revision tags: prg-localcount2-base3 prg-localcount2-base2 prg-localcount2-base1 prg-localcount2-base pgoyette-localcount-20170426 bouyer-socketcan-base1 jdolecek-ncq-base pgoyette-localcount-20170320 nick-nhusb-base-20170204 bouyer-socketcan-base pgoyette-localcount-20170107 nick-nhusb-base-20161204 pgoyette-localcount-20161104 nick-nhusb-base-20161004 localcount-20160914 pgoyette-localcount-20160806 pgoyette-localcount-20160726 pgoyette-localcount-base nick-nhusb-base-20160907 nick-nhusb-base-20160529 nick-nhusb-base-20160422 nick-nhusb-base-20160319 nick-nhusb-base-20151226 nick-nhusb-base-20150921
|
#
1.20 |
|
29-Jul-2015 |
matt |
Adjust some of IPLs of various IPIs.
|
Revision tags: nick-nhusb-base-20150606
|
#
1.19 |
|
15-Apr-2015 |
matt |
Add separate IPI routines for IPI_AST and IPI_KPREEMPT.
|
#
1.18 |
|
11-Apr-2015 |
matt |
Add a pic_cpus to the softc which specifies which cpus the pic can send IPIs to. For GIC, initialize pic_cpus to kcpuset_running since it can handle all the cpus.
|
#
1.17 |
|
09-Apr-2015 |
matt |
All SGIs are MPSAFE so establish them as such.
|
Revision tags: nick-nhusb-base-20150406
|
#
1.16 |
|
20-Mar-2015 |
skrll |
Trailing whitespace
|
#
1.15 |
|
12-Mar-2015 |
skrll |
G/C armgic_last_priority
|
#
1.14 |
|
03-Mar-2015 |
jmcneill |
in armgic_establish_irq, make sure to write the new value to GICD_ICFGRn when setting irq type (IST_LEVEL/IST_EDGE)
|
#
1.13 |
|
02-Mar-2015 |
jmcneill |
sc_gic_lines is the total number of valid lines but pic_sources[] is sparse; when initializing mpsafe targets make sure to go all the way to the end (sc_pic.pic_maxsources) instead
|
Revision tags: nick-nhusb-base
|
#
1.12 |
|
29-Oct-2014 |
skrll |
branches: 1.12.2; Only target boot cpu for SPIs atm. Fix a couple of bugs in the now disabled code.
|
#
1.11 |
|
29-Oct-2014 |
skrll |
Sprinkle #include "opt_multiprocessor.h"
|
Revision tags: netbsd-7-base tls-earlyentropy-base tls-maxphys-base
|
#
1.10 |
|
19-May-2014 |
rmind |
branches: 1.10.2; Implement MI IPI interface with cross-call support.
|
Revision tags: yamt-pagecache-base9 rmind-smpnet-nbase rmind-smpnet-base
|
#
1.9 |
|
27-Apr-2014 |
matt |
When dealing with the PMR register, only use non-secure priority values.
|
#
1.8 |
|
13-Apr-2014 |
matt |
Move aprint to print sooner.
|
Revision tags: riastradh-xf86-video-intel-2-7-1-pre-2-21-15
|
#
1.7 |
|
28-Mar-2014 |
matt |
branches: 1.7.2; Various MP changes.
|
Revision tags: riastradh-drm2-base3
|
#
1.6 |
|
04-Mar-2014 |
matt |
Don't byte swap the data, assume the bus_space will do it.
|
#
1.5 |
|
17-Dec-2013 |
joerg |
branches: 1.5.2; armgic_priority_to_ipl is only used in #if 0'd code, so apply that as well.
|
Revision tags: riastradh-drm2-base2 riastradh-drm2-base1 riastradh-drm2-base
|
#
1.4 |
|
20-Jun-2013 |
matt |
branches: 1.4.2; Pass the offset from CBAR/PERIPHBASE in mpcore_attach_args. Modify the list of devices to include the offset(s) from PERIPHBASE.
|
Revision tags: agc-symver-base yamt-pagecache-base8 yamt-pagecache-base7 yamt-pagecache-base6
|
#
1.3 |
|
16-Sep-2012 |
rmind |
branches: 1.3.2; 1.3.4; Rename kcpuset_copybits() to kcpuset_export_u32() and thus be more specific about the interface.
|
#
1.2 |
|
14-Sep-2012 |
matt |
Verify the source isn't a dummy source.
|
#
1.1 |
|
01-Sep-2012 |
matt |
branches: 1.1.2; Add Cortex-A9 support including the ARM Generic Interrupt Controller and the A9 Global Timer / Watchdog.
|
#
1.45 |
|
21-Feb-2021 |
jmcneill |
Apply PMR optimizations from gicv3
|
#
1.44 |
|
09-Feb-2021 |
jakllsch |
Avoid an extra daif read when dispatching interrupts by using ENABLE_INTERRUPT() / DISABLE_INTERRUPT() instead of cpsie() / cpsid() macros.
|
Revision tags: thorpej-futex-base
|
#
1.43 |
|
03-Dec-2020 |
skrll |
Provide and use a sev() macro for the sev instruction.
While here use the correct barrier to ensure completion of memory accesses before a couple of the sev() calls.
|
#
1.42 |
|
26-Sep-2020 |
skrll |
branches: 1.42.2; G/C arm/atomic.h
|
#
1.41 |
|
27-Jul-2020 |
jmcneill |
Remove CPU ID test in armgic_match. Perfectly normal to have GIC in non-Cortex cores.
|
#
1.40 |
|
12-Jul-2020 |
skrll |
Avoid undefined behaviour. Detected by KUBSAN.
|
Revision tags: bouyer-xenpvh-base2 phil-wifi-20200421 bouyer-xenpvh-base1
|
#
1.39 |
|
13-Apr-2020 |
jmcneill |
Fix "left shift of 255 by 24 places cannot be represented in type 'int'" warning from UBSan.
|
Revision tags: netbsd-9-1-RELEASE phil-wifi-20200411 bouyer-xenpvh-base is-mlppp-base phil-wifi-20200406 ad-namecache-base3 netbsd-9-0-RELEASE netbsd-9-0-RC2 ad-namecache-base2 ad-namecache-base1 ad-namecache-base netbsd-9-0-RC1 phil-wifi-20191119 netbsd-9-base phil-wifi-20190609 isaki-audio2-base pgoyette-compat-20190127 pgoyette-compat-20190118 pgoyette-compat-1226 pgoyette-compat-1126
|
#
1.38 |
|
16-Nov-2018 |
jmcneill |
branches: 1.38.10; Use intr_establish_xname
|
Revision tags: pgoyette-compat-1020 pgoyette-compat-0930
|
#
1.37 |
|
10-Sep-2018 |
jmcneill |
armgic_ipi_send: use GIC interface number, not CPU index, when setting the target(s) for an IPI.
|
#
1.36 |
|
10-Sep-2018 |
jmcneill |
Update sc_mptargets atomically, as PEs will be started up in parallel w/o locking here
|
Revision tags: pgoyette-compat-0906 pgoyette-compat-0728
|
#
1.35 |
|
15-Jul-2018 |
jmcneill |
Support pic_set_affinity and pic_get_affinity
|
Revision tags: phil-wifi-base pgoyette-compat-0625 pgoyette-compat-0521 pgoyette-compat-0502
|
#
1.34 |
|
28-Apr-2018 |
jakllsch |
branches: 1.34.2; Cover all pic_maxsources lines for armgic_cpu_init_priorities() and armgic_cpu_update_priorities().
Previously only the first 32 lines were covered, which is significantly less than the 1000-some interrupt lines possible.
Only relevant to MULTIPROCESSOR configurations.
|
Revision tags: pgoyette-compat-0422 pgoyette-compat-0415 pgoyette-compat-0407
|
#
1.33 |
|
01-Apr-2018 |
ryo |
Add initial support for ARMv8 (AARCH64) (by nisimura@ and ryo@)
- sys/arch/evbarm64 is gone and integrated into sys/arch/evbarm. (by skrll@) - add support fdt. evbarm/conf/GENERIC64 fdt (bcm2837,sunxi,tegra) based generic 64bit kernel config. (by skrll@, jmcneill@)
|
Revision tags: pgoyette-compat-0330 pgoyette-compat-0322 pgoyette-compat-0315 pgoyette-compat-base
|
#
1.32 |
|
07-Feb-2018 |
jmcneill |
branches: 1.32.2; PR# port-evbarm/49468: Cortex GIC assertion triggered on Allwinner A80 SoC
The priority level is changed by writing to GICC_PMR with interrupts disabled. However, interrupts are enabled/disabled downstream of the GICC at the CPU. When raising priority level, there is a window between the time that interrupts are disabled and the GICC_PMR register is written. If an interrupt occurs at a previously allowed priority before GICC_PMR is changed, the CPU will receive the signal when interrupts are re-enabled. At this time, GICC_PMR is now the new priority level, so reads of GICC_IAR will report a spurious IRQ.
Move the "old_ipl != IPL_HIGH" test until after we have confirmed that there is at least one pending IRQ.
|
Revision tags: tls-maxphys-base-20171202 nick-nhusb-base-20170825 perseant-stdc-iso10646-base
|
#
1.31 |
|
14-Jul-2017 |
skrll |
KNF
|
#
1.30 |
|
29-Jun-2017 |
jmcneill |
ARM Trusted Firmware reserves SGIs 8-15 for secure use. Even without ATF, U-Boot on some platforms may use SGIs in this range for the PSCI implementation.
Change ARMGIC_IPI_BASE to 0 from (16 - NIPI) and add a compile-time assert to ensure that we don't end up with a conflict.
|
#
1.29 |
|
28-Jun-2017 |
skrll |
Revert the KERNHIST for now it causes problems
|
#
1.28 |
|
22-Jun-2017 |
skrll |
If we see GICC_IAR_IRQ_SSPURIOUS we should also stop looking for irqs
|
#
1.27 |
|
22-Jun-2017 |
skrll |
Wrap long line
|
#
1.26 |
|
22-Jun-2017 |
skrll |
Print the GICC_IIDR when AB_DEBUG
|
#
1.25 |
|
22-Jun-2017 |
skrll |
Add 'armgichist' KERNHIST for (future) debugging.
|
#
1.24 |
|
18-Jun-2017 |
jmcneill |
Don't assume that CPU index = GIC CPU interface number. We can determine the current CPU interface number by reading from the read-only GICD_ITARGETSR0 through GICD_ITARGETSR7 registers.
This gets interrupts working on Exynos 5422, where the boot processor has GIC CPU interface #4.
|
#
1.23 |
|
05-Jun-2017 |
skrll |
Clean out some #if 0'ed or //'ed code
|
#
1.22 |
|
04-Jun-2017 |
skrll |
Initialise all the SGI/PPI priorities for all CPUs to mask the interrupts
|
Revision tags: netbsd-8-base
|
#
1.21 |
|
30-May-2017 |
jmcneill |
branches: 1.21.2; Use an FDT-based ARM_INTR_IMPL for Tegra.
|
Revision tags: prg-localcount2-base3 prg-localcount2-base2 prg-localcount2-base1 prg-localcount2-base pgoyette-localcount-20170426 bouyer-socketcan-base1 jdolecek-ncq-base pgoyette-localcount-20170320 nick-nhusb-base-20170204 bouyer-socketcan-base pgoyette-localcount-20170107 nick-nhusb-base-20161204 pgoyette-localcount-20161104 nick-nhusb-base-20161004 localcount-20160914 pgoyette-localcount-20160806 pgoyette-localcount-20160726 pgoyette-localcount-base nick-nhusb-base-20160907 nick-nhusb-base-20160529 nick-nhusb-base-20160422 nick-nhusb-base-20160319 nick-nhusb-base-20151226 nick-nhusb-base-20150921
|
#
1.20 |
|
29-Jul-2015 |
matt |
Adjust some of IPLs of various IPIs.
|
Revision tags: nick-nhusb-base-20150606
|
#
1.19 |
|
15-Apr-2015 |
matt |
Add separate IPI routines for IPI_AST and IPI_KPREEMPT.
|
#
1.18 |
|
11-Apr-2015 |
matt |
Add a pic_cpus to the softc which specifies which cpus the pic can send IPIs to. For GIC, initialize pic_cpus to kcpuset_running since it can handle all the cpus.
|
#
1.17 |
|
09-Apr-2015 |
matt |
All SGIs are MPSAFE so establish them as such.
|
Revision tags: nick-nhusb-base-20150406
|
#
1.16 |
|
20-Mar-2015 |
skrll |
Trailing whitespace
|
#
1.15 |
|
12-Mar-2015 |
skrll |
G/C armgic_last_priority
|
#
1.14 |
|
03-Mar-2015 |
jmcneill |
in armgic_establish_irq, make sure to write the new value to GICD_ICFGRn when setting irq type (IST_LEVEL/IST_EDGE)
|
#
1.13 |
|
02-Mar-2015 |
jmcneill |
sc_gic_lines is the total number of valid lines but pic_sources[] is sparse; when initializing mpsafe targets make sure to go all the way to the end (sc_pic.pic_maxsources) instead
|
Revision tags: nick-nhusb-base
|
#
1.12 |
|
29-Oct-2014 |
skrll |
branches: 1.12.2; Only target boot cpu for SPIs atm. Fix a couple of bugs in the now disabled code.
|
#
1.11 |
|
29-Oct-2014 |
skrll |
Sprinkle #include "opt_multiprocessor.h"
|
Revision tags: netbsd-7-base tls-earlyentropy-base tls-maxphys-base
|
#
1.10 |
|
19-May-2014 |
rmind |
branches: 1.10.2; Implement MI IPI interface with cross-call support.
|
Revision tags: yamt-pagecache-base9 rmind-smpnet-nbase rmind-smpnet-base
|
#
1.9 |
|
27-Apr-2014 |
matt |
When dealing with the PMR register, only use non-secure priority values.
|
#
1.8 |
|
13-Apr-2014 |
matt |
Move aprint to print sooner.
|
Revision tags: riastradh-xf86-video-intel-2-7-1-pre-2-21-15
|
#
1.7 |
|
28-Mar-2014 |
matt |
branches: 1.7.2; Various MP changes.
|
Revision tags: riastradh-drm2-base3
|
#
1.6 |
|
04-Mar-2014 |
matt |
Don't byte swap the data, assume the bus_space will do it.
|
#
1.5 |
|
17-Dec-2013 |
joerg |
branches: 1.5.2; armgic_priority_to_ipl is only used in #if 0'd code, so apply that as well.
|
Revision tags: riastradh-drm2-base2 riastradh-drm2-base1 riastradh-drm2-base
|
#
1.4 |
|
20-Jun-2013 |
matt |
branches: 1.4.2; Pass the offset from CBAR/PERIPHBASE in mpcore_attach_args. Modify the list of devices to include the offset(s) from PERIPHBASE.
|
Revision tags: agc-symver-base yamt-pagecache-base8 yamt-pagecache-base7 yamt-pagecache-base6
|
#
1.3 |
|
16-Sep-2012 |
rmind |
branches: 1.3.2; 1.3.4; Rename kcpuset_copybits() to kcpuset_export_u32() and thus be more specific about the interface.
|
#
1.2 |
|
14-Sep-2012 |
matt |
Verify the source isn't a dummy source.
|
#
1.1 |
|
01-Sep-2012 |
matt |
branches: 1.1.2; Add Cortex-A9 support including the ARM Generic Interrupt Controller and the A9 Global Timer / Watchdog.
|
#
1.44 |
|
09-Feb-2021 |
jakllsch |
Avoid an extra daif read when dispatching interrupts by using ENABLE_INTERRUPT() / DISABLE_INTERRUPT() instead of cpsie() / cpsid() macros.
|
Revision tags: thorpej-futex-base
|
#
1.43 |
|
03-Dec-2020 |
skrll |
Provide and use a sev() macro for the sev instruction.
While here use the correct barrier to ensure completion of memory accesses before a couple of the sev() calls.
|
#
1.42 |
|
26-Sep-2020 |
skrll |
branches: 1.42.2; G/C arm/atomic.h
|
#
1.41 |
|
27-Jul-2020 |
jmcneill |
Remove CPU ID test in armgic_match. Perfectly normal to have GIC in non-Cortex cores.
|
#
1.40 |
|
12-Jul-2020 |
skrll |
Avoid undefined behaviour. Detected by KUBSAN.
|
Revision tags: bouyer-xenpvh-base2 phil-wifi-20200421 bouyer-xenpvh-base1
|
#
1.39 |
|
13-Apr-2020 |
jmcneill |
Fix "left shift of 255 by 24 places cannot be represented in type 'int'" warning from UBSan.
|
Revision tags: netbsd-9-1-RELEASE phil-wifi-20200411 bouyer-xenpvh-base is-mlppp-base phil-wifi-20200406 ad-namecache-base3 netbsd-9-0-RELEASE netbsd-9-0-RC2 ad-namecache-base2 ad-namecache-base1 ad-namecache-base netbsd-9-0-RC1 phil-wifi-20191119 netbsd-9-base phil-wifi-20190609 isaki-audio2-base pgoyette-compat-20190127 pgoyette-compat-20190118 pgoyette-compat-1226 pgoyette-compat-1126
|
#
1.38 |
|
16-Nov-2018 |
jmcneill |
branches: 1.38.10; Use intr_establish_xname
|
Revision tags: pgoyette-compat-1020 pgoyette-compat-0930
|
#
1.37 |
|
10-Sep-2018 |
jmcneill |
armgic_ipi_send: use GIC interface number, not CPU index, when setting the target(s) for an IPI.
|
#
1.36 |
|
10-Sep-2018 |
jmcneill |
Update sc_mptargets atomically, as PEs will be started up in parallel w/o locking here
|
Revision tags: pgoyette-compat-0906 pgoyette-compat-0728
|
#
1.35 |
|
15-Jul-2018 |
jmcneill |
Support pic_set_affinity and pic_get_affinity
|
Revision tags: phil-wifi-base pgoyette-compat-0625 pgoyette-compat-0521 pgoyette-compat-0502
|
#
1.34 |
|
28-Apr-2018 |
jakllsch |
branches: 1.34.2; Cover all pic_maxsources lines for armgic_cpu_init_priorities() and armgic_cpu_update_priorities().
Previously only the first 32 lines were covered, which is significantly less than the 1000-some interrupt lines possible.
Only relevant to MULTIPROCESSOR configurations.
|
Revision tags: pgoyette-compat-0422 pgoyette-compat-0415 pgoyette-compat-0407
|
#
1.33 |
|
01-Apr-2018 |
ryo |
Add initial support for ARMv8 (AARCH64) (by nisimura@ and ryo@)
- sys/arch/evbarm64 is gone and integrated into sys/arch/evbarm. (by skrll@) - add support fdt. evbarm/conf/GENERIC64 fdt (bcm2837,sunxi,tegra) based generic 64bit kernel config. (by skrll@, jmcneill@)
|
Revision tags: pgoyette-compat-0330 pgoyette-compat-0322 pgoyette-compat-0315 pgoyette-compat-base
|
#
1.32 |
|
07-Feb-2018 |
jmcneill |
branches: 1.32.2; PR# port-evbarm/49468: Cortex GIC assertion triggered on Allwinner A80 SoC
The priority level is changed by writing to GICC_PMR with interrupts disabled. However, interrupts are enabled/disabled downstream of the GICC at the CPU. When raising priority level, there is a window between the time that interrupts are disabled and the GICC_PMR register is written. If an interrupt occurs at a previously allowed priority before GICC_PMR is changed, the CPU will receive the signal when interrupts are re-enabled. At this time, GICC_PMR is now the new priority level, so reads of GICC_IAR will report a spurious IRQ.
Move the "old_ipl != IPL_HIGH" test until after we have confirmed that there is at least one pending IRQ.
|
Revision tags: tls-maxphys-base-20171202 nick-nhusb-base-20170825 perseant-stdc-iso10646-base
|
#
1.31 |
|
14-Jul-2017 |
skrll |
KNF
|
#
1.30 |
|
29-Jun-2017 |
jmcneill |
ARM Trusted Firmware reserves SGIs 8-15 for secure use. Even without ATF, U-Boot on some platforms may use SGIs in this range for the PSCI implementation.
Change ARMGIC_IPI_BASE to 0 from (16 - NIPI) and add a compile-time assert to ensure that we don't end up with a conflict.
|
#
1.29 |
|
28-Jun-2017 |
skrll |
Revert the KERNHIST for now it causes problems
|
#
1.28 |
|
22-Jun-2017 |
skrll |
If we see GICC_IAR_IRQ_SSPURIOUS we should also stop looking for irqs
|
#
1.27 |
|
22-Jun-2017 |
skrll |
Wrap long line
|
#
1.26 |
|
22-Jun-2017 |
skrll |
Print the GICC_IIDR when AB_DEBUG
|
#
1.25 |
|
22-Jun-2017 |
skrll |
Add 'armgichist' KERNHIST for (future) debugging.
|
#
1.24 |
|
18-Jun-2017 |
jmcneill |
Don't assume that CPU index = GIC CPU interface number. We can determine the current CPU interface number by reading from the read-only GICD_ITARGETSR0 through GICD_ITARGETSR7 registers.
This gets interrupts working on Exynos 5422, where the boot processor has GIC CPU interface #4.
|
#
1.23 |
|
05-Jun-2017 |
skrll |
Clean out some #if 0'ed or //'ed code
|
#
1.22 |
|
04-Jun-2017 |
skrll |
Initialise all the SGI/PPI priorities for all CPUs to mask the interrupts
|
Revision tags: netbsd-8-base
|
#
1.21 |
|
30-May-2017 |
jmcneill |
branches: 1.21.2; Use an FDT-based ARM_INTR_IMPL for Tegra.
|
Revision tags: prg-localcount2-base3 prg-localcount2-base2 prg-localcount2-base1 prg-localcount2-base pgoyette-localcount-20170426 bouyer-socketcan-base1 jdolecek-ncq-base pgoyette-localcount-20170320 nick-nhusb-base-20170204 bouyer-socketcan-base pgoyette-localcount-20170107 nick-nhusb-base-20161204 pgoyette-localcount-20161104 nick-nhusb-base-20161004 localcount-20160914 pgoyette-localcount-20160806 pgoyette-localcount-20160726 pgoyette-localcount-base nick-nhusb-base-20160907 nick-nhusb-base-20160529 nick-nhusb-base-20160422 nick-nhusb-base-20160319 nick-nhusb-base-20151226 nick-nhusb-base-20150921
|
#
1.20 |
|
29-Jul-2015 |
matt |
Adjust some of IPLs of various IPIs.
|
Revision tags: nick-nhusb-base-20150606
|
#
1.19 |
|
15-Apr-2015 |
matt |
Add separate IPI routines for IPI_AST and IPI_KPREEMPT.
|
#
1.18 |
|
11-Apr-2015 |
matt |
Add a pic_cpus to the softc which specifies which cpus the pic can send IPIs to. For GIC, initialize pic_cpus to kcpuset_running since it can handle all the cpus.
|
#
1.17 |
|
09-Apr-2015 |
matt |
All SGIs are MPSAFE so establish them as such.
|
Revision tags: nick-nhusb-base-20150406
|
#
1.16 |
|
20-Mar-2015 |
skrll |
Trailing whitespace
|
#
1.15 |
|
12-Mar-2015 |
skrll |
G/C armgic_last_priority
|
#
1.14 |
|
03-Mar-2015 |
jmcneill |
in armgic_establish_irq, make sure to write the new value to GICD_ICFGRn when setting irq type (IST_LEVEL/IST_EDGE)
|
#
1.13 |
|
02-Mar-2015 |
jmcneill |
sc_gic_lines is the total number of valid lines but pic_sources[] is sparse; when initializing mpsafe targets make sure to go all the way to the end (sc_pic.pic_maxsources) instead
|
Revision tags: nick-nhusb-base
|
#
1.12 |
|
29-Oct-2014 |
skrll |
branches: 1.12.2; Only target boot cpu for SPIs atm. Fix a couple of bugs in the now disabled code.
|
#
1.11 |
|
29-Oct-2014 |
skrll |
Sprinkle #include "opt_multiprocessor.h"
|
Revision tags: netbsd-7-base tls-earlyentropy-base tls-maxphys-base
|
#
1.10 |
|
19-May-2014 |
rmind |
branches: 1.10.2; Implement MI IPI interface with cross-call support.
|
Revision tags: yamt-pagecache-base9 rmind-smpnet-nbase rmind-smpnet-base
|
#
1.9 |
|
27-Apr-2014 |
matt |
When dealing with the PMR register, only use non-secure priority values.
|
#
1.8 |
|
13-Apr-2014 |
matt |
Move aprint to print sooner.
|
Revision tags: riastradh-xf86-video-intel-2-7-1-pre-2-21-15
|
#
1.7 |
|
28-Mar-2014 |
matt |
branches: 1.7.2; Various MP changes.
|
Revision tags: riastradh-drm2-base3
|
#
1.6 |
|
04-Mar-2014 |
matt |
Don't byte swap the data, assume the bus_space will do it.
|
#
1.5 |
|
17-Dec-2013 |
joerg |
branches: 1.5.2; armgic_priority_to_ipl is only used in #if 0'd code, so apply that as well.
|
Revision tags: riastradh-drm2-base2 riastradh-drm2-base1 riastradh-drm2-base
|
#
1.4 |
|
20-Jun-2013 |
matt |
branches: 1.4.2; Pass the offset from CBAR/PERIPHBASE in mpcore_attach_args. Modify the list of devices to include the offset(s) from PERIPHBASE.
|
Revision tags: agc-symver-base yamt-pagecache-base8 yamt-pagecache-base7 yamt-pagecache-base6
|
#
1.3 |
|
16-Sep-2012 |
rmind |
branches: 1.3.2; 1.3.4; Rename kcpuset_copybits() to kcpuset_export_u32() and thus be more specific about the interface.
|
#
1.2 |
|
14-Sep-2012 |
matt |
Verify the source isn't a dummy source.
|
#
1.1 |
|
01-Sep-2012 |
matt |
branches: 1.1.2; Add Cortex-A9 support including the ARM Generic Interrupt Controller and the A9 Global Timer / Watchdog.
|
#
1.43 |
|
03-Dec-2020 |
skrll |
Provide and use a sev() macro for the sev instruction.
While here use the correct barrier to ensure completion of memory accesses before a couple of the sev() calls.
|
Revision tags: thorpej-futex-base
|
#
1.42 |
|
26-Sep-2020 |
skrll |
G/C arm/atomic.h
|
#
1.41 |
|
27-Jul-2020 |
jmcneill |
Remove CPU ID test in armgic_match. Perfectly normal to have GIC in non-Cortex cores.
|
#
1.40 |
|
12-Jul-2020 |
skrll |
Avoid undefined behaviour. Detected by KUBSAN.
|
Revision tags: bouyer-xenpvh-base2 phil-wifi-20200421 bouyer-xenpvh-base1
|
#
1.39 |
|
13-Apr-2020 |
jmcneill |
Fix "left shift of 255 by 24 places cannot be represented in type 'int'" warning from UBSan.
|
Revision tags: netbsd-9-1-RELEASE phil-wifi-20200411 bouyer-xenpvh-base is-mlppp-base phil-wifi-20200406 ad-namecache-base3 netbsd-9-0-RELEASE netbsd-9-0-RC2 ad-namecache-base2 ad-namecache-base1 ad-namecache-base netbsd-9-0-RC1 phil-wifi-20191119 netbsd-9-base phil-wifi-20190609 isaki-audio2-base pgoyette-compat-20190127 pgoyette-compat-20190118 pgoyette-compat-1226 pgoyette-compat-1126
|
#
1.38 |
|
16-Nov-2018 |
jmcneill |
branches: 1.38.10; Use intr_establish_xname
|
Revision tags: pgoyette-compat-1020 pgoyette-compat-0930
|
#
1.37 |
|
10-Sep-2018 |
jmcneill |
armgic_ipi_send: use GIC interface number, not CPU index, when setting the target(s) for an IPI.
|
#
1.36 |
|
10-Sep-2018 |
jmcneill |
Update sc_mptargets atomically, as PEs will be started up in parallel w/o locking here
|
Revision tags: pgoyette-compat-0906 pgoyette-compat-0728
|
#
1.35 |
|
15-Jul-2018 |
jmcneill |
Support pic_set_affinity and pic_get_affinity
|
Revision tags: phil-wifi-base pgoyette-compat-0625 pgoyette-compat-0521 pgoyette-compat-0502
|
#
1.34 |
|
28-Apr-2018 |
jakllsch |
branches: 1.34.2; Cover all pic_maxsources lines for armgic_cpu_init_priorities() and armgic_cpu_update_priorities().
Previously only the first 32 lines were covered, which is significantly less than the 1000-some interrupt lines possible.
Only relevant to MULTIPROCESSOR configurations.
|
Revision tags: pgoyette-compat-0422 pgoyette-compat-0415 pgoyette-compat-0407
|
#
1.33 |
|
01-Apr-2018 |
ryo |
Add initial support for ARMv8 (AARCH64) (by nisimura@ and ryo@)
- sys/arch/evbarm64 is gone and integrated into sys/arch/evbarm. (by skrll@) - add support fdt. evbarm/conf/GENERIC64 fdt (bcm2837,sunxi,tegra) based generic 64bit kernel config. (by skrll@, jmcneill@)
|
Revision tags: pgoyette-compat-0330 pgoyette-compat-0322 pgoyette-compat-0315 pgoyette-compat-base
|
#
1.32 |
|
07-Feb-2018 |
jmcneill |
branches: 1.32.2; PR# port-evbarm/49468: Cortex GIC assertion triggered on Allwinner A80 SoC
The priority level is changed by writing to GICC_PMR with interrupts disabled. However, interrupts are enabled/disabled downstream of the GICC at the CPU. When raising priority level, there is a window between the time that interrupts are disabled and the GICC_PMR register is written. If an interrupt occurs at a previously allowed priority before GICC_PMR is changed, the CPU will receive the signal when interrupts are re-enabled. At this time, GICC_PMR is now the new priority level, so reads of GICC_IAR will report a spurious IRQ.
Move the "old_ipl != IPL_HIGH" test until after we have confirmed that there is at least one pending IRQ.
|
Revision tags: tls-maxphys-base-20171202 nick-nhusb-base-20170825 perseant-stdc-iso10646-base
|
#
1.31 |
|
14-Jul-2017 |
skrll |
KNF
|
#
1.30 |
|
29-Jun-2017 |
jmcneill |
ARM Trusted Firmware reserves SGIs 8-15 for secure use. Even without ATF, U-Boot on some platforms may use SGIs in this range for the PSCI implementation.
Change ARMGIC_IPI_BASE to 0 from (16 - NIPI) and add a compile-time assert to ensure that we don't end up with a conflict.
|
#
1.29 |
|
28-Jun-2017 |
skrll |
Revert the KERNHIST for now it causes problems
|
#
1.28 |
|
22-Jun-2017 |
skrll |
If we see GICC_IAR_IRQ_SSPURIOUS we should also stop looking for irqs
|
#
1.27 |
|
22-Jun-2017 |
skrll |
Wrap long line
|
#
1.26 |
|
22-Jun-2017 |
skrll |
Print the GICC_IIDR when AB_DEBUG
|
#
1.25 |
|
22-Jun-2017 |
skrll |
Add 'armgichist' KERNHIST for (future) debugging.
|
#
1.24 |
|
18-Jun-2017 |
jmcneill |
Don't assume that CPU index = GIC CPU interface number. We can determine the current CPU interface number by reading from the read-only GICD_ITARGETSR0 through GICD_ITARGETSR7 registers.
This gets interrupts working on Exynos 5422, where the boot processor has GIC CPU interface #4.
|
#
1.23 |
|
05-Jun-2017 |
skrll |
Clean out some #if 0'ed or //'ed code
|
#
1.22 |
|
04-Jun-2017 |
skrll |
Initialise all the SGI/PPI priorities for all CPUs to mask the interrupts
|
Revision tags: netbsd-8-base
|
#
1.21 |
|
30-May-2017 |
jmcneill |
branches: 1.21.2; Use an FDT-based ARM_INTR_IMPL for Tegra.
|
Revision tags: prg-localcount2-base3 prg-localcount2-base2 prg-localcount2-base1 prg-localcount2-base pgoyette-localcount-20170426 bouyer-socketcan-base1 jdolecek-ncq-base pgoyette-localcount-20170320 nick-nhusb-base-20170204 bouyer-socketcan-base pgoyette-localcount-20170107 nick-nhusb-base-20161204 pgoyette-localcount-20161104 nick-nhusb-base-20161004 localcount-20160914 pgoyette-localcount-20160806 pgoyette-localcount-20160726 pgoyette-localcount-base nick-nhusb-base-20160907 nick-nhusb-base-20160529 nick-nhusb-base-20160422 nick-nhusb-base-20160319 nick-nhusb-base-20151226 nick-nhusb-base-20150921
|
#
1.20 |
|
29-Jul-2015 |
matt |
Adjust some of IPLs of various IPIs.
|
Revision tags: nick-nhusb-base-20150606
|
#
1.19 |
|
15-Apr-2015 |
matt |
Add separate IPI routines for IPI_AST and IPI_KPREEMPT.
|
#
1.18 |
|
11-Apr-2015 |
matt |
Add a pic_cpus to the softc which specifies which cpus the pic can send IPIs to. For GIC, initialize pic_cpus to kcpuset_running since it can handle all the cpus.
|
#
1.17 |
|
09-Apr-2015 |
matt |
All SGIs are MPSAFE so establish them as such.
|
Revision tags: nick-nhusb-base-20150406
|
#
1.16 |
|
20-Mar-2015 |
skrll |
Trailing whitespace
|
#
1.15 |
|
12-Mar-2015 |
skrll |
G/C armgic_last_priority
|
#
1.14 |
|
03-Mar-2015 |
jmcneill |
in armgic_establish_irq, make sure to write the new value to GICD_ICFGRn when setting irq type (IST_LEVEL/IST_EDGE)
|
#
1.13 |
|
02-Mar-2015 |
jmcneill |
sc_gic_lines is the total number of valid lines but pic_sources[] is sparse; when initializing mpsafe targets make sure to go all the way to the end (sc_pic.pic_maxsources) instead
|
Revision tags: nick-nhusb-base
|
#
1.12 |
|
29-Oct-2014 |
skrll |
branches: 1.12.2; Only target boot cpu for SPIs atm. Fix a couple of bugs in the now disabled code.
|
#
1.11 |
|
29-Oct-2014 |
skrll |
Sprinkle #include "opt_multiprocessor.h"
|
Revision tags: netbsd-7-base tls-earlyentropy-base tls-maxphys-base
|
#
1.10 |
|
19-May-2014 |
rmind |
branches: 1.10.2; Implement MI IPI interface with cross-call support.
|
Revision tags: yamt-pagecache-base9 rmind-smpnet-nbase rmind-smpnet-base
|
#
1.9 |
|
27-Apr-2014 |
matt |
When dealing with the PMR register, only use non-secure priority values.
|
#
1.8 |
|
13-Apr-2014 |
matt |
Move aprint to print sooner.
|
Revision tags: riastradh-xf86-video-intel-2-7-1-pre-2-21-15
|
#
1.7 |
|
28-Mar-2014 |
matt |
branches: 1.7.2; Various MP changes.
|
Revision tags: riastradh-drm2-base3
|
#
1.6 |
|
04-Mar-2014 |
matt |
Don't byte swap the data, assume the bus_space will do it.
|
#
1.5 |
|
17-Dec-2013 |
joerg |
branches: 1.5.2; armgic_priority_to_ipl is only used in #if 0'd code, so apply that as well.
|
Revision tags: riastradh-drm2-base2 riastradh-drm2-base1 riastradh-drm2-base
|
#
1.4 |
|
20-Jun-2013 |
matt |
branches: 1.4.2; Pass the offset from CBAR/PERIPHBASE in mpcore_attach_args. Modify the list of devices to include the offset(s) from PERIPHBASE.
|
Revision tags: agc-symver-base yamt-pagecache-base8 yamt-pagecache-base7 yamt-pagecache-base6
|
#
1.3 |
|
16-Sep-2012 |
rmind |
branches: 1.3.2; 1.3.4; Rename kcpuset_copybits() to kcpuset_export_u32() and thus be more specific about the interface.
|
#
1.2 |
|
14-Sep-2012 |
matt |
Verify the source isn't a dummy source.
|
#
1.1 |
|
01-Sep-2012 |
matt |
branches: 1.1.2; Add Cortex-A9 support including the ARM Generic Interrupt Controller and the A9 Global Timer / Watchdog.
|
#
1.42 |
|
26-Sep-2020 |
skrll |
G/C arm/atomic.h
|
#
1.41 |
|
27-Jul-2020 |
jmcneill |
Remove CPU ID test in armgic_match. Perfectly normal to have GIC in non-Cortex cores.
|
#
1.40 |
|
12-Jul-2020 |
skrll |
Avoid undefined behaviour. Detected by KUBSAN.
|
Revision tags: bouyer-xenpvh-base2 phil-wifi-20200421 bouyer-xenpvh-base1
|
#
1.39 |
|
13-Apr-2020 |
jmcneill |
Fix "left shift of 255 by 24 places cannot be represented in type 'int'" warning from UBSan.
|
Revision tags: phil-wifi-20200411 bouyer-xenpvh-base is-mlppp-base phil-wifi-20200406 ad-namecache-base3 netbsd-9-0-RELEASE netbsd-9-0-RC2 ad-namecache-base2 ad-namecache-base1 ad-namecache-base netbsd-9-0-RC1 phil-wifi-20191119 netbsd-9-base phil-wifi-20190609 isaki-audio2-base pgoyette-compat-20190127 pgoyette-compat-20190118 pgoyette-compat-1226 pgoyette-compat-1126
|
#
1.38 |
|
16-Nov-2018 |
jmcneill |
branches: 1.38.10; Use intr_establish_xname
|
Revision tags: pgoyette-compat-1020 pgoyette-compat-0930
|
#
1.37 |
|
10-Sep-2018 |
jmcneill |
armgic_ipi_send: use GIC interface number, not CPU index, when setting the target(s) for an IPI.
|
#
1.36 |
|
10-Sep-2018 |
jmcneill |
Update sc_mptargets atomically, as PEs will be started up in parallel w/o locking here
|
Revision tags: pgoyette-compat-0906 pgoyette-compat-0728
|
#
1.35 |
|
15-Jul-2018 |
jmcneill |
Support pic_set_affinity and pic_get_affinity
|
Revision tags: phil-wifi-base pgoyette-compat-0625 pgoyette-compat-0521 pgoyette-compat-0502
|
#
1.34 |
|
28-Apr-2018 |
jakllsch |
branches: 1.34.2; Cover all pic_maxsources lines for armgic_cpu_init_priorities() and armgic_cpu_update_priorities().
Previously only the first 32 lines were covered, which is significantly less than the 1000-some interrupt lines possible.
Only relevant to MULTIPROCESSOR configurations.
|
Revision tags: pgoyette-compat-0422 pgoyette-compat-0415 pgoyette-compat-0407
|
#
1.33 |
|
01-Apr-2018 |
ryo |
Add initial support for ARMv8 (AARCH64) (by nisimura@ and ryo@)
- sys/arch/evbarm64 is gone and integrated into sys/arch/evbarm. (by skrll@) - add support fdt. evbarm/conf/GENERIC64 fdt (bcm2837,sunxi,tegra) based generic 64bit kernel config. (by skrll@, jmcneill@)
|
Revision tags: pgoyette-compat-0330 pgoyette-compat-0322 pgoyette-compat-0315 pgoyette-compat-base
|
#
1.32 |
|
07-Feb-2018 |
jmcneill |
branches: 1.32.2; PR# port-evbarm/49468: Cortex GIC assertion triggered on Allwinner A80 SoC
The priority level is changed by writing to GICC_PMR with interrupts disabled. However, interrupts are enabled/disabled downstream of the GICC at the CPU. When raising priority level, there is a window between the time that interrupts are disabled and the GICC_PMR register is written. If an interrupt occurs at a previously allowed priority before GICC_PMR is changed, the CPU will receive the signal when interrupts are re-enabled. At this time, GICC_PMR is now the new priority level, so reads of GICC_IAR will report a spurious IRQ.
Move the "old_ipl != IPL_HIGH" test until after we have confirmed that there is at least one pending IRQ.
|
Revision tags: tls-maxphys-base-20171202 nick-nhusb-base-20170825 perseant-stdc-iso10646-base
|
#
1.31 |
|
14-Jul-2017 |
skrll |
KNF
|
#
1.30 |
|
29-Jun-2017 |
jmcneill |
ARM Trusted Firmware reserves SGIs 8-15 for secure use. Even without ATF, U-Boot on some platforms may use SGIs in this range for the PSCI implementation.
Change ARMGIC_IPI_BASE to 0 from (16 - NIPI) and add a compile-time assert to ensure that we don't end up with a conflict.
|
#
1.29 |
|
28-Jun-2017 |
skrll |
Revert the KERNHIST for now it causes problems
|
#
1.28 |
|
22-Jun-2017 |
skrll |
If we see GICC_IAR_IRQ_SSPURIOUS we should also stop looking for irqs
|
#
1.27 |
|
22-Jun-2017 |
skrll |
Wrap long line
|
#
1.26 |
|
22-Jun-2017 |
skrll |
Print the GICC_IIDR when AB_DEBUG
|
#
1.25 |
|
22-Jun-2017 |
skrll |
Add 'armgichist' KERNHIST for (future) debugging.
|
#
1.24 |
|
18-Jun-2017 |
jmcneill |
Don't assume that CPU index = GIC CPU interface number. We can determine the current CPU interface number by reading from the read-only GICD_ITARGETSR0 through GICD_ITARGETSR7 registers.
This gets interrupts working on Exynos 5422, where the boot processor has GIC CPU interface #4.
|
#
1.23 |
|
05-Jun-2017 |
skrll |
Clean out some #if 0'ed or //'ed code
|
#
1.22 |
|
04-Jun-2017 |
skrll |
Initialise all the SGI/PPI priorities for all CPUs to mask the interrupts
|
Revision tags: netbsd-8-base
|
#
1.21 |
|
30-May-2017 |
jmcneill |
branches: 1.21.2; Use an FDT-based ARM_INTR_IMPL for Tegra.
|
Revision tags: prg-localcount2-base3 prg-localcount2-base2 prg-localcount2-base1 prg-localcount2-base pgoyette-localcount-20170426 bouyer-socketcan-base1 jdolecek-ncq-base pgoyette-localcount-20170320 nick-nhusb-base-20170204 bouyer-socketcan-base pgoyette-localcount-20170107 nick-nhusb-base-20161204 pgoyette-localcount-20161104 nick-nhusb-base-20161004 localcount-20160914 pgoyette-localcount-20160806 pgoyette-localcount-20160726 pgoyette-localcount-base nick-nhusb-base-20160907 nick-nhusb-base-20160529 nick-nhusb-base-20160422 nick-nhusb-base-20160319 nick-nhusb-base-20151226 nick-nhusb-base-20150921
|
#
1.20 |
|
29-Jul-2015 |
matt |
Adjust some of IPLs of various IPIs.
|
Revision tags: nick-nhusb-base-20150606
|
#
1.19 |
|
15-Apr-2015 |
matt |
Add separate IPI routines for IPI_AST and IPI_KPREEMPT.
|
#
1.18 |
|
11-Apr-2015 |
matt |
Add a pic_cpus to the softc which specifies which cpus the pic can send IPIs to. For GIC, initialize pic_cpus to kcpuset_running since it can handle all the cpus.
|
#
1.17 |
|
09-Apr-2015 |
matt |
All SGIs are MPSAFE so establish them as such.
|
Revision tags: nick-nhusb-base-20150406
|
#
1.16 |
|
20-Mar-2015 |
skrll |
Trailing whitespace
|
#
1.15 |
|
12-Mar-2015 |
skrll |
G/C armgic_last_priority
|
#
1.14 |
|
03-Mar-2015 |
jmcneill |
in armgic_establish_irq, make sure to write the new value to GICD_ICFGRn when setting irq type (IST_LEVEL/IST_EDGE)
|
#
1.13 |
|
02-Mar-2015 |
jmcneill |
sc_gic_lines is the total number of valid lines but pic_sources[] is sparse; when initializing mpsafe targets make sure to go all the way to the end (sc_pic.pic_maxsources) instead
|
Revision tags: nick-nhusb-base
|
#
1.12 |
|
29-Oct-2014 |
skrll |
branches: 1.12.2; Only target boot cpu for SPIs atm. Fix a couple of bugs in the now disabled code.
|
#
1.11 |
|
29-Oct-2014 |
skrll |
Sprinkle #include "opt_multiprocessor.h"
|
Revision tags: netbsd-7-base tls-earlyentropy-base tls-maxphys-base
|
#
1.10 |
|
19-May-2014 |
rmind |
branches: 1.10.2; Implement MI IPI interface with cross-call support.
|
Revision tags: yamt-pagecache-base9 rmind-smpnet-nbase rmind-smpnet-base
|
#
1.9 |
|
27-Apr-2014 |
matt |
When dealing with the PMR register, only use non-secure priority values.
|
#
1.8 |
|
13-Apr-2014 |
matt |
Move aprint to print sooner.
|
Revision tags: riastradh-xf86-video-intel-2-7-1-pre-2-21-15
|
#
1.7 |
|
28-Mar-2014 |
matt |
branches: 1.7.2; Various MP changes.
|
Revision tags: riastradh-drm2-base3
|
#
1.6 |
|
04-Mar-2014 |
matt |
Don't byte swap the data, assume the bus_space will do it.
|
#
1.5 |
|
17-Dec-2013 |
joerg |
branches: 1.5.2; armgic_priority_to_ipl is only used in #if 0'd code, so apply that as well.
|
Revision tags: riastradh-drm2-base2 riastradh-drm2-base1 riastradh-drm2-base
|
#
1.4 |
|
20-Jun-2013 |
matt |
branches: 1.4.2; Pass the offset from CBAR/PERIPHBASE in mpcore_attach_args. Modify the list of devices to include the offset(s) from PERIPHBASE.
|
Revision tags: agc-symver-base yamt-pagecache-base8 yamt-pagecache-base7 yamt-pagecache-base6
|
#
1.3 |
|
16-Sep-2012 |
rmind |
branches: 1.3.2; 1.3.4; Rename kcpuset_copybits() to kcpuset_export_u32() and thus be more specific about the interface.
|
#
1.2 |
|
14-Sep-2012 |
matt |
Verify the source isn't a dummy source.
|
#
1.1 |
|
01-Sep-2012 |
matt |
branches: 1.1.2; Add Cortex-A9 support including the ARM Generic Interrupt Controller and the A9 Global Timer / Watchdog.
|
#
1.41 |
|
27-Jul-2020 |
jmcneill |
Remove CPU ID test in armgic_match. Perfectly normal to have GIC in non-Cortex cores.
|
#
1.40 |
|
12-Jul-2020 |
skrll |
Avoid undefined behaviour. Detected by KUBSAN.
|
Revision tags: bouyer-xenpvh-base2 phil-wifi-20200421 bouyer-xenpvh-base1
|
#
1.39 |
|
13-Apr-2020 |
jmcneill |
Fix "left shift of 255 by 24 places cannot be represented in type 'int'" warning from UBSan.
|
Revision tags: phil-wifi-20200411 bouyer-xenpvh-base is-mlppp-base phil-wifi-20200406 ad-namecache-base3 netbsd-9-0-RELEASE netbsd-9-0-RC2 ad-namecache-base2 ad-namecache-base1 ad-namecache-base netbsd-9-0-RC1 phil-wifi-20191119 netbsd-9-base phil-wifi-20190609 isaki-audio2-base pgoyette-compat-20190127 pgoyette-compat-20190118 pgoyette-compat-1226 pgoyette-compat-1126
|
#
1.38 |
|
16-Nov-2018 |
jmcneill |
branches: 1.38.10; Use intr_establish_xname
|
Revision tags: pgoyette-compat-1020 pgoyette-compat-0930
|
#
1.37 |
|
10-Sep-2018 |
jmcneill |
armgic_ipi_send: use GIC interface number, not CPU index, when setting the target(s) for an IPI.
|
#
1.36 |
|
10-Sep-2018 |
jmcneill |
Update sc_mptargets atomically, as PEs will be started up in parallel w/o locking here
|
Revision tags: pgoyette-compat-0906 pgoyette-compat-0728
|
#
1.35 |
|
15-Jul-2018 |
jmcneill |
Support pic_set_affinity and pic_get_affinity
|
Revision tags: phil-wifi-base pgoyette-compat-0625 pgoyette-compat-0521 pgoyette-compat-0502
|
#
1.34 |
|
28-Apr-2018 |
jakllsch |
branches: 1.34.2; Cover all pic_maxsources lines for armgic_cpu_init_priorities() and armgic_cpu_update_priorities().
Previously only the first 32 lines were covered, which is significantly less than the 1000-some interrupt lines possible.
Only relevant to MULTIPROCESSOR configurations.
|
Revision tags: pgoyette-compat-0422 pgoyette-compat-0415 pgoyette-compat-0407
|
#
1.33 |
|
01-Apr-2018 |
ryo |
Add initial support for ARMv8 (AARCH64) (by nisimura@ and ryo@)
- sys/arch/evbarm64 is gone and integrated into sys/arch/evbarm. (by skrll@) - add support fdt. evbarm/conf/GENERIC64 fdt (bcm2837,sunxi,tegra) based generic 64bit kernel config. (by skrll@, jmcneill@)
|
Revision tags: pgoyette-compat-0330 pgoyette-compat-0322 pgoyette-compat-0315 pgoyette-compat-base
|
#
1.32 |
|
07-Feb-2018 |
jmcneill |
branches: 1.32.2; PR# port-evbarm/49468: Cortex GIC assertion triggered on Allwinner A80 SoC
The priority level is changed by writing to GICC_PMR with interrupts disabled. However, interrupts are enabled/disabled downstream of the GICC at the CPU. When raising priority level, there is a window between the time that interrupts are disabled and the GICC_PMR register is written. If an interrupt occurs at a previously allowed priority before GICC_PMR is changed, the CPU will receive the signal when interrupts are re-enabled. At this time, GICC_PMR is now the new priority level, so reads of GICC_IAR will report a spurious IRQ.
Move the "old_ipl != IPL_HIGH" test until after we have confirmed that there is at least one pending IRQ.
|
Revision tags: tls-maxphys-base-20171202 nick-nhusb-base-20170825 perseant-stdc-iso10646-base
|
#
1.31 |
|
14-Jul-2017 |
skrll |
KNF
|
#
1.30 |
|
29-Jun-2017 |
jmcneill |
ARM Trusted Firmware reserves SGIs 8-15 for secure use. Even without ATF, U-Boot on some platforms may use SGIs in this range for the PSCI implementation.
Change ARMGIC_IPI_BASE to 0 from (16 - NIPI) and add a compile-time assert to ensure that we don't end up with a conflict.
|
#
1.29 |
|
28-Jun-2017 |
skrll |
Revert the KERNHIST for now it causes problems
|
#
1.28 |
|
22-Jun-2017 |
skrll |
If we see GICC_IAR_IRQ_SSPURIOUS we should also stop looking for irqs
|
#
1.27 |
|
22-Jun-2017 |
skrll |
Wrap long line
|
#
1.26 |
|
22-Jun-2017 |
skrll |
Print the GICC_IIDR when AB_DEBUG
|
#
1.25 |
|
22-Jun-2017 |
skrll |
Add 'armgichist' KERNHIST for (future) debugging.
|
#
1.24 |
|
18-Jun-2017 |
jmcneill |
Don't assume that CPU index = GIC CPU interface number. We can determine the current CPU interface number by reading from the read-only GICD_ITARGETSR0 through GICD_ITARGETSR7 registers.
This gets interrupts working on Exynos 5422, where the boot processor has GIC CPU interface #4.
|
#
1.23 |
|
05-Jun-2017 |
skrll |
Clean out some #if 0'ed or //'ed code
|
#
1.22 |
|
04-Jun-2017 |
skrll |
Initialise all the SGI/PPI priorities for all CPUs to mask the interrupts
|
Revision tags: netbsd-8-base
|
#
1.21 |
|
30-May-2017 |
jmcneill |
branches: 1.21.2; Use an FDT-based ARM_INTR_IMPL for Tegra.
|
Revision tags: prg-localcount2-base3 prg-localcount2-base2 prg-localcount2-base1 prg-localcount2-base pgoyette-localcount-20170426 bouyer-socketcan-base1 jdolecek-ncq-base pgoyette-localcount-20170320 nick-nhusb-base-20170204 bouyer-socketcan-base pgoyette-localcount-20170107 nick-nhusb-base-20161204 pgoyette-localcount-20161104 nick-nhusb-base-20161004 localcount-20160914 pgoyette-localcount-20160806 pgoyette-localcount-20160726 pgoyette-localcount-base nick-nhusb-base-20160907 nick-nhusb-base-20160529 nick-nhusb-base-20160422 nick-nhusb-base-20160319 nick-nhusb-base-20151226 nick-nhusb-base-20150921
|
#
1.20 |
|
29-Jul-2015 |
matt |
Adjust some of IPLs of various IPIs.
|
Revision tags: nick-nhusb-base-20150606
|
#
1.19 |
|
15-Apr-2015 |
matt |
Add separate IPI routines for IPI_AST and IPI_KPREEMPT.
|
#
1.18 |
|
11-Apr-2015 |
matt |
Add a pic_cpus to the softc which specifies which cpus the pic can send IPIs to. For GIC, initialize pic_cpus to kcpuset_running since it can handle all the cpus.
|
#
1.17 |
|
09-Apr-2015 |
matt |
All SGIs are MPSAFE so establish them as such.
|
Revision tags: nick-nhusb-base-20150406
|
#
1.16 |
|
20-Mar-2015 |
skrll |
Trailing whitespace
|
#
1.15 |
|
12-Mar-2015 |
skrll |
G/C armgic_last_priority
|
#
1.14 |
|
03-Mar-2015 |
jmcneill |
in armgic_establish_irq, make sure to write the new value to GICD_ICFGRn when setting irq type (IST_LEVEL/IST_EDGE)
|
#
1.13 |
|
02-Mar-2015 |
jmcneill |
sc_gic_lines is the total number of valid lines but pic_sources[] is sparse; when initializing mpsafe targets make sure to go all the way to the end (sc_pic.pic_maxsources) instead
|
Revision tags: nick-nhusb-base
|
#
1.12 |
|
29-Oct-2014 |
skrll |
branches: 1.12.2; Only target boot cpu for SPIs atm. Fix a couple of bugs in the now disabled code.
|
#
1.11 |
|
29-Oct-2014 |
skrll |
Sprinkle #include "opt_multiprocessor.h"
|
Revision tags: netbsd-7-base tls-earlyentropy-base tls-maxphys-base
|
#
1.10 |
|
19-May-2014 |
rmind |
branches: 1.10.2; Implement MI IPI interface with cross-call support.
|
Revision tags: yamt-pagecache-base9 rmind-smpnet-nbase rmind-smpnet-base
|
#
1.9 |
|
27-Apr-2014 |
matt |
When dealing with the PMR register, only use non-secure priority values.
|
#
1.8 |
|
13-Apr-2014 |
matt |
Move aprint to print sooner.
|
Revision tags: riastradh-xf86-video-intel-2-7-1-pre-2-21-15
|
#
1.7 |
|
28-Mar-2014 |
matt |
branches: 1.7.2; Various MP changes.
|
Revision tags: riastradh-drm2-base3
|
#
1.6 |
|
04-Mar-2014 |
matt |
Don't byte swap the data, assume the bus_space will do it.
|
#
1.5 |
|
17-Dec-2013 |
joerg |
branches: 1.5.2; armgic_priority_to_ipl is only used in #if 0'd code, so apply that as well.
|
Revision tags: riastradh-drm2-base2 riastradh-drm2-base1 riastradh-drm2-base
|
#
1.4 |
|
20-Jun-2013 |
matt |
branches: 1.4.2; Pass the offset from CBAR/PERIPHBASE in mpcore_attach_args. Modify the list of devices to include the offset(s) from PERIPHBASE.
|
Revision tags: agc-symver-base yamt-pagecache-base8 yamt-pagecache-base7 yamt-pagecache-base6
|
#
1.3 |
|
16-Sep-2012 |
rmind |
branches: 1.3.2; 1.3.4; Rename kcpuset_copybits() to kcpuset_export_u32() and thus be more specific about the interface.
|
#
1.2 |
|
14-Sep-2012 |
matt |
Verify the source isn't a dummy source.
|
#
1.1 |
|
01-Sep-2012 |
matt |
branches: 1.1.2; Add Cortex-A9 support including the ARM Generic Interrupt Controller and the A9 Global Timer / Watchdog.
|
#
1.40 |
|
12-Jul-2020 |
skrll |
Avoid undefined behaviour. Detected by KUBSAN.
|
Revision tags: bouyer-xenpvh-base2 phil-wifi-20200421 bouyer-xenpvh-base1
|
#
1.39 |
|
13-Apr-2020 |
jmcneill |
Fix "left shift of 255 by 24 places cannot be represented in type 'int'" warning from UBSan.
|
Revision tags: phil-wifi-20200411 bouyer-xenpvh-base is-mlppp-base phil-wifi-20200406 ad-namecache-base3 netbsd-9-0-RELEASE netbsd-9-0-RC2 ad-namecache-base2 ad-namecache-base1 ad-namecache-base netbsd-9-0-RC1 phil-wifi-20191119 netbsd-9-base phil-wifi-20190609 isaki-audio2-base pgoyette-compat-20190127 pgoyette-compat-20190118 pgoyette-compat-1226 pgoyette-compat-1126
|
#
1.38 |
|
16-Nov-2018 |
jmcneill |
branches: 1.38.10; Use intr_establish_xname
|
Revision tags: pgoyette-compat-1020 pgoyette-compat-0930
|
#
1.37 |
|
10-Sep-2018 |
jmcneill |
armgic_ipi_send: use GIC interface number, not CPU index, when setting the target(s) for an IPI.
|
#
1.36 |
|
10-Sep-2018 |
jmcneill |
Update sc_mptargets atomically, as PEs will be started up in parallel w/o locking here
|
Revision tags: pgoyette-compat-0906 pgoyette-compat-0728
|
#
1.35 |
|
15-Jul-2018 |
jmcneill |
Support pic_set_affinity and pic_get_affinity
|
Revision tags: phil-wifi-base pgoyette-compat-0625 pgoyette-compat-0521 pgoyette-compat-0502
|
#
1.34 |
|
28-Apr-2018 |
jakllsch |
branches: 1.34.2; Cover all pic_maxsources lines for armgic_cpu_init_priorities() and armgic_cpu_update_priorities().
Previously only the first 32 lines were covered, which is significantly less than the 1000-some interrupt lines possible.
Only relevant to MULTIPROCESSOR configurations.
|
Revision tags: pgoyette-compat-0422 pgoyette-compat-0415 pgoyette-compat-0407
|
#
1.33 |
|
01-Apr-2018 |
ryo |
Add initial support for ARMv8 (AARCH64) (by nisimura@ and ryo@)
- sys/arch/evbarm64 is gone and integrated into sys/arch/evbarm. (by skrll@) - add support fdt. evbarm/conf/GENERIC64 fdt (bcm2837,sunxi,tegra) based generic 64bit kernel config. (by skrll@, jmcneill@)
|
Revision tags: pgoyette-compat-0330 pgoyette-compat-0322 pgoyette-compat-0315 pgoyette-compat-base
|
#
1.32 |
|
07-Feb-2018 |
jmcneill |
branches: 1.32.2; PR# port-evbarm/49468: Cortex GIC assertion triggered on Allwinner A80 SoC
The priority level is changed by writing to GICC_PMR with interrupts disabled. However, interrupts are enabled/disabled downstream of the GICC at the CPU. When raising priority level, there is a window between the time that interrupts are disabled and the GICC_PMR register is written. If an interrupt occurs at a previously allowed priority before GICC_PMR is changed, the CPU will receive the signal when interrupts are re-enabled. At this time, GICC_PMR is now the new priority level, so reads of GICC_IAR will report a spurious IRQ.
Move the "old_ipl != IPL_HIGH" test until after we have confirmed that there is at least one pending IRQ.
|
Revision tags: tls-maxphys-base-20171202 nick-nhusb-base-20170825 perseant-stdc-iso10646-base
|
#
1.31 |
|
14-Jul-2017 |
skrll |
KNF
|
#
1.30 |
|
29-Jun-2017 |
jmcneill |
ARM Trusted Firmware reserves SGIs 8-15 for secure use. Even without ATF, U-Boot on some platforms may use SGIs in this range for the PSCI implementation.
Change ARMGIC_IPI_BASE to 0 from (16 - NIPI) and add a compile-time assert to ensure that we don't end up with a conflict.
|
#
1.29 |
|
28-Jun-2017 |
skrll |
Revert the KERNHIST for now it causes problems
|
#
1.28 |
|
22-Jun-2017 |
skrll |
If we see GICC_IAR_IRQ_SSPURIOUS we should also stop looking for irqs
|
#
1.27 |
|
22-Jun-2017 |
skrll |
Wrap long line
|
#
1.26 |
|
22-Jun-2017 |
skrll |
Print the GICC_IIDR when AB_DEBUG
|
#
1.25 |
|
22-Jun-2017 |
skrll |
Add 'armgichist' KERNHIST for (future) debugging.
|
#
1.24 |
|
18-Jun-2017 |
jmcneill |
Don't assume that CPU index = GIC CPU interface number. We can determine the current CPU interface number by reading from the read-only GICD_ITARGETSR0 through GICD_ITARGETSR7 registers.
This gets interrupts working on Exynos 5422, where the boot processor has GIC CPU interface #4.
|
#
1.23 |
|
05-Jun-2017 |
skrll |
Clean out some #if 0'ed or //'ed code
|
#
1.22 |
|
04-Jun-2017 |
skrll |
Initialise all the SGI/PPI priorities for all CPUs to mask the interrupts
|
Revision tags: netbsd-8-base
|
#
1.21 |
|
30-May-2017 |
jmcneill |
branches: 1.21.2; Use an FDT-based ARM_INTR_IMPL for Tegra.
|
Revision tags: prg-localcount2-base3 prg-localcount2-base2 prg-localcount2-base1 prg-localcount2-base pgoyette-localcount-20170426 bouyer-socketcan-base1 jdolecek-ncq-base pgoyette-localcount-20170320 nick-nhusb-base-20170204 bouyer-socketcan-base pgoyette-localcount-20170107 nick-nhusb-base-20161204 pgoyette-localcount-20161104 nick-nhusb-base-20161004 localcount-20160914 pgoyette-localcount-20160806 pgoyette-localcount-20160726 pgoyette-localcount-base nick-nhusb-base-20160907 nick-nhusb-base-20160529 nick-nhusb-base-20160422 nick-nhusb-base-20160319 nick-nhusb-base-20151226 nick-nhusb-base-20150921
|
#
1.20 |
|
29-Jul-2015 |
matt |
Adjust some of IPLs of various IPIs.
|
Revision tags: nick-nhusb-base-20150606
|
#
1.19 |
|
15-Apr-2015 |
matt |
Add separate IPI routines for IPI_AST and IPI_KPREEMPT.
|
#
1.18 |
|
11-Apr-2015 |
matt |
Add a pic_cpus to the softc which specifies which cpus the pic can send IPIs to. For GIC, initialize pic_cpus to kcpuset_running since it can handle all the cpus.
|
#
1.17 |
|
09-Apr-2015 |
matt |
All SGIs are MPSAFE so establish them as such.
|
Revision tags: nick-nhusb-base-20150406
|
#
1.16 |
|
20-Mar-2015 |
skrll |
Trailing whitespace
|
#
1.15 |
|
12-Mar-2015 |
skrll |
G/C armgic_last_priority
|
#
1.14 |
|
03-Mar-2015 |
jmcneill |
in armgic_establish_irq, make sure to write the new value to GICD_ICFGRn when setting irq type (IST_LEVEL/IST_EDGE)
|
#
1.13 |
|
02-Mar-2015 |
jmcneill |
sc_gic_lines is the total number of valid lines but pic_sources[] is sparse; when initializing mpsafe targets make sure to go all the way to the end (sc_pic.pic_maxsources) instead
|
Revision tags: nick-nhusb-base
|
#
1.12 |
|
29-Oct-2014 |
skrll |
branches: 1.12.2; Only target boot cpu for SPIs atm. Fix a couple of bugs in the now disabled code.
|
#
1.11 |
|
29-Oct-2014 |
skrll |
Sprinkle #include "opt_multiprocessor.h"
|
Revision tags: netbsd-7-base tls-earlyentropy-base tls-maxphys-base
|
#
1.10 |
|
19-May-2014 |
rmind |
branches: 1.10.2; Implement MI IPI interface with cross-call support.
|
Revision tags: yamt-pagecache-base9 rmind-smpnet-nbase rmind-smpnet-base
|
#
1.9 |
|
27-Apr-2014 |
matt |
When dealing with the PMR register, only use non-secure priority values.
|
#
1.8 |
|
13-Apr-2014 |
matt |
Move aprint to print sooner.
|
Revision tags: riastradh-xf86-video-intel-2-7-1-pre-2-21-15
|
#
1.7 |
|
28-Mar-2014 |
matt |
branches: 1.7.2; Various MP changes.
|
Revision tags: riastradh-drm2-base3
|
#
1.6 |
|
04-Mar-2014 |
matt |
Don't byte swap the data, assume the bus_space will do it.
|
#
1.5 |
|
17-Dec-2013 |
joerg |
branches: 1.5.2; armgic_priority_to_ipl is only used in #if 0'd code, so apply that as well.
|
Revision tags: riastradh-drm2-base2 riastradh-drm2-base1 riastradh-drm2-base
|
#
1.4 |
|
20-Jun-2013 |
matt |
branches: 1.4.2; Pass the offset from CBAR/PERIPHBASE in mpcore_attach_args. Modify the list of devices to include the offset(s) from PERIPHBASE.
|
Revision tags: agc-symver-base yamt-pagecache-base8 yamt-pagecache-base7 yamt-pagecache-base6
|
#
1.3 |
|
16-Sep-2012 |
rmind |
branches: 1.3.2; 1.3.4; Rename kcpuset_copybits() to kcpuset_export_u32() and thus be more specific about the interface.
|
#
1.2 |
|
14-Sep-2012 |
matt |
Verify the source isn't a dummy source.
|
#
1.1 |
|
01-Sep-2012 |
matt |
branches: 1.1.2; Add Cortex-A9 support including the ARM Generic Interrupt Controller and the A9 Global Timer / Watchdog.
|
#
1.39 |
|
13-Apr-2020 |
jmcneill |
Fix "left shift of 255 by 24 places cannot be represented in type 'int'" warning from UBSan.
|
Revision tags: phil-wifi-20200411 bouyer-xenpvh-base is-mlppp-base phil-wifi-20200406 ad-namecache-base3 netbsd-9-0-RELEASE netbsd-9-0-RC2 ad-namecache-base2 ad-namecache-base1 ad-namecache-base netbsd-9-0-RC1 phil-wifi-20191119 netbsd-9-base phil-wifi-20190609 isaki-audio2-base pgoyette-compat-20190127 pgoyette-compat-20190118 pgoyette-compat-1226 pgoyette-compat-1126
|
#
1.38 |
|
16-Nov-2018 |
jmcneill |
Use intr_establish_xname
|
Revision tags: pgoyette-compat-1020 pgoyette-compat-0930
|
#
1.37 |
|
10-Sep-2018 |
jmcneill |
armgic_ipi_send: use GIC interface number, not CPU index, when setting the target(s) for an IPI.
|
#
1.36 |
|
10-Sep-2018 |
jmcneill |
Update sc_mptargets atomically, as PEs will be started up in parallel w/o locking here
|
Revision tags: pgoyette-compat-0906 pgoyette-compat-0728
|
#
1.35 |
|
15-Jul-2018 |
jmcneill |
Support pic_set_affinity and pic_get_affinity
|
Revision tags: phil-wifi-base pgoyette-compat-0625 pgoyette-compat-0521 pgoyette-compat-0502
|
#
1.34 |
|
28-Apr-2018 |
jakllsch |
branches: 1.34.2; Cover all pic_maxsources lines for armgic_cpu_init_priorities() and armgic_cpu_update_priorities().
Previously only the first 32 lines were covered, which is significantly less than the 1000-some interrupt lines possible.
Only relevant to MULTIPROCESSOR configurations.
|
Revision tags: pgoyette-compat-0422 pgoyette-compat-0415 pgoyette-compat-0407
|
#
1.33 |
|
01-Apr-2018 |
ryo |
Add initial support for ARMv8 (AARCH64) (by nisimura@ and ryo@)
- sys/arch/evbarm64 is gone and integrated into sys/arch/evbarm. (by skrll@) - add support fdt. evbarm/conf/GENERIC64 fdt (bcm2837,sunxi,tegra) based generic 64bit kernel config. (by skrll@, jmcneill@)
|
Revision tags: pgoyette-compat-0330 pgoyette-compat-0322 pgoyette-compat-0315 pgoyette-compat-base
|
#
1.32 |
|
07-Feb-2018 |
jmcneill |
branches: 1.32.2; PR# port-evbarm/49468: Cortex GIC assertion triggered on Allwinner A80 SoC
The priority level is changed by writing to GICC_PMR with interrupts disabled. However, interrupts are enabled/disabled downstream of the GICC at the CPU. When raising priority level, there is a window between the time that interrupts are disabled and the GICC_PMR register is written. If an interrupt occurs at a previously allowed priority before GICC_PMR is changed, the CPU will receive the signal when interrupts are re-enabled. At this time, GICC_PMR is now the new priority level, so reads of GICC_IAR will report a spurious IRQ.
Move the "old_ipl != IPL_HIGH" test until after we have confirmed that there is at least one pending IRQ.
|
Revision tags: tls-maxphys-base-20171202 nick-nhusb-base-20170825 perseant-stdc-iso10646-base
|
#
1.31 |
|
14-Jul-2017 |
skrll |
KNF
|
#
1.30 |
|
29-Jun-2017 |
jmcneill |
ARM Trusted Firmware reserves SGIs 8-15 for secure use. Even without ATF, U-Boot on some platforms may use SGIs in this range for the PSCI implementation.
Change ARMGIC_IPI_BASE to 0 from (16 - NIPI) and add a compile-time assert to ensure that we don't end up with a conflict.
|
#
1.29 |
|
28-Jun-2017 |
skrll |
Revert the KERNHIST for now it causes problems
|
#
1.28 |
|
22-Jun-2017 |
skrll |
If we see GICC_IAR_IRQ_SSPURIOUS we should also stop looking for irqs
|
#
1.27 |
|
22-Jun-2017 |
skrll |
Wrap long line
|
#
1.26 |
|
22-Jun-2017 |
skrll |
Print the GICC_IIDR when AB_DEBUG
|
#
1.25 |
|
22-Jun-2017 |
skrll |
Add 'armgichist' KERNHIST for (future) debugging.
|
#
1.24 |
|
18-Jun-2017 |
jmcneill |
Don't assume that CPU index = GIC CPU interface number. We can determine the current CPU interface number by reading from the read-only GICD_ITARGETSR0 through GICD_ITARGETSR7 registers.
This gets interrupts working on Exynos 5422, where the boot processor has GIC CPU interface #4.
|
#
1.23 |
|
05-Jun-2017 |
skrll |
Clean out some #if 0'ed or //'ed code
|
#
1.22 |
|
04-Jun-2017 |
skrll |
Initialise all the SGI/PPI priorities for all CPUs to mask the interrupts
|
Revision tags: netbsd-8-base
|
#
1.21 |
|
30-May-2017 |
jmcneill |
branches: 1.21.2; Use an FDT-based ARM_INTR_IMPL for Tegra.
|
Revision tags: prg-localcount2-base3 prg-localcount2-base2 prg-localcount2-base1 prg-localcount2-base pgoyette-localcount-20170426 bouyer-socketcan-base1 jdolecek-ncq-base pgoyette-localcount-20170320 nick-nhusb-base-20170204 bouyer-socketcan-base pgoyette-localcount-20170107 nick-nhusb-base-20161204 pgoyette-localcount-20161104 nick-nhusb-base-20161004 localcount-20160914 pgoyette-localcount-20160806 pgoyette-localcount-20160726 pgoyette-localcount-base nick-nhusb-base-20160907 nick-nhusb-base-20160529 nick-nhusb-base-20160422 nick-nhusb-base-20160319 nick-nhusb-base-20151226 nick-nhusb-base-20150921
|
#
1.20 |
|
29-Jul-2015 |
matt |
Adjust some of IPLs of various IPIs.
|
Revision tags: nick-nhusb-base-20150606
|
#
1.19 |
|
15-Apr-2015 |
matt |
Add separate IPI routines for IPI_AST and IPI_KPREEMPT.
|
#
1.18 |
|
11-Apr-2015 |
matt |
Add a pic_cpus to the softc which specifies which cpus the pic can send IPIs to. For GIC, initialize pic_cpus to kcpuset_running since it can handle all the cpus.
|
#
1.17 |
|
09-Apr-2015 |
matt |
All SGIs are MPSAFE so establish them as such.
|
Revision tags: nick-nhusb-base-20150406
|
#
1.16 |
|
20-Mar-2015 |
skrll |
Trailing whitespace
|
#
1.15 |
|
12-Mar-2015 |
skrll |
G/C armgic_last_priority
|
#
1.14 |
|
03-Mar-2015 |
jmcneill |
in armgic_establish_irq, make sure to write the new value to GICD_ICFGRn when setting irq type (IST_LEVEL/IST_EDGE)
|
#
1.13 |
|
02-Mar-2015 |
jmcneill |
sc_gic_lines is the total number of valid lines but pic_sources[] is sparse; when initializing mpsafe targets make sure to go all the way to the end (sc_pic.pic_maxsources) instead
|
Revision tags: nick-nhusb-base
|
#
1.12 |
|
29-Oct-2014 |
skrll |
branches: 1.12.2; Only target boot cpu for SPIs atm. Fix a couple of bugs in the now disabled code.
|
#
1.11 |
|
29-Oct-2014 |
skrll |
Sprinkle #include "opt_multiprocessor.h"
|
Revision tags: netbsd-7-base tls-earlyentropy-base tls-maxphys-base
|
#
1.10 |
|
19-May-2014 |
rmind |
branches: 1.10.2; Implement MI IPI interface with cross-call support.
|
Revision tags: yamt-pagecache-base9 rmind-smpnet-nbase rmind-smpnet-base
|
#
1.9 |
|
27-Apr-2014 |
matt |
When dealing with the PMR register, only use non-secure priority values.
|
#
1.8 |
|
13-Apr-2014 |
matt |
Move aprint to print sooner.
|
Revision tags: riastradh-xf86-video-intel-2-7-1-pre-2-21-15
|
#
1.7 |
|
28-Mar-2014 |
matt |
branches: 1.7.2; Various MP changes.
|
Revision tags: riastradh-drm2-base3
|
#
1.6 |
|
04-Mar-2014 |
matt |
Don't byte swap the data, assume the bus_space will do it.
|
#
1.5 |
|
17-Dec-2013 |
joerg |
branches: 1.5.2; armgic_priority_to_ipl is only used in #if 0'd code, so apply that as well.
|
Revision tags: riastradh-drm2-base2 riastradh-drm2-base1 riastradh-drm2-base
|
#
1.4 |
|
20-Jun-2013 |
matt |
branches: 1.4.2; Pass the offset from CBAR/PERIPHBASE in mpcore_attach_args. Modify the list of devices to include the offset(s) from PERIPHBASE.
|
Revision tags: agc-symver-base yamt-pagecache-base8 yamt-pagecache-base7 yamt-pagecache-base6
|
#
1.3 |
|
16-Sep-2012 |
rmind |
branches: 1.3.2; 1.3.4; Rename kcpuset_copybits() to kcpuset_export_u32() and thus be more specific about the interface.
|
#
1.2 |
|
14-Sep-2012 |
matt |
Verify the source isn't a dummy source.
|
#
1.1 |
|
01-Sep-2012 |
matt |
branches: 1.1.2; Add Cortex-A9 support including the ARM Generic Interrupt Controller and the A9 Global Timer / Watchdog.
|
Revision tags: isaki-audio2-base pgoyette-compat-20190127 pgoyette-compat-20190118 pgoyette-compat-1226 pgoyette-compat-1126
|
#
1.38 |
|
16-Nov-2018 |
jmcneill |
Use intr_establish_xname
|
Revision tags: pgoyette-compat-1020 pgoyette-compat-0930
|
#
1.37 |
|
10-Sep-2018 |
jmcneill |
armgic_ipi_send: use GIC interface number, not CPU index, when setting the target(s) for an IPI.
|
#
1.36 |
|
10-Sep-2018 |
jmcneill |
Update sc_mptargets atomically, as PEs will be started up in parallel w/o locking here
|
Revision tags: pgoyette-compat-0906 pgoyette-compat-0728
|
#
1.35 |
|
15-Jul-2018 |
jmcneill |
Support pic_set_affinity and pic_get_affinity
|
Revision tags: phil-wifi-base pgoyette-compat-0625 pgoyette-compat-0521 pgoyette-compat-0502
|
#
1.34 |
|
28-Apr-2018 |
jakllsch |
Cover all pic_maxsources lines for armgic_cpu_init_priorities() and armgic_cpu_update_priorities().
Previously only the first 32 lines were covered, which is significantly less than the 1000-some interrupt lines possible.
Only relevant to MULTIPROCESSOR configurations.
|
Revision tags: pgoyette-compat-0422 pgoyette-compat-0415 pgoyette-compat-0407
|
#
1.33 |
|
01-Apr-2018 |
ryo |
Add initial support for ARMv8 (AARCH64) (by nisimura@ and ryo@)
- sys/arch/evbarm64 is gone and integrated into sys/arch/evbarm. (by skrll@) - add support fdt. evbarm/conf/GENERIC64 fdt (bcm2837,sunxi,tegra) based generic 64bit kernel config. (by skrll@, jmcneill@)
|
Revision tags: pgoyette-compat-0330 pgoyette-compat-0322 pgoyette-compat-0315 pgoyette-compat-base
|
#
1.32 |
|
07-Feb-2018 |
jmcneill |
branches: 1.32.2; PR# port-evbarm/49468: Cortex GIC assertion triggered on Allwinner A80 SoC
The priority level is changed by writing to GICC_PMR with interrupts disabled. However, interrupts are enabled/disabled downstream of the GICC at the CPU. When raising priority level, there is a window between the time that interrupts are disabled and the GICC_PMR register is written. If an interrupt occurs at a previously allowed priority before GICC_PMR is changed, the CPU will receive the signal when interrupts are re-enabled. At this time, GICC_PMR is now the new priority level, so reads of GICC_IAR will report a spurious IRQ.
Move the "old_ipl != IPL_HIGH" test until after we have confirmed that there is at least one pending IRQ.
|
Revision tags: tls-maxphys-base-20171202 nick-nhusb-base-20170825 perseant-stdc-iso10646-base
|
#
1.31 |
|
14-Jul-2017 |
skrll |
KNF
|
#
1.30 |
|
29-Jun-2017 |
jmcneill |
ARM Trusted Firmware reserves SGIs 8-15 for secure use. Even without ATF, U-Boot on some platforms may use SGIs in this range for the PSCI implementation.
Change ARMGIC_IPI_BASE to 0 from (16 - NIPI) and add a compile-time assert to ensure that we don't end up with a conflict.
|
#
1.29 |
|
28-Jun-2017 |
skrll |
Revert the KERNHIST for now it causes problems
|
#
1.28 |
|
22-Jun-2017 |
skrll |
If we see GICC_IAR_IRQ_SSPURIOUS we should also stop looking for irqs
|
#
1.27 |
|
22-Jun-2017 |
skrll |
Wrap long line
|
#
1.26 |
|
22-Jun-2017 |
skrll |
Print the GICC_IIDR when AB_DEBUG
|
#
1.25 |
|
22-Jun-2017 |
skrll |
Add 'armgichist' KERNHIST for (future) debugging.
|
#
1.24 |
|
18-Jun-2017 |
jmcneill |
Don't assume that CPU index = GIC CPU interface number. We can determine the current CPU interface number by reading from the read-only GICD_ITARGETSR0 through GICD_ITARGETSR7 registers.
This gets interrupts working on Exynos 5422, where the boot processor has GIC CPU interface #4.
|
#
1.23 |
|
05-Jun-2017 |
skrll |
Clean out some #if 0'ed or //'ed code
|
#
1.22 |
|
04-Jun-2017 |
skrll |
Initialise all the SGI/PPI priorities for all CPUs to mask the interrupts
|
Revision tags: netbsd-8-base
|
#
1.21 |
|
30-May-2017 |
jmcneill |
branches: 1.21.2; Use an FDT-based ARM_INTR_IMPL for Tegra.
|
Revision tags: prg-localcount2-base3 prg-localcount2-base2 prg-localcount2-base1 prg-localcount2-base pgoyette-localcount-20170426 bouyer-socketcan-base1 jdolecek-ncq-base pgoyette-localcount-20170320 nick-nhusb-base-20170204 bouyer-socketcan-base pgoyette-localcount-20170107 nick-nhusb-base-20161204 pgoyette-localcount-20161104 nick-nhusb-base-20161004 localcount-20160914 pgoyette-localcount-20160806 pgoyette-localcount-20160726 pgoyette-localcount-base nick-nhusb-base-20160907 nick-nhusb-base-20160529 nick-nhusb-base-20160422 nick-nhusb-base-20160319 nick-nhusb-base-20151226 nick-nhusb-base-20150921
|
#
1.20 |
|
29-Jul-2015 |
matt |
Adjust some of IPLs of various IPIs.
|
Revision tags: nick-nhusb-base-20150606
|
#
1.19 |
|
15-Apr-2015 |
matt |
Add separate IPI routines for IPI_AST and IPI_KPREEMPT.
|
#
1.18 |
|
11-Apr-2015 |
matt |
Add a pic_cpus to the softc which specifies which cpus the pic can send IPIs to. For GIC, initialize pic_cpus to kcpuset_running since it can handle all the cpus.
|
#
1.17 |
|
09-Apr-2015 |
matt |
All SGIs are MPSAFE so establish them as such.
|
Revision tags: nick-nhusb-base-20150406
|
#
1.16 |
|
20-Mar-2015 |
skrll |
Trailing whitespace
|
#
1.15 |
|
12-Mar-2015 |
skrll |
G/C armgic_last_priority
|
#
1.14 |
|
03-Mar-2015 |
jmcneill |
in armgic_establish_irq, make sure to write the new value to GICD_ICFGRn when setting irq type (IST_LEVEL/IST_EDGE)
|
#
1.13 |
|
02-Mar-2015 |
jmcneill |
sc_gic_lines is the total number of valid lines but pic_sources[] is sparse; when initializing mpsafe targets make sure to go all the way to the end (sc_pic.pic_maxsources) instead
|
Revision tags: nick-nhusb-base
|
#
1.12 |
|
29-Oct-2014 |
skrll |
branches: 1.12.2; Only target boot cpu for SPIs atm. Fix a couple of bugs in the now disabled code.
|
#
1.11 |
|
29-Oct-2014 |
skrll |
Sprinkle #include "opt_multiprocessor.h"
|
Revision tags: netbsd-7-base tls-earlyentropy-base tls-maxphys-base
|
#
1.10 |
|
19-May-2014 |
rmind |
branches: 1.10.2; Implement MI IPI interface with cross-call support.
|
Revision tags: yamt-pagecache-base9 rmind-smpnet-nbase rmind-smpnet-base
|
#
1.9 |
|
27-Apr-2014 |
matt |
When dealing with the PMR register, only use non-secure priority values.
|
#
1.8 |
|
13-Apr-2014 |
matt |
Move aprint to print sooner.
|
Revision tags: riastradh-xf86-video-intel-2-7-1-pre-2-21-15
|
#
1.7 |
|
28-Mar-2014 |
matt |
branches: 1.7.2; Various MP changes.
|
Revision tags: riastradh-drm2-base3
|
#
1.6 |
|
04-Mar-2014 |
matt |
Don't byte swap the data, assume the bus_space will do it.
|
#
1.5 |
|
17-Dec-2013 |
joerg |
branches: 1.5.2; armgic_priority_to_ipl is only used in #if 0'd code, so apply that as well.
|
Revision tags: riastradh-drm2-base2 riastradh-drm2-base1 riastradh-drm2-base
|
#
1.4 |
|
20-Jun-2013 |
matt |
branches: 1.4.2; Pass the offset from CBAR/PERIPHBASE in mpcore_attach_args. Modify the list of devices to include the offset(s) from PERIPHBASE.
|
Revision tags: agc-symver-base yamt-pagecache-base8 yamt-pagecache-base7 yamt-pagecache-base6
|
#
1.3 |
|
16-Sep-2012 |
rmind |
branches: 1.3.2; 1.3.4; Rename kcpuset_copybits() to kcpuset_export_u32() and thus be more specific about the interface.
|
#
1.2 |
|
14-Sep-2012 |
matt |
Verify the source isn't a dummy source.
|
#
1.1 |
|
01-Sep-2012 |
matt |
branches: 1.1.2; Add Cortex-A9 support including the ARM Generic Interrupt Controller and the A9 Global Timer / Watchdog.
|
#
1.32 |
|
07-Feb-2018 |
jmcneill |
PR# port-evbarm/49468: Cortex GIC assertion triggered on Allwinner A80 SoC
The priority level is changed by writing to GICC_PMR with interrupts disabled. However, interrupts are enabled/disabled downstream of the GICC at the CPU. When raising priority level, there is a window between the time that interrupts are disabled and the GICC_PMR register is written. If an interrupt occurs at a previously allowed priority before GICC_PMR is changed, the CPU will receive the signal when interrupts are re-enabled. At this time, GICC_PMR is now the new priority level, so reads of GICC_IAR will report a spurious IRQ.
Move the "old_ipl != IPL_HIGH" test until after we have confirmed that there is at least one pending IRQ.
|
Revision tags: tls-maxphys-base-20171202 nick-nhusb-base-20170825 perseant-stdc-iso10646-base
|
#
1.31 |
|
14-Jul-2017 |
skrll |
KNF
|
#
1.30 |
|
29-Jun-2017 |
jmcneill |
ARM Trusted Firmware reserves SGIs 8-15 for secure use. Even without ATF, U-Boot on some platforms may use SGIs in this range for the PSCI implementation.
Change ARMGIC_IPI_BASE to 0 from (16 - NIPI) and add a compile-time assert to ensure that we don't end up with a conflict.
|
#
1.29 |
|
28-Jun-2017 |
skrll |
Revert the KERNHIST for now it causes problems
|
#
1.28 |
|
22-Jun-2017 |
skrll |
If we see GICC_IAR_IRQ_SSPURIOUS we should also stop looking for irqs
|
#
1.27 |
|
22-Jun-2017 |
skrll |
Wrap long line
|
#
1.26 |
|
22-Jun-2017 |
skrll |
Print the GICC_IIDR when AB_DEBUG
|
#
1.25 |
|
22-Jun-2017 |
skrll |
Add 'armgichist' KERNHIST for (future) debugging.
|
#
1.24 |
|
18-Jun-2017 |
jmcneill |
Don't assume that CPU index = GIC CPU interface number. We can determine the current CPU interface number by reading from the read-only GICD_ITARGETSR0 through GICD_ITARGETSR7 registers.
This gets interrupts working on Exynos 5422, where the boot processor has GIC CPU interface #4.
|
#
1.23 |
|
05-Jun-2017 |
skrll |
Clean out some #if 0'ed or //'ed code
|
#
1.22 |
|
04-Jun-2017 |
skrll |
Initialise all the SGI/PPI priorities for all CPUs to mask the interrupts
|
Revision tags: netbsd-8-base
|
#
1.21 |
|
30-May-2017 |
jmcneill |
branches: 1.21.2; Use an FDT-based ARM_INTR_IMPL for Tegra.
|
Revision tags: prg-localcount2-base3 prg-localcount2-base2 prg-localcount2-base1 prg-localcount2-base pgoyette-localcount-20170426 bouyer-socketcan-base1 jdolecek-ncq-base pgoyette-localcount-20170320 nick-nhusb-base-20170204 bouyer-socketcan-base pgoyette-localcount-20170107 nick-nhusb-base-20161204 pgoyette-localcount-20161104 nick-nhusb-base-20161004 localcount-20160914 pgoyette-localcount-20160806 pgoyette-localcount-20160726 pgoyette-localcount-base nick-nhusb-base-20160907 nick-nhusb-base-20160529 nick-nhusb-base-20160422 nick-nhusb-base-20160319 nick-nhusb-base-20151226 nick-nhusb-base-20150921
|
#
1.20 |
|
29-Jul-2015 |
matt |
Adjust some of IPLs of various IPIs.
|
Revision tags: nick-nhusb-base-20150606
|
#
1.19 |
|
15-Apr-2015 |
matt |
Add separate IPI routines for IPI_AST and IPI_KPREEMPT.
|
#
1.18 |
|
11-Apr-2015 |
matt |
Add a pic_cpus to the softc which specifies which cpus the pic can send IPIs to. For GIC, initialize pic_cpus to kcpuset_running since it can handle all the cpus.
|
#
1.17 |
|
09-Apr-2015 |
matt |
All SGIs are MPSAFE so establish them as such.
|
Revision tags: nick-nhusb-base-20150406
|
#
1.16 |
|
20-Mar-2015 |
skrll |
Trailing whitespace
|
#
1.15 |
|
12-Mar-2015 |
skrll |
G/C armgic_last_priority
|
#
1.14 |
|
03-Mar-2015 |
jmcneill |
in armgic_establish_irq, make sure to write the new value to GICD_ICFGRn when setting irq type (IST_LEVEL/IST_EDGE)
|
#
1.13 |
|
02-Mar-2015 |
jmcneill |
sc_gic_lines is the total number of valid lines but pic_sources[] is sparse; when initializing mpsafe targets make sure to go all the way to the end (sc_pic.pic_maxsources) instead
|
Revision tags: nick-nhusb-base
|
#
1.12 |
|
29-Oct-2014 |
skrll |
branches: 1.12.2; Only target boot cpu for SPIs atm. Fix a couple of bugs in the now disabled code.
|
#
1.11 |
|
29-Oct-2014 |
skrll |
Sprinkle #include "opt_multiprocessor.h"
|
Revision tags: netbsd-7-base tls-earlyentropy-base tls-maxphys-base
|
#
1.10 |
|
19-May-2014 |
rmind |
branches: 1.10.2; Implement MI IPI interface with cross-call support.
|
Revision tags: yamt-pagecache-base9 rmind-smpnet-nbase rmind-smpnet-base
|
#
1.9 |
|
27-Apr-2014 |
matt |
When dealing with the PMR register, only use non-secure priority values.
|
#
1.8 |
|
13-Apr-2014 |
matt |
Move aprint to print sooner.
|
Revision tags: riastradh-xf86-video-intel-2-7-1-pre-2-21-15
|
#
1.7 |
|
28-Mar-2014 |
matt |
branches: 1.7.2; Various MP changes.
|
Revision tags: riastradh-drm2-base3
|
#
1.6 |
|
04-Mar-2014 |
matt |
Don't byte swap the data, assume the bus_space will do it.
|
#
1.5 |
|
17-Dec-2013 |
joerg |
branches: 1.5.2; armgic_priority_to_ipl is only used in #if 0'd code, so apply that as well.
|
Revision tags: riastradh-drm2-base2 riastradh-drm2-base1 riastradh-drm2-base
|
#
1.4 |
|
20-Jun-2013 |
matt |
branches: 1.4.2; Pass the offset from CBAR/PERIPHBASE in mpcore_attach_args. Modify the list of devices to include the offset(s) from PERIPHBASE.
|
Revision tags: agc-symver-base yamt-pagecache-base8 yamt-pagecache-base7 yamt-pagecache-base6
|
#
1.3 |
|
16-Sep-2012 |
rmind |
branches: 1.3.2; 1.3.4; Rename kcpuset_copybits() to kcpuset_export_u32() and thus be more specific about the interface.
|
#
1.2 |
|
14-Sep-2012 |
matt |
Verify the source isn't a dummy source.
|
#
1.1 |
|
01-Sep-2012 |
matt |
branches: 1.1.2; Add Cortex-A9 support including the ARM Generic Interrupt Controller and the A9 Global Timer / Watchdog.
|
#
1.31 |
|
14-Jul-2017 |
skrll |
KNF
|
#
1.30 |
|
29-Jun-2017 |
jmcneill |
ARM Trusted Firmware reserves SGIs 8-15 for secure use. Even without ATF, U-Boot on some platforms may use SGIs in this range for the PSCI implementation.
Change ARMGIC_IPI_BASE to 0 from (16 - NIPI) and add a compile-time assert to ensure that we don't end up with a conflict.
|
#
1.29 |
|
28-Jun-2017 |
skrll |
Revert the KERNHIST for now it causes problems
|
#
1.28 |
|
22-Jun-2017 |
skrll |
If we see GICC_IAR_IRQ_SSPURIOUS we should also stop looking for irqs
|
#
1.27 |
|
22-Jun-2017 |
skrll |
Wrap long line
|
#
1.26 |
|
22-Jun-2017 |
skrll |
Print the GICC_IIDR when AB_DEBUG
|
#
1.25 |
|
22-Jun-2017 |
skrll |
Add 'armgichist' KERNHIST for (future) debugging.
|
#
1.24 |
|
18-Jun-2017 |
jmcneill |
Don't assume that CPU index = GIC CPU interface number. We can determine the current CPU interface number by reading from the read-only GICD_ITARGETSR0 through GICD_ITARGETSR7 registers.
This gets interrupts working on Exynos 5422, where the boot processor has GIC CPU interface #4.
|
#
1.23 |
|
05-Jun-2017 |
skrll |
Clean out some #if 0'ed or //'ed code
|
#
1.22 |
|
04-Jun-2017 |
skrll |
Initialise all the SGI/PPI priorities for all CPUs to mask the interrupts
|
Revision tags: netbsd-8-base
|
#
1.21 |
|
30-May-2017 |
jmcneill |
branches: 1.21.2; Use an FDT-based ARM_INTR_IMPL for Tegra.
|
Revision tags: prg-localcount2-base3 prg-localcount2-base2 prg-localcount2-base1 prg-localcount2-base pgoyette-localcount-20170426 bouyer-socketcan-base1 jdolecek-ncq-base pgoyette-localcount-20170320 nick-nhusb-base-20170204 bouyer-socketcan-base pgoyette-localcount-20170107 nick-nhusb-base-20161204 pgoyette-localcount-20161104 nick-nhusb-base-20161004 localcount-20160914 pgoyette-localcount-20160806 pgoyette-localcount-20160726 pgoyette-localcount-base nick-nhusb-base-20160907 nick-nhusb-base-20160529 nick-nhusb-base-20160422 nick-nhusb-base-20160319 nick-nhusb-base-20151226 nick-nhusb-base-20150921
|
#
1.20 |
|
29-Jul-2015 |
matt |
Adjust some of IPLs of various IPIs.
|
Revision tags: nick-nhusb-base-20150606
|
#
1.19 |
|
15-Apr-2015 |
matt |
Add separate IPI routines for IPI_AST and IPI_KPREEMPT.
|
#
1.18 |
|
11-Apr-2015 |
matt |
Add a pic_cpus to the softc which specifies which cpus the pic can send IPIs to. For GIC, initialize pic_cpus to kcpuset_running since it can handle all the cpus.
|
#
1.17 |
|
09-Apr-2015 |
matt |
All SGIs are MPSAFE so establish them as such.
|
Revision tags: nick-nhusb-base-20150406
|
#
1.16 |
|
20-Mar-2015 |
skrll |
Trailing whitespace
|
#
1.15 |
|
12-Mar-2015 |
skrll |
G/C armgic_last_priority
|
#
1.14 |
|
03-Mar-2015 |
jmcneill |
in armgic_establish_irq, make sure to write the new value to GICD_ICFGRn when setting irq type (IST_LEVEL/IST_EDGE)
|
#
1.13 |
|
02-Mar-2015 |
jmcneill |
sc_gic_lines is the total number of valid lines but pic_sources[] is sparse; when initializing mpsafe targets make sure to go all the way to the end (sc_pic.pic_maxsources) instead
|
Revision tags: nick-nhusb-base
|
#
1.12 |
|
29-Oct-2014 |
skrll |
branches: 1.12.2; Only target boot cpu for SPIs atm. Fix a couple of bugs in the now disabled code.
|
#
1.11 |
|
29-Oct-2014 |
skrll |
Sprinkle #include "opt_multiprocessor.h"
|
Revision tags: netbsd-7-base tls-earlyentropy-base tls-maxphys-base
|
#
1.10 |
|
19-May-2014 |
rmind |
branches: 1.10.2; Implement MI IPI interface with cross-call support.
|
Revision tags: yamt-pagecache-base9 rmind-smpnet-nbase rmind-smpnet-base
|
#
1.9 |
|
27-Apr-2014 |
matt |
When dealing with the PMR register, only use non-secure priority values.
|
#
1.8 |
|
13-Apr-2014 |
matt |
Move aprint to print sooner.
|
Revision tags: riastradh-xf86-video-intel-2-7-1-pre-2-21-15
|
#
1.7 |
|
28-Mar-2014 |
matt |
branches: 1.7.2; Various MP changes.
|
Revision tags: riastradh-drm2-base3
|
#
1.6 |
|
04-Mar-2014 |
matt |
Don't byte swap the data, assume the bus_space will do it.
|
#
1.5 |
|
17-Dec-2013 |
joerg |
branches: 1.5.2; armgic_priority_to_ipl is only used in #if 0'd code, so apply that as well.
|
Revision tags: riastradh-drm2-base2 riastradh-drm2-base1 riastradh-drm2-base
|
#
1.4 |
|
20-Jun-2013 |
matt |
branches: 1.4.2; Pass the offset from CBAR/PERIPHBASE in mpcore_attach_args. Modify the list of devices to include the offset(s) from PERIPHBASE.
|
Revision tags: agc-symver-base yamt-pagecache-base8 yamt-pagecache-base7 yamt-pagecache-base6
|
#
1.3 |
|
16-Sep-2012 |
rmind |
branches: 1.3.2; 1.3.4; Rename kcpuset_copybits() to kcpuset_export_u32() and thus be more specific about the interface.
|
#
1.2 |
|
14-Sep-2012 |
matt |
Verify the source isn't a dummy source.
|
#
1.1 |
|
01-Sep-2012 |
matt |
branches: 1.1.2; Add Cortex-A9 support including the ARM Generic Interrupt Controller and the A9 Global Timer / Watchdog.
|
#
1.30 |
|
29-Jun-2017 |
jmcneill |
ARM Trusted Firmware reserves SGIs 8-15 for secure use. Even without ATF, U-Boot on some platforms may use SGIs in this range for the PSCI implementation.
Change ARMGIC_IPI_BASE to 0 from (16 - NIPI) and add a compile-time assert to ensure that we don't end up with a conflict.
|
#
1.29 |
|
28-Jun-2017 |
skrll |
Revert the KERNHIST for now it causes problems
|
#
1.28 |
|
22-Jun-2017 |
skrll |
If we see GICC_IAR_IRQ_SSPURIOUS we should also stop looking for irqs
|
#
1.27 |
|
22-Jun-2017 |
skrll |
Wrap long line
|
#
1.26 |
|
22-Jun-2017 |
skrll |
Print the GICC_IIDR when AB_DEBUG
|
#
1.25 |
|
22-Jun-2017 |
skrll |
Add 'armgichist' KERNHIST for (future) debugging.
|
#
1.24 |
|
18-Jun-2017 |
jmcneill |
Don't assume that CPU index = GIC CPU interface number. We can determine the current CPU interface number by reading from the read-only GICD_ITARGETSR0 through GICD_ITARGETSR7 registers.
This gets interrupts working on Exynos 5422, where the boot processor has GIC CPU interface #4.
|
#
1.23 |
|
05-Jun-2017 |
skrll |
Clean out some #if 0'ed or //'ed code
|
#
1.22 |
|
04-Jun-2017 |
skrll |
Initialise all the SGI/PPI priorities for all CPUs to mask the interrupts
|
Revision tags: netbsd-8-base
|
#
1.21 |
|
30-May-2017 |
jmcneill |
branches: 1.21.2; Use an FDT-based ARM_INTR_IMPL for Tegra.
|
Revision tags: prg-localcount2-base3 prg-localcount2-base2 prg-localcount2-base1 prg-localcount2-base pgoyette-localcount-20170426 bouyer-socketcan-base1 jdolecek-ncq-base pgoyette-localcount-20170320 nick-nhusb-base-20170204 bouyer-socketcan-base pgoyette-localcount-20170107 nick-nhusb-base-20161204 pgoyette-localcount-20161104 nick-nhusb-base-20161004 localcount-20160914 pgoyette-localcount-20160806 pgoyette-localcount-20160726 pgoyette-localcount-base nick-nhusb-base-20160907 nick-nhusb-base-20160529 nick-nhusb-base-20160422 nick-nhusb-base-20160319 nick-nhusb-base-20151226 nick-nhusb-base-20150921
|
#
1.20 |
|
29-Jul-2015 |
matt |
Adjust some of IPLs of various IPIs.
|
Revision tags: nick-nhusb-base-20150606
|
#
1.19 |
|
15-Apr-2015 |
matt |
Add separate IPI routines for IPI_AST and IPI_KPREEMPT.
|
#
1.18 |
|
11-Apr-2015 |
matt |
Add a pic_cpus to the softc which specifies which cpus the pic can send IPIs to. For GIC, initialize pic_cpus to kcpuset_running since it can handle all the cpus.
|
#
1.17 |
|
09-Apr-2015 |
matt |
All SGIs are MPSAFE so establish them as such.
|
Revision tags: nick-nhusb-base-20150406
|
#
1.16 |
|
20-Mar-2015 |
skrll |
Trailing whitespace
|
#
1.15 |
|
12-Mar-2015 |
skrll |
G/C armgic_last_priority
|
#
1.14 |
|
03-Mar-2015 |
jmcneill |
in armgic_establish_irq, make sure to write the new value to GICD_ICFGRn when setting irq type (IST_LEVEL/IST_EDGE)
|
#
1.13 |
|
02-Mar-2015 |
jmcneill |
sc_gic_lines is the total number of valid lines but pic_sources[] is sparse; when initializing mpsafe targets make sure to go all the way to the end (sc_pic.pic_maxsources) instead
|
Revision tags: nick-nhusb-base
|
#
1.12 |
|
29-Oct-2014 |
skrll |
branches: 1.12.2; Only target boot cpu for SPIs atm. Fix a couple of bugs in the now disabled code.
|
#
1.11 |
|
29-Oct-2014 |
skrll |
Sprinkle #include "opt_multiprocessor.h"
|
Revision tags: netbsd-7-base tls-earlyentropy-base tls-maxphys-base
|
#
1.10 |
|
19-May-2014 |
rmind |
branches: 1.10.2; Implement MI IPI interface with cross-call support.
|
Revision tags: yamt-pagecache-base9 rmind-smpnet-nbase rmind-smpnet-base
|
#
1.9 |
|
27-Apr-2014 |
matt |
When dealing with the PMR register, only use non-secure priority values.
|
#
1.8 |
|
13-Apr-2014 |
matt |
Move aprint to print sooner.
|
Revision tags: riastradh-xf86-video-intel-2-7-1-pre-2-21-15
|
#
1.7 |
|
28-Mar-2014 |
matt |
branches: 1.7.2; Various MP changes.
|
Revision tags: riastradh-drm2-base3
|
#
1.6 |
|
04-Mar-2014 |
matt |
Don't byte swap the data, assume the bus_space will do it.
|
#
1.5 |
|
17-Dec-2013 |
joerg |
branches: 1.5.2; armgic_priority_to_ipl is only used in #if 0'd code, so apply that as well.
|
Revision tags: riastradh-drm2-base2 riastradh-drm2-base1 riastradh-drm2-base
|
#
1.4 |
|
20-Jun-2013 |
matt |
branches: 1.4.2; Pass the offset from CBAR/PERIPHBASE in mpcore_attach_args. Modify the list of devices to include the offset(s) from PERIPHBASE.
|
Revision tags: agc-symver-base yamt-pagecache-base8 yamt-pagecache-base7 yamt-pagecache-base6
|
#
1.3 |
|
16-Sep-2012 |
rmind |
branches: 1.3.2; 1.3.4; Rename kcpuset_copybits() to kcpuset_export_u32() and thus be more specific about the interface.
|
#
1.2 |
|
14-Sep-2012 |
matt |
Verify the source isn't a dummy source.
|
#
1.1 |
|
01-Sep-2012 |
matt |
branches: 1.1.2; Add Cortex-A9 support including the ARM Generic Interrupt Controller and the A9 Global Timer / Watchdog.
|
#
1.28 |
|
22-Jun-2017 |
skrll |
If we see GICC_IAR_IRQ_SSPURIOUS we should also stop looking for irqs
|
#
1.27 |
|
22-Jun-2017 |
skrll |
Wrap long line
|
#
1.26 |
|
22-Jun-2017 |
skrll |
Print the GICC_IIDR when AB_DEBUG
|
#
1.25 |
|
22-Jun-2017 |
skrll |
Add 'armgichist' KERNHIST for (future) debugging.
|
#
1.24 |
|
18-Jun-2017 |
jmcneill |
Don't assume that CPU index = GIC CPU interface number. We can determine the current CPU interface number by reading from the read-only GICD_ITARGETSR0 through GICD_ITARGETSR7 registers.
This gets interrupts working on Exynos 5422, where the boot processor has GIC CPU interface #4.
|
#
1.23 |
|
05-Jun-2017 |
skrll |
Clean out some #if 0'ed or //'ed code
|
#
1.22 |
|
04-Jun-2017 |
skrll |
Initialise all the SGI/PPI priorities for all CPUs to mask the interrupts
|
Revision tags: netbsd-8-base
|
#
1.21 |
|
30-May-2017 |
jmcneill |
branches: 1.21.2; Use an FDT-based ARM_INTR_IMPL for Tegra.
|
Revision tags: prg-localcount2-base3 prg-localcount2-base2 prg-localcount2-base1 prg-localcount2-base pgoyette-localcount-20170426 bouyer-socketcan-base1 jdolecek-ncq-base pgoyette-localcount-20170320 nick-nhusb-base-20170204 bouyer-socketcan-base pgoyette-localcount-20170107 nick-nhusb-base-20161204 pgoyette-localcount-20161104 nick-nhusb-base-20161004 localcount-20160914 pgoyette-localcount-20160806 pgoyette-localcount-20160726 pgoyette-localcount-base nick-nhusb-base-20160907 nick-nhusb-base-20160529 nick-nhusb-base-20160422 nick-nhusb-base-20160319 nick-nhusb-base-20151226 nick-nhusb-base-20150921
|
#
1.20 |
|
29-Jul-2015 |
matt |
Adjust some of IPLs of various IPIs.
|
Revision tags: nick-nhusb-base-20150606
|
#
1.19 |
|
15-Apr-2015 |
matt |
Add separate IPI routines for IPI_AST and IPI_KPREEMPT.
|
#
1.18 |
|
11-Apr-2015 |
matt |
Add a pic_cpus to the softc which specifies which cpus the pic can send IPIs to. For GIC, initialize pic_cpus to kcpuset_running since it can handle all the cpus.
|
#
1.17 |
|
09-Apr-2015 |
matt |
All SGIs are MPSAFE so establish them as such.
|
Revision tags: nick-nhusb-base-20150406
|
#
1.16 |
|
20-Mar-2015 |
skrll |
Trailing whitespace
|
#
1.15 |
|
12-Mar-2015 |
skrll |
G/C armgic_last_priority
|
#
1.14 |
|
03-Mar-2015 |
jmcneill |
in armgic_establish_irq, make sure to write the new value to GICD_ICFGRn when setting irq type (IST_LEVEL/IST_EDGE)
|
#
1.13 |
|
02-Mar-2015 |
jmcneill |
sc_gic_lines is the total number of valid lines but pic_sources[] is sparse; when initializing mpsafe targets make sure to go all the way to the end (sc_pic.pic_maxsources) instead
|
Revision tags: nick-nhusb-base
|
#
1.12 |
|
29-Oct-2014 |
skrll |
branches: 1.12.2; Only target boot cpu for SPIs atm. Fix a couple of bugs in the now disabled code.
|
#
1.11 |
|
29-Oct-2014 |
skrll |
Sprinkle #include "opt_multiprocessor.h"
|
Revision tags: netbsd-7-base tls-earlyentropy-base tls-maxphys-base
|
#
1.10 |
|
19-May-2014 |
rmind |
branches: 1.10.2; Implement MI IPI interface with cross-call support.
|
Revision tags: yamt-pagecache-base9 rmind-smpnet-nbase rmind-smpnet-base
|
#
1.9 |
|
27-Apr-2014 |
matt |
When dealing with the PMR register, only use non-secure priority values.
|
#
1.8 |
|
13-Apr-2014 |
matt |
Move aprint to print sooner.
|
Revision tags: riastradh-xf86-video-intel-2-7-1-pre-2-21-15
|
#
1.7 |
|
28-Mar-2014 |
matt |
branches: 1.7.2; Various MP changes.
|
Revision tags: riastradh-drm2-base3
|
#
1.6 |
|
04-Mar-2014 |
matt |
Don't byte swap the data, assume the bus_space will do it.
|
#
1.5 |
|
17-Dec-2013 |
joerg |
branches: 1.5.2; armgic_priority_to_ipl is only used in #if 0'd code, so apply that as well.
|
Revision tags: riastradh-drm2-base2 riastradh-drm2-base1 riastradh-drm2-base
|
#
1.4 |
|
20-Jun-2013 |
matt |
branches: 1.4.2; Pass the offset from CBAR/PERIPHBASE in mpcore_attach_args. Modify the list of devices to include the offset(s) from PERIPHBASE.
|
Revision tags: agc-symver-base yamt-pagecache-base8 yamt-pagecache-base7 yamt-pagecache-base6
|
#
1.3 |
|
16-Sep-2012 |
rmind |
branches: 1.3.2; 1.3.4; Rename kcpuset_copybits() to kcpuset_export_u32() and thus be more specific about the interface.
|
#
1.2 |
|
14-Sep-2012 |
matt |
Verify the source isn't a dummy source.
|
#
1.1 |
|
01-Sep-2012 |
matt |
branches: 1.1.2; Add Cortex-A9 support including the ARM Generic Interrupt Controller and the A9 Global Timer / Watchdog.
|
#
1.24 |
|
18-Jun-2017 |
jmcneill |
Don't assume that CPU index = GIC CPU interface number. We can determine the current CPU interface number by reading from the read-only GICD_ITARGETSR0 through GICD_ITARGETSR7 registers.
This gets interrupts working on Exynos 5422, where the boot processor has GIC CPU interface #4.
|
#
1.23 |
|
05-Jun-2017 |
skrll |
Clean out some #if 0'ed or //'ed code
|
#
1.22 |
|
04-Jun-2017 |
skrll |
Initialise all the SGI/PPI priorities for all CPUs to mask the interrupts
|
Revision tags: netbsd-8-base
|
#
1.21 |
|
30-May-2017 |
jmcneill |
branches: 1.21.2; Use an FDT-based ARM_INTR_IMPL for Tegra.
|
Revision tags: prg-localcount2-base3 prg-localcount2-base2 prg-localcount2-base1 prg-localcount2-base pgoyette-localcount-20170426 bouyer-socketcan-base1 jdolecek-ncq-base pgoyette-localcount-20170320 nick-nhusb-base-20170204 bouyer-socketcan-base pgoyette-localcount-20170107 nick-nhusb-base-20161204 pgoyette-localcount-20161104 nick-nhusb-base-20161004 localcount-20160914 pgoyette-localcount-20160806 pgoyette-localcount-20160726 pgoyette-localcount-base nick-nhusb-base-20160907 nick-nhusb-base-20160529 nick-nhusb-base-20160422 nick-nhusb-base-20160319 nick-nhusb-base-20151226 nick-nhusb-base-20150921
|
#
1.20 |
|
29-Jul-2015 |
matt |
Adjust some of IPLs of various IPIs.
|
Revision tags: nick-nhusb-base-20150606
|
#
1.19 |
|
15-Apr-2015 |
matt |
Add separate IPI routines for IPI_AST and IPI_KPREEMPT.
|
#
1.18 |
|
11-Apr-2015 |
matt |
Add a pic_cpus to the softc which specifies which cpus the pic can send IPIs to. For GIC, initialize pic_cpus to kcpuset_running since it can handle all the cpus.
|
#
1.17 |
|
09-Apr-2015 |
matt |
All SGIs are MPSAFE so establish them as such.
|
Revision tags: nick-nhusb-base-20150406
|
#
1.16 |
|
20-Mar-2015 |
skrll |
Trailing whitespace
|
#
1.15 |
|
12-Mar-2015 |
skrll |
G/C armgic_last_priority
|
#
1.14 |
|
03-Mar-2015 |
jmcneill |
in armgic_establish_irq, make sure to write the new value to GICD_ICFGRn when setting irq type (IST_LEVEL/IST_EDGE)
|
#
1.13 |
|
02-Mar-2015 |
jmcneill |
sc_gic_lines is the total number of valid lines but pic_sources[] is sparse; when initializing mpsafe targets make sure to go all the way to the end (sc_pic.pic_maxsources) instead
|
Revision tags: nick-nhusb-base
|
#
1.12 |
|
29-Oct-2014 |
skrll |
branches: 1.12.2; Only target boot cpu for SPIs atm. Fix a couple of bugs in the now disabled code.
|
#
1.11 |
|
29-Oct-2014 |
skrll |
Sprinkle #include "opt_multiprocessor.h"
|
Revision tags: netbsd-7-base tls-earlyentropy-base tls-maxphys-base
|
#
1.10 |
|
19-May-2014 |
rmind |
branches: 1.10.2; Implement MI IPI interface with cross-call support.
|
Revision tags: yamt-pagecache-base9 rmind-smpnet-nbase rmind-smpnet-base
|
#
1.9 |
|
27-Apr-2014 |
matt |
When dealing with the PMR register, only use non-secure priority values.
|
#
1.8 |
|
13-Apr-2014 |
matt |
Move aprint to print sooner.
|
Revision tags: riastradh-xf86-video-intel-2-7-1-pre-2-21-15
|
#
1.7 |
|
28-Mar-2014 |
matt |
branches: 1.7.2; Various MP changes.
|
Revision tags: riastradh-drm2-base3
|
#
1.6 |
|
04-Mar-2014 |
matt |
Don't byte swap the data, assume the bus_space will do it.
|
#
1.5 |
|
17-Dec-2013 |
joerg |
branches: 1.5.2; armgic_priority_to_ipl is only used in #if 0'd code, so apply that as well.
|
Revision tags: riastradh-drm2-base2 riastradh-drm2-base1 riastradh-drm2-base
|
#
1.4 |
|
20-Jun-2013 |
matt |
branches: 1.4.2; Pass the offset from CBAR/PERIPHBASE in mpcore_attach_args. Modify the list of devices to include the offset(s) from PERIPHBASE.
|
Revision tags: agc-symver-base yamt-pagecache-base8 yamt-pagecache-base7 yamt-pagecache-base6
|
#
1.3 |
|
16-Sep-2012 |
rmind |
branches: 1.3.2; 1.3.4; Rename kcpuset_copybits() to kcpuset_export_u32() and thus be more specific about the interface.
|
#
1.2 |
|
14-Sep-2012 |
matt |
Verify the source isn't a dummy source.
|
#
1.1 |
|
01-Sep-2012 |
matt |
branches: 1.1.2; Add Cortex-A9 support including the ARM Generic Interrupt Controller and the A9 Global Timer / Watchdog.
|
#
1.23 |
|
05-Jun-2017 |
skrll |
Clean out some #if 0'ed or //'ed code
|
#
1.22 |
|
04-Jun-2017 |
skrll |
Initialise all the SGI/PPI priorities for all CPUs to mask the interrupts
|
Revision tags: netbsd-8-base
|
#
1.21 |
|
30-May-2017 |
jmcneill |
branches: 1.21.2; Use an FDT-based ARM_INTR_IMPL for Tegra.
|
Revision tags: prg-localcount2-base3 prg-localcount2-base2 prg-localcount2-base1 prg-localcount2-base pgoyette-localcount-20170426 bouyer-socketcan-base1 jdolecek-ncq-base pgoyette-localcount-20170320 nick-nhusb-base-20170204 bouyer-socketcan-base pgoyette-localcount-20170107 nick-nhusb-base-20161204 pgoyette-localcount-20161104 nick-nhusb-base-20161004 localcount-20160914 pgoyette-localcount-20160806 pgoyette-localcount-20160726 pgoyette-localcount-base nick-nhusb-base-20160907 nick-nhusb-base-20160529 nick-nhusb-base-20160422 nick-nhusb-base-20160319 nick-nhusb-base-20151226 nick-nhusb-base-20150921
|
#
1.20 |
|
29-Jul-2015 |
matt |
Adjust some of IPLs of various IPIs.
|
Revision tags: nick-nhusb-base-20150606
|
#
1.19 |
|
15-Apr-2015 |
matt |
Add separate IPI routines for IPI_AST and IPI_KPREEMPT.
|
#
1.18 |
|
11-Apr-2015 |
matt |
Add a pic_cpus to the softc which specifies which cpus the pic can send IPIs to. For GIC, initialize pic_cpus to kcpuset_running since it can handle all the cpus.
|
#
1.17 |
|
09-Apr-2015 |
matt |
All SGIs are MPSAFE so establish them as such.
|
Revision tags: nick-nhusb-base-20150406
|
#
1.16 |
|
20-Mar-2015 |
skrll |
Trailing whitespace
|
#
1.15 |
|
12-Mar-2015 |
skrll |
G/C armgic_last_priority
|
#
1.14 |
|
03-Mar-2015 |
jmcneill |
in armgic_establish_irq, make sure to write the new value to GICD_ICFGRn when setting irq type (IST_LEVEL/IST_EDGE)
|
#
1.13 |
|
02-Mar-2015 |
jmcneill |
sc_gic_lines is the total number of valid lines but pic_sources[] is sparse; when initializing mpsafe targets make sure to go all the way to the end (sc_pic.pic_maxsources) instead
|
Revision tags: nick-nhusb-base
|
#
1.12 |
|
29-Oct-2014 |
skrll |
branches: 1.12.2; Only target boot cpu for SPIs atm. Fix a couple of bugs in the now disabled code.
|
#
1.11 |
|
29-Oct-2014 |
skrll |
Sprinkle #include "opt_multiprocessor.h"
|
Revision tags: netbsd-7-base tls-earlyentropy-base tls-maxphys-base
|
#
1.10 |
|
19-May-2014 |
rmind |
branches: 1.10.2; Implement MI IPI interface with cross-call support.
|
Revision tags: yamt-pagecache-base9 rmind-smpnet-nbase rmind-smpnet-base
|
#
1.9 |
|
27-Apr-2014 |
matt |
When dealing with the PMR register, only use non-secure priority values.
|
#
1.8 |
|
13-Apr-2014 |
matt |
Move aprint to print sooner.
|
Revision tags: riastradh-xf86-video-intel-2-7-1-pre-2-21-15
|
#
1.7 |
|
28-Mar-2014 |
matt |
branches: 1.7.2; Various MP changes.
|
Revision tags: riastradh-drm2-base3
|
#
1.6 |
|
04-Mar-2014 |
matt |
Don't byte swap the data, assume the bus_space will do it.
|
#
1.5 |
|
17-Dec-2013 |
joerg |
branches: 1.5.2; armgic_priority_to_ipl is only used in #if 0'd code, so apply that as well.
|
Revision tags: riastradh-drm2-base2 riastradh-drm2-base1 riastradh-drm2-base
|
#
1.4 |
|
20-Jun-2013 |
matt |
branches: 1.4.2; Pass the offset from CBAR/PERIPHBASE in mpcore_attach_args. Modify the list of devices to include the offset(s) from PERIPHBASE.
|
Revision tags: agc-symver-base yamt-pagecache-base8 yamt-pagecache-base7 yamt-pagecache-base6
|
#
1.3 |
|
16-Sep-2012 |
rmind |
branches: 1.3.2; 1.3.4; Rename kcpuset_copybits() to kcpuset_export_u32() and thus be more specific about the interface.
|
#
1.2 |
|
14-Sep-2012 |
matt |
Verify the source isn't a dummy source.
|
#
1.1 |
|
01-Sep-2012 |
matt |
branches: 1.1.2; Add Cortex-A9 support including the ARM Generic Interrupt Controller and the A9 Global Timer / Watchdog.
|
#
1.22 |
|
04-Jun-2017 |
skrll |
Initialise all the SGI/PPI priorities for all CPUs to mask the interrupts
|
Revision tags: netbsd-8-base
|
#
1.21 |
|
30-May-2017 |
jmcneill |
branches: 1.21.2; Use an FDT-based ARM_INTR_IMPL for Tegra.
|
Revision tags: prg-localcount2-base3 prg-localcount2-base2 prg-localcount2-base1 prg-localcount2-base pgoyette-localcount-20170426 bouyer-socketcan-base1 jdolecek-ncq-base pgoyette-localcount-20170320 nick-nhusb-base-20170204 bouyer-socketcan-base pgoyette-localcount-20170107 nick-nhusb-base-20161204 pgoyette-localcount-20161104 nick-nhusb-base-20161004 localcount-20160914 pgoyette-localcount-20160806 pgoyette-localcount-20160726 pgoyette-localcount-base nick-nhusb-base-20160907 nick-nhusb-base-20160529 nick-nhusb-base-20160422 nick-nhusb-base-20160319 nick-nhusb-base-20151226 nick-nhusb-base-20150921
|
#
1.20 |
|
29-Jul-2015 |
matt |
Adjust some of IPLs of various IPIs.
|
Revision tags: nick-nhusb-base-20150606
|
#
1.19 |
|
15-Apr-2015 |
matt |
Add separate IPI routines for IPI_AST and IPI_KPREEMPT.
|
#
1.18 |
|
11-Apr-2015 |
matt |
Add a pic_cpus to the softc which specifies which cpus the pic can send IPIs to. For GIC, initialize pic_cpus to kcpuset_running since it can handle all the cpus.
|
#
1.17 |
|
09-Apr-2015 |
matt |
All SGIs are MPSAFE so establish them as such.
|
Revision tags: nick-nhusb-base-20150406
|
#
1.16 |
|
20-Mar-2015 |
skrll |
Trailing whitespace
|
#
1.15 |
|
12-Mar-2015 |
skrll |
G/C armgic_last_priority
|
#
1.14 |
|
03-Mar-2015 |
jmcneill |
in armgic_establish_irq, make sure to write the new value to GICD_ICFGRn when setting irq type (IST_LEVEL/IST_EDGE)
|
#
1.13 |
|
02-Mar-2015 |
jmcneill |
sc_gic_lines is the total number of valid lines but pic_sources[] is sparse; when initializing mpsafe targets make sure to go all the way to the end (sc_pic.pic_maxsources) instead
|
Revision tags: nick-nhusb-base
|
#
1.12 |
|
29-Oct-2014 |
skrll |
branches: 1.12.2; Only target boot cpu for SPIs atm. Fix a couple of bugs in the now disabled code.
|
#
1.11 |
|
29-Oct-2014 |
skrll |
Sprinkle #include "opt_multiprocessor.h"
|
Revision tags: netbsd-7-base tls-earlyentropy-base tls-maxphys-base
|
#
1.10 |
|
19-May-2014 |
rmind |
branches: 1.10.2; Implement MI IPI interface with cross-call support.
|
Revision tags: yamt-pagecache-base9 rmind-smpnet-nbase rmind-smpnet-base
|
#
1.9 |
|
27-Apr-2014 |
matt |
When dealing with the PMR register, only use non-secure priority values.
|
#
1.8 |
|
13-Apr-2014 |
matt |
Move aprint to print sooner.
|
Revision tags: riastradh-xf86-video-intel-2-7-1-pre-2-21-15
|
#
1.7 |
|
28-Mar-2014 |
matt |
branches: 1.7.2; Various MP changes.
|
Revision tags: riastradh-drm2-base3
|
#
1.6 |
|
04-Mar-2014 |
matt |
Don't byte swap the data, assume the bus_space will do it.
|
#
1.5 |
|
17-Dec-2013 |
joerg |
branches: 1.5.2; armgic_priority_to_ipl is only used in #if 0'd code, so apply that as well.
|
Revision tags: riastradh-drm2-base2 riastradh-drm2-base1 riastradh-drm2-base
|
#
1.4 |
|
20-Jun-2013 |
matt |
branches: 1.4.2; Pass the offset from CBAR/PERIPHBASE in mpcore_attach_args. Modify the list of devices to include the offset(s) from PERIPHBASE.
|
Revision tags: agc-symver-base yamt-pagecache-base8 yamt-pagecache-base7 yamt-pagecache-base6
|
#
1.3 |
|
16-Sep-2012 |
rmind |
branches: 1.3.2; 1.3.4; Rename kcpuset_copybits() to kcpuset_export_u32() and thus be more specific about the interface.
|
#
1.2 |
|
14-Sep-2012 |
matt |
Verify the source isn't a dummy source.
|
#
1.1 |
|
01-Sep-2012 |
matt |
branches: 1.1.2; Add Cortex-A9 support including the ARM Generic Interrupt Controller and the A9 Global Timer / Watchdog.
|
#
1.21 |
|
30-May-2017 |
jmcneill |
Use an FDT-based ARM_INTR_IMPL for Tegra.
|
Revision tags: prg-localcount2-base3 prg-localcount2-base2 prg-localcount2-base1 prg-localcount2-base pgoyette-localcount-20170426 bouyer-socketcan-base1 jdolecek-ncq-base pgoyette-localcount-20170320 nick-nhusb-base-20170204 bouyer-socketcan-base pgoyette-localcount-20170107 nick-nhusb-base-20161204 pgoyette-localcount-20161104 nick-nhusb-base-20161004 localcount-20160914 pgoyette-localcount-20160806 pgoyette-localcount-20160726 pgoyette-localcount-base nick-nhusb-base-20160907 nick-nhusb-base-20160529 nick-nhusb-base-20160422 nick-nhusb-base-20160319 nick-nhusb-base-20151226 nick-nhusb-base-20150921
|
#
1.20 |
|
29-Jul-2015 |
matt |
Adjust some of IPLs of various IPIs.
|
Revision tags: nick-nhusb-base-20150606
|
#
1.19 |
|
15-Apr-2015 |
matt |
Add separate IPI routines for IPI_AST and IPI_KPREEMPT.
|
#
1.18 |
|
11-Apr-2015 |
matt |
Add a pic_cpus to the softc which specifies which cpus the pic can send IPIs to. For GIC, initialize pic_cpus to kcpuset_running since it can handle all the cpus.
|
#
1.17 |
|
09-Apr-2015 |
matt |
All SGIs are MPSAFE so establish them as such.
|
Revision tags: nick-nhusb-base-20150406
|
#
1.16 |
|
20-Mar-2015 |
skrll |
Trailing whitespace
|
#
1.15 |
|
12-Mar-2015 |
skrll |
G/C armgic_last_priority
|
#
1.14 |
|
03-Mar-2015 |
jmcneill |
in armgic_establish_irq, make sure to write the new value to GICD_ICFGRn when setting irq type (IST_LEVEL/IST_EDGE)
|
#
1.13 |
|
02-Mar-2015 |
jmcneill |
sc_gic_lines is the total number of valid lines but pic_sources[] is sparse; when initializing mpsafe targets make sure to go all the way to the end (sc_pic.pic_maxsources) instead
|
Revision tags: nick-nhusb-base
|
#
1.12 |
|
29-Oct-2014 |
skrll |
branches: 1.12.2; Only target boot cpu for SPIs atm. Fix a couple of bugs in the now disabled code.
|
#
1.11 |
|
29-Oct-2014 |
skrll |
Sprinkle #include "opt_multiprocessor.h"
|
Revision tags: netbsd-7-base tls-earlyentropy-base tls-maxphys-base
|
#
1.10 |
|
19-May-2014 |
rmind |
branches: 1.10.2; Implement MI IPI interface with cross-call support.
|
Revision tags: yamt-pagecache-base9 rmind-smpnet-nbase rmind-smpnet-base
|
#
1.9 |
|
27-Apr-2014 |
matt |
When dealing with the PMR register, only use non-secure priority values.
|
#
1.8 |
|
13-Apr-2014 |
matt |
Move aprint to print sooner.
|
Revision tags: riastradh-xf86-video-intel-2-7-1-pre-2-21-15
|
#
1.7 |
|
28-Mar-2014 |
matt |
branches: 1.7.2; Various MP changes.
|
Revision tags: riastradh-drm2-base3
|
#
1.6 |
|
04-Mar-2014 |
matt |
Don't byte swap the data, assume the bus_space will do it.
|
#
1.5 |
|
17-Dec-2013 |
joerg |
branches: 1.5.2; armgic_priority_to_ipl is only used in #if 0'd code, so apply that as well.
|
Revision tags: riastradh-drm2-base2 riastradh-drm2-base1 riastradh-drm2-base
|
#
1.4 |
|
20-Jun-2013 |
matt |
branches: 1.4.2; Pass the offset from CBAR/PERIPHBASE in mpcore_attach_args. Modify the list of devices to include the offset(s) from PERIPHBASE.
|
Revision tags: agc-symver-base yamt-pagecache-base8 yamt-pagecache-base7 yamt-pagecache-base6
|
#
1.3 |
|
16-Sep-2012 |
rmind |
branches: 1.3.2; 1.3.4; Rename kcpuset_copybits() to kcpuset_export_u32() and thus be more specific about the interface.
|
#
1.2 |
|
14-Sep-2012 |
matt |
Verify the source isn't a dummy source.
|
#
1.1 |
|
01-Sep-2012 |
matt |
branches: 1.1.2; Add Cortex-A9 support including the ARM Generic Interrupt Controller and the A9 Global Timer / Watchdog.
|