2123 Commits

Author SHA1 Message Date
Ian Lepore
123fe3962d Remove the last dregs of trapframe_t. It turns out only arm was using
this type, so remove it to make arm code more consistant with other
platforms.  Thanks to bde@ for pointing out only arm used trapframe_t.
2013-10-27 17:09:23 +00:00
Ian Lepore
2d1bca2d2f Eliminate a compiler warning about extraneous parens. 2013-10-27 03:29:38 +00:00
Ian Lepore
ae7accbc18 Oops, one more instance of ARM_NOCACHE_KVA_SIZE was hiding under the couch.
This should have been cleaned up along with r257201.
2013-10-27 03:24:46 +00:00
Ian Lepore
99af02e3b6 Retire arm_remap_nocache() and the data and constants associated with it.
The only remaining user was the code that allocates bounce pages for armv4
busdma.  It's not clear why bounce pages would need uncached memory, but
if that ever changes, kmem_alloc_attr() would be the way to get it.
2013-10-27 03:13:26 +00:00
Ian Lepore
6489412064 Remove #include <machine/frame.h> from all the arm code that doesn't
really need it.  That would be almost everywhere it was included.  Add
it in a couple files that really do need it and were previously getting
it by accident via another header.
2013-10-27 01:34:10 +00:00
Ian Lepore
69d75558a7 Remove all #include <machine/pmap.h> from arm code. It's already
included by vm/pmap.h, which is a prerequisite for arm/machine/pmap.h
so there's no reason to ever include it directly.

Thanks to alc@ for pointing this out.
2013-10-27 00:51:46 +00:00
Ian Lepore
ec4081c10a Maximize available kva space by doing static device mapping from the top
of the address space downwards, and then returning the lowest mapped
device address from initarm_lastaddr().  This adds over 500MB of kva
space compared to the old way of hardcoding the end address as 0xE0000000.

Also, pre-map most of the SoC's common memory-mapped devices using 1MB
section mappings so that all device access uses just a few TLB entries.
Graphics devices aren't mapped this way yet, but probably should be.

To provide this new functionality without pasting identical code into
multiple imxNN_machdep.c files, rework the imx machdep code so that
things common to the whole family of SoCs are in a new imx_machdep.c file.
The rewritten imxNN_machdep.c files contain just things specific to an
individual SoC.
2013-10-26 23:13:20 +00:00
Andrew Turner
0713c174ed Fix an itt instruction. We need to execute both the mov and b instructions
when building for Thumb.
2013-10-26 19:09:56 +00:00
Zbigniew Bodek
ad9bd4683a Enable SATA interface on Armada XP
- Add appropriate entry to DTS
- Allow for MV78460 SATA probe and configuration

Tested by:	kevlo
Approved by:	cognet (mentor)
2013-10-26 17:29:50 +00:00
Luiz Otavio O Souza
09b2544b71 Remove all the instances of '#undef DEBUG' from kernel.
Suggested by:	rpaulo
Approved by:	adrian (mentor)
2013-10-25 18:38:44 +00:00
Luiz Otavio O Souza
07897970fb Add the Raspberry Pi SPI controller driver.
Reviewed by:	rpaulo
Approved by:	adrian (mentor)
2013-10-24 16:27:33 +00:00
Nathan Whitehorn
e3bb91c23f Typo while reviewing diffs. Sorry for the breakage! 2013-10-23 19:56:13 +00:00
Nathan Whitehorn
755c959170 Remove OF_instance_to_package() hack for FDT and replace with use of the
generic OF_xref_phandle() API universally. Also replace some related
explicit uses of fdt32_to_cpu() with OF_getencprop() calls.
2013-10-23 14:04:09 +00:00
Luiz Otavio O Souza
be9ddf4313 Add the Raspberry Pi BSC (I2C compliant) controller driver.
Reviewed by:	rpaulo
Approved by:	adrian (mentor)
2013-10-23 12:29:39 +00:00
Ganbold Tsagaankhuu
79a210c1b3 Radxa Rock board (by radxa.com) kernel config file.
More info on the Wiki page:
https://wiki.freebsd.org/FreeBSD/arm/Radxa%20Rock

