History log of /netbsd-current/sys/arch/sparc64/include/ctlreg.h
Revision (<<< Hide revision tags) (Show revision tags >>>) Date Author Comments
# 1.71 10-Mar-2024 rillig

sparc: fix snprintb formats for SFSR_BITS


# 1.70 02-Feb-2024 andvar

fix typos, mainly s/unsupport/unsupported/ in log messages.


Revision tags: thorpej-ifq-base thorpej-altq-separation-base
# 1.69 10-Aug-2023 andvar

fix typos in comments.


# 1.68 06-May-2023 andvar

few more typos in the word "register", mainly s/resister/register/.
In one comment I assume that it was meant to be pull-up resistor.


Revision tags: netbsd-10-0-RC5 netbsd-10-0-RC4 netbsd-10-0-RC3 netbsd-10-0-RC2 netbsd-10-0-RC1 netbsd-10-base bouyer-sunxi-drm-base 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 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 phil-wifi-20191119
# 1.67 13-Nov-2019 nakayama

Revert workarounds for clang.
In-tree clang can now handle the "r" asm constraint for 64-bit values properly.


Revision tags: netbsd-9-3-RELEASE netbsd-9-2-RELEASE netbsd-9-1-RELEASE netbsd-9-0-RELEASE netbsd-9-0-RC2 netbsd-9-0-RC1 netbsd-9-base phil-wifi-20190609 isaki-audio2-base
# 1.66 05-Apr-2019 nakayama

Redo previous.
In the case of store variant, put dummy constraint in output
instead of input.

Suggested by joerg@ in source-changes-d@


# 1.65 05-Apr-2019 nakayama

Add dummy constraints to avoid excessive optimization in clang.
GENERIC kernel compiled with clang now boot at least on my Fire V100.


Revision tags: netbsd-8-2-RELEASE netbsd-8-1-RELEASE netbsd-8-1-RC1 pgoyette-compat-merge-20190127 pgoyette-compat-20190127 pgoyette-compat-20190118 pgoyette-compat-1226 pgoyette-compat-1126 pgoyette-compat-1020 pgoyette-compat-0930 pgoyette-compat-0906 pgoyette-compat-0728 netbsd-8-0-RELEASE phil-wifi-base pgoyette-compat-0625 netbsd-8-0-RC2 pgoyette-compat-0521 pgoyette-compat-0502 pgoyette-compat-0422 netbsd-8-0-RC1 pgoyette-compat-0415 pgoyette-compat-0407 pgoyette-compat-0330 pgoyette-compat-0322 pgoyette-compat-0315 pgoyette-compat-base tls-maxphys-base-20171202 matt-nb8-mediatek-base nick-nhusb-base-20170825 perseant-stdc-iso10646-base netbsd-8-base 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
# 1.64 28-Dec-2016 martin

branches: 1.64.16;
Rename the "flush" macro to "sparc_flush_icache", the former is way too
generic for a macro name.


Revision tags: nick-nhusb-base-20161204 pgoyette-localcount-20161104 nick-nhusb-base-20161004 localcount-20160914 pgoyette-localcount-20160806 pgoyette-localcount-20160726 pgoyette-localcount-base nick-nhusb-base-20160907 nick-nhusb-base-20160529 nick-nhusb-base-20160422 nick-nhusb-base-20160319
# 1.63 03-Feb-2016 palle

branches: 1.63.2;
sun4v: extend dmmu_set_secondary_context() to handle both sun4u and sun4v. ok martin@


Revision tags: nick-nhusb-base-20151226 nick-nhusb-base-20150921 nick-nhusb-base-20150606 nick-nhusb-base-20150406
# 1.62 01-Apr-2015 palle

sun4v: Implement handling of cpu_mondo trap - from OpenBSD - tested using the Legion simulator


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.61 16-Jul-2014 palle

branches: 1.61.4;
sun4v: Introduce SET_MMU_CONTEXTID macro for setting the mmu context id on both sun4u and sun4v


Revision tags: yamt-pagecache-base9 riastradh-xf86-video-intel-2-7-1-pre-2-21-15 riastradh-drm2-base3 rmind-smpnet-nbase rmind-smpnet-base
# 1.60 16-Dec-2013 palle

branches: 1.60.2;
Updates to pmap_bootstrap() for sun4v - parts from OpenBSD - OK martin@


Revision tags: riastradh-drm2-base2 riastradh-drm2-base1 riastradh-drm2-base agc-symver-base yamt-pagecache-base8 yamt-pagecache-base7
# 1.59 08-Nov-2012 nakayama

branches: 1.59.2;
Rename ASR_IDSR to ASI_IDSR, which is ASI (Address Space Identifier),
not ASR (Ancillary State Register).


# 1.58 08-Nov-2012 nakayama

Move ASRs macro to more appropriate header.
While there remove useless macro.


# 1.57 08-Nov-2012 macallan

use system tick timer instead of %tick on UltraSPARC-III-ish CPUs
review & fixes by Takeshi Nakayama


Revision tags: netbsd-6-0-6-RELEASE netbsd-6-0-5-RELEASE netbsd-6-0-4-RELEASE netbsd-6-0-3-RELEASE netbsd-6-0-2-RELEASE netbsd-6-0-1-RELEASE matt-nb6-plus-nbase yamt-pagecache-base6 netbsd-6-0-RELEASE netbsd-6-0-RC2 matt-nb6-plus-base netbsd-6-0-RC1 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.56 08-Oct-2011 nakayama

branches: 1.56.2; 1.56.8; 1.56.12;
Fix namespace confilicts membar_ops(3) vs. macros for SPARC V9
membar instructions.


Revision tags: rmind-uvmplock-nbase cherry-xenmp-base rmind-uvmplock-base jym-xensuspend-nbase jym-xensuspend-base
# 1.55 16-Mar-2011 mrg

add some control registers found on the Fire and Jupiter busses.
from openbsd.


Revision tags: uebayasi-xip-base7 bouyer-quota2-nbase bouyer-quota2-base jruoho-x86intr-base matt-mips64-premerge-20101231
# 1.54 18-Dec-2010 mrg

branches: 1.54.2;
add a bit for MCCR_RAW_EN -- enable read-after-write.


Revision tags: uebayasi-xip-base6 uebayasi-xip-base5 uebayasi-xip-base4 uebayasi-xip-base3 yamt-nfs-mp-base11 uebayasi-xip-base2 yamt-nfs-mp-base10
# 1.53 10-Jul-2010 nakayama

Clear the upper word explicitly before combining two 32-bit values to 64-bit
on 32-bit kernels.


Revision tags: uebayasi-xip-base1 yamt-nfs-mp-base9
# 1.52 23-Feb-2010 mrg

branches: 1.52.2;
add some bits to set to access all the cheetah dtlb/itlb's.


# 1.51 21-Feb-2010 mrg

s/D-cache/I-cache/ in some comments.


# 1.50 13-Feb-2010 mrg

add some defines for the sizes of TLBs in various CPUs.


Revision tags: uebayasi-xip-base
# 1.49 01-Feb-2010 mrg

branches: 1.49.2;
for USIII, use the new "tlb demap all" operation in sp_tlb_flush_all()


Revision tags: matt-premerge-20091211
# 1.48 05-Dec-2009 nakayama

Garbage collect unused or incomplete definitions.


# 1.47 05-Dec-2009 nakayama

Bring together similar inline asm codes of ld*a and st*a definitions
using macro, also remove unnecessary membar #Sync and %asi restore in
the case of 32-bit kernel.

While there, introduce an optimization case that asi is constant if
we are using gcc.


# 1.46 28-Nov-2009 mrg

add some ultrasparcIII defines, from openbsd.


Revision tags: yamt-nfs-mp-base8 yamt-nfs-mp-base7 jymxensuspend-base yamt-nfs-mp-base6 yamt-nfs-mp-base5
# 1.45 16-May-2009 nakayama

- move definition of tick() from ctlreg.h to psl.h and rename to gettick()
for consistency with other functions for reading/writing ASRs.
- move definition of tl() from trap.c to psl.h as same as above.
- define settick() in psl.h and use it in clock.c.
- cosmetic chages in psl.h.


Revision tags: netbsd-5-2-3-RELEASE netbsd-5-1-5-RELEASE netbsd-5-2-2-RELEASE netbsd-5-1-4-RELEASE netbsd-5-2-1-RELEASE netbsd-5-1-3-RELEASE netbsd-5-2-RELEASE netbsd-5-2-RC1 netbsd-5-1-2-RELEASE netbsd-5-1-1-RELEASE matt-nb5-mips64-premerge-20101231 matt-nb5-pq3-base netbsd-5-1-RELEASE netbsd-5-1-RC4 matt-nb5-mips64-k15 netbsd-5-1-RC3 netbsd-5-1-RC2 netbsd-5-1-RC1 netbsd-5-0-2-RELEASE matt-nb5-mips64-premerge-20091211 matt-nb5-mips64-u2-k2-k4-k7-k8-k9 matt-nb4-mips64-k7-u2a-k9b matt-nb5-mips64-u1-k1-k5 netbsd-5-0-1-RELEASE yamt-nfs-mp-base4 yamt-nfs-mp-base3 nick-hppapmap-base4 nick-hppapmap-base3 netbsd-5-0-RELEASE netbsd-5-0-RC4 netbsd-5-0-RC3 nick-hppapmap-base2 netbsd-5-0-RC2 netbsd-5-0-RC1 haad-dm-base2 haad-nbase2 ad-audiomp2-base netbsd-5-base nick-hppapmap-base matt-mips64-base2 haad-dm-base1 wrstuden-revivesa-base-4 wrstuden-revivesa-base-3 wrstuden-revivesa-base-2 nick-csl-alignment-base5 haad-dm-base wrstuden-revivesa-base-1 simonb-wapbl-nbase yamt-pf42-base4 simonb-wapbl-base yamt-pf42-base3 hpcarm-cleanup-nbase yamt-pf42-baseX yamt-pf42-base2 yamt-nfs-mp-base2 wrstuden-revivesa-base yamt-nfs-mp-base yamt-pf42-base ad-socklock-base1 yamt-lazymbuf-base15 yamt-lazymbuf-base14 keiichi-mipv6-nbase mjf-devfs2-base nick-net80211-sync-base keiichi-mipv6-base bouyer-xeni386-merge1 matt-armv6-prevmlocking vmlocking2-base3 bouyer-xeni386-nbase yamt-kmem-base3 cube-autoconf-base yamt-kmem-base2 bouyer-xeni386-base yamt-kmem-base vmlocking2-base2 reinoud-bufcleanup-nbase vmlocking2-base1 matt-armv6-nbase jmcneill-base mjf-devfs-base bouyer-xenamd64-base2 vmlocking-nbase yamt-x86pmap-base4 bouyer-xenamd64-base yamt-x86pmap-base3 yamt-x86pmap-base2 yamt-x86pmap-base matt-armv6-base jmcneill-pm-base hpcarm-cleanup-base nick-csl-alignment-base matt-mips64-base yamt-idlelwp-base8 ppcoea-renovation-base thorpej-atomic-base reinoud-bufcleanup-base mjf-ufs-trans-base vmlocking-base
# 1.44 31-Mar-2007 hannken

branches: 1.44.38;
Cleanup last by using a "n"umeric address space identifier.

Ok: Martin Husemann <martin@netbsd.org>


# 1.43 30-Mar-2007 martin

When invalidating a context, make sure to flush user windows upfront.
Do not set the DMMU secondary context to 0 (that would be kernel), and
add a few required membars after switching the secondary dmmu context.

This avoids SIRs caused by double kernel_data_faults, caused by spills
of obsolete user windows after the context for that user pmap is gone.


Revision tags: ad-audiomp-base post-newlock2-merge newlock2-nbase yamt-splraiseipl-base5 yamt-splraiseipl-base4 yamt-splraiseipl-base3 abandoned-netbsd-4-base yamt-splraiseipl-base2 yamt-splraiseipl-base yamt-pdpolicy-base9 newlock2-base yamt-pdpolicy-base8 yamt-pdpolicy-base7 netbsd-4-base yamt-pdpolicy-base6 chap-midi-nbase gdamore-uart-base yamt-pdpolicy-base5 chap-midi-base yamt-pdpolicy-base4 yamt-pdpolicy-base3 peter-altq-base yamt-pdpolicy-base2 elad-kernelauth-base yamt-pdpolicy-base yamt-uio_vmspace-base5 simonb-timecounters-base rpaulo-netinet-merge-pcb-base
# 1.42 20-Feb-2006 cdi

branches: 1.42.18; 1.42.20; 1.42.24; 1.42.26;
Use ANSI-style function definitions and declarations.


# 1.41 16-Feb-2006 perry

Change "inline" back to "__inline" in .h files -- C99 is still too
new, and some apps compile things in C89 mode. C89 keywords stay.

As per core@.


# 1.40 11-Feb-2006 cdi

ANSIfication: u_intN_t -> uintN_t, use ANSI function declarations/definitions
instead of K&R ones.


# 1.39 24-Dec-2005 perry

branches: 1.39.2; 1.39.4; 1.39.6;
__asm__ -> __asm
__const__ -> const
__inline__ -> inline
__volatile__ -> volatile


# 1.38 24-Dec-2005 perry

Remove leading __ from __(const|inline|signed|volatile) -- it is obsolete.


# 1.37 11-Dec-2005 christos

merge ktrace-lwp.


Revision tags: netbsd-3-1-1-RELEASE netbsd-3-0-3-RELEASE netbsd-3-1-RELEASE netbsd-3-0-2-RELEASE netbsd-3-1-RC4 netbsd-3-1-RC3 netbsd-3-1-RC2 netbsd-3-1-RC1 netbsd-3-0-1-RELEASE netbsd-3-0-RELEASE netbsd-3-0-RC6 yamt-readahead-base3 netbsd-3-0-RC5 netbsd-3-0-RC4 netbsd-3-0-RC3 yamt-readahead-base2 netbsd-3-0-RC2 yamt-readahead-pervnode yamt-readahead-perfile yamt-readahead-base netbsd-3-0-RC1 yamt-vop-base3 yamt-vop-base2 thorpej-vnode-attr-base yamt-vop-base yamt-km-base4 yamt-km-base3 netbsd-3-base yamt-km-base2 yamt-km-base kent-audio2-base kent-audio1-beforemerge kent-audio1-base ktrace-lwp-base
# 1.36 01-Jul-2004 petrov

branches: 1.36.12;
Added UPA_MID definitions and macros(similar to FreeBSD).
Added membar_store, membar_load macros.
No need to set %asi _after_ alternate space use in corresponding functions.
Enable(unifdef) casa functions for __arch64__.


# 1.35 01-Jul-2004 heas

typo in define name, littie -> little


# 1.34 24-Jun-2004 martin

Add missing ; in inline assembler for 32bit kernels


# 1.33 17-Jun-2004 petrov

clean-up, reformat __asm statements.


Revision tags: netbsd-2-0-3-RELEASE netbsd-2-1-RELEASE netbsd-2-1-RC6 netbsd-2-1-RC5 netbsd-2-1-RC4 netbsd-2-1-RC3 netbsd-2-1-RC2 netbsd-2-1-RC1 netbsd-2-0-2-RELEASE netbsd-2-0-1-RELEASE netbsd-2-base netbsd-2-0-RELEASE netbsd-2-0-RC5 netbsd-2-0-RC4 netbsd-2-0-RC3 netbsd-2-0-RC2 netbsd-2-0-RC1 netbsd-2-0-base
# 1.32 22-Mar-2004 nakayama

Eliminate cast 64-bit address to u_long.


# 1.31 14-Mar-2004 chs

checkpoint of MP work from dennis and myself. includes cross-processor
interrupt framework, a sledgehammer TLB invalidation and misc MP fixes.
doesn't work at all yet.


Revision tags: netbsd-1-6-PATCH002-RELEASE netbsd-1-6-PATCH002 netbsd-1-6-PATCH002-RC4 netbsd-1-6-PATCH002-RC3 netbsd-1-6-PATCH002-RC2 netbsd-1-6-PATCH002-RC1 netbsd-1-6-PATCH001 netbsd-1-6-PATCH001-RELEASE netbsd-1-6-PATCH001-RC3 netbsd-1-6-PATCH001-RC2 netbsd-1-6-PATCH001-RC1 nathanw_sa_before_merge fvdl_fs64_base gmcgarry_ctxsw_base gmcgarry_ucred_base nathanw_sa_base kqueue-aftermerge kqueue-beforemerge netbsd-1-6-RELEASE netbsd-1-6-RC3 netbsd-1-6-RC2 netbsd-1-6-RC1 netbsd-1-6-base gehenna-devsw-base kqueue-base
# 1.30 24-Apr-2002 eeh

branches: 1.30.10;
Don't need to flush the d$ for MMU bypass accesses.


Revision tags: eeh-devprop-base newlock-base ifpoll-base
# 1.29 14-Jan-2002 eeh

Make PHYS_ASI() also recognize little-endian ASIs.


Revision tags: thorpej-mips-cache-base thorpej-devvp-base3 thorpej-devvp-base2 post-chs-ubcperf pre-chs-ubcperf thorpej-devvp-base
# 1.28 06-Aug-2001 eeh

branches: 1.28.6;
Add some alternate spellings for ASIs.
Make sure ASI_PRIMARY_NOFAULT is always restored.
Garbage collect some old code.


# 1.27 19-Jul-2001 eeh

Don't bother flushing cache lines for un-cached accesses.


# 1.26 29-Jun-2001 eeh

branches: 1.26.2;
Add the shorter version of block ASIs used by Sun.


Revision tags: thorpej_scsipi_beforemerge thorpej_scsipi_nbase thorpej_scsipi_base
# 1.25 29-Dec-2000 eeh

Fix some 32-bit assembly code.


# 1.24 04-Dec-2000 fvdl

Comment out caxsa, it's not used. Avoids 32 bit compile errors.


# 1.23 31-Aug-2000 eeh

Fix register sheduling bug in st?a() routines and add casxa().


