2305 Commits

Author SHA1 Message Date
br
c221e72676 Add support for Colibri VF50 Evaluation Board.
Colibri VF50 is a SODIMM200 Vybrid Family core module
and development board produced by Toradex AG.

Sponsored by:	Machdep, Inc.
2014-02-02 19:35:10 +00:00
ian
71d90c04a8 Follow r261352 by updating all drivers which are children of simplebus
to check the status property in their probe routines.

Simplebus used to only instantiate its children whose status="okay"
but that was improper behavior, fixed in r261352.  Now that it doesn't
check anymore and probes all its children; the children all have to
do the check because really only the children know how to properly
interpret their status property strings.

Right now all existing drivers only understand "okay" versus something-
that's-not-okay, so they all use the new ofw_bus_status_okay() helper.
2014-02-02 19:17:28 +00:00
br
34475ded06 Split kernel configuration to chip common and board specific parts. 2014-02-02 19:13:02 +00:00
br
837d437b96 o Expand device tree information
o Export iomuxc (pins) configuration to DTS
o Allow devices to assign clocks in DTS
2014-02-02 17:48:06 +00:00
nwhitehorn
dcdec27b4c Fix one remnant endian flaw here. The back-and-forth endian conversions are
confusing.
2014-02-02 16:42:26 +00:00
nwhitehorn
2c9874a612 Fix typo. Sorry for breakage! 2014-02-02 05:21:12 +00:00
ian
734d68c624 Update all arm code that manipulates the PSR registers to use modern syntax.
It turns out the version of gas we're using interprets the old '_all' mask
as 'fc' instead of 'fsxc'.  That is, "all" doesn't really mean "all".

This was the cause of the "wrong-endian register restore" bug that's
been causing problems with some cortex-a9 chips.  The 'endian' bit in the
spsr register would never get changed (it falls into the 'x' mask group)
and the first return-from-exception would fail if the chip had powered on
with garbage in the spsr register that included the big-endian bit.  It's
unknown why this affected only certain cortex-a9 chips.
2014-02-02 00:48:15 +00:00
imp
aed0493328 Fix AT91SAM9260 to work with PA rather than VA device addresses. 2014-02-01 17:53:35 +00:00
nwhitehorn
fe5ea2b020 Open Firmware interrupt specifiers can consist of arbitrary-length byte
strings and include arbitrary information (IRQ line/domain/sense). When the
ofw_bus_map_intr() API was introduced, it assumed that, as on most systems,
these were either 1 cell, containing an interrupt line, or 2, containing
a line number plus a sense code. It turns out a non-negligible number of
ARM systems use 3 (or even 4!) cells for interrupts, so make this more
general.
2014-02-01 17:17:35 +00:00
imp
f2e63e528a Move these for diff reduction against FDT work. 2014-01-31 23:38:05 +00:00
imp
f7d1827f21 Minor cleanup of comments. 2014-01-31 23:28:18 +00:00
imp
8b4ece0dd5 Fix silly typo... 2014-01-31 23:18:30 +00:00
imp
9190257f1a Switch to using PAs rather than VAs for the addresses we map for
devices. This is a nop, except for what's reported by atmelbus for the
resources.

It would be nice if we could dymanically allocated these things, but
the pmap_mapdev panics if we don't keep the static mappings, so we
still need to play the carefully allocate VA space between all
supported SoC game.

User's with their own devices may need to make adjustments.
2014-01-31 15:38:05 +00:00
imp
f04b60e2d3 When mapping an address, the bsh needs the same offset we do for other
things.
2014-01-31 01:18:34 +00:00
imp
9cecf9778c Fix the name of the dts file for the HL201... 2014-01-30 03:14:36 +00:00
imp
5b137394de Fix clang warning. 2014-01-28 22:07:16 +00:00
andrew
ea49382feb Remove STARTUP_PAGETABLE_ADDR from the ARM configs and replace it with
memory at the end of the kernel.

This helps reduce the SoC and board specific configuration required.

Reviewed by:	bsdimp
Tested by:	jmg (armeb), br
2014-01-28 09:12:04 +00:00
imp
3230712bf1 Remove extra parens to silence clang warning. 2014-01-27 19:31:18 +00:00
jmg
a9f1fd52d4 fix args to mtx_init
Note that this commit hasn't been compile tested because these files
are not hooked up to the build...

