History log of /netbsd-current/sys/arch/powerpc/booke/e500_intr.c
Revision (<<< Hide revision tags) (Show revision tags >>>) Date Author Comments
# 1.47 22-Jul-2022 thorpej

Stop using deprecated proplib functions.


# 1.46 16-Mar-2022 andvar

s/paniced/panicked/ and s/borken/broken/ in comments.


# 1.45 11-Sep-2021 andvar

Add missing double p and d for stopped and overriden accordingly.
Fix few more typos along the way, mainly in copy-pasted comments.


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.44 06-Jul-2020 rin

Drop unused opt_ddb.h.


# 1.43 06-Jul-2020 rin

Style and cosmetic changes. No binary changes intended.


# 1.42 06-Jul-2020 rin

XXX
Skip KASSERT which fires when !__HAVE_FAST_SOFTINTS. Just for debug.


# 1.41 04-Jul-2020 rin

Do not panic when splraise to IPL_NONE, which is required for
subr_cprng.c rev 1.36 and above:

http://cvsweb.netbsd.org/bsdweb.cgi/src/sys/kern/subr_cprng.c#rev1.36


Revision tags: bouyer-xenpvh-base2 phil-wifi-20200421 bouyer-xenpvh-base1 phil-wifi-20200411 bouyer-xenpvh-base is-mlppp-base phil-wifi-20200406 ad-namecache-base3 ad-namecache-base2 ad-namecache-base1 ad-namecache-base
# 1.40 01-Dec-2019 ad

Fix false sharing problems with cpu_info. Identified with tprof(8).
This was a very nice win in my tests on a 48 CPU box.

- Reorganise cpu_data slightly according to usage.
- Put cpu_onproc into struct cpu_info alongside ci_curlwp (now is ci_onproc).
- On x86, put some items in their own cache lines according to usage, like
the IPI bitmask and ci_want_resched.


# 1.39 23-Nov-2019 ad

cpu_need_resched():

- Remove all code that should be MI, leaving the bare minimum under arch/.
- Make the required actions very explicit.
- Pass in LWP pointer for convenience.
- When a trap is required on another CPU, have the IPI set it locally.
- Expunge cpu_did_resched().


Revision tags: netbsd-9-2-RELEASE netbsd-9-1-RELEASE netbsd-9-0-RELEASE netbsd-9-0-RC2 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 pgoyette-compat-1020 pgoyette-compat-0930
# 1.38 16-Sep-2018 skrll

interrupt has two 'r's

fix another typo while I'm here (flsah)


Revision tags: pgoyette-compat-0906 pgoyette-compat-0728 phil-wifi-base pgoyette-compat-0625 pgoyette-compat-0521 pgoyette-compat-0502 pgoyette-compat-0422 pgoyette-compat-0415 pgoyette-compat-0407 pgoyette-compat-0330 pgoyette-compat-0322 pgoyette-compat-0315 pgoyette-compat-base
# 1.37 26-Jan-2018 flxd

branches: 1.37.2; 1.37.4;
Another try fixing printf format using the ultimate uintmax_t idiom.


# 1.36 26-Jan-2018 christos

fix printf format.


Revision tags: netbsd-8-2-RELEASE netbsd-8-1-RELEASE netbsd-8-1-RC1 netbsd-8-0-RELEASE netbsd-8-0-RC2 netbsd-8-0-RC1 tls-maxphys-base-20171202 matt-nb8-mediatek-base nick-nhusb-base-20170825 perseant-stdc-iso10646-base netbsd-8-base
# 1.35 01-Jun-2017 chs

remove checks for failure after memory allocation calls that cannot fail:

kmem_alloc() with KM_SLEEP
kmem_zalloc() with KM_SLEEP
percpu_alloc()
pserialize_create()
psref_class_create()

all of these paths include an assertion that the allocation has not failed,
so callers should not assert that again.


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
# 1.34 19-Oct-2016 nonaka

Added MSI/MSI-X and interrupt_distribute(9) support for powerpc.


Revision tags: 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 nick-nhusb-base-20150606
# 1.33 14-Apr-2015 jmcneill

branches: 1.33.2;
__HAVE_PREEEMPTION -> __HAVE_PREEMPTION


Revision tags: nick-nhusb-base-20150406
# 1.32 23-Jan-2015 nonaka

Initialize timer DR.


# 1.31 23-Jan-2015 nonaka

ddb MP support


# 1.30 23-Jan-2015 nonaka

Allow to share IPI interrupt.


# 1.29 05-Jan-2015 nonaka

Initialize lock objects.


# 1.28 27-Dec-2014 nonaka

Preliminary support for P1023.


# 1.27 20-Dec-2014 nonaka

Revert previous commit.


# 1.26 19-Dec-2014 nonaka

Pass ci->ci_cpuid as irq of IST_IPI.
Avoid "panic: e500_intr_cpu_hatch: failed to establish ipi interrupt!" on cpu1.


# 1.25 19-Dec-2014 nonaka

Added missing mutex_exit() at error path.


Revision tags: netbsd-7-2-RELEASE netbsd-7-1-2-RELEASE netbsd-7-1-1-RELEASE netbsd-7-1-RELEASE netbsd-7-1-RC2 netbsd-7-nhusb-base-20170116 netbsd-7-1-RC1 netbsd-7-0-2-RELEASE netbsd-7-nhusb-base netbsd-7-0-1-RELEASE netbsd-7-0-RELEASE netbsd-7-0-RC3 netbsd-7-0-RC2 netbsd-7-0-RC1 nick-nhusb-base netbsd-7-base tls-earlyentropy-base tls-maxphys-base
# 1.24 19-May-2014 rmind

branches: 1.24.4;
Implement MI IPI interface with cross-call support.


Revision tags: yamt-pagecache-base9 riastradh-xf86-video-intel-2-7-1-pre-2-21-15 rmind-smpnet-nbase rmind-smpnet-base
# 1.23 29-Mar-2014 christos

branches: 1.23.2;
make pci_intr_string and eisa_intr_string take a buffer and a length
instead of relying in local static storage.


Revision tags: riastradh-drm2-base3 riastradh-drm2-base2 riastradh-drm2-base1 riastradh-drm2-base agc-symver-base yamt-pagecache-base8 yamt-pagecache-base7 yamt-pagecache-base6
# 1.22 29-Oct-2012 matt

branches: 1.22.2;
Change a KASSERT to a KASSERTMSG.


# 1.21 01-Aug-2012 matt

branches: 1.21.2;
Add a machine splhist command to give (a incomplete) spl history.
(only the most recent are going to be accurate).

splraise(6) from 0 at 549214603
splraise(7) from 6 at 549214643 (+40)
splx(6) from 7 at 549214691 (+48)
splx(0) from 6 at 549214730 (+39)


# 1.20 18-Jul-2012 matt

Add two missing interrupt sources for P1025.


# 1.19 15-Jul-2012 matt

Add support for the Freescale TWR-P1025 evaluation board and the P1025/P1016
QorIQ processors. XXX tsec isn't working yet on the TWR-P1025.


# 1.18 09-Jul-2012 matt

If we paniced because a watchdog timed out, PSL_CE will be clear. So don't
assert PSL_CE is set if panicstr is not NULL.


# 1.17 08-Jun-2012 matt

Compute softintr mask correctly.


Revision tags: jmcneill-usbmp-base10 yamt-pagecache-base5 jmcneill-usbmp-base9 yamt-pagecache-base4 jmcneill-usbmp-base8 jmcneill-usbmp-base7 jmcneill-usbmp-base6 jmcneill-usbmp-base5 jmcneill-usbmp-base4 jmcneill-usbmp-base3 jmcneill-usbmp-pre-base2 jmcneill-usbmp-base2 netbsd-6-base jmcneill-usbmp-base jmcneill-audiomp3-base yamt-pagecache-base3 yamt-pagecache-base2 yamt-pagecache-base
# 1.16 27-Sep-2011 jym

branches: 1.16.2; 1.16.8;
Modify *ASSERTMSG() so they are now used as variadic macros. The main goal
is to provide routines that do as KASSERT(9) says: append a message
to the panic format string when the assertion triggers, with optional
arguments.

Fix call sites to reflect the new definition.

Discussed on tech-kern@. See
http://mail-index.netbsd.org/tech-kern/2011/09/07/msg011427.html


# 1.15 29-Jun-2011 dholland

Add missing $NetBSD$ and/or __KERNEL_RCSID.


# 1.14 29-Jun-2011 matt

Panic when an ipi is sent to unknown cpu.


# 1.13 25-Jun-2011 matt

Make powerpc work on BookE. At this time we only support DOZE (lightest
form of power-saving). By default, power-saving is disabled but can be
enabled in /etc/sysctl.conf by setting machdep.powersave=1


# 1.12 21-Jun-2011 matt

In e500_spl0, grab ci after disabling interrupts.
Consolidate a KASSERT.


# 1.11 15-Jun-2011 matt

Add IST_PULSE and intr_typename (converts IST_* to a name).


# 1.10 14-Jun-2011 matt

Take the fast softint support in e500_intr.c and make generic so that it can
be used to provide fast softint for other interrupt implementations.


Revision tags: rmind-uvmplock-nbase rmind-uvmplock-base
# 1.9 08-Jun-2011 matt

Add an e500_idlespin to detect calls to idlespin when interrupts are blocked
or disabled.


# 1.8 05-Jun-2011 matt

Remove <machine/atomic.h>; use <sys/atomic.h> instead.
Add <powerpc/cpuset.h> (for mpc85xx pmap).
Add some initial MP code for mpc85xx
Rework ipi code to be common across all ppcs
Change PPC to keep curlwp in %r13 while in the kernel.
Move astpending from cpu_info to mdlwp
Improve cpu_need_resched to be more MP friendly.


Revision tags: cherry-xenmp-base
# 1.7 27-May-2011 matt

branches: 1.7.2;
Remove debugging printf. Add missing IMU2 interrupt string.


# 1.6 17-May-2011 dyoung

Add some grotty #ifdef'age to make this compile w/o DIAGNOSTIC.


Revision tags: jym-xensuspend-nbase jym-xensuspend-base
# 1.5 21-Mar-2011 matt

Fix a bug in onchip_intr_name_lookup


# 1.4 16-Mar-2011 matt

Fix various nits related to P2020 support.


Revision tags: uebayasi-xip-base7 bouyer-quota2-nbase bouyer-quota2-base
# 1.3 16-Feb-2011 matt

branches: 1.3.2;
Cleanup intr_info initialization. Make it per SVR.


# 1.2 18-Jan-2011 matt

branches: 1.2.2;
Add support for BookE Freescale MPC85xx (e500 core) processors.
Add fast softint support for PowerPC (though only booke uses it).
Redo FPU/VEC support and add e500 SPE support.
Rework trap/intrs to use a common trapframe format.
Support SOFTFLOAT (no hardfloat or fpu emulation) for BookE.


Revision tags: jruoho-x86intr-base
# 1.1 07-Jan-2011 matt

branches: 1.1.2; 1.1.4;
file e500_intr.c was initially added on branch matt-nb5-pq3.


# 1.46 16-Mar-2022 andvar

s/paniced/panicked/ and s/borken/broken/ in comments.


# 1.45 11-Sep-2021 andvar

Add missing double p and d for stopped and overriden accordingly.
Fix few more typos along the way, mainly in copy-pasted comments.


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.44 06-Jul-2020 rin

Drop unused opt_ddb.h.


# 1.43 06-Jul-2020 rin

Style and cosmetic changes. No binary changes intended.


# 1.42 06-Jul-2020 rin

XXX
Skip KASSERT which fires when !__HAVE_FAST_SOFTINTS. Just for debug.


# 1.41 04-Jul-2020 rin

Do not panic when splraise to IPL_NONE, which is required for
subr_cprng.c rev 1.36 and above:

http://cvsweb.netbsd.org/bsdweb.cgi/src/sys/kern/subr_cprng.c#rev1.36


Revision tags: bouyer-xenpvh-base2 phil-wifi-20200421 bouyer-xenpvh-base1 phil-wifi-20200411 bouyer-xenpvh-base is-mlppp-base phil-wifi-20200406 ad-namecache-base3 ad-namecache-base2 ad-namecache-base1 ad-namecache-base
# 1.40 01-Dec-2019 ad

Fix false sharing problems with cpu_info. Identified with tprof(8).
This was a very nice win in my tests on a 48 CPU box.

- Reorganise cpu_data slightly according to usage.
- Put cpu_onproc into struct cpu_info alongside ci_curlwp (now is ci_onproc).
- On x86, put some items in their own cache lines according to usage, like
the IPI bitmask and ci_want_resched.


# 1.39 23-Nov-2019 ad

cpu_need_resched():

- Remove all code that should be MI, leaving the bare minimum under arch/.
- Make the required actions very explicit.
- Pass in LWP pointer for convenience.
- When a trap is required on another CPU, have the IPI set it locally.
- Expunge cpu_did_resched().


Revision tags: netbsd-9-2-RELEASE netbsd-9-1-RELEASE netbsd-9-0-RELEASE netbsd-9-0-RC2 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 pgoyette-compat-1020 pgoyette-compat-0930
# 1.38 16-Sep-2018 skrll

interrupt has two 'r's

fix another typo while I'm here (flsah)


Revision tags: pgoyette-compat-0906 pgoyette-compat-0728 phil-wifi-base pgoyette-compat-0625 pgoyette-compat-0521 pgoyette-compat-0502 pgoyette-compat-0422 pgoyette-compat-0415 pgoyette-compat-0407 pgoyette-compat-0330 pgoyette-compat-0322 pgoyette-compat-0315 pgoyette-compat-base
# 1.37 26-Jan-2018 flxd

branches: 1.37.2; 1.37.4;
Another try fixing printf format using the ultimate uintmax_t idiom.


# 1.36 26-Jan-2018 christos

fix printf format.