Revision tags: mrg-merge-1-5-top
# 1.22 14-Jul-2000 eeh

Tell gcc that stores clobber "memory". Probably makes no difference since
they should not be used to access normal memory anyway.


# 1.21 24-Jun-2000 eeh

With these changes the kernel seems almost stable again.


# 1.20 24-Jun-2000 eeh

More VM cleanup:

Move the cpu_info structure above the interrupt stack so it won't
get corrupted if the stack overflows.

Flush the D$ before and after all MMU bypass accesses since the
D$ latches all of those.


# 1.19 20-Jun-2000 eeh

lda is unsigned, ldswa is signed. Fixes a 32-bit sign extension bug.


Revision tags: netbsd-1-5-base
# 1.18 19-Jun-2000 eeh

branches: 1.18.2;
Have separate data and text segments, make text read-only.


# 1.17 10-Jun-2000 eeh

Only use 32-bit addresses for all accesses that don't bypass the MMU.
Makes SBus work again.


# 1.16 08-Jun-2000 eeh

Fixup signed/unsigned issues so 32-bit addresses are not sign extended.


# 1.15 07-Jun-2000 pk

Add a couple of missing semi-colons.


# 1.14 02-Jun-2000 eeh

Use all 64 address bits in ld*a()/st*a() macros so physical device addresses
work. (Also add some bus_space_*() debug hooks).


Revision tags: minoura-xpg4dl-base
# 1.13 10-Apr-2000 mrg

branches: 1.13.2;
- IRSR_BUSY is bit 5 not bit 4.
- IRSR_MID(x) is &'d with 0x1f (5 bits) not 0xf.


Revision tags: chs-ubc2-newbase wrstuden-devbsize-19991221 wrstuden-devbsize-base comdex-fall-1999-base fvdl-softdep-base chs-ubc2-base
# 1.12 08-Jun-1999 mrg

branches: 1.12.2;
mmm, missing return types make gcc unhappy.


# 1.11 05-Jun-1999 eeh

Make pbrobeget() and probeset() work for 64-bit values as well. To do this
the arguments are changed so the address is first and the ASI second so we
can have the address in %o0:%o1 and not worry about unused registers.

Also a bit of copyright cleanup.


# 1.10 31-May-1999 eeh

Fix some bugs in some more of those asm macros.


# 1.9 30-May-1999 eeh

Re-write ASI load/stores to use full 64-bit addresses so we can use device
register addresses with MMU bypass ASIs.


# 1.8 22-May-1999 eeh

Fixup argument confusion to __asm() statements. long long is two registers
wide in 32-bit mode. Doh!.


# 1.7 11-May-1999 eeh

Don't clobber any input regs in __asm statements.


Revision tags: netbsd-1-4-PATCH003 netbsd-1-4-PATCH002 kame_141_19991130 netbsd-1-4-PATCH001 kame_14_19990705 kame_14_19990628 netbsd-1-4-RELEASE netbsd-1-4-base
# 1.6 22-Mar-1999 eeh

branches: 1.6.4;
Flush D$ on bypass accesses.


# 1.5 31-Jan-1999 mrg

retire _LP64; use compiler provided __arch64__, but still defined _LP64 where we used to anyway.


Revision tags: kenh-if-detach-base
# 1.4 13-Nov-1998 eeh

Fix 32-bit gcc scheduling problems.


Revision tags: chs-ubc-base
# 1.3 05-Sep-1998 eeh

It slices. It dices. It does everything except exec a sparc32_compat init.


# 1.2 02-Sep-1998 eeh

Periodic update: now starts probing devices.


# 1.1 20-Jun-1998 eeh

branches: 1.1.1;
Initial revision


# 1.70 02-Feb-2024 andvar

fix typos, mainly s/unsupport/unsupported/ in log messages.


Revision tags: thorpej-ifq-base thorpej-altq-separation-base
# 1.69 10-Aug-2023 andvar

fix typos in comments.


# 1.68 06-May-2023 andvar

few more typos in the word "register", mainly s/resister/register/.
In one comment I assume that it was meant to be pull-up resistor.


Revision tags: netbsd-10-0-RC3 netbsd-10-0-RC2 netbsd-10-0-RC1 netbsd-10-base bouyer-sunxi-drm-base 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 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 phil-wifi-20191119
# 1.67 13-Nov-2019 nakayama

Revert workarounds for clang.
In-tree clang can now handle the "r" asm constraint for 64-bit values properly.


Revision tags: netbsd-9-3-RELEASE netbsd-9-2-RELEASE netbsd-9-1-RELEASE netbsd-9-0-RELEASE netbsd-9-0-RC2 netbsd-9-0-RC1 netbsd-9-base phil-wifi-20190609 isaki-audio2-base
# 1.66 05-Apr-2019 nakayama

Redo previous.
In the case of store variant, put dummy constraint in output
instead of input.

Suggested by joerg@ in source-changes-d@


# 1.65 05-Apr-2019 nakayama

Add dummy constraints to avoid excessive optimization in clang.
GENERIC kernel compiled with clang now boot at least on my Fire V100.


Revision tags: netbsd-8-2-RELEASE netbsd-8-1-RELEASE netbsd-8-1-RC1 pgoyette-compat-merge-20190127 pgoyette-compat-20190127 pgoyette-compat-20190118 pgoyette-compat-1226 pgoyette-compat-1126 pgoyette-compat-1020 pgoyette-compat-0930 pgoyette-compat-0906 pgoyette-compat-0728 netbsd-8-0-RELEASE phil-wifi-base pgoyette-compat-0625 netbsd-8-0-RC2 pgoyette-compat-0521 pgoyette-compat-0502 pgoyette-compat-0422 netbsd-8-0-RC1 pgoyette-compat-0415 pgoyette-compat-0407 pgoyette-compat-0330 pgoyette-compat-0322 pgoyette-compat-0315 pgoyette-compat-base tls-maxphys-base-20171202 matt-nb8-mediatek-base nick-nhusb-base-20170825 perseant-stdc-iso10646-base netbsd-8-base 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
# 1.64 28-Dec-2016 martin

branches: 1.64.16;
Rename the "flush" macro to "sparc_flush_icache", the former is way too
generic for a macro name.


Revision tags: nick-nhusb-base-20161204 pgoyette-localcount-20161104 nick-nhusb-base-20161004 localcount-20160914 pgoyette-localcount-20160806 pgoyette-localcount-20160726 pgoyette-localcount-base nick-nhusb-base-20160907 nick-nhusb-base-20160529 nick-nhusb-base-20160422 nick-nhusb-base-20160319
# 1.63 03-Feb-2016 palle

branches: 1.63.2;
sun4v: extend dmmu_set_secondary_context() to handle both sun4u and sun4v. ok martin@


Revision tags: nick-nhusb-base-20151226 nick-nhusb-base-20150921 nick-nhusb-base-20150606 nick-nhusb-base-20150406
# 1.62 01-Apr-2015 palle

sun4v: Implement handling of cpu_mondo trap - from OpenBSD - tested using the Legion simulator


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.61 16-Jul-2014 palle

branches: 1.61.4;
sun4v: Introduce SET_MMU_CONTEXTID macro for setting the mmu context id on both sun4u and sun4v


Revision tags: yamt-pagecache-base9 riastradh-xf86-video-intel-2-7-1-pre-2-21-15 riastradh-drm2-base3 rmind-smpnet-nbase rmind-smpnet-base
# 1.60 16-Dec-2013 palle

branches: 1.60.2;
Updates to pmap_bootstrap() for sun4v - parts from OpenBSD - OK martin@


Revision tags: riastradh-drm2-base2 riastradh-drm2-base1 riastradh-drm2-base agc-symver-base yamt-pagecache-base8 yamt-pagecache-base7
# 1.59 08-Nov-2012 nakayama

branches: 1.59.2;
Rename ASR_IDSR to ASI_IDSR, which is ASI (Address Space Identifier),
not ASR (Ancillary State Register).


# 1.58 08-Nov-2012 nakayama

Move ASRs macro to more appropriate header.
While there remove useless macro.


# 1.57 08-Nov-2012 macallan

use system tick timer instead of %tick on UltraSPARC-III-ish CPUs
review & fixes by Takeshi Nakayama


Revision tags: netbsd-6-0-6-RELEASE netbsd-6-0-5-RELEASE netbsd-6-0-4-RELEASE netbsd-6-0-3-RELEASE netbsd-6-0-2-RELEASE netbsd-6-0-1-RELEASE matt-nb6-plus-nbase yamt-pagecache-base6 netbsd-6-0-RELEASE netbsd-6-0-RC2 matt-nb6-plus-base netbsd-6-0-RC1 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.56 08-Oct-2011 nakayama

branches: 1.56.2; 1.56.8; 1.56.12;
Fix namespace confilicts membar_ops(3) vs. macros for SPARC V9
membar instructions.


Revision tags: rmind-uvmplock-nbase cherry-xenmp-base rmind-uvmplock-base jym-xensuspend-nbase jym-xensuspend-base
# 1.55 16-Mar-2011 mrg

add some control registers found on the Fire and Jupiter busses.
from openbsd.


Revision tags: uebayasi-xip-base7 bouyer-quota2-nbase bouyer-quota2-base jruoho-x86intr-base matt-mips64-premerge-20101231
# 1.54 18-Dec-2010 mrg

branches: 1.54.2;
add a bit for MCCR_RAW_EN -- enable read-after-write.


Revision tags: uebayasi-xip-base6 uebayasi-xip-base5 uebayasi-xip-base4 uebayasi-xip-base3 yamt-nfs-mp-base11 uebayasi-xip-base2 yamt-nfs-mp-base10
# 1.53 10-Jul-2010 nakayama

Clear the upper word explicitly before combining two 32-bit values to 64-bit
on 32-bit kernels.


Revision tags: uebayasi-xip-base1 yamt-nfs-mp-base9
# 1.52 23-Feb-2010 mrg

branches: 1.52.2;
add some bits to set to access all the cheetah dtlb/itlb's.


# 1.51 21-Feb-2010 mrg

s/D-cache/I-cache/ in some comments.


# 1.50 13-Feb-2010 mrg

add some defines for the sizes of TLBs in various CPUs.


Revision tags: uebayasi-xip-base
# 1.49 01-Feb-2010 mrg

branches: 1.49.2;
for USIII, use the new "tlb demap all" operation in sp_tlb_flush_all()


Revision tags: matt-premerge-20091211
# 1.48 05-Dec-2009 nakayama

Garbage collect unused or incomplete definitions.


# 1.47 05-Dec-2009 nakayama

Bring together similar inline asm codes of ld*a and st*a definitions
using macro, also remove unnecessary membar #Sync and %asi restore in
the case of 32-bit kernel.

While there, introduce an optimization case that asi is constant if
we are using gcc.


# 1.46 28-Nov-2009 mrg

add some ultrasparcIII defines, from openbsd.


Revision tags: yamt-nfs-mp-base8 yamt-nfs-mp-base7 jymxensuspend-base yamt-nfs-mp-base6 yamt-nfs-mp-base5
# 1.45 16-May-2009 nakayama

- move definition of tick() from ctlreg.h to psl.h and rename to gettick()
for consistency with other functions for reading/writing ASRs.
- move definition of tl() from trap.c to psl.h as same as above.
- define settick() in psl.h and use it in clock.c.
- cosmetic chages in psl.h.


Revision tags: netbsd-5-2-3-RELEASE netbsd-5-1-5-RELEASE netbsd-5-2-2-RELEASE netbsd-5-1-4-RELEASE netbsd-5-2-1-RELEASE netbsd-5-1-3-RELEASE netbsd-5-2-RELEASE netbsd-5-2-RC1 netbsd-5-1-2-RELEASE netbsd-5-1-1-RELEASE matt-nb5-mips64-premerge-20101231 matt-nb5-pq3-base netbsd-5-1-RELEASE netbsd-5-1-RC4 matt-nb5-mips64-k15 netbsd-5-1-RC3 netbsd-5-1-RC2 netbsd-5-1-RC1 netbsd-5-0-2-RELEASE matt-nb5-mips64-premerge-20091211 matt-nb5-mips64-u2-k2-k4-k7-k8-k9 matt-nb4-mips64-k7-u2a-k9b matt-nb5-mips64-u1-k1-k5 netbsd-5-0-1-RELEASE yamt-nfs-mp-base4 yamt-nfs-mp-base3 nick-hppapmap-base4 nick-hppapmap-base3 netbsd-5-0-RELEASE netbsd-5-0-RC4 netbsd-5-0-RC3 nick-hppapmap-base2 netbsd-5-0-RC2 netbsd-5-0-RC1 haad-dm-base2 haad-nbase2 ad-audiomp2-base netbsd-5-base nick-hppapmap-base matt-mips64-base2 haad-dm-base1 wrstuden-revivesa-base-4 wrstuden-revivesa-base-3 wrstuden-revivesa-base-2 nick-csl-alignment-base5 haad-dm-base wrstuden-revivesa-base-1 simonb-wapbl-nbase yamt-pf42-base4 simonb-wapbl-base yamt-pf42-base3 hpcarm-cleanup-nbase yamt-pf42-baseX yamt-pf42-base2 yamt-nfs-mp-base2 wrstuden-revivesa-base yamt-nfs-mp-base yamt-pf42-base ad-socklock-base1 yamt-lazymbuf-base15 yamt-lazymbuf-base14 keiichi-mipv6-nbase mjf-devfs2-base nick-net80211-sync-base keiichi-mipv6-base bouyer-xeni386-merge1 matt-armv6-prevmlocking vmlocking2-base3 bouyer-xeni386-nbase yamt-kmem-base3 cube-autoconf-base yamt-kmem-base2 bouyer-xeni386-base yamt-kmem-base vmlocking2-base2 reinoud-bufcleanup-nbase vmlocking2-base1 matt-armv6-nbase jmcneill-base mjf-devfs-base bouyer-xenamd64-base2 vmlocking-nbase yamt-x86pmap-base4 bouyer-xenamd64-base yamt-x86pmap-base3 yamt-x86pmap-base2 yamt-x86pmap-base matt-armv6-base jmcneill-pm-base hpcarm-cleanup-base nick-csl-alignment-base matt-mips64-base yamt-idlelwp-base8 ppcoea-renovation-base thorpej-atomic-base reinoud-bufcleanup-base mjf-ufs-trans-base vmlocking-base
# 1.44 31-Mar-2007 hannken

branches: 1.44.38;
Cleanup last by using a "n"umeric address space identifier.

Ok: Martin Husemann <martin@netbsd.org>


# 1.43 30-Mar-2007 martin

When invalidating a context, make sure to flush user windows upfront.
Do not set the DMMU secondary context to 0 (that would be kernel), and
add a few required membars after switching the secondary dmmu context.

This avoids SIRs caused by double kernel_data_faults, caused by spills
of obsolete user windows after the context for that user pmap is gone.


Revision tags: ad-audiomp-base post-newlock2-merge newlock2-nbase yamt-splraiseipl-base5 yamt-splraiseipl-base4 yamt-splraiseipl-base3 abandoned-netbsd-4-base yamt-splraiseipl-base2 yamt-splraiseipl-base yamt-pdpolicy-base9 newlock2-base yamt-pdpolicy-base8 yamt-pdpolicy-base7 netbsd-4-base yamt-pdpolicy-base6 chap-midi-nbase gdamore-uart-base yamt-pdpolicy-base5 chap-midi-base yamt-pdpolicy-base4 yamt-pdpolicy-base3 peter-altq-base yamt-pdpolicy-base2 elad-kernelauth-base yamt-pdpolicy-base yamt-uio_vmspace-base5 simonb-timecounters-base rpaulo-netinet-merge-pcb-base
# 1.42 20-Feb-2006 cdi

branches: 1.42.18; 1.42.20; 1.42.24; 1.42.26;
Use ANSI-style function definitions and declarations.


# 1.41 16-Feb-2006 perry

Change "inline" back to "__inline" in .h files -- C99 is still too
new, and some apps compile things in C89 mode. C89 keywords stay.

As per core@.


# 1.40 11-Feb-2006 cdi

ANSIfication: u_intN_t -> uintN_t, use ANSI function declarations/definitions
instead of K&R ones.


# 1.39 24-Dec-2005 perry

branches: 1.39.2; 1.39.4; 1.39.6;
__asm__ -> __asm
__const__ -> const
__inline__ -> inline
__volatile__ -> volatile


# 1.38 24-Dec-2005 perry

Remove leading __ from __(const|inline|signed|volatile) -- it is obsolete.


# 1.37 11-Dec-2005 christos

merge ktrace-lwp.


Revision tags: netbsd-3-1-1-RELEASE netbsd-3-0-3-RELEASE netbsd-3-1-RELEASE netbsd-3-0-2-RELEASE netbsd-3-1-RC4 netbsd-3-1-RC3 netbsd-3-1-RC2 netbsd-3-1-RC1 netbsd-3-0-1-RELEASE netbsd-3-0-RELEASE netbsd-3-0-RC6 yamt-readahead-base3 netbsd-3-0-RC5 netbsd-3-0-RC4 netbsd-3-0-RC3 yamt-readahead-base2 netbsd-3-0-RC2 yamt-readahead-pervnode yamt-readahead-perfile yamt-readahead-base netbsd-3-0-RC1 yamt-vop-base3 yamt-vop-base2 thorpej-vnode-attr-base yamt-vop-base yamt-km-base4 yamt-km-base3 netbsd-3-base yamt-km-base2 yamt-km-base kent-audio2-base kent-audio1-beforemerge kent-audio1-base ktrace-lwp-base
# 1.36 01-Jul-2004 petrov

branches: 1.36.12;
Added UPA_MID definitions and macros(similar to FreeBSD).
Added membar_store, membar_load macros.
No need to set %asi _after_ alternate space use in corresponding functions.
Enable(unifdef) casa functions for __arch64__.


# 1.35 01-Jul-2004 heas

typo in define name, littie -> little


# 1.34 24-Jun-2004 martin

Add missing ; in inline assembler for 32bit kernels


