freebsd-nq/sys/arm/xscale/ixp425
Ian Lepore 69dcb7e771 Make the 'env' directive described in config(5) work on all architectures,
providing compiled-in static environment data that is used instead of any
data passed in from a boot loader.

Previously 'env' worked only on i386 and arm xscale systems, because it
required the MD startup code to examine the global envmode variable and
decide whether to use static_env or an environment obtained from the boot
loader, and set the global kern_envp accordingly.  Most startup code wasn't
doing so.  Making things even more complex, some mips startup code uses an
alternate scheme that involves calling init_static_kenv() to pass an empty
buffer and its size, then uses a series of kern_setenv() calls to populate
that buffer.

Now all MD startup code calls init_static_kenv(), and that routine provides
a single point where envmode is checked and the decision is made whether to
use the compiled-in static_kenv or the values provided by the MD code.

The routine also continues to serve its original purpose for mips; if a
non-zero buffer size is passed the routine installs the empty buffer ready
to accept kern_setenv() values.  Now if the size is zero, the provided buffer
full of existing env data is installed.  A NULL pointer can be passed if the
boot loader provides no env data; this allows the static env to be installed
if envmode is set to do so.

Most of the work here is a near-mechanical change to call the init function
instead of directly setting kern_envp.  A notable exception is in xen/pv.c;
that code was originally installing a buffer full of preformatted env data
along with its non-zero size (like mips code does), which would have allowed
kern_setenv() calls to wipe out the preformatted data.  Now it passes a zero
for the size so that the buffer of data it installs is treated as
non-writeable.
2016-01-02 02:53:48 +00:00
..
avila_ata.c Revise the arm bus_space implementation to avoid dereferencing the tag on 2015-01-21 01:06:08 +00:00
avila_gpio.c Implement GPIO_GET_BUS() method for all GPIO drivers. 2015-01-31 19:32:14 +00:00
avila_led.c
avila_machdep.c Make the 'env' directive described in config(5) work on all architectures, 2016-01-02 02:53:48 +00:00
cambria_exp_space.c Revise the arm bus_space implementation to avoid dereferencing the tag on 2015-01-21 01:06:08 +00:00
cambria_fled.c
cambria_gpio.c Implement GPIO_GET_BUS() method for all GPIO drivers. 2015-01-31 19:32:14 +00:00
cambria_led.c
files.avila
files.ixp425 Move more bus_space_* files to be built by files.arm. This leaves the 2015-11-21 15:30:08 +00:00
if_npe.c The cpu_id macro was renamed in r278529, catch up with this new name. 2015-02-11 10:37:55 +00:00
if_npereg.h
ixdp425_pci.c
ixdp425reg.h
ixp425_a4x_io.S Add missing END macros to some of the xscale functions. 2014-12-05 19:04:08 +00:00
ixp425_a4x_space.c For some reason, all the arm bus_space functions that work with uint16 2015-01-21 02:56:13 +00:00
ixp425_iic.c
ixp425_intr.h
ixp425_mem.c Typo fix. 2013-10-22 21:49:58 +00:00
ixp425_npe.c Pull in r267961 and r267973 again. Fix for issues reported will follow. 2014-06-28 03:56:17 +00:00
ixp425_npereg.h
ixp425_npevar.h
ixp425_pci_asm.S Add missing END macros to some of the xscale functions. 2014-12-05 19:04:08 +00:00
ixp425_pci_space.c Revise the arm bus_space implementation to avoid dereferencing the tag on 2015-01-21 01:06:08 +00:00
ixp425_pci.c Eliminate the last dregs of the old global arm_root_dma_tag. 2015-11-02 22:49:39 +00:00
ixp425_qmgr.c Pull in r267961 and r267973 again. Fix for issues reported will follow. 2014-06-28 03:56:17 +00:00
ixp425_qmgr.h
ixp425_space.c For some reason, all the arm bus_space functions that work with uint16 2015-01-21 02:56:13 +00:00
ixp425_timer.c Unify interrupts bit definition and usage. While here remove PSR_C_bit. 2014-09-10 15:25:15 +00:00
ixp425_wdog.c Remove #include <machine/frame.h> from all the arm code that doesn't 2013-10-27 01:34:10 +00:00
ixp425.c Unify interrupts bit definition and usage. While here remove PSR_C_bit. 2014-09-10 15:25:15 +00:00
ixp425reg.h Fix undefined behavior: (1 << 31) is not defined as 1 is an int and this 2013-11-30 22:17:27 +00:00
ixp425var.h
std.avila Remove the arm KERNPHYSADDR option as it is no longer used. The make 2015-12-22 09:08:21 +00:00
std.ixp425
std.ixp435
uart_bus_ixp425.c
uart_cpu_ixp425.c