Home | History | Annotate | Download | only in malta
History log of /src/sys/arch/evbmips/malta/machdep.c
RevisionDateAuthorComments
 1.47  05-Mar-2024  thorpej Move the at-shutdown call to resettodr() from cpu_reboot() to kern_reboot().

It's a small step, but it's a step.
 1.46  22-Dec-2016  cherry switch all ports to use uvm_init.c:uvm_md_init()

uvm_setpagesize() is now subsumed within this funciton.
 1.45  11-Jul-2016  matt branches: 1.45.2;
Use pmap_kenter flags to create cached/uncached entries.
#include <mips/locore.h> when appropriate
 1.44  01-Jun-2015  matt Rework cavium support in preparation for MULTIPROCESSOR support
 1.43  24-Mar-2014  christos branches: 1.43.6;
use cpu_{g,s}etmodel
 1.42  02-Mar-2012  matt branches: 1.42.2; 1.42.4;
Remove reduntant/conflicting common declarations.
 1.41  10-Jul-2011  matt branches: 1.41.2; 1.41.6;
CLeanup machine includes
 1.40  20-Feb-2011  matt Merge forward from matt-nb5-mips64.
 1.39  08-Feb-2011  rmind Remove clause 3 (UCB advertising clause) from the University of Utah
copyright. Confirmed by Mike Hibler, mike at cs.utah.edu - thanks!
Also, merge UCB and Utah copyright texts back into one, as they
originally were.

Extra verification by snj@.
 1.38  08-Feb-2010  joerg branches: 1.38.2; 1.38.4; 1.38.6;
Remove separate mb_map. The nmbclusters is computed at boot time based
on the amount of physical memory and limited by NMBCLUSTERS if present.
Architectures without direct mapping also limit it based on the kmem_map
size, which is used as backing store. On i386 and ARM, the maximum KVA
used for mbuf clusters is limited to 64MB by default.

The old default limits and limits based on GATEWAY have been removed.
key_registered_sb_max is hard-wired to a value derived from 2048
clusters.
 1.37  14-Dec-2009  matt branches: 1.37.2;
Merge from matt-nb5-mips64
Merge mips-specific arch files.
 1.36  27-Nov-2009  rmind - Use uvm_lwp_setuarea() instead of directly setting address to lwp_t::l_addr.
- Replace most remaining uses of l_addr with uvm_lwp_getuarea() or lwp_getpcb().
- Amend assembly in ports where it accesses PCB via struct user.
- Rename L_ADDR to L_PCB in few places. Reduce sys/user.h inclusions.
 1.35  26-Nov-2009  matt Kill proc0paddr. Use lwp0.l_addr instead.
 1.34  18-Mar-2009  cegger Ansify function definitions w/o arguments. Generated with sed.
 1.33  14-Mar-2009  dsl Change about 4500 of the K&R function definitions to ANSI ones.
There are still about 1600 left, but they have ',' or /* ... */
in the actual variable definitions - which my awk script doesn't handle.
There are also many that need () -> (void).
(The script does handle misordered arguments.)
 1.32  13-Feb-2009  apb Use "defopt MODULAR" in sys/conf/files, and #include "opt_modular.h"
in all kernel sources that use the MODULAR option.
Proposed in tech-kern on 18 Jan 2009.
 1.31  30-Nov-2008  martin branches: 1.31.4;
As discussed on tech-kern: mutex_init is too heavyweight for early bootstrap
phases, so move the initialization of the ksyms mutex back into main via
a function called ksyms_init. Rename the existing (but quite different)
ksyms_init* variations into ksyms_addsyms_elf() and ksyms_addsyms_explicit()
and adapt machdep code accordingly.
 1.30  12-Nov-2008  ad Remove LKMs and switch to the module framework, pass 1.

Proposed on tech-kern@.
 1.29  11-Nov-2008  dyoung It is not appropriate to call pmf_system_shutdown(9) from
doshutdownhooks(9): shutdown hooks registered by shutdownhook_establish(9)
expect to be called with interrupts disabled, but shutdown hooks
registered with pmf_device_register1(9) expect to be called with
interrupts enabled. So I have made two changes:

1 Do not call pmf_system_shutdown() from doshutdownhooks(). Instead,
change every call to doshutdownhooks() to a call to doshutdownhooks()
followed by a call to pmf_system_shutdown(). No functional change
is intended by this change.

2 Make i386 re-enable interrupts briefly while it calls
pmf_system_shutdown(). I leave it to others either to fix the
other ports, or to factor out some MI shutdown code, as joerg@
suggests, and fix that. Note that a functional change *is* intended
by this change.

I hope that this patch will stop us from flip-flopping between
calling doshutdownhooks() and pmf_system_shutdown() sometimes with
and sometimes without interrupts enabled.
 1.28  02-Jul-2008  ad branches: 1.28.2; 1.28.4; 1.28.10;
Replce exec_map with a pool. Proposed on tech-kern@, reviewed by chs@.
 1.27  17-Oct-2007  garbled branches: 1.27.16; 1.27.20; 1.27.22; 1.27.24;
Merge the ppcoea-renovation branch to HEAD.

This branch was a major cleanup and rototill of many of the various OEA
cpu based PPC ports that focused on sharing as much code as possible
between the various ports to eliminate near-identical copies of files in
every tree. Additionally there is a new PIC system that unifies the
interface to interrupt code for all different OEA ppc arches. The work
for this branch was done by a variety of people, too long to list here.

TODO:
bebox still needs work to complete the transition to -renovation.
ofppc still needs a bunch of work, which I will be looking at.
ev64260 still needs to be renovated
amigappc was not attempted.

NOTES:
pmppc was removed as an arch, and moved to a evbppc target.
 1.26  17-May-2007  yamt branches: 1.26.10;
merge yamt-idlelwp branch. asked by core@. some ports still needs work.

from doc/BRANCHES:

idle lwp, and some changes depending on it.

1. separate context switching and thread scheduling.
(cf. gmcgarry_ctxsw)
2. implement idle lwp.
3. clean up related MD/MI interfaces.
4. make scheduler(s) modular.
 1.25  06-Mar-2007  simonb branches: 1.25.2; 1.25.4; 1.25.10;
Fix some caddr_t rototill fallout.
 1.24  05-Mar-2007  dogcow semimechanically convert 'void foo' -> 'void *foo', as part of the continuing
caddr_t fallout.
 1.23  04-Mar-2007  christos Kill caddr_t; there will be some MI fallout, but it will be fixed shortly.
 1.22  24-Dec-2005  perry branches: 1.22.26;
Remove leading __ from __(const|inline|signed|volatile) -- it is obsolete.
 1.21  11-Dec-2005  christos merge ktrace-lwp.
 1.20  25-Apr-2005  lukem branches: 1.20.2;