# 1.33 17-Jun-2004 petrov

clean-up, reformat __asm statements.


Revision tags: netbsd-2-0-3-RELEASE netbsd-2-1-RELEASE netbsd-2-1-RC6 netbsd-2-1-RC5 netbsd-2-1-RC4 netbsd-2-1-RC3 netbsd-2-1-RC2 netbsd-2-1-RC1 netbsd-2-0-2-RELEASE netbsd-2-0-1-RELEASE netbsd-2-base netbsd-2-0-RELEASE netbsd-2-0-RC5 netbsd-2-0-RC4 netbsd-2-0-RC3 netbsd-2-0-RC2 netbsd-2-0-RC1 netbsd-2-0-base
# 1.32 22-Mar-2004 nakayama

Eliminate cast 64-bit address to u_long.


# 1.31 14-Mar-2004 chs

checkpoint of MP work from dennis and myself. includes cross-processor
interrupt framework, a sledgehammer TLB invalidation and misc MP fixes.
doesn't work at all yet.


Revision tags: netbsd-1-6-PATCH002-RELEASE netbsd-1-6-PATCH002 netbsd-1-6-PATCH002-RC4 netbsd-1-6-PATCH002-RC3 netbsd-1-6-PATCH002-RC2 netbsd-1-6-PATCH002-RC1 netbsd-1-6-PATCH001 netbsd-1-6-PATCH001-RELEASE netbsd-1-6-PATCH001-RC3 netbsd-1-6-PATCH001-RC2 netbsd-1-6-PATCH001-RC1 nathanw_sa_before_merge fvdl_fs64_base gmcgarry_ctxsw_base gmcgarry_ucred_base nathanw_sa_base kqueue-aftermerge kqueue-beforemerge netbsd-1-6-RELEASE netbsd-1-6-RC3 netbsd-1-6-RC2 netbsd-1-6-RC1 netbsd-1-6-base gehenna-devsw-base kqueue-base
# 1.30 24-Apr-2002 eeh

branches: 1.30.10;
Don't need to flush the d$ for MMU bypass accesses.


Revision tags: eeh-devprop-base newlock-base ifpoll-base
# 1.29 14-Jan-2002 eeh

Make PHYS_ASI() also recognize little-endian ASIs.


Revision tags: thorpej-mips-cache-base thorpej-devvp-base3 thorpej-devvp-base2 post-chs-ubcperf pre-chs-ubcperf thorpej-devvp-base
# 1.28 06-Aug-2001 eeh

branches: 1.28.6;
Add some alternate spellings for ASIs.
Make sure ASI_PRIMARY_NOFAULT is always restored.
Garbage collect some old code.


# 1.27 19-Jul-2001 eeh

Don't bother flushing cache lines for un-cached accesses.


# 1.26 29-Jun-2001 eeh

branches: 1.26.2;
Add the shorter version of block ASIs used by Sun.


Revision tags: thorpej_scsipi_beforemerge thorpej_scsipi_nbase thorpej_scsipi_base
# 1.25 29-Dec-2000 eeh

Fix some 32-bit assembly code.


# 1.24 04-Dec-2000 fvdl

Comment out caxsa, it's not used. Avoids 32 bit compile errors.


# 1.23 31-Aug-2000 eeh

Fix register sheduling bug in st?a() routines and add casxa().


Revision tags: mrg-merge-1-5-top
# 1.22 14-Jul-2000 eeh

Tell gcc that stores clobber "memory". Probably makes no difference since
they should not be used to access normal memory anyway.


# 1.21 24-Jun-2000 eeh

With these changes the kernel seems almost stable again.


# 1.20 24-Jun-2000 eeh

More VM cleanup:

Move the cpu_info structure above the interrupt stack so it won't
get corrupted if the stack overflows.

Flush the D$ before and after all MMU bypass accesses since the
D$ latches all of those.


# 1.19 20-Jun-2000 eeh

lda is unsigned, ldswa is signed. Fixes a 32-bit sign extension bug.


Revision tags: netbsd-1-5-base
# 1.18 19-Jun-2000 eeh

branches: 1.18.2;
Have separate data and text segments, make text read-only.


# 1.17 10-Jun-2000 eeh

Only use 32-bit addresses for all accesses that don't bypass the MMU.
Makes SBus work again.


# 1.16 08-Jun-2000 eeh

Fixup signed/unsigned issues so 32-bit addresses are not sign extended.


# 1.15 07-Jun-2000 pk

Add a couple of missing semi-colons.


# 1.14 02-Jun-2000 eeh

Use all 64 address bits in ld*a()/st*a() macros so physical device addresses
work. (Also add some bus_space_*() debug hooks).


Revision tags: minoura-xpg4dl-base
# 1.13 10-Apr-2000 mrg

branches: 1.13.2;
- IRSR_BUSY is bit 5 not bit 4.
- IRSR_MID(x) is &'d with 0x1f (5 bits) not 0xf.


Revision tags: chs-ubc2-newbase wrstuden-devbsize-19991221 wrstuden-devbsize-base comdex-fall-1999-base fvdl-softdep-base chs-ubc2-base
# 1.12 08-Jun-1999 mrg

branches: 1.12.2;
mmm, missing return types make gcc unhappy.


# 1.11 05-Jun-1999 eeh

Make pbrobeget() and probeset() work for 64-bit values as well. To do this
the arguments are changed so the address is first and the ASI second so we
can have the address in %o0:%o1 and not worry about unused registers.

Also a bit of copyright cleanup.


# 1.10 31-May-1999 eeh

Fix some bugs in some more of those asm macros.


# 1.9 30-May-1999 eeh

Re-write ASI load/stores to use full 64-bit addresses so we can use device
register addresses with MMU bypass ASIs.


# 1.8 22-May-1999 eeh

Fixup argument confusion to __asm() statements. long long is two registers
wide in 32-bit mode. Doh!.


# 1.7 11-May-1999 eeh

Don't clobber any input regs in __asm statements.


Revision tags: netbsd-1-4-PATCH003 netbsd-1-4-PATCH002 kame_141_19991130 netbsd-1-4-PATCH001 kame_14_19990705 kame_14_19990628 netbsd-1-4-RELEASE netbsd-1-4-base
# 1.6 22-Mar-1999 eeh

branches: 1.6.4;
Flush D$ on bypass accesses.


# 1.5 31-Jan-1999 mrg

retire _LP64; use compiler provided __arch64__, but still defined _LP64 where we used to anyway.


Revision tags: kenh-if-detach-base
# 1.4 13-Nov-1998 eeh

Fix 32-bit gcc scheduling problems.


Revision tags: chs-ubc-base
# 1.3 05-Sep-1998 eeh

It slices. It dices. It does everything except exec a sparc32_compat init.


# 1.2 02-Sep-1998 eeh

Periodic update: now starts probing devices.


# 1.1 20-Jun-1998 eeh

branches: 1.1.1;
Initial revision


# 1.69 10-Aug-2023 andvar

fix typos in comments.


# 1.68 06-May-2023 andvar

few more typos in the word "register", mainly s/resister/register/.
In one comment I assume that it was meant to be pull-up resistor.


Revision tags: netbsd-10-base bouyer-sunxi-drm-base 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 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 phil-wifi-20191119
# 1.67 13-Nov-2019 nakayama

Revert workarounds for clang.
In-tree clang can now handle the "r" asm constraint for 64-bit values properly.


Revision tags: netbsd-9-3-RELEASE netbsd-9-2-RELEASE netbsd-9-1-RELEASE netbsd-9-0-RELEASE netbsd-9-0-RC2 netbsd-9-0-RC1 netbsd-9-base phil-wifi-20190609 isaki-audio2-base
# 1.66 05-Apr-2019 nakayama

Redo previous.
In the case of store variant, put dummy constraint in output
instead of input.

Suggested by joerg@ in source-changes-d@


# 1.65 05-Apr-2019 nakayama

Add dummy constraints to avoid excessive optimization in clang.
GENERIC kernel compiled with clang now boot at least on my Fire V100.


Revision tags: netbsd-8-2-RELEASE netbsd-8-1-RELEASE netbsd-8-1-RC1 pgoyette-compat-merge-20190127 pgoyette-compat-20190127 pgoyette-compat-20190118 pgoyette-compat-1226 pgoyette-compat-1126 pgoyette-compat-1020 pgoyette-compat-0930 pgoyette-compat-0906 pgoyette-compat-0728 netbsd-8-0-RELEASE phil-wifi-base pgoyette-compat-0625 netbsd-8-0-RC2 pgoyette-compat-0521 pgoyette-compat-0502 pgoyette-compat-0422 netbsd-8-0-RC1 pgoyette-compat-0415 pgoyette-compat-0407 pgoyette-compat-0330 pgoyette-compat-0322 pgoyette-compat-0315 pgoyette-compat-base tls-maxphys-base-20171202 matt-nb8-mediatek-base nick-nhusb-base-20170825 perseant-stdc-iso10646-base netbsd-8-base 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
# 1.64 28-Dec-2016 martin

branches: 1.64.16;
Rename the "flush" macro to "sparc_flush_icache", the former is way too
generic for a macro name.


Revision tags: nick-nhusb-base-20161204 pgoyette-localcount-20161104 nick-nhusb-base-20161004 localcount-20160914 pgoyette-localcount-20160806 pgoyette-localcount-20160726 pgoyette-localcount-base nick-nhusb-base-20160907 nick-nhusb-base-20160529 nick-nhusb-base-20160422 nick-nhusb-base-20160319
# 1.63 03-Feb-2016 palle

branches: 1.63.2;
sun4v: extend dmmu_set_secondary_context() to handle both sun4u and sun4v. ok martin@


Revision tags: nick-nhusb-base-20151226 nick-nhusb-base-20150921 nick-nhusb-base-20150606 nick-nhusb-base-20150406
# 1.62 01-Apr-2015 palle

sun4v: Implement handling of cpu_mondo trap - from OpenBSD - tested using the Legion simulator


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.61 16-Jul-2014 palle

branches: 1.61.4;
sun4v: Introduce SET_MMU_CONTEXTID macro for setting the mmu context id on both sun4u and sun4v


Revision tags: yamt-pagecache-base9 riastradh-xf86-video-intel-2-7-1-pre-2-21-15 riastradh-drm2-base3 rmind-smpnet-nbase rmind-smpnet-base
# 1.60 16-Dec-2013 palle

branches: 1.60.2;
Updates to pmap_bootstrap() for sun4v - parts from OpenBSD - OK martin@


Revision tags: riastradh-drm2-base2 riastradh-drm2-base1 riastradh-drm2-base agc-symver-base yamt-pagecache-base8 yamt-pagecache-base7
# 1.59 08-Nov-2012 nakayama

branches: 1.59.2;
Rename ASR_IDSR to ASI_IDSR, which is ASI (Address Space Identifier),
not ASR (Ancillary State Register).


# 1.58 08-Nov-2012 nakayama

Move ASRs macro to more appropriate header.
While there remove useless macro.


# 1.57 08-Nov-2012 macallan

use system tick timer instead of %tick on UltraSPARC-III-ish CPUs
review & fixes by Takeshi Nakayama


Revision tags: netbsd-6-0-6-RELEASE netbsd-6-0-5-RELEASE netbsd-6-0-4-RELEASE netbsd-6-0-3-RELEASE netbsd-6-0-2-RELEASE netbsd-6-0-1-RELEASE matt-nb6-plus-nbase yamt-pagecache-base6 netbsd-6-0-RELEASE netbsd-6-0-RC2 matt-nb6-plus-base netbsd-6-0-RC1 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.56 08-Oct-2011 nakayama

branches: 1.56.2; 1.56.8; 1.56.12;
Fix namespace confilicts membar_ops(3) vs. macros for SPARC V9
membar instructions.


Revision tags: rmind-uvmplock-nbase cherry-xenmp-base rmind-uvmplock-base jym-xensuspend-nbase jym-xensuspend-base
# 1.55 16-Mar-2011 mrg

add some control registers found on the Fire and Jupiter busses.
from openbsd.


Revision tags: uebayasi-xip-base7 bouyer-quota2-nbase bouyer-quota2-base jruoho-x86intr-base matt-mips64-premerge-20101231
# 1.54 18-Dec-2010 mrg

branches: 1.54.2;
add a bit for MCCR_RAW_EN -- enable read-after-write.


Revision tags: uebayasi-xip-base6 uebayasi-xip-base5 uebayasi-xip-base4 uebayasi-xip-base3 yamt-nfs-mp-base11 uebayasi-xip-base2 yamt-nfs-mp-base10
# 1.53 10-Jul-2010 nakayama

Clear the upper word explicitly before combining two 32-bit values to 64-bit
on 32-bit kernels.


Revision tags: uebayasi-xip-base1 yamt-nfs-mp-base9
# 1.52 23-Feb-2010 mrg

branches: 1.52.2;
add some bits to set to access all the cheetah dtlb/itlb's.


# 1.51 21-Feb-2010 mrg

s/D-cache/I-cache/ in some comments.


# 1.50 13-Feb-2010 mrg

add some defines for the sizes of TLBs in various CPUs.


Revision tags: uebayasi-xip-base
# 1.49 01-Feb-2010 mrg

branches: 1.49.2;
for USIII, use the new "tlb demap all" operation in sp_tlb_flush_all()


Revision tags: matt-premerge-20091211
# 1.48 05-Dec-2009 nakayama

Garbage collect unused or incomplete definitions.


# 1.47 05-Dec-2009 nakayama

Bring together similar inline asm codes of ld*a and st*a definitions
using macro, also remove unnecessary membar #Sync and %asi restore in
the case of 32-bit kernel.

While there, introduce an optimization case that asi is constant if
we are using gcc.


# 1.46 28-Nov-2009 mrg

add some ultrasparcIII defines, from openbsd.


Revision tags: yamt-nfs-mp-base8 yamt-nfs-mp-base7 jymxensuspend-base yamt-nfs-mp-base6 yamt-nfs-mp-base5
# 1.45 16-May-2009 nakayama

- move definition of tick() from ctlreg.h to psl.h and rename to gettick()
for consistency with other functions for reading/writing ASRs.
- move definition of tl() from trap.c to psl.h as same as above.
- define settick() in psl.h and use it in clock.c.
- cosmetic chages in psl.h.


Revision tags: netbsd-5-2-3-RELEASE netbsd-5-1-5-RELEASE netbsd-5-2-2-RELEASE netbsd-5-1-4-RELEASE netbsd-5-2-1-RELEASE netbsd-5-1-3-RELEASE netbsd-5-2-RELEASE netbsd-5-2-RC1 netbsd-5-1-2-RELEASE netbsd-5-1-1-RELEASE matt-nb5-mips64-premerge-20101231 matt-nb5-pq3-base netbsd-5-1-RELEASE netbsd-5-1-RC4 matt-nb5-mips64-k15 netbsd-5-1-RC3 netbsd-5-1-RC2 netbsd-5-1-RC1 netbsd-5-0-2-RELEASE matt-nb5-mips64-premerge-20091211 matt-nb5-mips64-u2-k2-k4-k7-k8-k9 matt-nb4-mips64-k7-u2a-k9b matt-nb5-mips64-u1-k1-k5 netbsd-5-0-1-RELEASE yamt-nfs-mp-base4 yamt-nfs-mp-base3 nick-hppapmap-base4 nick-hppapmap-base3 netbsd-5-0-RELEASE netbsd-5-0-RC4 netbsd-5-0-RC3 nick-hppapmap-base2 netbsd-5-0-RC2 netbsd-5-0-RC1 haad-dm-base2 haad-nbase2 ad-audiomp2-base netbsd-5-base nick-hppapmap-base matt-mips64-base2 haad-dm-base1 wrstuden-revivesa-base-4 wrstuden-revivesa-base-3 wrstuden-revivesa-base-2 nick-csl-alignment-base5 haad-dm-base wrstuden-revivesa-base-1 simonb-wapbl-nbase yamt-pf42-base4 simonb-wapbl-base yamt-pf42-base3 hpcarm-cleanup-nbase yamt-pf42-baseX yamt-pf42-base2 yamt-nfs-mp-base2 wrstuden-revivesa-base yamt-nfs-mp-base yamt-pf42-base ad-socklock-base1 yamt-lazymbuf-base15 yamt-lazymbuf-base14 keiichi-mipv6-nbase mjf-devfs2-base nick-net80211-sync-base keiichi-mipv6-base bouyer-xeni386-merge1 matt-armv6-prevmlocking vmlocking2-base3 bouyer-xeni386-nbase yamt-kmem-base3 cube-autoconf-base yamt-kmem-base2 bouyer-xeni386-base yamt-kmem-base vmlocking2-base2 reinoud-bufcleanup-nbase vmlocking2-base1 matt-armv6-nbase jmcneill-base mjf-devfs-base bouyer-xenamd64-base2 vmlocking-nbase yamt-x86pmap-base4 bouyer-xenamd64-base yamt-x86pmap-base3 yamt-x86pmap-base2 yamt-x86pmap-base matt-armv6-base jmcneill-pm-base hpcarm-cleanup-base nick-csl-alignment-base matt-mips64-base yamt-idlelwp-base8 ppcoea-renovation-base thorpej-atomic-base reinoud-bufcleanup-base mjf-ufs-trans-base vmlocking-base
# 1.44 31-Mar-2007 hannken

branches: 1.44.38;
Cleanup last by using a "n"umeric address space identifier.

Ok: Martin Husemann <martin@netbsd.org>


# 1.43 30-Mar-2007 martin

When invalidating a context, make sure to flush user windows upfront.
Do not set the DMMU secondary context to 0 (that would be kernel), and
add a few required membars after switching the secondary dmmu context.

This avoids SIRs caused by double kernel_data_faults, caused by spills
of obsolete user windows after the context for that user pmap is gone.


