Home | History | Annotate | Download | only in include
History log of /src/sys/arch/sparc64/include/ctlreg.h
RevisionDateAuthorComments
 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.
 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.
 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.
 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.
 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.
 1.63  03-Feb-2016  palle branches: 1.63.2;
sun4v: extend dmmu_set_secondary_context() to handle both sun4u and sun4v. ok martin@
 1.62  01-Apr-2015  palle sun4v: Implement handling of cpu_mondo trap - from OpenBSD - tested using the Legion simulator
 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
 1.60  16-Dec-2013  palle branches: 1.60.2;
Updates to pmap_bootstrap() for sun4v - parts from OpenBSD - OK martin@
 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
 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.
 1.55  16-Mar-2011  mrg add some control registers found on the Fire and Jupiter busses.
from openbsd.
 1.54  18-Dec-2010  mrg branches: 1.54.2;
add a bit for MCCR_RAW_EN -- enable read-after-write.
 1.53  10-Jul-2010  nakayama Clear the upper word explicitly before combining two 32-bit values to 64-bit
on 32-bit kernels.
 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.
 1.49  01-Feb-2010  mrg branches: 1.49.2;
for USIII, use the new "tlb demap all" operation in sp_tlb_flush_all()
 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.
 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.
 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.
 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.
 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.
 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.
 1.30  24-Apr-2002  eeh branches: 1.30.10;
Don't need to flush the d$ for MMU bypass accesses.
 1.29  14-Jan-2002  eeh Make PHYS_ASI() also recognize little-endian ASIs.
 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.
 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().
 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.
 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).
 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.
 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.
 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.
 1.4  13-Nov-1998  eeh Fix 32-bit gcc scheduling problems.
 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.1.1.1  20-Jun-1998  eeh Import of sparc64.
 1.6.4.1  21-Jun-1999  thorpej Sync w/ -current.
 1.12.2.3  05-Jan-2001  bouyer Sync with HEAD
 1.12.2.2  08-Dec-2000  bouyer Sync with HEAD.
 1.12.2.1  20-Nov-2000  bouyer Update thorpej_scsipi to -current as of a month ago
A i386 GENERIC kernel compiles without the siop, ahc and bha drivers
(will be updated later). i386 IDE/ATAPI and ncr work, as well as
sparc/esp_sbus. alpha should work as well (untested yet).
siop, ahc and bha will be updated once I've updated the branch to current
-current, as well as machine-dependant code.
 1.13.2.1  22-Jun-2000  minoura Sync w/ netbsd-1-5-base.
 1.18.2.1  18-Jul-2000  mrg pullup the contents of -current arch/sparc64. this gives us significant
ultrasparc PCI support (ultra5, ultra10, AXi, and E250 tested so far),
plus many other small fixes. netbooting is now supported.
 1.26.2.4  23-Jun-2002  jdolecek catch up with -current on kqueue branch
 1.26.2.3  11-Feb-2002  jdolecek Sync w/ -current.
 1.26.2.2  25-Aug-2001  thorpej Merge Aug 24 -current into the kqueue branch.
 1.26.2.1  03-Aug-2001  lukem update to -current
 1.28.6.3  20-Jun-2002  nathanw Catch up to -current.
 1.28.6.2  28-Feb-2002  nathanw Catch up to -current.
 1.28.6.1  06-Aug-2001  nathanw file ctlreg.h was added on branch nathanw_sa on 2002-02-28 04:12:12 +0000
 1.30.10.3  21-Sep-2004  skrll Fix the sync with head I botched.
 1.30.10.2  18-Sep-2004  skrll Sync with HEAD.
 1.30.10.1  03-Aug-2004  skrll Sync with HEAD
 1.36.12.2  03-Sep-2007  yamt sync with head.
 1.36.12.1  21-Jun-2006  yamt sync with head.
 1.39.6.1  22-Apr-2006  simonb Sync with head.
 1.39.4.1  09-Sep-2006  rpaulo sync with head
 1.39.2.2  01-Mar-2006  yamt sync with head.
 1.39.2.1  18-Feb-2006  yamt sync with head.
 1.42.26.1  11-Jul-2007  mjf Sync with head.
 1.42.24.1  10-Apr-2007  ad Sync with head.
 1.42.20.1  02-Apr-2007  rmind Pull up to the branch:
cvs rdiff -r1.42 -r1.43 src/sys/arch/sparc64/include/ctlreg.h
cvs rdiff -r1.187 -r1.188 src/sys/arch/sparc64/sparc64/pmap.c
Requested by mrg@
 1.42.18.2  31-Mar-2007  bouyer Pull up following revision(s) (requested by hannken in ticket #548):
sys/arch/sparc64/include/ctlreg.h: revision 1.44
Cleanup last by using a "n"umeric address space identifier.
Ok: Martin Husemann <martin@netbsd.org>
 1.42.18.1  31-Mar-2007  bouyer Pull up following revision(s) (requested by martin in ticket #547):
sys/arch/sparc64/sparc64/pmap.c: revision 1.188
sys/arch/sparc64/include/ctlreg.h: revision 1.43
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.
 1.44.38.3  11-Aug-2010  yamt sync with head.
 1.44.38.2  11-Mar-2010  yamt sync with head
 1.44.38.1  20-Jun-2009  yamt sync with head
 1.49.2.2  17-Aug-2010  uebayasi Sync with HEAD.
 1.49.2.1  30-Apr-2010  uebayasi Sync with HEAD.
 1.52.2.2  21-Apr-2011  rmind sync with head
 1.52.2.1  05-Mar-2011  rmind sync with head
 1.54.2.1  06-Jun-2011  jruoho Sync with HEAD.
 1.56.12.3  03-Dec-2017  jdolecek update from HEAD
 1.56.12.2  20-Aug-2014  tls Rebase to HEAD as of a few days ago.
 1.56.12.1  20-Nov-2012  tls Resync to 2012-11-19 00:00:00 UTC
 1.56.8.1  23-Nov-2012  riz Pull up following revision(s) (requested by macallan in ticket #695):
sys/arch/sparc64/include/cpu.h: revision 1.99
sys/arch/sparc64/sparc64/cpu.c: revision 1.103
sys/arch/sparc64/include/psl.h: revision 1.50
sys/arch/sparc64/sparc64/clock.c: revision 1.107
sys/arch/sparc64/include/ctlreg.h: revision 1.57
sys/arch/sparc64/sparc64/locore.s: revision 1.342
use system tick timer instead of %tick on UltraSPARC-III-ish CPUs
review & fixes by Takeshi Nakayama
 1.56.2.2  22-May-2014  yamt sync with head.

for a reference, the tree before this commit was tagged
as yamt-pagecache-tag8.

this commit was splitted into small chunks to avoid
a limitation of cvs. ("Protocol error: too many arguments")
 1.56.2.1  16-Jan-2013  yamt sync with (a bit old) head
 1.59.2.1  18-May-2014  rmind sync with head
 1.60.2.1  10-Aug-2014  tls Rebase.
 1.61.4.3  05-Feb-2017  skrll Sync with HEAD
 1.61.4.2  19-Mar-2016  skrll Sync with HEAD
 1.61.4.1  06-Apr-2015  skrll Sync with HEAD
 1.63.2.1  07-Jan-2017  pgoyette Sync with HEAD. (Note that most of these changes are simply $NetBSD$
tag issues.)
 1.64.16.2  13-Apr-2020  martin Mostly merge changes from HEAD upto 20200411
 1.64.16.1  10-Jun-2019  christos Sync with HEAD

RSS XML Feed