Commit Graph
2563 Commits
Author SHA1 Message Date
Mark Johnston 5ff727f840 MFC r323676:
Implement mmu_page_init for AIM platforms.
2017-09-24 12:53:33 +00:00
Josh Paetzel 8eb8da41e7 MFC: 323068
Allow kldload tcpmd5

PR:	220170
2017-09-19 16:51:51 +00:00
Konstantin Belousov c7eae662bd MFC r319873:
Move struct syscall_args syscall arguments parameters container into
struct thread.
2017-07-21 18:06:57 +00:00
Konstantin Belousov d400e442bc MFC r319871:
Make struct syscall_args visible to userspace compilation environment
from machine/proc.h, consistently on all architectures.
2017-07-21 06:56:06 +00:00
Justin Hibbits a20f83ea11 MFC r320489:
Use the more common Book-E idiom for disabling interrupts.
2017-07-14 01:45:43 +00:00
Justin Hibbits a79411acac MFC r320392:
Disable interrupts when updating the TLB
2017-07-14 01:22:27 +00:00
Konstantin Belousov 39345e967b MFC efivar(8) (by imp):
List of revisions merged:
r307070
r307071
r307072
r307074
r307189
r307224
r307339
r307390
r307391
r309776
r314231
r314232
r314615
r314616
r314617
r314618
r314619
r314620
r314621
r314623
r314890
r314925
r314926
r314927
r314928
r315770
r315771

Discussed with:	gjb (re), imp
Sponsored by:	The FreeBSD Foundation
2017-05-20 16:12:44 +00:00
Justin Hibbits 5c383baaea MFC r314370,r318130,r318167:
DTrace related fixes for PowerPC.

  r314370:
    Unbreak kernel breakpoints, broken for ~4 years now
  r318130:
    Fix the encoded instruction for FBT traps on powerpc
  r318167:
    Fix stack tracing in dtrace for powerpc
2017-05-20 05:12:32 +00:00
Marius Strobl 43388a7399 MFC: r314097
- Allow different slicers for different flash types to be registered
  with geom_flashmap(4) and teach it about MMC for slicing enhanced
  user data area partitions. The FDT slicer still is the default for
  CFI, NAND and SPI flash on FDT-enabled platforms.
- In addition to a device_t, also pass the name of the GEOM provider
  in question to the slicers as a single device may provide more than
  one provider.
- Build a geom_flashmap.ko.
- Use MODULE_VERSION() so other modules can depend on geom_flashmap(4).
- Remove redundant/superfluous GEOM routines that either do nothing
  or provide/just call default GEOM (slice) functionality.
- Trim/adjust includes
2017-05-10 21:42:12 +00:00
Justin Hibbits 7492cbfe97 MFC r310146,r311912,r312369,r312617,r312614,r312659,r312974,r312977,r313005,r314826:
A series of Clang-related powerpc commits

  r310146:
    Use the right bitwise OR operation for clearing single-step at trap time.
  r311912:
    Force all TOC references in asm to include '@toc'
  r312369:
    Use the explicit expanded form of cmp.
  r312617:
    Hide the 'MOREARGS' macro, it conflicts with contrib code, and is only used
    in one file.
  r312614:
    Don't pass -Wa,-many through clang, the integrated as doesn't support it.
  r312659:
    Avoid using non-zero argument for __builtin_frame_address().
  r312974:
    Add a INTR_TRIG_INVALID, and use it in the powerpc interrupt code.
  r312977:
    Force the setting of bit 7 in the sysmouse packet byte 1 to be unsigned.
  r313005:
    Update CFLAGS for clang compatibility
  r314826:
    Clang in base now supports -mlongcall, so remove this hack
2017-04-01 19:27:06 +00:00
Justin Hibbits 7c2ef054e0 MFC r314885:
Fix booting with >4GB RAM on PowerMac G5 hardware

  ===
  From Nathan Whitehorn:

  Open Firmware runs in virtual mode on the Powermac G5. This runs inside
  the
  kernel page table, which preserves all address translations made by OF
  before
  the kernel starts; as a result, the kernel address space is a strict
  superset of
  OF's.

  Where this explodes is if OF uses an unmapped SLB entry. The SLB
  fault handler
  runs in real mode and refers to the PCPU pointer in SPRG0,
  which blows up the
  kernel. Having a value of SPRG0 that works for the kernel is
  less fatal than
  preserving OF's value in this case.

  ===

  The result of this is seemingly random panics from
  NULL dereferences, or hangs
  immediately upon boot.  By not restoring SPRG0 for
  Open Firmware entry the
  kernel PCPU pointer is preserved and SLB faults
  are successful, resulting in a
  stable kernel.