Revision tags: ad-audiomp-base post-newlock2-merge newlock2-nbase yamt-splraiseipl-base5 yamt-splraiseipl-base4 yamt-splraiseipl-base3 abandoned-netbsd-4-base yamt-splraiseipl-base2 yamt-splraiseipl-base yamt-pdpolicy-base9 newlock2-base yamt-pdpolicy-base8 yamt-pdpolicy-base7 netbsd-4-base yamt-pdpolicy-base6 chap-midi-nbase gdamore-uart-base yamt-pdpolicy-base5 chap-midi-base yamt-pdpolicy-base4 yamt-pdpolicy-base3 peter-altq-base yamt-pdpolicy-base2 elad-kernelauth-base yamt-pdpolicy-base yamt-uio_vmspace-base5 simonb-timecounters-base rpaulo-netinet-merge-pcb-base
# 1.42 20-Feb-2006 cdi

branches: 1.42.18; 1.42.20; 1.42.24; 1.42.26;
Use ANSI-style function definitions and declarations.


# 1.41 16-Feb-2006 perry

Change "inline" back to "__inline" in .h files -- C99 is still too
new, and some apps compile things in C89 mode. C89 keywords stay.

As per core@.


# 1.40 11-Feb-2006 cdi

ANSIfication: u_intN_t -> uintN_t, use ANSI function declarations/definitions
instead of K&R ones.


# 1.39 24-Dec-2005 perry

branches: 1.39.2; 1.39.4; 1.39.6;
__asm__ -> __asm
__const__ -> const
__inline__ -> inline
__volatile__ -> volatile


# 1.38 24-Dec-2005 perry

Remove leading __ from __(const|inline|signed|volatile) -- it is obsolete.


# 1.37 11-Dec-2005 christos

merge ktrace-lwp.


Revision tags: netbsd-3-1-1-RELEASE netbsd-3-0-3-RELEASE netbsd-3-1-RELEASE netbsd-3-0-2-RELEASE netbsd-3-1-RC4 netbsd-3-1-RC3 netbsd-3-1-RC2 netbsd-3-1-RC1 netbsd-3-0-1-RELEASE netbsd-3-0-RELEASE netbsd-3-0-RC6 yamt-readahead-base3 netbsd-3-0-RC5 netbsd-3-0-RC4 netbsd-3-0-RC3 yamt-readahead-base2 netbsd-3-0-RC2 yamt-readahead-pervnode yamt-readahead-perfile yamt-readahead-base netbsd-3-0-RC1 yamt-vop-base3 yamt-vop-base2 thorpej-vnode-attr-base yamt-vop-base yamt-km-base4 yamt-km-base3 netbsd-3-base yamt-km-base2 yamt-km-base kent-audio2-base kent-audio1-beforemerge kent-audio1-base ktrace-lwp-base
# 1.36 01-Jul-2004 petrov

branches: 1.36.12;
Added UPA_MID definitions and macros(similar to FreeBSD).
Added membar_store, membar_load macros.
No need to set %asi _after_ alternate space use in corresponding functions.
Enable(unifdef) casa functions for __arch64__.


# 1.35 01-Jul-2004 heas

typo in define name, littie -> little


# 1.34 24-Jun-2004 martin

Add missing ; in inline assembler for 32bit kernels


# 1.33 17-Jun-2004 petrov

clean-up, reformat __asm statements.


Revision tags: netbsd-2-0-3-RELEASE netbsd-2-1-RELEASE netbsd-2-1-RC6 netbsd-2-1-RC5 netbsd-2-1-RC4 netbsd-2-1-RC3 netbsd-2-1-RC2 netbsd-2-1-RC1 netbsd-2-0-2-RELEASE netbsd-2-0-1-RELEASE netbsd-2-base netbsd-2-0-RELEASE netbsd-2-0-RC5 netbsd-2-0-RC4 netbsd-2-0-RC3 netbsd-2-0-RC2 netbsd-2-0-RC1 netbsd-2-0-base
# 1.32 22-Mar-2004 nakayama

Eliminate cast 64-bit address to u_long.


# 1.31 14-Mar-2004 chs

checkpoint of MP work from dennis and myself. includes cross-processor
interrupt framework, a sledgehammer TLB invalidation and misc MP fixes.
doesn't work at all yet.


Revision tags: netbsd-1-6-PATCH002-RELEASE netbsd-1-6-PATCH002 netbsd-1-6-PATCH002-RC4 netbsd-1-6-PATCH002-RC3 netbsd-1-6-PATCH002-RC2 netbsd-1-6-PATCH002-RC1 netbsd-1-6-PATCH001 netbsd-1-6-PATCH001-RELEASE netbsd-1-6-PATCH001-RC3 netbsd-1-6-PATCH001-RC2 netbsd-1-6-PATCH001-RC1 nathanw_sa_before_merge fvdl_fs64_base gmcgarry_ctxsw_base gmcgarry_ucred_base nathanw_sa_base kqueue-aftermerge kqueue-beforemerge netbsd-1-6-RELEASE netbsd-1-6-RC3 netbsd-1-6-RC2 netbsd-1-6-RC1 netbsd-1-6-base gehenna-devsw-base kqueue-base
# 1.30 24-Apr-2002 eeh

branches: 1.30.10;
Don't need to flush the d$ for MMU bypass accesses.


Revision tags: eeh-devprop-base newlock-base ifpoll-base
# 1.29 14-Jan-2002 eeh

Make PHYS_ASI() also recognize little-endian ASIs.


Revision tags: thorpej-mips-cache-base thorpej-devvp-base3 thorpej-devvp-base2 post-chs-ubcperf pre-chs-ubcperf thorpej-devvp-base
# 1.28 06-Aug-2001 eeh

branches: 1.28.6;
Add some alternate spellings for ASIs.
Make sure ASI_PRIMARY_NOFAULT is always restored.
Garbage collect some old code.


# 1.27 19-Jul-2001 eeh

Don't bother flushing cache lines for un-cached accesses.


# 1.26 29-Jun-2001 eeh

branches: 1.26.2;
Add the shorter version of block ASIs used by Sun.


Revision tags: thorpej_scsipi_beforemerge thorpej_scsipi_nbase thorpej_scsipi_base
# 1.25 29-Dec-2000 eeh

Fix some 32-bit assembly code.


# 1.24 04-Dec-2000 fvdl

Comment out caxsa, it's not used. Avoids 32 bit compile errors.


# 1.23 31-Aug-2000 eeh

Fix register sheduling bug in st?a() routines and add casxa().


Revision tags: mrg-merge-1-5-top
# 1.22 14-Jul-2000 eeh

Tell gcc that stores clobber "memory". Probably makes no difference since
they should not be used to access normal memory anyway.


# 1.21 24-Jun-2000 eeh

With these changes the kernel seems almost stable again.


# 1.20 24-Jun-2000 eeh

More VM cleanup:

Move the cpu_info structure above the interrupt stack so it won't
get corrupted if the stack overflows.

Flush the D$ before and after all MMU bypass accesses since the
D$ latches all of those.


# 1.19 20-Jun-2000 eeh

lda is unsigned, ldswa is signed. Fixes a 32-bit sign extension bug.


Revision tags: netbsd-1-5-base
# 1.18 19-Jun-2000 eeh

branches: 1.18.2;
Have separate data and text segments, make text read-only.


# 1.17 10-Jun-2000 eeh

Only use 32-bit addresses for all accesses that don't bypass the MMU.
Makes SBus work again.


# 1.16 08-Jun-2000 eeh

Fixup signed/unsigned issues so 32-bit addresses are not sign extended.


# 1.15 07-Jun-2000 pk

Add a couple of missing semi-colons.


# 1.14 02-Jun-2000 eeh

Use all 64 address bits in ld*a()/st*a() macros so physical device addresses
work. (Also add some bus_space_*() debug hooks).


Revision tags: minoura-xpg4dl-base
# 1.13 10-Apr-2000 mrg

branches: 1.13.2;
- IRSR_BUSY is bit 5 not bit 4.
- IRSR_MID(x) is &'d with 0x1f (5 bits) not 0xf.


Revision tags: chs-ubc2-newbase wrstuden-devbsize-19991221 wrstuden-devbsize-base comdex-fall-1999-base fvdl-softdep-base chs-ubc2-base
# 1.12 08-Jun-1999 mrg

branches: 1.12.2;
mmm, missing return types make gcc unhappy.


# 1.11 05-Jun-1999 eeh

Make pbrobeget() and probeset() work for 64-bit values as well. To do this
the arguments are changed so the address is first and the ASI second so we
can have the address in %o0:%o1 and not worry about unused registers.

Also a bit of copyright cleanup.


# 1.10 31-May-1999 eeh

Fix some bugs in some more of those asm macros.


# 1.9 30-May-1999 eeh

Re-write ASI load/stores to use full 64-bit addresses so we can use device
register addresses with MMU bypass ASIs.


# 1.8 22-May-1999 eeh

Fixup argument confusion to __asm() statements. long long is two registers
wide in 32-bit mode. Doh!.


# 1.7 11-May-1999 eeh

Don't clobber any input regs in __asm statements.


Revision tags: netbsd-1-4-PATCH003 netbsd-1-4-PATCH002 kame_141_19991130 netbsd-1-4-PATCH001 kame_14_19990705 kame_14_19990628 netbsd-1-4-RELEASE netbsd-1-4-base
# 1.6 22-Mar-1999 eeh

branches: 1.6.4;
Flush D$ on bypass accesses.


# 1.5 31-Jan-1999 mrg

retire _LP64; use compiler provided __arch64__, but still defined _LP64 where we used to anyway.


Revision tags: kenh-if-detach-base
# 1.4 13-Nov-1998 eeh

Fix 32-bit gcc scheduling problems.


Revision tags: chs-ubc-base
# 1.3 05-Sep-1998 eeh

It slices. It dices. It does everything except exec a sparc32_compat init.


# 1.2 02-Sep-1998 eeh

Periodic update: now starts probing devices.


# 1.1 20-Jun-1998 eeh

branches: 1.1.1;
Initial revision


# 1.68 06-May-2023 andvar

few more typos in the word "register", mainly s/resister/register/.
In one comment I assume that it was meant to be pull-up resistor.


Revision tags: netbsd-10-base bouyer-sunxi-drm-base 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 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 phil-wifi-20191119
# 1.67 13-Nov-2019 nakayama

Revert workarounds for clang.
In-tree clang can now handle the "r" asm constraint for 64-bit values properly.


Revision tags: netbsd-9-3-RELEASE netbsd-9-2-RELEASE netbsd-9-1-RELEASE netbsd-9-0-RELEASE netbsd-9-0-RC2 netbsd-9-0-RC1 netbsd-9-base phil-wifi-20190609 isaki-audio2-base
# 1.66 05-Apr-2019 nakayama

Redo previous.
In the case of store variant, put dummy constraint in output
instead of input.

Suggested by joerg@ in source-changes-d@


# 1.65 05-Apr-2019 nakayama

Add dummy constraints to avoid excessive optimization in clang.
GENERIC kernel compiled with clang now boot at least on my Fire V100.


Revision tags: netbsd-8-2-RELEASE netbsd-8-1-RELEASE netbsd-8-1-RC1 pgoyette-compat-merge-20190127 pgoyette-compat-20190127 pgoyette-compat-20190118 pgoyette-compat-1226 pgoyette-compat-1126 pgoyette-compat-1020 pgoyette-compat-0930 pgoyette-compat-0906 pgoyette-compat-0728 netbsd-8-0-RELEASE phil-wifi-base pgoyette-compat-0625 netbsd-8-0-RC2 pgoyette-compat-0521 pgoyette-compat-0502 pgoyette-compat-0422 netbsd-8-0-RC1 pgoyette-compat-0415 pgoyette-compat-0407 pgoyette-compat-0330 pgoyette-compat-0322 pgoyette-compat-0315 pgoyette-compat-base tls-maxphys-base-20171202 matt-nb8-mediatek-base nick-nhusb-base-20170825 perseant-stdc-iso10646-base netbsd-8-base 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
# 1.64 28-Dec-2016 martin

branches: 1.64.16;
Rename the "flush" macro to "sparc_flush_icache", the former is way too
generic for a macro name.


Revision tags: nick-nhusb-base-20161204 pgoyette-localcount-20161104 nick-nhusb-base-20161004 localcount-20160914 pgoyette-localcount-20160806 pgoyette-localcount-20160726 pgoyette-localcount-base nick-nhusb-base-20160907 nick-nhusb-base-20160529 nick-nhusb-base-20160422 nick-nhusb-base-20160319
# 1.63 03-Feb-2016 palle

branches: 1.63.2;
sun4v: extend dmmu_set_secondary_context() to handle both sun4u and sun4v. ok martin@


Revision tags: nick-nhusb-base-20151226 nick-nhusb-base-20150921 nick-nhusb-base-20150606 nick-nhusb-base-20150406
# 1.62 01-Apr-2015 palle

sun4v: Implement handling of cpu_mondo trap - from OpenBSD - tested using the Legion simulator


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.61 16-Jul-2014 palle

branches: 1.61.4;
sun4v: Introduce SET_MMU_CONTEXTID macro for setting the mmu context id on both sun4u and sun4v


Revision tags: yamt-pagecache-base9 riastradh-xf86-video-intel-2-7-1-pre-2-21-15 riastradh-drm2-base3 rmind-smpnet-nbase rmind-smpnet-base
# 1.60 16-Dec-2013 palle

branches: 1.60.2;
Updates to pmap_bootstrap() for sun4v - parts from OpenBSD - OK martin@


Revision tags: riastradh-drm2-base2 riastradh-drm2-base1 riastradh-drm2-base agc-symver-base yamt-pagecache-base8 yamt-pagecache-base7
# 1.59 08-Nov-2012 nakayama

branches: 1.59.2;
Rename ASR_IDSR to ASI_IDSR, which is ASI (Address Space Identifier),
not ASR (Ancillary State Register).


# 1.58 08-Nov-2012 nakayama

Move ASRs macro to more appropriate header.
While there remove useless macro.


# 1.57 08-Nov-2012 macallan

use system tick timer instead of %tick on UltraSPARC-III-ish CPUs
review & fixes by Takeshi Nakayama


Revision tags: netbsd-6-0-6-RELEASE netbsd-6-0-5-RELEASE netbsd-6-0-4-RELEASE netbsd-6-0-3-RELEASE netbsd-6-0-2-RELEASE netbsd-6-0-1-RELEASE matt-nb6-plus-nbase yamt-pagecache-base6 netbsd-6-0-RELEASE netbsd-6-0-RC2 matt-nb6-plus-base netbsd-6-0-RC1 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.56 08-Oct-2011 nakayama

branches: 1.56.2; 1.56.8; 1.56.12;
Fix namespace confilicts membar_ops(3) vs. macros for SPARC V9
membar instructions.


Revision tags: rmind-uvmplock-nbase cherry-xenmp-base rmind-uvmplock-base jym-xensuspend-nbase jym-xensuspend-base
# 1.55 16-Mar-2011 mrg

add some control registers found on the Fire and Jupiter busses.
from openbsd.


Revision tags: uebayasi-xip-base7 bouyer-quota2-nbase bouyer-quota2-base jruoho-x86intr-base matt-mips64-premerge-20101231
# 1.54 18-Dec-2010 mrg

branches: 1.54.2;
add a bit for MCCR_RAW_EN -- enable read-after-write.


Revision tags: uebayasi-xip-base6 uebayasi-xip-base5 uebayasi-xip-base4 uebayasi-xip-base3 yamt-nfs-mp-base11 uebayasi-xip-base2 yamt-nfs-mp-base10
# 1.53 10-Jul-2010 nakayama

Clear the upper word explicitly before combining two 32-bit values to 64-bit
on 32-bit kernels.


Revision tags: uebayasi-xip-base1 yamt-nfs-mp-base9
# 1.52 23-Feb-2010 mrg

branches: 1.52.2;
add some bits to set to access all the cheetah dtlb/itlb's.


# 1.51 21-Feb-2010 mrg

s/D-cache/I-cache/ in some comments.


# 1.50 13-Feb-2010 mrg

add some defines for the sizes of TLBs in various CPUs.


Revision tags: uebayasi-xip-base
# 1.49 01-Feb-2010 mrg

branches: 1.49.2;
for USIII, use the new "tlb demap all" operation in sp_tlb_flush_all()


Revision tags: matt-premerge-20091211
# 1.48 05-Dec-2009 nakayama

Garbage collect unused or incomplete definitions.


# 1.47 05-Dec-2009 nakayama

Bring together similar inline asm codes of ld*a and st*a definitions
using macro, also remove unnecessary membar #Sync and %asi restore in
the case of 32-bit kernel.

While there, introduce an optimization case that asi is constant if
we are using gcc.


# 1.46 28-Nov-2009 mrg

add some ultrasparcIII defines, from openbsd.


Revision tags: yamt-nfs-mp-base8 yamt-nfs-mp-base7 jymxensuspend-base yamt-nfs-mp-base6 yamt-nfs-mp-base5
# 1.45 16-May-2009 nakayama

- move definition of tick() from ctlreg.h to psl.h and rename to gettick()
for consistency with other functions for reading/writing ASRs.
- move definition of tl() from trap.c to psl.h as same as above.
- define settick() in psl.h and use it in clock.c.
- cosmetic chages in psl.h.


