Home | History | Annotate | Download | only in include
History log of /src/sys/arch/alpha/include/alpha_cpu.h
RevisionDateAuthorComments
 1.56  20-Jul-2022  thorpej Make alpha_wmb() actually a WMB rather than an MB (all uses of
alpha_wmb() have been audited and fixed-up as necessary).
 1.55  02-Nov-2021  ryo In order to prevent _mcount() from being recursively called when built with COPTS=-O0,
sprinkle `__always_inline' to make _mcount() be generated as a single function.
 1.54  27-May-2021  thorpej Define the arithmetic exception summary bits passed in a0 to entArith.
 1.53  15-Oct-2020  thorpej branches: 1.53.6; 1.53.8;
Fix the bit position for the PMI bit in ALPHA_AMASK_BITS.
 1.52  29-Sep-2020  thorpej Add alpha_pal_wtint(), which invokes the WTINT PALcode call.
 1.51  05-Sep-2020  thorpej - Document all of the various interrupt levels in the Processor Stataus
register, and provide symbolic names for them as well.
- Use ALPHA_PSL_IPL_* values directly for IPL_*.
 1.50  06-Feb-2012  matt Do a minor cleanup of alpha (this will make applying pullups post branching
easier).
u_int{8,16,32,64}_t -> uint{*}_t
Change all old-style definitions to C89 prototypes.
Whitespace cleanup.
Constification in db_disasm.c
 1.49  07-Oct-2010  hans branches: 1.49.8; 1.49.12;
Enable Pchip and Cchip error interrupts (machine checks) on DEC 6600
systems. Add some basic pretty-printing for those errors. Tested on
a DS20.
 1.48  16-Feb-2006  perry branches: 1.48.72; 1.48.92; 1.48.94;
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.47  24-Dec-2005  perry branches: 1.47.2; 1.47.4; 1.47.6;
Remove leading __ from __(const|inline|signed|volatile) -- it is obsolete.
 1.46  11-Dec-2005  christos merge ktrace-lwp.
 1.45  28-Jul-2005  rpaulo Added a new AMASK bit (ALPHA_AMASK_PMI) and a new IMPLVER family ID:
ALPHA_IMPLVER_EV7.

ok christos@
 1.44  17-Jan-2003  thorpej branches: 1.44.2; 1.44.18;
Merge the nathanw_sa branch.
 1.43  18-Dec-2001  thorpej Add a memory clobber to alpha_pal_swapctx() and alpha_pal_swpipl();
the former affects the address space, and the latter can let interrupt
handlers in to clobber memory.
 1.42  17-Jul-2001  thorpej branches: 1.42.2;
Protect userland from the inlines and kernel variable decls.
 1.41  08-Jun-2000  thorpej branches: 1.41.6;
And more ANSI'ification!
 1.40  08-Jun-2000  thorpej ANSI'ify.
 1.39  03-Apr-2000  thorpej branches: 1.39.2;
Fix a typo in a previous revision, and add bit names for amask bits for
use with bitmask_snprintf().
 1.38  20-Mar-2000  thorpej Update the amask bits.
 1.37  05-Mar-2000  thorpej Use ANSI-style function declarations for the various inline functions
here. Addresses port-alpha/9056.
 1.36  02-Dec-1999  thorpej Inline most of the remaining PALcode calls.
 1.35  02-Dec-1999  thorpej Inline the BWX instructions.
 1.34  02-Dec-1999  thorpej Move atomic operations into <machine/atomic.h>, and make them in-line
assembly, rather than function calls.

...except alpha_atomic_testset_l(), which will go away completely once
I commit the new <machine/lock.h>.
 1.33  01-Dec-1999  thorpej After reading the GCC `documentation' a little more, improve the inline
__asm() statements added previously for PALcode operations.
 1.32  30-Nov-1999  thorpej Inline several things from pal.s:
- alpha_rpcc(), alpha_mb(), alpha_wmb() -- these are instructions, and
we win by inlining them: rpcc is generally used for profiling, and
the memory barriers really should execute as quickly as possible with
minimal side-effects (like additional loads/stores required to call the
functions!)
- alpha_pal_imb(), alpha_pal_rdps(), alpha_pal_swpipl(), alpha_pal_tbi(),
alpha_pal_whami() -- these are PALcode ops. We must specify some register
clobbers for these.

We have a very decent size savings as a result. My test system:
text data bss dec hex filename
2671724 235848 377016 3284588 321e6c /netbsd.bak
2617708 235736 377016 3230460 314afc /netbsd