PR:		205458
2017-04-01 18:52:48 +00:00
Alexander Motin 6352900b3d MFC r311305 (by asomers):
Always null-terminate ccb_pathinq.(sim_vid|hba_vid|dev_name)

The sim_vid, hba_vid, and dev_name fields of struct ccb_pathinq are
fixed-length strings. AFAICT the only place they're read is in
sbin/camcontrol/camcontrol.c, which assumes they'll be null-terminated.
However, the kernel doesn't null-terminate them. A bunch of copy-pasted code
uses strncpy to write them, and doesn't guarantee null-termination. For at
least 4 drivers (mpr, mps, ciss, and hyperv), the hba_vid field actually
overflows. You can see the result by doing "camcontrol negotiate da0 -v".

This change null-terminates those fields everywhere they're set in the
kernel. It also shortens a few strings to ensure they'll fit within the
16-character field.

PR:		215474
Reported by:    Coverity
CID:            1009997 1010000 1010001 1010002 1010003 1010004 1010005
CID:            1331519 1010006 1215097 1010007 1288967 1010008 1306000
CID:            1211924 1010009 1010010 1010011 1010012 1010013 1010014
CID:            1147190 1010017 1010016 1010018 1216435 1010020 1010021
CID:            1010022 1009666 1018185 1010023 1010025 1010026 1010027
CID:            1010028 1010029 1010030 1010031 1010033 1018186 1018187
CID:            1010035 1010036 1010042 1010041 1010040 1010039
2017-03-23 06:40:20 +00:00
Mateusz Guzik 101f14fc01 MFC r311169,r311898,r312925,r312973,r312975,r313007,r313040,r313080,
r313254,r313341

amd64: add atomic_fcmpset

==

sparc64: add atomic_fcmpset

==

Implement atomic_fcmpset_* for arm and arm64.

==

Add atomic_fcmpset_*() inlines for powerpc

Summary:
atomic_fcmpset_*() is analogous to atomic_cmpset(), but saves off the read value
from the target memory location into the 'old' pointer in the case of failure.

==

i386: add atomic_fcmpset

==

Don't retry a lost reservation in atomic_fcmpset()

The desired behavior of atomic_fcmpset_() is to always exit on error.  Instead
of retrying on lost reservation, leave the retry to the caller, and return

==

Add atomic_fcmpset_*() inlines for MIPS

atomic_fcmpset_*() is analogous to atomic_cmpset(), but saves off the
read value from the target memory location into the 'old' pointer.

==

i386: fixup fcmpset

An incorrect output specifier was used which worked with clang by accident,
but breaks with the in-tree gcc version.

While here plug a whitespace nit.

==

Implement atomic_fcmpset_*() for RISC-V.

==

Use 64bit store instruction in atomic_fcmpset_64.
2017-03-16 06:00:27 +00:00
Ian Lepore ac89f353e1 MFC r308186, r308188, r308231, r308232:
Move imx_sdhci driver over to a dev/sdhci in preparation for QorIQ support.
  Freescale uses eSDHC in both i.MX (ARM) and QorIQ (PowerPC), with slight
  differences.  This is part one in unifying the drivers.

  Merge i.MX and PowerPC SDHCI drivers
  Summary:
  i.MX5 and PowerPC use a very similar eSDHC controller, which is also
  similar to the uSDHC controller used by i.MX6.  The imx_sdhci driver works
  almost completely with PowerPC, with some minor tweaks.

  Fix the build.  protctl is only used on powerpc.
  While here, remove the need to check the SVR SPR, as others may be compatible
  with the p1022-esdhc type.

  Since it's no longer accessing a powerpc-specific register, drop the #ifdef.
2017-03-01 21:02:26 +00:00
Konstantin Belousov 4519d20f59 MFC r313194:
Define the vm_ooffset_t and vm_pindex_t types as machine-independend.
2017-02-11 02:00:56 +00:00
John Baldwin 46b58bad0c MFC 307332,312086: Drop support for using mmap() with /dev/kmem.
307332:
Drop support for using mmap() with /dev/kmem.

