summaryrefslogtreecommitdiffstats
path: root/sys/mips
Commit message (Collapse)AuthorAgeFilesLines
* pmap_enter() *must* set PG_WRITEABLE on the given page if it creates aalc2009-05-231-0/+1
| | | | | mapping that permits write access. Otherwise, pmap_remove_write() will not remove write access from any of the page's mappings.
* Give pmap_enter()'s third parameter the same name that it has on amd64 andalc2009-05-231-2/+2
| | | | | i386. Otherwise, my next to last commit (r192628) to this file doesn't actually compile.
* When a page is mapped for write access on a read fault, the PTE should bealc2009-05-231-1/+2
| | | | | configured to trap on a write access unless *all* of the page's dirty bits are set.
* Preset the modified bit in the PTE when pmap_enter() is called during aalc2009-05-231-0/+2
| | | | | | | | | | | | write fault or while wiring a mapping that must support write access. In general, this change should reduce the number of traps that occur for the purpose of setting the modified bit. More specifically, this change should prevent traps while holding locks in a sysctl handler. See kern/kern_sysctl.c revisions 1.168 and 1.195 (svn r192160) for further details. Tested by: gonzo
* Add cpu_flush_dcache() for use after non-DMA based I/O so that amarcel2009-05-181-0/+10
| | | | | | | | | | | | | | | | | | | | | possible future I-cache coherency operation can succeed. On ARM for example the L1 cache can be (is) virtually mapped, which means that any I/O that uses temporary mappings will not see the I-cache made coherent. On ia64 a similar behaviour has been observed. By flushing the D-cache, execution of binaries backed by md(4) and/or NFS work reliably. For Book-E (powerpc), execution over NFS exhibits SIGILL once in a while as well, though cpu_flush_dcache() hasn't been implemented yet. Doing an explicit D-cache flush as part of the non-DMA based I/O read operation eliminates the need to do it as part of the I-cache coherency operation itself and as such avoids pessimizing the DMA-based I/O read operations for which D-cache are already flushed/invalidated. It also allows future optimizations whereby the bcopy() followed by the D-cache flush can be integrated in a single operation, which could be implemented using on-chips DMA engines, by-passing the D-cache altogether.
* - Fix spelling.lulf2009-05-161-1/+1
|
* - Use "device\t" and "options \t" for consistency.kuriyama2009-05-105-91/+91
|
* A variety of changes:alc2009-05-022-59/+18
| | | | | | | | | | | | | | | | | | | Reimplement "kernel_pmap" in the standard way. Eliminate unused variables. (These are mostly variables that were discarded by the machine-independent layer after FreeBSD 4.x.) Properly handle a vm_page_alloc() failure in pmap_init(). Eliminate dead or legacy (FreeBSD 4.x) code. Eliminate unnecessary page queues locking. Eliminate some excess white space. Correct the synchronization of pmap_page_exists_quick(). Tested by: gonzo
* Don't conditionally define CACHE_LINE_SHIFT, as we anticipate sizingrwatson2009-04-201-2/+0
| | | | | | | | | | | | a fair number of static data structures, making this an unlikely option to try to change without also changing source code. [1] Change default cache line size on ia64, sparc64, and sun4v to 128 bytes, as this was what rtld-elf was already using on those platforms. [2] Suggested by: bde [1], jhb [2] MFC after: 2 weeks
* MFamd64/i386alc2009-04-201-39/+70
| | | | | | | | | | | | | | | | | | | | | | | | | Introduce pmap_try_insert_pv_entry(), a function that conditionally creates a pv entry if the number of entries is below the high water mark for pv entries. Introduce pmap_enter_quick_locked() and use it to reimplement pmap_enter_object(). The old implementation was broken. For example, it could block while holding a mutex lock. Change pmap_enter_quick_locked() to fail rather than wait if it is unable to allocate a page table page. This prevents a race between pmap_enter_object() and the page daemon. Specifically, an inactive page that is a successor to the page that was given to pmap_enter_quick_locked() might become a cache page while pmap_enter_quick_locked() waits and later pmap_enter_object() maps the cache page violating the invariant that cache pages are never mapped. Similarly, change pmap_enter_quick_locked() to call pmap_try_insert_pv_entry() rather than pmap_insert_entry(). Generally speaking, pmap_enter_quick_locked() is used to create speculative mappings. So, it should not try hard to allocate memory if free memory is scarce. Tested by: gonzo
* Add description and cautionary note regarding CACHE_LINE_SIZE.rwatson2009-04-191-0/+4
| | | | | MFC after: 2 weeks Suggested by: alc
* For each architecture, define CACHE_LINE_SHIFT and a derivedrwatson2009-04-191-0/+5
| | | | | | | | | | | | | CACHE_LINE_SIZE constant. These constants are intended to over-estimate the cache line size, and be used at compile-time when a run-time tuning alternative isn't appropriate or available. Defaults for all architectures are 64 bytes, except powerpc where it is 128 bytes (used on G5 systems). MFC after: 2 weeks Discussed on: arch@
* Fix KBI breakage by r190520 which affects older linux.ko binaries:dchagin2009-04-052-3/+3
| | | | | | | | | | | | | | 1) Move the new field (brand_note) to the end of the Brandinfo structure. 2) Add a new flag BI_BRAND_NOTE that indicates that the brand_note pointer is valid. 3) Use the brand_note field if the flag BI_BRAND_NOTE is set and as old modules won't have the flag set, so the new field brand_note would be ignored. Suggested by: jhb Reviewed by: jhb Approved by: kib (mentor) MFC after: 6 days
* Mark the declaration of bus_space_map 'static' as the implementation is.bz2009-03-281-2/+3
| | | | | Follow one of the two most common indent schemes in this file. This unbreaks a few mips kernel builds.
* Add AT_EXECPATH ELF auxinfo entry type. The value's a_ptr is a pointerkib2009-03-171-4/+2
| | | | | | | | | | to the full path of the image that is being executed. Increase AT_COUNT. Remove no longer true comment about types used in Linux ELF binaries, listed types contain FreeBSD-specific entries. Reviewed by: kan
* Implement new way of branding ELF binaries by looking to adchagin2009-03-132-0/+3
| | | | | | | | | | | | ".note.ABI-tag" section. The search order of a brand is changed, now first of all the ".note.ABI-tag" is looked through. Move code which fetch osreldate for ELF binary to check_note() handler. PR: 118473 Approved by: kib (mentor)
* make loop clearer that it isn't a mistake...imp2009-03-031-1/+2
|
* It appears that none of the contents of this file are necessary, soimp2009-02-151-101/+1
| | | | replace the amd64-ish version with a blank version.
* Remove stray __P()imp2009-02-151-1/+1
|
* Rewrite get_pv_entry() to match expectations of the rest of theimp2009-02-121-11/+78
| | | | | | | | | | kernel. Rather than just kick off the page daemon, we actively retire more mappings. The inner loop now looks a lot like the inner loop of pmap_remove_all. Also, get_pv_entry can't return NULL now, so remove panic if it did. Reviewed by: alc@
* pmap_kenrel() was recently deleted from pmap.h. It was still usedimp2009-02-121-2/+2
| | | | | here, but inconsistently. Change all instances of it to kernel_pmap to match rest of code.
* Eliminate an unused definition.alc2009-02-101-1/+0
|
* - Fix in_cksum for big-endian MIPS: use correct compile-time check.gonzo2009-02-081-1/+1
|
* Retire NO_DMA completely.imp2009-02-081-7/+0
|
* Eliminate the PMAP_INLINE macro. It isn't really used here. If weimp2009-01-161-8/+2
| | | | need to bring it back, we can.
* Remove unused variable.imp2009-01-161-14/+4
| | | | Minor style nits.
* - pmap_track_modified was retired in r178606. Reintroducing it was a mistake.gonzo2009-01-151-21/+1
| | | | Spotted by: alc@
* Reduce diffs to p4 that were the result of a mismerge on my part.imp2009-01-151-2/+5
|
* MFp4:gonzo2009-01-152-19/+37
| | | | | | | | | - Add debug output - Fix pmap_zero_page and related places: use uncached segments and invalidate cache after zeroing memory. - Do not test for modified bit if it's not neccessary (merged from mips-juniper p4 branch) - Some #includes reorganization
* MFp4:imp2009-01-151-7/+2
| | | | | Remove Maxmem. It isn't used elsewhere in the system at this point... realmem is used instead.
* Call platform_reset() instead of looping forever on reboot.imp2009-01-151-3/+3
| | | | | # We likely need to have a default one of these that jumps to the rom boot # address that's defined in the MIPS ISA.
* Reverse order of dumpsys and cpu_idle_wakeup to reduce diffs to p4.imp2009-01-151-6/+6
|
* MFp4:imp2009-01-151-117/+0
| | | | Remove #if'd 0 code. It is interfering with other diffs.
* o Code cleanup, remove unused fields of idtpci_softcgonzo2009-01-141-7/+0
|
* o Simplify code: trade 15 lines of case for one multiplicationgonzo2009-01-141-15/+1
|
* o Make debug output conditionalgonzo2009-01-141-6/+12
|
* o NO_DMA is no longer required as bug with PIIX4 emulation has been fixed in ↵gonzo2009-01-141-2/+0
| | | | GXEmul
* o Move $FreeBSD$ from comment to __FBSDID macrogonzo2009-01-141-1/+5
| | | | | o Be a bit more verbose about CPU type during boot process (print manufacturer, chip info, MMU and cache parameters)
* First pass at 64-bit elf supportimp2008-12-311-0/+117
|
* Make gpart the default partitioning class on all platforms.marcel2008-12-171-2/+2
| | | | | | | Both ia64 and powerpc were using gpart exclusively already so there's no change for those two. Discussed on: arch@
* AT_DEBUG and AT_BRK were OBE like 10 years ago, so retire them.imp2008-12-171-12/+0
| | | | Reviewed by: peter
* Start to clean up the MIPS elf machine dependent file.imp2008-12-161-6/+58
| | | | | | | | o Add support for compiling elf64 for this file (the rest of the changes are coming later) o Fill in some misssing relocation types. We need to support these in elf_machdep.c's relocation routines eventually, but that's future work too.
* Mips never had /usr/libexec/ld-elf.so.1, so remove it. We don't haveimp2008-12-161-16/+0
| | | | any binaries that need it. This was moved before FreeBSD 5.x.
* Remove redundant assignment.imp2008-12-111-3/+0
|
* Switch to ath hal source code. Note this removes the ath_halsam2008-12-012-2/+4
| | | | | | | | | | | | | | | | | module; the ath module now brings in the hal support. Kernel config files are almost backwards compatible; supplying device ath_hal gives you the same chip support that the binary hal did but you must also include options AH_SUPPORT_AR5416 to enable the extended format descriptors used by 11n parts. It is now possible to control the chip support included in a build by specifying exactly which chips are to be supported in the config file; consult ath_hal(4) for information.
* On FreeBSD, printing the version is centralized, so no need to repeatimp2008-11-301-2/+0
| | | | it here. I think that gonzo@ has also made this change to p4.
* Unbreak mips build by taking first WAG at mb(), wmb() and rmb(). Theimp2008-11-291-0/+4
| | | | latter two are likely pessimal...
* Add sv_flags field to struct sysentvec with intention to provide descriptionkib2008-11-221-1/+2
| | | | | | | | of the ABI of the currently executing image. Change some places to test the flags instead of explicit comparing with address of known sysentvec structures to determine ABI features. Discussed with: dchagin, imp, jhb, peter
* Remove cardbus attachment. It likely was a cut-n-paste left over fromimp2008-11-021-1/+0
| | | | | | | whatever template was used to create this driver. It is not necessary, and wouldn't work anyway since (a) this device will never be in a cardbus tin-can and (b) the driver isn't even PCI, but instead a built-in NIC on the IDT RC32434 on its internal bus.
* Add mips/conf/DEFAULTS and populate it with:marcel2008-10-236-13/+13
| | | | | | | | | | | | machine arm device mem device uart_ns8250 options GEOM_BSD options GEOM_MBR Remove the first three from all kernel configuration files (sometimes commented-out) and change geom_bsd and geom_mbr from standard to optional.
OpenPOWER on IntegriCloud