Reviewed by: ray@
2013-10-23 00:43:22 +00:00
Ganbold Tsagaankhuu
750e709d1f Import basic support for Rockchip RK3188 SoC.
Reviewed by: ray@
2013-10-23 00:39:43 +00:00
Olivier Houchard
63e950fe80 - Use bus_dmamap_unload(), it is not optional.
- The new allocator won't return coherent memory for any size > PAGE_SIZE,
so don't assume we have coherent memory, and explicitely use
bus_dmamap_sync().
2013-10-22 21:51:07 +00:00
Olivier Houchard
6958ef4ef5 Typo fix. 2013-10-22 21:49:58 +00:00
Olivier Houchard
97e7a34397 Try to make sure the frame is indeed in the kernel memory. 2013-10-22 21:47:34 +00:00
Oleksandr Tymoshenko
5ad43f4b9a Make watchdog function conform watchdog(9):
Set error to 0 when watchdog is armed and disable it when timeout
is too large to be set.
2013-10-22 05:22:46 +00:00
Oleksandr Tymoshenko
00b1705bdc - Implement watchdog function and register it with watchdog list 2013-10-22 05:19:42 +00:00
Ganbold Tsagaankhuu
8f011d4075 Move and rename dwc otg driver to more
generic one as it appears to work
for rk3188 SoC based board too.

No objections from: hselasky@
Reviewed by: ray@
2013-10-21 09:34:04 +00:00
Ian Lepore
7a2ed7a8f4 Add configuration for the Freescale i.MX53 Quick Start Board. 2013-10-20 21:21:07 +00:00
Ian Lepore
dc82313758 Add a driver for the Freescale Fast Ethernet Controller found on various
Freescale SoCs including the i.MX series.  This also works for the newer
SoCs with the ENET gigabit controller, but doesn't use any of the new
hardware features other than enabling gigabit speed.
2013-10-20 21:07:38 +00:00
Ian Lepore
62e8bfb82a Switch to using the standard uart console driver instead of the special
driver for early boot debugging.
2013-10-20 21:03:15 +00:00
Ian Lepore
ac640932f4 Clock divisors 0-3 correspond to dividing by 1-4, so add 1 before dividing. 2013-10-19 21:33:06 +00:00
Randall Stewart
03466868c3 Corrects the Kirkwood dreamplug to use
the right register for power managment. It
was incorrectly using the clock register
which also caused the status to be the
opposite of what it is supposed to be.
1 - its disabled
0 - its enabled

Per kirkwood spec FSS_88F6180_9x_6281_OpenSource.pdf
2013-10-19 06:47:02 +00:00
Olivier Houchard
f8c98b1227 There's no need to guard pmap_extract(), it won't be called until well after
the VM has been properly initialized.

Spotted out by:	alc
2013-10-18 22:47:10 +00:00
Olivier Houchard
64238eb48e KERNBASE is unsigned, so we'd better use hs instead of ge.
Pointy hat to:	cognet
Suggested by:	ian
2013-10-18 17:21:47 +00:00
Olivier Houchard
4798c89190 Increase the KVA available for xscale CPUs. 2013-10-17 22:12:32 +00:00
Olivier Houchard
f4b13928b8 Spell cpu_l2cache_wb_range correctly. 2013-10-17 21:38:14 +00:00
Olivier Houchard
f81c09049a - Switch to use WBWA mappings for page tables on armv6, this is needed for SMP.
- Fix PTE_SYNC() for PIPT L2 caches, using the virtual address wasn't so useful.
- Use PTE_SYNC() for >= armv6
2013-10-17 21:06:19 +00:00
Olivier Houchard
e49341e87c Make casuword() atomic for armv6 2013-10-17 17:11:15 +00:00
Olivier Houchard
a1739e7e15 If we avoid to use the page at addr 0, we should adjust the size to reflect it. 2013-10-17 09:57:09 +00:00
Ian Lepore
78a60b7f95 Invalidate the entire L2 cache before enabling it. Say whether it
has been enabled or disabled.
2013-10-16 19:06:44 +00:00
Ian Lepore
b3f2c51066 Add cases for the combinations of busdma sync op flags that we handle
correctly by doing nothing, then add a panic for the default case, because
that implies that some driver asked for a sync (probably incorrectly) and
nothing was done.
2013-10-16 16:35:25 +00:00
Ian Lepore
8160dc4983 When calculating the number of bounce pages needed, round the maxsize
up to a multiple of PAGE_SIZE, and add one page because there can always
be one more boundary crossing than the number of pages in the transfer.
2013-10-16 16:32:35 +00:00
Ruslan Bukin
03a1c6d1f9 Add CPU ID for ARM Cortex A5.
Approved by:	cognet (mentor)
2013-10-16 15:20:27 +00:00
Ian Lepore
3c35b4deb3 Fix a register name typo. The effect was that CPU_CONTROL_AFLT_ENABLE
wasn't being set, but it was almost assuredly already turned on anyway
by the bootloader.
2013-10-16 14:24:22 +00:00
Kevin Lo
1fa042f0ad Remove unsigned comparison < 0
Found by:	LLVM
Reviewed by:	zbb
2013-10-15 09:29:36 +00:00
Dimitry Andric
f63ada9b97 In sys/arm/versatile/versatile_pci.c, add a default handler, to fix a
gcc warning about uninitialized use of a variable.