Revision tags: netbsd-5-2-3-RELEASE netbsd-5-1-5-RELEASE netbsd-5-2-2-RELEASE netbsd-5-1-4-RELEASE netbsd-5-2-1-RELEASE netbsd-5-1-3-RELEASE netbsd-5-2-RELEASE netbsd-5-2-RC1 netbsd-5-1-2-RELEASE netbsd-5-1-1-RELEASE matt-nb5-mips64-premerge-20101231 matt-nb5-pq3-base netbsd-5-1-RELEASE netbsd-5-1-RC4 matt-nb5-mips64-k15 netbsd-5-1-RC3 netbsd-5-1-RC2 netbsd-5-1-RC1 netbsd-5-0-2-RELEASE matt-nb5-mips64-premerge-20091211 matt-nb5-mips64-u2-k2-k4-k7-k8-k9 matt-nb4-mips64-k7-u2a-k9b matt-nb5-mips64-u1-k1-k5 netbsd-5-0-1-RELEASE yamt-nfs-mp-base4 yamt-nfs-mp-base3 nick-hppapmap-base4 nick-hppapmap-base3 netbsd-5-0-RELEASE netbsd-5-0-RC4 netbsd-5-0-RC3 nick-hppapmap-base2 netbsd-5-0-RC2 netbsd-5-0-RC1 haad-dm-base2 haad-nbase2 ad-audiomp2-base netbsd-5-base nick-hppapmap-base matt-mips64-base2 haad-dm-base1 wrstuden-revivesa-base-4 wrstuden-revivesa-base-3 wrstuden-revivesa-base-2 nick-csl-alignment-base5 haad-dm-base wrstuden-revivesa-base-1 simonb-wapbl-nbase yamt-pf42-base4 simonb-wapbl-base yamt-pf42-base3 hpcarm-cleanup-nbase yamt-pf42-baseX yamt-pf42-base2 yamt-nfs-mp-base2 wrstuden-revivesa-base yamt-nfs-mp-base yamt-pf42-base ad-socklock-base1 yamt-lazymbuf-base15 yamt-lazymbuf-base14 keiichi-mipv6-nbase mjf-devfs2-base nick-net80211-sync-base keiichi-mipv6-base bouyer-xeni386-merge1 matt-armv6-prevmlocking vmlocking2-base3 bouyer-xeni386-nbase yamt-kmem-base3 cube-autoconf-base yamt-kmem-base2 bouyer-xeni386-base yamt-kmem-base vmlocking2-base2 reinoud-bufcleanup-nbase vmlocking2-base1 matt-armv6-nbase jmcneill-base mjf-devfs-base bouyer-xenamd64-base2 vmlocking-nbase yamt-x86pmap-base4 bouyer-xenamd64-base yamt-x86pmap-base3 yamt-x86pmap-base2 yamt-x86pmap-base matt-armv6-base jmcneill-pm-base hpcarm-cleanup-base nick-csl-alignment-base matt-mips64-base yamt-idlelwp-base8 ppcoea-renovation-base thorpej-atomic-base reinoud-bufcleanup-base mjf-ufs-trans-base vmlocking-base
# 1.44 31-Mar-2007 hannken

branches: 1.44.38;
Cleanup last by using a "n"umeric address space identifier.

Ok: Martin Husemann <martin@netbsd.org>


# 1.43 30-Mar-2007 martin

When invalidating a context, make sure to flush user windows upfront.
Do not set the DMMU secondary context to 0 (that would be kernel), and
add a few required membars after switching the secondary dmmu context.

This avoids SIRs caused by double kernel_data_faults, caused by spills
of obsolete user windows after the context for that user pmap is gone.


Revision tags: ad-audiomp-base post-newlock2-merge newlock2-nbase yamt-splraiseipl-base5 yamt-splraiseipl-base4 yamt-splraiseipl-base3 abandoned-netbsd-4-base yamt-splraiseipl-base2 yamt-splraiseipl-base yamt-pdpolicy-base9 newlock2-base yamt-pdpolicy-base8 yamt-pdpolicy-base7 netbsd-4-base yamt-pdpolicy-base6 chap-midi-nbase gdamore-uart-base yamt-pdpolicy-base5 chap-midi-base yamt-pdpolicy-base4 yamt-pdpolicy-base3 peter-altq-base yamt-pdpolicy-base2 elad-kernelauth-base yamt-pdpolicy-base yamt-uio_vmspace-base5 simonb-timecounters-base rpaulo-netinet-merge-pcb-base
# 1.42 20-Feb-2006 cdi

branches: 1.42.18; 1.42.20; 1.42.24; 1.42.26;
Use ANSI-style function definitions and declarations.


# 1.41 16-Feb-2006 perry

Change "inline" back to "__inline" in .h files -- C99 is still too
new, and some apps compile things in C89 mode. C89 keywords stay.

As per core@.


# 1.40 11-Feb-2006 cdi

ANSIfication: u_intN_t -> uintN_t, use ANSI function declarations/definitions
instead of K&R ones.


# 1.39 24-Dec-2005 perry

branches: 1.39.2; 1.39.4; 1.39.6;
__asm__ -> __asm
__const__ -> const
__inline__ -> inline
__volatile__ -> volatile


# 1.38 24-Dec-2005 perry

Remove leading __ from __(const|inline|signed|volatile) -- it is obsolete.


# 1.37 11-Dec-2005 christos

merge ktrace-lwp.


Revision tags: netbsd-3-1-1-RELEASE netbsd-3-0-3-RELEASE netbsd-3-1-RELEASE netbsd-3-0-2-RELEASE netbsd-3-1-RC4 netbsd-3-1-RC3 netbsd-3-1-RC2 netbsd-3-1-RC1 netbsd-3-0-1-RELEASE netbsd-3-0-RELEASE netbsd-3-0-RC6 yamt-readahead-base3 netbsd-3-0-RC5 netbsd-3-0-RC4 netbsd-3-0-RC3 yamt-readahead-base2 netbsd-3-0-RC2 yamt-readahead-pervnode yamt-readahead-perfile yamt-readahead-base netbsd-3-0-RC1 yamt-vop-base3 yamt-vop-base2 thorpej-vnode-attr-base yamt-vop-base yamt-km-base4 yamt-km-base3 netbsd-3-base yamt-km-base2 yamt-km-base kent-audio2-base kent-audio1-beforemerge kent-audio1-base ktrace-lwp-base
# 1.36 01-Jul-2004 petrov

branches: 1.36.12;
Added UPA_MID definitions and macros(similar to FreeBSD).
Added membar_store, membar_load macros.
No need to set %asi _after_ alternate space use in corresponding functions.
Enable(unifdef) casa functions for __arch64__.


# 1.35 01-Jul-2004 heas

typo in define name, littie -> little


# 1.34 24-Jun-2004 martin

Add missing ; in inline assembler for 32bit kernels


# 1.33 17-Jun-2004 petrov

clean-up, reformat __asm statements.


Revision tags: netbsd-2-0-3-RELEASE netbsd-2-1-RELEASE netbsd-2-1-RC6 netbsd-2-1-RC5 netbsd-2-1-RC4 netbsd-2-1-RC3 netbsd-2-1-RC2 netbsd-2-1-RC1 netbsd-2-0-2-RELEASE netbsd-2-0-1-RELEASE netbsd-2-base netbsd-2-0-RELEASE netbsd-2-0-RC5 netbsd-2-0-RC4 netbsd-2-0-RC3 netbsd-2-0-RC2 netbsd-2-0-RC1 netbsd-2-0-base
# 1.32 22-Mar-2004 nakayama

Eliminate cast 64-bit address to u_long.


# 1.31 14-Mar-2004 chs

checkpoint of MP work from dennis and myself. includes cross-processor
interrupt framework, a sledgehammer TLB invalidation and misc MP fixes.
doesn't work at all yet.


Revision tags: netbsd-1-6-PATCH002-RELEASE netbsd-1-6-PATCH002 netbsd-1-6-PATCH002-RC4 netbsd-1-6-PATCH002-RC3 netbsd-1-6-PATCH002-RC2 netbsd-1-6-PATCH002-RC1 netbsd-1-6-PATCH001 netbsd-1-6-PATCH001-RELEASE netbsd-1-6-PATCH001-RC3 netbsd-1-6-PATCH001-RC2 netbsd-1-6-PATCH001-RC1 nathanw_sa_before_merge fvdl_fs64_base gmcgarry_ctxsw_base gmcgarry_ucred_base nathanw_sa_base kqueue-aftermerge kqueue-beforemerge netbsd-1-6-RELEASE netbsd-1-6-RC3 netbsd-1-6-RC2 netbsd-1-6-RC1 netbsd-1-6-base gehenna-devsw-base kqueue-base
# 1.30 24-Apr-2002 eeh

branches: 1.30.10;
Don't need to flush the d$ for MMU bypass accesses.


Revision tags: eeh-devprop-base newlock-base ifpoll-base
# 1.29 14-Jan-2002 eeh

Make PHYS_ASI() also recognize little-endian ASIs.


Revision tags: thorpej-mips-cache-base thorpej-devvp-base3 thorpej-devvp-base2 post-chs-ubcperf pre-chs-ubcperf thorpej-devvp-base
# 1.28 06-Aug-2001 eeh

branches: 1.28.6;
Add some alternate spellings for ASIs.
Make sure ASI_PRIMARY_NOFAULT is always restored.
Garbage collect some old code.


# 1.27 19-Jul-2001 eeh

Don't bother flushing cache lines for un-cached accesses.


# 1.26 29-Jun-2001 eeh

branches: 1.26.2;
Add the shorter version of block ASIs used by Sun.


Revision tags: thorpej_scsipi_beforemerge thorpej_scsipi_nbase thorpej_scsipi_base
# 1.25 29-Dec-2000 eeh

Fix some 32-bit assembly code.


# 1.24 04-Dec-2000 fvdl

Comment out caxsa, it's not used. Avoids 32 bit compile errors.


# 1.23 31-Aug-2000 eeh

Fix register sheduling bug in st?a() routines and add casxa().


Revision tags: mrg-merge-1-5-top
# 1.22 14-Jul-2000 eeh

Tell gcc that stores clobber "memory". Probably makes no difference since
they should not be used to access normal memory anyway.


# 1.21 24-Jun-2000 eeh

With these changes the kernel seems almost stable again.


# 1.20 24-Jun-2000 eeh

More VM cleanup:

Move the cpu_info structure above the interrupt stack so it won't
get corrupted if the stack overflows.

Flush the D$ before and after all MMU bypass accesses since the
D$ latches all of those.


# 1.19 20-Jun-2000 eeh

lda is unsigned, ldswa is signed. Fixes a 32-bit sign extension bug.


Revision tags: netbsd-1-5-base
# 1.18 19-Jun-2000 eeh

branches: 1.18.2;
Have separate data and text segments, make text read-only.


# 1.17 10-Jun-2000 eeh

Only use 32-bit addresses for all accesses that don't bypass the MMU.
Makes SBus work again.


# 1.16 08-Jun-2000 eeh

Fixup signed/unsigned issues so 32-bit addresses are not sign extended.


# 1.15 07-Jun-2000 pk

Add a couple of missing semi-colons.


# 1.14 02-Jun-2000 eeh

Use all 64 address bits in ld*a()/st*a() macros so physical device addresses
work. (Also add some bus_space_*() debug hooks).


Revision tags: minoura-xpg4dl-base
# 1.13 10-Apr-2000 mrg

branches: 1.13.2;
- IRSR_BUSY is bit 5 not bit 4.
- IRSR_MID(x) is &'d with 0x1f (5 bits) not 0xf.


Revision tags: chs-ubc2-newbase wrstuden-devbsize-19991221 wrstuden-devbsize-base comdex-fall-1999-base fvdl-softdep-base chs-ubc2-base
# 1.12 08-Jun-1999 mrg

branches: 1.12.2;
mmm, missing return types make gcc unhappy.


# 1.11 05-Jun-1999 eeh

Make pbrobeget() and probeset() work for 64-bit values as well. To do this
the arguments are changed so the address is first and the ASI second so we
can have the address in %o0:%o1 and not worry about unused registers.

Also a bit of copyright cleanup.


# 1.10 31-May-1999 eeh

Fix some bugs in some more of those asm macros.


# 1.9 30-May-1999 eeh

Re-write ASI load/stores to use full 64-bit addresses so we can use device
register addresses with MMU bypass ASIs.


# 1.8 22-May-1999 eeh

Fixup argument confusion to __asm() statements. long long is two registers
wide in 32-bit mode. Doh!.


# 1.7 11-May-1999 eeh

Don't clobber any input regs in __asm statements.


Revision tags: netbsd-1-4-PATCH003 netbsd-1-4-PATCH002 kame_141_19991130 netbsd-1-4-PATCH001 kame_14_19990705 kame_14_19990628 netbsd-1-4-RELEASE netbsd-1-4-base
# 1.6 22-Mar-1999 eeh

branches: 1.6.4;
Flush D$ on bypass accesses.


# 1.5 31-Jan-1999 mrg

retire _LP64; use compiler provided __arch64__, but still defined _LP64 where we used to anyway.


Revision tags: kenh-if-detach-base
# 1.4 13-Nov-1998 eeh

Fix 32-bit gcc scheduling problems.


Revision tags: chs-ubc-base
# 1.3 05-Sep-1998 eeh

It slices. It dices. It does everything except exec a sparc32_compat init.


# 1.2 02-Sep-1998 eeh

Periodic update: now starts probing devices.


# 1.1 20-Jun-1998 eeh

branches: 1.1.1;
Initial revision


# 1.67 13-Nov-2019 nakayama

Revert workarounds for clang.
In-tree clang can now handle the "r" asm constraint for 64-bit values properly.


Revision tags: netbsd-9-base phil-wifi-20190609 isaki-audio2-base
# 1.66 05-Apr-2019 nakayama

Redo previous.
In the case of store variant, put dummy constraint in output
instead of input.

Suggested by joerg@ in source-changes-d@


# 1.65 05-Apr-2019 nakayama

Add dummy constraints to avoid excessive optimization in clang.
GENERIC kernel compiled with clang now boot at least on my Fire V100.


Revision tags: netbsd-8-1-RELEASE netbsd-8-1-RC1 pgoyette-compat-merge-20190127 pgoyette-compat-20190127 pgoyette-compat-20190118 pgoyette-compat-1226 pgoyette-compat-1126 pgoyette-compat-1020 pgoyette-compat-0930 pgoyette-compat-0906 pgoyette-compat-0728 netbsd-8-0-RELEASE phil-wifi-base pgoyette-compat-0625 netbsd-8-0-RC2 pgoyette-compat-0521 pgoyette-compat-0502 pgoyette-compat-0422 netbsd-8-0-RC1 pgoyette-compat-0415 pgoyette-compat-0407 pgoyette-compat-0330 pgoyette-compat-0322 pgoyette-compat-0315 pgoyette-compat-base tls-maxphys-base-20171202 matt-nb8-mediatek-base nick-nhusb-base-20170825 perseant-stdc-iso10646-base netbsd-8-base 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
# 1.64 28-Dec-2016 martin

branches: 1.64.16;
Rename the "flush" macro to "sparc_flush_icache", the former is way too
generic for a macro name.


Revision tags: nick-nhusb-base-20161204 pgoyette-localcount-20161104 nick-nhusb-base-20161004 localcount-20160914 pgoyette-localcount-20160806 pgoyette-localcount-20160726 pgoyette-localcount-base nick-nhusb-base-20160907 nick-nhusb-base-20160529 nick-nhusb-base-20160422 nick-nhusb-base-20160319
# 1.63 03-Feb-2016 palle

branches: 1.63.2;
sun4v: extend dmmu_set_secondary_context() to handle both sun4u and sun4v. ok martin@


Revision tags: nick-nhusb-base-20151226 nick-nhusb-base-20150921 nick-nhusb-base-20150606 nick-nhusb-base-20150406
# 1.62 01-Apr-2015 palle

sun4v: Implement handling of cpu_mondo trap - from OpenBSD - tested using the Legion simulator


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.61 16-Jul-2014 palle

branches: 1.61.4;
sun4v: Introduce SET_MMU_CONTEXTID macro for setting the mmu context id on both sun4u and sun4v


Revision tags: yamt-pagecache-base9 riastradh-xf86-video-intel-2-7-1-pre-2-21-15 riastradh-drm2-base3 rmind-smpnet-nbase rmind-smpnet-base
# 1.60 16-Dec-2013 palle

branches: 1.60.2;
Updates to pmap_bootstrap() for sun4v - parts from OpenBSD - OK martin@


Revision tags: riastradh-drm2-base2 riastradh-drm2-base1 riastradh-drm2-base agc-symver-base yamt-pagecache-base8 yamt-pagecache-base7
# 1.59 08-Nov-2012 nakayama

branches: 1.59.2;
Rename ASR_IDSR to ASI_IDSR, which is ASI (Address Space Identifier),
not ASR (Ancillary State Register).


# 1.58 08-Nov-2012 nakayama

Move ASRs macro to more appropriate header.
While there remove useless macro.


# 1.57 08-Nov-2012 macallan

use system tick timer instead of %tick on UltraSPARC-III-ish CPUs
review & fixes by Takeshi Nakayama


Revision tags: netbsd-6-0-6-RELEASE netbsd-6-0-5-RELEASE netbsd-6-0-4-RELEASE netbsd-6-0-3-RELEASE netbsd-6-0-2-RELEASE netbsd-6-0-1-RELEASE matt-nb6-plus-nbase yamt-pagecache-base6 netbsd-6-0-RELEASE netbsd-6-0-RC2 matt-nb6-plus-base netbsd-6-0-RC1 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.56 08-Oct-2011 nakayama

branches: 1.56.2; 1.56.8; 1.56.12;
Fix namespace confilicts membar_ops(3) vs. macros for SPARC V9
membar instructions.


Revision tags: rmind-uvmplock-nbase cherry-xenmp-base rmind-uvmplock-base jym-xensuspend-nbase jym-xensuspend-base
# 1.55 16-Mar-2011 mrg

add some control registers found on the Fire and Jupiter busses.
from openbsd.


Revision tags: uebayasi-xip-base7 bouyer-quota2-nbase bouyer-quota2-base jruoho-x86intr-base matt-mips64-premerge-20101231
# 1.54 18-Dec-2010 mrg

branches: 1.54.2;
add a bit for MCCR_RAW_EN -- enable read-after-write.


Revision tags: uebayasi-xip-base6 uebayasi-xip-base5 uebayasi-xip-base4 uebayasi-xip-base3 yamt-nfs-mp-base11 uebayasi-xip-base2 yamt-nfs-mp-base10
# 1.53 10-Jul-2010 nakayama

Clear the upper word explicitly before combining two 32-bit values to 64-bit
on 32-bit kernels.