Move the MI printing of `copyright' to the MD cpu_startup() code
where the printing of `version' is already performed.
This has the benefit of allowing the copyright to be available
via dmesg(8) on platforms which need the `msgbuf' to be setup
in cpu_startup() before printed output is remembered.
 1.19  03-Apr-2004  simonb branches: 1.19.4;
Copy Izumi Tsutsui's total/avail memory message tidy up.
sgimips is a little different, that is left as is.
 1.18  13-Feb-2004  wiz Uppercase CPU, plural is CPUs.
 1.17  30-Dec-2003  pk Replace the traditional buffer memory management -- based on fixed per buffer
virtual memory reservation and a private pool of memory pages -- by a scheme
based on memory pools.

This allows better utilization of memory because buffers can now be allocated
with a granularity finer than the system's native page size (useful for
filesystems with e.g. 1k or 2k fragment sizes). It also avoids fragmentation
of virtual to physical memory mappings (due to the former fixed virtual
address reservation) resulting in better utilization of MMU resources on some
platforms. Finally, the scheme is more flexible by allowing run-time decisions
on the amount of memory to be used for buffers.

On the other hand, the effectiveness of the LRU queue for buffer recycling
may be somewhat reduced compared to the traditional method since, due to the
nature of the pool based memory allocation, the actual least recently used
buffer may release its memory to a pool different from the one needed by a
newly allocated buffer. However, this effect will kick in only if the
system is under memory pressure.
 1.16  27-Oct-2003  simonb Set the CPU frequency parameters from YAMON if available, and fall back
to the timer/RTC based calibration loops otherwise.
 1.15  27-Oct-2003  simonb Remove useless call to consinit().
 1.14  26-Sep-2003  simonb Cast through (void *) to appease gcc3.
XXX1 - why does this "type-punned pointer" warning only affect little-
endian MIPS and not big-endian MIPS?!
XXX2 - too much duplicated code.
 1.13  07-Aug-2003  agc Move UCB-licensed code from 4-clause to 3-clause licence.

Patches provided by Joel Baker in PR 22364, verified by myself.
 1.12  15-Jul-2003  lukem __KERNEL_RCSID()
 1.11  14-Jun-2003  thorpej branches: 1.11.2;
Also pass a type argument to comcnattach() and com_kgdb_attach().
comspeed() (and thus cominit()) may need this information.
 1.10  26-Apr-2003  ragge Call ksyms_init() instead of ddb_init() in case of
NKSYMS || defined(DDB) || defined(LKM)
 1.9  02-Apr-2003  thorpej Use PAGE_SIZE rather than NBPG.
 1.8  17-Jan-2003  thorpej Merge the nathanw_sa branch.
 1.7  25-Aug-2002  thorpej Make nbuf, nswbuf, and bufpages unsigned. Make all operations on these
variables unsigned, and update places where their values are printed.
 1.6  05-Aug-2002  simonb branches: 1.6.2;
Fix tyop.
 1.5  04-Aug-2002  gmcgarry Merge cpu_sysctl() for all mips ports, based on powerpc and m68k precedent.

For now, only pmax implements CPU_BOOTED_KERNEL. Need to revisit.
 1.4  12-Jul-2002  simonb Add a comment; fix white-space niggle.
 1.3  09-Apr-2002  simonb branches: 1.3.2; 1.3.6;
- Calibrate the timer before the first call to delay.
- Don't use a magic number for the com port address.
 1.2  08-Apr-2002  simonb - Call mips_vector_init() before setting up the serial console, but
after setting up the prom-based console. If more than one cpu class
is enabled, the wbflush() handler (needed indirectly by com.c) won't
be set up.
- Purge some old pmax mcclock-based code.
- Remove a '#if 1/#endif' pair.
 1.1  07-Mar-2002  simonb A port to the MIPS Malta evaluation board. Currently supports the
MIPS32 4Kc CPU board, with support for the MIPS64 5Kc and the QED RM5261
CPU boards to follow.

The cs4281 audio hasn't been tested, there are some interrupt problems
with onboard the pciide, but all other on-board peripherals work.

The evbmips port will support more MIPS evaluation boards in the future.
 1.3.6.3  06-Sep-2002  jdolecek sync kqueue branch with HEAD
 1.3.6.2  23-Jun-2002  jdolecek catch up with -current on kqueue branch
 1.3.6.1  09-Apr-2002  jdolecek file machdep.c was added on branch kqueue on 2002-06-23 17:35:58 +0000
 1.3.2.2  30-Aug-2002  gehenna catch up with -current.
 1.3.2.1  16-Jul-2002  gehenna catch up with -current.
 1.6.2.3  27-Aug-2002  nathanw Catch up to -current.
 1.6.2.2  13-Aug-2002  simonb LWP'ify the evbmips port.
 1.6.2.1  05-Aug-2002  simonb file machdep.c was added on branch nathanw_sa on 2002-08-13 04:21:57 +0000
 1.11.2.4  10-Nov-2005  skrll Sync with HEAD. Here we go again...
 1.11.2.3  21-Sep-2004  skrll Fix the sync with head I botched.
 1.11.2.2  18-Sep-2004  skrll Sync with HEAD.
 1.11.2.1  03-Aug-2004  skrll Sync with HEAD
 1.19.4.1  29-Apr-2005  kent sync with -current
 1.20.2.2  03-Sep-2007  yamt sync with head.
 1.20.2.1  21-Jun-2006  yamt sync with head.
 1.22.26.2  18-Apr-2007  ad - Further adaptations to MIPS for the yamt-idlelwp branch.
- Make curlwp a register variable on MIPS.
 1.22.26.1  12-Mar-2007  rmind Sync with HEAD.
 1.25.10.1  22-May-2007  matt Update to HEAD.
 1.25.4.1  11-Jul-2007  mjf Sync with head.
 1.25.2.1  27-May-2007  ad Sync with head.
 1.26.10.1  06-Nov-2007  matt sync with HEAD
 1.27.24.1  03-Jul-2008  simonb Sync with head.
 1.27.22.1  18-Sep-2008  wrstuden Sync with wrstuden-revivesa-base-2.
 1.27.20.2  11-Mar-2010  yamt sync with head
 1.27.20.1  04-May-2009  yamt sync with head.
 1.27.16.2  17-Jan-2009  mjf Sync with HEAD.
 1.27.16.1  02-Jul-2008  mjf Sync with HEAD.
 1.28.10.10  14-Feb-2012  matt mem_cluster_cnt on mips is now a u_int.
 1.28.10.9  29-Apr-2011  matt Major merge to/from current.
Adds MIPS32/MIPS64 R2 support (24k, 74k, etc.) including COP0_USERLOCAL
Adds support for emulation of rdhwr $3,$29 instruction.
Major cleanup of SMP code. (stable on multi-core / single thread per core)
llsc locking code only used in MP capable kernels.
 1.28.10.8  21-Mar-2010  cliff mips_vector_init now takes an argument to specify splsw.
NULL specifies use the default 'std_splsw'
 1.28.10.7  28-Feb-2010  matt Use cpu_startup_common.
 1.28.10.6  27-Feb-2010  snj Fix gimplish.
 1.28.10.5  27-Feb-2010  matt For MULTIPROCESSOR kernels, enable exception fixups.
 1.28.10.4  01-Feb-2010  matt fix fallout from frame/trapframe merger.
 1.28.10.3  31-Dec-2009  matt Use mips_page_physload and mips_init_lwp0_uarea.
 1.28.10.2  07-Sep-2009  matt Update to deal with pcb_context being a label_t (this should be a common
routine).
 1.28.10.1  21-Aug-2009  matt Make MALTA LP64 capable.
 1.28.4.3  28-Apr-2009  skrll Sync with HEAD.
 1.28.4.2  03-Mar-2009  skrll Sync with HEAD.
 1.28.4.1  19-Jan-2009  skrll Sync with HEAD.
 1.28.2.1  13-Dec-2008  haad Update haad-dm branch to haad-dm-base2.
 1.31.4.1  13-May-2009  jym Sync with HEAD.

Commit is split, to avoid a "too many arguments" protocol error.
 1.37.2.1  30-Apr-2010  uebayasi Sync with HEAD.
 1.38.6.2  05-Mar-2011  bouyer Sync with HEAD
 1.38.6.1  17-Feb-2011  bouyer Sync with HEAD
 1.38.4.1  06-Jun-2011  jruoho Sync with HEAD.
 1.38.2.1  05-Mar-2011  rmind sync with head
 1.41.6.3  06-Mar-2012  mrg sync to -current
 1.41.6.2  06-Mar-2012  mrg sync to -current
 1.41.6.1  04-Mar-2012  mrg sync to latest -current.
 1.41.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.41.2.1  17-Apr-2012  yamt sync with head
 1.42.4.1  18-May-2014  rmind sync with head
 1.42.2.2  03-Dec-2017  jdolecek update from HEAD
 1.42.2.1  20-Aug-2014  tls Rebase to HEAD as of a few days ago.
 1.43.6.3  05-Feb-2017  skrll Sync with HEAD
 1.43.6.2  05-Oct-2016  skrll Sync with HEAD
 1.43.6.1  06-Jun-2015  skrll Sync with HEAD
 1.45.2.1  07-Jan-2017  pgoyette Sync with HEAD. (Note that most of these changes are simply $NetBSD$
tag issues.)

RSS XML Feed