Revision tags: netbsd-8-2-RELEASE netbsd-8-1-RELEASE netbsd-8-1-RC1 netbsd-8-0-RELEASE netbsd-8-0-RC2 netbsd-8-0-RC1 tls-maxphys-base-20171202 matt-nb8-mediatek-base nick-nhusb-base-20170825 perseant-stdc-iso10646-base netbsd-8-base
# 1.35 01-Jun-2017 chs

remove checks for failure after memory allocation calls that cannot fail:

kmem_alloc() with KM_SLEEP
kmem_zalloc() with KM_SLEEP
percpu_alloc()
pserialize_create()
psref_class_create()

all of these paths include an assertion that the allocation has not failed,
so callers should not assert that again.


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
# 1.34 19-Oct-2016 nonaka

Added MSI/MSI-X and interrupt_distribute(9) support for powerpc.


Revision tags: 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 nick-nhusb-base-20150606
# 1.33 14-Apr-2015 jmcneill

branches: 1.33.2;
__HAVE_PREEEMPTION -> __HAVE_PREEMPTION


Revision tags: nick-nhusb-base-20150406
# 1.32 23-Jan-2015 nonaka

Initialize timer DR.


# 1.31 23-Jan-2015 nonaka

ddb MP support


# 1.30 23-Jan-2015 nonaka

Allow to share IPI interrupt.


# 1.29 05-Jan-2015 nonaka

Initialize lock objects.


# 1.28 27-Dec-2014 nonaka

Preliminary support for P1023.


# 1.27 20-Dec-2014 nonaka

Revert previous commit.


# 1.26 19-Dec-2014 nonaka

Pass ci->ci_cpuid as irq of IST_IPI.
Avoid "panic: e500_intr_cpu_hatch: failed to establish ipi interrupt!" on cpu1.


# 1.25 19-Dec-2014 nonaka

Added missing mutex_exit() at error path.


Revision tags: netbsd-7-2-RELEASE netbsd-7-1-2-RELEASE netbsd-7-1-1-RELEASE netbsd-7-1-RELEASE netbsd-7-1-RC2 netbsd-7-nhusb-base-20170116 netbsd-7-1-RC1 netbsd-7-0-2-RELEASE netbsd-7-nhusb-base netbsd-7-0-1-RELEASE netbsd-7-0-RELEASE netbsd-7-0-RC3 netbsd-7-0-RC2 netbsd-7-0-RC1 nick-nhusb-base netbsd-7-base tls-earlyentropy-base tls-maxphys-base
# 1.24 19-May-2014 rmind

branches: 1.24.4;
Implement MI IPI interface with cross-call support.


Revision tags: yamt-pagecache-base9 riastradh-xf86-video-intel-2-7-1-pre-2-21-15 rmind-smpnet-nbase rmind-smpnet-base
# 1.23 29-Mar-2014 christos

branches: 1.23.2;
make pci_intr_string and eisa_intr_string take a buffer and a length
instead of relying in local static storage.


Revision tags: riastradh-drm2-base3 riastradh-drm2-base2 riastradh-drm2-base1 riastradh-drm2-base agc-symver-base yamt-pagecache-base8 yamt-pagecache-base7 yamt-pagecache-base6
# 1.22 29-Oct-2012 matt

branches: 1.22.2;
Change a KASSERT to a KASSERTMSG.


# 1.21 01-Aug-2012 matt

branches: 1.21.2;
Add a machine splhist command to give (a incomplete) spl history.
(only the most recent are going to be accurate).

splraise(6) from 0 at 549214603
splraise(7) from 6 at 549214643 (+40)
splx(6) from 7 at 549214691 (+48)
splx(0) from 6 at 549214730 (+39)


# 1.20 18-Jul-2012 matt

Add two missing interrupt sources for P1025.


# 1.19 15-Jul-2012 matt

Add support for the Freescale TWR-P1025 evaluation board and the P1025/P1016
QorIQ processors. XXX tsec isn't working yet on the TWR-P1025.


# 1.18 09-Jul-2012 matt

If we paniced because a watchdog timed out, PSL_CE will be clear. So don't
assert PSL_CE is set if panicstr is not NULL.


# 1.17 08-Jun-2012 matt

Compute softintr mask correctly.


Revision tags: jmcneill-usbmp-base10 yamt-pagecache-base5 jmcneill-usbmp-base9 yamt-pagecache-base4 jmcneill-usbmp-base8 jmcneill-usbmp-base7 jmcneill-usbmp-base6 jmcneill-usbmp-base5 jmcneill-usbmp-base4 jmcneill-usbmp-base3 jmcneill-usbmp-pre-base2 jmcneill-usbmp-base2 netbsd-6-base jmcneill-usbmp-base jmcneill-audiomp3-base yamt-pagecache-base3 yamt-pagecache-base2 yamt-pagecache-base
# 1.16 27-Sep-2011 jym

branches: 1.16.2; 1.16.8;
Modify *ASSERTMSG() so they are now used as variadic macros. The main goal
is to provide routines that do as KASSERT(9) says: append a message
to the panic format string when the assertion triggers, with optional
arguments.

Fix call sites to reflect the new definition.

Discussed on tech-kern@. See
http://mail-index.netbsd.org/tech-kern/2011/09/07/msg011427.html


# 1.15 29-Jun-2011 dholland

Add missing $NetBSD$ and/or __KERNEL_RCSID.


# 1.14 29-Jun-2011 matt

Panic when an ipi is sent to unknown cpu.


# 1.13 25-Jun-2011 matt

Make powerpc work on BookE. At this time we only support DOZE (lightest
form of power-saving). By default, power-saving is disabled but can be
enabled in /etc/sysctl.conf by setting machdep.powersave=1


# 1.12 21-Jun-2011 matt

In e500_spl0, grab ci after disabling interrupts.
Consolidate a KASSERT.


# 1.11 15-Jun-2011 matt

Add IST_PULSE and intr_typename (converts IST_* to a name).


# 1.10 14-Jun-2011 matt

Take the fast softint support in e500_intr.c and make generic so that it can
be used to provide fast softint for other interrupt implementations.


Revision tags: rmind-uvmplock-nbase rmind-uvmplock-base
# 1.9 08-Jun-2011 matt

Add an e500_idlespin to detect calls to idlespin when interrupts are blocked
or disabled.


# 1.8 05-Jun-2011 matt

Remove <machine/atomic.h>; use <sys/atomic.h> instead.
Add <powerpc/cpuset.h> (for mpc85xx pmap).
Add some initial MP code for mpc85xx
Rework ipi code to be common across all ppcs
Change PPC to keep curlwp in %r13 while in the kernel.
Move astpending from cpu_info to mdlwp
Improve cpu_need_resched to be more MP friendly.


Revision tags: cherry-xenmp-base
# 1.7 27-May-2011 matt

branches: 1.7.2;
Remove debugging printf. Add missing IMU2 interrupt string.


# 1.6 17-May-2011 dyoung

Add some grotty #ifdef'age to make this compile w/o DIAGNOSTIC.


Revision tags: jym-xensuspend-nbase jym-xensuspend-base
# 1.5 21-Mar-2011 matt

Fix a bug in onchip_intr_name_lookup


# 1.4 16-Mar-2011 matt

Fix various nits related to P2020 support.


Revision tags: uebayasi-xip-base7 bouyer-quota2-nbase bouyer-quota2-base
# 1.3 16-Feb-2011 matt

branches: 1.3.2;
Cleanup intr_info initialization. Make it per SVR.


# 1.2 18-Jan-2011 matt

branches: 1.2.2;
Add support for BookE Freescale MPC85xx (e500 core) processors.
Add fast softint support for PowerPC (though only booke uses it).
Redo FPU/VEC support and add e500 SPE support.
Rework trap/intrs to use a common trapframe format.
Support SOFTFLOAT (no hardfloat or fpu emulation) for BookE.


Revision tags: jruoho-x86intr-base
# 1.1 07-Jan-2011 matt

branches: 1.1.2; 1.1.4;
file e500_intr.c was initially added on branch matt-nb5-pq3.


# 1.45 11-Sep-2021 andvar

Add missing double p and d for stopped and overriden accordingly.
Fix few more typos along the way, mainly in copy-pasted comments.


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.44 06-Jul-2020 rin

Drop unused opt_ddb.h.


# 1.43 06-Jul-2020 rin

Style and cosmetic changes. No binary changes intended.


# 1.42 06-Jul-2020 rin

XXX
Skip KASSERT which fires when !__HAVE_FAST_SOFTINTS. Just for debug.


# 1.41 04-Jul-2020 rin

Do not panic when splraise to IPL_NONE, which is required for
subr_cprng.c rev 1.36 and above:

http://cvsweb.netbsd.org/bsdweb.cgi/src/sys/kern/subr_cprng.c#rev1.36


Revision tags: bouyer-xenpvh-base2 phil-wifi-20200421 bouyer-xenpvh-base1 phil-wifi-20200411 bouyer-xenpvh-base is-mlppp-base phil-wifi-20200406 ad-namecache-base3 ad-namecache-base2 ad-namecache-base1 ad-namecache-base
# 1.40 01-Dec-2019 ad

Fix false sharing problems with cpu_info. Identified with tprof(8).
This was a very nice win in my tests on a 48 CPU box.

- Reorganise cpu_data slightly according to usage.
- Put cpu_onproc into struct cpu_info alongside ci_curlwp (now is ci_onproc).
- On x86, put some items in their own cache lines according to usage, like
the IPI bitmask and ci_want_resched.


# 1.39 23-Nov-2019 ad

cpu_need_resched():

- Remove all code that should be MI, leaving the bare minimum under arch/.
- Make the required actions very explicit.
- Pass in LWP pointer for convenience.
- When a trap is required on another CPU, have the IPI set it locally.
- Expunge cpu_did_resched().


Revision tags: netbsd-9-2-RELEASE netbsd-9-1-RELEASE netbsd-9-0-RELEASE netbsd-9-0-RC2 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 pgoyette-compat-1020 pgoyette-compat-0930
# 1.38 16-Sep-2018 skrll

interrupt has two 'r's

fix another typo while I'm here (flsah)


Revision tags: pgoyette-compat-0906 pgoyette-compat-0728 phil-wifi-base pgoyette-compat-0625 pgoyette-compat-0521 pgoyette-compat-0502 pgoyette-compat-0422 pgoyette-compat-0415 pgoyette-compat-0407 pgoyette-compat-0330 pgoyette-compat-0322 pgoyette-compat-0315 pgoyette-compat-base
# 1.37 26-Jan-2018 flxd

branches: 1.37.2; 1.37.4;
Another try fixing printf format using the ultimate uintmax_t idiom.


# 1.36 26-Jan-2018 christos

fix printf format.


Revision tags: netbsd-8-2-RELEASE netbsd-8-1-RELEASE netbsd-8-1-RC1 netbsd-8-0-RELEASE netbsd-8-0-RC2 netbsd-8-0-RC1 tls-maxphys-base-20171202 matt-nb8-mediatek-base nick-nhusb-base-20170825 perseant-stdc-iso10646-base netbsd-8-base
# 1.35 01-Jun-2017 chs

remove checks for failure after memory allocation calls that cannot fail:

kmem_alloc() with KM_SLEEP
kmem_zalloc() with KM_SLEEP
percpu_alloc()
pserialize_create()
psref_class_create()

all of these paths include an assertion that the allocation has not failed,
so callers should not assert that again.


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
# 1.34 19-Oct-2016 nonaka

Added MSI/MSI-X and interrupt_distribute(9) support for powerpc.


Revision tags: 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 nick-nhusb-base-20150606
# 1.33 14-Apr-2015 jmcneill

branches: 1.33.2;
__HAVE_PREEEMPTION -> __HAVE_PREEMPTION


Revision tags: nick-nhusb-base-20150406
# 1.32 23-Jan-2015 nonaka

Initialize timer DR.


# 1.31 23-Jan-2015 nonaka

ddb MP support


# 1.30 23-Jan-2015 nonaka

Allow to share IPI interrupt.


# 1.29 05-Jan-2015 nonaka

Initialize lock objects.


# 1.28 27-Dec-2014 nonaka

Preliminary support for P1023.


# 1.27 20-Dec-2014 nonaka

Revert previous commit.


# 1.26 19-Dec-2014 nonaka

Pass ci->ci_cpuid as irq of IST_IPI.
Avoid "panic: e500_intr_cpu_hatch: failed to establish ipi interrupt!" on cpu1.


# 1.25 19-Dec-2014 nonaka

Added missing mutex_exit() at error path.


Revision tags: netbsd-7-2-RELEASE netbsd-7-1-2-RELEASE netbsd-7-1-1-RELEASE netbsd-7-1-RELEASE netbsd-7-1-RC2 netbsd-7-nhusb-base-20170116 netbsd-7-1-RC1 netbsd-7-0-2-RELEASE netbsd-7-nhusb-base netbsd-7-0-1-RELEASE netbsd-7-0-RELEASE netbsd-7-0-RC3 netbsd-7-0-RC2 netbsd-7-0-RC1 nick-nhusb-base netbsd-7-base tls-earlyentropy-base tls-maxphys-base
# 1.24 19-May-2014 rmind

branches: 1.24.4;
Implement MI IPI interface with cross-call support.


Revision tags: yamt-pagecache-base9 riastradh-xf86-video-intel-2-7-1-pre-2-21-15 rmind-smpnet-nbase rmind-smpnet-base
# 1.23 29-Mar-2014 christos

branches: 1.23.2;
make pci_intr_string and eisa_intr_string take a buffer and a length
instead of relying in local static storage.


Revision tags: riastradh-drm2-base3 riastradh-drm2-base2 riastradh-drm2-base1 riastradh-drm2-base agc-symver-base yamt-pagecache-base8 yamt-pagecache-base7 yamt-pagecache-base6
# 1.22 29-Oct-2012 matt