Using the device pager with /dev/kmem is not stable since KVA mappings
are transient, but the device pager caches the PA associated with a
given offset forever.  Interestingly, mips' implementation of
memmap() already refused requests for /dev/kmem.

Note that kvm_read/kvm_write do not use mmap, but use read and write on
/dev/kmem, so this should not affect libkvm users.

312086:
Trim a few comments on platforms that did not implement mmap of /dev/kmem.

After r307332, no platforms implement mmap for /dev/kmem, so the lack of
it for these platforms is no longer unique.
2017-01-18 19:38:53 +00:00
Justin Hibbits d46da747c3 MFC r309309,r310150:
Bring the powerpc DDB disassembler into the 21st century
2016-12-23 03:42:38 +00:00
Justin Hibbits a0786ff741 MFC r308669:
Write to the correct GPIO registers.
2016-12-23 03:35:39 +00:00
Justin Hibbits 260402865a MFC r307598:
Un-static two local variables in the FPU emulator

  Static variables aren't MP-safe, and this was causing bizarre segfaults on a
  dual-core e500v2 system (P1022).
2016-12-23 03:31:53 +00:00
Justin Hibbits c8de85086f MFC r305677:
Add ehci to the MPC85XX build
2016-12-23 03:28:43 +00:00
Justin Hibbits 77e1b160d8 MFC r304052:
Add missing pmap_kremove() method for book-e.
2016-12-23 03:19:48 +00:00
Justin Hibbits 6ab58e6dca MFC r305320,r306702:
r305320:
    Use the right ifdef macro.
  r306702:
    Fix e500mc/derivatives cpu idle
2016-12-23 03:14:05 +00:00
Justin Hibbits 895850070e MFC r304047,r304068:
r304047:
    Add ePAPR boot support for PowerPC book-E (MPC85xx) hardware
  r304068:
    Only flush bp_kernload from the dcache, no need to sync the icache on the
    boot CPU.
2016-12-23 03:08:27 +00:00
Justin Hibbits 089d586f29 Partial MFC r303693:
Merge MPC85XX and QorIQ config options

Only a partial MFC, keeping files.powerpc and options.powerpc intact, to
retain compatibility with any kernel configs that may use the QORIQ_DPAA option.
2016-12-22 20:16:10 +00:00
Justin Hibbits d893b4061b MFC r309167:
Add an isync to after mtsrin, required by the MPC750 errata
2016-12-09 04:35:07 +00:00
John Baldwin 0ea05d6d32 MFC 303522,303647,303860,303880,304168,304169,304170,304479,304485,305549:
Chelsio T4/T5 VF driver.

303522:
Various fixes to the t4/5nex character device.

- Remove null open/close methods.
- Don't set d_flags to 0 explicitly.
- Remove t5_cdevsw as the .d_name member isn't really used and doesn't
  warrant a separate cdevsw just for the name.
- Use ENOTTY as the error value for an unknown ioctl request.
- Use make_dev_s() to close race with setting si_drv1.

303647:
Store the offset of the KDOORBELL and GTS registers in the softc.

VF devices use a different register layout than PF devices.  Storing
the offset in a value in the softc allows code to be shared between the
PF and VF drivers.

303860:
Reserve an adapter flag IS_VF to mark VF devices vs PF devices.

303880:
Track the base absolute ID of ingress and egress queues.

Use this to map an absolute queue ID to a logical queue ID in interrupt
handlers.  For the regular cxgbe/cxl drivers this should be a no-op as
the base absolute ID should be zero.  VF devices have a non-zero base
absolute ID and require this change.  While here, export the absolute ID
of egress queues via a sysctl.

304168:
Make SGE parameter handling more VF-friendly.

Add fields to hold the SGE control register and free list buffer sizes to
the sge_params structure.  Populate these new fields in
t4_init_sge_params() for PF devices and change t4_read_chip_settings() to
pull these values out of the params structure instead of reading
registers directly.  This will permit t4_read_chip_settings() to be reused
for VF devices which cannot read SGE registers directly.

While here, move the call to t4_init_sge_params() to
get_params__post_init().  The VF driver will populate the SGE parameters
structure via a different method before calling t4_read_chip_settings().

304169:
Update mailbox writes to work with VF devices.

- Use alternate register locations for the data and control registers for
  VFs.