Approved by:	re (gjb)
2013-10-10 19:40:01 +00:00
Dimitry Andric
98c28062e0 Remove redundant redeclarations of uart_s3c2410_class in
sys/arm/s3c2xx0/uart_bus_s3c2410.c and uart_cpu_s3c2410.c, to silence
two gcc warnings.

Approved by:	re (gjb)
X-MFC-With:	r252394
2013-10-09 17:05:02 +00:00
Ruslan Bukin
6b7adc0cbd - Enable unmapped buffers on Exynos5 again, because
board now able to see all the 2GB ram it has
- Also unbreak gcc build

Approved by:	cognet (mentor)
Approved by:	re (marius)
2013-10-01 12:01:20 +00:00
Luiz Otavio O Souza
c58e1e485c Fix DELAY() on RPi, the wrong math was making it take twice it should.
Reported by:	Alexander <sht@ropnet.ru>
Approved by:	adrian (mentor)
Approved by:	re (gjb)
2013-09-23 14:00:18 +00:00
Gleb Smirnoff
255c1caae3 - Create kern.ipc.sendfile namespace, and put the new "readhead" OID
there as "kern.ipc.sendfile.readahead".
- Push all nsfbuf related tunables into MD code. Don't move them
  to new namespace in favor of POLA.

Reviewed by:	scottl
Approved by:	re (gjb)
2013-09-22 13:36:52 +00:00
Zbigniew Bodek
e4b318d69c Fix GCC build for all ARMs. Revert bug introduced in r255613.
Previous change applied in r255613 fixed build for ARMv6 but
broke it for previous architecture revisions. This commit
eventually fixes GCC build for all ARM revisions.

Approved by:	cognet (mentor)
Approved by:	re (kib)
2013-09-20 20:44:32 +00:00
Alan Cox
deb179bb4c The pmap function pmap_clear_reference() is no longer used. Remove it.
pmap_clear_reference() has had exactly one caller in the kernel for
several years, more precisely, since FreeBSD 8.  Now, that call no
longer exists.

Approved by:	re (kib)
Sponsored by:	EMC / Isilon Storage Division
2013-09-20 04:30:18 +00:00
Pawel Jakub Dawidek
3fded357af Fix panic in ktrcapfail() when no capability rights are passed.
While here, correct all consumers to pass NULL instead of 0 as we pass
capability rights as pointers now, not uint64_t.

Reported by:	Daniel Peyrolon
Tested by:	Daniel Peyrolon
Approved by:	re (marius)
2013-09-18 19:26:08 +00:00
Zbigniew Bodek
e478f35505 Fix GCC build error when building for ARMv6
Apply theravens's idea to move __strong_reference
macros into the proper ifdef section.

Approved by:	cognet (mentor)
Approved by:	re
2013-09-16 10:46:58 +00:00
Zbigniew Bodek
760488b93c Implement pmap_advise() for ARMv6/v7 pmap module
Apply the given advice to the specified range of addresses within the
given pmap. Depending on the advice, clear the referenced and/or
modified flags in each mapping. Superpage within the given range will
be demoted or destroyed.

Reviewed by:	alc
Approved by:	cognet (mentor)
Approved by:	re
2013-09-16 10:39:35 +00:00