branches: 1.22.2;
Change a KASSERT to a KASSERTMSG.


# 1.21 01-Aug-2012 matt

branches: 1.21.2;
Add a machine splhist command to give (a incomplete) spl history.
(only the most recent are going to be accurate).

splraise(6) from 0 at 549214603
splraise(7) from 6 at 549214643 (+40)
splx(6) from 7 at 549214691 (+48)
splx(0) from 6 at 549214730 (+39)


# 1.20 18-Jul-2012 matt

Add two missing interrupt sources for P1025.


# 1.19 15-Jul-2012 matt

Add support for the Freescale TWR-P1025 evaluation board and the P1025/P1016
QorIQ processors. XXX tsec isn't working yet on the TWR-P1025.


# 1.18 09-Jul-2012 matt

If we paniced because a watchdog timed out, PSL_CE will be clear. So don't
assert PSL_CE is set if panicstr is not NULL.


# 1.17 08-Jun-2012 matt

Compute softintr mask correctly.


Revision tags: jmcneill-usbmp-base10 yamt-pagecache-base5 jmcneill-usbmp-base9 yamt-pagecache-base4 jmcneill-usbmp-base8 jmcneill-usbmp-base7 jmcneill-usbmp-base6 jmcneill-usbmp-base5 jmcneill-usbmp-base4 jmcneill-usbmp-base3 jmcneill-usbmp-pre-base2 jmcneill-usbmp-base2 netbsd-6-base jmcneill-usbmp-base jmcneill-audiomp3-base yamt-pagecache-base3 yamt-pagecache-base2 yamt-pagecache-base
# 1.16 27-Sep-2011 jym

branches: 1.16.2; 1.16.8;
Modify *ASSERTMSG() so they are now used as variadic macros. The main goal
is to provide routines that do as KASSERT(9) says: append a message
to the panic format string when the assertion triggers, with optional
arguments.

Fix call sites to reflect the new definition.

Discussed on tech-kern@. See
http://mail-index.netbsd.org/tech-kern/2011/09/07/msg011427.html


# 1.15 29-Jun-2011 dholland

Add missing $NetBSD$ and/or __KERNEL_RCSID.


# 1.14 29-Jun-2011 matt

Panic when an ipi is sent to unknown cpu.


# 1.13 25-Jun-2011 matt

Make powerpc work on BookE. At this time we only support DOZE (lightest
form of power-saving). By default, power-saving is disabled but can be
enabled in /etc/sysctl.conf by setting machdep.powersave=1


# 1.12 21-Jun-2011 matt

In e500_spl0, grab ci after disabling interrupts.
Consolidate a KASSERT.


# 1.11 15-Jun-2011 matt

Add IST_PULSE and intr_typename (converts IST_* to a name).


# 1.10 14-Jun-2011 matt

Take the fast softint support in e500_intr.c and make generic so that it can
be used to provide fast softint for other interrupt implementations.


Revision tags: rmind-uvmplock-nbase rmind-uvmplock-base
# 1.9 08-Jun-2011 matt

Add an e500_idlespin to detect calls to idlespin when interrupts are blocked
or disabled.


# 1.8 05-Jun-2011 matt

Remove <machine/atomic.h>; use <sys/atomic.h> instead.
Add <powerpc/cpuset.h> (for mpc85xx pmap).
Add some initial MP code for mpc85xx
Rework ipi code to be common across all ppcs
Change PPC to keep curlwp in %r13 while in the kernel.
Move astpending from cpu_info to mdlwp
Improve cpu_need_resched to be more MP friendly.


Revision tags: cherry-xenmp-base
# 1.7 27-May-2011 matt

branches: 1.7.2;
Remove debugging printf. Add missing IMU2 interrupt string.


# 1.6 17-May-2011 dyoung

Add some grotty #ifdef'age to make this compile w/o DIAGNOSTIC.


Revision tags: jym-xensuspend-nbase jym-xensuspend-base
# 1.5 21-Mar-2011 matt

Fix a bug in onchip_intr_name_lookup


# 1.4 16-Mar-2011 matt

Fix various nits related to P2020 support.


Revision tags: uebayasi-xip-base7 bouyer-quota2-nbase bouyer-quota2-base
# 1.3 16-Feb-2011 matt

branches: 1.3.2;
Cleanup intr_info initialization. Make it per SVR.


# 1.2 18-Jan-2011 matt

branches: 1.2.2;
Add support for BookE Freescale MPC85xx (e500 core) processors.
Add fast softint support for PowerPC (though only booke uses it).
Redo FPU/VEC support and add e500 SPE support.
Rework trap/intrs to use a common trapframe format.
Support SOFTFLOAT (no hardfloat or fpu emulation) for BookE.


Revision tags: jruoho-x86intr-base
# 1.1 07-Jan-2011 matt

branches: 1.1.2; 1.1.4;
file e500_intr.c was initially added on branch matt-nb5-pq3.


# 1.44 06-Jul-2020 rin

Drop unused opt_ddb.h.


# 1.43 06-Jul-2020 rin

Style and cosmetic changes. No binary changes intended.


# 1.42 06-Jul-2020 rin

XXX
Skip KASSERT which fires when !__HAVE_FAST_SOFTINTS. Just for debug.


# 1.41 04-Jul-2020 rin

Do not panic when splraise to IPL_NONE, which is required for
subr_cprng.c rev 1.36 and above:

http://cvsweb.netbsd.org/bsdweb.cgi/src/sys/kern/subr_cprng.c#rev1.36


Revision tags: bouyer-xenpvh-base2 phil-wifi-20200421 bouyer-xenpvh-base1 phil-wifi-20200411 bouyer-xenpvh-base is-mlppp-base phil-wifi-20200406 ad-namecache-base3 ad-namecache-base2 ad-namecache-base1 ad-namecache-base
# 1.40 01-Dec-2019 ad

Fix false sharing problems with cpu_info. Identified with tprof(8).
This was a very nice win in my tests on a 48 CPU box.

- Reorganise cpu_data slightly according to usage.
- Put cpu_onproc into struct cpu_info alongside ci_curlwp (now is ci_onproc).
- On x86, put some items in their own cache lines according to usage, like
the IPI bitmask and ci_want_resched.


# 1.39 23-Nov-2019 ad

cpu_need_resched():

- Remove all code that should be MI, leaving the bare minimum under arch/.
- Make the required actions very explicit.
- Pass in LWP pointer for convenience.
- When a trap is required on another CPU, have the IPI set it locally.
- Expunge cpu_did_resched().


Revision tags: netbsd-9-0-RELEASE netbsd-9-0-RC2 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 pgoyette-compat-1020 pgoyette-compat-0930
# 1.38 16-Sep-2018 skrll

interrupt has two 'r's

fix another typo while I'm here (flsah)


Revision tags: pgoyette-compat-0906 pgoyette-compat-0728 phil-wifi-base pgoyette-compat-0625 pgoyette-compat-0521 pgoyette-compat-0502 pgoyette-compat-0422 pgoyette-compat-0415 pgoyette-compat-0407 pgoyette-compat-0330 pgoyette-compat-0322 pgoyette-compat-0315 pgoyette-compat-base
# 1.37 26-Jan-2018 flxd

branches: 1.37.2; 1.37.4;
Another try fixing printf format using the ultimate uintmax_t idiom.


# 1.36 26-Jan-2018 christos

fix printf format.


Revision tags: netbsd-8-2-RELEASE netbsd-8-1-RELEASE netbsd-8-1-RC1 netbsd-8-0-RELEASE netbsd-8-0-RC2 netbsd-8-0-RC1 tls-maxphys-base-20171202 matt-nb8-mediatek-base nick-nhusb-base-20170825 perseant-stdc-iso10646-base netbsd-8-base
# 1.35 01-Jun-2017 chs

remove checks for failure after memory allocation calls that cannot fail:

kmem_alloc() with KM_SLEEP
kmem_zalloc() with KM_SLEEP
percpu_alloc()
pserialize_create()
psref_class_create()

all of these paths include an assertion that the allocation has not failed,
so callers should not assert that again.


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
# 1.34 19-Oct-2016 nonaka

Added MSI/MSI-X and interrupt_distribute(9) support for powerpc.


Revision tags: 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 nick-nhusb-base-20150606
# 1.33 14-Apr-2015 jmcneill

branches: 1.33.2;
__HAVE_PREEEMPTION -> __HAVE_PREEMPTION


Revision tags: nick-nhusb-base-20150406
# 1.32 23-Jan-2015 nonaka

Initialize timer DR.


# 1.31 23-Jan-2015 nonaka

ddb MP support


# 1.30 23-Jan-2015 nonaka

Allow to share IPI interrupt.


# 1.29 05-Jan-2015 nonaka

Initialize lock objects.


# 1.28 27-Dec-2014 nonaka

Preliminary support for P1023.


# 1.27 20-Dec-2014 nonaka

Revert previous commit.


# 1.26 19-Dec-2014 nonaka

Pass ci->ci_cpuid as irq of IST_IPI.
Avoid "panic: e500_intr_cpu_hatch: failed to establish ipi interrupt!" on cpu1.


# 1.25 19-Dec-2014 nonaka

Added missing mutex_exit() at error path.


Revision tags: netbsd-7-2-RELEASE netbsd-7-1-2-RELEASE netbsd-7-1-1-RELEASE netbsd-7-1-RELEASE netbsd-7-1-RC2 netbsd-7-nhusb-base-20170116 netbsd-7-1-RC1 netbsd-7-0-2-RELEASE netbsd-7-nhusb-base netbsd-7-0-1-RELEASE netbsd-7-0-RELEASE netbsd-7-0-RC3 netbsd-7-0-RC2 netbsd-7-0-RC1 nick-nhusb-base netbsd-7-base tls-earlyentropy-base tls-maxphys-base
# 1.24 19-May-2014 rmind

branches: 1.24.4;
Implement MI IPI interface with cross-call support.


Revision tags: yamt-pagecache-base9 riastradh-xf86-video-intel-2-7-1-pre-2-21-15 rmind-smpnet-nbase rmind-smpnet-base
# 1.23 29-Mar-2014 christos

branches: 1.23.2;
make pci_intr_string and eisa_intr_string take a buffer and a length
instead of relying in local static storage.


Revision tags: riastradh-drm2-base3 riastradh-drm2-base2 riastradh-drm2-base1 riastradh-drm2-base agc-symver-base yamt-pagecache-base8 yamt-pagecache-base7 yamt-pagecache-base6
# 1.22 29-Oct-2012 matt

branches: 1.22.2;
Change a KASSERT to a KASSERTMSG.


# 1.21 01-Aug-2012 matt

branches: 1.21.2;
Add a machine splhist command to give (a incomplete) spl history.
(only the most recent are going to be accurate).

splraise(6) from 0 at 549214603
splraise(7) from 6 at 549214643 (+40)
splx(6) from 7 at 549214691 (+48)
splx(0) from 6 at 549214730 (+39)


# 1.20 18-Jul-2012 matt

Add two missing interrupt sources for P1025.


# 1.19 15-Jul-2012 matt

Add support for the Freescale TWR-P1025 evaluation board and the P1025/P1016
QorIQ processors. XXX tsec isn't working yet on the TWR-P1025.


# 1.18 09-Jul-2012 matt

If we paniced because a watchdog timed out, PSL_CE will be clear. So don't
assert PSL_CE is set if panicstr is not NULL.


# 1.17 08-Jun-2012 matt

Compute softintr mask correctly.


Revision tags: jmcneill-usbmp-base10 yamt-pagecache-base5 jmcneill-usbmp-base9 yamt-pagecache-base4 jmcneill-usbmp-base8 jmcneill-usbmp-base7 jmcneill-usbmp-base6 jmcneill-usbmp-base5 jmcneill-usbmp-base4 jmcneill-usbmp-base3 jmcneill-usbmp-pre-base2 jmcneill-usbmp-base2 netbsd-6-base jmcneill-usbmp-base jmcneill-audiomp3-base yamt-pagecache-base3 yamt-pagecache-base2 yamt-pagecache-base
# 1.16 27-Sep-2011 jym

branches: 1.16.2; 1.16.8;
Modify *ASSERTMSG() so they are now used as variadic macros. The main goal
is to provide routines that do as KASSERT(9) says: append a message
to the panic format string when the assertion triggers, with optional
arguments.

Fix call sites to reflect the new definition.

Discussed on tech-kern@. See
http://mail-index.netbsd.org/tech-kern/2011/09/07/msg011427.html


# 1.15 29-Jun-2011 dholland

Add missing $NetBSD$ and/or __KERNEL_RCSID.


# 1.14 29-Jun-2011 matt

Panic when an ipi is sent to unknown cpu.


# 1.13 25-Jun-2011 matt

Make powerpc work on BookE. At this time we only support DOZE (lightest
form of power-saving). By default, power-saving is disabled but can be
enabled in /etc/sysctl.conf by setting machdep.powersave=1


# 1.12 21-Jun-2011 matt

In e500_spl0, grab ci after disabling interrupts.
Consolidate a KASSERT.


# 1.11 15-Jun-2011 matt

Add IST_PULSE and intr_typename (converts IST_* to a name).


# 1.10 14-Jun-2011 matt

Take the fast softint support in e500_intr.c and make generic so that it can
be used to provide fast softint for other interrupt implementations.


Revision tags: rmind-uvmplock-nbase rmind-uvmplock-base
# 1.9 08-Jun-2011 matt

Add an e500_idlespin to detect calls to idlespin when interrupts are blocked
or disabled.


# 1.8 05-Jun-2011 matt

Remove <machine/atomic.h>; use <sys/atomic.h> instead.
Add <powerpc/cpuset.h> (for mpc85xx pmap).
Add some initial MP code for mpc85xx
Rework ipi code to be common across all ppcs
Change PPC to keep curlwp in %r13 while in the kernel.
Move astpending from cpu_info to mdlwp
Improve cpu_need_resched to be more MP friendly.