- Do a dummy read to force the writes to the  mailbox data registers to
  post before the write to the control register on VFs.
- Do not check the PCI-e firmware register for errors on VFs.

304170:
Add support for register dumps on VF devices.

- Add handling of VF register sets to t4_get_regs_len() and t4_get_regs().
- While here, use t4_get_regs_len() in the ioctl handler for regdump
  instead of inlining it.

304479:
Add structures for VF-specific adapter parameters.

While here, mark which parameters are PF-specific and which are
VF-specific.

304485:
Reorder sysctls so that nodes shared with the VF driver are added first.

This permits a single early return for VF devices in the routines that
add sysctl nodes.

305549:
Chelsio T4/T5 VF driver.

The cxgbev/cxlv driver supports Virtual Function devices for Chelsio
T4 and T4 adapters.  The VF devices share most of their code with the
existing PF4 driver (cxgbe/cxl) and as such the VF device driver
currently depends on the PF4 driver.

Similar to the cxgbe/cxl drivers, the VF driver includes a t4vf/t5vf
PCI device driver that attaches to the VF device.  It then creates
child cxgbev/cxlv devices representing ports assigned to the VF.
By default, the PF driver assigns a single port to each VF.

t4vf_hw.c contains VF-specific routines from the shared code used to
fetch VF-specific parameters from the firmware.

t4_vf.c contains the VF-specific PCI device driver and includes its
own attach routine.

VF devices are required to use a different firmware request when
transmitting packets (which in turn requires a different CPL message
to encapsulate messages).  This alternate firmware request does not
permit chaining multiple packets in a single message, so each packet
results in a firmware request.  In addition, the different CPL message
requires more detailed information when enabling hardware checksums,
so parse_pkt() on VF devices must examine L2 and L3 headers for all
packets (not just TSO packets) for VF devices.  Finally, L2 checksums
on non-UDP/non-TCP packets do not work reliably (the firmware trashes
the IPv4 fragment field), so IPv4 checksums for such packets are
calculated in software.

Most of the other changes in the non-VF-specific code are to expose
various variables and functions private to the PF driver so that they
can be used by the VF driver.

Note that a limited subset of cxgbetool functions are supported on VF
devices including register dumps, scheduler classes, and clearing of
statistics.  In addition, TOE is not supported on VF devices, only for
the PF interfaces.

Sponsored by:	Chelsio Communications
2016-10-03 23:49:05 +00:00
Glen Barber 371ab94ebe Remove GENERIC-NODEBUG kernel configurations, missed during
the stable/11 branch.

This is a direct commit to stable/11.

Approved by:	re (kib)
Sponsored by:	The FreeBSD Foundation
2016-07-14 08:20:17 +00:00
Glen Barber ed0c0d253f Turn off WITNESS, INVARIANTS, etc., in the powerpc GENERIC64
kernel configuration, missed after the stable/11 branch.

Approved by:	re (kib)
PR:		210974
Sponsored by:	The FreeBSD Foundation
2016-07-10 17:16:56 +00:00
Glen Barber 4a87fae024 - Remove debugging from GENERIC* kernel configurations
- Enable MALLOC_PRODUCTION
- Default dumpdev=NO
- Remove UPDATING entry regarding debugging features

Approved by:	re (implicit)
Sponsored by:	The FreeBSD Foundation
2016-07-08 00:22:14 +00:00
Nathan Whitehorn 96c85efb4b Replace a number of conflations of mp_ncpus and mp_maxid with either
mp_maxid or CPU_FOREACH() as appropriate. This fixes a number of places in
the kernel that assumed CPU IDs are dense in [0, mp_ncpus) and would try,
for example, to run tasks on CPUs that did not exist or to allocate too
few buffers on systems with sparse CPU IDs in which there are holes in the
range and mp_maxid > mp_ncpus. Such circumstances generally occur on
systems with SMT, but on which SMT is disabled. This patch restores system
operation at least on POWER8 systems configured in this way.

There are a number of other places in the kernel with potential problems
in these situations, but where sparse CPU IDs are not currently known
to occur, mostly in the ARM machine-dependent code. These will be fixed
in a follow-up commit after the stable/11 branch.

PR:		kern/210106
Reviewed by:	jhb
Approved by:	re (glebius)
2016-07-06 14:09:49 +00:00
Justin Hibbits 91ebf7d765 Remove SoC-specific integrations from dTSEC, to make it SoC agnostic.
This will allow a single kernel to run on all SoCs supported by the dTSEC driver.

