Home | History | Annotate | Download | only in adm5120
History log of /src/sys/arch/evbmips/adm5120/machdep.c
RevisionDateAuthorComments
 1.27  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.26  22-Jul-2020  msaitoh s/reseting/resetting/
 1.25  22-Dec-2016  cherry switch all ports to use uvm_init.c:uvm_md_init()

uvm_setpagesize() is now subsumed within this funciton.
 1.24  26-Jun-2015  matt branches: 1.24.2;
Use cpu_startup_common()
 1.23  24-Mar-2014  christos branches: 1.23.6;
use cpu_{g,s}etmodel
 1.22  02-Mar-2012  matt branches: 1.22.2; 1.22.4;
Remove reduntant/conflicting common declarations.
 1.21  10-Jul-2011  matt branches: 1.21.2; 1.21.6;
CLeanup machine includes
 1.20  20-Feb-2011  matt Merge forward from matt-nb5-mips64.
 1.19  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.18  15-Dec-2010  matt branches: 1.18.2; 1.18.4;
Make this compilee again.
 1.17  19-May-2010  christos Replace ether_nonstatic_aton with a
- better named one
- not suffering from buffer oveflow
- simpler
- handling different separators
- returning error codes for errors

Some ideas from one posted on tech-net by Jonathan A. Kollasch
 1.16  08-Feb-2010  joerg branches: 1.16.2;
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.15  22-Jan-2010  martin branches: 1.15.2;
Unify the name of the device property to hold a MAC address - there was
no clear majority for either "mac-addr" vs. "mac-address", but a quick
gallup poll among developers selected the latter.
 1.14  14-Dec-2009  matt Merge from matt-nb5-mips64
Merge mips-specific arch files.
 1.13  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.12  26-Nov-2009  matt Kill proc0paddr. Use lwp0.l_addr instead.
 1.11  11-Aug-2009  matt Remove all declarations of physmem from sys/arch. Add an include of
<sys/systm.h> to the one file that did not already contain it.
This now means that physmem can be changed by updating systm.h and uvm_page.c
(excluding fixing printfs)
 1.10  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.9  30-Nov-2008  martin branches: 1.9.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.8  12-Nov-2008  ad Remove LKMs and switch to the module framework, pass 1.

Proposed on tech-kern@.
 1.7  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.6  02-Jul-2008  ad branches: 1.6.2; 1.6.4; 1.6.10;
Replce exec_map with a pool. Proposed on tech-kern@, reviewed by chs@.
 1.5  26-May-2008  tsutsui branches: 1.5.2;
Remove all initialization of obsolete ci_divisor_recip in
mips struct cpu_info and related macroes.
The member was prepared for a hack in MD microtime(9) implementation
but it has been superseded by MI timecounter(9).
 1.4  09-Jan-2008  wiz branches: 1.4.6; 1.4.8; 1.4.10; 1.4.12;
Fix typo in macro name and comments.
 1.3  17-Oct-2007  garbled branches: 1.3.2; 1.3.8;
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.2  17-May-2007  yamt branches: 1.2.10; 1.2.12;
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.1  20-Mar-2007  dyoung branches: 1.1.2; 1.1.4; 1.1.8;
Add a port to the Infineon ADM5120.

Basics: the ADM5120 is a 175 MHz MIPS32 4Kc processor featuring a
6-port ethernet 10/100 switch with Auto MDI/X, a PCI controller,
USB 1.1 controller, UART, watchdog timer, eight GPIO pins, and a
multiport memory controller with both NOR and NAND flash support.
This code supports most of the devices on the ADM5120, including
the 6-port switch (each port attaches as an ethernet, admsw0 through
admsw5), the PCI controller, USB controller, GPIO, watchdog, and
UART.

Remaining work: the port includes no NOR/NAND flash drivers. No
bootloader is included. I have only tested the PCI bus driver with
the use of one PCI slot on the RouterBOARD 153. It is not possible
to exploit the capabilities of the ethernet switch using bridge(4).
I have only netbooted the ADM5120 on the RB153. Booting other
boards, and booting from flash memory, remains to be done.

Hardware availability: many low-cost routers, including the
RouterBOARD 100 series at RouterBOARD.com, use the Infineon ADM5120
processor.

Credits: Ruslan Ermilov and Vsevolod Lobko ported to the ADM5120,
and they wrote device drivers for the UART, USB controller, and
10/100 switch. Matt Isaacs brought the port up-to-date with
NetBSD-current, made it compile, and ran it first on the RB153.
I added drivers for the PCI controller, GPIO, and watchdog timer.
I produced the bus attachment for the CompactFlash slot with advice
from Mikrotik technical support and from Matt Thomas.
 1.1.8.1  22-May-2007  matt Update to HEAD.
 1.1.4.3  27-May-2007  ad Sync with head.
 1.1.4.2  10-Apr-2007  ad Sync with head.
 1.1.4.1  20-Mar-2007  ad file machdep.c was added on branch vmlocking on 2007-04-10 13:39:27 +0000
 1.1.2.3  18-Apr-2007  ad - Further adaptations to MIPS for the yamt-idlelwp branch.