Revision tags: cherry-xenmp-base
# 1.7 27-May-2011 matt

branches: 1.7.2;
Remove debugging printf. Add missing IMU2 interrupt string.


# 1.6 17-May-2011 dyoung

Add some grotty #ifdef'age to make this compile w/o DIAGNOSTIC.


Revision tags: jym-xensuspend-nbase jym-xensuspend-base
# 1.5 21-Mar-2011 matt

Fix a bug in onchip_intr_name_lookup


# 1.4 16-Mar-2011 matt

Fix various nits related to P2020 support.


Revision tags: uebayasi-xip-base7 bouyer-quota2-nbase bouyer-quota2-base
# 1.3 16-Feb-2011 matt

branches: 1.3.2;
Cleanup intr_info initialization. Make it per SVR.


# 1.2 18-Jan-2011 matt

branches: 1.2.2;
Add support for BookE Freescale MPC85xx (e500 core) processors.
Add fast softint support for PowerPC (though only booke uses it).
Redo FPU/VEC support and add e500 SPE support.
Rework trap/intrs to use a common trapframe format.
Support SOFTFLOAT (no hardfloat or fpu emulation) for BookE.


Revision tags: jruoho-x86intr-base
# 1.1 07-Jan-2011 matt

branches: 1.1.2; 1.1.4;
file e500_intr.c was initially added on branch matt-nb5-pq3.


# 1.41 04-Jul-2020 rin

Do not panic when splraise to IPL_NONE, which is required for
subr_cprng.c rev 1.36 and above:

http://cvsweb.netbsd.org/bsdweb.cgi/src/sys/kern/subr_cprng.c#rev1.36


Revision tags: bouyer-xenpvh-base2 phil-wifi-20200421 bouyer-xenpvh-base1 phil-wifi-20200411 bouyer-xenpvh-base is-mlppp-base phil-wifi-20200406 ad-namecache-base3 ad-namecache-base2 ad-namecache-base1 ad-namecache-base
# 1.40 01-Dec-2019 ad

Fix false sharing problems with cpu_info. Identified with tprof(8).
This was a very nice win in my tests on a 48 CPU box.

- Reorganise cpu_data slightly according to usage.
- Put cpu_onproc into struct cpu_info alongside ci_curlwp (now is ci_onproc).
- On x86, put some items in their own cache lines according to usage, like
the IPI bitmask and ci_want_resched.


# 1.39 23-Nov-2019 ad

cpu_need_resched():

- Remove all code that should be MI, leaving the bare minimum under arch/.
- Make the required actions very explicit.
- Pass in LWP pointer for convenience.
- When a trap is required on another CPU, have the IPI set it locally.
- Expunge cpu_did_resched().


Revision tags: netbsd-9-0-RELEASE netbsd-9-0-RC2 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 pgoyette-compat-1020 pgoyette-compat-0930
# 1.38 16-Sep-2018 skrll

interrupt has two 'r's

fix another typo while I'm here (flsah)


Revision tags: pgoyette-compat-0906 pgoyette-compat-0728 phil-wifi-base pgoyette-compat-0625 pgoyette-compat-0521 pgoyette-compat-0502 pgoyette-compat-0422 pgoyette-compat-0415 pgoyette-compat-0407 pgoyette-compat-0330 pgoyette-compat-0322 pgoyette-compat-0315 pgoyette-compat-base
# 1.37 26-Jan-2018 flxd

branches: 1.37.2; 1.37.4;
Another try fixing printf format using the ultimate uintmax_t idiom.


# 1.36 26-Jan-2018 christos

fix printf format.


Revision tags: netbsd-8-2-RELEASE netbsd-8-1-RELEASE netbsd-8-1-RC1 netbsd-8-0-RELEASE netbsd-8-0-RC2 netbsd-8-0-RC1 tls-maxphys-base-20171202 matt-nb8-mediatek-base nick-nhusb-base-20170825 perseant-stdc-iso10646-base netbsd-8-base
# 1.35 01-Jun-2017 chs

remove checks for failure after memory allocation calls that cannot fail:

kmem_alloc() with KM_SLEEP
kmem_zalloc() with KM_SLEEP
percpu_alloc()
pserialize_create()
psref_class_create()

all of these paths include an assertion that the allocation has not failed,
so callers should not assert that again.


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
# 1.34 19-Oct-2016 nonaka

Added MSI/MSI-X and interrupt_distribute(9) support for powerpc.


Revision tags: 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 nick-nhusb-base-20150606
# 1.33 14-Apr-2015 jmcneill

branches: 1.33.2;
__HAVE_PREEEMPTION -> __HAVE_PREEMPTION


Revision tags: nick-nhusb-base-20150406
# 1.32 23-Jan-2015 nonaka

Initialize timer DR.


# 1.31 23-Jan-2015 nonaka

ddb MP support


# 1.30 23-Jan-2015 nonaka

Allow to share IPI interrupt.


# 1.29 05-Jan-2015 nonaka

Initialize lock objects.


# 1.28 27-Dec-2014 nonaka

Preliminary support for P1023.


# 1.27 20-Dec-2014 nonaka

Revert previous commit.


# 1.26 19-Dec-2014 nonaka

Pass ci->ci_cpuid as irq of IST_IPI.
Avoid "panic: e500_intr_cpu_hatch: failed to establish ipi interrupt!" on cpu1.


# 1.25 19-Dec-2014 nonaka

Added missing mutex_exit() at error path.


Revision tags: netbsd-7-2-RELEASE netbsd-7-1-2-RELEASE netbsd-7-1-1-RELEASE netbsd-7-1-RELEASE netbsd-7-1-RC2 netbsd-7-nhusb-base-20170116 netbsd-7-1-RC1 netbsd-7-0-2-RELEASE netbsd-7-nhusb-base netbsd-7-0-1-RELEASE netbsd-7-0-RELEASE netbsd-7-0-RC3 netbsd-7-0-RC2 netbsd-7-0-RC1 nick-nhusb-base netbsd-7-base tls-earlyentropy-base tls-maxphys-base
# 1.24 19-May-2014 rmind

branches: 1.24.4;
Implement MI IPI interface with cross-call support.


Revision tags: yamt-pagecache-base9 riastradh-xf86-video-intel-2-7-1-pre-2-21-15 rmind-smpnet-nbase rmind-smpnet-base
# 1.23 29-Mar-2014 christos

branches: 1.23.2;
make pci_intr_string and eisa_intr_string take a buffer and a length
instead of relying in local static storage.


Revision tags: riastradh-drm2-base3 riastradh-drm2-base2 riastradh-drm2-base1 riastradh-drm2-base agc-symver-base yamt-pagecache-base8 yamt-pagecache-base7 yamt-pagecache-base6
# 1.22 29-Oct-2012 matt

branches: 1.22.2;
Change a KASSERT to a KASSERTMSG.


# 1.21 01-Aug-2012 matt

branches: 1.21.2;
Add a machine splhist command to give (a incomplete) spl history.
(only the most recent are going to be accurate).

splraise(6) from 0 at 549214603
splraise(7) from 6 at 549214643 (+40)
splx(6) from 7 at 549214691 (+48)
splx(0) from 6 at 549214730 (+39)


# 1.20 18-Jul-2012 matt

Add two missing interrupt sources for P1025.


# 1.19 15-Jul-2012 matt

Add support for the Freescale TWR-P1025 evaluation board and the P1025/P1016
QorIQ processors. XXX tsec isn't working yet on the TWR-P1025.


# 1.18 09-Jul-2012 matt

If we paniced because a watchdog timed out, PSL_CE will be clear. So don't
assert PSL_CE is set if panicstr is not NULL.


# 1.17 08-Jun-2012 matt

Compute softintr mask correctly.


Revision tags: jmcneill-usbmp-base10 yamt-pagecache-base5 jmcneill-usbmp-base9 yamt-pagecache-base4 jmcneill-usbmp-base8 jmcneill-usbmp-base7 jmcneill-usbmp-base6 jmcneill-usbmp-base5 jmcneill-usbmp-base4 jmcneill-usbmp-base3 jmcneill-usbmp-pre-base2 jmcneill-usbmp-base2 netbsd-6-base jmcneill-usbmp-base jmcneill-audiomp3-base yamt-pagecache-base3 yamt-pagecache-base2 yamt-pagecache-base
# 1.16 27-Sep-2011 jym

branches: 1.16.2; 1.16.8;
Modify *ASSERTMSG() so they are now used as variadic macros. The main goal
is to provide routines that do as KASSERT(9) says: append a message
to the panic format string when the assertion triggers, with optional
arguments.

Fix call sites to reflect the new definition.

Discussed on tech-kern@. See
http://mail-index.netbsd.org/tech-kern/2011/09/07/msg011427.html


# 1.15 29-Jun-2011 dholland

Add missing $NetBSD$ and/or __KERNEL_RCSID.


# 1.14 29-Jun-2011 matt

Panic when an ipi is sent to unknown cpu.


# 1.13 25-Jun-2011 matt

Make powerpc work on BookE. At this time we only support DOZE (lightest
form of power-saving). By default, power-saving is disabled but can be
enabled in /etc/sysctl.conf by setting machdep.powersave=1


# 1.12 21-Jun-2011 matt

In e500_spl0, grab ci after disabling interrupts.
Consolidate a KASSERT.


# 1.11 15-Jun-2011 matt

Add IST_PULSE and intr_typename (converts IST_* to a name).


# 1.10 14-Jun-2011 matt

Take the fast softint support in e500_intr.c and make generic so that it can
be used to provide fast softint for other interrupt implementations.


Revision tags: rmind-uvmplock-nbase rmind-uvmplock-base
# 1.9 08-Jun-2011 matt

Add an e500_idlespin to detect calls to idlespin when interrupts are blocked
or disabled.


# 1.8 05-Jun-2011 matt

Remove <machine/atomic.h>; use <sys/atomic.h> instead.
Add <powerpc/cpuset.h> (for mpc85xx pmap).
Add some initial MP code for mpc85xx
Rework ipi code to be common across all ppcs
Change PPC to keep curlwp in %r13 while in the kernel.
Move astpending from cpu_info to mdlwp
Improve cpu_need_resched to be more MP friendly.


Revision tags: cherry-xenmp-base
# 1.7 27-May-2011 matt

branches: 1.7.2;
Remove debugging printf. Add missing IMU2 interrupt string.


# 1.6 17-May-2011 dyoung

Add some grotty #ifdef'age to make this compile w/o DIAGNOSTIC.


Revision tags: jym-xensuspend-nbase jym-xensuspend-base
# 1.5 21-Mar-2011 matt

Fix a bug in onchip_intr_name_lookup


# 1.4 16-Mar-2011 matt

Fix various nits related to P2020 support.


Revision tags: uebayasi-xip-base7 bouyer-quota2-nbase bouyer-quota2-base
# 1.3 16-Feb-2011 matt

branches: 1.3.2;
Cleanup intr_info initialization. Make it per SVR.


# 1.2 18-Jan-2011 matt

branches: 1.2.2;
Add support for BookE Freescale MPC85xx (e500 core) processors.
Add fast softint support for PowerPC (though only booke uses it).
Redo FPU/VEC support and add e500 SPE support.
Rework trap/intrs to use a common trapframe format.
Support SOFTFLOAT (no hardfloat or fpu emulation) for BookE.


Revision tags: jruoho-x86intr-base
# 1.1 07-Jan-2011 matt

branches: 1.1.2; 1.1.4;
file e500_intr.c was initially added on branch matt-nb5-pq3.


# 1.40 01-Dec-2019 ad

Fix false sharing problems with cpu_info. Identified with tprof(8).
This was a very nice win in my tests on a 48 CPU box.

- Reorganise cpu_data slightly according to usage.
- Put cpu_onproc into struct cpu_info alongside ci_curlwp (now is ci_onproc).
- On x86, put some items in their own cache lines according to usage, like
the IPI bitmask and ci_want_resched.


# 1.39 23-Nov-2019 ad

cpu_need_resched():

- Remove all code that should be MI, leaving the bare minimum under arch/.
- Make the required actions very explicit.
- Pass in LWP pointer for convenience.
- When a trap is required on another CPU, have the IPI set it locally.
- Expunge cpu_did_resched().


Revision tags: 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 pgoyette-compat-1020 pgoyette-compat-0930
# 1.38 16-Sep-2018 skrll

interrupt has two 'r's

fix another typo while I'm here (flsah)


Revision tags: pgoyette-compat-0906 pgoyette-compat-0728 phil-wifi-base pgoyette-compat-0625 pgoyette-compat-0521 pgoyette-compat-0502 pgoyette-compat-0422 pgoyette-compat-0415 pgoyette-compat-0407 pgoyette-compat-0330 pgoyette-compat-0322 pgoyette-compat-0315 pgoyette-compat-base
# 1.37 26-Jan-2018 flxd

branches: 1.37.2; 1.37.4;
Another try fixing printf format using the ultimate uintmax_t idiom.


# 1.36 26-Jan-2018 christos

fix printf format.


Revision tags: netbsd-8-1-RELEASE netbsd-8-1-RC1 netbsd-8-0-RELEASE netbsd-8-0-RC2 netbsd-8-0-RC1 tls-maxphys-base-20171202 matt-nb8-mediatek-base nick-nhusb-base-20170825 perseant-stdc-iso10646-base netbsd-8-base
# 1.35 01-Jun-2017 chs

remove checks for failure after memory allocation calls that cannot fail:

kmem_alloc() with KM_SLEEP
kmem_zalloc() with KM_SLEEP
percpu_alloc()
pserialize_create()
psref_class_create()

all of these paths include an assertion that the allocation has not failed,
so callers should not assert that again.


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
# 1.34 19-Oct-2016 nonaka

Added MSI/MSI-X and interrupt_distribute(9) support for powerpc.