Approved by:	re@(gjb)
2016-07-05 06:16:42 +00:00
Justin Hibbits 83d9b89cfb Unbreak the LBC driver, broken with the large RMan and 36-bit physical address changes.
Remove the use of fdt_data_to_res(), and instead construct the resources
manually.  Additionally, avoid the 32-bit size limitation of fdt_data_get(), by
building physical addresses manually from the lbc ranges property.

Approved by:	re@(gjb)
2016-07-05 06:14:23 +00:00
Nathan Whitehorn f8204502c2 Fix fat-fingering: #if AIM should have been #ifdef AIM to avoid failures on
Book-E kernels.

Approved by:	re (gjb)
Pointy hat to:	nwhitehorn
2016-06-29 16:34:56 +00:00
Nathan Whitehorn 0081393d79 Do not rely on firmware having pre-enabled the MMU in a reasonable way for
late boot: enable it explicitly after installing the page tables. If booting
from an FDT, also make sure to escape the firmware's MMU context early
before overwriting firmware page tables.

Approved by:	re (gjb)
2016-06-29 14:40:43 +00:00
Nathan Whitehorn d929c32b7f Enter 64-bit mode as early as possible in the 64-bit PowerPC boot sequence.
Most of the effect of setting MSR[SF] is that the CPU will stop ignoring
the high 32 bits of registers containing addresses in load/store
instructions. As such, the kernel was setting it only when it began to
need access to high memory. MSR[SF] also affects the operation of some
conditional instructions, however, and so setting it at late times could
subtly break code at very early times. This fixes use of the FDT mode in
loader, and FDT boot more generally, on 64-bit PowerPC systems.

Hardware provided by: IBM LTC
Approved by: re (kib)
2016-06-26 18:43:42 +00:00
Konstantin Belousov 5c2cf81845 Update comments for the MD functions managing contexts for new
threads, to make it less confusing and using modern kernel terms.

Rename the functions to reflect current use of the functions, instead
of the historic KSE conventions:
  cpu_set_fork_handler -> cpu_fork_kthread_handler (for kthreads)
  cpu_set_upcall -> cpu_copy_thread (for forks)
  cpu_set_upcall_kse -> cpu_set_upcall (for new threads creation)

Reviewed by:	jhb (previous version)
Sponsored by:	The FreeBSD Foundation
MFC after:	1 week
Approved by:	re (hrs)
Differential revision:	https://reviews.freebsd.org/D6731
2016-06-16 12:05:44 +00:00
Luiz Otavio O Souza 9d6672e13b Fix the deciKelvin to Celsius conversion in kernel.
After r285994, sysctl(8) was fixed to use 273.15 instead of 273.20 as 0C
reference and as result, the temperature read in sysctl(8) now exibits a
+0.1C difference.

This commit fix the kernel references to match the reference value used in
sysctl(8) after r285994.

Sponsored by:	Rubicon Communications (Netgate)
2016-05-22 13:58:32 +00:00
Dmitry Chagin 5437e1d103 Add macro to convert errno and use it when appropriate.
MFC after:	1 week
2016-05-22 12:46:34 +00:00
Oleksandr Tymoshenko 0cc376c134 Use OF_prop_free instead of direct call to free(9)
Reviewed by:	jhibbits
2016-05-14 20:06:38 +00:00
John Baldwin 82cb5c3b5b Native PCI-express HotPlug support.
PCI-express HotPlug support is implemented via bits in the slot
registers of the PCI-express capability of the downstream port along
with an interrupt that triggers when bits in the slot status register
change.

This is implemented for FreeBSD by adding HotPlug support to the
PCI-PCI bridge driver which attaches to the virtual PCI-PCI bridges
representing downstream ports on HotPlug slots. The PCI-PCI bridge
driver registers an interrupt handler to receive HotPlug events. It
also uses the slot registers to determine the current HotPlug state
and drive an internal HotPlug state machine. For simplicty of
implementation, the PCI-PCI bridge device detaches and deletes the
child PCI device when a card is removed from a slot and creates and
attaches a PCI child device when a card is inserted into the slot.

The PCI-PCI bridge driver provides a bus_child_present which claims
that child devices are present on HotPlug-capable slots only when a
card is inserted. Rather than requiring a timeout in the RC for
config accesses to not-present children, the pcib_read/write_config
methods fail all requests when a card is not present (or not yet
ready).