Most of this comes from fewer register saves/restores around spl*() calls
(now that alpha_pal_rdps() and alpha_pal_swpipl() are inlined).

Note that alpha_pal_rdps() and alpha_pal_swpipl() remain in pal.s to
maintain binary compatibility with LKMs that may use spl*() functions.
 1.31  28-Nov-1999  thorpej Implement atomic addition and subtraction on quadwords.
 1.30  25-Sep-1998  thorpej branches: 1.30.12; 1.30.18;
Implement atomic quadword load-and-latch.
 1.29  25-Sep-1998  thorpej The processor unique value in the PCB is used as a backup kernel stack
pointer when booting secondary CPUs. Add an alias for it.
 1.28  24-Sep-1998  thorpej Implement atomic test-and-set for longwords (32-bit).
 1.27  23-Sep-1998  thorpej "Gee, there was already a function to do that."
 1.26  23-Sep-1998  thorpej Implement a function to recompute the HWRPB checksum.
 1.25  22-Sep-1998  thorpej Implement quadword atomic test-and-set.
 1.24  20-Sep-1998  thorpej Add definitions for the maximum allowable `whami' procssor ID and the
maximum number of processors we'll allow (64, assuming procssor IDs start
at 0).
 1.23  14-Aug-1998  thorpej vm_offset_t -> {paddr_t,vaddr_t}, vm_size_t -> vsize_t
 1.22  08-Jul-1998  mjacob stale beer- place structure in right file
 1.21  08-Jul-1998  thorpej Define a shorthand macro that represents the mask of PTE bits that the
PALcode cares about.
 1.20  08-Jul-1998  thorpej Cosmetic change.
 1.19  08-Jul-1998  mjacob Add machine check type definitions. Structure the expected/received
machine check items.
 1.18  22-Mar-1998  thorpej Implement a set of `atomic' (using load-locked and store-conditional)
operations. Initial set includes:

alpha_atomic_setbits_q() set bits in a quad
alpha_atomic_clearbits_q() clear bits in a quad
 1.17  27-Feb-1998  thorpej Implement alpha_pal_swpctx().
 1.16  13-Feb-1998  thorpej Rewrite the way the platform model string is determined:
- Attempt to find the model string in the HWRPB's DSR area. Failing that
(if the HWRPB version is too old)...
- Look up the system variation in a variation/string table. Failing that
(unknown variation)...
- Create a default model string using the variation number.

Also, factor out a bunch of common code.
 1.15  20-Sep-1997  mjacob Add some defines for alpha interrupt types.
 1.14  17-Sep-1997  thorpej Prototype alpha_implver(), and fix a think-o in a previous commit.
 1.13  16-Sep-1997  thorpej Add stubs for the Alpha Byte/Word Extension (BWX) instructions, present
on EV56 and later processors that have the "amask BWX" bit clear. These
instructions will be used to implement non-swizzle bus access functions
on newer systems, such as the new AlphaStation 500s with EV56 and 21172
PCI chipsets.

See "Alpha Architecture Handbook, Version 3", DEC order number EC-QD2KB-TE.
 1.12  16-Sep-1997  thorpej - Define bits used in the "amask" instruction.
- Define processor family IDs returned by the "implver" instruction.
- Prototype alpha_amask().
 1.11  03-Sep-1997  thorpej branches: 1.11.2;
Add a few more PALcode operations, as documented in pages (II-B) 2-1 through
(II-B) 2-33 of the Alpha AXP Architecture Reference Manual, Second Edition:

* rdps - Read Processor Status, needed by spl* functions.
* cflush - Cache Flush
* rdval - Read System Value
* wripir - Write Interprocessor Interrupt Request
* wrval - Write System Value

cflush, rdval, wripir, and wrval are used in multi-processor environments.
 1.10  02-Sep-1997  thorpej Fix a typo: ALPHA_PTE_WRITE needs to include the "user write" bit.
 1.9  24-Apr-1997  cgd branches: 1.9.2;
comment out text after #endif. "Pasto!" pointed out by Kevin Sullivan
in PR 3529.
 1.8  06-Apr-1997  cgd clean up NetBSD RCS ID strings
 1.7  23-Nov-1996  cgd branches: 1.7.2;