Revision tags: 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 nick-nhusb-base-20150606
# 1.33 14-Apr-2015 jmcneill

branches: 1.33.2;
__HAVE_PREEEMPTION -> __HAVE_PREEMPTION


Revision tags: nick-nhusb-base-20150406
# 1.32 23-Jan-2015 nonaka

Initialize timer DR.


# 1.31 23-Jan-2015 nonaka

ddb MP support


# 1.30 23-Jan-2015 nonaka

Allow to share IPI interrupt.


# 1.29 05-Jan-2015 nonaka

Initialize lock objects.


# 1.28 27-Dec-2014 nonaka

Preliminary support for P1023.


# 1.27 20-Dec-2014 nonaka

Revert previous commit.


# 1.26 19-Dec-2014 nonaka

Pass ci->ci_cpuid as irq of IST_IPI.
Avoid "panic: e500_intr_cpu_hatch: failed to establish ipi interrupt!" on cpu1.


# 1.25 19-Dec-2014 nonaka

Added missing mutex_exit() at error path.


Revision tags: netbsd-7-2-RELEASE netbsd-7-1-2-RELEASE netbsd-7-1-1-RELEASE netbsd-7-1-RELEASE netbsd-7-1-RC2 netbsd-7-nhusb-base-20170116 netbsd-7-1-RC1 netbsd-7-0-2-RELEASE netbsd-7-nhusb-base netbsd-7-0-1-RELEASE netbsd-7-0-RELEASE netbsd-7-0-RC3 netbsd-7-0-RC2 netbsd-7-0-RC1 nick-nhusb-base netbsd-7-base tls-earlyentropy-base tls-maxphys-base
# 1.24 19-May-2014 rmind

branches: 1.24.4;
Implement MI IPI interface with cross-call support.


Revision tags: yamt-pagecache-base9 riastradh-xf86-video-intel-2-7-1-pre-2-21-15 rmind-smpnet-nbase rmind-smpnet-base
# 1.23 29-Mar-2014 christos

branches: 1.23.2;
make pci_intr_string and eisa_intr_string take a buffer and a length
instead of relying in local static storage.


Revision tags: riastradh-drm2-base3 riastradh-drm2-base2 riastradh-drm2-base1 riastradh-drm2-base agc-symver-base yamt-pagecache-base8 yamt-pagecache-base7 yamt-pagecache-base6
# 1.22 29-Oct-2012 matt

branches: 1.22.2;
Change a KASSERT to a KASSERTMSG.


# 1.21 01-Aug-2012 matt

branches: 1.21.2;
Add a machine splhist command to give (a incomplete) spl history.
(only the most recent are going to be accurate).

splraise(6) from 0 at 549214603
splraise(7) from 6 at 549214643 (+40)
splx(6) from 7 at 549214691 (+48)
splx(0) from 6 at 549214730 (+39)


# 1.20 18-Jul-2012 matt

Add two missing interrupt sources for P1025.


# 1.19 15-Jul-2012 matt

Add support for the Freescale TWR-P1025 evaluation board and the P1025/P1016
QorIQ processors. XXX tsec isn't working yet on the TWR-P1025.


# 1.18 09-Jul-2012 matt

If we paniced because a watchdog timed out, PSL_CE will be clear. So don't
assert PSL_CE is set if panicstr is not NULL.


# 1.17 08-Jun-2012 matt

Compute softintr mask correctly.


Revision tags: jmcneill-usbmp-base10 yamt-pagecache-base5 jmcneill-usbmp-base9 yamt-pagecache-base4 jmcneill-usbmp-base8 jmcneill-usbmp-base7 jmcneill-usbmp-base6 jmcneill-usbmp-base5 jmcneill-usbmp-base4 jmcneill-usbmp-base3 jmcneill-usbmp-pre-base2 jmcneill-usbmp-base2 netbsd-6-base jmcneill-usbmp-base jmcneill-audiomp3-base yamt-pagecache-base3 yamt-pagecache-base2 yamt-pagecache-base
# 1.16 27-Sep-2011 jym

branches: 1.16.2; 1.16.8;
Modify *ASSERTMSG() so they are now used as variadic macros. The main goal
is to provide routines that do as KASSERT(9) says: append a message
to the panic format string when the assertion triggers, with optional
arguments.

Fix call sites to reflect the new definition.

Discussed on tech-kern@. See
http://mail-index.netbsd.org/tech-kern/2011/09/07/msg011427.html


# 1.15 29-Jun-2011 dholland

Add missing $NetBSD$ and/or __KERNEL_RCSID.


# 1.14 29-Jun-2011 matt

Panic when an ipi is sent to unknown cpu.


# 1.13 25-Jun-2011 matt

Make powerpc work on BookE. At this time we only support DOZE (lightest
form of power-saving). By default, power-saving is disabled but can be
enabled in /etc/sysctl.conf by setting machdep.powersave=1


# 1.12 21-Jun-2011 matt

In e500_spl0, grab ci after disabling interrupts.
Consolidate a KASSERT.


# 1.11 15-Jun-2011 matt

Add IST_PULSE and intr_typename (converts IST_* to a name).


# 1.10 14-Jun-2011 matt

Take the fast softint support in e500_intr.c and make generic so that it can
be used to provide fast softint for other interrupt implementations.


Revision tags: rmind-uvmplock-nbase rmind-uvmplock-base
# 1.9 08-Jun-2011 matt

Add an e500_idlespin to detect calls to idlespin when interrupts are blocked
or disabled.


# 1.8 05-Jun-2011 matt

Remove <machine/atomic.h>; use <sys/atomic.h> instead.
Add <powerpc/cpuset.h> (for mpc85xx pmap).
Add some initial MP code for mpc85xx
Rework ipi code to be common across all ppcs
Change PPC to keep curlwp in %r13 while in the kernel.
Move astpending from cpu_info to mdlwp
Improve cpu_need_resched to be more MP friendly.


Revision tags: cherry-xenmp-base
# 1.7 27-May-2011 matt

branches: 1.7.2;
Remove debugging printf. Add missing IMU2 interrupt string.


# 1.6 17-May-2011 dyoung

Add some grotty #ifdef'age to make this compile w/o DIAGNOSTIC.


Revision tags: jym-xensuspend-nbase jym-xensuspend-base
# 1.5 21-Mar-2011 matt

Fix a bug in onchip_intr_name_lookup


# 1.4 16-Mar-2011 matt

Fix various nits related to P2020 support.


Revision tags: uebayasi-xip-base7 bouyer-quota2-nbase bouyer-quota2-base
# 1.3 16-Feb-2011 matt

branches: 1.3.2;
Cleanup intr_info initialization. Make it per SVR.


# 1.2 18-Jan-2011 matt

branches: 1.2.2;
Add support for BookE Freescale MPC85xx (e500 core) processors.
Add fast softint support for PowerPC (though only booke uses it).
Redo FPU/VEC support and add e500 SPE support.
Rework trap/intrs to use a common trapframe format.
Support SOFTFLOAT (no hardfloat or fpu emulation) for BookE.


Revision tags: jruoho-x86intr-base
# 1.1 07-Jan-2011 matt

branches: 1.1.2; 1.1.4;
file e500_intr.c was initially added on branch matt-nb5-pq3.


# 1.39 23-Nov-2019 ad

cpu_need_resched():

- Remove all code that should be MI, leaving the bare minimum under arch/.
- Make the required actions very explicit.
- Pass in LWP pointer for convenience.
- When a trap is required on another CPU, have the IPI set it locally.
- Expunge cpu_did_resched().


Revision tags: phil-wifi-20191119 netbsd-9-base phil-wifi-20190609 isaki-audio2-base pgoyette-compat-20190127 pgoyette-compat-20190118 pgoyette-compat-1226 pgoyette-compat-1126 pgoyette-compat-1020 pgoyette-compat-0930
# 1.38 16-Sep-2018 skrll

interrupt has two 'r's

fix another typo while I'm here (flsah)


Revision tags: pgoyette-compat-0906 pgoyette-compat-0728 phil-wifi-base pgoyette-compat-0625 pgoyette-compat-0521 pgoyette-compat-0502 pgoyette-compat-0422 pgoyette-compat-0415 pgoyette-compat-0407 pgoyette-compat-0330 pgoyette-compat-0322 pgoyette-compat-0315 pgoyette-compat-base
# 1.37 26-Jan-2018 flxd

branches: 1.37.2; 1.37.4;
Another try fixing printf format using the ultimate uintmax_t idiom.


# 1.36 26-Jan-2018 christos

fix printf format.


Revision tags: netbsd-8-1-RELEASE netbsd-8-1-RC1 netbsd-8-0-RELEASE netbsd-8-0-RC2 netbsd-8-0-RC1 tls-maxphys-base-20171202 matt-nb8-mediatek-base nick-nhusb-base-20170825 perseant-stdc-iso10646-base netbsd-8-base
# 1.35 01-Jun-2017 chs

remove checks for failure after memory allocation calls that cannot fail:

kmem_alloc() with KM_SLEEP
kmem_zalloc() with KM_SLEEP
percpu_alloc()
pserialize_create()
psref_class_create()

all of these paths include an assertion that the allocation has not failed,
so callers should not assert that again.


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
# 1.34 19-Oct-2016 nonaka

Added MSI/MSI-X and interrupt_distribute(9) support for powerpc.


Revision tags: 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 nick-nhusb-base-20150606
# 1.33 14-Apr-2015 jmcneill

branches: 1.33.2;
__HAVE_PREEEMPTION -> __HAVE_PREEMPTION


Revision tags: nick-nhusb-base-20150406
# 1.32 23-Jan-2015 nonaka

Initialize timer DR.


# 1.31 23-Jan-2015 nonaka

ddb MP support


# 1.30 23-Jan-2015 nonaka

Allow to share IPI interrupt.


# 1.29 05-Jan-2015 nonaka

Initialize lock objects.


# 1.28 27-Dec-2014 nonaka

Preliminary support for P1023.


# 1.27 20-Dec-2014 nonaka

Revert previous commit.


# 1.26 19-Dec-2014 nonaka

Pass ci->ci_cpuid as irq of IST_IPI.
Avoid "panic: e500_intr_cpu_hatch: failed to establish ipi interrupt!" on cpu1.


# 1.25 19-Dec-2014 nonaka

Added missing mutex_exit() at error path.


Revision tags: netbsd-7-2-RELEASE netbsd-7-1-2-RELEASE netbsd-7-1-1-RELEASE netbsd-7-1-RELEASE netbsd-7-1-RC2 netbsd-7-nhusb-base-20170116 netbsd-7-1-RC1 netbsd-7-0-2-RELEASE netbsd-7-nhusb-base netbsd-7-0-1-RELEASE netbsd-7-0-RELEASE netbsd-7-0-RC3 netbsd-7-0-RC2 netbsd-7-0-RC1 nick-nhusb-base netbsd-7-base tls-earlyentropy-base tls-maxphys-base
# 1.24 19-May-2014 rmind

branches: 1.24.4;
Implement MI IPI interface with cross-call support.


Revision tags: yamt-pagecache-base9 riastradh-xf86-video-intel-2-7-1-pre-2-21-15 rmind-smpnet-nbase rmind-smpnet-base
# 1.23 29-Mar-2014 christos

branches: 1.23.2;
make pci_intr_string and eisa_intr_string take a buffer and a length
instead of relying in local static storage.


Revision tags: riastradh-drm2-base3 riastradh-drm2-base2 riastradh-drm2-base1 riastradh-drm2-base agc-symver-base yamt-pagecache-base8 yamt-pagecache-base7 yamt-pagecache-base6
# 1.22 29-Oct-2012 matt

branches: 1.22.2;
Change a KASSERT to a KASSERTMSG.


# 1.21 01-Aug-2012 matt

branches: 1.21.2;
Add a machine splhist command to give (a incomplete) spl history.
(only the most recent are going to be accurate).

splraise(6) from 0 at 549214603
splraise(7) from 6 at 549214643 (+40)
splx(6) from 7 at 549214691 (+48)
splx(0) from 6 at 549214730 (+39)


# 1.20 18-Jul-2012 matt

Add two missing interrupt sources for P1025.


# 1.19 15-Jul-2012 matt

Add support for the Freescale TWR-P1025 evaluation board and the P1025/P1016
QorIQ processors. XXX tsec isn't working yet on the TWR-P1025.


# 1.18 09-Jul-2012 matt

If we paniced because a watchdog timed out, PSL_CE will be clear. So don't
assert PSL_CE is set if panicstr is not NULL.


# 1.17 08-Jun-2012 matt

Compute softintr mask correctly.


Revision tags: jmcneill-usbmp-base10 yamt-pagecache-base5 jmcneill-usbmp-base9 yamt-pagecache-base4 jmcneill-usbmp-base8 jmcneill-usbmp-base7 jmcneill-usbmp-base6 jmcneill-usbmp-base5 jmcneill-usbmp-base4 jmcneill-usbmp-base3 jmcneill-usbmp-pre-base2 jmcneill-usbmp-base2 netbsd-6-base jmcneill-usbmp-base jmcneill-audiomp3-base yamt-pagecache-base3 yamt-pagecache-base2 yamt-pagecache-base
# 1.16 27-Sep-2011 jym

branches: 1.16.2; 1.16.8;
Modify *ASSERTMSG() so they are now used as variadic macros. The main goal
is to provide routines that do as KASSERT(9) says: append a message
to the panic format string when the assertion triggers, with optional
arguments.

Fix call sites to reflect the new definition.

Discussed on tech-kern@. See
http://mail-index.netbsd.org/tech-kern/2011/09/07/msg011427.html


# 1.15 29-Jun-2011 dholland

Add missing $NetBSD$ and/or __KERNEL_RCSID.


# 1.14 29-Jun-2011 matt

Panic when an ipi is sent to unknown cpu.


# 1.13 25-Jun-2011 matt