Revision tags: uebayasi-xip-base1 yamt-nfs-mp-base9
# 1.52 23-Feb-2010 mrg

branches: 1.52.2;
add some bits to set to access all the cheetah dtlb/itlb's.


# 1.51 21-Feb-2010 mrg

s/D-cache/I-cache/ in some comments.


# 1.50 13-Feb-2010 mrg

add some defines for the sizes of TLBs in various CPUs.


Revision tags: uebayasi-xip-base
# 1.49 01-Feb-2010 mrg

branches: 1.49.2;
for USIII, use the new "tlb demap all" operation in sp_tlb_flush_all()


Revision tags: matt-premerge-20091211
# 1.48 05-Dec-2009 nakayama

Garbage collect unused or incomplete definitions.


# 1.47 05-Dec-2009 nakayama

Bring together similar inline asm codes of ld*a and st*a definitions
using macro, also remove unnecessary membar #Sync and %asi restore in
the case of 32-bit kernel.

While there, introduce an optimization case that asi is constant if
we are using gcc.


# 1.46 28-Nov-2009 mrg

add some ultrasparcIII defines, from openbsd.


Revision tags: yamt-nfs-mp-base8 yamt-nfs-mp-base7 jymxensuspend-base yamt-nfs-mp-base6 yamt-nfs-mp-base5
# 1.45 16-May-2009 nakayama

- move definition of tick() from ctlreg.h to psl.h and rename to gettick()
for consistency with other functions for reading/writing ASRs.
- move definition of tl() from trap.c to psl.h as same as above.
- define settick() in psl.h and use it in clock.c.
- cosmetic chages in psl.h.


Revision tags: netbsd-5-2-3-RELEASE netbsd-5-1-5-RELEASE netbsd-5-2-2-RELEASE netbsd-5-1-4-RELEASE netbsd-5-2-1-RELEASE netbsd-5-1-3-RELEASE netbsd-5-2-RELEASE netbsd-5-2-RC1 netbsd-5-1-2-RELEASE netbsd-5-1-1-RELEASE matt-nb5-mips64-premerge-20101231 matt-nb5-pq3-base netbsd-5-1-RELEASE netbsd-5-1-RC4 matt-nb5-mips64-k15 netbsd-5-1-RC3 netbsd-5-1-RC2 netbsd-5-1-RC1 netbsd-5-0-2-RELEASE matt-nb5-mips64-premerge-20091211 matt-nb5-mips64-u2-k2-k4-k7-k8-k9 matt-nb4-mips64-k7-u2a-k9b matt-nb5-mips64-u1-k1-k5 netbsd-5-0-1-RELEASE yamt-nfs-mp-base4 yamt-nfs-mp-base3 nick-hppapmap-base4 nick-hppapmap-base3 netbsd-5-0-RELEASE netbsd-5-0-RC4 netbsd-5-0-RC3 nick-hppapmap-base2 netbsd-5-0-RC2 netbsd-5-0-RC1 haad-dm-base2 haad-nbase2 ad-audiomp2-base netbsd-5-base nick-hppapmap-base matt-mips64-base2 haad-dm-base1 wrstuden-revivesa-base-4 wrstuden-revivesa-base-3 wrstuden-revivesa-base-2 nick-csl-alignment-base5 haad-dm-base wrstuden-revivesa-base-1 simonb-wapbl-nbase yamt-pf42-base4 simonb-wapbl-base yamt-pf42-base3 hpcarm-cleanup-nbase yamt-pf42-baseX yamt-pf42-base2 yamt-nfs-mp-base2 wrstuden-revivesa-base yamt-nfs-mp-base yamt-pf42-base ad-socklock-base1 yamt-lazymbuf-base15 yamt-lazymbuf-base14 keiichi-mipv6-nbase mjf-devfs2-base nick-net80211-sync-base keiichi-mipv6-base bouyer-xeni386-merge1 matt-armv6-prevmlocking vmlocking2-base3 bouyer-xeni386-nbase yamt-kmem-base3 cube-autoconf-base yamt-kmem-base2 bouyer-xeni386-base yamt-kmem-base vmlocking2-base2 reinoud-bufcleanup-nbase vmlocking2-base1 matt-armv6-nbase jmcneill-base mjf-devfs-base bouyer-xenamd64-base2 vmlocking-nbase yamt-x86pmap-base4 bouyer-xenamd64-base yamt-x86pmap-base3 yamt-x86pmap-base2 yamt-x86pmap-base matt-armv6-base jmcneill-pm-base hpcarm-cleanup-base nick-csl-alignment-base matt-mips64-base yamt-idlelwp-base8 ppcoea-renovation-base thorpej-atomic-base reinoud-bufcleanup-base mjf-ufs-trans-base vmlocking-base
# 1.44 31-Mar-2007 hannken

branches: 1.44.38;
Cleanup last by using a "n"umeric address space identifier.

Ok: Martin Husemann <martin@netbsd.org>


# 1.43 30-Mar-2007 martin

When invalidating a context, make sure to flush user windows upfront.
Do not set the DMMU secondary context to 0 (that would be kernel), and
add a few required membars after switching the secondary dmmu context.

This avoids SIRs caused by double kernel_data_faults, caused by spills
of obsolete user windows after the context for that user pmap is gone.


Revision tags: ad-audiomp-base post-newlock2-merge newlock2-nbase yamt-splraiseipl-base5 yamt-splraiseipl-base4 yamt-splraiseipl-base3 abandoned-netbsd-4-base yamt-splraiseipl-base2 yamt-splraiseipl-base yamt-pdpolicy-base9 newlock2-base yamt-pdpolicy-base8 yamt-pdpolicy-base7 netbsd-4-base yamt-pdpolicy-base6 chap-midi-nbase gdamore-uart-base yamt-pdpolicy-base5 chap-midi-base yamt-pdpolicy-base4 yamt-pdpolicy-base3 peter-altq-base yamt-pdpolicy-base2 elad-kernelauth-base yamt-pdpolicy-base yamt-uio_vmspace-base5 simonb-timecounters-base rpaulo-netinet-merge-pcb-base
# 1.42 20-Feb-2006 cdi

branches: 1.42.18; 1.42.20; 1.42.24; 1.42.26;
Use ANSI-style function definitions and declarations.


# 1.41 16-Feb-2006 perry

Change "inline" back to "__inline" in .h files -- C99 is still too
new, and some apps compile things in C89 mode. C89 keywords stay.

As per core@.


# 1.40 11-Feb-2006 cdi

ANSIfication: u_intN_t -> uintN_t, use ANSI function declarations/definitions
instead of K&R ones.


# 1.39 24-Dec-2005 perry

branches: 1.39.2; 1.39.4; 1.39.6;
__asm__ -> __asm
__const__ -> const
__inline__ -> inline
__volatile__ -> volatile


# 1.38 24-Dec-2005 perry

Remove leading __ from __(const|inline|signed|volatile) -- it is obsolete.


# 1.37 11-Dec-2005 christos

merge ktrace-lwp.


Revision tags: netbsd-3-1-1-RELEASE netbsd-3-0-3-RELEASE netbsd-3-1-RELEASE netbsd-3-0-2-RELEASE netbsd-3-1-RC4 netbsd-3-1-RC3 netbsd-3-1-RC2 netbsd-3-1-RC1 netbsd-3-0-1-RELEASE netbsd-3-0-RELEASE netbsd-3-0-RC6 yamt-readahead-base3 netbsd-3-0-RC5 netbsd-3-0-RC4 netbsd-3-0-RC3 yamt-readahead-base2 netbsd-3-0-RC2 yamt-readahead-pervnode yamt-readahead-perfile yamt-readahead-base netbsd-3-0-RC1 yamt-vop-base3 yamt-vop-base2 thorpej-vnode-attr-base yamt-vop-base yamt-km-base4 yamt-km-base3 netbsd-3-base yamt-km-base2 yamt-km-base kent-audio2-base kent-audio1-beforemerge kent-audio1-base ktrace-lwp-base
# 1.36 01-Jul-2004 petrov

branches: 1.36.12;
Added UPA_MID definitions and macros(similar to FreeBSD).
Added membar_store, membar_load macros.
No need to set %asi _after_ alternate space use in corresponding functions.
Enable(unifdef) casa functions for __arch64__.


# 1.35 01-Jul-2004 heas

typo in define name, littie -> little


# 1.34 24-Jun-2004 martin

Add missing ; in inline assembler for 32bit kernels


# 1.33 17-Jun-2004 petrov

clean-up, reformat __asm statements.


Revision tags: netbsd-2-0-3-RELEASE netbsd-2-1-RELEASE netbsd-2-1-RC6 netbsd-2-1-RC5 netbsd-2-1-RC4 netbsd-2-1-RC3 netbsd-2-1-RC2 netbsd-2-1-RC1 netbsd-2-0-2-RELEASE netbsd-2-0-1-RELEASE netbsd-2-base netbsd-2-0-RELEASE netbsd-2-0-RC5 netbsd-2-0-RC4 netbsd-2-0-RC3 netbsd-2-0-RC2 netbsd-2-0-RC1 netbsd-2-0-base
# 1.32 22-Mar-2004 nakayama

Eliminate cast 64-bit address to u_long.


# 1.31 14-Mar-2004 chs

checkpoint of MP work from dennis and myself. includes cross-processor
interrupt framework, a sledgehammer TLB invalidation and misc MP fixes.
doesn't work at all yet.


Revision tags: netbsd-1-6-PATCH002-RELEASE netbsd-1-6-PATCH002 netbsd-1-6-PATCH002-RC4 netbsd-1-6-PATCH002-RC3 netbsd-1-6-PATCH002-RC2 netbsd-1-6-PATCH002-RC1 netbsd-1-6-PATCH001 netbsd-1-6-PATCH001-RELEASE netbsd-1-6-PATCH001-RC3 netbsd-1-6-PATCH001-RC2 netbsd-1-6-PATCH001-RC1 nathanw_sa_before_merge fvdl_fs64_base gmcgarry_ctxsw_base gmcgarry_ucred_base nathanw_sa_base kqueue-aftermerge kqueue-beforemerge netbsd-1-6-RELEASE netbsd-1-6-RC3 netbsd-1-6-RC2 netbsd-1-6-RC1 netbsd-1-6-base gehenna-devsw-base kqueue-base
# 1.30 24-Apr-2002 eeh

branches: 1.30.10;
Don't need to flush the d$ for MMU bypass accesses.


Revision tags: eeh-devprop-base newlock-base ifpoll-base
# 1.29 14-Jan-2002 eeh

Make PHYS_ASI() also recognize little-endian ASIs.


Revision tags: thorpej-mips-cache-base thorpej-devvp-base3 thorpej-devvp-base2 post-chs-ubcperf pre-chs-ubcperf thorpej-devvp-base
# 1.28 06-Aug-2001 eeh

branches: 1.28.6;
Add some alternate spellings for ASIs.
Make sure ASI_PRIMARY_NOFAULT is always restored.
Garbage collect some old code.


# 1.27 19-Jul-2001 eeh

Don't bother flushing cache lines for un-cached accesses.


# 1.26 29-Jun-2001 eeh

branches: 1.26.2;
Add the shorter version of block ASIs used by Sun.


Revision tags: thorpej_scsipi_beforemerge thorpej_scsipi_nbase thorpej_scsipi_base
# 1.25 29-Dec-2000 eeh

Fix some 32-bit assembly code.


# 1.24 04-Dec-2000 fvdl

Comment out caxsa, it's not used. Avoids 32 bit compile errors.


# 1.23 31-Aug-2000 eeh

Fix register sheduling bug in st?a() routines and add casxa().


Revision tags: mrg-merge-1-5-top
# 1.22 14-Jul-2000 eeh

Tell gcc that stores clobber "memory". Probably makes no difference since
they should not be used to access normal memory anyway.


# 1.21 24-Jun-2000 eeh

With these changes the kernel seems almost stable again.


# 1.20 24-Jun-2000 eeh

More VM cleanup:

Move the cpu_info structure above the interrupt stack so it won't
get corrupted if the stack overflows.

Flush the D$ before and after all MMU bypass accesses since the
D$ latches all of those.


# 1.19 20-Jun-2000 eeh

lda is unsigned, ldswa is signed. Fixes a 32-bit sign extension bug.


Revision tags: netbsd-1-5-base
# 1.18 19-Jun-2000 eeh

branches: 1.18.2;
Have separate data and text segments, make text read-only.


# 1.17 10-Jun-2000 eeh

Only use 32-bit addresses for all accesses that don't bypass the MMU.
Makes SBus work again.


# 1.16 08-Jun-2000 eeh

Fixup signed/unsigned issues so 32-bit addresses are not sign extended.


# 1.15 07-Jun-2000 pk

Add a couple of missing semi-colons.


# 1.14 02-Jun-2000 eeh

Use all 64 address bits in ld*a()/st*a() macros so physical device addresses
work. (Also add some bus_space_*() debug hooks).


Revision tags: minoura-xpg4dl-base
# 1.13 10-Apr-2000 mrg

branches: 1.13.2;
- IRSR_BUSY is bit 5 not bit 4.
- IRSR_MID(x) is &'d with 0x1f (5 bits) not 0xf.


Revision tags: chs-ubc2-newbase wrstuden-devbsize-19991221 wrstuden-devbsize-base comdex-fall-1999-base fvdl-softdep-base chs-ubc2-base
# 1.12 08-Jun-1999 mrg

branches: 1.12.2;
mmm, missing return types make gcc unhappy.


# 1.11 05-Jun-1999 eeh

Make pbrobeget() and probeset() work for 64-bit values as well. To do this
the arguments are changed so the address is first and the ASI second so we
can have the address in %o0:%o1 and not worry about unused registers.

Also a bit of copyright cleanup.


# 1.10 31-May-1999 eeh

Fix some bugs in some more of those asm macros.


# 1.9 30-May-1999 eeh

Re-write ASI load/stores to use full 64-bit addresses so we can use device
register addresses with MMU bypass ASIs.


# 1.8 22-May-1999 eeh

Fixup argument confusion to __asm() statements. long long is two registers
wide in 32-bit mode. Doh!.


# 1.7 11-May-1999 eeh

Don't clobber any input regs in __asm statements.


Revision tags: netbsd-1-4-PATCH003 netbsd-1-4-PATCH002 kame_141_19991130 netbsd-1-4-PATCH001 kame_14_19990705 kame_14_19990628 netbsd-1-4-RELEASE netbsd-1-4-base
# 1.6 22-Mar-1999 eeh

branches: 1.6.4;
Flush D$ on bypass accesses.


# 1.5 31-Jan-1999 mrg

retire _LP64; use compiler provided __arch64__, but still defined _LP64 where we used to anyway.


Revision tags: kenh-if-detach-base
# 1.4 13-Nov-1998 eeh

Fix 32-bit gcc scheduling problems.


Revision tags: chs-ubc-base
# 1.3 05-Sep-1998 eeh

It slices. It dices. It does everything except exec a sparc32_compat init.


# 1.2 02-Sep-1998 eeh

Periodic update: now starts probing devices.


# 1.1 20-Jun-1998 eeh

branches: 1.1.1;
Initial revision


Revision tags: isaki-audio2-base
# 1.66 05-Apr-2019 nakayama

Redo previous.
In the case of store variant, put dummy constraint in output
instead of input.

Suggested by joerg@ in source-changes-d@


# 1.65 05-Apr-2019 nakayama

Add dummy constraints to avoid excessive optimization in clang.
GENERIC kernel compiled with clang now boot at least on my Fire V100.


Revision tags: pgoyette-compat-merge-20190127 pgoyette-compat-20190127 pgoyette-compat-20190118 pgoyette-compat-1226 pgoyette-compat-1126 pgoyette-compat-1020 pgoyette-compat-0930 pgoyette-compat-0906 pgoyette-compat-0728 netbsd-8-0-RELEASE phil-wifi-base pgoyette-compat-0625 netbsd-8-0-RC2 pgoyette-compat-0521 pgoyette-compat-0502 pgoyette-compat-0422 netbsd-8-0-RC1 pgoyette-compat-0415 pgoyette-compat-0407 pgoyette-compat-0330 pgoyette-compat-0322 pgoyette-compat-0315 pgoyette-compat-base tls-maxphys-base-20171202 matt-nb8-mediatek-base nick-nhusb-base-20170825 perseant-stdc-iso10646-base netbsd-8-base 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
# 1.64 28-Dec-2016 martin

Rename the "flush" macro to "sparc_flush_icache", the former is way too
generic for a macro name.


Revision tags: nick-nhusb-base-20161204 pgoyette-localcount-20161104 nick-nhusb-base-20161004 localcount-20160914 pgoyette-localcount-20160806 pgoyette-localcount-20160726 pgoyette-localcount-base nick-nhusb-base-20160907 nick-nhusb-base-20160529 nick-nhusb-base-20160422 nick-nhusb-base-20160319
# 1.63 03-Feb-2016 palle

branches: 1.63.2;
sun4v: extend dmmu_set_secondary_context() to handle both sun4u and sun4v. ok martin@


Revision tags: nick-nhusb-base-20151226 nick-nhusb-base-20150921 nick-nhusb-base-20150606 nick-nhusb-base-20150406
# 1.62 01-Apr-2015 palle

sun4v: Implement handling of cpu_mondo trap - from OpenBSD - tested using the Legion simulator


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.61 16-Jul-2014 palle

branches: 1.61.4;
sun4v: Introduce SET_MMU_CONTEXTID macro for setting the mmu context id on both sun4u and sun4v


Revision tags: yamt-pagecache-base9 riastradh-xf86-video-intel-2-7-1-pre-2-21-15 riastradh-drm2-base3 rmind-smpnet-nbase rmind-smpnet-base
# 1.60 16-Dec-2013 palle

branches: 1.60.2;
Updates to pmap_bootstrap() for sun4v - parts from OpenBSD - OK martin@


Revision tags: riastradh-drm2-base2 riastradh-drm2-base1 riastradh-drm2-base agc-symver-base yamt-pagecache-base8 yamt-pagecache-base7
# 1.59 08-Nov-2012 nakayama