PR:		186129
Submitted by:	Takanori Sawada
Approved by:	rpaulo
2014-01-27 17:31:21 +00:00
imp
741e52a6b9 Before resetting the USART, delay a bit to allow the transmitter to
finish the current character to drain to avoid glitching. Also,
simplify the code a smidge.
2014-01-26 04:57:58 +00:00
imp
e6881f055e Make early printf output nicer by inserting a carriage return before
any linefeeds that are output.
2014-01-25 21:57:45 +00:00
imp
81ef37301f Bus space handles need to be the VA of the requested resource, not the
rounded page VA. Correct so the DBGU device can be mapped for FDT
console since it isn't on a page boundary.
2014-01-25 21:52:19 +00:00
andrew
3d46c92bcd Fix gcc with -Wstrict-prototypes by telling it bi_emac takes no parameters. 2014-01-25 19:36:27 +00:00
andrew
2370ce3666 Correct the alignment of sp through functions that use UNWINDSVCFRAME. We
were incorrectly adding the trap frame padding to the stack pointer after
reading it's value and unaligning it.
2014-01-24 20:51:56 +00:00
imp
e7a151ddfb Remove obsolete option 2014-01-24 17:00:27 +00:00
imp
b401580176 Fix comment to match option 2014-01-24 16:58:50 +00:00
imp
0599dc0cfc Fix comment to match option 2014-01-24 16:58:21 +00:00
imp
a69971a472 Fix comment to match option 2014-01-24 16:57:42 +00:00
imp
bebd1eced1 Add NAND support
Fix comment
This board has 4 wire support
2014-01-24 16:56:27 +00:00
imp
e97be4e538 Remove redundant declaration for uart devclass.
Commint some unrelated, but harmless, FDT ifdefs.
2014-01-24 16:50:15 +00:00
imp
daf9d3fe30 Clean up HL201 config (for the hot-e 201 and 101 models from thinlinx).
Make comments match parameters
Add options for early printf so we get regression build testing on it.
Add preview of options for FDT support coming soon (I hope)
2014-01-22 22:01:29 +00:00
imp
726f70df31 Implement support for early printf. You need to define SOCDEV_{PA,VA}
as described in the comments for the eputc function in your config file.
2014-01-22 21:49:20 +00:00
imp
1fd4c56f78 Add support for mapping a small range of the SoC devices for debugging
purposes early in boot.
2014-01-22 21:23:58 +00:00
imp
728c648dce We need nand now that the boards reference it. 2014-01-20 19:57:30 +00:00
imp
da5df765d5 Introduce grab and ungrab upcalls. When the kernel desires to grab the
console, it calls the grab functions. These functions should turn off
the RX interrupts, and any others that interfere. This makes mountroot
prompt work again. If there's more generalized need other than
prompting, many of these routines should be expanded to do those new
things.

Reviewed by:	bde (with reservations)
2014-01-19 19:36:11 +00:00
imp
56c95d38f3 Add nand device and NANDFS into the mix for those boards that have
support for it at the moment.
2014-01-19 18:09:00 +00:00
imp
d549191c04 Connect NAND for the SAM9260EK eval board, as well as the HotE HL-201.
# expect more refinement as do more boards.
2014-01-19 17:59:34 +00:00
imp
ba79e5aada Add standard memory controller helper functions. 2014-01-19 17:45:13 +00:00
ray
0d4d14c84b Fix build after FDT changes.
Sponsored by:	The FreeBSD Foundation
2014-01-16 14:48:23 +00:00
imp
868757e5ac Add data so we can convert a PIO unit number into a base address. 2014-01-15 19:53:36 +00:00
imp
74fda9ff76 Provide a simplified way to specify GPIO pins for the Atmel port. 2014-01-15 19:49:12 +00:00
ian
0e1ecc8c57 Add a prototype for the new arm_devmap_print_table(). This should have
been part of r260490.
2014-01-09 20:57:19 +00:00
ian
cf9be8affd Add a function to print the contents of the static device mapping table,
and invoke it for bootverbose logging, and also from a new DDB command,
"show devmap".  Also tweak the format string for the bootverbose output
of physical memory chunks to get the leading zeros in the hex values.
2014-01-09 18:51:57 +00:00
ian
bb4969cec5 Add option USB_HOST_ALIGN to configs that contain 'device usb'. Setting
this to the cache line size is required to avoid data corruption on armv4
and armv5, and improves performance on armv6, in both cases by avoiding
partial cacheline flushes for USB IO.
2014-01-08 03:42:09 +00:00
ian
8424dea313 Add option USB_HOST_ALIGN to configs that contain 'device usb'. Setting
this to the cache line size is required to avoid data corruption on armv4
and armv5, and improves performance on armv6, in both cases by avoiding
partial cacheline flushes for USB IO.

All these configs already exist in 10-stable.  A few that don't (and
thus can't be MFC'd yet) will be committed separately.
2014-01-08 03:40:18 +00:00
andreast
370e258309 Fix arm build.
Reviewed by:	ian, zbb
2014-01-06 17:16:27 +00:00
ian
5d95c195b3 Switch to using arm_devmap_add_entry() to set up static device mapping.
This eliminates the hard-coded max kva and roughly doubles the available
kva space.
2014-01-06 16:57:22 +00:00
ian
5ffa5b0b13 Don't try to find a static mapping before calling pmap_mapdev(), that logic
is now part of pmap_mapdev() and doesn't need to be duplicated here.
Likewise for unmapping.
2014-01-06 16:33:16 +00:00
ian
51e107617a Allow 'no static device mappings' to potentially work. It's not clear that
every arm system must have some static mappings to work correctly (although
currently they all do), so remove some panic() calls (which would never
been seen anyway, because they would happen before a console is available).
2014-01-06 16:07:27 +00:00
ian
c6f3eb52c2 Switch to using arm_devmap_add_entry() to set up static device mapping.
This eliminates the hard-coded max kva and roughly doubles the available
kva space.
2014-01-06 15:48:16 +00:00