Make powerpc work on BookE. At this time we only support DOZE (lightest
form of power-saving). By default, power-saving is disabled but can be
enabled in /etc/sysctl.conf by setting machdep.powersave=1


# 1.12 21-Jun-2011 matt

In e500_spl0, grab ci after disabling interrupts.
Consolidate a KASSERT.


# 1.11 15-Jun-2011 matt

Add IST_PULSE and intr_typename (converts IST_* to a name).


# 1.10 14-Jun-2011 matt

Take the fast softint support in e500_intr.c and make generic so that it can
be used to provide fast softint for other interrupt implementations.


Revision tags: rmind-uvmplock-nbase rmind-uvmplock-base
# 1.9 08-Jun-2011 matt

Add an e500_idlespin to detect calls to idlespin when interrupts are blocked
or disabled.


# 1.8 05-Jun-2011 matt

Remove <machine/atomic.h>; use <sys/atomic.h> instead.
Add <powerpc/cpuset.h> (for mpc85xx pmap).
Add some initial MP code for mpc85xx
Rework ipi code to be common across all ppcs
Change PPC to keep curlwp in %r13 while in the kernel.
Move astpending from cpu_info to mdlwp
Improve cpu_need_resched to be more MP friendly.


Revision tags: cherry-xenmp-base
# 1.7 27-May-2011 matt

branches: 1.7.2;
Remove debugging printf. Add missing IMU2 interrupt string.


# 1.6 17-May-2011 dyoung

Add some grotty #ifdef'age to make this compile w/o DIAGNOSTIC.


Revision tags: jym-xensuspend-nbase jym-xensuspend-base
# 1.5 21-Mar-2011 matt

Fix a bug in onchip_intr_name_lookup


# 1.4 16-Mar-2011 matt

Fix various nits related to P2020 support.


Revision tags: uebayasi-xip-base7 bouyer-quota2-nbase bouyer-quota2-base
# 1.3 16-Feb-2011 matt

branches: 1.3.2;
Cleanup intr_info initialization. Make it per SVR.


# 1.2 18-Jan-2011 matt

branches: 1.2.2;
Add support for BookE Freescale MPC85xx (e500 core) processors.
Add fast softint support for PowerPC (though only booke uses it).
Redo FPU/VEC support and add e500 SPE support.
Rework trap/intrs to use a common trapframe format.
Support SOFTFLOAT (no hardfloat or fpu emulation) for BookE.


Revision tags: jruoho-x86intr-base
# 1.1 07-Jan-2011 matt

branches: 1.1.2; 1.1.4;
file e500_intr.c was initially added on branch matt-nb5-pq3.


Revision tags: isaki-audio2-base pgoyette-compat-20190127 pgoyette-compat-20190118 pgoyette-compat-1226 pgoyette-compat-1126 pgoyette-compat-1020 pgoyette-compat-0930
# 1.38 16-Sep-2018 skrll

interrupt has two 'r's

fix another typo while I'm here (flsah)


Revision tags: pgoyette-compat-0906 pgoyette-compat-0728 phil-wifi-base pgoyette-compat-0625 pgoyette-compat-0521 pgoyette-compat-0502 pgoyette-compat-0422 pgoyette-compat-0415 pgoyette-compat-0407 pgoyette-compat-0330 pgoyette-compat-0322 pgoyette-compat-0315 pgoyette-compat-base
# 1.37 26-Jan-2018 flxd

branches: 1.37.2;
Another try fixing printf format using the ultimate uintmax_t idiom.


# 1.36 26-Jan-2018 christos

fix printf format.


Revision tags: netbsd-8-0-RELEASE netbsd-8-0-RC2 netbsd-8-0-RC1 tls-maxphys-base-20171202 matt-nb8-mediatek-base nick-nhusb-base-20170825 perseant-stdc-iso10646-base netbsd-8-base
# 1.35 01-Jun-2017 chs

remove checks for failure after memory allocation calls that cannot fail:

kmem_alloc() with KM_SLEEP
kmem_zalloc() with KM_SLEEP
percpu_alloc()
pserialize_create()
psref_class_create()

all of these paths include an assertion that the allocation has not failed,
so callers should not assert that again.


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
# 1.34 19-Oct-2016 nonaka

Added MSI/MSI-X and interrupt_distribute(9) support for powerpc.


Revision tags: 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 nick-nhusb-base-20150606
# 1.33 14-Apr-2015 jmcneill

branches: 1.33.2;
__HAVE_PREEEMPTION -> __HAVE_PREEMPTION


Revision tags: nick-nhusb-base-20150406
# 1.32 23-Jan-2015 nonaka

Initialize timer DR.


# 1.31 23-Jan-2015 nonaka

ddb MP support


# 1.30 23-Jan-2015 nonaka

Allow to share IPI interrupt.


# 1.29 05-Jan-2015 nonaka

Initialize lock objects.


# 1.28 27-Dec-2014 nonaka

Preliminary support for P1023.


# 1.27 20-Dec-2014 nonaka

Revert previous commit.


# 1.26 19-Dec-2014 nonaka

Pass ci->ci_cpuid as irq of IST_IPI.
Avoid "panic: e500_intr_cpu_hatch: failed to establish ipi interrupt!" on cpu1.


# 1.25 19-Dec-2014 nonaka

Added missing mutex_exit() at error path.


Revision tags: netbsd-7-2-RELEASE netbsd-7-1-2-RELEASE netbsd-7-1-1-RELEASE netbsd-7-1-RELEASE netbsd-7-1-RC2 netbsd-7-nhusb-base-20170116 netbsd-7-1-RC1 netbsd-7-0-2-RELEASE netbsd-7-nhusb-base netbsd-7-0-1-RELEASE netbsd-7-0-RELEASE netbsd-7-0-RC3 netbsd-7-0-RC2 netbsd-7-0-RC1 nick-nhusb-base netbsd-7-base tls-earlyentropy-base tls-maxphys-base
# 1.24 19-May-2014 rmind

branches: 1.24.4;
Implement MI IPI interface with cross-call support.


Revision tags: yamt-pagecache-base9 riastradh-xf86-video-intel-2-7-1-pre-2-21-15 rmind-smpnet-nbase rmind-smpnet-base
# 1.23 29-Mar-2014 christos

branches: 1.23.2;
make pci_intr_string and eisa_intr_string take a buffer and a length
instead of relying in local static storage.


Revision tags: riastradh-drm2-base3 riastradh-drm2-base2 riastradh-drm2-base1 riastradh-drm2-base agc-symver-base yamt-pagecache-base8 yamt-pagecache-base7 yamt-pagecache-base6
# 1.22 29-Oct-2012 matt

branches: 1.22.2;
Change a KASSERT to a KASSERTMSG.


# 1.21 01-Aug-2012 matt

branches: 1.21.2;
Add a machine splhist command to give (a incomplete) spl history.
(only the most recent are going to be accurate).

splraise(6) from 0 at 549214603
splraise(7) from 6 at 549214643 (+40)
splx(6) from 7 at 549214691 (+48)
splx(0) from 6 at 549214730 (+39)


# 1.20 18-Jul-2012 matt

Add two missing interrupt sources for P1025.


# 1.19 15-Jul-2012 matt

Add support for the Freescale TWR-P1025 evaluation board and the P1025/P1016
QorIQ processors. XXX tsec isn't working yet on the TWR-P1025.


# 1.18 09-Jul-2012 matt

If we paniced because a watchdog timed out, PSL_CE will be clear. So don't
assert PSL_CE is set if panicstr is not NULL.


# 1.17 08-Jun-2012 matt

Compute softintr mask correctly.


Revision tags: jmcneill-usbmp-base10 yamt-pagecache-base5 jmcneill-usbmp-base9 yamt-pagecache-base4 jmcneill-usbmp-base8 jmcneill-usbmp-base7 jmcneill-usbmp-base6 jmcneill-usbmp-base5 jmcneill-usbmp-base4 jmcneill-usbmp-base3 jmcneill-usbmp-pre-base2 jmcneill-usbmp-base2 netbsd-6-base jmcneill-usbmp-base jmcneill-audiomp3-base yamt-pagecache-base3 yamt-pagecache-base2 yamt-pagecache-base
# 1.16 27-Sep-2011 jym

branches: 1.16.2; 1.16.8;
Modify *ASSERTMSG() so they are now used as variadic macros. The main goal
is to provide routines that do as KASSERT(9) says: append a message
to the panic format string when the assertion triggers, with optional
arguments.

Fix call sites to reflect the new definition.

Discussed on tech-kern@. See
http://mail-index.netbsd.org/tech-kern/2011/09/07/msg011427.html


# 1.15 29-Jun-2011 dholland

Add missing $NetBSD$ and/or __KERNEL_RCSID.


# 1.14 29-Jun-2011 matt

Panic when an ipi is sent to unknown cpu.


# 1.13 25-Jun-2011 matt

Make powerpc work on BookE. At this time we only support DOZE (lightest
form of power-saving). By default, power-saving is disabled but can be
enabled in /etc/sysctl.conf by setting machdep.powersave=1


# 1.12 21-Jun-2011 matt

In e500_spl0, grab ci after disabling interrupts.
Consolidate a KASSERT.


# 1.11 15-Jun-2011 matt

Add IST_PULSE and intr_typename (converts IST_* to a name).


# 1.10 14-Jun-2011 matt

Take the fast softint support in e500_intr.c and make generic so that it can
be used to provide fast softint for other interrupt implementations.


Revision tags: rmind-uvmplock-nbase rmind-uvmplock-base
# 1.9 08-Jun-2011 matt

Add an e500_idlespin to detect calls to idlespin when interrupts are blocked
or disabled.


# 1.8 05-Jun-2011 matt

Remove <machine/atomic.h>; use <sys/atomic.h> instead.
Add <powerpc/cpuset.h> (for mpc85xx pmap).
Add some initial MP code for mpc85xx
Rework ipi code to be common across all ppcs
Change PPC to keep curlwp in %r13 while in the kernel.
Move astpending from cpu_info to mdlwp
Improve cpu_need_resched to be more MP friendly.


Revision tags: cherry-xenmp-base
# 1.7 27-May-2011 matt

branches: 1.7.2;
Remove debugging printf. Add missing IMU2 interrupt string.


# 1.6 17-May-2011 dyoung

Add some grotty #ifdef'age to make this compile w/o DIAGNOSTIC.


Revision tags: jym-xensuspend-nbase jym-xensuspend-base
# 1.5 21-Mar-2011 matt

Fix a bug in onchip_intr_name_lookup


# 1.4 16-Mar-2011 matt

Fix various nits related to P2020 support.


Revision tags: uebayasi-xip-base7 bouyer-quota2-nbase bouyer-quota2-base
# 1.3 16-Feb-2011 matt

branches: 1.3.2;
Cleanup intr_info initialization. Make it per SVR.


# 1.2 18-Jan-2011 matt

branches: 1.2.2;
Add support for BookE Freescale MPC85xx (e500 core) processors.
Add fast softint support for PowerPC (though only booke uses it).
Redo FPU/VEC support and add e500 SPE support.
Rework trap/intrs to use a common trapframe format.
Support SOFTFLOAT (no hardfloat or fpu emulation) for BookE.


Revision tags: jruoho-x86intr-base
# 1.1 07-Jan-2011 matt

branches: 1.1.2; 1.1.4;
file e500_intr.c was initially added on branch matt-nb5-pq3.


# 1.37 26-Jan-2018 flxd

Another try fixing printf format using the ultimate uintmax_t idiom.


# 1.36 26-Jan-2018 christos

fix printf format.


Revision tags: tls-maxphys-base-20171202 matt-nb8-mediatek-base nick-nhusb-base-20170825 perseant-stdc-iso10646-base netbsd-8-base
# 1.35 01-Jun-2017 chs

remove checks for failure after memory allocation calls that cannot fail:

kmem_alloc() with KM_SLEEP
kmem_zalloc() with KM_SLEEP
percpu_alloc()
pserialize_create()
psref_class_create()

all of these paths include an assertion that the allocation has not failed,
so callers should not assert that again.


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
# 1.34 19-Oct-2016 nonaka

Added MSI/MSI-X and interrupt_distribute(9) support for powerpc.


Revision tags: 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 nick-nhusb-base-20150606
# 1.33 14-Apr-2015 jmcneill

branches: 1.33.2;
__HAVE_PREEEMPTION -> __HAVE_PREEMPTION


Revision tags: nick-nhusb-base-20150406
# 1.32 23-Jan-2015 nonaka

Initialize timer DR.


# 1.31 23-Jan-2015 nonaka

ddb MP support


# 1.30 23-Jan-2015 nonaka

Allow to share IPI interrupt.


# 1.29 05-Jan-2015 nonaka

Initialize lock objects.


# 1.28 27-Dec-2014 nonaka

Preliminary support for P1023.


# 1.27 20-Dec-2014 nonaka

Revert previous commit.


# 1.26 19-Dec-2014 nonaka

Pass ci->ci_cpuid as irq of IST_IPI.
Avoid "panic: e500_intr_cpu_hatch: failed to establish ipi interrupt!" on cpu1.


# 1.25 19-Dec-2014 nonaka

Added missing mutex_exit() at error path.


Revision tags: netbsd-7-1-1-RELEASE netbsd-7-1-RELEASE netbsd-7-1-RC2 netbsd-7-nhusb-base-20170116 netbsd-7-1-RC1 netbsd-7-0-2-RELEASE netbsd-7-nhusb-base netbsd-7-0-1-RELEASE netbsd-7-0-RELEASE netbsd-7-0-RC3 netbsd-7-0-RC2 netbsd-7-0-RC1 nick-nhusb-base netbsd-7-base tls-earlyentropy-base tls-maxphys-base
# 1.24 19-May-2014 rmind

branches: 1.24.4;
Implement MI IPI interface with cross-call support.