branches: 1.59.2;
Rename ASR_IDSR to ASI_IDSR, which is ASI (Address Space Identifier),
not ASR (Ancillary State Register).


# 1.58 08-Nov-2012 nakayama

Move ASRs macro to more appropriate header.
While there remove useless macro.


# 1.57 08-Nov-2012 macallan

use system tick timer instead of %tick on UltraSPARC-III-ish CPUs
review & fixes by Takeshi Nakayama


Revision tags: netbsd-6-0-6-RELEASE netbsd-6-0-5-RELEASE netbsd-6-0-4-RELEASE netbsd-6-0-3-RELEASE netbsd-6-0-2-RELEASE netbsd-6-0-1-RELEASE matt-nb6-plus-nbase yamt-pagecache-base6 netbsd-6-0-RELEASE netbsd-6-0-RC2 matt-nb6-plus-base netbsd-6-0-RC1 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.56 08-Oct-2011 nakayama

branches: 1.56.2; 1.56.8; 1.56.12;
Fix namespace confilicts membar_ops(3) vs. macros for SPARC V9
membar instructions.


Revision tags: rmind-uvmplock-nbase cherry-xenmp-base rmind-uvmplock-base jym-xensuspend-nbase jym-xensuspend-base
# 1.55 16-Mar-2011 mrg

add some control registers found on the Fire and Jupiter busses.
from openbsd.


Revision tags: uebayasi-xip-base7 bouyer-quota2-nbase bouyer-quota2-base jruoho-x86intr-base matt-mips64-premerge-20101231
# 1.54 18-Dec-2010 mrg

branches: 1.54.2;
add a bit for MCCR_RAW_EN -- enable read-after-write.


Revision tags: uebayasi-xip-base6 uebayasi-xip-base5 uebayasi-xip-base4 uebayasi-xip-base3 yamt-nfs-mp-base11 uebayasi-xip-base2 yamt-nfs-mp-base10
# 1.53 10-Jul-2010 nakayama

Clear the upper word explicitly before combining two 32-bit values to 64-bit
on 32-bit kernels.


Revision tags: uebayasi-xip-base1 yamt-nfs-mp-base9
# 1.52 23-Feb-2010 mrg

branches: 1.52.2;
add some bits to set to access all the cheetah dtlb/itlb's.


# 1.51 21-Feb-2010 mrg

s/D-cache/I-cache/ in some comments.


# 1.50 13-Feb-2010 mrg

add some defines for the sizes of TLBs in various CPUs.


Revision tags: uebayasi-xip-base
# 1.49 01-Feb-2010 mrg

branches: 1.49.2;
for USIII, use the new "tlb demap all" operation in sp_tlb_flush_all()


Revision tags: matt-premerge-20091211
# 1.48 05-Dec-2009 nakayama

Garbage collect unused or incomplete definitions.


# 1.47 05-Dec-2009 nakayama

Bring together similar inline asm codes of ld*a and st*a definitions
using macro, also remove unnecessary membar #Sync and %asi restore in
the case of 32-bit kernel.

While there, introduce an optimization case that asi is constant if
we are using gcc.


# 1.46 28-Nov-2009 mrg

add some ultrasparcIII defines, from openbsd.


Revision tags: yamt-nfs-mp-base8 yamt-nfs-mp-base7 jymxensuspend-base yamt-nfs-mp-base6 yamt-nfs-mp-base5
# 1.45 16-May-2009 nakayama

- move definition of tick() from ctlreg.h to psl.h and rename to gettick()
for consistency with other functions for reading/writing ASRs.
- move definition of tl() from trap.c to psl.h as same as above.
- define settick() in psl.h and use it in clock.c.
- cosmetic chages in psl.h.


Revision tags: netbsd-5-2-3-RELEASE netbsd-5-1-5-RELEASE netbsd-5-2-2-RELEASE netbsd-5-1-4-RELEASE netbsd-5-2-1-RELEASE netbsd-5-1-3-RELEASE netbsd-5-2-RELEASE netbsd-5-2-RC1 netbsd-5-1-2-RELEASE netbsd-5-1-1-RELEASE matt-nb5-mips64-premerge-20101231 matt-nb5-pq3-base netbsd-5-1-RELEASE netbsd-5-1-RC4 matt-nb5-mips64-k15 netbsd-5-1-RC3 netbsd-5-1-RC2 netbsd-5-1-RC1 netbsd-5-0-2-RELEASE matt-nb5-mips64-premerge-20091211 matt-nb5-mips64-u2-k2-k4-k7-k8-k9 matt-nb4-mips64-k7-u2a-k9b matt-nb5-mips64-u1-k1-k5 netbsd-5-0-1-RELEASE yamt-nfs-mp-base4 yamt-nfs-mp-base3 nick-hppapmap-base4 nick-hppapmap-base3 netbsd-5-0-RELEASE netbsd-5-0-RC4 netbsd-5-0-RC3 nick-hppapmap-base2 netbsd-5-0-RC2 netbsd-5-0-RC1 haad-dm-base2 haad-nbase2 ad-audiomp2-base netbsd-5-base nick-hppapmap-base matt-mips64-base2 haad-dm-base1 wrstuden-revivesa-base-4 wrstuden-revivesa-base-3 wrstuden-revivesa-base-2 nick-csl-alignment-base5 haad-dm-base wrstuden-revivesa-base-1 simonb-wapbl-nbase yamt-pf42-base4 simonb-wapbl-base yamt-pf42-base3 hpcarm-cleanup-nbase yamt-pf42-baseX yamt-pf42-base2 yamt-nfs-mp-base2 wrstuden-revivesa-base yamt-nfs-mp-base yamt-pf42-base ad-socklock-base1 yamt-lazymbuf-base15 yamt-lazymbuf-base14 keiichi-mipv6-nbase mjf-devfs2-base nick-net80211-sync-base keiichi-mipv6-base bouyer-xeni386-merge1 matt-armv6-prevmlocking vmlocking2-base3 bouyer-xeni386-nbase yamt-kmem-base3 cube-autoconf-base yamt-kmem-base2 bouyer-xeni386-base yamt-kmem-base vmlocking2-base2 reinoud-bufcleanup-nbase vmlocking2-base1 matt-armv6-nbase jmcneill-base mjf-devfs-base bouyer-xenamd64-base2 vmlocking-nbase yamt-x86pmap-base4 bouyer-xenamd64-base yamt-x86pmap-base3 yamt-x86pmap-base2 yamt-x86pmap-base matt-armv6-base jmcneill-pm-base hpcarm-cleanup-base nick-csl-alignment-base matt-mips64-base yamt-idlelwp-base8 ppcoea-renovation-base thorpej-atomic-base reinoud-bufcleanup-base mjf-ufs-trans-base vmlocking-base
# 1.44 31-Mar-2007 hannken

branches: 1.44.38;
Cleanup last by using a "n"umeric address space identifier.

Ok: Martin Husemann <martin@netbsd.org>


# 1.43 30-Mar-2007 martin

When invalidating a context, make sure to flush user windows upfront.
Do not set the DMMU secondary context to 0 (that would be kernel), and
add a few required membars after switching the secondary dmmu context.

This avoids SIRs caused by double kernel_data_faults, caused by spills
of obsolete user windows after the context for that user pmap is gone.


Revision tags: ad-audiomp-base post-newlock2-merge newlock2-nbase yamt-splraiseipl-base5 yamt-splraiseipl-base4 yamt-splraiseipl-base3 abandoned-netbsd-4-base yamt-splraiseipl-base2 yamt-splraiseipl-base yamt-pdpolicy-base9 newlock2-base yamt-pdpolicy-base8 yamt-pdpolicy-base7 netbsd-4-base yamt-pdpolicy-base6 chap-midi-nbase gdamore-uart-base yamt-pdpolicy-base5 chap-midi-base yamt-pdpolicy-base4 yamt-pdpolicy-base3 peter-altq-base yamt-pdpolicy-base2 elad-kernelauth-base yamt-pdpolicy-base yamt-uio_vmspace-base5 simonb-timecounters-base rpaulo-netinet-merge-pcb-base
# 1.42 20-Feb-2006 cdi

branches: 1.42.18; 1.42.20; 1.42.24; 1.42.26;
Use ANSI-style function definitions and declarations.


# 1.41 16-Feb-2006 perry

Change "inline" back to "__inline" in .h files -- C99 is still too
new, and some apps compile things in C89 mode. C89 keywords stay.

As per core@.


# 1.40 11-Feb-2006 cdi

ANSIfication: u_intN_t -> uintN_t, use ANSI function declarations/definitions
instead of K&R ones.


# 1.39 24-Dec-2005 perry

branches: 1.39.2; 1.39.4; 1.39.6;
__asm__ -> __asm
__const__ -> const
__inline__ -> inline
__volatile__ -> volatile


# 1.38 24-Dec-2005 perry

Remove leading __ from __(const|inline|signed|volatile) -- it is obsolete.


# 1.37 11-Dec-2005 christos

merge ktrace-lwp.


Revision tags: netbsd-3-1-1-RELEASE netbsd-3-0-3-RELEASE netbsd-3-1-RELEASE netbsd-3-0-2-RELEASE netbsd-3-1-RC4 netbsd-3-1-RC3 netbsd-3-1-RC2 netbsd-3-1-RC1 netbsd-3-0-1-RELEASE netbsd-3-0-RELEASE netbsd-3-0-RC6 yamt-readahead-base3 netbsd-3-0-RC5 netbsd-3-0-RC4 netbsd-3-0-RC3 yamt-readahead-base2 netbsd-3-0-RC2 yamt-readahead-pervnode yamt-readahead-perfile yamt-readahead-base netbsd-3-0-RC1 yamt-vop-base3 yamt-vop-base2 thorpej-vnode-attr-base yamt-vop-base yamt-km-base4 yamt-km-base3 netbsd-3-base yamt-km-base2 yamt-km-base kent-audio2-base kent-audio1-beforemerge kent-audio1-base ktrace-lwp-base
# 1.36 01-Jul-2004 petrov

branches: 1.36.12;
Added UPA_MID definitions and macros(similar to FreeBSD).
Added membar_store, membar_load macros.
No need to set %asi _after_ alternate space use in corresponding functions.
Enable(unifdef) casa functions for __arch64__.


# 1.35 01-Jul-2004 heas

typo in define name, littie -> little


# 1.34 24-Jun-2004 martin

Add missing ; in inline assembler for 32bit kernels


# 1.33 17-Jun-2004 petrov

clean-up, reformat __asm statements.


Revision tags: netbsd-2-0-3-RELEASE netbsd-2-1-RELEASE netbsd-2-1-RC6 netbsd-2-1-RC5 netbsd-2-1-RC4 netbsd-2-1-RC3 netbsd-2-1-RC2 netbsd-2-1-RC1 netbsd-2-0-2-RELEASE netbsd-2-0-1-RELEASE netbsd-2-base netbsd-2-0-RELEASE netbsd-2-0-RC5 netbsd-2-0-RC4 netbsd-2-0-RC3 netbsd-2-0-RC2 netbsd-2-0-RC1 netbsd-2-0-base
# 1.32 22-Mar-2004 nakayama

Eliminate cast 64-bit address to u_long.


# 1.31 14-Mar-2004 chs

checkpoint of MP work from dennis and myself. includes cross-processor
interrupt framework, a sledgehammer TLB invalidation and misc MP fixes.
doesn't work at all yet.


Revision tags: netbsd-1-6-PATCH002-RELEASE netbsd-1-6-PATCH002 netbsd-1-6-PATCH002-RC4 netbsd-1-6-PATCH002-RC3 netbsd-1-6-PATCH002-RC2 netbsd-1-6-PATCH002-RC1 netbsd-1-6-PATCH001 netbsd-1-6-PATCH001-RELEASE netbsd-1-6-PATCH001-RC3 netbsd-1-6-PATCH001-RC2 netbsd-1-6-PATCH001-RC1 nathanw_sa_before_merge fvdl_fs64_base gmcgarry_ctxsw_base gmcgarry_ucred_base nathanw_sa_base kqueue-aftermerge kqueue-beforemerge netbsd-1-6-RELEASE netbsd-1-6-RC3 netbsd-1-6-RC2 netbsd-1-6-RC1 netbsd-1-6-base gehenna-devsw-base kqueue-base
# 1.30 24-Apr-2002 eeh

branches: 1.30.10;
Don't need to flush the d$ for MMU bypass accesses.


Revision tags: eeh-devprop-base newlock-base ifpoll-base
# 1.29 14-Jan-2002 eeh

Make PHYS_ASI() also recognize little-endian ASIs.


Revision tags: thorpej-mips-cache-base thorpej-devvp-base3 thorpej-devvp-base2 post-chs-ubcperf pre-chs-ubcperf thorpej-devvp-base
# 1.28 06-Aug-2001 eeh

branches: 1.28.6;
Add some alternate spellings for ASIs.
Make sure ASI_PRIMARY_NOFAULT is always restored.
Garbage collect some old code.


# 1.27 19-Jul-2001 eeh

Don't bother flushing cache lines for un-cached accesses.


# 1.26 29-Jun-2001 eeh

branches: 1.26.2;
Add the shorter version of block ASIs used by Sun.


Revision tags: thorpej_scsipi_beforemerge thorpej_scsipi_nbase thorpej_scsipi_base
# 1.25 29-Dec-2000 eeh

Fix some 32-bit assembly code.


# 1.24 04-Dec-2000 fvdl

Comment out caxsa, it's not used. Avoids 32 bit compile errors.


# 1.23 31-Aug-2000 eeh

Fix register sheduling bug in st?a() routines and add casxa().


Revision tags: mrg-merge-1-5-top
# 1.22 14-Jul-2000 eeh

Tell gcc that stores clobber "memory". Probably makes no difference since
they should not be used to access normal memory anyway.


# 1.21 24-Jun-2000 eeh

With these changes the kernel seems almost stable again.


# 1.20 24-Jun-2000 eeh

More VM cleanup:

Move the cpu_info structure above the interrupt stack so it won't
get corrupted if the stack overflows.

Flush the D$ before and after all MMU bypass accesses since the
D$ latches all of those.


# 1.19 20-Jun-2000 eeh

lda is unsigned, ldswa is signed. Fixes a 32-bit sign extension bug.


Revision tags: netbsd-1-5-base
# 1.18 19-Jun-2000 eeh

branches: 1.18.2;
Have separate data and text segments, make text read-only.


# 1.17 10-Jun-2000 eeh

Only use 32-bit addresses for all accesses that don't bypass the MMU.
Makes SBus work again.


# 1.16 08-Jun-2000 eeh

Fixup signed/unsigned issues so 32-bit addresses are not sign extended.


# 1.15 07-Jun-2000 pk

Add a couple of missing semi-colons.


# 1.14 02-Jun-2000 eeh

Use all 64 address bits in ld*a()/st*a() macros so physical device addresses
work. (Also add some bus_space_*() debug hooks).


Revision tags: minoura-xpg4dl-base
# 1.13 10-Apr-2000 mrg

branches: 1.13.2;
- IRSR_BUSY is bit 5 not bit 4.
- IRSR_MID(x) is &'d with 0x1f (5 bits) not 0xf.


Revision tags: chs-ubc2-newbase wrstuden-devbsize-19991221 wrstuden-devbsize-base comdex-fall-1999-base fvdl-softdep-base chs-ubc2-base
# 1.12 08-Jun-1999 mrg

branches: 1.12.2;
mmm, missing return types make gcc unhappy.


# 1.11 05-Jun-1999 eeh

Make pbrobeget() and probeset() work for 64-bit values as well. To do this
the arguments are changed so the address is first and the ASI second so we
can have the address in %o0:%o1 and not worry about unused registers.

Also a bit of copyright cleanup.


# 1.10 31-May-1999 eeh

Fix some bugs in some more of those asm macros.


# 1.9 30-May-1999 eeh

Re-write ASI load/stores to use full 64-bit addresses so we can use device
register addresses with MMU bypass ASIs.


# 1.8 22-May-1999 eeh

Fixup argument confusion to __asm() statements. long long is two registers
wide in 32-bit mode. Doh!.


# 1.7 11-May-1999 eeh

Don't clobber any input regs in __asm statements.


Revision tags: netbsd-1-4-PATCH003 netbsd-1-4-PATCH002 kame_141_19991130 netbsd-1-4-PATCH001 kame_14_19990705 kame_14_19990628 netbsd-1-4-RELEASE netbsd-1-4-base
# 1.6 22-Mar-1999 eeh

branches: 1.6.4;
Flush D$ on bypass accesses.


# 1.5 31-Jan-1999 mrg

retire _LP64; use compiler provided __arch64__, but still defined _LP64 where we used to anyway.


Revision tags: kenh-if-detach-base
# 1.4 13-Nov-1998 eeh

Fix 32-bit gcc scheduling problems.


Revision tags: chs-ubc-base
# 1.3 05-Sep-1998 eeh

It slices. It dices. It does everything except exec a sparc32_compat init.


# 1.2 02-Sep-1998 eeh

Periodic update: now starts probing devices.


# 1.1 20-Jun-1998 eeh

branches: 1.1.1;
Initial revision


# 1.64 28-Dec-2016 martin

Rename the "flush" macro to "sparc_flush_icache", the former is way too
generic for a macro name.


Revision tags: nick-nhusb-base-20161204 pgoyette-localcount-20161104 nick-nhusb-base-20161004 localcount-20160914 pgoyette-localcount-20160806 pgoyette-localcount-20160726 pgoyette-localcount-base nick-nhusb-base-20160907 nick-nhusb-base-20160529 nick-nhusb-base-20160422 nick-nhusb-base-20160319
# 1.63 03-Feb-2016 palle

sun4v: extend dmmu_set_secondary_context() to handle both sun4u and sun4v. ok martin@


Revision tags: nick-nhusb-base-20151226 nick-nhusb-base-20150921 nick-nhusb-base-20150606 nick-nhusb-base-20150406
# 1.62 01-Apr-2015 palle

