Home | History | Annotate | only in /src/sys/arch/evbarm/smdk2xx0
History log of /src/sys/arch/evbarm/smdk2xx0
RevisionDateAuthorComments
 1.8 25-Apr-2019  msaitoh KNF. No functional change.
 1.7 13-Apr-2015  riastradh branches: 1.7.18;
MD rnd.h cleanups. Please let me know if I broke anything!
 1.6 12-Nov-2012  skrll branches: 1.6.14;
C99 types
 1.5 02-Feb-2012  tls branches: 1.5.6;
Entropy-pool implementation move and cleanup.

1) Move core entropy-pool code and source/sink/sample management code
to sys/kern from sys/dev.

2) Remove use of NRND as test for presence of entropy-pool code throughout
source tree.

3) Remove use of RND_ENABLED in device drivers as microoptimization to
avoid expensive operations on disabled entropy sources; make the
rnd_add calls do this directly so all callers benefit.

4) Fix bug in recent rnd_add_data()/rnd_add_uint32() changes that might
have lead to slight entropy overestimation for some sources.

5) Add new source types for environmental sensors, power sensors, VM
system events, and skew between clocks, with a sample implementation
for each.

ok releng to go in before the branch due to the difficulty of later
pullup (widespread #ifdef removal and moved files). Tested with release
builds on amd64 and evbarm and live testing on amd64.
 1.4 01-Jul-2011  dyoung branches: 1.4.2; 1.4.6;
#include <sys/bus.h> instead of <machine/bus.h>.
 1.3 22-Sep-2009  tsutsui Split device_t/softc. Tested only on cs at ofisa on shark.
 1.2 11-Dec-2005  christos branches: 1.2.78;
merge ktrace-lwp.
 1.1 29-Aug-2003  bsh branches: 1.1.4;
support CS8900A ethernet on SMDK2410.

XXX: SMDK2410 has no EEPROM connected to CS8900A. Currently the only
way to set MAC address is give it via kernel config option.
 1.1.4.4 21-Sep-2004  skrll Fix the sync with head I botched.
 1.1.4.3 18-Sep-2004  skrll Sync with HEAD.
 1.1.4.2 03-Aug-2004  skrll Sync with HEAD
 1.1.4.1 29-Aug-2003  skrll file if_cs_smdk24x0.c was added on branch ktrace-lwp on 2004-08-03 10:34:03 +0000
 1.2.78.1 11-Mar-2010  yamt sync with head
 1.4.6.1 18-Feb-2012  mrg merge to -current.
 1.4.2.2 16-Jan-2013  yamt sync with (a bit old) head
 1.4.2.1 17-Apr-2012  yamt sync with head
 1.5.6.2 03-Dec-2017  jdolecek update from HEAD
 1.5.6.1 20-Nov-2012  tls Resync to 2012-11-19 00:00:00 UTC
 1.6.14.1 06-Jun-2015  skrll Sync with HEAD
 1.7.18.1 10-Jun-2019  christos Sync with HEAD
 1.12 26-Jan-2022  andvar remove double t from targeted, add missing r to arbitrary
And fix few more typos along the way in comments and man pages.
 1.11 25-Jan-2022  andvar fix various typos in comments.
 1.10 07-Aug-2021  thorpej Merge thorpej-cfargs2.
 1.9 24-Apr-2021  thorpej branches: 1.9.8;
Merge thorpej-cfargs branch:

Simplify and make extensible the config_search() / config_found() /
config_attach() interfaces: rather than having different variants for
which arguments you want pass along, just have a single call that
takes a variadic list of tag-value arguments.

Adjust all call sites:
- Simplify wherever possible; don't pass along arguments that aren't
actually needed.
- Don't be explicit about what interface attribute is attaching if
the device only has one. (More simplification.)
- Add a config_probe() function to be used in indirect configuiration
situations, making is visibly easier to see when indirect config is
in play, and allowing for future change in semantics. (As of now,
this is just a wrapper around config_match(), but that is an
implementation detail.)

Remove unnecessary or redundant interface attributes where they're not
needed.

There are currently 5 "cfargs" defined:
- CFARG_SUBMATCH (submatch function for direct config)
- CFARG_SEARCH (search function for indirect config)
- CFARG_IATTR (interface attribte)
- CFARG_LOCATORS (locators array)
- CFARG_DEVHANDLE (devhandle_t - wraps OFW, ACPI, etc. handles)

...and a sentinel value CFARG_EOL.

Add some extra sanity checking to ensure that interface attributes
aren't ambiguous.

Use CFARG_DEVHANDLE in MI FDT, OFW, and ACPI code, and macppc and shark
ports to associate those device handles with device_t instance. This
will trickle trough to more places over time (need back-end for pre-OFW
Sun OBP; any others?).
 1.8 27-Oct-2012  chs branches: 1.8.52;
split device_t/softc for all remaining drivers.
replace "struct device *" with "device_t".
use device_xname(), device_unit(), etc.
 1.7 01-Jul-2011  dyoung branches: 1.7.2; 1.7.12;
#include <sys/bus.h> instead of <machine/bus.h>.
 1.6 07-Jun-2010  bsh don't use dv_xname directly.
 1.5 06-Jan-2008  matt branches: 1.5.10; 1.5.30; 1.5.32;
Cleanup softint lossage.
 1.4 04-Mar-2007  christos branches: 1.4.16; 1.4.20; 1.4.26; 1.4.32;
Kill caddr_t; there will be some MI fallout, but it will be fixed shortly.
 1.3 26-Mar-2006  thorpej branches: 1.3.14;
Use device_parent().
 1.2 11-Dec-2005  christos branches: 1.2.4; 1.2.6; 1.2.8; 1.2.10; 1.2.12;
merge ktrace-lwp.
 1.1 14-Feb-2004  bsh branches: 1.1.4; 1.1.18;
Keyboard driver for semtech SPICoder-SA06 on Samsung SMDK2410.

The board has a full keyboard. The controller is hooked to SPI port.
 1.1.18.3 21-Jan-2008  yamt sync with head
 1.1.18.2 03-Sep-2007  yamt sync with head.
 1.1.18.1 21-Jun-2006  yamt sync with head.
 1.1.4.5 17-Jan-2005  skrll Adapt to branch.
 1.1.4.4 21-Sep-2004  skrll Fix the sync with head I botched.
 1.1.4.3 18-Sep-2004  skrll Sync with HEAD.
 1.1.4.2 03-Aug-2004  skrll Sync with HEAD
 1.1.4.1 14-Feb-2004  skrll file smdk2410_kbd.c was added on branch ktrace-lwp on 2004-08-03 10:34:03 +0000
 1.2.12.1 28-Mar-2006  tron Merge 2006-03-28 NetBSD-current into the "peter-altq" branch.
 1.2.10.1 19-Apr-2006  elad sync with head - hopefully this will work
 1.2.8.1 01-Apr-2006  yamt sync with head.
 1.2.6.1 22-Apr-2006  simonb Sync with head.
 1.2.4.1 09-Sep-2006  rpaulo sync with head
 1.3.14.1 12-Mar-2007  rmind Sync with HEAD.
 1.4.32.1 08-Jan-2008  bouyer Sync with HEAD
 1.4.26.1 18-Feb-2008  mjf Sync with HEAD.
 1.4.20.1 09-Jan-2008  matt sync with HEAD
 1.4.16.1 28-Feb-2008  rjs Sync with HEAD.
 1.5.32.1 03-Jul-2010  rmind sync with head
 1.5.30.1 17-Aug-2010  uebayasi Sync with HEAD.
 1.5.10.1 11-Aug-2010  yamt sync with head.
 1.7.12.1 20-Nov-2012  tls Resync to 2012-11-19 00:00:00 UTC
 1.7.2.1 30-Oct-2012  yamt sync with head
 1.8.52.1 21-Mar-2021  thorpej Give config_found() the same variadic arguments treatment as
config_search(). This commit only adds the CFARG_EOL sentinel
to the existing config_found() calls. Conversion of config_found_sm_loc()
and config_found_ia() call sites will be in subsequent commits.
 1.9.8.1 04-Aug-2021  thorpej Adapt to CFARGS().
 1.14 06-Mar-2024  andvar s/horizontaol/horizontal/ in comments.
 1.13 20-Dec-2023  thorpej Remove unnecessary <sys/malloc.h>.
 1.12 07-Aug-2021  thorpej Merge thorpej-cfargs2.
 1.11 24-Apr-2021  thorpej branches: 1.11.8;
Merge thorpej-cfargs branch:

Simplify and make extensible the config_search() / config_found() /
config_attach() interfaces: rather than having different variants for
which arguments you want pass along, just have a single call that
takes a variadic list of tag-value arguments.

Adjust all call sites:
- Simplify wherever possible; don't pass along arguments that aren't
actually needed.
- Don't be explicit about what interface attribute is attaching if
the device only has one. (More simplification.)
- Add a config_probe() function to be used in indirect configuiration
situations, making is visibly easier to see when indirect config is
in play, and allowing for future change in semantics. (As of now,
this is just a wrapper around config_match(), but that is an
implementation detail.)

Remove unnecessary or redundant interface attributes where they're not
needed.

There are currently 5 "cfargs" defined:
- CFARG_SUBMATCH (submatch function for direct config)
- CFARG_SEARCH (search function for indirect config)
- CFARG_IATTR (interface attribte)
- CFARG_LOCATORS (locators array)
- CFARG_DEVHANDLE (devhandle_t - wraps OFW, ACPI, etc. handles)

...and a sentinel value CFARG_EOL.

Add some extra sanity checking to ensure that interface attributes
aren't ambiguous.

Use CFARG_DEVHANDLE in MI FDT, OFW, and ACPI code, and macppc and shark
ports to associate those device handles with device_t instance. This
will trickle trough to more places over time (need back-end for pre-OFW
Sun OBP; any others?).
 1.10 25-Jul-2014  dholland branches: 1.10.42;
Add d_discard to all struct cdevsw instances I could find.

All have been set to "nodiscard"; some should get a real implementation.
 1.9 16-Mar-2014  dholland branches: 1.9.2;
Change (mostly mechanically) every cdevsw/bdevsw I can find to use
designated initializers.

I have not built every extant kernel so I have probably broken at
least one build; however I've also found and fixed some wrong
cdevsw/bdevsw entries so even if so I think we come out ahead.
 1.8 27-Oct-2012  chs branches: 1.8.2;
split device_t/softc for all remaining drivers.
replace "struct device *" with "device_t".
use device_xname(), device_unit(), etc.
 1.7 30-Jan-2012  nisimura branches: 1.7.6;

Add FriendlyARM Mini2440 support.
- new code for Samsung S3C2440 SoC.
- update for other S3C2xx0.
This port was done by Paul Fleischer.
 1.6 01-Jul-2011  dyoung branches: 1.6.2; 1.6.6;
#include <sys/bus.h> instead of <machine/bus.h>.
 1.5 05-Feb-2010  snj Include locators.h for SSIOCF_ADDR_DEFAULT.
 1.4 11-Jun-2008  cegger use device_lookup_private to get softc
 1.3 04-Mar-2007  christos branches: 1.3.40; 1.3.42; 1.3.44; 1.3.46; 1.3.48;
Kill caddr_t; there will be some MI fallout, but it will be fixed shortly.
 1.2 11-Dec-2005  christos branches: 1.2.26;
merge ktrace-lwp.
 1.1 14-Feb-2004  bsh branches: 1.1.4; 1.1.18;
Support SMDK2410's 240x320 TFT LCD.

This can be configured with or without wsdisplay.
Only 8- and 16-bpp modes have been tested.
 1.1.18.2 03-Sep-2007  yamt sync with head.
 1.1.18.1 21-Jun-2006  yamt sync with head.
 1.1.4.5 17-Jan-2005  skrll Adapt to branch.
 1.1.4.4 21-Sep-2004  skrll Fix the sync with head I botched.
 1.1.4.3 18-Sep-2004  skrll Sync with HEAD.
 1.1.4.2 03-Aug-2004  skrll Sync with HEAD
 1.1.4.1 14-Feb-2004  skrll file smdk2410_lcd.c was added on branch ktrace-lwp on 2004-08-03 10:34:03 +0000
 1.2.26.1 12-Mar-2007  rmind Sync with HEAD.
 1.3.48.1 18-Jun-2008  simonb Sync with head.
 1.3.46.1 23-Jun-2008  wrstuden Sync w/ -current. 34 merge conflicts to follow.
 1.3.44.2 11-Mar-2010  yamt sync with head
 1.3.44.1 04-May-2009  yamt sync with head.
 1.3.42.1 17-Jun-2008  yamt sync with head.
 1.3.40.1 29-Jun-2008  mjf Sync with HEAD.
 1.6.6.1 18-Feb-2012  mrg merge to -current.
 1.6.2.3 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.6.2.2 30-Oct-2012  yamt sync with head
 1.6.2.1 17-Apr-2012  yamt sync with head
 1.7.6.2 20-Aug-2014  tls Rebase to HEAD as of a few days ago.
 1.7.6.1 20-Nov-2012  tls Resync to 2012-11-19 00:00:00 UTC
 1.8.2.1 18-May-2014  rmind sync with head
 1.9.2.1 10-Aug-2014  tls Rebase.
 1.10.42.1 21-Mar-2021  thorpej Give config_found() the same variadic arguments treatment as
config_search(). This commit only adds the CFARG_EOL sentinel
to the existing config_found() calls. Conversion of config_found_sm_loc()
and config_found_ia() call sites will be in subsequent commits.
 1.11.8.1 04-Aug-2021  thorpej Adapt to CFARGS().
 1.47 20-Feb-2024  andvar Fix format specifier for physmem from %d to 0x%"PRIxPSIZE" in multiple places.

Should fix VERBOSE_INIT_ARM for various evbarm kernel configs.
Also add 0x prefix in few previously fixed places to improve readability.
 1.46 20-Apr-2023  skrll Provide a shared pmap_devmap implementation and convert all pmap_devmap
arrays to use DEVMAP_ENTRY{,_END}
 1.45 17-Aug-2021  andvar fix multiplei repetitive typos in comments, messages and documentation. mainly because copy paste code big amount of files are affected.
 1.44 18-Apr-2020  skrll PMAP_DEBUG has been deleted on arm
 1.43 18-Apr-2020  skrll Trailing whitespace
 1.42 10-Nov-2019  chs branches: 1.42.6;
in many device attach paths, allocate memory with M_WAITOK instead of M_NOWAIT
and remove code to handle failures that can no longer happen.
 1.41 16-Jul-2019  skrll Consistently use vaddr_t as initarm and friends return type.

Makes no difference to binaries except for aarch64 where it's required
 1.40 16-Jul-2019  skrll KNF
 1.39 28-Oct-2018  skrll Fix a commit
 1.38 21-Sep-2018  skrll Centralise defparam CONSADDR, CONSPEED, CONMODE and CONADDR into
opt_console.h and adjust.
 1.37 31-Jul-2018  skrll Sprinkle #include "opt_arm_debug.h" where VERBOSE_INIT_ARM is used
 1.36 22-Dec-2016  cherry branches: 1.36.14; 1.36.16;
switch all ports to use uvm_init.c:uvm_md_init()

uvm_setpagesize() is now subsumed within this funciton.
 1.35 13-Sep-2014  matt branches: 1.35.2; 1.35.4;
Replace more vm_offset_t, vm_size_t with vaddr_t, vsize_t
Use paddr_t for msgbufphys
 1.34 27-Feb-2014  joerg GC writeback_dcache_line and clear_dcache_line.
 1.33 18-Aug-2013  matt <arm/locore.h> fallout (fixes some include ordering errors)
 1.32 22-Sep-2012  matt branches: 1.32.2;
Don't use an asm in pmap_activate to update the TTBR, use cpu_setttb instead
but add a second argument to it to indicate whether the TLB/caches need to be
flushed. Default cortex to pmap_needs_fixup = 1. But check the MMFR3 field
to see if the fixed can be skipped.
Use a cf_flag bit 0 to indicate whether the A9 L2 cache should disable (bit 0 = 1)
or enabeld (bit = 0).

With these changes, the A9 MMU can use traverse caches to do MMU tablewalks
Also, make sure all memory has the shareable bit for the A9.
 1.31 16-Aug-2012  matt branches: 1.31.2;
Move the standard definitions of the {UND,IRQ,FIQ,ABT}_STACK_SIZE to
<arm32/machdep.h>
Move the extern for cpu_reset_address to the same file.
Add cpu_reset_address_paddr.
Kill cpu_reset_v4_MMU_disable.
if cpu_reset_address is NULL, then the MMU will be disabled.
 1.30 29-Jul-2012  matt Fix more -fno-common fallout.
Move more variables to common locations.
 1.29 01-Jul-2011  dyoung branches: 1.29.2;
#include <sys/bus.h> instead of <machine/bus.h>.
 1.28 30-Jun-2011  wiz dependant -> dependent
 1.27 26-Dec-2009  uebayasi Use cpu_* prefix to call cpu_* functions (setttb() -> cpu_setttb()); no
functional changes.
 1.26 26-Dec-2009  uebayasi Garbage collect an unused global, vm_offset_t pagetables_start.
 1.25 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.24 26-Nov-2009  matt Kill proc0paddr. Use lwp0.l_addr instead.
 1.23 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.22 30-Nov-2008  martin 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.21 18-Nov-2008  cliff fix botched LKM edits
 1.20 12-Nov-2008  ad Remove LKMs and switch to the module framework, pass 1.

Proposed on tech-kern@.
 1.19 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.18 27-Apr-2008  matt branches: 1.18.6; 1.18.8;
Merge kernel changes in matt-armv6 to HEAD.
 1.17 19-Jan-2008  chris branches: 1.17.6; 1.17.8; 1.17.10;
Remove arm support for IPKDB.

It hasn't worked since arm was broken out from arm32 in Jan 2001, and
no-one has noticed or cared to fix it.
 1.16 17-May-2006  mrg branches: 1.16.34; 1.16.38; 1.16.44; 1.16.52;
in initarm(), initialise kernel_l1pt.pv_va as well as kernel_l1pt.pv_pa.
 1.15 24-Dec-2005  perry branches: 1.15.4; 1.15.6; 1.15.8; 1.15.12;
bare asm -> __asm
 1.14 24-Dec-2005  perry Remove leading __ from __(const|inline|signed|volatile) -- it is obsolete.
 1.13 11-Dec-2005  christos merge ktrace-lwp.
 1.12 16-Mar-2005  bsh branches: 1.12.4;
Switch SMDK2410 and SMDK2800 kernels to use pmap_devmap_bootstrap() to map
I/O registers that are used in early start-up stage. This replaces the
special bootstrap-time-only bus_space_map function in smdk{2410,2800}_machdep.c.

This makes SMDK{2410,2800}'s initarm() a bit simpler, and gives us smaller diffs
to other evbarm platforms.

An another good thing for SMDK2800 is that now we have all built-in peripheral
registers mapped in 2 segments. We may expect less TLB miss on I/O access
(very slightly).
 1.11 08-Mar-2005  bsh delete unused stuff.
 1.10 12-Dec-2004  abs branches: 1.10.2; 1.10.4;
Fix comments regarding configration bounaries
 1.9 12-Dec-2004  abs Fix comments slighly
 1.8 17-Dec-2003  bsh branches: 1.8.4;
mask all interrupts during bootstrap *correctly*.

call s3c2xx0_intr_bootstrap() to initialize variables used by splfoo().
 1.7 03-Sep-2003  mycroft GC a bogus variable that was causing link failures with PCMCIA.
 1.6 29-Aug-2003  bsh tweak memory controller on startup for CS8900A at CS3 and CL-PD7610 at
CS2.
 1.5 27-Aug-2003  bsh move some definitions of register block size from s3c24[10]0reg.h
to s3c24x0reg.h when they are same for S3C2410 and 2400, and rename them as
S3C24X0_FOO_SIZE.
 1.4 05-Aug-2003  bsh add s3c2xx0_bus_dma_init() which is called by s3c2410_attach().

add a variable wdcdebug_wd_mask for a temporary workaround to the link
error when umass is configured in SMDK2410 kernel. I'll re-visit this
later.
 1.3 04-Aug-2003  bsh don't be too verbose unless VERBOSE_INIT_ARM is defined.
 1.2 01-Aug-2003  bsh delete my private hack sneaked into previous commit.
 1.1 31-Jul-2003  bsh the first cut for Samsung SMDK2410 support.
It is an evaluation board for S3C2410.

XXX: not tested much yet.
XXX: smdk2410_machdep.c and smdk2410_start.S are almost identical
to SMDK2800's. One day I'll merge them.
 1.8.4.6 01-Apr-2005  skrll Sync with HEAD.
 1.8.4.5 18-Dec-2004  skrll Sync with HEAD.
 1.8.4.4 21-Sep-2004  skrll Fix the sync with head I botched.
 1.8.4.3 18-Sep-2004  skrll Sync with HEAD.
 1.8.4.2 03-Aug-2004  skrll Sync with HEAD
 1.8.4.1 17-Dec-2003  skrll file smdk2410_machdep.c was added on branch ktrace-lwp on 2004-08-03 10:34:03 +0000
 1.10.4.1 19-Mar-2005  yamt sync with head. xen and whitespace. xen part is not finished.
 1.10.2.1 29-Apr-2005  kent sync with -current
 1.12.4.2 21-Jan-2008  yamt sync with head
 1.12.4.1 21-Jun-2006  yamt sync with head.
 1.15.12.1 24-May-2006  tron Merge 2006-05-24 NetBSD-current into the "peter-altq" branch.
 1.15.8.1 24-May-2006  yamt sync with head.
 1.15.6.1 01-Jun-2006  kardel Sync with head.
 1.15.4.1 09-Sep-2006  rpaulo sync with head
 1.16.52.1 20-Jan-2008  bouyer Sync with HEAD
 1.16.44.1 18-Feb-2008  mjf Sync with HEAD.
 1.16.38.2 23-Mar-2008  matt sync with HEAD
 1.16.38.1 09-Nov-2007  matt Make all the evbarm kernels build again. Fix lossage from rebase.
 1.16.34.1 28-Feb-2008  rjs Sync with HEAD.
 1.17.10.4 11-Mar-2010  yamt sync with head
 1.17.10.3 19-Aug-2009  yamt sync with head.
 1.17.10.2 04-May-2009  yamt sync with head.
 1.17.10.1 16-May-2008  yamt sync with head.
 1.17.8.1 18-May-2008  yamt sync with head.
 1.17.6.2 17-Jan-2009  mjf Sync with HEAD.
 1.17.6.1 02-Jun-2008  mjf Sync with HEAD.
 1.18.8.1 19-Jan-2009  skrll Sync with HEAD.
 1.18.6.1 13-Dec-2008  haad Update haad-dm branch to haad-dm-base2.
 1.29.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.29.2.1 30-Oct-2012  yamt sync with head
 1.31.2.3 03-Dec-2017  jdolecek update from HEAD
 1.31.2.2 20-Aug-2014  tls Rebase to HEAD as of a few days ago.
 1.31.2.1 20-Nov-2012  tls Resync to 2012-11-19 00:00:00 UTC
 1.32.2.2 18-May-2014  rmind sync with head
 1.32.2.1 28-Aug-2013  rmind sync with head
 1.35.4.1 07-Jan-2017  pgoyette Sync with HEAD. (Note that most of these changes are simply $NetBSD$
tag issues.)
 1.35.2.1 05-Feb-2017  skrll Sync with HEAD
 1.36.16.3 21-Apr-2020  martin Sync with HEAD
 1.36.16.2 13-Apr-2020  martin Mostly merge changes from HEAD upto 20200411
 1.36.16.1 10-Jun-2019  christos Sync with HEAD
 1.36.14.3 26-Nov-2018  pgoyette Sync with HEAD, resolve a couple of conflicts
 1.36.14.2 30-Sep-2018  pgoyette Ssync with HEAD
 1.36.14.1 06-Sep-2018  pgoyette Sync with HEAD

Resolve a couple of conflicts (result of the uimin/uimax changes)
 1.42.6.1 20-Apr-2020  bouyer Sync with HEAD
 1.6 31-Jan-2011  matt Add RCSID when needed.
Don't include pmap.h or pte.h, include "assym.h" instead.
Use assym.h provided values.
 1.5 11-Dec-2005  christos branches: 1.5.100; 1.5.106; 1.5.108;
merge ktrace-lwp.
 1.4 29-Aug-2003  bsh branches: 1.4.4;
add option SMDK2XX0_CLOCK_CONFIG to change CPU clock at kernel startup.
 1.3 29-Aug-2003  bsh fix a comment.
 1.2 04-Aug-2003  bsh disable interrupts at the beginning.
 1.1 31-Jul-2003  bsh the first cut for Samsung SMDK2410 support.
It is an evaluation board for S3C2410.

XXX: not tested much yet.
XXX: smdk2410_machdep.c and smdk2410_start.S are almost identical
to SMDK2800's. One day I'll merge them.
 1.4.4.4 21-Sep-2004  skrll Fix the sync with head I botched.
 1.4.4.3 18-Sep-2004  skrll Sync with HEAD.
 1.4.4.2 03-Aug-2004  skrll Sync with HEAD
 1.4.4.1 29-Aug-2003  skrll file smdk2410_start.S was added on branch ktrace-lwp on 2004-08-03 10:34:03 +0000
 1.5.108.1 08-Feb-2011  bouyer Sync with HEAD
 1.5.106.1 06-Jun-2011  jruoho Sync with HEAD.
 1.5.100.1 05-Mar-2011  rmind sync with head
 1.52 20-Feb-2024  andvar Fix format specifier for physmem from %d to 0x%"PRIxPSIZE" in multiple places.

Should fix VERBOSE_INIT_ARM for various evbarm kernel configs.
Also add 0x prefix in few previously fixed places to improve readability.
 1.51 20-Apr-2023  skrll Provide a shared pmap_devmap implementation and convert all pmap_devmap
arrays to use DEVMAP_ENTRY{,_END}
 1.50 17-Aug-2021  andvar fix multiplei repetitive typos in comments, messages and documentation. mainly because copy paste code big amount of files are affected.
 1.49 18-Apr-2020  skrll PMAP_DEBUG has been deleted on arm
 1.48 18-Apr-2020  skrll Trailing whitespace
 1.47 16-Jul-2019  skrll branches: 1.47.8;
Consistently use vaddr_t as initarm and friends return type.

Makes no difference to binaries except for aarch64 where it's required
 1.46 16-Jul-2019  skrll KNF
 1.45 28-Oct-2018  skrll Fix a commit
 1.44 21-Sep-2018  skrll Centralise defparam CONSADDR, CONSPEED, CONMODE and CONADDR into
opt_console.h and adjust.
 1.43 22-Dec-2016  cherry branches: 1.43.14; 1.43.16;
switch all ports to use uvm_init.c:uvm_md_init()

uvm_setpagesize() is now subsumed within this funciton.
 1.42 13-Sep-2014  matt branches: 1.42.2; 1.42.4;
Replace more vm_offset_t, vm_size_t with vaddr_t, vsize_t
Use paddr_t for msgbufphys
 1.41 18-Aug-2013  matt <arm/locore.h> fallout (fixes some include ordering errors)
 1.40 22-Sep-2012  matt branches: 1.40.2;
Don't use an asm in pmap_activate to update the TTBR, use cpu_setttb instead
but add a second argument to it to indicate whether the TLB/caches need to be
flushed. Default cortex to pmap_needs_fixup = 1. But check the MMFR3 field
to see if the fixed can be skipped.
Use a cf_flag bit 0 to indicate whether the A9 L2 cache should disable (bit 0 = 1)
or enabeld (bit = 0).

With these changes, the A9 MMU can use traverse caches to do MMU tablewalks
Also, make sure all memory has the shareable bit for the A9.
 1.39 16-Aug-2012  matt branches: 1.39.2;
Move the standard definitions of the {UND,IRQ,FIQ,ABT}_STACK_SIZE to
<arm32/machdep.h>
Move the extern for cpu_reset_address to the same file.
Add cpu_reset_address_paddr.
Kill cpu_reset_v4_MMU_disable.
if cpu_reset_address is NULL, then the MMU will be disabled.
 1.38 29-Jul-2012  matt Fix more -fno-common fallout.
Move more variables to common locations.
 1.37 01-Jul-2011  dyoung branches: 1.37.2;
#include <sys/bus.h> instead of <machine/bus.h>.
 1.36 30-Jun-2011  wiz dependant -> dependent
 1.35 26-Dec-2009  uebayasi Use cpu_* prefix to call cpu_* functions (setttb() -> cpu_setttb()); no
functional changes.
 1.34 26-Dec-2009  uebayasi Garbage collect an unused global, vm_offset_t pagetables_start.
 1.33 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.32 26-Nov-2009  matt Kill proc0paddr. Use lwp0.l_addr instead.
 1.31 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.30 30-Nov-2008  martin 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.29 18-Nov-2008  cliff fix botched LKM edits
 1.28 12-Nov-2008  ad Remove LKMs and switch to the module framework, pass 1.

Proposed on tech-kern@.
 1.27 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.26 27-Apr-2008  matt branches: 1.26.6; 1.26.8;
Merge kernel changes in matt-armv6 to HEAD.
 1.25 19-Jan-2008  chris branches: 1.25.6; 1.25.8; 1.25.10;
Remove arm support for IPKDB.

It hasn't worked since arm was broken out from arm32 in Jan 2001, and
no-one has noticed or cared to fix it.
 1.24 17-May-2006  mrg branches: 1.24.34; 1.24.38; 1.24.44; 1.24.52;
in initarm(), initialise kernel_l1pt.pv_va as well as kernel_l1pt.pv_pa.
 1.23 24-Dec-2005  perry branches: 1.23.4; 1.23.6; 1.23.8; 1.23.12;
bare asm -> __asm
 1.22 11-Dec-2005  christos merge ktrace-lwp.
 1.21 16-Mar-2005  bsh branches: 1.21.4;
Switch SMDK2410 and SMDK2800 kernels to use pmap_devmap_bootstrap() to map
I/O registers that are used in early start-up stage. This replaces the
special bootstrap-time-only bus_space_map function in smdk{2410,2800}_machdep.c.

This makes SMDK{2410,2800}'s initarm() a bit simpler, and gives us smaller diffs
to other evbarm platforms.

An another good thing for SMDK2800 is that now we have all built-in peripheral
registers mapped in 2 segments. We may expect less TLB miss on I/O access
(very slightly).
 1.20 11-Mar-2005  bsh move a few definitions to smdk2800var.h to share them between smdk2800_machdep.c and smdk2800_start.S
 1.19 12-Dec-2004  abs branches: 1.19.2; 1.19.4;
Fix comments regarding configration bounaries
 1.18 12-Dec-2004  abs Fix comments slighly
 1.17 13-Feb-2004  wiz Uppercase CPU, plural is CPUs.
 1.16 03-Aug-2003  bsh an arg of s3c2800_clk_freq() has been changed to match with
s3c24x0_clk_freq().
 1.15 15-Jul-2003  lukem __KERNEL_RCSID()
 1.14 15-Jun-2003  thorpej branches: 1.14.2;
Garbage-collect some unused code.
 1.13 14-Jun-2003  thorpej Also pass a type argument to comcnattach() and com_kgdb_attach().
comspeed() (and thus cominit()) may need this information.
 1.12 22-May-2003  thorpej Move KERNEL_VM_SIZE into the C files where its used.
 1.11 21-May-2003  thorpej Move KERNEL_VM_BASE inside where it is used (it won't be there for long).
 1.10 17-May-2003  thorpej Decrease the verbosity level unless VERBOSE_INIT_ARM is defiend.
 1.9 13-May-2003  bsh + use system's real PCLK frequency for source clock of sscom's
baudrate, instead of a compile time constant.

+ simplify bootstrap_bs_map() by mapping all built-in peripheral
registers at start.

+ check SW3 and SW7 and toggle RB_SINGLE and RB_KDB in boothowto if
pressed.
 1.8 13-May-2003  bsh white space nit.
 1.7 03-May-2003  thorpej Don't expose KERNEL_TEXT_BASE outside of board-specific code. This gives
individual board start-up code more flexibility about where the kernel
starts in the kernel address space.
 1.6 03-May-2003  thorpej Reduce differences between ARM32_NEW_VM_LAYOUT and not; always pass
the start and end of the kernel managed virtual address space to
pmap_bootstrap() in the new pmap.
 1.5 03-May-2003  thorpej Remove old pmap support for platforms which have fully switched over.
 1.4 03-May-2003  thorpej Switch Integrator, IXM1200, and SMDK2800 to ARM32_PMAP_NEW. These
are the last of the ARM platforms to be converted.
 1.3 26-Apr-2003  ragge Call ksyms_init() instead of ddb_init() in case of
NKSYMS || defined(DDB) || defined(LKM)
 1.2 02-Apr-2003  thorpej Use PAGE_SIZE rather than NBPG.
 1.1 20-Nov-2002  bsh branches: 1.1.2;
SMDK2800 is an evaluation board for Samsung S3C2800 CPU.
 1.1.2.2 11-Dec-2002  thorpej Sync with HEAD.
 1.1.2.1 20-Nov-2002  thorpej file smdk2800_machdep.c was added on branch nathanw_sa on 2002-12-11 05:58:33 +0000
 1.14.2.5 01-Apr-2005  skrll Sync with HEAD.
 1.14.2.4 18-Dec-2004  skrll Sync with HEAD.
 1.14.2.3 21-Sep-2004  skrll Fix the sync with head I botched.
 1.14.2.2 18-Sep-2004  skrll Sync with HEAD.
 1.14.2.1 03-Aug-2004  skrll Sync with HEAD
 1.19.4.1 19-Mar-2005  yamt sync with head. xen and whitespace. xen part is not finished.
 1.19.2.1 29-Apr-2005  kent sync with -current
 1.21.4.2 21-Jan-2008  yamt sync with head
 1.21.4.1 21-Jun-2006  yamt sync with head.
 1.23.12.1 24-May-2006  tron Merge 2006-05-24 NetBSD-current into the "peter-altq" branch.
 1.23.8.1 24-May-2006  yamt sync with head.
 1.23.6.1 01-Jun-2006  kardel Sync with head.
 1.23.4.1 09-Sep-2006  rpaulo sync with head
 1.24.52.1 20-Jan-2008  bouyer Sync with HEAD
 1.24.44.1 18-Feb-2008  mjf Sync with HEAD.
 1.24.38.2 23-Mar-2008  matt sync with HEAD
 1.24.38.1 09-Nov-2007  matt Make all the evbarm kernels build again. Fix lossage from rebase.
 1.24.34.1 28-Feb-2008  rjs Sync with HEAD.
 1.25.10.4 11-Mar-2010  yamt sync with head
 1.25.10.3 19-Aug-2009  yamt sync with head.
 1.25.10.2 04-May-2009  yamt sync with head.
 1.25.10.1 16-May-2008  yamt sync with head.
 1.25.8.1 18-May-2008  yamt sync with head.
 1.25.6.2 17-Jan-2009  mjf Sync with HEAD.
 1.25.6.1 02-Jun-2008  mjf Sync with HEAD.
 1.26.8.1 19-Jan-2009  skrll Sync with HEAD.
 1.26.6.1 13-Dec-2008  haad Update haad-dm branch to haad-dm-base2.
 1.37.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.37.2.1 30-Oct-2012  yamt sync with head
 1.39.2.3 03-Dec-2017  jdolecek update from HEAD
 1.39.2.2 20-Aug-2014  tls Rebase to HEAD as of a few days ago.
 1.39.2.1 20-Nov-2012  tls Resync to 2012-11-19 00:00:00 UTC
 1.40.2.1 28-Aug-2013  rmind sync with head
 1.42.4.1 07-Jan-2017  pgoyette Sync with HEAD. (Note that most of these changes are simply $NetBSD$
tag issues.)
 1.42.2.1 05-Feb-2017  skrll Sync with HEAD
 1.43.16.3 21-Apr-2020  martin Sync with HEAD
 1.43.16.2 13-Apr-2020  martin Mostly merge changes from HEAD upto 20200411
 1.43.16.1 10-Jun-2019  christos Sync with HEAD
 1.43.14.2 26-Nov-2018  pgoyette Sync with HEAD, resolve a couple of conflicts
 1.43.14.1 30-Sep-2018  pgoyette Ssync with HEAD
 1.47.8.1 20-Apr-2020  bouyer Sync with HEAD
 1.6 17-Jun-2020  thorpej <sys/extent.h> not needed here.
 1.5 01-Jul-2011  dyoung #include <sys/bus.h> instead of <machine/bus.h>.
 1.4 11-Dec-2005  christos merge ktrace-lwp.
 1.3 30-Jul-2003  bsh make this compile again. (arm32_bus_dma_tag._cookie)
 1.2 15-Jul-2003  lukem __KERNEL_RCSID()
 1.1 20-Nov-2002  bsh branches: 1.1.2; 1.1.8;
SMDK2800 is an evaluation board for Samsung S3C2800 CPU.
 1.1.8.3 21-Sep-2004  skrll Fix the sync with head I botched.
 1.1.8.2 18-Sep-2004  skrll Sync with HEAD.
 1.1.8.1 03-Aug-2004  skrll Sync with HEAD
 1.1.2.2 11-Dec-2002  thorpej Sync with HEAD.
 1.1.2.1 20-Nov-2002  thorpej file smdk2800_pci.c was added on branch nathanw_sa on 2002-12-11 05:58:33 +0000
 1.8 31-Jan-2011  matt Add RCSID when needed.
Don't include pmap.h or pte.h, include "assym.h" instead.
Use assym.h provided values.
 1.7 11-Dec-2005  christos branches: 1.7.100; 1.7.106; 1.7.108;
merge ktrace-lwp.
 1.6 16-Mar-2005  bsh Switch SMDK2410 and SMDK2800 kernels to use pmap_devmap_bootstrap() to map
I/O registers that are used in early start-up stage. This replaces the
special bootstrap-time-only bus_space_map function in smdk{2410,2800}_machdep.c.

This makes SMDK{2410,2800}'s initarm() a bit simpler, and gives us smaller diffs
to other evbarm platforms.

An another good thing for SMDK2800 is that now we have all built-in peripheral
registers mapped in 2 segments. We may expect less TLB miss on I/O access
(very slightly).
 1.5 11-Mar-2005  bsh move a few definitions to smdk2800var.h to share them between smdk2800_machdep.c and smdk2800_start.S
 1.4 18-Jun-2003  bsh branches: 1.4.2; 1.4.10; 1.4.12;
use PMAP_DOMAIN_KERNEL and DOMAIN_CLIENT instead of magic numbers.
 1.3 13-May-2003  bsh enable the domain 15 during bootstrap, as new pmap_map_section() use it.
 1.2 09-May-2003  bsh Build our own page table which is used during bootstrap, instead of
reusing the table prepared by the monitor program on ROM.

This will allow the kernel booted by gzboot at reset vector.
 1.1 20-Nov-2002  bsh branches: 1.1.2;
SMDK2800 is an evaluation board for Samsung S3C2800 CPU.
 1.1.2.2 11-Dec-2002  thorpej Sync with HEAD.
 1.1.2.1 20-Nov-2002  thorpej file smdk2800_start.S was added on branch nathanw_sa on 2002-12-11 05:58:33 +0000
 1.4.12.1 19-Mar-2005  yamt sync with head. xen and whitespace. xen part is not finished.
 1.4.10.1 29-Apr-2005  kent sync with -current
 1.4.2.1 01-Apr-2005  skrll Sync with HEAD.
 1.7.108.1 08-Feb-2011  bouyer Sync with HEAD
 1.7.106.1 06-Jun-2011  jruoho Sync with HEAD.
 1.7.100.1 05-Mar-2011  rmind sync with head
 1.2 16-Mar-2005  bsh branches: 1.2.4; 1.2.6; 1.2.8;
Switch SMDK2410 and SMDK2800 kernels to use pmap_devmap_bootstrap() to map
I/O registers that are used in early start-up stage. This replaces the
special bootstrap-time-only bus_space_map function in smdk{2410,2800}_machdep.c.

This makes SMDK{2410,2800}'s initarm() a bit simpler, and gives us smaller diffs
to other evbarm platforms.

An another good thing for SMDK2800 is that now we have all built-in peripheral
registers mapped in 2 segments. We may expect less TLB miss on I/O access
(very slightly).
 1.1 11-Mar-2005  bsh move a few definitions to smdk2800var.h to share them between smdk2800_machdep.c and smdk2800_start.S
 1.2.8.2 29-Apr-2005  kent sync with -current
 1.2.8.1 16-Mar-2005  kent file smdk2800var.h was added on branch kent-audio2 on 2005-04-29 11:28:08 +0000
 1.2.6.2 01-Apr-2005  skrll Sync with HEAD.
 1.2.6.1 16-Mar-2005  skrll file smdk2800var.h was added on branch ktrace-lwp on 2005-04-01 14:27:09 +0000
 1.2.4.2 19-Mar-2005  yamt sync with head. xen and whitespace. xen part is not finished.
 1.2.4.1 16-Mar-2005  yamt file smdk2800var.h was added on branch yamt-km on 2005-03-19 08:32:56 +0000

RSS XML Feed