Revision tags: yamt-pagecache-base9 riastradh-xf86-video-intel-2-7-1-pre-2-21-15 rmind-smpnet-nbase rmind-smpnet-base
# 1.23 29-Mar-2014 christos

branches: 1.23.2;
make pci_intr_string and eisa_intr_string take a buffer and a length
instead of relying in local static storage.


Revision tags: riastradh-drm2-base3 riastradh-drm2-base2 riastradh-drm2-base1 riastradh-drm2-base agc-symver-base yamt-pagecache-base8 yamt-pagecache-base7 yamt-pagecache-base6
# 1.22 29-Oct-2012 matt

branches: 1.22.2;
Change a KASSERT to a KASSERTMSG.


# 1.21 01-Aug-2012 matt

branches: 1.21.2;
Add a machine splhist command to give (a incomplete) spl history.
(only the most recent are going to be accurate).

splraise(6) from 0 at 549214603
splraise(7) from 6 at 549214643 (+40)
splx(6) from 7 at 549214691 (+48)
splx(0) from 6 at 549214730 (+39)


# 1.20 18-Jul-2012 matt

Add two missing interrupt sources for P1025.


# 1.19 15-Jul-2012 matt

Add support for the Freescale TWR-P1025 evaluation board and the P1025/P1016
QorIQ processors. XXX tsec isn't working yet on the TWR-P1025.


# 1.18 09-Jul-2012 matt

If we paniced because a watchdog timed out, PSL_CE will be clear. So don't
assert PSL_CE is set if panicstr is not NULL.


# 1.17 08-Jun-2012 matt

Compute softintr mask correctly.


Revision tags: jmcneill-usbmp-base10 yamt-pagecache-base5 jmcneill-usbmp-base9 yamt-pagecache-base4 jmcneill-usbmp-base8 jmcneill-usbmp-base7 jmcneill-usbmp-base6 jmcneill-usbmp-base5 jmcneill-usbmp-base4 jmcneill-usbmp-base3 jmcneill-usbmp-pre-base2 jmcneill-usbmp-base2 netbsd-6-base jmcneill-usbmp-base jmcneill-audiomp3-base yamt-pagecache-base3 yamt-pagecache-base2 yamt-pagecache-base
# 1.16 27-Sep-2011 jym

branches: 1.16.2; 1.16.8;
Modify *ASSERTMSG() so they are now used as variadic macros. The main goal
is to provide routines that do as KASSERT(9) says: append a message
to the panic format string when the assertion triggers, with optional
arguments.

Fix call sites to reflect the new definition.

Discussed on tech-kern@. See
http://mail-index.netbsd.org/tech-kern/2011/09/07/msg011427.html


# 1.15 29-Jun-2011 dholland

Add missing $NetBSD$ and/or __KERNEL_RCSID.


# 1.14 29-Jun-2011 matt

Panic when an ipi is sent to unknown cpu.


# 1.13 25-Jun-2011 matt

Make powerpc work on BookE. At this time we only support DOZE (lightest
form of power-saving). By default, power-saving is disabled but can be
enabled in /etc/sysctl.conf by setting machdep.powersave=1


# 1.12 21-Jun-2011 matt

In e500_spl0, grab ci after disabling interrupts.
Consolidate a KASSERT.


# 1.11 15-Jun-2011 matt

Add IST_PULSE and intr_typename (converts IST_* to a name).


# 1.10 14-Jun-2011 matt

Take the fast softint support in e500_intr.c and make generic so that it can
be used to provide fast softint for other interrupt implementations.


Revision tags: rmind-uvmplock-nbase rmind-uvmplock-base
# 1.9 08-Jun-2011 matt

Add an e500_idlespin to detect calls to idlespin when interrupts are blocked
or disabled.


# 1.8 05-Jun-2011 matt

Remove <machine/atomic.h>; use <sys/atomic.h> instead.
Add <powerpc/cpuset.h> (for mpc85xx pmap).
Add some initial MP code for mpc85xx
Rework ipi code to be common across all ppcs
Change PPC to keep curlwp in %r13 while in the kernel.
Move astpending from cpu_info to mdlwp
Improve cpu_need_resched to be more MP friendly.


Revision tags: cherry-xenmp-base
# 1.7 27-May-2011 matt

branches: 1.7.2;
Remove debugging printf. Add missing IMU2 interrupt string.


# 1.6 17-May-2011 dyoung

Add some grotty #ifdef'age to make this compile w/o DIAGNOSTIC.


Revision tags: jym-xensuspend-nbase jym-xensuspend-base
# 1.5 21-Mar-2011 matt

Fix a bug in onchip_intr_name_lookup


# 1.4 16-Mar-2011 matt

Fix various nits related to P2020 support.


Revision tags: uebayasi-xip-base7 bouyer-quota2-nbase bouyer-quota2-base
# 1.3 16-Feb-2011 matt

branches: 1.3.2;
Cleanup intr_info initialization. Make it per SVR.


# 1.2 18-Jan-2011 matt

branches: 1.2.2;
Add support for BookE Freescale MPC85xx (e500 core) processors.
Add fast softint support for PowerPC (though only booke uses it).
Redo FPU/VEC support and add e500 SPE support.
Rework trap/intrs to use a common trapframe format.
Support SOFTFLOAT (no hardfloat or fpu emulation) for BookE.


Revision tags: jruoho-x86intr-base
# 1.1 07-Jan-2011 matt

branches: 1.1.2; 1.1.4;
file e500_intr.c was initially added on branch matt-nb5-pq3.


# 1.36 26-Jan-2018 christos

fix printf format.


Revision tags: tls-maxphys-base-20171202 matt-nb8-mediatek-base nick-nhusb-base-20170825 perseant-stdc-iso10646-base netbsd-8-base
# 1.35 01-Jun-2017 chs

remove checks for failure after memory allocation calls that cannot fail:

kmem_alloc() with KM_SLEEP
kmem_zalloc() with KM_SLEEP
percpu_alloc()
pserialize_create()
psref_class_create()

all of these paths include an assertion that the allocation has not failed,
so callers should not assert that again.


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
# 1.34 19-Oct-2016 nonaka

Added MSI/MSI-X and interrupt_distribute(9) support for powerpc.


Revision tags: 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 nick-nhusb-base-20150606
# 1.33 14-Apr-2015 jmcneill

branches: 1.33.2;
__HAVE_PREEEMPTION -> __HAVE_PREEMPTION


Revision tags: nick-nhusb-base-20150406
# 1.32 23-Jan-2015 nonaka

Initialize timer DR.


# 1.31 23-Jan-2015 nonaka

ddb MP support


# 1.30 23-Jan-2015 nonaka

Allow to share IPI interrupt.


# 1.29 05-Jan-2015 nonaka

Initialize lock objects.


# 1.28 27-Dec-2014 nonaka

Preliminary support for P1023.


# 1.27 20-Dec-2014 nonaka

Revert previous commit.


# 1.26 19-Dec-2014 nonaka

Pass ci->ci_cpuid as irq of IST_IPI.
Avoid "panic: e500_intr_cpu_hatch: failed to establish ipi interrupt!" on cpu1.


# 1.25 19-Dec-2014 nonaka

Added missing mutex_exit() at error path.


Revision tags: netbsd-7-1-1-RELEASE netbsd-7-1-RELEASE netbsd-7-1-RC2 netbsd-7-nhusb-base-20170116 netbsd-7-1-RC1 netbsd-7-0-2-RELEASE netbsd-7-nhusb-base netbsd-7-0-1-RELEASE netbsd-7-0-RELEASE netbsd-7-0-RC3 netbsd-7-0-RC2 netbsd-7-0-RC1 nick-nhusb-base netbsd-7-base tls-earlyentropy-base tls-maxphys-base
# 1.24 19-May-2014 rmind

branches: 1.24.4;
Implement MI IPI interface with cross-call support.


Revision tags: yamt-pagecache-base9 riastradh-xf86-video-intel-2-7-1-pre-2-21-15 rmind-smpnet-nbase rmind-smpnet-base
# 1.23 29-Mar-2014 christos

branches: 1.23.2;
make pci_intr_string and eisa_intr_string take a buffer and a length
instead of relying in local static storage.


Revision tags: riastradh-drm2-base3 riastradh-drm2-base2 riastradh-drm2-base1 riastradh-drm2-base agc-symver-base yamt-pagecache-base8 yamt-pagecache-base7 yamt-pagecache-base6
# 1.22 29-Oct-2012 matt

branches: 1.22.2;
Change a KASSERT to a KASSERTMSG.


# 1.21 01-Aug-2012 matt

branches: 1.21.2;
Add a machine splhist command to give (a incomplete) spl history.
(only the most recent are going to be accurate).

splraise(6) from 0 at 549214603
splraise(7) from 6 at 549214643 (+40)
splx(6) from 7 at 549214691 (+48)
splx(0) from 6 at 549214730 (+39)


# 1.20 18-Jul-2012 matt

Add two missing interrupt sources for P1025.


# 1.19 15-Jul-2012 matt

Add support for the Freescale TWR-P1025 evaluation board and the P1025/P1016
QorIQ processors. XXX tsec isn't working yet on the TWR-P1025.


# 1.18 09-Jul-2012 matt

If we paniced because a watchdog timed out, PSL_CE will be clear. So don't
assert PSL_CE is set if panicstr is not NULL.


# 1.17 08-Jun-2012 matt

Compute softintr mask correctly.


Revision tags: jmcneill-usbmp-base10 yamt-pagecache-base5 jmcneill-usbmp-base9 yamt-pagecache-base4 jmcneill-usbmp-base8 jmcneill-usbmp-base7 jmcneill-usbmp-base6 jmcneill-usbmp-base5 jmcneill-usbmp-base4 jmcneill-usbmp-base3 jmcneill-usbmp-pre-base2 jmcneill-usbmp-base2 netbsd-6-base jmcneill-usbmp-base jmcneill-audiomp3-base yamt-pagecache-base3 yamt-pagecache-base2 yamt-pagecache-base
# 1.16 27-Sep-2011 jym

branches: 1.16.2; 1.16.8;
Modify *ASSERTMSG() so they are now used as variadic macros. The main goal
is to provide routines that do as KASSERT(9) says: append a message
to the panic format string when the assertion triggers, with optional
arguments.

Fix call sites to reflect the new definition.

Discussed on tech-kern@. See
http://mail-index.netbsd.org/tech-kern/2011/09/07/msg011427.html


# 1.15 29-Jun-2011 dholland

Add missing $NetBSD$ and/or __KERNEL_RCSID.


# 1.14 29-Jun-2011 matt

Panic when an ipi is sent to unknown cpu.


# 1.13 25-Jun-2011 matt

Make powerpc work on BookE. At this time we only support DOZE (lightest
form of power-saving). By default, power-saving is disabled but can be
enabled in /etc/sysctl.conf by setting machdep.powersave=1


# 1.12 21-Jun-2011 matt

In e500_spl0, grab ci after disabling interrupts.
Consolidate a KASSERT.


# 1.11 15-Jun-2011 matt

Add IST_PULSE and intr_typename (converts IST_* to a name).


# 1.10 14-Jun-2011 matt

Take the fast softint support in e500_intr.c and make generic so that it can
be used to provide fast softint for other interrupt implementations.


Revision tags: rmind-uvmplock-nbase rmind-uvmplock-base
# 1.9 08-Jun-2011 matt

Add an e500_idlespin to detect calls to idlespin when interrupts are blocked
or disabled.


# 1.8 05-Jun-2011 matt

Remove <machine/atomic.h>; use <sys/atomic.h> instead.
Add <powerpc/cpuset.h> (for mpc85xx pmap).
Add some initial MP code for mpc85xx
Rework ipi code to be common across all ppcs
Change PPC to keep curlwp in %r13 while in the kernel.
Move astpending from cpu_info to mdlwp
Improve cpu_need_resched to be more MP friendly.


Revision tags: cherry-xenmp-base
# 1.7 27-May-2011 matt

branches: 1.7.2;
Remove debugging printf. Add missing IMU2 interrupt string.


# 1.6 17-May-2011 dyoung

Add some grotty #ifdef'age to make this compile w/o DIAGNOSTIC.


Revision tags: jym-xensuspend-nbase jym-xensuspend-base
# 1.5 21-Mar-2011 matt

Fix a bug in onchip_intr_name_lookup


# 1.4 16-Mar-2011 matt

Fix various nits related to P2020 support.


Revision tags: uebayasi-xip-base7 bouyer-quota2-nbase bouyer-quota2-base
# 1.3 16-Feb-2011 matt

branches: 1.3.2;
Cleanup intr_info initialization. Make it per SVR.


# 1.2 18-Jan-2011 matt

branches: 1.2.2;
Add support for BookE Freescale MPC85xx (e500 core) processors.
Add fast softint support for PowerPC (though only booke uses it).
Redo FPU/VEC support and add e500 SPE support.
Rework trap/intrs to use a common trapframe format.
Support SOFTFLOAT (no hardfloat or fpu emulation) for BookE.


Revision tags: jruoho-x86intr-base
# 1.1 07-Jan-2011 matt

branches: 1.1.2; 1.1.4;
file e500_intr.c was initially added on branch matt-nb5-pq3.


# 1.35 01-Jun-2017 chs

remove checks for failure after memory allocation calls that cannot fail:

kmem_alloc() with KM_SLEEP
kmem_zalloc() with KM_SLEEP
percpu_alloc()
pserialize_create()
psref_class_create()

all of these paths include an assertion that the allocation has not failed,
so callers should not assert that again.


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
# 1.34 19-Oct-2016 nonaka

Added MSI/MSI-X and interrupt_distribute(9) support for powerpc.


Revision tags: 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 nick-nhusb-base-20150606
# 1.33 14-Apr-2015 jmcneill

branches: 1.33.2;
__HAVE_PREEEMPTION -> __HAVE_PREEMPTION


Revision tags: nick-nhusb-base-20150406
# 1.32 23-Jan-2015 nonaka