These changes include support for various optional HotPlug
capabilities such as a power controller, mechanical latch,
electro-mechanical interlock, indicators, and an attention button.
It also includes support for devices which require waiting for
command completion events before initiating a subsequent HotPlug
command. However, it has only been tested on ExpressCard systems
which support surprise removal and have none of these optional
capabilities.

PCI-express HotPlug support is conditional on the PCI_HP option
which is enabled by default on arm64, x86, and powerpc.

Reviewed by:	adrian, imp, vangyzen (older versions)
Relnotes:	yes
Differential Revision:	https://reviews.freebsd.org/D6136
2016-05-05 22:26:23 +00:00
Pedro F. Giffuni 20d7fee404 powerpc: Replace rounddown() from r298856 with roundup().
Both are equivalent but roundup is more logical for this case.
Catch another case while here.

Pointed out by:	jhibbits
2016-04-30 19:50:59 +00:00
Pedro F. Giffuni a1118f872e powerpc: Make use of our rounddown() macro when sys/param.h is available.
No functional change.
2016-04-30 18:56:35 +00:00
John Baldwin e131ba36e8 Move 'device pci' for the PCI bus driver to the MI NOTES file.
The PCI bus was already listed in all of the MD NOTES files and the
driver should at least compile on all platforms.
2016-04-29 23:53:55 +00:00
John Baldwin 9f7f2d8f89 Remove vestiges of IEEE-488/GPIB drivers removed in r276214. 2016-04-29 22:29:33 +00:00
John Baldwin e240255ffc Add a bus_null_rescan() method that always fails with an error.
Use this in place of kobj_error_method to disable BUS_RESCAN() on
PCI drivers that do not use the "standard" scanning algorithm.
2016-04-27 17:49:42 +00:00
John Baldwin 67e7d085ae Add a pcib_attach_child() method to manage adding the child "pci" device.
This allows the PCI-PCI bridge driver to save a reference to the child
device in its softc.

Note that this required moving the "pci" device creation out of
acpi_pcib_attach().  Instead, acpi_pcib_attach() is renamed to
acpi_pcib_fetch_prt() as it's sole action now is to fetch the PCI
interrupt routing table.

Differential Revision:	https://reviews.freebsd.org/D6021
2016-04-27 16:39:05 +00:00
John Baldwin 3d0338a092 Implement a PCI bus rescan method.
Rescanning a PCI bus uses the following steps:
- Fetch the current set of child devices and save it in the 'devlist'
  array.
- Allocate a parallel array 'unchanged' initalized with NULL pointers.
- Scan the bus checking each slot (and each function on slots with a
  multifunction device).
- If a valid function is found, look for a matching device in the 'devlist'
  array.  If a device is found, save the pointer in the 'unchanged' array.
  If a device is not found, add a new device.
- After the scan has finished, walk the 'devlist' array deleting any
  devices that do not have a matching pointer in the 'unchanged' array.
- Finally, fetch an updated set of child devices and explicitly attach any
  devices that are not present in the 'unchanged' array.

This builds on the previous changes to move subclass data management into
pci_alloc_devinfo(), pci_child_added(), and bus_child_deleted().

Subclasses of the PCI bus use custom rescan logic explicitly override the
rescan method to disable rescans.

Differential Revision:	https://reviews.freebsd.org/D6018
2016-04-27 16:31:12 +00:00
Pedro F. Giffuni 910c079886 sys/powerpc: make use of the howmany() macro when available.
We have a howmany() macro in the <sys/param.h> header that is
convenient to re-use as it makes things easier to read.
2016-04-26 14:44:49 +00:00
Justin Hibbits 01a40173f7 OR in the unsigned form of the MCAR lower register.
When ORing in a register_t to a wider integer (vm_paddr_t), it gets sign
extended, so high addresses overwrite the upper word with all 0xf.  Cast to the
unsigned form (u_register_t), to avoid this problem, and get correct addresses
printed.
2016-04-25 03:01:57 +00:00
Justin Hibbits da3aa7a13f Init static compiled-in env when no metadata present.
With this, a static environment can be compiled in via config(5).  This allows,
among other things, the use of a compiled-in debug console (hw.uart.dbgport) for
kgdb.
2016-04-25 00:55:51 +00:00