sun4v: Implement handling of cpu_mondo trap - from OpenBSD - tested using the Legion simulator


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.61 16-Jul-2014 palle

branches: 1.61.4;
sun4v: Introduce SET_MMU_CONTEXTID macro for setting the mmu context id on both sun4u and sun4v


Revision tags: yamt-pagecache-base9 riastradh-xf86-video-intel-2-7-1-pre-2-21-15 riastradh-drm2-base3 rmind-smpnet-nbase rmind-smpnet-base
# 1.60 16-Dec-2013 palle

branches: 1.60.2;
Updates to pmap_bootstrap() for sun4v - parts from OpenBSD - OK martin@


Revision tags: riastradh-drm2-base2 riastradh-drm2-base1 riastradh-drm2-base agc-symver-base yamt-pagecache-base8 yamt-pagecache-base7
# 1.59 08-Nov-2012 nakayama

branches: 1.59.2;
Rename ASR_IDSR to ASI_IDSR, which is ASI (Address Space Identifier),
not ASR (Ancillary State Register).


# 1.58 08-Nov-2012 nakayama

Move ASRs macro to more appropriate header.
While there remove useless macro.


# 1.57 08-Nov-2012 macallan

use system tick timer instead of %tick on UltraSPARC-III-ish CPUs
review & fixes by Takeshi Nakayama


Revision tags: netbsd-6-0-6-RELEASE netbsd-6-0-5-RELEASE netbsd-6-0-4-RELEASE netbsd-6-0-3-RELEASE netbsd-6-0-2-RELEASE netbsd-6-0-1-RELEASE matt-nb6-plus-nbase yamt-pagecache-base6 netbsd-6-0-RELEASE netbsd-6-0-RC2 matt-nb6-plus-base netbsd-6-0-RC1 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.56 08-Oct-2011 nakayama

branches: 1.56.2; 1.56.8; 1.56.12;
Fix namespace confilicts membar_ops(3) vs. macros for SPARC V9
membar instructions.


Revision tags: rmind-uvmplock-nbase cherry-xenmp-base rmind-uvmplock-base jym-xensuspend-nbase jym-xensuspend-base
# 1.55 16-Mar-2011 mrg

add some control registers found on the Fire and Jupiter busses.
from openbsd.


Revision tags: uebayasi-xip-base7 bouyer-quota2-nbase bouyer-quota2-base jruoho-x86intr-base matt-mips64-premerge-20101231
# 1.54 18-Dec-2010 mrg

branches: 1.54.2;
add a bit for MCCR_RAW_EN -- enable read-after-write.


Revision tags: uebayasi-xip-base6 uebayasi-xip-base5 uebayasi-xip-base4 uebayasi-xip-base3 yamt-nfs-mp-base11 uebayasi-xip-base2 yamt-nfs-mp-base10
# 1.53 10-Jul-2010 nakayama

Clear the upper word explicitly before combining two 32-bit values to 64-bit
on 32-bit kernels.


Revision tags: uebayasi-xip-base1 yamt-nfs-mp-base9
# 1.52 23-Feb-2010 mrg

branches: 1.52.2;
add some bits to set to access all the cheetah dtlb/itlb's.


# 1.51 21-Feb-2010 mrg

s/D-cache/I-cache/ in some comments.


# 1.50 13-Feb-2010 mrg

add some defines for the sizes of TLBs in various CPUs.


Revision tags: uebayasi-xip-base
# 1.49 01-Feb-2010 mrg

branches: 1.49.2;
for USIII, use the new "tlb demap all" operation in sp_tlb_flush_all()


Revision tags: matt-premerge-20091211
# 1.48 05-Dec-2009 nakayama

Garbage collect unused or incomplete definitions.


# 1.47 05-Dec-2009 nakayama

Bring together similar inline asm codes of ld*a and st*a definitions
using macro, also remove unnecessary membar #Sync and %asi restore in
the case of 32-bit kernel.

While there, introduce an optimization case that asi is constant if
we are using gcc.


# 1.46 28-Nov-2009 mrg

add some ultrasparcIII defines, from openbsd.


Revision tags: yamt-nfs-mp-base8 yamt-nfs-mp-base7 jymxensuspend-base yamt-nfs-mp-base6 yamt-nfs-mp-base5
# 1.45 16-May-2009 nakayama

- move definition of tick() from ctlreg.h to psl.h and rename to gettick()
for consistency with other functions for reading/writing ASRs.
- move definition of tl() from trap.c to psl.h as same as above.
- define settick() in psl.h and use it in clock.c.
- cosmetic chages in psl.h.


Revision tags: netbsd-5-2-3-RELEASE netbsd-5-1-5-RELEASE netbsd-5-2-2-RELEASE netbsd-5-1-4-RELEASE netbsd-5-2-1-RELEASE netbsd-5-1-3-RELEASE netbsd-5-2-RELEASE netbsd-5-2-RC1 netbsd-5-1-2-RELEASE netbsd-5-1-1-RELEASE matt-nb5-mips64-premerge-20101231 matt-nb5-pq3-base netbsd-5-1-RELEASE netbsd-5-1-RC4 matt-nb5-mips64-k15 netbsd-5-1-RC3 netbsd-5-1-RC2 netbsd-5-1-RC1 netbsd-5-0-2-RELEASE matt-nb5-mips64-premerge-20091211 matt-nb5-mips64-u2-k2-k4-k7-k8-k9 matt-nb4-mips64-k7-u2a-k9b matt-nb5-mips64-u1-k1-k5 netbsd-5-0-1-RELEASE yamt-nfs-mp-base4 yamt-nfs-mp-base3 nick-hppapmap-base4 nick-hppapmap-base3 netbsd-5-0-RELEASE netbsd-5-0-RC4 netbsd-5-0-RC3 nick-hppapmap-base2 netbsd-5-0-RC2 netbsd-5-0-RC1 haad-dm-base2 haad-nbase2 ad-audiomp2-base netbsd-5-base nick-hppapmap-base matt-mips64-base2 haad-dm-base1 wrstuden-revivesa-base-4 wrstuden-revivesa-base-3 wrstuden-revivesa-base-2 nick-csl-alignment-base5 haad-dm-base wrstuden-revivesa-base-1 simonb-wapbl-nbase yamt-pf42-base4 simonb-wapbl-base yamt-pf42-base3 hpcarm-cleanup-nbase yamt-pf42-baseX yamt-pf42-base2 yamt-nfs-mp-base2 wrstuden-revivesa-base yamt-nfs-mp-base yamt-pf42-base ad-socklock-base1 yamt-lazymbuf-base15 yamt-lazymbuf-base14 keiichi-mipv6-nbase mjf-devfs2-base nick-net80211-sync-base keiichi-mipv6-base bouyer-xeni386-merge1 matt-armv6-prevmlocking vmlocking2-base3 bouyer-xeni386-nbase yamt-kmem-base3 cube-autoconf-base yamt-kmem-base2 bouyer-xeni386-base yamt-kmem-base vmlocking2-base2 reinoud-bufcleanup-nbase vmlocking2-base1 matt-armv6-nbase jmcneill-base mjf-devfs-base bouyer-xenamd64-base2 vmlocking-nbase yamt-x86pmap-base4 bouyer-xenamd64-base yamt-x86pmap-base3 yamt-x86pmap-base2 yamt-x86pmap-base matt-armv6-base jmcneill-pm-base hpcarm-cleanup-base nick-csl-alignment-base matt-mips64-base yamt-idlelwp-base8 ppcoea-renovation-base thorpej-atomic-base reinoud-bufcleanup-base mjf-ufs-trans-base vmlocking-base
# 1.44 31-Mar-2007 hannken

branches: 1.44.38;
Cleanup last by using a "n"umeric address space identifier.

Ok: Martin Husemann <martin@netbsd.org>


# 1.43 30-Mar-2007 martin

When invalidating a context, make sure to flush user windows upfront.
Do not set the DMMU secondary context to 0 (that would be kernel), and
add a few required membars after switching the secondary dmmu context.

This avoids SIRs caused by double kernel_data_faults, caused by spills
of obsolete user windows after the context for that user pmap is gone.


Revision tags: ad-audiomp-base post-newlock2-merge newlock2-nbase yamt-splraiseipl-base5 yamt-splraiseipl-base4 yamt-splraiseipl-base3 abandoned-netbsd-4-base yamt-splraiseipl-base2 yamt-splraiseipl-base yamt-pdpolicy-base9 newlock2-base yamt-pdpolicy-base8 yamt-pdpolicy-base7 netbsd-4-base yamt-pdpolicy-base6 chap-midi-nbase gdamore-uart-base yamt-pdpolicy-base5 chap-midi-base yamt-pdpolicy-base4 yamt-pdpolicy-base3 peter-altq-base yamt-pdpolicy-base2 elad-kernelauth-base yamt-pdpolicy-base yamt-uio_vmspace-base5 simonb-timecounters-base rpaulo-netinet-merge-pcb-base
# 1.42 20-Feb-2006 cdi

branches: 1.42.18; 1.42.20; 1.42.24; 1.42.26;
Use ANSI-style function definitions and declarations.


# 1.41 16-Feb-2006 perry

Change "inline" back to "__inline" in .h files -- C99 is still too
new, and some apps compile things in C89 mode. C89 keywords stay.

As per core@.


# 1.40 11-Feb-2006 cdi

ANSIfication: u_intN_t -> uintN_t, use ANSI function declarations/definitions
instead of K&R ones.


# 1.39 24-Dec-2005 perry

branches: 1.39.2; 1.39.4; 1.39.6;
__asm__ -> __asm
__const__ -> const
__inline__ -> inline
__volatile__ -> volatile


# 1.38 24-Dec-2005 perry

Remove leading __ from __(const|inline|signed|volatile) -- it is obsolete.


# 1.37 11-Dec-2005 christos

merge ktrace-lwp.


Revision tags: netbsd-3-1-1-RELEASE netbsd-3-0-3-RELEASE netbsd-3-1-RELEASE netbsd-3-0-2-RELEASE netbsd-3-1-RC4 netbsd-3-1-RC3 netbsd-3-1-RC2 netbsd-3-1-RC1 netbsd-3-0-1-RELEASE netbsd-3-0-RELEASE netbsd-3-0-RC6 yamt-readahead-base3 netbsd-3-0-RC5 netbsd-3-0-RC4 netbsd-3-0-RC3 yamt-readahead-base2 netbsd-3-0-RC2 yamt-readahead-pervnode yamt-readahead-perfile yamt-readahead-base netbsd-3-0-RC1 yamt-vop-base3 yamt-vop-base2 thorpej-vnode-attr-base yamt-vop-base yamt-km-base4 yamt-km-base3 netbsd-3-base yamt-km-base2 yamt-km-base kent-audio2-base kent-audio1-beforemerge kent-audio1-base ktrace-lwp-base
# 1.36 01-Jul-2004 petrov

branches: 1.36.12;
Added UPA_MID definitions and macros(similar to FreeBSD).
Added membar_store, membar_load macros.
No need to set %asi _after_ alternate space use in corresponding functions.
Enable(unifdef) casa functions for __arch64__.


# 1.35 01-Jul-2004 heas

typo in define name, littie -> little


# 1.34 24-Jun-2004 martin

Add missing ; in inline assembler for 32bit kernels


# 1.33 17-Jun-2004 petrov

clean-up, reformat __asm statements.


Revision tags: netbsd-2-0-3-RELEASE netbsd-2-1-RELEASE netbsd-2-1-RC6 netbsd-2-1-RC5 netbsd-2-1-RC4 netbsd-2-1-RC3 netbsd-2-1-RC2 netbsd-2-1-RC1 netbsd-2-0-2-RELEASE netbsd-2-0-1-RELEASE netbsd-2-base netbsd-2-0-RELEASE netbsd-2-0-RC5 netbsd-2-0-RC4 netbsd-2-0-RC3 netbsd-2-0-RC2 netbsd-2-0-RC1 netbsd-2-0-base
# 1.32 22-Mar-2004 nakayama

Eliminate cast 64-bit address to u_long.


# 1.31 14-Mar-2004 chs

checkpoint of MP work from dennis and myself. includes cross-processor
interrupt framework, a sledgehammer TLB invalidation and misc MP fixes.
doesn't work at all yet.


Revision tags: netbsd-1-6-PATCH002-RELEASE netbsd-1-6-PATCH002 netbsd-1-6-PATCH002-RC4 netbsd-1-6-PATCH002-RC3 netbsd-1-6-PATCH002-RC2 netbsd-1-6-PATCH002-RC1 netbsd-1-6-PATCH001 netbsd-1-6-PATCH001-RELEASE netbsd-1-6-PATCH001-RC3 netbsd-1-6-PATCH001-RC2 netbsd-1-6-PATCH001-RC1 nathanw_sa_before_merge fvdl_fs64_base gmcgarry_ctxsw_base gmcgarry_ucred_base nathanw_sa_base kqueue-aftermerge kqueue-beforemerge netbsd-1-6-RELEASE netbsd-1-6-RC3 netbsd-1-6-RC2 netbsd-1-6-RC1 netbsd-1-6-base gehenna-devsw-base kqueue-base
# 1.30 24-Apr-2002 eeh

branches: 1.30.10;
Don't need to flush the d$ for MMU bypass accesses.


Revision tags: eeh-devprop-base newlock-base ifpoll-base
# 1.29 14-Jan-2002 eeh

Make PHYS_ASI() also recognize little-endian ASIs.


Revision tags: thorpej-mips-cache-base thorpej-devvp-base3 thorpej-devvp-base2 post-chs-ubcperf pre-chs-ubcperf thorpej-devvp-base
# 1.28 06-Aug-2001 eeh

branches: 1.28.6;
Add some alternate spellings for ASIs.
Make sure ASI_PRIMARY_NOFAULT is always restored.
Garbage collect some old code.


# 1.27 19-Jul-2001 eeh

Don't bother flushing cache lines for un-cached accesses.


# 1.26 29-Jun-2001 eeh

branches: 1.26.2;
Add the shorter version of block ASIs used by Sun.


Revision tags: thorpej_scsipi_beforemerge thorpej_scsipi_nbase thorpej_scsipi_base
# 1.25 29-Dec-2000 eeh

Fix some 32-bit assembly code.


# 1.24 04-Dec-2000 fvdl

Comment out caxsa, it's not used. Avoids 32 bit compile errors.


# 1.23 31-Aug-2000 eeh

Fix register sheduling bug in st?a() routines and add casxa().


Revision tags: mrg-merge-1-5-top
# 1.22 14-Jul-2000 eeh

Tell gcc that stores clobber "memory". Probably makes no difference since
they should not be used to access normal memory anyway.


# 1.21 24-Jun-2000 eeh

With these changes the kernel seems almost stable again.


# 1.20 24-Jun-2000 eeh

More VM cleanup:

Move the cpu_info structure above the interrupt stack so it won't
get corrupted if the stack overflows.

Flush the D$ before and after all MMU bypass accesses since the
D$ latches all of those.


# 1.19 20-Jun-2000 eeh

lda is unsigned, ldswa is signed. Fixes a 32-bit sign extension bug.


Revision tags: netbsd-1-5-base
# 1.18 19-Jun-2000 eeh

branches: 1.18.2;
Have separate data and text segments, make text read-only.


# 1.17 10-Jun-2000 eeh

Only use 32-bit addresses for all accesses that don't bypass the MMU.
Makes SBus work again.


# 1.16 08-Jun-2000 eeh

Fixup signed/unsigned issues so 32-bit addresses are not sign extended.


# 1.15 07-Jun-2000 pk

Add a couple of missing semi-colons.


# 1.14 02-Jun-2000 eeh

Use all 64 address bits in ld*a()/st*a() macros so physical device addresses
work. (Also add some bus_space_*() debug hooks).


Revision tags: minoura-xpg4dl-base
# 1.13 10-Apr-2000 mrg

branches: 1.13.2;
- IRSR_BUSY is bit 5 not bit 4.
- IRSR_MID(x) is &'d with 0x1f (5 bits) not 0xf.


Revision tags: chs-ubc2-newbase wrstuden-devbsize-19991221 wrstuden-devbsize-base comdex-fall-1999-base fvdl-softdep-base chs-ubc2-base
# 1.12 08-Jun-1999 mrg

branches: 1.12.2;
mmm, missing return types make gcc unhappy.


# 1.11 05-Jun-1999 eeh

Make pbrobeget() and probeset() work for 64-bit values as well. To do this
the arguments are changed so the address is first and the ASI second so we
can have the address in %o0:%o1 and not worry about unused registers.

Also a bit of copyright cleanup.


# 1.10 31-May-1999 eeh

Fix some bugs in some more of those asm macros.


# 1.9 30-May-1999 eeh

Re-write ASI load/stores to use full 64-bit addresses so we can use device
register addresses with MMU bypass ASIs.


# 1.8 22-May-1999 eeh

Fixup argument confusion to __asm() statements. long long is two registers
wide in 32-bit mode. Doh!.


# 1.7 11-May-1999 eeh

Don't clobber any input regs in __asm statements.


Revision tags: netbsd-1-4-PATCH003 netbsd-1-4-PATCH002 kame_141_19991130 netbsd-1-4-PATCH001 kame_14_19990705 kame_14_19990628 netbsd-1-4-RELEASE netbsd-1-4-base
# 1.6 22-Mar-1999 eeh

branches: 1.6.4;
Flush D$ on bypass accesses.


# 1.5 31-Jan-1999 mrg

retire _LP64; use compiler provided __arch64__, but still defined _LP64 where we used to anyway.


Revision tags: kenh-if-detach-base
# 1.4 13-Nov-1998 eeh

Fix 32-bit gcc scheduling problems.


Revision tags: chs-ubc-base
# 1.3 05-Sep-1998 eeh

It slices. It dices. It does everything except exec a sparc32_compat init.


# 1.2 02-Sep-1998 eeh

Periodic update: now starts probing devices.


# 1.1 20-Jun-1998 eeh

branches: 1.1.1;
Initial revision