Initialize timer DR.


# 1.31 23-Jan-2015 nonaka

ddb MP support


# 1.30 23-Jan-2015 nonaka

Allow to share IPI interrupt.


# 1.29 05-Jan-2015 nonaka

Initialize lock objects.


# 1.28 27-Dec-2014 nonaka

Preliminary support for P1023.


# 1.27 20-Dec-2014 nonaka

Revert previous commit.


# 1.26 19-Dec-2014 nonaka

Pass ci->ci_cpuid as irq of IST_IPI.
Avoid "panic: e500_intr_cpu_hatch: failed to establish ipi interrupt!" on cpu1.


# 1.25 19-Dec-2014 nonaka

Added missing mutex_exit() at error path.


Revision tags: netbsd-7-1-RELEASE netbsd-7-1-RC2 netbsd-7-nhusb-base-20170116 netbsd-7-1-RC1 netbsd-7-0-2-RELEASE netbsd-7-nhusb-base netbsd-7-0-1-RELEASE netbsd-7-0-RELEASE netbsd-7-0-RC3 netbsd-7-0-RC2 netbsd-7-0-RC1 nick-nhusb-base netbsd-7-base tls-earlyentropy-base tls-maxphys-base
# 1.24 19-May-2014 rmind

branches: 1.24.4;
Implement MI IPI interface with cross-call support.


Revision tags: yamt-pagecache-base9 riastradh-xf86-video-intel-2-7-1-pre-2-21-15 rmind-smpnet-nbase rmind-smpnet-base
# 1.23 29-Mar-2014 christos

branches: 1.23.2;
make pci_intr_string and eisa_intr_string take a buffer and a length
instead of relying in local static storage.


Revision tags: riastradh-drm2-base3 riastradh-drm2-base2 riastradh-drm2-base1 riastradh-drm2-base agc-symver-base yamt-pagecache-base8 yamt-pagecache-base7 yamt-pagecache-base6
# 1.22 29-Oct-2012 matt

branches: 1.22.2;
Change a KASSERT to a KASSERTMSG.


# 1.21 01-Aug-2012 matt

branches: 1.21.2;
Add a machine splhist command to give (a incomplete) spl history.
(only the most recent are going to be accurate).

splraise(6) from 0 at 549214603
splraise(7) from 6 at 549214643 (+40)
splx(6) from 7 at 549214691 (+48)
splx(0) from 6 at 549214730 (+39)


# 1.20 18-Jul-2012 matt

Add two missing interrupt sources for P1025.


# 1.19 15-Jul-2012 matt

Add support for the Freescale TWR-P1025 evaluation board and the P1025/P1016
QorIQ processors. XXX tsec isn't working yet on the TWR-P1025.


# 1.18 09-Jul-2012 matt

If we paniced because a watchdog timed out, PSL_CE will be clear. So don't
assert PSL_CE is set if panicstr is not NULL.


# 1.17 08-Jun-2012 matt

Compute softintr mask correctly.


Revision tags: jmcneill-usbmp-base10 yamt-pagecache-base5 jmcneill-usbmp-base9 yamt-pagecache-base4 jmcneill-usbmp-base8 jmcneill-usbmp-base7 jmcneill-usbmp-base6 jmcneill-usbmp-base5 jmcneill-usbmp-base4 jmcneill-usbmp-base3 jmcneill-usbmp-pre-base2 jmcneill-usbmp-base2 netbsd-6-base jmcneill-usbmp-base jmcneill-audiomp3-base yamt-pagecache-base3 yamt-pagecache-base2 yamt-pagecache-base
# 1.16 27-Sep-2011 jym

branches: 1.16.2; 1.16.8;
Modify *ASSERTMSG() so they are now used as variadic macros. The main goal
is to provide routines that do as KASSERT(9) says: append a message
to the panic format string when the assertion triggers, with optional
arguments.

Fix call sites to reflect the new definition.

Discussed on tech-kern@. See
http://mail-index.netbsd.org/tech-kern/2011/09/07/msg011427.html


# 1.15 29-Jun-2011 dholland

Add missing $NetBSD$ and/or __KERNEL_RCSID.


# 1.14 29-Jun-2011 matt

Panic when an ipi is sent to unknown cpu.


# 1.13 25-Jun-2011 matt

Make powerpc work on BookE. At this time we only support DOZE (lightest
form of power-saving). By default, power-saving is disabled but can be
enabled in /etc/sysctl.conf by setting machdep.powersave=1


# 1.12 21-Jun-2011 matt

In e500_spl0, grab ci after disabling interrupts.
Consolidate a KASSERT.


# 1.11 15-Jun-2011 matt

Add IST_PULSE and intr_typename (converts IST_* to a name).


# 1.10 14-Jun-2011 matt

Take the fast softint support in e500_intr.c and make generic so that it can
be used to provide fast softint for other interrupt implementations.


Revision tags: rmind-uvmplock-nbase rmind-uvmplock-base
# 1.9 08-Jun-2011 matt

Add an e500_idlespin to detect calls to idlespin when interrupts are blocked
or disabled.


# 1.8 05-Jun-2011 matt

Remove <machine/atomic.h>; use <sys/atomic.h> instead.
Add <powerpc/cpuset.h> (for mpc85xx pmap).
Add some initial MP code for mpc85xx
Rework ipi code to be common across all ppcs
Change PPC to keep curlwp in %r13 while in the kernel.
Move astpending from cpu_info to mdlwp
Improve cpu_need_resched to be more MP friendly.


Revision tags: cherry-xenmp-base
# 1.7 27-May-2011 matt

branches: 1.7.2;
Remove debugging printf. Add missing IMU2 interrupt string.


# 1.6 17-May-2011 dyoung

Add some grotty #ifdef'age to make this compile w/o DIAGNOSTIC.


Revision tags: jym-xensuspend-nbase jym-xensuspend-base
# 1.5 21-Mar-2011 matt

Fix a bug in onchip_intr_name_lookup


# 1.4 16-Mar-2011 matt

Fix various nits related to P2020 support.


Revision tags: uebayasi-xip-base7 bouyer-quota2-nbase bouyer-quota2-base
# 1.3 16-Feb-2011 matt

branches: 1.3.2;
Cleanup intr_info initialization. Make it per SVR.


# 1.2 18-Jan-2011 matt

branches: 1.2.2;
Add support for BookE Freescale MPC85xx (e500 core) processors.
Add fast softint support for PowerPC (though only booke uses it).
Redo FPU/VEC support and add e500 SPE support.
Rework trap/intrs to use a common trapframe format.
Support SOFTFLOAT (no hardfloat or fpu emulation) for BookE.


Revision tags: jruoho-x86intr-base
# 1.1 07-Jan-2011 matt

branches: 1.1.2; 1.1.4;
file e500_intr.c was initially added on branch matt-nb5-pq3.


Revision tags: nick-nhusb-base-20161204 pgoyette-localcount-20161104
# 1.34 19-Oct-2016 nonaka

Added MSI/MSI-X and interrupt_distribute(9) support for powerpc.


Revision tags: 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 nick-nhusb-base-20150606
# 1.33 14-Apr-2015 jmcneill

branches: 1.33.2;
__HAVE_PREEEMPTION -> __HAVE_PREEMPTION


Revision tags: nick-nhusb-base-20150406
# 1.32 23-Jan-2015 nonaka

Initialize timer DR.


# 1.31 23-Jan-2015 nonaka

ddb MP support


# 1.30 23-Jan-2015 nonaka

Allow to share IPI interrupt.


# 1.29 05-Jan-2015 nonaka

Initialize lock objects.


# 1.28 27-Dec-2014 nonaka

Preliminary support for P1023.


# 1.27 20-Dec-2014 nonaka

Revert previous commit.


# 1.26 19-Dec-2014 nonaka

Pass ci->ci_cpuid as irq of IST_IPI.
Avoid "panic: e500_intr_cpu_hatch: failed to establish ipi interrupt!" on cpu1.


# 1.25 19-Dec-2014 nonaka

Added missing mutex_exit() at error path.


Revision tags: netbsd-7-0-2-RELEASE netbsd-7-nhusb-base netbsd-7-0-1-RELEASE netbsd-7-0-RELEASE netbsd-7-0-RC3 netbsd-7-0-RC2 netbsd-7-0-RC1 nick-nhusb-base netbsd-7-base tls-earlyentropy-base tls-maxphys-base
# 1.24 19-May-2014 rmind

branches: 1.24.4;
Implement MI IPI interface with cross-call support.


Revision tags: yamt-pagecache-base9 riastradh-xf86-video-intel-2-7-1-pre-2-21-15 rmind-smpnet-nbase rmind-smpnet-base
# 1.23 29-Mar-2014 christos

branches: 1.23.2;
make pci_intr_string and eisa_intr_string take a buffer and a length
instead of relying in local static storage.


Revision tags: riastradh-drm2-base3 riastradh-drm2-base2 riastradh-drm2-base1 riastradh-drm2-base agc-symver-base yamt-pagecache-base8 yamt-pagecache-base7 yamt-pagecache-base6
# 1.22 29-Oct-2012 matt

branches: 1.22.2;
Change a KASSERT to a KASSERTMSG.


# 1.21 01-Aug-2012 matt

branches: 1.21.2;
Add a machine splhist command to give (a incomplete) spl history.
(only the most recent are going to be accurate).

splraise(6) from 0 at 549214603
splraise(7) from 6 at 549214643 (+40)
splx(6) from 7 at 549214691 (+48)
splx(0) from 6 at 549214730 (+39)


# 1.20 18-Jul-2012 matt

Add two missing interrupt sources for P1025.


# 1.19 15-Jul-2012 matt

Add support for the Freescale TWR-P1025 evaluation board and the P1025/P1016
QorIQ processors. XXX tsec isn't working yet on the TWR-P1025.


# 1.18 09-Jul-2012 matt

If we paniced because a watchdog timed out, PSL_CE will be clear. So don't
assert PSL_CE is set if panicstr is not NULL.


# 1.17 08-Jun-2012 matt

Compute softintr mask correctly.


Revision tags: jmcneill-usbmp-base10 yamt-pagecache-base5 jmcneill-usbmp-base9 yamt-pagecache-base4 jmcneill-usbmp-base8 jmcneill-usbmp-base7 jmcneill-usbmp-base6 jmcneill-usbmp-base5 jmcneill-usbmp-base4 jmcneill-usbmp-base3 jmcneill-usbmp-pre-base2 jmcneill-usbmp-base2 netbsd-6-base jmcneill-usbmp-base jmcneill-audiomp3-base yamt-pagecache-base3 yamt-pagecache-base2 yamt-pagecache-base
# 1.16 27-Sep-2011 jym

branches: 1.16.2; 1.16.8;
Modify *ASSERTMSG() so they are now used as variadic macros. The main goal
is to provide routines that do as KASSERT(9) says: append a message
to the panic format string when the assertion triggers, with optional
arguments.

Fix call sites to reflect the new definition.

Discussed on tech-kern@. See
http://mail-index.netbsd.org/tech-kern/2011/09/07/msg011427.html


# 1.15 29-Jun-2011 dholland

Add missing $NetBSD$ and/or __KERNEL_RCSID.


# 1.14 29-Jun-2011 matt

Panic when an ipi is sent to unknown cpu.


# 1.13 25-Jun-2011 matt

Make powerpc work on BookE. At this time we only support DOZE (lightest
form of power-saving). By default, power-saving is disabled but can be
enabled in /etc/sysctl.conf by setting machdep.powersave=1


# 1.12 21-Jun-2011 matt

In e500_spl0, grab ci after disabling interrupts.
Consolidate a KASSERT.


# 1.11 15-Jun-2011 matt

Add IST_PULSE and intr_typename (converts IST_* to a name).


# 1.10 14-Jun-2011 matt

Take the fast softint support in e500_intr.c and make generic so that it can
be used to provide fast softint for other interrupt implementations.


Revision tags: rmind-uvmplock-nbase rmind-uvmplock-base
# 1.9 08-Jun-2011 matt

Add an e500_idlespin to detect calls to idlespin when interrupts are blocked
or disabled.


# 1.8 05-Jun-2011 matt

Remove <machine/atomic.h>; use <sys/atomic.h> instead.
Add <powerpc/cpuset.h> (for mpc85xx pmap).
Add some initial MP code for mpc85xx
Rework ipi code to be common across all ppcs
Change PPC to keep curlwp in %r13 while in the kernel.
Move astpending from cpu_info to mdlwp
Improve cpu_need_resched to be more MP friendly.


Revision tags: cherry-xenmp-base
# 1.7 27-May-2011 matt

branches: 1.7.2;
Remove debugging printf. Add missing IMU2 interrupt string.


# 1.6 17-May-2011 dyoung

Add some grotty #ifdef'age to make this compile w/o DIAGNOSTIC.


Revision tags: jym-xensuspend-nbase jym-xensuspend-base
# 1.5 21-Mar-2011 matt

Fix a bug in onchip_intr_name_lookup


# 1.4 16-Mar-2011 matt

Fix various nits related to P2020 support.


Revision tags: uebayasi-xip-base7 bouyer-quota2-nbase bouyer-quota2-base
# 1.3 16-Feb-2011 matt

branches: 1.3.2;
Cleanup intr_info initialization. Make it per SVR.


# 1.2 18-Jan-2011 matt

branches: 1.2.2;
Add support for BookE Freescale MPC85xx (e500 core) processors.
Add fast softint support for PowerPC (though only booke uses it).
Redo FPU/VEC support and add e500 SPE support.
Rework trap/intrs to use a common trapframe format.
Support SOFTFLOAT (no hardfloat or fpu emulation) for BookE.


Revision tags: jruoho-x86intr-base
# 1.1 07-Jan-2011 matt

branches: 1.1.2; 1.1.4;
file e500_intr.c was initially added on branch matt-nb5-pq3.