- Make curlwp a register variable on MIPS.
 1.1.2.2  24-Mar-2007  yamt sync with head.
 1.1.2.1  20-Mar-2007  yamt file machdep.c was added on branch yamt-idlelwp on 2007-03-24 14:54:38 +0000
 1.2.12.3  21-Jan-2008  yamt sync with head
 1.2.12.2  03-Sep-2007  yamt sync with head.
 1.2.12.1  17-May-2007  yamt file machdep.c was added on branch yamt-lazymbuf on 2007-09-03 14:24:10 +0000
 1.2.10.2  23-Mar-2008  matt sync with HEAD
 1.2.10.1  06-Nov-2007  matt sync with HEAD
 1.3.8.1  10-Jan-2008  bouyer Sync with HEAD
 1.3.2.1  18-Feb-2008  mjf Sync with HEAD.
 1.4.12.2  18-Sep-2008  wrstuden Sync with wrstuden-revivesa-base-2.
 1.4.12.1  23-Jun-2008  wrstuden Sync w/ -current. 34 merge conflicts to follow.
 1.4.10.4  11-Aug-2010  yamt sync with head.
 1.4.10.3  11-Mar-2010  yamt sync with head
 1.4.10.2  19-Aug-2009  yamt sync with head.
 1.4.10.1  04-May-2009  yamt sync with head.
 1.4.8.1  04-Jun-2008  yamt sync with head
 1.4.6.3  17-Jan-2009  mjf Sync with HEAD.
 1.4.6.2  02-Jul-2008  mjf Sync with HEAD.
 1.4.6.1  02-Jun-2008  mjf Sync with HEAD.
 1.5.2.1  03-Jul-2008  simonb Sync with head.
 1.6.10.7  14-Feb-2012  matt mem_cluster_cnt on mips is now a u_int.
 1.6.10.6  20-May-2011  matt Update to new definitions of savectx and mips_vector_init
 1.6.10.5  21-Mar-2010  cliff mips_vector_init now takes an argument to specify splsw.
NULL specifies use the default 'std_splsw'
 1.6.10.4  01-Feb-2010  matt fix fallout from frame/trapframe merger.
 1.6.10.3  10-Jan-2010  matt Add generic support for DMA bounce buffers and real version of
bus_dmatag_subregion. MALTA uses it for ISADMA. Make RMIXL use
for creating 32bit and 29bit subregions.
 1.6.10.2  31-Dec-2009  matt Use mips_page_physload and mips_init_lwp0_uarea.
 1.6.10.1  07-Sep-2009  matt Update to deal with pcb_context being a label_t (this should be a common
routine).
 1.6.4.2  03-Mar-2009  skrll Sync with HEAD.
 1.6.4.1  19-Jan-2009  skrll Sync with HEAD.
 1.6.2.1  13-Dec-2008  haad Update haad-dm branch to haad-dm-base2.
 1.9.4.1  13-May-2009  jym Sync with HEAD.

Commit is split, to avoid a "too many arguments" protocol error.
 1.15.2.2  17-Aug-2010  uebayasi Sync with HEAD.
 1.15.2.1  30-Apr-2010  uebayasi Sync with HEAD.
 1.16.2.2  05-Mar-2011  rmind sync with head
 1.16.2.1  30-May-2010  rmind sync with head
 1.18.4.2  05-Mar-2011  bouyer Sync with HEAD
 1.18.4.1  17-Feb-2011  bouyer Sync with HEAD
 1.18.2.1  06-Jun-2011  jruoho Sync with HEAD.
 1.21.6.3  06-Mar-2012  mrg sync to -current
 1.21.6.2  06-Mar-2012  mrg sync to -current
 1.21.6.1  04-Mar-2012  mrg sync to latest -current.
 1.21.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.21.2.1  17-Apr-2012  yamt sync with head
 1.22.4.1  18-May-2014  rmind sync with head
 1.22.2.2  03-Dec-2017  jdolecek update from HEAD
 1.22.2.1  20-Aug-2014  tls Rebase to HEAD as of a few days ago.
 1.23.6.2  05-Feb-2017  skrll Sync with HEAD
 1.23.6.1  22-Sep-2015  skrll Sync with HEAD
 1.24.2.1  07-Jan-2017  pgoyette Sync with HEAD. (Note that most of these changes are simply $NetBSD$
tag issues.)

RSS XML Feed