IFC @ r235298
IFC @ r235472
Rewrite FDT bus ranges calculation:

- bus ranges from DTS files are correctly read and used for translation
  of device register addresses. this includes empty "ranges;" property
  as well as encoded ranges tuples.
- simplebuses can be freely nested (except for system console UART which
  should be placed in toplevel simplebus)
- base addresses in resources (rman) are now physical. translation or
  mapping to virtual address is done via bus_space_map() and can be
  accessed via rman_get_bushandle().
- ti_mmchs driver is corrected to use physical registers base address
  from rman instead of using vtophys().
Refactored interrupt routing mechanism. Uses NEWBUS interface
pic_if.m similar to powerpc implementation. It's organized in
hierarchy where top-level interrupt controller is ARM core
itself serving one IRQ. SoC interrupt controllers can bind
handlers to this IRQ and provide more multiplexed IRQs to
children.

Example implementation includes LPC3250 interrupt controller
(lpc_intc.c).

It's not bug-free, but tested on LPC3250 (arm/lpc) port.
Bring arm ports using old interrupt routing code back to work.
Fix unmasking IRQ in legacy interrupt routing code.
Replace arm/mv port with one got from HEAD, as on armv6 branch
Marvell targets other than armadaxp (for example DB-88F5XXX, 6XXX,
Sheevaplug, etc) are defunct.
mv localbus driver, missing on previous commit.
First stage of machdep refactoring, separate arm_mmu_init() and
arm_bootstrap_pagetables() routines. These will be eventually moved
up to SoC-independent machdep.
Add early printf (eprintf) function and early UART support for debugging
purposes. When enabled using ARM_EARLY_DEBUG kernel option, eprintf() call
is available from locore stage allowing to print debug messages before
pmap and console is set up.
Add shorthand function for finding FDT node of UART selected
for console (in "chosen" section).
Add missing file to previous commit.
ARM machdep refactoring: rewritten MMU initialization code (which creates
initial pagetables before bootstrapping pmap, set stacks, msgbuf, etc)
to be more versatile and easier to understand. Moved such routine into
arm/machdep.c file. Moved some frequently-used routines from individual
ports machdep files into arm/machdep.c file. Changed pmap_devmap entries
allocation: now virtual address of device mapping is allocated dynamically.
This change will free port developers from managing virtual address space
and make mappings more compact (only needed devices will be mapped
without gaps between them). Also, pmap_devmap entries has a name: if
pmap_devmap entry name will match device alias in .dts file, physical
address and size of mapping will be automatically aquired from FDT.
Update arm/lpc port to use new machdep routines, simplifying
lpc_machdep.c file. Some fixes are also done to avoid access
to unmapped register space in lpc_spi.
Integrate Andrew's Turner proc0 patch.
Convert ARM GIC driver to INTRNG API.
TI port refactoring: switched to INTRNG and mmu_init()
in ti_machdep.c. There's some problem with PL310 L2
cache controller which hangs up the system - this will
be investigated.
Make arm_process_devmap() able to map FDT device nodes which
are placed directly on root.
* Apply pmap_devmap enhancements to ARMv6 pmap.
* Fix setting sc->gic_dev in GIC driver
* Apply execute bit to vectors page (relevant on ARMv6)
Make PANDABOARD use early_uart.