make ALPHA_K0SEG_TO_PHYS and ~0xfffffc00000000000 with the address,
rather than and-ing 16G-1. That just strips the k0seg bits, rather
than making the false assumption that the physical address is going
to be in the lower 16G. That doesn't apply for CIA device-space
addresses, for instance.
 1.6  20-Aug-1996  cgd K0SEG_END is inclusive
 1.5  14-Jul-1996  cgd rename translation buffer invalidation macros to start with ALPHA_,
like all other macros defined in alpha_cpu.h.
 1.4  14-Jul-1996  cgd (1) Remove old trap definitions, define trap and interrupt handling
more naturally in terms of way the OSF/1 PALcode delivers traps and
interrupts. Clean up fault/exception handling code and system entry
points. Seperate ASTs into a seperate C function.
(2) Restructure and improve machine check and correctable error
handling based on information in the 2nd Ed. of the Alpha Architecture
Reference Manual.
(3) Removed unused (and not likely useful) PALcode assembly stubs.
 1.3  11-Jul-1996  cgd Instead of treating the trap/syscall/exception frame like a struct
containing a substruct (the hardware frame) and an array of registers,
treat it like one big array of registers, for easier and prettier
access. Update everything to deal with that.
 1.2  11-Jul-1996  cgd Add definitions for:
Process Control Block
Interrupt/Exception/Syscall Stack Frame
Machine Check Error Summary Register
Machine Check Logout Area
clean up some, and add prototypes for all of the CPU instruction and
PALcode function stubs.
 1.1  09-Jul-1996  cgd definitions and constants which are part of the Alpha AXP
Architecture, and which relate to the OSF/1 PALcode.
 1.7.2.3  12-Aug-1997  cgd sync with -current as of August 11, 1997
 1.7.2.2  06-Jun-1997  cgd sync nwscons with trunk
 1.7.2.1  01-Jun-1997  cgd sync the nwscons branch up with yesterday's version of the trunk.
Lots of conflicts/changes because of the RCS Id format changes.
Also, a few cleanups and corrections.
 1.9.2.3  22-Sep-1997  thorpej Update marc-pcmcia branch from trunk.
 1.9.2.2  04-Sep-1997  thorpej Update marc-pcmcia branch from trunk.
 1.9.2.1  01-Sep-1997  thorpej Repair marc-pcmcia branch.
 1.11.2.2  03-Sep-1997  thorpej Add a few more PALcode operations, as documented in pages (II-B) 2-1 through
(II-B) 2-33 of the Alpha AXP Architecture Reference Manual, Second Edition:

* rdps - Read Processor Status, needed by spl* functions.
* cflush - Cache Flush
* rdval - Read System Value
* wripir - Write Interprocessor Interrupt Request
* wrval - Write System Value

cflush, rdval, wripir, and wrval are used in multi-processor environments.
 1.11.2.1  03-Sep-1997  thorpej file alpha_cpu.h was added on branch bouyer-scsipi on 1997-09-03 23:09:06 +0000
 1.30.18.1  27-Dec-1999  wrstuden Pull up to last week's -current.
 1.30.12.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.39.2.1  22-Jun-2000  minoura Sync w/ netbsd-1-5-base.
 1.41.6.2  10-Jan-2002  thorpej Sync kqueue branch with -current.
 1.41.6.1  03-Aug-2001  lukem update to -current
 1.42.2.3  14-Jan-2003  nathanw Add alpha_pal_rdunique() and alpha_pal_wrunique().
 1.42.2.2  08-Jan-2002  nathanw Catch up to -current.
 1.42.2.1  17-Jul-2001  nathanw file alpha_cpu.h was added on branch nathanw_sa on 2002-01-08 00:22:54 +0000
 1.44.18.1  21-Jun-2006  yamt sync with head.
 1.44.2.1  10-Nov-2005  skrll Sync with HEAD. Here we go again...
 1.47.6.1  22-Apr-2006  simonb Sync with head.
 1.47.4.1  09-Sep-2006  rpaulo sync with head
 1.47.2.1  18-Feb-2006  yamt sync with head.
 1.48.94.1  05-Mar-2011  rmind sync with head
 1.48.92.1  22-Oct-2010  uebayasi Sync with HEAD (-D20101022).
 1.48.72.1  09-Oct-2010  yamt sync with head
 1.49.12.1  18-Feb-2012  mrg merge to -current.
 1.49.8.1  17-Apr-2012  yamt sync with head
 1.53.8.1  31-May-2021  cjep sync with head
 1.53.6.1  17-Jun-2021  thorpej Sync w/ HEAD.

RSS XML Feed