summaryrefslogtreecommitdiffstats
path: root/sys/mips
Commit message (Collapse)AuthorAgeFilesLines
* Add RT305x specific devices here.imp2012-10-231-0/+2
|
* Remove ZERO_COPY_SOCKETS from kernel configuration as the currentandre2012-10-221-1/+0
| | | | COW based approach is not safe and should not be used in production.
* remove duplicate semicolons where possible.eadler2012-10-221-1/+1
| | | | | Approved by: cperciva MFC after: 1 week
* Disconnect non-MPSAFE NTFS from the build in preparation for droppingattilio2012-10-171-1/+0
| | | | | | | | | | | | | | GIANT from VFS. This code is particulary broken and fragile and other in-kernel implementations around, found in other operating systems, don't really seem clean and solid enough to be imported at all. If someone wants to reconsider in-kernel NTFS implementation for inclusion again, a fair effort for completely fixing and cleaning it up is expected. In the while NTFS regular users can use FUSE interface and ntfs-3g port to work with their NTFS partitions. This is not targeted for MFC.
* Correct an error in pmap_pv_reclaim(). It can legitimately encounteralc2012-10-141-2/+2
| | | | wired mappings. If it does, it should just skip them.
* Add an unified macro to deny ability from the compiler to reorderattilio2012-10-091-1/+1
| | | | | | | | | | instruction loads/stores at its will. The macro __compiler_membar() is currently supported for both gcc and clang, but kernel compilation will fail otherwise. Reviewed by: bde, kib Discussed with: dim, theraven MFC after: 2 weeks
* Optimize the TLB invalidations performed by pmap_protect(). Use the newalc2012-10-071-20/+41
| | | | | | range-based invalidation function instead of performing per-page invalidations. Don't bother invalidating mappings that don't have PTE_D set, since they don't allow write access.
* In general pmap implementations do not set the wired attribute onalc2012-10-061-7/+5
| | | | | | the temporary mappings that are used to implement operations like pmap_zero_page(). There is no reason for the MIPS pmap to deviate from that practice.
* Correct two pessimizations in pmap_extract_and_hold(). Test the PTE foralc2012-10-061-11/+12
| | | | | | | having PTE_RO set instead of PTE_D. This avoids some unnecessary failures by pmap_extract_and_hold() that will have to be handled by a call to vm_fault_hold(). Testing the PTE for both being non-zero and having PTE_V set is redundant. The latter suffices.
* Eliminate a stale and a duplicated comment.alc2012-10-051-14/+0
|
* Reimplement pmap_qremove() using the new TLB invalidation function foralc2012-10-031-7/+11
| | | | efficiently invalidating address ranges.
* Introduce a new TLB invalidation function for efficiently invalidatingalc2012-10-023-9/+129
| | | | | | address ranges, and use this function in pmap_remove(). Tested by: jchandra
* Inherit USB mode from RootHUB port where the USB device is connected.hselasky2012-10-011-4/+0
| | | | | | | Only RootHUB ports can be dual mode. Disallow OTG ports on external HUBs. This simplifies some checks in the USB controller drivers. MFC after: 1 week
* Eliminate a stale comment. It describes another use case for the pmap inalc2012-09-281-7/+0
| | | | Mach that doesn't exist in FreeBSD.
* Prefer __containerof() above member2struct().ed2012-09-151-1/+1
| | | | | The first does proper checking of the argument types, while the latter does not.
* Simplify pmap_unmapdev(). Since kmem_free() eventually calls pmap_remove(),alc2012-09-101-4/+2
| | | | | | | | | | | | | pmap_unmapdev()'s own direct efforts to destroy the page table entries are redundant, so eliminate them. Don't set PTE_W on the page table entry in pmap_kenter{,_attr}() on MIPS. Setting PTE_W on MIPS is inconsistent with the implementation of this function on other architectures. Moreover, PTE_W should not be set, unless the pmap's wired mapping count is incremented, which pmap_kenter{,_attr}() doesn't do. MFC after: 10 days
* userret() already checks for td_locks when INVARIANTS is enabled, soattilio2012-09-081-1/+0
| | | | | | | there is no need to check if Giant is acquired after it. Reviewed by: kib MFC after: 1 week
* pmap_remove:alc2012-09-081-30/+18
| | | | | | | | | | | | | | | | | | | | | | | | | Avoid re-walking the page table from the root for every PTE examined. Tidy up some of pmap_remove()'s helper functions. pmap_enter: Set PV_TABLE_REF whenever the physical page being mapped is managed, not just when it is writeable. Only call pmap_update_page() when the old mapping was valid. If there was no prior valid mapping, then pmap_update_page() serves no useful purpose. However, it will interrupt every processor that has the pmap active. pmap_enter_quick_locked: Always set PTE_RO. pmap_emulate_modified: Don't set PV_TABLE_REF. Eliminate a nonsensical comment.
* Eliminate unnecessary NULL checks.alc2012-09-071-2/+2
|
* Dynamically allocate the S/G lists passed to callback routines rather thanjhb2012-09-061-25/+36
| | | | | | | | | allocating them on the stack of various bus_dmamap_load*() functions. The S/G lists are stored in the DMA tags. This matches the implementation on all other platforms. Discussed with: scottl, gibbs Tested by: stas (arm@)
* Don't hardcode paths to MFS_IMAGE in the kernel config. When they don'tbrooks2012-09-052-2/+0
| | | | | | exist they don't cause "make tinderbox" to fail. Reported by: jhb
* Rename {_,}pmap_unwire_pte_hold() to {_,}pmap_unwire_ptp() and update thealc2012-09-051-22/+18
| | | | | | | | | | comment describing them. Both the function names and the comment had grown stale. Quite some time has passed since these pmap implementations last used the page's hold count to track the number of valid mapping within a page table page. Also, returning TRUE from pmap_unwire_ptp() rather than _pmap_unwire_ptp() eliminates a few instructions from callers like pmap_enter_quick_locked() where pmap_unwire_ptp()'s return value is used directly by a conditional statement.
* Calculate the new PTE value in pmap_enter() before acquiring any locks.alc2012-09-021-24/+17
| | | | Move an assertion to the beginning of pmap_enter().
* Introduce a new software PTE flag that indicates whether the mapping isalc2012-09-013-41/+29
| | | | | | for a managed page. Tested by: jchandra
* The DIR-825 cal data is in an odd spot. I don't know why it's here.adrian2012-08-301-3/+6
| | | | | (This works on my board because I wrote new caldata into this spot; but this obviously won't work for stock DIR-825 units out there.)
* More attempts at space saving.adrian2012-08-291-2/+4
| | | | | | * add cam as a module to build - but build in scbus/da for now, as "cam" as a module includes all cam devices. Hardly space saving. * Don't build FFS snapshot support.
* Bring over a configuration for the Atheros AP91 reference board.adrian2012-08-292-0/+167
| | | | | | | | This has an AR7240 SoC with an AR9285 wireless NIC on-board. Since the kernel partition on the 4MiB flash is 960KiB, quite a bit is disabled to try and squeeze the build into that. Even lzma'ed, it's still quite large.
* * Don't compile in sysctl descriptionsadrian2012-08-281-1/+4
| | | | * random is fine as a module
* oops, make cfg read-write.adrian2012-08-281-1/+1
|
* This is an initial board configuration for the D-Link DIR-825 dual-bandadrian2012-08-282-0/+135
| | | | | | | | | | | | | | | | | | | | | | | 802.11n router. The flash layout defaults to a 1 MiB section for the kernel so I'm trying very hard to squeeze a minimialistic (LZMA compressde) kernel image into that. I've verified that it boots through to single user mode fine. Issues: * USB doesn't yet work as a module - I need to add something else to the USB AR71xx build before that will work. * There's no switch PHY support - but for now it quite happily behaves as a useful dumb switch out of the box. Phew. * Since a previous flash attempt trashed my radio configuration block, I haven't yet verified whether the wireless works correctly. I'll test that out shortly (read: once I re-calibrate the board somehow.) Thanks to ray@ and the zrouter project for doing some of the initial hard work in figuring out how to bring this board up.
* Convert AP93 to use the new AR724X_BASE configuration file.adrian2012-08-272-166/+24
|
* Slim down the default AR724X build.adrian2012-08-271-28/+30
| | | | The AR724X boards tend to come with minimal RAM/flash.
* Convert to using ulzma.adrian2012-08-271-5/+3
|
* Expose DE4 buttons and switches via a de4bsw device, implemented usingrwatson2012-08-261-1/+11
| | | | | | | | | altera_avgen(4). Fix white space nit that must have arisen during the merge from Perforce. Submitted by: brooks Sponsored by: DARPA, AFRL
* Add terasic_de4led, a led(4) driver for the on-board 8-element LED on therwatson2012-08-264-0/+12
| | | | | | | | | | Terasic DE-4 board. Allow LED configuration to be set using loader tunables, not just from userspace, and preconfigure LED 8 as a kernel heartbeat. For now, this is a Nexus-attached, BERI-only driver, but it could be used with other hard and soft cores on Altera FPGAs as well, in principle. Sponsored by: DARPA, AFRL
* Ensure that BAR(0) is set for the PCI slot before the ath(4) PCI registersadrian2012-08-261-0/+4
| | | | | | | | | | | | are written out. This allows EEPROM-less NICs on the AR7241 PCIe bus to be correctly initialised. Tested: * AP91 (AR7240+AR9285) - the existing board support didn't break; * AP99 (AR7241+AR9287) - this fixed the configuration of the AR9287 PCI.
* Create a skeleton AR724x SoC board configuration for use by AR724x devices.adrian2012-08-262-0/+191
|
* Add terasic_mtl(4), a device driver for the Terasic Multi-Touch LCD,rwatson2012-08-254-2/+21
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | used with Terasic's DE-4 and other similar FPGA boards. This display is 800x480 and includes a capacitive touch screen, multi-touch gesture recognition, etc. This device driver depends on a Cambridge- provided IP core that allows the MTL device to be hooked up to the Altera Avalon SoC bus, and also provides a VGA-like text frame buffer. Although it is compiled as a single device driver, it actually implements a number of different device nodes exporting various aspects of this multi-function device to userspace: - Simple memory-mapped driver for the MTL 24-bit pixel frame buffer. - Simple memory-mapped driver for the MTL control register set. - Simple memory-mapped driver for the MTL text frame buffer. - syscons attachment for the MTL text frame buffer. This driver attaches directly to Nexus as is common for SoC device drivers, and for the time being is considered BERI-specific, although in principle it might be used with other hard and soft cores on Altera FPGAs. Control registers, including touchscreen input, are simply memory mapped; in the future it would be desirable to hook up a more conventional device node that can stream events, support kqueue(2)/ poll(2)/select(2), etc. This is the first use of syscons on MIPS, as far as I can tell, and there are some loose ends, such as an inability to use the hardware cursor. More fundamentally, it appears that syscons(4) assumes that either a host is PC-like (i386, amd64) *or* it must be using a graphical frame buffer. While the MTL supports a graphical frame buffer, using the text frame buffer is preferable for console use. Fixing this issue in syscons(4) requires non-trivial changes, as the text frame buffer support assumes that direct memory access can be done to the text frame buffer without using bus accessor methods, which is not the case on MIPS. As a workaround for this, we instead double-buffer and pretend to be a graphical frame buffer exposing text accessor methods, leading to some quirks in syscons behaviour. Sponsored by: DARPA, AFRL
* Add isf(4), a driver for the Intel StrataFlash family of NOR flash parts.brooks2012-08-253-0/+12
| | | | | | | | | | | The driver attempts to support all documented parts, but has only been tested with the 512Mbit part on the Terasic DE4 FPGA board. It should be trivial to adapt the driver's attach routine to other embedded boards using with any parts in the family. Also import isfctl(8) which can be used to erase sections of the flash. Sponsored by: DARPA, AFRL
* Add MD syscons header file for MIPS.rwatson2012-08-251-0/+71
| | | | Sponsored by: DARPA, AFRL
* Don't include syscons in the config just yet. We haven't imported thebrooks2012-08-252-2/+2
| | | | touchscreen driver yet.
* Retire PV_TABLE_MOD. When we destroy or write protect a dirty mapping,alc2012-08-252-22/+12
| | | | | we call vm_page_dirty(). Maintaining the PV_TABLE_MOD flag, in addition, serves no useful purpose.
* Add reference kernel configurations for FreeBSD/beri in simulation, on therwatson2012-08-257-0/+281
| | | | | | Terasic DE-4, and Terasic tPad Altera-based boards. Sponsored by: DARPA, AFRL
* Add altera_jtag_uart(4), a device driver for Altera's JTAG UART soft core,rwatson2012-08-251-0/+3
| | | | | | | | | | | | | | | | | | | | | | which presents a UART-like interface over the Avalon bus that can be addressed over JTAG. This IP core proves extremely useful, allowing us to connect trivially to the FreeBSD console over JTAG for FPGA-embedded hard and soft cores. As interrupts are optionally configured for this soft core, we support both interrupt-driven and polled modes of operation, which must be selected using device.hints. UART instances appear in /dev as ttyu0, ttyu1, etc. However, it also contains a number of quirks, which make it difficult to tell when JTAG is connected, and some buffering issues. We work around these as best we can, using various heuristics. While the majority of this device driver is not only not BERI-specific, but also not MIPS-specific, for now add its defines in the BERI files list, as the console-level parts are aware of where the first JTAG UART is mapped on Avalon, and contain MIPS-specific address translation, to use before Newbus and device.hints are available. Sponsored by: DARPA, AFRL
* Add preliminary support for the SRI International / University of Cambridgerwatson2012-08-254-1/+179
| | | | | | | | Bluespec Extensible RISC Implementation (BERI) processor. BERI is a 64-bit MIPS ISA soft CPU core that can be synthesised to Altera and Xilinx FPGAs, and is being used for CPU and OS research at several institutions. Sponsored by: DARPA, AFRL
* Provide basic glue to allow syscons to be used on MIPS, modelledrwatson2012-08-251-0/+90
| | | | | | | | | on PowerPC support. This was clearly not something syscons was designed to do (very specific assumptions about the nature of VGA consoles on PCs), but fortunately others have long since blazed the way on making it work regardless of that. Sponsored by: DARPA, AFRL
* On MIPS, when printing page fault information for an unexpected exceptionrwatson2012-08-251-2/+4
| | | | | | | type, explicitly print out "unknown" rather than the empty string, and include the exception type number for ease of debugging. Sponsored by: DARPA, AFRL
* Remove duplicated GEOM_PART_* options.ray2012-08-238-16/+0
| | | | | PR: 170931 Approved by: adrian
* Add correct range parameter in XLP DTSjchandra2012-08-211-1/+1
| | | | | | | | r239274 added support for ranges. Update XLP DTS to provide the correct range parameter for the XLP SoC bus. Also fix bus_space_map method for XLP bus space. Submitted by: Sreekanth M. <sreekanth.molagavalli@broadcom.com>
* Define and exclude DRAM regions used by hardware/bootloder on XLPjchandra2012-08-201-65/+73
| | | | | Fix xlp_mem_init() - remove the ad-hoc code for excluding memory regions and use an array of regions.
OpenPOWER on IntegriCloud