272461 |
03-Oct-2014 |
gjb |
Copy stable/10@r272459 to releng/10.1 as part of the 10.1-RELEASE process.
Approved by: re (implicit) Sponsored by: The FreeBSD Foundation
|
271746 |
18-Sep-2014 |
tuexen |
MFC r270673: Announce SCTP support in the kern.features sysctl variables.
MFC r270859: Enable SCTP support. It runs perfectly fine on a Wandboard quad.
MFC r271204 with manual intervention: Fix the handling of sysctl variables when used with VIMAGE. While there do some cleanup of the code.
MFC r271209: Fix a leak of an address, if the address is scheduled for removal and the stack is torn down. Thanks to Peter Bostroem and Jiayang Liu from Google for reporting the issue.
MFC r271219: Use SYSCTL_PROC instead of SYSCTL_VNET_PROC. Suggested by: glebius@
MFC r271221: Use union sctp_sockstore instead of struct sockaddr_storage. This eliminates some warnings when building in userland. Thanks to Patrick Laimbock for reporting this issue. Remove also some unnecessary casts. There should be no functional change.
MFC r271228: Address another warnings reported by Patrick Laimbock when compiling in userspace. While there, improve consistency.
MFC r271230: Address warnings generated by the clang analyzer.
Approved by: re (kib)
|
271428 |
11-Sep-2014 |
ian |
Disable debugging-related options in all ARM kernel configs for stable-10. This is a direct commit to stable-10. The following options are disabled in all arm kernel configs:
DEADLKRES DIAGNOSTIC INVARIANTS INVARIANTS_SUPPORT WITNESS WITNESS_SKIPSPIN Approved by: re(gjb)
|
271339 |
09-Sep-2014 |
ian |
MFC r271050: Disable DIAGNOSTIC on low-end ARM platforms.
Approved by: re(gjb)
|
271337 |
09-Sep-2014 |
ian |
MFC r270882, r270930:
In ARM asm code, ensure that every ENTRY(foo) has a matching END(foo). The EABI unwind info requires a .fnend for every .fnstart, and newer binutils will complain about seeing two .fnstart in a row. This change allows newer tools to compile our code.
Do not generate unwind info in asm functions if _STANDALONE is defined. The .fnend op causes the assembler to emit RELOC references to unwind support functions that don't exist in libstand.
Approved by: re(gjb)
|
271330 |
09-Sep-2014 |
ian |
MFC r270065:
Move the imx6 sysctl temperature info to hw.imx6 where all the other soc-wide info lives. It was under dev.imx6_anatop.0.
Approved by: re(gjb)
|
271329 |
09-Sep-2014 |
ian |
MFC r270858, 270879:
Remove duplicated option FDT from individual Wandboard configs, leave the one in the common IMX6 file that they all include.
Approved by: re(gjb)
|
271327 |
09-Sep-2014 |
ian |
MFC r270862, r270878: MMU fixes for kernel startup.
Fix the handling of MMU type in the AP entry code. The ARM_MMU_V6/V7 symbols are always #defined to 0 or 1, so use #if SYM not #if defined(SYM). Also, it helps if you include the header file that defines the symbols.
The Marvell PJ4B cpu family is armv7, not armv6.
Approved by: re(gjb)
|
271051 |
03-Sep-2014 |
marius |
MFC: r270885, r270948
- Nuke unused sdhci_softc. - Static'ize sdhci_debug local to sdhci.c. - Const'ify PCI device description strings. - Nuke redundant resource ID members from sdhci_pci_softc. - Nuke unused hw.sdhci_pci.debug tunable. - Add support for using MSI instead of INTx, controllable via the tunable hw.sdhci.enable_msi (defaulting to on) and tested with a RICOH R5CE823 SD controller. - Use NULL instead of 0 for pointers.
|
270920 |
01-Sep-2014 |
kib |
Fix a leak of the wired pages when unwiring of the PROT_NONE-mapped wired region. Rework the handling of unwire to do the it in batch, both at pmap and object level.
All commits below are by alc.
MFC r268327: Introduce pmap_unwire().
MFC r268591: Implement pmap_unwire() for powerpc.
MFC r268776: Implement pmap_unwire() for arm.
MFC r268806: pmap_unwire(9) man page.
MFC r269134: When unwiring a region of an address space, do not assume that the underlying physical pages are mapped by the pmap. This fixes a leak of the wired pages on the unwiring of the region mapped with no access allowed.
MFC r269339: In the implementation of the new function pmap_unwire(), the call to MOEA64_PVO_TO_PTE() must be performed before any changes are made to the PVO. Otherwise, MOEA64_PVO_TO_PTE() will panic.
MFC r269365: Correct a long-standing problem in moea{,64}_pvo_enter() that was revealed by the combination of r268591 and r269134: When we attempt to add the wired attribute to an existing mapping, moea{,64}_pvo_enter() do nothing. (They only set the wired attribute on newly created mappings.)
MFC r269433: Handle wiring failures in vm_map_wire() with the new functions pmap_unwire() and vm_object_unwire(). Retire vm_fault_{un,}wire(), since they are no longer used.
MFC r269438: Rewrite a loop in vm_map_wire() so that gcc doesn't think that the variable "rv" is uninitialized.
MFC r269485: Retire pmap_change_wiring().
Reviewed by: alc
|
270439 |
24-Aug-2014 |
kib |
Merge the changes to pmap_enter(9) for sleep-less operation (requested by flag). The ia64 pmap.c changes are direct commit, since ia64 is removed on head.
MFC r269368 (by alc): Retire PVO_EXECUTABLE.
MFC r269728: Change pmap_enter(9) interface to take flags parameter and superpage mapping size (currently unused).
MFC r269759 (by alc): Update the text of a KASSERT() to reflect the changes in r269728.
MFC r269822 (by alc): Change {_,}pmap_allocpte() so that they look for the flag PMAP_ENTER_NOSLEEP instead of M_NOWAIT/M_WAITOK when deciding whether to sleep on page table page allocation.
MFC r270151 (by alc): Replace KASSERT that no PV list locks are held with a conditional unlock.
Reviewed by: alc Approved by: re (gjb) Sponsored by: The FreeBSD Foundation
|
270262 |
21-Aug-2014 |
dumbbell |
vt(4): Colors are indexed against a console palette, not a VGA palette
Rename vt_generate_vga_palette() to vt_generate_cons_palette() and change it to build a palette where the color index is the same than in terminal escape codes, not the VGA index. That's what TCHAR_CREATE() uses and passes to vt(4).
The main differences between both orders are: o Blue and red are swapped (1 <-> 4) o Yellow and cyan are swapped (3 <-> 6)
The problem remained unnoticed, because the RGB bit indexes passed to vt_generate_vga_palette() were reversed. This inversion was cancelled by the colors inversions in the generated palette. For instance, red (0xff0000) and blue (0x0000ff) have bytes in opposite order, but were swapped in the palette. But after changing the value of blue (see last paragraph), the modified color was in fact the red one.
While here, tune the palette to better match console colors and improve the readability (especially the dark blue).
This is an MFC of r269783 and r269791.
|
270243 |
20-Aug-2014 |
loos |
MFC r267021:
FreeBSD, historically, has always used 8-bit addresses for i2c devices (7-bit device address << 1), always leaving the room for the read/write bit.
This commit convert ti_i2c and revert r259127 on bcm2835_bsc to make them compatible with 8-bit addresses. Previous to this commit an i2c device would have different addresses depending on the controller it was attached to (by example, when compared to any iicbb(4) based i2c controller), which was a pretty annoying behavior.
Also, update the PMIC i2c address on beaglebone* DTS files to match the new address scheme.
Now the userland utilities need to do the correct slave address shifting (but it is going to work with any i2c controller on the system).
Discussed with: ian
MFC r267834:
Clarify the expected usage of I2C 7-bit slave addresses on ioctl(2) interface.
While here add the cross reference to iic(4) on iicbus(4).
CR: D210 Suggested by: jmg
|
270241 |
20-Aug-2014 |
loos |
MFC r266923:
Ignore IIC_ENOADDR from iicbus_reset() as it only means we have a master-only controller.
This fixes the iic bus scan with i2c(8) (on supported controllers).
Tested with gpioiic(4).
MFC r267009:
Remove the unnecessary i2c slave address assignment.
The ti_i2c controller only works in the master mode and the i2c address passed on iicbus_reset() is used to set the controller slave address when operating as an i2c slave (which isn't currently supported).
When talking to a slave, the slave address is correctly provided to ti_i2c_tranfer().
|
270238 |
20-Aug-2014 |
loos |
MFC r266960:
Configure the analog input 7 which, on BBB, is connected to the 3V3B rail through a voltage divisor (R163 and R164 on page 4 of BBB schematic).
Add a note about this on ti_adc(4) man page. The ti_adc(4) man page will first appear on 10.1-RELEASE.
Suggested by: Sulev-Madis Silber (ketas) Manual page reviewed by: brueffer (D127)
|
270237 |
20-Aug-2014 |
loos |
MFC r266937:
Export two new settings for the AM335x PWM, the clock prescaler (clkdiv) and the actual PWM frequency.
Enforce the maximum value for the period sysctl.
The frequency systcl now allows the direct setting of the PWM frequency (it will try to find the better clkdiv and period for a given frequency, i.e. the ones that will give the better PWM resolution).
This allows the use lower frequencies on the PWM. Without changing the clock prescaler the minimum PWM frequency was 1.52kHz.
PWM frequencies checked with an osciloscope.
PWM output tested with some R/C servos at 50Hz.
|
270077 |
17-Aug-2014 |
ian |
MFC r269646: Use a SYSINIT to init the array of interrupt names on arm.
|
270076 |
17-Aug-2014 |
ian |
MFC r269607, r269698:
Cache the imx6 SoC type in a static var so that it only has to be figured out by sniffing hardware registers once.
Add a missing clock register definition.
|
270075 |
17-Aug-2014 |
ian |
MFC r269594, r269596, r269597, r269598, r269605, r269606:
Set ofwbus and simplebus to attach during BUS_PASS_BUS.
Define names that drivers can use to adjust their position relative to other drivers within a BUS_PASS
Adjust ofwbus and simplebus to attach at BUS_PASS_ORDER_MIDDLE, so that a platform can attach some other bus first if necessary.
Set the pl310 L2 cache driver to attach during the middle of BUS_PASS_CPU.
Attach arm generic interrupt and timer drivers in the middle of BUS_PASS_INTERRUPT and BUS_PASS_TIMER, respectively.
Add an arm option, ARM_DEVICE_MULTIPASS, used to opt-in to multi-pass device attachment on arm platforms. If this is defined, nexus attaches early in BUS_PASS_BUS, and other busses and devices attach later, in the pass number they are set up for. Without it defined, nexus attaches in BUS_PASS_DEFAULT and thus so does everything else, which is status quo.
|
269798 |
11-Aug-2014 |
ian |
MFC r269403, r269405, r269410, r269414:
Add 64-bit atomic ops for armv6, and also for armv4 only in kernel code. Use the new ops in the cddl code (and avoid defining functions with the same names locally).
|
269797 |
11-Aug-2014 |
ian |
MFC r269393, r269394, r269395:
Fix parsing of arch extensions in binutils/gas. Use ".arch_extension sec" when compiling ARM TI code that uses the security extensions.
|
269796 |
11-Aug-2014 |
ian |
MFC r269390: Fix unwind info in hand-written asm (avoid nested functions).
|
269794 |
11-Aug-2014 |
ian |
MFC r269206, r269207, r269208, r269209, r269210, r269211, r269212, r269213, r269214, r269215, r269216, r269217, r269221:
busdma-v6 improvements, primarily: - Allocate the temporary segments array per-map rather than per-tag. - Avoid needlessly bouncing IO for mbufs and buffers allocated by bus_dmamem_alloc() (in both situations we known they're allocated on cacheline boundaries and don't need bouncing). - Various minor reformatting and cleanups.
|
269792 |
10-Aug-2014 |
ian |
MFC r268993, r268893, r268994, plus partial r264070, r264082
Fix C++ exception handling for ARM EABI.
Just the part of r264070 that creates the FBSD_1.4 namespace in libc is hand-applied, and then r264082 which creates the Versions.def entry is MFC'd.
|
269679 |
07-Aug-2014 |
ian |
MFC r256691, r256748: casuword fixes
Use unsigned compare against KERNBASE addr. Use atomic ops on armv6.
|
269104 |
25-Jul-2014 |
ian |
MFC r268401, r268495:
Pending interrupt status is cleared by writing to the ISR, not the data reg.
Use named constant rather than '0' to access the reset controller register.
|
269103 |
25-Jul-2014 |
ian |
MFC r266565, r266651:
Map device memory using PTE_DEVICE attributes, and also ensure that the shared flag is set on normal-memory mappings made via pmap_kenter() for SMP.
The "shared flag" part of this change isn't obvious from the diff, here's the deal... by using the array of preformatted page table entry templates instead of constructing the PTE from scratch, we automatically get the right attribute bits set for both caching and shared.
Fix whitespace glitches.
|
269072 |
24-Jul-2014 |
kib |
MFC r267213 (by alc): Add a page size field to struct vm_page.
Approved by: alc
|
268813 |
17-Jul-2014 |
imp |
MFC r263749,267146:
>r267146 | imp | 2014-06-05 22:08:55 -0600 (Thu, 05 Jun 2014) | 4 lines >Restore comments accidentally removed.
>r263749 | imp | 2014-03-25 16:08:31 -0600 (Tue, 25 Mar 2014) | 18 lines >Rather than require a makeoptions DEBUG to get debug correct, >add it in kern.mk, but only if we're using clang. While this >option is supported by both clang and gcc, in the future there >may be changes to clang which change the defaults that require >a tweak to build our kernel such that other tools in our tree >will work. Set a good example by forcing -gdwarf-2 only for >clang builds, and only if the user hasn't specified another >dwarf level already. Update UPDATING to reflect the changed >state of affairs. This also keeps us from having to update >all the ARM kernels to add this, and also keeps us from >in the future having to update all the MIPS kernels and is >one less place the user will have to know to do something >special for clang and one less thing developers will need >to do when moving an architecture to clang.
|
266755 |
27-May-2014 |
ian |
MFC 266621: Eliminte spurious interrupts caused by ARM weak memory ordering.
|
266751 |
27-May-2014 |
ian |
MFC r264096, r264097, r264099 r264100, r264101, r264102, r264119:
Fixes to the ti_sdhci and sdhci drivers (fix clock divisor calcs).
Use the ti_sdhci driver instead of ti_mmchs for Pandaboard.
|
266412 |
18-May-2014 |
ian |
MFC 258287: Implement pmap_align_superpage().
|
266409 |
18-May-2014 |
ian |
MFC 257231:
Make sure the PCB is aligned on 8 bytes, we may use ldrd/strd to access it, which may have strong alignment requirements.
|
266408 |
18-May-2014 |
ian |
MFC 257189:
Fix an itt instruction. We need to execute both the mov and b instructions when building for Thumb.
|
266406 |
18-May-2014 |
ian |
MFC 256942, 256943:
- Fix a typo. - 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().
|
266405 |
18-May-2014 |
ian |
MFC 256873: Make watchdog function conform watchdog(9):
|
266404 |
18-May-2014 |
ian |
MFC 256941: make sure the frame is indeed in the kernel memory.
|
266397 |
18-May-2014 |
ian |
MFC 265624, 265739: Fix interrupt parent property in dts, add SMP support.
|
266388 |
18-May-2014 |
ian |
MFC 265913, 265914:
Interrupts need to be disabled on entry to cpu_sleep() for ARM. Given that and the need to be in a critical section when switching to idleclock mode for event timers, use spinlock_enter()/exit() to achieve both needs.
Clean up some style nits.
|
266387 |
18-May-2014 |
ian |
MFC 265861, 265870:
Make the hardware memory and instruction barrier functions work on armv4 and armv5 as well.
Add cpu_l2cache_drain_writebuf(), use it to implement generic_bs_barrier().
|
266386 |
18-May-2014 |
ian |
MFC 265852: Map device memory using PTE_DEVICE rather than PTE_NOCACHE.
|
266385 |
18-May-2014 |
ian |
MFC 265694, 265705, 265784:
Move the mptramp code which is specific to the Marvell ArmadaXP SoC out of the common locore.S file and into the mv/armadaxp directory.
Consolidate all the AP core startup stuff under a single #ifdef SMP block
Call idcache_inv_all from the AP core entry code before turning on the MMU. Also, enable instruction and branch caches, which should be safe now that they're properly initialized/invalidated first.
|
266384 |
18-May-2014 |
ian |
MFC 265440, 265441, 265444, 265445, 265446, 265447:
Move the pl310.enabled tunable to hw.pl310.enabled. Clean up a few minor style(9) nits. Use DEVMETHOD_END.
Break out the code that figures out the L2 cache geometry to its own routine, so that it can be called from multiple places in upcoming changes.
Call platform_pl310_init() before enabling the controller, and handle the case where the controller is already enabled.
Add defines for the bits in the PL310 debug control register.
Add a public routine to set the L2 cache ram latencies. This can be called by platform init routines to fine-tune cache performance.
Enable PL310 power-saving modes and tune the cache ram latencies for imx6.
|
266383 |
18-May-2014 |
ian |
MFC 265155, 265254:
Omit from the universe build all config files tagged with #NO_UNIVERSE.
Add FDT to the VYBRID kernel.
|
266381 |
17-May-2014 |
ian |
MFC 265207: Use arm_devmap_add_entry() to setup static device mapping.
|
266380 |
17-May-2014 |
ian |
MFC 265156: Remove WANDBOARD.common, it was replaced by IMX6.
|
266379 |
17-May-2014 |
ian |
MFC 265099, 265148, 265690:
Add SMP support for Zedboard.
Use edge-triggered interrupts rather than polling loops to avoid missing transitions of the INIT_B line. Also, release the mutex during uiomove().
Convert the Zynq SoC support to the new routines for static device mapping.
|
266378 |
17-May-2014 |
ian |
MFC 265111: Make a declaration into a proper function prototype.
|
266375 |
17-May-2014 |
ian |
MFC 265035: Move duplicated code to print l2 config into the common code.
|
266374 |
17-May-2014 |
ian |
MFC 265023, 265024, 265036:
There is no difference between IPI_STOP and IPI_STOP_HARD on ARM, so map them both to the same interrupt number like other arches do.
Flush and invalidate caches on each CPU as part of handling IPI_STOP.
Don't use multiprocessing-extensions instruction on processors that don't support SMP.
|
266373 |
17-May-2014 |
ian |
MFC 264990, 264994, 265020, 265025:
Call cpu_icache_sync_range() rather than sync_all since we know the range and flushing the entire icache is needlessly expensive.
Provide a proper armv7 implementation of icache_sync_all rather than using armv7_idcache_wbinv_all, because wbinv_all doesn't broadcast the operation to other cores. In elf_cpu_load_file() use icache_sync_all() and explain why it's needed (and why other sync operations aren't).
Remove cpu_idcache_wbinv_all() from kdb_cpu_trap(), it's no longer needed.
Explain why wbinv_all is SMP-safe when dumping, and add a missing l2 cache flush. (Either it was missing here, or it isn't needed in the minidump case. Adding it here seems like the safer path to consistancy.)
|
266371 |
17-May-2014 |
ian |
MFC 264977:
Stop calling imx51_ccm_foo() clock functions from imx6 code. Instead define a few imx_ccm_foo() functions that are implemented by the imx51 or imx6 ccm code.
|
266369 |
17-May-2014 |
ian |
MFC 264702: Remove uncessary armv6 cache and TLB maintenance ops.
|
266365 |
17-May-2014 |
ian |
MFC 264251: Updates to i.MX53:
* Define support for the SDHCI driver, although it doesn't work yet * Fix the memory mappings for IPU
|
266363 |
17-May-2014 |
ian |
MFC 264219: Move sys/arm/econa to sys/arm/cavium/cns11xx.
|
266362 |
17-May-2014 |
ian |
MFC 264203, 264204, 264206, 264218:
Tell VM we now have ARM platforms with physically discontiguous memory.
Define the full 1024M of ram on the imx51 and imx53 boards.
Use a more professional uart device description.
|
266360 |
17-May-2014 |
ian |
MFC 264180, 264181, 264182:
Follow files.imx51 and add vt support for imx53.
Add fsl,imx53 compatible string.
Need to include machine/fdt.h in vt_early_fb.c
|
266359 |
17-May-2014 |
ian |
MFC 264160: Remove code under PMAP_CACHE_VIVT, not compiled on armv6.
|
266358 |
17-May-2014 |
ian |
MFC 264150: Exynos: Correct the end address of the video frame buffer.
|
266357 |
17-May-2014 |
ian |
MFC 264183: Add a couple more required TLB flushes.
|
266356 |
17-May-2014 |
ian |
MFC 264137: Switch wandboards over to the common IMX6 kernel config, which has SMP enabled. Also switch IMX6 to use SCHED_ULE.
|
266355 |
17-May-2014 |
ian |
MFC 264137: Switch wandboards over to the common IMX6 kernel config, which has SMP enabled. Also switch IMX6 to use SCHED_ULE.
|
266353 |
17-May-2014 |
ian |
MFC 264128, 264129, 264130, 264135,
Fix TTB set operation for armv7. Perform sychronization (by "isb" barrier) after TTB is set.
Fix TLB maintenance issues for armv6 and armv7.
- Add cpu_cpwait to comply with the convention. - Add missing TLB invalidations, especially in pmap_kenter & pmap_kremove with distinguishing between D and ID pages. - Modify pmap init/bootstrap invalidations to ID, just to be safe. - Fix TLB-inv and PTE_SYNC ordering.
Allocate per-cpu resources for doing pmap_zero_page() and pmap_copy_page(). This is performance enhancement rather than bugfix.
We don't support any ARM systems with an ISA bus and don't need a freelist of memory to support ISA addressing limitations.
|
266352 |
17-May-2014 |
ian |
MFC 264052, 264057, 264065, 264094, 264103, 264120
Actually save the mpcore clock frequency retrieved from fdt data.
imx6.. - Don't call sdhci_init_slot() until after handling the FDT properties related to detecting card presence. - Flag several sysctl variables as tunables. - Rework the cpu frequency management code for imx6 to add "operating points" and min/max frequency controls.
generic timer... - Setup both secure and non-secure timer IRQs. We don't know our ARM security state, so one of them will operate. - Don't set frequency, since it's unpossible in non-secure state. Only rely on DTS clock-frequency value or get clock from timer.
|
266348 |
17-May-2014 |
ian |
MFC 264054, 264056
Switch imx6 to using the mpcore per-cpu event timers, but continue to use the GPT timer, which is fixed-frequency, as a timecounter.
Change NO_EVENTTIMERS from an arm-specific to an MI option, so that it can be used in MI code.
|
266347 |
17-May-2014 |
ian |
MFC 264019, 264041, 264048, 264049, 264050, 264051
Add support for event timers whose clock frequency can change while running.
Apparently all ARM configs build kern_et.c, but only a few of them also build kern_clocksource.c, un-break the build by not referencing functions in kern_clocksource if NO_EVENTTIMERS is defined.
Add variable-frequency support to the arm mpcore eventtimer driver.
mpcore_timer: Disable the timer and clear any pending bit, then setup the new counter register values, then restart the timer. Also re-nest the parens properly for casting the result of converting time and frequency to a count.
|
266341 |
17-May-2014 |
ian |
MFC 263910, 263913, 263914, 263933, 263934, 263935, 263936, 263981, 263982,
Add more flags for the fpexc register from the ARM1176JZF-S Manual
Initialise fpscr to a sane value when we create the pcb. This sets NaNs to be the default NaN and for denormalised numbers to be flushed to zero.
VFP fixes/cleanups for ARM11: * Save the required VFP registers on context switch. If the exception bit is set we need to save and restore the FPINST register, and if the fp2v bit is also set we need to save and restore FPINST2. * Move saving and restoring the floating point control registers to C. * Clear the fpexc exception and fp2v flags on a floating-point exception. * Signal a SIGFPE if the fpexc exception flag is set on an undefined instruction. This is how the ARM core signals to software there is a floating-point exception.
Add Cortex-A15 cpu id revisions.
Exynos/Arndale... - Merge SoC-common parts - Enable iicbus device - Directly call kmem_alloc_contig to allocate framebuffer memory and pass VM_MEMATTR_UNCACHEABLE (no-cache, no-buffer). This fixes screen refreshing problem when data is updated too slowly. - Add support for keyboard used in Samsung Chromebook (ARM machine) Support covers device drivers for: - Interrupt Combiner - gpio/pad, External Interrupts Controller (pad) - I2C Interface - Chrome Embedded Controller - Chrome Keyboard - Use new gpio dev class in EHCI driver - Expand device tree information - Release i2c bus on detach.
|
266338 |
17-May-2014 |
loos |
Adds the ADC driver for TI AM3xxx SoC family.
The ADC has a 12bit resolution and its raw output can be read via sysctl(8) interface.
The driver allows the setup of ADC clock, samples average and open delay (the number of clock cycles to wait before start the conversion).
The TSC_ADC module is set in the general purpose mode (no touchscreen support).
Tested on Beaglebone-black.
Written based on AM335x TRM.
|
266337 |
17-May-2014 |
ian |
MFC 263631, 263637, 263664, 263676, 263679, 263698, 263711,
Implement __flt_rounds for ARMv6 hard-float. The fpscr register stores the current rounding mode used by the VFP unit.
Simplify how we build MACHINE_ARCH. There are 3 options that may be set however only arm, armeb, armv6, and soon armv6hf will be used.
Add the llvm/clang patch for r263619.
Reorder the pmap macros so "ARM_MMU_V6 + ARM_MMU_V7" is first. As they are identical this allows us to build for both v6 and v7 together.
Add code for enabling second CPU core for A20 SoC. Enable SMP on Cubieboard2.
Switch to freebsd.org emal address in copyright.
|
266332 |
17-May-2014 |
ian |
MFC 263250, 263251, 263424, 263425, 263426, 263427, 263430, 263431
Use the same cache terminology as the ARM docs in comments. No functional changes.
Use armv7 TLB flush code, not arm11, for cortex-a processors.
Exynos/ Arndale... - Disable debugging by default. - Add display-related and clk devices to the tree - Prevent resources intersection with EHCI driver - Add display-related and clk devices to the tree - Prevent resources intersection with EHCI driver - Add driver for Display Controller. - Add support for Samsung Chromebook (ARM Cortex A15 machine). - Rename mct and ehci drivers files to match common naming.
|
266331 |
17-May-2014 |
ian |
MFC 263301
In kernel config files, it is supposed to be 'options<space><tab>' not 'options<tab><tab>', per long standing (but recently not so strictly enforced) convention.
|
266328 |
17-May-2014 |
ian |
MFC 263245: Make all the comments '# ' and align to same column.
|
266313 |
17-May-2014 |
ian |
MFC 263199, 263207
Fix error mesasge in dtc.
Add tmpfs, mbr, and bsdlabel options back to wandboard kernel config.
|
266312 |
17-May-2014 |
ian |
MFC 263036, 263059: delete advertising clause in licenses, renumber.
|
266311 |
17-May-2014 |
ian |
MFC 262952, 262958, 262966, 262979, 262980, 262986, 262987, 262995, 262997, 263030, 263033, 263034, 263056, 263057,
Remove all the redundant external declarations of exception vectors and runtime setting of the pointers that's scattered around various places.
Remove all traces of support for ARM chips prior to the arm9 series.
Make the default exception handler vectors point to where I thought they were already pointing: the default handlers (not a panic that says there is no default handler).
Eliminate irq_dispatch.S. Move the data items it contained into arm/intr.c and the functionality it provided into arm/exception.S.
Move the exception vector table (so-called "page0" data) into exception.S and eliminate vectors.S.
Change the way the asm GET_CURTHREAD_PTR() macro is defined so that code using it doesn't have to have an "AST_LOCALS" macro somewhere in the file.
Arrange for arm fork_trampoline() to return to userland via the standard swi_exit code in exception.S instead of having its own inline expansion of the DO_AST and PULLFRAME macros.
Now that the PUSHFRAME and PULLFRAME macros are used only in the swi entry/exit code, they don't need to be macros. Except that didn't work and the whole change was reverted.
Remove some unnecessary indirection and jump right to the handler functions.
Use panic rather than printf to "handle" an arm26 address exception (should never happen on arm32).
Remove the unreferenced DATA() macro.
Remove #include <machine/asmacros.h> from files that don't need it.
|
266277 |
17-May-2014 |
ian |
MFC 257774, 256760, 262916, 262905, 262918, 262919, 262920, 262921, 262924, 262925, 262929, 262932, 262935, 262940, 262941, 262942, 262948, 262949, 262950
Strip arm/conf/DEFAULTS down to just items that are mandatory for running the architecture.
Move all the files named foo/common.c to foo/foo_common.c
Initial cut for DTS on the hl201 board.
Add commented out dts for sam9260ek as well as early printf support.
Make clock optional on uart nodes, then back it out ("I don't know what I was thinking, but it is lame.")
Set the baud rate if it isn't 0
Make at91_soc_id() public.
Properly round at91 resource on unmapping.
Move AT91 AIC related stuff to own file.
Fix another bug in multicast filtering. i.MX uses 6 bits from MSB in LE CRC32 for the hash value, not the lowest 6 bits in BE CRC32.
Follow r262916 with one more config file that references a renamed common.c
Remove bogus AT91 define that causes compile errors. Most of the defines for SAM9X are going away soonish anyway (once FDT works), but until then...
Remove all dregs of a per-thread undefined-exception-mode stack.
Rework the VFP code that handles demand-based save and restore of state.
Always call vfp_discard() on thread death.
When a thread begins life it doesn't own the VFP hardware state on any cpu.
Make undefined exception entry MP-safe.
|
266275 |
16-May-2014 |
ian |
MFC 258211, 257775, 258096,
Add mbox and pruss drivers to ti build.
Use common bus_space-v6 instead of local copies.
|
266274 |
16-May-2014 |
ian |
MFC 262695, 262708, 262709, 262710, 262711, 262728, 262870, 262877, 262880, 262885, 262891, 262903,
imx6: Add a tunable to set the number of active cores, enable SMP by default.
ffec: Fix multicast filtering.
Allwinner a10/a20... - Add gpio and clock bits for A10/A20's EMAC ethernet controller driver - EMAC gpio configuration - EMAC clock activation - Add Static Random Access Memory controller driver for A10/A20. A10/A20's SRAM is used by devices, such as CPU, EMAC, for extra fast memory or as cache. - Add EMAC 10/100 Ethernet controller driver for A10/A20. It is available mostly in A10 devices like Hackberry, Marsboard, Mele A1000, A2000, A100 HTPC, cubieboard1 and A20 device like cubieboard2. TX performance can be improved using both channels 0 and 1. RX performance is poor and needs improvement with the assistance of external DMA controller in case there - Add EMAC and SRAM controller entries to FDT. - Add EMAC device to kernel config files and enable EMAC, SRAM drivers.
OMAP: When calculating the MPU freq, make sure not to overflow.
Vybrid: - Add driver for Port control and interrupts (PORT). - Export panel info to DTS - Reset all the layers before setup first one - Enable display
nandfs: Slight code reordering to make error branch last.
Add option TMPFS to arm/conf/DEFAULTS, remove it from the few configs that have it individually. Concensus on freebsd-arm@ is that it should be included in all ARM kernels.
Fix the arm sys_sigreturn(): its argument is a struct ucontext, not a struct sigframe containing the struct ucontext.
|
266217 |
16-May-2014 |
ian |
MFC r262591, r262592, r262593, r262597, r262598, r262599, r262600, r262601, r262606
Initial import of Linux/Vendor DTS files for various embedded boards.
Initial import of DTS files from Linux
Correct initial import script
New AT91 devices or fdt probe added to existing devices. Some of these are just stubs for testing the new dts. - nand - SDRAMC - shdwc - tcb - usb host and gadget
|
266207 |
16-May-2014 |
ian |
MFC r262534, r262548, r262549, r262552, r262568, r262581, r262583, r262584, r262585, r262587, r262696, r262712
Replace many pasted identical definitions of cpu_initclocks() with a common implementation in arm/machdep.c.
aicasm: Don't complain about missing prototypes to ease bootstrap issues.
Vybrid: Add driver for Inter-Integrated Circuit (I2C).
imx6: Initialize the Low Power Mode bits to keep the ARM cores running during WFI.
All our current ARM multi-core systems have all cores in one package with a shared L2 cache, reflect that in the common cpu_topo() routine.
mpcore timer: Supply a DELAY() implementation via weak linkage, so that SoC-specific code can supply a better implementation.
imx6: Add some rudimentary voltage control.
Add an armv7 implementation of cpu_sleep().
Add __used attribute so that the DELAY implementation doesn't get optimized away as unreferenced, causing linker errors when trying to resolve the weak reference to the missing function.
|
266204 |
16-May-2014 |
ian |
MFC r257854 (discussed with alc@)
As of r257209, all architectures have defined VM_KMEM_SIZE_SCALE. In other words, every architecture is now auto-sizing the kmem arena. This revision changes kmeminit() so that the definition of VM_KMEM_SIZE_SCALE becomes mandatory and the definition of VM_KMEM_SIZE becomes optional.
Replace or eliminate all existing definitions of VM_KMEM_SIZE. With auto-sizing enabled, VM_KMEM_SIZE effectively became an alternate spelling for VM_KMEM_SIZE_MIN on most architectures. Use VM_KMEM_SIZE_MIN for clarity.
|
266203 |
16-May-2014 |
ian |
MFC r262409, r262411, r262413, r262420, r262426, r262427, r262440, r262456, r262482, r262483, r262531,
Move the declaration for mpentry() into a header file instead of pasting it into a bunch of different .c files.
If the L2 cache type is PIPT, pass a physical address for a flush.
Actually set the proper bit to indicate TTB shared memory.
Add a new cache maintenance function, idcache_inv_all, to the table, and implementations for each of the chips we support.
Invalidate caches immediately upon entry to init_secondary(). Also set the Bufferable bit in the PDE entries of the secondary processor startup pagetables.
Add the bits needed to run SMP on imx6.
Invalidate the SCU cache tag ram on all 4 cores, not just 1-3.
Minor tweaks to the imx GPT timer
Vybrid enhancements... - Pin configuration is a complete iomux register now and includes drive strength, pull mode, mux mode, speed, etc. - Add i2c devices to the tree - Add IPG clock - Add support for Quartz Module. - Pin configuration is a complete iomux register now and includes drive strength, pull mode, mux mode, speed, etc. - Add i2c devices to the tree - Add IPG clock
|
266201 |
15-May-2014 |
ian |
MFC r261982, r261987, r262123, r262244, r262278, r262280, r262353, r262354, r262355, r262419,
Add Vybrid driver for Synchronous Audio Interface (SAI).
Decrease SAI buffer size. Handle eDMA interrupt on running channel only.
Give the physmem fdt helper routines static linkage since no global definition of them is provided anywhere.
Add imx6 early printf support, wrapped in #if 0 because it's rarely needed.
Add basic cpu frequency control and temperature monitoring to imx6_anatop.
Add the FREEBSD_BOOT_LOADER option so that a loaded DTB passed in from ubldr will actually get used.
Create a generic IMX6 kernel config, then fix it to have an ident line.
Don't force imx6 bootverbose on anymore, it can be set from ubldr now.
|
266200 |
15-May-2014 |
ian |
MFC r261938, r261939, r261940, r261944, r261945, r261946, r261947, r261956, r261957, r261983, r261094, r261955, r261958,
Add a driver to provide access to imx6 on-chip one-time-programmble data.
Make it possible to access the ocotp registers before the ocotp device is attached, by establishing a temporary mapping of the registers when necessary.
It turns out Freescale cleverly made the ocotp device compatible across several different families of SoCs, so move it to the freescale directory and prefix everything with fsl rather than imx6.
Convert the imx6 sdhci "R1B fix" from a busy-loop in the interrupt handler to a callout.
Increase the wait time for acquiring the SD bus from 10 to 250ms.
If no compatible cards were found after probing the SD bus, say so.
Add timeout logic to sdhci, separate from the timeouts done by the hardware.
After a timeout, reset the controller using SDHCI_RESET_CMD|SDHCI_RESET_DATA rather than SDHCI_RESET_ALL; the latter turns off clocks and power, removing any possibility of recovering from the error.
Add a helper routine to depth-search the device tree for a node with a matching 'compatible' property.
|
266199 |
15-May-2014 |
ian |
MFC r261917, r261918, r261919, r261920, r261921, r261922
Always clear L1 PTE descriptor when removing superpage on ARM
Invalidate L1 PTE regardles of existance of the corresponding l2_bucket.
Ensure proper TLB invalidation on superpage promotion and demotion on ARM
Base pages within newly created superpage need to be invalidated so that new mapping is "visible" immediately after creation.
Fix superpage promotion on ARM with respect to RO/RW and wired attributes
Avoid redundant superpage promotion attempts on ARM
Remove spurious assertion from pmap_extract_locked() on ARM
Handle pmap_enter() on already promoted mappings for ARMv6/v7
|
266198 |
15-May-2014 |
ian |
MFC r261803, r261808, r261814, r261815, r261816, r261817, r261818, r261826, r261848, r261855
On armv6 and later, use the WriteNotRead bit of the fault status register to decide what protections are required by the faulting access.
Use the right symbols for determining arm architecture. Include the necessary header file which has the new FAULT_WNR symbol defined in it.
Allow the kernel to be loaded at any 1MiB address. This requirement is because we use the 1MiB section maps as they only need a single pagetable.
Add function for configuring Vybrid PLL4 (Audio) clock frequency output.
imx6 changes ...
- Fix the definition of the SDHCI_STATE_DAT and SDHCI_STATE_CMD fields, and add SDHCI_RETUNE_REQUEST. None of these are actually used in the code yet.
- Write translation code for the SDHCI_PRESENT_STATE register. Freescale moved some bits around in their version of the register, adjust things so that the sdhci code sees the standard layout.
- Add standard non-removable and cd-gpios properties to the usdhc devices. That generates references to gpio devices, so uncomment them even though there isn't a gpio driver to do anything with them yet.
- Add handling of standard "non-removable" property, and also some workaround code so that if card detect is wired to a gpio pin, for now we just treat it the same as non-removable (because there isn't a gpio driver yet).
- Enable both sdcard slots, but not the sdio-based wifi that we don't yet have a driver for.
- Remove a couple obsolete function declarations.
|
266197 |
15-May-2014 |
ian |
MFC r261786, r261789
Rework the EARLY_PRINTF mechanism. Instead of defining a special eprintf() routine, now a platform can provide a pointer to an early_putc() routine which is used instead of cn_putc(). Control can be handed off from early printf support to standard console support by NULLing out the pointer during standard console init.
Convert two while(1); statements into proper panics.
|
266196 |
15-May-2014 |
ian |
MFC r261681, r261682, r261683, r261684, r261685, r261686, r261687, r261688, r261689, r261690, r261783, r261791, r261836, r261837, r261841,
Add FDT matching code to AT91 device drivers.
Better nomatch messages: include compat string. Also, flag devices as disabled in the successful probe message, but leave what that means to the actual driver (no semantic changes).
Fix Embest board name and id.
Honor the disabled status by only grabbing resources and returning when running under FDT in the AT91 SPI driver.
|
266194 |
15-May-2014 |
ian |
MFC r261643, r261646, r261648, r261649, r261651, r261656, r261657, r261663, r261676, r261677, r261698, r261778
Consolidate code related to setting up physical memory configuration into a new physmem.c file.
Replace compile-time constant KERNPHYSADDR with abp_physaddr
Calculate the kernel's load address from the PC in the elf / gzip trampoline instead of relying on KERNPHYSADDR as a compile-time constant.
It turns out a global variable is the only straightforward way to communicate the kernel's physical load address from where it's known in initarm() into cpu_mp_start() which is called from non-arm code and takes no parameters.
Remove the now unused MMU_INIT macro.
Use vm_paddr_t, not vm_offset_t, when dealing with physical addresses.
No need to set physmem in each initarm() instance anymore, it's handled in common code now.
Pass the pagetable used from locore.S to initarm to allow it to map data in as required.
Fix the physmem exclude-region clipping logic for the edge-trim case.
Add some extra debugging output when DEBUG is defined.
Update legacy platforms to use new arm_physmem helper routines.
|
266178 |
15-May-2014 |
ian |
MFC r256672
If we avoid to use the page at addr 0, we should adjust the size to reflect it.
|
266175 |
15-May-2014 |
ian |
MFC r257549, r261642
Don't create a distinct free page pool for segregating allocations that are accessed through the direct map unless the kernel configuration actually includes a direct map. Only a few configurations do, and for the rest the unnecessary free page pool is a small pessimization.
Remove the ARM_USE_SMALL_ALLOC option and code related to it.
|
266170 |
15-May-2014 |
ian |
MFC r261616, r261639
Remove FreeBSD 6 support from atmel usb controllers.
Add Vybrid drivers for: - Enhanced Direct Memory Access Controller (eDMA) - Direct Memory Access Multiplexer (DMAMUX)
|
266168 |
15-May-2014 |
loos |
MFC r259270
After r266105 ofw_iicbuc.c will be built by default for any kernel which includes options 'iicbus' and 'fdt'. Remove the (now) unnecessary entries.
|
266164 |
15-May-2014 |
loos |
MFC r256871, r259034, r266010
r256871: Implement watchdog function and register it with watchdog list.
r259034: Make the sysctl node read-only.
r266010: Remove extra newlines. No functional changes.
|
266162 |
15-May-2014 |
ian |
MFC r261570, r261572
Revert r260440 (add USB_HOST_ALIGN to all configs, it's only needed for platforms with a 64-byte cacheline size).
Add option USB_HOST_ALIGN=64 for all SoCs that have 64 byte cache lines.
|
266160 |
15-May-2014 |
ian |
MFC r261423, r261424, r261516, r261513, r261562, r261563, r261564, r261565, r261596, r261606
Add the imx sdhci controller.
Move Open Firmware device root on PowerPC, ARM, and MIPS systems to a sub-node of nexus (ofwbus) rather than direct attach under nexus. This fixes FDT on x86 and will make coexistence with ACPI on ARM systems easier. SPARC is unchanged.
Add the missing ')' at end of sentence. Reword it to use a more common idiom.
Pass the kernel physical address to initarm through the boot param struct.
Make functions only used in vfp.c static, and remove vfp_enable.
Fix __syscall on armeb EABI. As it returns a 64-bit value it needs to place 32-bit data in r1, not r0. 64-bit data is already packed correctly.
Use abp_physaddr for the physical address over KERNPHYSADDR. This helps us remove the need to load the kernel at a fixed address.
Remove references to PHYSADDR where it's used only in debugging output.
Dynamically generate the page table. This will allow us to detect the physical address we are loaded at to change the mapping.
|
266159 |
15-May-2014 |
ian |
MFC r261414, r261415, r261417, r261418, r261419
Don't call device_set_ivars() for the mmchs
Change the way pcpu and curthread are stored per-core
Invalidate cachelines for bounce pages on PREREAD too, there may still be stale entries from a previous transfer.
Only use the CPU ID register if SMP is defined. Some non-MPCore armv6 cpu, such as the one found in the RPi, don't have it, and just hang when we try to access it.
|
266155 |
15-May-2014 |
ian |
MFC r261411, r261413, r261416:
Add support for Colibri VF50 Evaluation Board.
Add driver for Display Control Unit (DCU4).
Add prototype for tcon_bypass() used by dcu4. Add register definition.
|
266152 |
15-May-2014 |
ian |
MFC r261410
Follow r261352 by updating all drivers which are children of simplebus to check the status property in their probe routines.
|
266148 |
15-May-2014 |
loos |
MFC r259125, r264019, r264083, r264153, r264197
r259125: Fix a few typos on the scm (control module) pin mux definitions.
r264019: Fix some of the style(9) problems on ti_gpio.
Remove redundant code and declarations.
r264083: Move the GPIO bank initialization to a new function to make easier to detect errors.
Reset the GPIO module during the initialization. This is guaranteed to be the same as a hardware reset. Tested on AM335x (BBB) and checked against the omap3 and omap4 TRM.
Do a better job freeing resources when there are errors and on ti_gpio_detach().
r264153: - Fix the setup of interrupts for banks 2 and 3 on AM335x.
On AM335x each one of the four GPIO banks has two physical interrupt lines, so we now allocate resources and setup our interrupt handler for all the (8) available interrupts.
On OMAP3 and OMAP4 there is only one interrupt for each GPIO bank (6 banks, 6 interrupts), but there are two set of registers where the first one is used to setup the delivery of interrupts to the MPU and the second set, setup the delivery of interrupts to the DSP.
On AM335x, each set of registers controls each one of the interrupt lines.
- Remove nonexistent registers for OMAP4 and AM335x, replace their use with the correct ones for these SoCs.
- Remove stray whitespace.
r264197: Partially revert r264083.
While it is the recommended initialization procedure, it hangs on the reset of the second GPIO module on pandaboard.
Removes the module reset for now as more investigation is needed.
|
266146 |
15-May-2014 |
ian |
MFC r261406, r261409: enhance Vybrid support...
o Expand device tree information o Export iomuxc (pins) configuration to DTS o Allow devices to assign clocks in DTS o Split kernel configuration to chip common and board specific parts.
|
266144 |
15-May-2014 |
ian |
MFC r261137, r261393
Correct the alignment of sp through functions that use UNWINDSVCFRAME.
Update all arm code that manipulates the PSR registers to use modern syntax.
|
266128 |
15-May-2014 |
ian |
MFC r261351, r261352, r261355, r261396, r261397, r261398, r261403, r261404, r261405
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.
Provide a simpler and more standards-compliant simplebus implementation to get the Routerboard 800 up and running with the vendor device tree. This does not implement some BERI-specific features (which hopefully won't be necessary soon), so move the old code to mips/beri, with a higher attach priority when built, until MIPS interrupt domain support is rearranged.
Allow nesting of simplebuses.
Add a set of helpers (ofw_bus_get_status() and ofw_bus_status_okay()) to process "status" properties of OF nodes.
Fix one remnant endian flaw in nexus.
|
266113 |
15-May-2014 |
ian |
MFC r258546: Add watchdog driver for rk3188.
|
266110 |
15-May-2014 |
ian |
MFC r261252, r261279, r261304, r261305, r261322, r261336, r261337, r261338, r261353
Fix the name of the dts file for the HL201...
When mapping an address, the bsh needs the same offset we do for other things.
Add explicit depends on bus_if.h and device_if.h to avoid a chicken and egg problem in some compilation environments.
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.
Comment cleanups. Move things around for diff reduction against FDT work.
|
266105 |
15-May-2014 |
loos |
MFC r258046, r258047, r258050, r259035, r259036, r259037, r261842, r261843, r261844, r261845, r261846, r262194, r262522, r262559
r258046: Fix a typo on a comment in ofw_bus_if.m, the default method will return -1 when a node doesn't exist.
r258047: Move the KASSERT() check to the point before the increase of number of pins.
r258050: Fix gpiobus to return BUS_PROBE_GENERIC insted of BUS_PROBE_SPECIFIC (0) so it can be overriden by its OFW/FDT version.
Give a chance for GPIO devices that implement the device_identify method to attach.
r259035: Remove unnecessary includes and an unused softc variable. While here apply two minor style(9) fixes.
r259036: Move the GPIOBUS_SET_PINFLAGS(..., ..., pin, GPIO_PIN_OUTPUT) to led(4) control callback function. This makes gpioled(4) works even if the pin is accidentally set to an input.
r259037: Fix the pin value reading on AM335x. Because of the inverted logic it was always returning '0' for all the reads, even for the outputs. It is now known to work with gpioiic(4) and gpioled(4).
r261842: Add an OFW GPIO compatible bus. This allows the use of the DTS files to describe GPIO bindings in the system.
Move the GPIOBUS lock macros to gpiobusvar.h as they are now shared between the OFW and the non OFW versions of GPIO bus.
Export gpiobus_print_pins() so it can also be used on the OFW GPIO bus.
r261843: Add OFW support to the in tree gpio compatible devices: gpioiic(4) and gpioled(4).
Tested on RPi and BBB (using the hardware I2C controller and gpioiic(4) for the I2C tests). It was also verified for regressions on RSPRO (MIPS/ar71xx) used as reference for a non OFW-based system.
Update the gpioled(4) and gpioiic(4) man pages with some details and examples about the FDT/OFW support.
Some compatibility details pointed out by imp@ will follow in subsequent commits.
r261844: Allow the use of OFW I2C bus together with iicbb(4) on OFW-based systems.
This change makes ofw_iicbus attach to iicbb(4) controllers in addition to the already supported i2c host bridges (iichb).
On iicbb(4) allow the direct access of the OFW parent node by its children, so they can be directly attached to iicbb(4) node on the DTS without the need of describing the i2c bus.
r261845: Allow the use of the OFW GPIO bus for ti_gpio and bcm2835_gpio. With this change the gpio children can be described as directly connected to the GPIO controller without the need of describing the OFW GPIO bus itself on the DTS file.
With this commit the OFW GPIO bus is fully functional on BBB and RPi.
GPIO controllers which want to use the OFW GPIO bus will need similar changes.
r261846: Make the gpioled(4) work out of the box on BBB.
Add gpioled(4) to BEAGLEBONE kernel and add the description of the four on-board leds of beaglebone-black to its DTS file.
r262194: Remove an unnecessary header.
r262522: Fix make depend for iicbus.
r262559: Inspired by r262522, fix make depend. This fixes the build of gpio modules.
|
266098 |
15-May-2014 |
ian |
MFC r258209, r258210, r261211,
Add a driver for the Texas Instruments Mailbox hardware.
Add a driver for the TI Programmable Realtime Unit Subsystem.
fix args to mtx_init
|
266097 |
14-May-2014 |
ian |
MFC r260886, r261165, r261171, r261172, r261214
Fix gcc with -Wstrict-prototypes by telling it bi_emac takes no parameters.
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.
Make early printf output nicer by inserting a carriage return before any linefeeds that are output.
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.
Remove extra parens to silence clang warning.
|
266095 |
14-May-2014 |
ian |
MFC r261083, r261092, r261126, r261127, r261128, r261129, r261130, r261131
Add Atmel serial drivers.
uart clock-frequency is a FreeBSD-specific extention. Make it optional and allow the client uart drivers to decide if a frequency is required.
Remove redundant declaration for uart devclass. Commit some unrelated, but harmless, FDT ifdefs.
Add at91 NAND support, Fix comment.
Remove obsolete options and fix comments
|
266094 |
14-May-2014 |
ian |
MFC r261038, r261039, r261040, r261041
Implement generic support for early printf.
|
266090 |
14-May-2014 |
ian |
MFC r260921: Add nand to arm NOTES
|
266088 |
14-May-2014 |
ian |
MFC r259728, r260752
Add Freescale i.MX515 vt(9) driver.
|
266087 |
14-May-2014 |
ian |
MFC r260695, r260696, r260884, r260885, r260886, r260887
Provide a simplified way to specify GPIO pins for the Atmel port.
Add at91 data so we can convert a PIO unit number into a base address.
Add at91 standard memory controller helper functions.
Generalize AT91 NAND support a bit.
Connect NAND for the SAM9260EK eval board, as well as the HotE HL-201.
Add nand device and NANDFS into the mix for those at91 boards that have support for it at the moment.
|
266086 |
14-May-2014 |
ian |
MFC r260440, r260441, r260447, r260490, r260493
Add option USB_HOST_ALIGN to configs that contain 'device usb'.
Update dts files of Cubieboard1,2 to use 1GB memory.
Add a function to print the contents of the static device mapping table,
|
266085 |
14-May-2014 |
ian |
MFC r256839, r256948, r256950, r257299, r257414, r258057, r259090
Add configuration for the Freescale i.MX53 Quick Start Board.
Add the Raspberry Pi BSC (I2C compliant) controller driver.
Add Radxa Rock board (by radxa.com) support.
Digi-CCWMX53: enable ffec and uart, USB.
Add support for Freescale Vybrid Family VF600
Move and rename dwc otg driver to more generic one as it appears to work for rk3188 SoC based board too.
|
266084 |
14-May-2014 |
ian |
MFC r257738, r259202, r258410, r260288, r260292, r260294, r260320, r260323, r260326, r260327, r260331, r260333, r260340, r260371, r260372, r260373, r260374, r260375
Add common bus_space tag definition shared for most supported ARMv6/v7 SoCs. Correct license statements to reflect the fact that these files were all derived from sys/arm/mv/bus_space.c.
In pmap_unmapdev(), remember the size, and use that as an argument to kva_free(), or we'd end up always passing it a size of 0
In pmap_mapdev(), first check whether a static mapping exists,
Convert TI static device mapping to use the new arm_devmap_add_entry(),
Use the common armv6 fdt_bus_tag defintion for tegra instead of a local copy.
Eliminate use of fdt_immr_addr(), it's not needed for tegra
Convert lpc from using fdt_immr style to arm_devmap_add_entry() to make static device mappings.
Retire machine/fdt.h as a header used by MI code, as its function is now obsolete. This involves the following pieces: - Remove it entirely on PowerPC, where it is not used by MD code either - Remove all references to machine/fdt.h in non-architecture-specific code (aside from uart_cpu_fdt.c, shared by ARM and MIPS, and so is somewhat non-arch-specific). - Fix code relying on header pollution from machine/fdt.h includes - Legacy fdtbus.c (still used on x86 FDT systems) now passes resource requests to its parent (nexus). This allows x86 FDT devices to allocate both memory and IO requests and removes the last notionally MI use of fdtbus_bs_tag. - On those architectures that retain a machine/fdt.h, unused bits like FDT_MAP_IRQ and FDT_INTR_MAX have been removed.
Add #include <machine/fdt.h> to a few files that used to get it via pollution
Enable the mv cesa security/crypto device by providing the required property in the dts source, and adding the right devices to the kernel config.
Remove dev/fdt/fdt_pci.c, which was code specific to Marvell ARM SoCs, related to setting up static device mappings. Since it was only used by arm/mv/mv_pci.c, it's now just static functions within that file, plus one public function that gets called only from arm/mv/mv_machdep.c.
Switch RPi to using arm_devmap_add_entry() to set up static device mapping.
Allow 'no static device mappings' to potentially work.
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.
Switch a10 to using arm_devmap_add_entry() to set up static device mapping.
|
266079 |
14-May-2014 |
ian |
MFC r260281, r260282, r260283, r260285
Implement OFW_BUS_MAP_INTR() in terms of the FDT PIC table
Reimplement fdt_intr_to_rl() in terms of OFW_BUS_MAP_INTR() and OFW_BUS_CONFIG_INTR().
Use bus_space_map() rather than pmap_mapdev() in nexus_activate_resource(), when running on FDT systems. Unmap memory in nexus_deactivate_resource().
Remove fdt_pic_table code from MIPS, PowerPC, and x86, as it is no longer used by anything.
|
266070 |
14-May-2014 |
ian |
MFC r260161, r260163, r260165, r260166, r260189
Add polarity and level support to ARM GIC
Do not attach to PCI bridges in AHCI driver
Use only mapped BIOs on ARM
Fix race condition in DELAY for SP804 timer.
|
266065 |
14-May-2014 |
ian |
MFC r260092, r260093, r260121, r260180,
Allow AT91_MCI_ALLOW_OVERCLOCK to be an option in kernel config files.
Set the SoC name for the atmelbus name.
Add support for Samsung K9F2G08U0A (256MiB SLC) NAND
Comment updates.
|
266058 |
14-May-2014 |
ian |
MFC r258359, r258742, r258845, r259936, r259640
Apply access flags for managed and unmanaged pages properly on ARMv6/v7
Set the PGA_WRITEABLE flag when the protections indicate write access, not just when the current access is a write.
Enable missing Access Flag for secondary cores on ARMv6/v7
Add identification and necessary type checks for Krait CPU cores.
|
266050 |
14-May-2014 |
ian |
MFC r256707, r256708, r257291, r258358
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 Spell cpu_l2cache_wb_range correctly.
Fix condition that determines PMAP_NEEDS_PTE_SYNC value for ARM
Use values of the correct defines to determine statement's result. ARM_ARCH_ symbols are always defined, hence only values are relevant.
Avoid clearing EXEC permission bit when setting the page RW on ARMv6/v7
When emulating modified bit the executable attribute was cleared by mistake when calling pmap_set_prot().
|
266046 |
14-May-2014 |
ian |
MFC r257170, r257171, r257172, r257240, r257278, r257279, r257280, r257281, r257282, r257332
Wait for DesignWare UART transfers completion before accessing line control
Enable UART busy detection handling for Armada XP - based board
Enable SATA interface on Armada XP Run mvs SATA driver on Armada XP instead of old mv_sata
Retire arm_remap_nocache() and the data and constants associated with it.
Remove hard-coded mappings related to Armada XP support
Fix-up DTB for Armada XP registers' base according to the actual settings
Change Armada XP kernel load address to the u-boot's end address
Remove not working and deprecated PJ4Bv6 support
Switch off explicit broadcasting of the TLB flush operations for PJ4B CPU
Add missing ARMv6 CPU functions to ARM Makefile
|
266022 |
14-May-2014 |
ian |
MFC r259517, r259518
Add vt support for RPi. (No early stage yet.)
|
266020 |
14-May-2014 |
ian |
MFC r258800, r258802, r258805, r258806, r258807, r258851, r258857, r259199, r259484, r259513, r259514, r259516
The kernel stack guard pages are only below the stack pointer, not above.
Remove unnecessary double-setting of the thread's onfault state in copyinstr().
Open Firmware mandates that certain cross-references, in particular those in /chosen, be ihandles. The ePAPR spec makes those cross-reference phandles, since FDT has no concept of ihandles. Have the OF FDT CI module interpret queries about ihandles as cross-reference phandles.
Real OF systems have an ihandle under /chosen/stdout, not a phandle. Use the right type.
Rearchitect platform memory map parsing to make it less Open Firmware-centric.
Remove fdtbus_bs_tag definition, which is now obsolete. The remainder of this file is also slated for future demolition.
Return the correct IEEE 1275 code for "nextprop".
Use the common Open Firmware PCI interrupt routing code instead of the duplicate version in dev/fdt.
Configure interrupt sense based on device tree information.
Simplify the ofw_bus_lookup_imap() API slightly: make it allocate maskbuf internally instead of requiring the caller to allocate it.
|
266000 |
14-May-2014 |
ian |
MFC r257702, r257745, r257746, r257747, r257751, r257791, r257793, r257794, r257795, r257992
Teach nexus(4) about Open Firmware (e.g. FDT) on ARM and MIPS, retiring fdtbus in most cases.
Make OF_nextprop() work correctly for FDT by using the libfdt fdt_next_property_offset() API.
Do not panic if pmap_mincore() is called.
An addendum: it is possible, though of questionable utility, for a node to have no properties at all. Add definition for the Atheros 8021 gigabit PHY.
Consolidate Apple firmware hacks and improve them by switching on the presence of mac-io devices in the tree, which uniquely identifies Apple hardware.
Allow OF_decode_addr() to also be able to map resources on big-endian devices.
Make tsec work with the device tree present on the RB800.
Be more flexible about which compatible strings to accept. This brings up the PCI Express bus on the RB800 using the firmware device tree.
Rename the "bare" platform "mpc85xx", which is what it actually is, and add actual platform probing based on PVR.
|
265999 |
14-May-2014 |
ian |
MFC r257334, r257336, r257337, r257338, r257341, r257342, r257343, r257370, r257368, r257416
Hints-only devices should return BUS_PROBE_NOWILDCARD from their probe methods.
|
265967 |
13-May-2014 |
ian |
MFC r256932, r256938, r256966, r256953, r256967, r256969, r257015:
Add a new function (OF_getencprop()) that undoes the transformation applied by encode-int. Specifically, it takes a set of 32-bit cell values and changes them to host byte order. Most non-string instances of OF_getprop() should be using this function, which is a no-op on big-endian platforms.
Use the new function all over the place.
|
265940 |
12-May-2014 |
ian |
MFC r259750, r260245: Add PPS support to the am335x timer driver.
|
265939 |
12-May-2014 |
ian |
MFC r259744, cleanups to move global vars into softc, use named values, etc.
|
265938 |
12-May-2014 |
ian |
MFC r259739, r259743: Shorten DMTIMER_->DMT_, #define all register constants.
|
265936 |
12-May-2014 |
ian |
MFC r259099: Fix a small error in calculating length of DELAY().
|
265810 |
10-May-2014 |
rpaulo |
MFC r259126:
Activate the device before attempt to access any of its registers. Without this change we may end up with a panic (Fatal kernel mode data abort: 'External Non-Linefetch Abort (S)') as described in http://e2e.ti.com/support/arm/sitara_arm/f/791/t/276862.aspx.
It is now possible to bring up I2C1 and I2C2 on BBB.
|
265606 |
07-May-2014 |
scottl |
Merge r264984
Retire smp_active. It was racey and caused demonstrated problems with the cpufreq code. Replace its use with smp_started. There's at least one userland tool that still looks at the kern.smp.active sysctl, so preserve it but point it to smp_started as well.
Obtained from: Netflix, Inc.
|
264496 |
15-Apr-2014 |
tijl |
MFC r263998:
Rename __wchar_t so it no longer conflicts with __wchar_t from clang 3.4 -fms-extensions.
|
263456 |
21-Mar-2014 |
dim |
MFC r262408 (by ian):
Eliminate an unused-var warning by wrapping #if 0 around some tables of values that were probably entered "for completeness" from a datasheet, and for all I know may be useful/necessary some day.
|
263455 |
21-Mar-2014 |
dim |
MFC r262393 (by ian):
Fix a typo _IMX51_TZICRREG_H_ -> _IMX51_TZICREG_H_ (extra R)
|
263017 |
11-Mar-2014 |
jhay |
MFC r262020:
Make it possible to use the env kernel config file option for AVILA and CAMBRIA boards that does not use loader to load the kernel. This is basically how it was done for i386. This way tunables can also be set. For example in config file:
env "/conf/AVILA.env"
And in AVILA.env:
vfs.unmapped_buf_allowed=0
|
262698 |
02-Mar-2014 |
imp |
MRC: r260886
Merge only the uart_dev_at91usart.c part of this revision, since it has nothing to do with the commit log and was included by mistake there.
This connects the new grab/ungrab upcalls that were revised in uart to fix mountroot>.
|
262649 |
01-Mar-2014 |
imp |
MFC: r260889, r260890, r260911:
r260911 | imp | 2014-01-20 10:45:36 -0700 (Mon, 20 Jan 2014) | 5 lines
Don't lock in the generic grab just to lock again in the specific grabs.
r260890 | imp | 2014-01-19 12:39:13 -0700 (Sun, 19 Jan 2014) | 11 lines
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)
|
262586 |
28-Feb-2014 |
brueffer |
MFC: r261884
Correct the order of arguments to mtx_init().
PR: 186701 Submitted by: Takanori Sawada <tak.swd at gmail.com>
|
261490 |
04-Feb-2014 |
eadler |
MFC r258787: r258780 should not have applied to .S files.
|
261455 |
04-Feb-2014 |
eadler |
MFC r258779,r258780,r258787,r258822:
Fix undefined behavior: (1 << 31) is not defined as 1 is an int and this shifts into the sign bit. Instead use (1U << 31) which gets the expected result.
Similar to the (1 << 31) case it is not defined to do (2 << 30).
This fix is not ideal as it assumes a 32 bit int, but does fix the issue for most cases.
A similar change was made in OpenBSD.
|
261078 |
23-Jan-2014 |
loos |
MFC r256959:
Add the Raspberry Pi BSC (I2C compliant) controller driver.
Reviewed by: rpaulo
MFC r256961:
Enable the build of OFW I2C bus for FDT systems.
MFC r258045:
As all the IIC controllers on system uses the same 'iichb' prefix we cannot rely only on checking the device unit to indentify the BSC unit we are attaching to. Make use of the device base address to identify our BSC unit.
MFC r259127:
Bring the RPi I2C driver in line with ti_i2c. Make it treat any slave address as a 7-bit address.
Approved by: adrian (mentor)
|
261077 |
23-Jan-2014 |
loos |
MFC r257127:
Remove all the instances of '#undef DEBUG' from kernel.
Suggested by: rpaulo Approved by: adrian (mentor)
|
259963 |
27-Dec-2013 |
adrian |
Revert r252694 from stable/10 to fix instabilities seen with jemalloc + dhclient/sshd.
This is a direct commit to stable/10 as the VM code has changed since the stable/10 branch.
PR: kern/185046
|
259831 |
24-Dec-2013 |
jhb |
MFC 258177: Remove an incorrectly copied and pasted clause from these license statements.
|
259759 |
23-Dec-2013 |
imp |
MFC r259685:
Plumb the cn_grab and cn_ungrab routines down into the uart clients. Mask RX interrupts while grabbed on the atmel serial driver. This UART interrupts every character. When interrupts are enabled at the mountroot> prompt, this means the ISR eats the characters. Rather than try to create a cooperative buffering system for the low level kernel console, instead just mask out the ISR. For NS8250 and decsendents this isn't needed, since interrupts only happen after 14 or more characters (depending on the fifo settings). Plumb such that these are optional so there's no change in behavior for all the other UART clients. ddb worked on this platform because all interrupts were disabled while it was running, so this problem wasn't noticed. The mountroot> issue has been around for a very very long time.
Approved by: re@ (gjb@)
|
259510 |
17-Dec-2013 |
kib |
MFC r257228: Add bus_dmamap_load_ma() function to load map with the array of vm_pages.
|
259381 |
14-Dec-2013 |
ian |
MFC r259212, r259220:
Fix one race and one fence post error. When the TX buffer was completely full, we'd not complete any of the mbufs due to the fence post error (this creates a large leak). When this is fixed, we still leak, but at a much smaller rate due to a race between ateintr and atestart_locked as well as an asymmetry where atestart_locked is called from elsewhere. Ensure that we free in-flight packets that have completed there as well. Also remove needless check for NULL on mb, checked earlier in the loop and simplify a redundant if.
|
259380 |
14-Dec-2013 |
ian |
MFC r259038, r259039:
Bump the maximum VM space from 3 * memory size to a fixed 256MB. That's all we have room for since we map the hardware registers starting at 0xd0000000. This allows my 64MB AT91SAM9G20 to boot again after the unmmaped I/O changes were MFC'd at r251897. Other subplatforms may need similar treatment.
Although not strictly required to boot a 64MB board, bump vm_max_virtual_address to be KERNVIRTADDR + 256MB. This allows some future shock protection since the KVA requirements have gone up since the unmapped changes have gone in, as well as preventing us from overlapping with the hardware devices, which we map at 0xd0000000, which we'd hit with anything more than 85MB...
|
259379 |
14-Dec-2013 |
ian |
MFC r258828:
Add a nand flash controller driver for Atmel at91 family. Tested only on at91rm9200 so far.
|
259378 |
14-Dec-2013 |
ian |
MFC r258820: Add definitions for the PIO pins found on recent AT91 SoCs.
|
259377 |
14-Dec-2013 |
ian |
MFC r258392, r258412:
Call cpu_setup() immediately after the page tables are installed. This enables data cache and other chip-specific features. It was previously done via an early SYSINIT, but it was being done after pmap and vm setup, and those setups need to use mutexes. On some modern ARM platforms, the ldrex/strex instructions that implement mutexes require the data cache to be enabled.
Call cpu_setup() from the initarm() routine on platforms that don't use the common FDT-aware initarm() in arm/machdep.c.
|
259375 |
14-Dec-2013 |
ian |
MFC r258393:
Add USB_HOST_ALIGN=64; the cache line size on the am335x is 64 bytes.
|
259374 |
14-Dec-2013 |
ian |
MFC r258356:
Bugfixes... the host capabilties from FDT data are stored in host.caps, not host.host_ocr, examine the correct field when setting up the hardware. Also, the offset for the capabilties register should be 0x140, not 0x240.
|
259373 |
14-Dec-2013 |
ian |
MFC r258240:
In the data abort handler, don't panic if kdb is available and says it handled the condition.
|
259366 |
14-Dec-2013 |
ian |
MFC r257924:
Apparently with "const uint32_t foo = 0x60;" gcc doesn't consider 'foo' to be a constant integer suitable for use in a case label, so use #defines.
|
259365 |
14-Dec-2013 |
ian |
MFC r257669, r257672, r257673, r257676, r257678:
Call initarm_lastaddr() later in the init sequence, after establishing static device mappings, rather than as the first of the initializations that a platform can hook into. This allows a platform to allocate KVA from the top of the address space downwards for things like static device mapping, and return the final "last usable address" result after that and other early init work is done.
Because some platforms were doing work in initarm_lastaddr() that needs to be done early, add a new initarm_early_init() routine and move the early init code to that routine on those platforms.
Make PTE_DEVICE a synonym for PTE_NOCACHE on armv4, to make it easier to share the same code on both architectures.
Add new helper routines for arm static device mapping. The new code allocates kva space from the top down for the device mappings and builds entries in an internal table which is automatically used later by arm_devmap_bootstrap(). The platform code just calls the new arm_devmap_add_entry() function as many times as it needs to (up to 32 entries allowed; most platforms use 2 or 3 at most).
Remove imx local devmap code and use the essentially identical common code that got moved from imx_machdep.c to arm/devmap.c.
|
259364 |
14-Dec-2013 |
ian |
MFC r257648, r257649, r257660:
Begin reducing code duplication in arm pmap.c and pmap-v6.c by factoring out common code related to mapping device memory into a new devmap.c file.
Remove the growing duplication of code that used pmap_devmap_find_pa() and then did some math with the returned results to generate a virtual address, and likewise in reverse to get a physical address. Now there are a pair of functions, arm_devmap_vtop() and arm_devmap_ptov(), to do that. The bus_space_map() implementations are rewritten in terms of these.
Move remaining code and data related to static device mapping into the new devmap.[ch] files. Emphasize the MD nature of these things by using the prefix arm_devmap_ on the function and type names (already a few of these things found their way into MI code, hopefully it will be harder to do by accident in the future).
|
259363 |
13-Dec-2013 |
ian |
MFC r257639:
Remove the duplicated implementations of some bus_space functions and use the essentially identical generic implementations instead. The generic implementations differ only in the spelling of a couple variable names and some formatting differences.
|
259361 |
13-Dec-2013 |
ian |
MFC r257603, r257604:
Rename WANDBOARD-COMMON to WANDBOARD.common and adjust the configs that include it accordingly. The build machinery for universe and tinderbox tries to build every kernel config whose name begins and ends with [A-Z0-9] and the common include file that has most of the options isn't buildable by itself, so the new lowercase .common will avoid building it.
|
259360 |
13-Dec-2013 |
ian |
MFC r257595: Comments and style(9) only, no functional changes.
|
259359 |
13-Dec-2013 |
ian |
MFC r257561:
Bugfix: the attach routine needs to use the same table of fdt compat strings that the probe routine used.
|
259358 |
13-Dec-2013 |
ian |
MFC r257557: Add a missing register definition.
|
259356 |
13-Dec-2013 |
ian |
MFC r257518, r257519:
TI sdhci driver improvements, mostly related to fdt data...
Use the published compatible strings (our own invention, "ti,mmchs" is still accepted as well, for now).
Don't blindly turn on 8-bit bus mode, because even though the controller supports it, the board has to be wired appropriately as well. Use the published property (bus-width=<n>) and honor all the valid values (1,4,8).
The eMMC device on a Beaglebone Black is wired for 8-bit, update the dts.
The mmchs controller can inherently do both 1.8v and 3.0v on the first device and 1.8v only on other devices, unless an external transceiver is used. Set the voltage automatically for the first device and honor the published fdt property (ti,dualvolt) for other devices.
|
259355 |
13-Dec-2013 |
ian |
MFC r257483, r257486, r257489:
Add the Soc- / machine-dependent parts of imx6 support. Add dts source for imx6 SoCs and for Wandboard boards. Add kernel config for Wandboard.
|
259354 |
13-Dec-2013 |
ian |
MFC r257476, r257478:
Revamp the SoC identity numbering scheme to be more in line with the way Freescale numbers the chips in the ID registers.
Add definitions for the register and data that describes the SoC type.
|
259353 |
13-Dec-2013 |
ian |
MFC r257454: Add sdhci driver glue for imx family SoCs.
|
259352 |
13-Dec-2013 |
ian |
MFC r257453: Add stubbed-out imx6 support for clocks and power management.
|
259351 |
13-Dec-2013 |
ian |
MFC r257452: Add support for the USB PHY on imx6 SoCs.
|
259349 |
13-Dec-2013 |
ian |
MFC r257419:
Do not EOI an interrupt until the point after the filter handlers / before threaded handlers.
|
259348 |
13-Dec-2013 |
ian |
MFC r257418:
Don't iterate through the bits of the pending interrupt register if the whole register is zero. Most of the registers will be zero most of the time.
|
259347 |
13-Dec-2013 |
ian |
MFC r257413:
Reset the timer interrupt status register at the top rather than bottom of the interrupt handler. If the event callback starts a new short timeout, the timer can fire before returning from the event callback, and clearing the interrupt status after that loses the interrupt and hangs until the counter wraps. Fixing all of this removes the need for the do-nothing loop at the top of the handler which really just waited for the counter to roll over and reach the one-shot count again.
Also add a missing return(0) in the periodic timer start case.
|
259346 |
13-Dec-2013 |
ian |
MFC r257407:
Expand the list of compatible devices this driver works with. Increase the target frequency from 1 to 10 MHz because these SoCs are plenty fast enough to benefit from the extra event timer resolution.
|
259343 |
13-Dec-2013 |
ian |
MFC r257383, r257384:
Add some bare-bones support for enabling usb and usbphy clocks.
Add a "no-op" USB PHY driver for imx-family SoCs.
|
259342 |
13-Dec-2013 |
ian |
MFC r257258, r257265: Include headers (if_var.h and others) where needed.
The change that triggered the need for this on head was r257244. That hasn't been MFC'd yet, but there's no harm in paving the way for it with this MFC.
|
259337 |
13-Dec-2013 |
ian |
MFC r257203: Eliminate a compiler warning about extraneous parens.
|
259335 |
13-Dec-2013 |
ian |
MFC r257201, r257202
Retire arm_remap_nocache() and the data and constants associated with it.
|
259329 |
13-Dec-2013 |
ian |
MFC r257199, r257200, r257217:
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.
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.
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.
|
259325 |
13-Dec-2013 |
ian |
MFC r257062: Add the Raspberry Pi SPI controller driver.
|
259324 |
13-Dec-2013 |
ian |
MFC r256949: Import basic support for Rockchip RK3188 SoC.
|
259322 |
13-Dec-2013 |
ian |
MFC r257197:
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(). Premap most of the device's on-chip peripherals.
|
259318 |
13-Dec-2013 |
ian |
MFC r256809: Add configuration for the Freescale i.MX53 Quick Start Board.
|
259317 |
13-Dec-2013 |
ian |
MFC r256806, r256919, r257167:
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.
Mask out non-address bits in the mac address register, for proper detection of an all-zeroes address. Also remove a misplaced return.
Switch to using ofw_bus_search_compatible() table-driven compat lookup. Add compat strings for Freescale Vybrid family SoCs.
|
259315 |
13-Dec-2013 |
ian |
MFC r256804:
Switch to using the standard uart console driver instead of the special driver for early boot debugging.
|
259314 |
13-Dec-2013 |
ian |
MFC r256774:
Clock divisors 0-3 correspond to dividing by 1-4, so add 1 before dividing.
|
259313 |
13-Dec-2013 |
ian |
MFC r256647:
Invalidate the entire L2 cache before enabling it. Say whether it has been enabled or disabled.
|
259310 |
13-Dec-2013 |
ian |
MFC r256638:
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.
|
259309 |
13-Dec-2013 |
ian |
MFC r256637:
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.
|
259308 |
13-Dec-2013 |
ian |
MFC r256628: 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.
|
256292 |
10-Oct-2013 |
dim |
MFC r256291:
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)
|
256281 |
10-Oct-2013 |
gjb |
Copy head (r256279) to stable/10 as part of the 10.0-RELEASE cycle.
Approved by: re (implicit) Sponsored by: The FreeBSD Foundation
|
256196 |
09-Oct-2013 |
dim |
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
|
255967 |
01-Oct-2013 |
br |
- 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)
|
255816 |
23-Sep-2013 |
loos |
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)
|
255786 |
22-Sep-2013 |
glebius |
- 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)
|
255738 |
20-Sep-2013 |
zbb |
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)
|
255724 |
20-Sep-2013 |
alc |
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
|
255677 |
18-Sep-2013 |
pjd |
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)
|
255613 |
16-Sep-2013 |
zbb |
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
|
255612 |
16-Sep-2013 |
zbb |
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
|
255611 |
16-Sep-2013 |
zbb |
Write protect base page after superpage demotion so that it may repromote
When clearing the modification status of the superpage, one of the base pages produced during demotion should be marked as write disabled. The intention is that subsequent write access may repromote. In the current implementation this was done wrong as write permission was granted instead of forbidden.
Approved by: cognet (mentor) Approved by: re
|
255370 |
07-Sep-2013 |
loos |
Export a function to allow BCM2835's peripheral devices to enable their altenate pin function (from GPIO pins) as needed.
Approved by: adrian (mentor)
|
255361 |
07-Sep-2013 |
andrew |
On ARM EABI double precision floating point values are stored in the endian the CPU is in, i.e. little-endian on most ARM cores.
This allows ARMv4 and ARMv5 boards to boot with the ARM EABI.
|
255352 |
07-Sep-2013 |
glebius |
Fix of r255318: move sf_buf_alloc()/sf_buf_free() out of #ifdef ARM_USE_SMALL_ALLOC.
|
255334 |
06-Sep-2013 |
loos |
Fix an off-by-one bug in ar71xx_gpio and bcm2835_gpio which makes the last pin unavailable.
Reported and tested by: sbruno (ar71xx) Approved by: adrian (mentor) Pointy hat to: loos
|
255318 |
06-Sep-2013 |
glebius |
Fix build with gcc. Move sf_buf_alloc()/sf_buf_free() declarations to MD headers.
|
255151 |
02-Sep-2013 |
rpaulo |
Revert accidental commit.
|
255130 |
01-Sep-2013 |
rpaulo |
Initial support for the Digi ConnectCore(c) i.MX53 / Wi-i.MX53 boards.
There are many drivers missing, but we can reach single user mode now.
Hardware graciously donated by Douglas Beattie.
|
255092 |
31-Aug-2013 |
theraven |
Unconditionally compile the __sync_* atomics support functions into compiler-rt for ARM. This is quite ugly, because it has to work around a clang bug that does not allow built-in functions to be defined, even when they're ones that are expected to be built as part of a library.
Reviewed by: ed
|
255091 |
31-Aug-2013 |
rpaulo |
Fix a typo in a comment.
|
255028 |
29-Aug-2013 |
alc |
Significantly reduce the cost, i.e., run time, of calls to madvise(..., MADV_DONTNEED) and madvise(..., MADV_FREE). Specifically, introduce a new pmap function, pmap_advise(), that operates on a range of virtual addresses within the specified pmap, allowing for a more efficient implementation of MADV_DONTNEED and MADV_FREE. Previously, the implementation of MADV_DONTNEED and MADV_FREE relied on per-page pmap operations, such as pmap_clear_reference(). Intuitively, the problem with this implementation is that the pmap-level locks are acquired and released and the page table traversed repeatedly, once for each resident page in the range that was specified to madvise(2). A more subtle flaw with the previous implementation is that pmap_clear_reference() would clear the reference bit on all mappings to the specified page, not just the mapping in the range specified to madvise(2).
Since our malloc(3) makes heavy use of madvise(2), this change can have a measureable impact. For example, the system time for completing a parallel "buildworld" on a 6-core amd64 machine was reduced by about 1.5% to 2.0%.
Note: This change only contains pmap_advise() implementations for a subset of our supported architectures. I will commit implementations for the remaining architectures after further testing. For now, a stub function is sufficient because of the advisory nature of pmap_advise().
Discussed with: jeff, jhb, kib Tested by: pho (i386), marcel (ia64) Sponsored by: EMC / Isilon Storage Division
|
254918 |
26-Aug-2013 |
raj |
Introduce superpages support for ARMv6/v7.
Promoting base pages to superpages can increase TLB coverage and allow for efficient use of page table entries. This development provides FreeBSD/ARM with superpages management mechanism roughly equivalent to what we have for i386 and amd64 architectures.
1. Add mechanism for automatic promotion of 4KB page mappings to 1MB section mappings (and demotion when not needed, respectively).
2. Managed and non-kernel mappings are now superpages-aware.
3. The functionality can be enabled by setting "vm.pmap.sp_enabled" tunable to a non-zero value (either in loader.conf or by modifying "sp_enabled" variable in pmap-v6.c file). By default, automatic promotion is currently disabled.
Submitted by: Zbigniew Bodek <zbb@semihalf.com> Reviewed by: alc Sponsored by: The FreeBSD Foundation, Semihalf
|
254915 |
26-Aug-2013 |
raj |
Provide settings for superpage reservation system on ARM.
This allows for enabling and configuring superpages reservation mechanism in order to allocate and populate 256 4KB base pages (for the purpose of promotion to a 1MB superpage).
Submitted by: Zbigniew Bodek <zbb@semihalf.com> Reviewed by: alc Sponsored by: The FreeBSD Foundation, Semihalf
|
254913 |
26-Aug-2013 |
raj |
Add missing TAILQ initializer (omitted in r250634).
Submitted by: Zbigniew Bodek <zbb@semihalf.com> Reviewed by: alc Sponsored by: The FreeBSD Foundation, Semihalf
|
254902 |
26-Aug-2013 |
andrew |
Update the root device to be correct for use with crochet.
|
254901 |
26-Aug-2013 |
andrew |
Revert r251370 as it contains a deadlock.
|
254847 |
25-Aug-2013 |
andrew |
Add the frame information to cpu_switch to allow us to unwind out of it, for example when dumping threads in the kernel debugger.
|
254845 |
25-Aug-2013 |
andrew |
Add the unwind information to irq_entry so we can pass through it when unwinding the stack.
|
254667 |
22-Aug-2013 |
kib |
Revert r254501. Instead, reuse the type stability of the struct pmap which is the part of struct vmspace, allocated from UMA_ZONE_NOFREE zone. Initialize the pmap lock in the vmspace zone init function, and remove pmap lock initialization and destruction from pmap_pinit() and pmap_release().
Suggested and reviewed by: alc (previous version) Tested by: pho Sponsored by: The FreeBSD Foundation
|
254598 |
21-Aug-2013 |
ian |
Add support for uarts other than the serial console in TI OMAP SoCs.
The TI uart hardware is ns16550-compatible, except that before it can be used the clocks and power have to be enabled and a non-standard mode control register has to be set to put the device in uart mode (as opposed to irDa or other serial protocols). This adds the extra code in an extension to the standard ns8250 probe routine, and the rest of the driver is just the standard ns8250 code.
|
254593 |
21-Aug-2013 |
ian |
Make the noop clock successfully do nothing, because doing nothing and returning an error status (which the NULL method pointers caused) isn't nearly as useful.
|
254592 |
21-Aug-2013 |
ian |
Define the uart clocks so that they can be en/disabled at runtime.
|
254580 |
20-Aug-2013 |
andrew |
Enable VFP on ARMADA XP.
|
254559 |
20-Aug-2013 |
ian |
Make the standard sdhci(4) driver work for the TI OMAP family SoCs. The MMCHS hardware is pretty much a standard SDHCI v2.0 controller with a couple quirks, which are now supported by sdhci(4) as of r254507.
This should work for all TI SoCs that use the MMCHS hardware, but it has only been tested on AM335x right now, so this enables it on those platforms but leaves the existing ti_mmchs driver in place for other OMAP variants until they can be tested.
This initial incarnation lacks DMA support (coming soon). Even without it this improves performance pretty noticibly over the ti_mmchs driver, primarily because it now does multiblock IO.
|
254542 |
19-Aug-2013 |
andrew |
Enable VFP on the Zedboard.
|
254536 |
19-Aug-2013 |
raj |
Do not use pv_kva on ARMv6/v7 and save some space on each vm_page. It's only relevant for older ARM variants (with virtual cache).
Submitted by: Zbigniew Bodek <zbb@semihalf.com> Reviewed by: gber Sponsored by: The FreeBSD Foundation, Semihalf
|
254535 |
19-Aug-2013 |
raj |
Simplify and clean up pmap_clearbit()
There is no need for calling vm_page_dirty() when clearing "modified" flag as it is already set for that page in pmap_fault_fixup() or pmap_enter() thanks to "modified" bit emulation.
Also, there is no need for checking PTE "referenced" or "writeable" flags. If there is a request to clear a particular flag we should just do it.
Submitted by: Zbigniew Bodek <zbb@semihalf.com> Reviewed by: gber Sponsored by: The FreeBSD Foundation, Semihalf
|
254533 |
19-Aug-2013 |
raj |
Fix ARMv6/v7 mapping's wired status.
Last input argument in pmap_modify_pv() should be a mask of flags to be set. In pmap_change_wiring() however, the straight wired status was used, which does not represent valid flags (and is of type boolean).
This commit fixes the issue so that wired flag is passed to pmap_modify_pv() properly.
Submitted by: Zbigniew Bodek <zbb@semihalf.com> Reviewed by: gber Sponsored by: The FreeBSD Foundation, Semihalf
|
254532 |
19-Aug-2013 |
raj |
Clear all L2 PTE protection bits before their configuration.
Revise L2_S_PROT_MASK to include all of the protection bits. Notice that clearing these bits does not always take away the corresponding permissions (for example, permission is granted when the bit is cleared). The bits are cleared but are to be set or left cleared accordingly in pmap_set_prot(), pmap_enter_locked(), etc.
Clear L2_XN along with L2_S_PROT_MASK in pmap_set_prot() so that all permissions related bits are cleared before actual configuration.
Submitted by: Zbigniew Bodek <zbb@semihalf.com> Reviewed by: gber Sponsored by: The FreeBSD Foundation, Semihalf
|
254531 |
19-Aug-2013 |
raj |
Simplify pv_entry removal or ARMv6/v7:
- PGA_WRITEABLE indicates that there *might be* a writable mapping for the particular page, so to avoid frequent sweeping of the pv_entries whenever pmap_nuke_pv(), pmap_modify_pv(), etc. is called, it is sufficient to clear that flag if there are no managed mappings for that page anymore (notice that only pmap_enter is authorized to set this flag). - Avoid redundant checking for PVF_WIRED flag when this flag cannot be set anyway. - Clear PGA_WRITEABLE only once for each vm_page instead of multiple, redundant clearing it in loop when there are no writeable mappings to that page anymore.
Submitted by: Zbigniew Bodek <zbb@semihalf.com> Reviewed by: gber Sponsored by: The FreeBSD Foundation, Semihalf
|
254514 |
19-Aug-2013 |
andrew |
Enable VFP on the Arndale Board.
|
254495 |
18-Aug-2013 |
cognet |
Increase the max KVA available for general consumption on the Exynos 5.
Submitted by: Ruslan Bukin <br@bsdpad.com>
|
254494 |
18-Aug-2013 |
andrew |
Enable VFP in the Versatile PB (QEMU) kernel. Tested on QEMU 1.6.0.
|
254493 |
18-Aug-2013 |
andrew |
Enable VFP on the CubieBoard and CubieBoard 2.
|
254487 |
18-Aug-2013 |
andrew |
Enable VFP support on EFIKA MX.
|
254464 |
17-Aug-2013 |
ian |
Enable VFP support for BeagleBone.
|
254461 |
17-Aug-2013 |
andrew |
Rename device vfp to option VFP and retire the ARM_VFP_SUPPORT option. This simplifies enabling as previously both options were required to be enabled, now we only need a single option.
While here enable VFP on the PandaBoard.
|
254454 |
17-Aug-2013 |
andrew |
Remove the ARMFPE option. It is unsupported, and appears to be broken as arm_fpe_core_changecontext is not a function.
|
254452 |
17-Aug-2013 |
andrew |
Remove fpe_sp_state as we don't support fpe.
|
254451 |
17-Aug-2013 |
andrew |
Remove unused FPE code. This is not enabled anywhere as it is the only file I can find containing FAST_FPE. It appears this would not work as want_resched is not defined anywhere.
|
254299 |
13-Aug-2013 |
ian |
Rename imx_machdep.c to imx51_machdep.c, because it contains hardware addresses which are specific to the imx51 chips.
|
254281 |
13-Aug-2013 |
ian |
Add imx6 compatibility and make the driver work for any clock frequency.
There are still a couple references to imx51 ccm driver functions that will need to be changed after an imx6 ccm driver is written.
Reviewed by: ray
|
254229 |
11-Aug-2013 |
cognet |
Only allocate 2 bounce pages for maps that can only use them for buffers that are unaligned on cache lines boundary, as we will never need more.
|
254172 |
10-Aug-2013 |
cognet |
Use the correct address when calling kva_free()
Pointy hat to: cognet Spotted out by: alc
|
254171 |
10-Aug-2013 |
cognet |
- The address lies in the bus space handle, not in the cookie - Use the right address when calling kva_free() (Is there any reason why the s3c2xx0 comes with its own version of bs_map/ bs_unmap ? It seems to be just the same as in bus_space_generic.c)
|
254166 |
09-Aug-2013 |
cognet |
Instead of just trying to do it for arm, make sure vm_kmem_size is properly aligned in kmeminit(), where it'll work for any arch.
Suggested by: alc
|
254165 |
09-Aug-2013 |
cognet |
- The address lies in the bus space handle, not in the cookie - Use the right address when calling kva_free()
|
254164 |
09-Aug-2013 |
cognet |
Make sure vm_kmem_size is aligned on a page boundary, since that's what vmem expects.
|
254138 |
09-Aug-2013 |
attilio |
The soft and hard busy mechanism rely on the vm object lock to work. Unify the 2 concept into a real, minimal, sxlock where the shared acquisition represent the soft busy and the exclusive acquisition represent the hard busy. The old VPO_WANTED mechanism becames the hard-path for this new lock and it becomes per-page rather than per-object. The vm_object lock becames an interlock for this functionality: it can be held in both read or write mode. However, if the vm_object lock is held in read mode while acquiring or releasing the busy state, the thread owner cannot make any assumption on the busy state unless it is also busying it.
Also: - Add a new flag to directly shared busy pages while vm_page_alloc and vm_page_grab are being executed. This will be very helpful once these functions happen under a read object lock. - Move the swapping sleep into its own per-object flag
The KPI is heavilly changed this is why the version is bumped. It is very likely that some VM ports users will need to change their own code.
Sponsored by: EMC / Isilon storage division Discussed with: alc Reviewed by: jeff, kib Tested by: gavin, bapt (older version) Tested by: pho, scottl
|
254061 |
07-Aug-2013 |
cognet |
Don't bother trying to work around buffers which are not aligned on a cache line boundary. It has never been 100% correct, and it can't work on SMP, because nothing prevents another core from accessing data from an unrelated buffer in the same cache line while we invalidated it. Just use bounce pages instead.
Reviewed by: ian Approved by: mux (mentor) (implicit)
|
254056 |
07-Aug-2013 |
ganbold |
Bring initial support for Allwinner A20 SoC (Cubieboard2). Add support for A20 timer. Correct interrupt offset depending from chip. Add basic code for CPU configuration module. For now, add kernel config and dts file (only FDT blob related problem needs to be solved later in order to have one kernel for both cubieboard1 and 2).
Approved by: ray@
|
254025 |
07-Aug-2013 |
jeff |
Replace kernel virtual address space allocation with vmem. This provides transparent layering and better fragmentation.
- Normalize functions that allocate memory to use kmem_* - Those that allocate address space are named kva_* - Those that operate on maps are named kmap_* - Implement recursive allocation handling for kmem_arena in vmem.
Reviewed by: alc Tested by: pho Sponsored by: EMC / Isilon Storage Division
|
253985 |
06-Aug-2013 |
andrew |
We no longer need to align the stack before calling swi_handler as it is already aligned correctly in the PUSHFRAME macro.
|
253971 |
05-Aug-2013 |
cognet |
Let the platform calculate the timer frequency at runtime, and use that for the omap4, instead of relying on the (wrong) value provided in the dts.
|
253968 |
05-Aug-2013 |
andrew |
When entering exception handlers we may not have an aligned stack. This is because an exception may happen at any time. The stack alignment rules on ARM EABI state the only place the stack must be 8-byte aligned is on a function boundary.
If an exception happens while a function is setting up or tearing down it's stack frame it may not be correctly aligned. There is also no requirement for it to be when the function is a leaf node.
The fix is to align the stack after we have stored a backup of the old stack pointer, but before we have stored anything in the trapframe. Along with this we need to adjust the size of the trapframe by 4 bytes to ensure the stack below it is also correctly aligned.
|
253914 |
03-Aug-2013 |
ian |
Tweak the imx debug console code so that it works with multiple SoCs.
Instead of hard-coding the uart register addresses for the imx51, use a variable that defaults to the imx51 address. When debugging another imx-family SoC, the variable can be set early in initarm() to provide full console/printf support for debugging early boot.
|
253896 |
02-Aug-2013 |
cognet |
Only receive the interrupts on the first core, to avoid duplicate interrupts.
|
253857 |
01-Aug-2013 |
ganbold |
Add identification for Cortex-A7 (R0) cores.
Reviewed by: cognet@
|
253845 |
31-Jul-2013 |
obrien |
Back out r253779 & r253786.
|
253830 |
31-Jul-2013 |
rpaulo |
Initialisation routines for the mailbox, spinlock and PRU-ICSS clocks.
|
253788 |
29-Jul-2013 |
cognet |
The errata 727915 requires a different workaround for r2p0, we have to explicitely clean/invalidate every cache line using way/set operations.
|
253787 |
29-Jul-2013 |
cognet |
Remove useless cache operations.
|
253779 |
29-Jul-2013 |
obrien |
Decouple yarrow from random(4) device.
* Make Yarrow an optional kernel component -- enabled by "YARROW_RNG" option. The files sha2.c, hash.c, randomdev_soft.c and yarrow.c comprise yarrow.
* random(4) device doesn't really depend on rijndael-*. Yarrow, however, does.
* Add random_adaptors.[ch] which is basically a store of random_adaptor's. random_adaptor is basically an adapter that plugs in to random(4). random_adaptor can only be plugged in to random(4) very early in bootup. Unplugging random_adaptor from random(4) is not supported, and is probably a bad idea anyway, due to potential loss of entropy pools. We currently have 3 random_adaptors: + yarrow + rdrand (ivy.c) + nehemeiah
* Remove platform dependent logic from probe.c, and move it into corresponding registration routines of each random_adaptor provider. probe.c doesn't do anything other than picking a specific random_adaptor from a list of registered ones.
* If the kernel doesn't have any random_adaptor adapters present then the creation of /dev/random is postponed until next random_adaptor is kldload'ed.
* Fix randomdev_soft.c to refer to its own random_adaptor, instead of a system wide one.
Submitted by: arthurmesh@gmail.com, obrien Obtained from: Juniper Networks Reviewed by: obrien
|
253768 |
29-Jul-2013 |
cognet |
Explicitely include <machine/pcb.h>, so that we get the definition of struct pcb.
Submitted by: Zbyszek Bodek <zbb@semihalf.com> Pointy hat to: cognet
|
253762 |
29-Jul-2013 |
cognet |
Define KDB_STOPPEDPCB, so that we can access the backtraces of threads running on other cores.
|
253750 |
28-Jul-2013 |
avg |
Revert r253748,253749
This WIP should not have been committed yet.
Pointyhat to: avg
|
253748 |
28-Jul-2013 |
avg |
put contents of cpu.h under _KERNEL
no userland-serviceable parts inside
MFC after: 20 days
|
253746 |
28-Jul-2013 |
ian |
Rename the existing std.imx and imx.files to std.imx51 and files.imx51, to pave the way for adding imx6 support.
|
253635 |
25-Jul-2013 |
rpaulo |
Revert ROOTDEVNAME change from previous commit.
|
253634 |
25-Jul-2013 |
rpaulo |
Enable modules for the BeagleBone and for the Raspberry Pi.
|
253489 |
20-Jul-2013 |
andrew |
Start adding support to build bits of our code using the Thumb-2 instruction set. Thumb-2 requires an if-then instruction to implement conditional codes.
When building for ARM mode the it-then instructions do not generate any assembled instruction as per the ARMv7-A Architecture Reference Manual, and are safe to use.
While this allows the atomic instructions to be built, it doesn't mean we fully support Thumb code. It works in small tests, but is still known to fail in a large number of places.
While here add a check for the armv6t2 architecture.
|
253400 |
16-Jul-2013 |
andrew |
Fix vfp: - We should check is_d32 to see howmany registers we have - In vfp_restore mark vfpscr as an output register
Without the second part it appears we can return the incorrect value from vfp_bounce if the VFP condition flags are set as it may override the register holding the return value.
|
253355 |
15-Jul-2013 |
rpaulo |
Move the Raspberry Pi low level options out of the kernel config and into std.rpi + std.bcm2835.
Reviewed by: imp
|
253351 |
15-Jul-2013 |
ae |
Introduce new structure sfstat for collecting sendfile's statistics and remove corresponding fields from struct mbstat. Use PCPU counters and SFSTAT_INC() macro for update these statistics.
Discussed with: glebius
|
253309 |
13-Jul-2013 |
rpaulo |
Indent the "scp=... rlv=..." to make it easier to read the backtrace.
|
253142 |
10-Jul-2013 |
ray |
Remove trailing whitespaces.
|
253053 |
09-Jul-2013 |
rpaulo |
Improve a comment.
|
253052 |
09-Jul-2013 |
emaste |
Remove extraneous format string converison specifier
Submitted by: wxs@
|
253025 |
08-Jul-2013 |
gonzo |
Add IDs for TPS65217C and TPS65217D
|
253023 |
08-Jul-2013 |
gonzo |
- AM335x requires updated soft-reset logic too
|
253006 |
07-Jul-2013 |
rpaulo |
Convert bcm2835_mbox to the new mbox interface.
Reviewed by: gonzo
|
253005 |
07-Jul-2013 |
rpaulo |
Another warning.
|
252997 |
07-Jul-2013 |
rpaulo |
armadaxp_idcache_wbinv_all() is in this file.
|
252996 |
07-Jul-2013 |
rpaulo |
Fix all the compiler warnings in elf_trampoline.c.
|
252915 |
07-Jul-2013 |
gonzo |
- Add USFS driver as an example of device mode for AM335x-based devices
|
252913 |
07-Jul-2013 |
gonzo |
- Add USBSS driver for AM335x SoC. Driver is a wrapper around Mentors Graphic USB OTG core.
|
252863 |
06-Jul-2013 |
rpaulo |
Don't clear the SYSCONFIG register on boot.
This follows section 18.4.2.2 SD Soft Reset Flow in the TI AM335x Technical Reference Manual and seems to fix the "ti_mmchs0: Error: current cmd NULL, already done?" messages.
|
252837 |
05-Jul-2013 |
andrew |
Fix the build with gcc.
Gcc outputs pre-UAL asm and expects the ldcl instruction with a condition in the form ldc<c>l, where the code produces the instruction in the UAL form ldcl<c>. Work around this by checking if we are using clang or gcc and adjusting the instruction.
While here correct the cmp instruction's value to include the # before the immediate value.
|
252780 |
05-Jul-2013 |
ray |
o Make fields names short. o Slim down reg fields comments.
|
252722 |
04-Jul-2013 |
gonzo |
Add support for ePWM submodule of PWMSS
ePWM is controlled by sysctl nodes dev.am335x_pwm.N.period, dev.am335x_pwm.N.dutyA and dev.am335x_pwm.N.dutyB that controls PWM period and duty cycles for channels A and B respectively.
Period and duty cycle are measured in clock ticks. Default clock frequency for AM335x PWM subsystem is 100MHz
|
252695 |
04-Jul-2013 |
gber |
Remove redundant clearing of the PGA_WRITEABLE flag in pmap_remove_all()
This flag should already be cleared by pmap_nuke_pv()
Submitted by: Zbigniew Bodek <zbb@semihalf.com> Sponsored by: The FreeBSD Foundation, Semihalf
|
252694 |
04-Jul-2013 |
gber |
Fix modified bit emulation for ARMv6/v7
When doing pmap_enter_locked(), enable write permission only when access type indicates attempt to write. Otherwise, leave the page read only but mark it writable in pv_flags.
This will result in: 1. Marking page writable during pmap_enter() but only when ensured that it will be written right away so that we will not get redundant permissions fault on write attempt. 2. Keeping page read only when it is permitted to be written but there was no actual write attempt. Hence, we will get permissions fault on write access and mark page writable in pmap_fault_fixup() what will indicate modification status.
Submitted by: Zbigniew Bodek <zbb@semihalf.com> Sponsored by: The FreeBSD Foundation, Semihalf
|
252652 |
03-Jul-2013 |
gonzo |
Fix one of INVARIANTS-related UMA panics on ARM
Force UMA zone to allocate service structures like slabs using own allocator. uma_debug code performs atomic ops on uma_slab_t fields and safety of this operation is not guaranteed for write-back caches
|
252522 |
02-Jul-2013 |
andrew |
Enable VFP on Raspberry Pi. This has worked as of r251712.
|
252473 |
01-Jul-2013 |
tuexen |
Enable SCTP, since it is also enabled on GENERIC and it works fine on the Raspberry Pi.
Discussed with: rpaulo
|
252450 |
01-Jul-2013 |
rpaulo |
The mbox driver is actually MP safe, so set the right flag in bus_setup_intr().
|
252449 |
01-Jul-2013 |
rpaulo |
Disable debugging.
|
252440 |
01-Jul-2013 |
rpaulo |
Use the new FDT_FILE rpi.dts.
|
252434 |
01-Jul-2013 |
kib |
Fix issues with zeroing and fetching the counters, on x86 and ppc64. Issues were noted by Bruce Evans and are present on all architectures.
On i386, a counter fetch should use atomic read of 64bit value, otherwise carry from the increment on other CPU could be lost for the given fetch, making error of 2^32. If 64bit read (cmpxchg8b) is not available on the machine, it cannot be SMP and it is enough to disable preemption around read to avoid the split read.
On x86 the counter increment is not atomic on purpose, which makes it possible for the store of the incremented result to override just zeroed per-cpu slot. The effect would be a counter going off by arbitrary value after zeroing. Perform the counter zeroing on the same processor which does the increments, making the operations mutually exclusive. On i386, same as for the fetching, if the cmpxchg8b is not available, machine is not SMP and we disable preemption for zeroing.
PowerPC64 is treated the same as amd64.
For other architectures, the changes made to allow the compilation to succeed, without fixing the issues with zeroing or fetching. It should be possible to handle them by using the 64bit loads and stores atomic WRT preemption (assuming the architectures also converted from using critical sections to proper asm). If architecture does not provide the facility, using global (spin) mutex would be non-optimal but working solution.
Noted by: bde Sponsored by: The FreeBSD Foundation
|
252432 |
30-Jun-2013 |
rpaulo |
Add INET6.
|
252427 |
30-Jun-2013 |
ray |
Replace some spaces to tab.
|
252425 |
30-Jun-2013 |
ray |
Decrypt magic numbers - define names for fields of Generic Timer's CNTKCTL reg.
Submitted by: Ruslan Bukin <br@bsdpad.com>
|
252424 |
30-Jun-2013 |
cognet |
In generic_bs_map(), use kmem_alloc_nofault() instead of kmem_alloc(), as we only need virtual addresses.
Submitted by: alc
|
252396 |
30-Jun-2013 |
ray |
Arndale Board (by Insignal) kernel config file. More info on the Wiki page https://wiki.freebsd.org/FreeBSD/arm/ArndaleBoard
Submitted by: Ruslan Bukin <br@bsdpad.com> Reviewed by: gonzo
|
252395 |
30-Jun-2013 |
gonzo |
- Fix IMAPx registers values calculation - Initialize SMAPx registers too although they're unused in QEMU - Do not pass IO/MEM resources to upper bus for activation, handle them locally. Previously ACTIVATE method of upper bus was no-op so nothing bad happened. But now FDT maps physaddr to vaddr and it causes troubles: fdtbus_activate_resource resource assumes that bustag/bushandle are already set which in this case is wrong.
|
252393 |
29-Jun-2013 |
gonzo |
Enable patth-through of IRQ30 and IRQ31 to PIC just as comment states
|
252391 |
29-Jun-2013 |
ray |
Import basic support for Samsung Exynos 5 support.
Submitted by: Ruslan Bukin <br@bsdpad.com> Reviewed by: gonzo
|
252372 |
29-Jun-2013 |
ray |
Add ARM Generic Timer driver.
Submitted by: Ruslan Bukin <br@bsdpad.com>
|
252370 |
29-Jun-2013 |
ray |
o Initialize interrupt groups as Group 0 (secure interrupts). o Minor cleanup.
Submitted by: Ruslan Bukin <br@bsdpad.com>
|
252362 |
28-Jun-2013 |
ray |
Bump max number of IRQs for Cortex-Ax family to cover Exynos5 requirement.
Submitted by: Ruslan Bukin <br@bsdpad.com>
|
252361 |
28-Jun-2013 |
ray |
Add identification for Cortex-A15 (R0) cores.
Submitted by: Ruslan Bukin <br@bsdpad.com>
|
252320 |
27-Jun-2013 |
andrew |
Support reading registers r0-r3 when unwinding. There is a seperate instruction to load these. We only hit it when unwinding past an trap frame as in C r0-r3 would never have been saved onto the stack.
|
252311 |
27-Jun-2013 |
andrew |
Add UNWINDSVCFRAME to provide the unwind pseudo ops to allow us to unwind past a trapframe.
Use this macro in exception_exit as it is the function the unwinder enters as the functions that store the frame setting lr to point to it.
|
252282 |
27-Jun-2013 |
gonzo |
- Request non-cached memory for framebuffer - Properly probe/initialize syscons
|
252229 |
26-Jun-2013 |
rpaulo |
Print the 'setting internal ...' message only with bootverbose.
|
251781 |
15-Jun-2013 |
ed |
Make support for atomics on ARM complete.
Provide both __sync_*-style and __atomic_*-style functions that perform the atomic operations on ARMv5 by using Restartable Atomic Sequences.
While there, clean up some pieces of code where it's sufficient to use regular uint32_t to store register contents and don't need full reg_t's. Also sync this back to the MIPS code.
|
251712 |
13-Jun-2013 |
andrew |
Fix the vfp code to work with the 16 register variants of the VFP unit. We check which variant we are on, and if it is a VFPv3 or v4, and has 32 double registers we save these. This fixes VFP support on Raspberry Pi.
While here clean fmrx and fmxr up to use the register names from vfp.h as opposed to the raw register names.
|
251695 |
13-Jun-2013 |
ed |
Add C11 atomic fallbacks for ARM.
Basically the situation is as follows:
- When using Clang + armv6, we should not need any intrinsics. It should support it, even though due to a target misconfiguration it does not. We should fix this in Clang. - When using Clang + noarmv6, provide __atomic_* functions that disable interrupts. - When using GCC + armv6, we can provide __sync_* intrinsics, similar to what we did for MIPS. As ARM and MIPS are quite similar, simply base this implementation on the one I did for MIPS. - When using GCC + noarmv6, disable the interrupts, like we do for Clang.
This implementation still lacks functions for noarmv6 userspace. To be done.
|
251586 |
09-Jun-2013 |
cognet |
Increase the maximum KVM available on TI chips. Not sure why we suddenly need that much, but that lets me boot with 1GB of RAM.
|
251517 |
08-Jun-2013 |
andrew |
Merge in changes from NetBSD: * Remove support for non-elf files. * Add the VFP setjmp magic numbers. * Add the offsets for the VFP registers within the buffer.
|
251510 |
07-Jun-2013 |
andrew |
Reduce the difference to NetBSD.
* Stop pretending we support anything other than ELF by removing code surrounded by #ifdef __ELF__ ... #endif. * Remove _JB_MAGIC_SETJMP and _JB_MAGIC__SETJMP, they are defined in setjmp.h, which is able to be included from asm. * Fix the spelling of dependent. * Rename END _END and add END and ASEND to complement ENTRY and ASENTRY respectively * Add macros to simplify accessing the Global Offset Table, some of these will be used in the upcoming update to the setjmp functions.
|
251371 |
04-Jun-2013 |
gber |
Fix the passing of time on Armada XP.
In order to become independent of Coherency Fabric frequency, configure Timer and Watchdog to operate in 25MHz mode.
Submitted by: Zbigniew Bodek <zbb@semihalf.com>
|
251370 |
04-Jun-2013 |
gber |
Implement pmap_copy() for ARMv6/v7.
Copy the given range of mappings from the source map to the destination map, thereby reducing the number of VM faults on fork.
Submitted by: Zbigniew Bodek <zbb@semihalf.com> Sponsored by: The FreeBSD Foundation, Semihalf
|
251018 |
27-May-2013 |
gonzo |
AM335x LCD controller driver with syscons support
Limitations: - Raster mode only - 24 and 32 bpp only
|
251017 |
27-May-2013 |
gonzo |
Add PWM module driver for AM335x. Only eCAS subsystem is supported
Export function to configure eCAS submodule from another drivers. It's used to control LCD panel backlight on AM335x EVM.
|
251016 |
27-May-2013 |
gonzo |
Add SCM registers definitions for AM335x platform
|
251015 |
27-May-2013 |
gonzo |
Add clock definitions for LCD controller and PWM module
|
250931 |
23-May-2013 |
gber |
Rework and organize pmap_enter_locked() function.
pmap_enter_locked() implementation was very ambiguous and confusing. Rearrange it so that each part of the mapping creation is separated. Avoid walking through the redundant conditions. Extract vector_page specific PTE setup from normal PTE setting.
Submitted by: Zbigniew Bodek <zbb@semihalf.com> Sponsored by: The FreeBSD Foundation, Semihalf
|
250930 |
23-May-2013 |
gber |
Stop using PVF_MOD, PVF_REF & PVF_EXEC flags in pv_entry, use PTE.
Using PVF_MOD, PVF_REF and PVF_EXEC is redundant as we can get the proper info from PTE bits. When the mapping is marked as executable and has been referenced we assume that it has been executed. Similarly, when the mapping is set to be writable and is referenced, it must have been due to write access to it. PVF_MOD and PVF_REF flags are kept just for pmap_clearbit() usage, to pass the information on which bit should be cleared.
Submitted by: Zbigniew Bodek <zbb@semihalf.com> Sponsored by: The FreeBSD Foundation, Semihalf
|
250929 |
23-May-2013 |
gber |
Improve, optimize and clean-up ARMv6/v7 memory management related code.
Use pmap_find_pv if needed instead of multiplying its code throughout pmap-v6.
Avoid possible NULL pointer dereference in pmap_enter_locked() When trying to get m->md.pv_memattr, make sure that m != NULL, in particular that vector_page is set to be NULL.
Do not set PGA_REFERENCED flag in pmap_enter_pv(). On ARM any new page reference will result in either entering the new mapping by calling pmap_enter, etc. or fixing-up the existing mapping in pmap_fault_fixup(). Therefore we set PGA_REFERENCED flag in the earlier mentioned cases and setting it later in pmap_enter_pv() is just waste of cycles.
Delete unused pm_pdir pointer from the pmap structure.
Rearrange brackets in the fault cause detection in trap.c Place the brackets correctly in order to see course of the conditions instantaneously.
Unify naming in pmap-v6.c and improve style Use naming common for whole pmap and compatible with other pmaps, improve style where possible: pm -> pmap pg -> m opg -> om *pt -> *ptep *pte -> *ptep *pde -> *pdep
Submitted by: Zbigniew Bodek <zbb@semihalf.com> Sponsored by: The FreeBSD Foundation, Semihalf
|
250928 |
23-May-2013 |
gber |
Switch to AP[2:1] access permissions model. Store "referenced" bit in PTE.
Enable Access Flag in CPU control. With AF enabled each valid mapping needs to have referenced bit in PTE set in order to be able to cache it in the TLB.
AP[0] bit is to be used as reference flag. All access permissions are encoded by AP[2:1] wherein AP[1] is in fact "user enable" and AP[2](APX) is "write disable".
All mappings are always set to be valid. Reference emulation is performed by setting/clearing reference flag in PTE.
md.pvh_attrs are no longer necessary however pv_flags are still being used for now.
Marking vm_page as "dirty" or "referenced" is being performed on: - page or flag fault servicing in pmap_fault_fixup(), basing on the fault type - vm_fault servicing in pmap_enter() according to the desired protections and faulty access type Redundant page marking has been removed as on ARM we know exactly when the particular page is referenced or is going to be written.
Submitted by: Zbigniew Bodek <zbb@semihalf.com> Sponsored by: The FreeBSD Foundation, Semihalf
|
250884 |
21-May-2013 |
attilio |
o Relax locking assertions for vm_page_find_least() o Relax locking assertions for pmap_enter_object() and add them also to architectures that currently don't have any o Introduce VM_OBJECT_LOCK_DOWNGRADE() which is basically a downgrade operation on the per-object rwlock o Use all the mechanisms above to make vm_map_pmap_enter() to work mostl of the times only with readlocks.
Sponsored by: EMC / Isilon storage division Reviewed by: alc
|
250810 |
19-May-2013 |
andrew |
Add a comment explaining why stack_capture is empty for EABI and clang.
While here add a comment pointing out that, while r11 is not the frame pointer on EABI as there is no frame pointer, it's value is unused so is safe.
|
250791 |
18-May-2013 |
kientzle |
Back out r250768 until I can further investigate why it might be causing problems with the BeagleBone Black boot.
|
250768 |
18-May-2013 |
kientzle |
Label the mmc child after the parent.
|
250742 |
17-May-2013 |
rpaulo |
Revert r250692. We'll use 1 kernel config file for the BeagleBone models.
|
250695 |
16-May-2013 |
gber |
Fix L2 cache write-back invalidate for Sheeva core.
Submitted by: Michal Dubiel Obtained from: Netasq, Semihalf
|
250692 |
16-May-2013 |
rpaulo |
Add a kernel config file for the BeableBone Black SoC.
|
250634 |
14-May-2013 |
gber |
Port the new PV entry allocator from amd64/i386/mips to armv6/v7.
PV entries are now roughly half the size. Instead of using a shared UMA zone for 28 byte pv entries (two 8-byte tailq nodes, a 4 byte pointer, a 4 byte address and 4 byte flags), we allocate a page at a time per process. This provides 252 pv entries per process (actually, per pmap address space) and eliminates one of the 8-byte tailq entries since we now can track per-process pv entries implicitly. The pointer to the pmap can be eliminated by doing address arithmetic to find the metadata on the page headers to find a single pointer shared by all 252 entries. There is an 8-int bitmap for the freelist of those 252 entries. When in serious low memory condition, allocation of another pv_chunk is possible by freeing some pages in pmap_pv_reclaim().
Added pv_entry/pv_chunk related statistics to pmap. pv_entry/pv_chunk statistics can be accessed via sysctl vm.pmap.
Ported PTE freelist of KVA allocation and maintenance from i386. Using an idea from Stephan Uphoff, use the empty pte's that correspond to the unused kva in the pv memory block to thread a freelist through. This allows us to free pages that used to be used for pv entry chunks since we can now track holes in the kva memory block.
As both ARM pmap.c and pmap-v6.c use the same header and pv_entry, pmap and md_page structures are different, it was needed to separate code designed for ARMv6/7 from the one for other ARMs.
Submitted by: Zbigniew Bodek <zbb@semihalf.com> Reviewed by: alc Sponsored by: The FreeBSD Foundation, Semihalf
|
250544 |
12-May-2013 |
peter |
Tidy up some CVS workarounds.
|
250531 |
11-May-2013 |
kientzle |
Don't use the old stack-walking code with EABI ARM kernels or clang-compiled ARM kernels.
This fixes a crash seen in clang-compiled ARM kernels that include WITNESS.
This code could be easily modified to walk the stack for current clang-generated code (including EABI) but Andrew Turner has raised concerns that the stack frame currently emitted by clang isn't actually required by EABI so such a change might cause problems down the road.
In case anyone wants to experiment, the change to support current clang-compiled kernels involves simply setting FR_RFP=0 and FR_SCP=1.
|
250357 |
08-May-2013 |
ray |
Update copyright date.
|
250338 |
07-May-2013 |
attilio |
Rename VM_NDOMAIN into MAXMEMDOM and move it into machine/param.h in order to match the MAXCPU concept. The change should also be useful for consolidation and consistency.
Sponsored by: EMC / Isilon storage division Obtained from: jeff Reviewed by: alc
|
250324 |
07-May-2013 |
gber |
decode_win_sdram_fixup() function should be declared, defined and used only by Armada XP
Obtained from: Semihalf
|
250299 |
06-May-2013 |
gber |
Fix page reference emulation on ARMv6 and v7
Submitted by: Zbigniew Bodek Obtained from: Semihalf
|
250297 |
06-May-2013 |
gber |
Fix L2 PTE access permissions management.
Keep following access permissions:
APX AP Kernel User 1 01 R N 1 10 R R 0 01 R/W N 0 11 R/W R/W
Avoid using reserved in ARMv6 APX|AP settings: - In case of unprivileged (user) access without permission to write, the access permission bits were being set to reserved for ARMv6 (but valid for ARMv7) value of APX|AP = 111.
Fix-up faulting userland accesses properly: - Wrong condition statement in pmap_fault_fixup() caused that any genuine, unprivileged access was being fixed-up instead of just skip doing anything and return. Staring from now we ensure proper reaction for illicit user accesses.
L2_S_PROT_R and L2_S_PROT_U names might be misleading as they do not reflect real permission levels. It will be clarified in following patches (switch to AP[2:1] permissions model).
Obtained from: Semihalf
|
250296 |
06-May-2013 |
gber |
Correct comment about initial VA=>PA mapping
|
250295 |
06-May-2013 |
gber |
Disable decoding windows with no FDT entry.
- On ARMADAXP B0 (GP development board) we are not able to use PCI due to whole 32-bit address space used by 4GB of RAM memory. - Change is required to destroy unnecessary window to free address space for PCI and other devices - Fix offset value for SDRAM decoding windows
Obtained from: Semihalf
|
250294 |
06-May-2013 |
gber |
Avoid calling pcpu_init() simultaneously.
pcpu_init() updates queue, so cannot be called by multiple cores at the same time
Obtained from: Semihalf
|
250293 |
06-May-2013 |
gber |
Properly initialize Armada XP MP subsystem.
- correct setting of Auxiliary Control Register for MP mode - correct setting of Auxiliarty Debug registers - cleanup management of memory contains bootup code - early initialization of Coherency Fabric (MP and not-MP mode) - enable Snoop Filtering
Obtained from: Semihalf
|
250292 |
06-May-2013 |
gber |
Initialize L2 cache for Armada XP.
Obtained from: Semihalf
|
250291 |
06-May-2013 |
gber |
Move initialization of CESA decoding windows from common section to driver specific files.
- window initialization is done during device attach - CESA TDMA decoding windows values are set based on DTS, not copied from CPU registers - remove unnecessary virtual mapping - update dts file
Obtained from: Semihalf
|
250255 |
04-May-2013 |
kientzle |
Make a debugging printf a little more useful.
|
250254 |
04-May-2013 |
ian |
Fix comment block formatting.
|
250253 |
04-May-2013 |
ian |
Insert STOP_UNWINDING directives in the _start (kernel entry point) and fork_trampoline (thread entry point) assembler routines, because it's not possible to unwind beyond those points.
Also insert STOP_UNWINDING in the exception_exit routine, to prevent an unwind-loop at that point. This is just a stopgap until we get around to instrumenting all assembler functions with proper unwind metadata.
|
250252 |
04-May-2013 |
ian |
EABI unwinder enhancements... When it's time to stop unwinding, don't exit the loop until after printing info about the current frame. Also, if executing the unwind function for a frame doesn't change the values of any registers, log that and exit the loop rather than looping endlessly.
|
250131 |
01-May-2013 |
eadler |
Correct a few sizeof()s
Submitted by: swildner@DragonFlyBSD.org Reviewed by: alfred
|
250015 |
28-Apr-2013 |
wkoszek |
Bring copyright changes with the agreement of Thomas Skibo.
Communication on src-commiters, Sat, 27 Apr 2013 22:09:06 -0700, Subject was: "Re: svn commit: r249997"
As I'm here, fix the style main block comments in files' headers.
|
249999 |
27-Apr-2013 |
wkoszek |
Add Xilinx Zynq ARM/FPGA SoC support to FreeBSD/arm port.
Submitted by: Thomas Skibo <ThomasSkibo (at) sbcglobal.net> Tested by: wkoszek (ZedBoard) Reviewed by: wkoszek, freebsd-arm@ (no objections raised)
|
249997 |
27-Apr-2013 |
wkoszek |
Add Xilinx Zynq ARM/FPGA SoC support to FreeBSD/arm port.
Submitted by: Thomas Skibo <ThomasSkibo (at) sbcglobal.net> Reviewed by: wkoszek, freebsd-arm@ (no objections raised)
|
249762 |
22-Apr-2013 |
dmarion |
Initialize GIC_PMRR register on ARM GIC.
Provided by: Thomas Skibo
|
249586 |
17-Apr-2013 |
gabor |
- Correct mispellings of word resource
Submitted by: Christoph Mallon <christoph.mallon@gmx.de>
|
249582 |
17-Apr-2013 |
gabor |
- Correct mispellings of the word occurrence
Submitted by: Christoph Mallon <christoph.mallon@gmx.de> (via private mail)
|
249449 |
13-Apr-2013 |
dim |
Fix undefined behaviour in several gpio_pin_setflags() routines (under sys/arm and sys/mips), squelching the clang 3.3 warnings about this.
Noticed by: tinderbox and many irate spectators Submitted by: Luiz Otavio O Souza <loos.br@gmail.com> PR: kern/177759 MFC after: 3 days
|
249410 |
12-Apr-2013 |
trasz |
Remove ctl(4) from GENERIC. Also remove 'options CTL_DISABLE' and kern.cam.ctl.disable tunable; those were introduced as a workaround to make it possible to boot GENERIC on low memory machines.
With ctl(4) being built as a module and automatically loaded by ctladm(8), this makes CTL work out of the box.
Reviewed by: ken Sponsored by: FreeBSD Foundation
|
249268 |
08-Apr-2013 |
glebius |
Merge from projects/counters: counter(9).
Introduce counter(9) API, that implements fast and raceless counters, provided (but not limited to) for gathering of statistical data.
See http://lists.freebsd.org/pipermail/freebsd-arch/2013-April/014204.html for more details.
In collaboration with: kib Reviewed by: luigi Tested by: ae, ray Sponsored by: Nginx, Inc.
|
249265 |
08-Apr-2013 |
glebius |
Merge from projects/counters:
Pad struct pcpu so that its size is denominator of PAGE_SIZE. This is done to reduce memory waste in UMA_PCPU_ZONE zones.
Sponsored by: Nginx, Inc.
|
249232 |
07-Apr-2013 |
hselasky |
Fix regression issue after r248910.
PR: arm/177685 Submitted by: Christoph Mallon <christoph.mallon@gmx.de>
|
249181 |
06-Apr-2013 |
gonzo |
Properly clean "spurious interrupt" state
Suggested by: Ian Lepore
|
249180 |
06-Apr-2013 |
andrew |
Hide non-assembler bits behind #ifndef __ASSEMBLER__
|
249176 |
05-Apr-2013 |
andrew |
Add the hw.floatingpoint sysctl to ARM to tell us if we have vfp support in the kernel and the hardware includes a vfp unit.
|
249083 |
04-Apr-2013 |
mav |
Remove all legacy ATA code parts, not used since options ATA_CAM enabled in most kernels before FreeBSD 9.0. Remove such modules and respective kernel options: atadisk, ataraid, atapicd, atapifd, atapist, atapicam. Remove the atacontrol utility and some man pages. Remove useless now options ATA_CAM.
No objections: current@, stable@ MFC after: never
|
248965 |
01-Apr-2013 |
ian |
Fix low-level uart drivers that set their fifo sizes in the softc too late.
uart(4) allocates send and receiver buffers in attach() before it calls the low-level driver's attach routine. Many low-level drivers set the fifo sizes in their attach routine, which is too late. Other drivers set them in the probe() routine, so that they're available when uart(4) allocates buffers. This fixes the ones that were setting the values too late by moving the code to probe().
|
248964 |
01-Apr-2013 |
ian |
Enable hardware flow control and high speed bulk data transfer in at91 uarts.
Changes to make rtc/cts flow control work...
This does not turn on the builtin hardware flow control on the SoC's usart device, because that doesn't work on uart1 due to a chip erratum (they forgot to wire up pin PA21 to RTS0 internally). Instead it uses the hardware flow control logic where the tty layer calls the driver to assert and de-assert the flow control lines as needed. This prevents overruns at the tty layer (app doesn't read fast enough), but does nothing for overruns at the driver layer (interrupts not serviced fast enough).
To work around the wiring problem with RTS0, the driver reassigns that pin as a GPIO and controls it manually. It only does so if given permission via hint.uart.1.use_rts0_workaround=1, to prevent accidentally driving the pin if uart1 is used without flow control (because something not related to serial IO could be wired to that pin).
In addition to the RTS0 workaround, driver changes were needed in the area of reading the current set of DCE signals. A priming read is now done at attach() time, and the interrupt routine now sets SER_INT_SIGCHG when any of the DCE signals change. Without these changes, nothing could ever be transmitted, because the tty layer thought CTS was de-asserted (when in fact we had just never read the status register, and the hwsig variable was init'd to CTS de-asserted).
Changes to support bulk high-speed (230kbps and higher) data reception...
Allow the receive fifo size to be tuned with hint.uart.<dev>.fifo_bytes. For high speed receive, a fifo size of 1024 works well. The default is still 128 bytes if no hint is provided. Using a value larger than 384 requires a change in dev/uart/uart_core.c to size the intermediate buffer as MAX(384, 3*sc->sc_rxfifosize).
Recalculate the receive timeout whenever the baud rate changes. At low baud rates (19.2kbps and below) the timeout is the number of bits in 2 characters. At higher speed it's calculated to be 500 microseconds worth of bits. The idea is to compromise between being responsive in interactive situations and not timing out prematurely during a brief pause in bulk data flow. The old fixed timeout of 1.5 characters was just 32 microseconds at 460kbps.
At interrupt time, check for receiver holding register overrun status and set the corresponding status bit in the return value.
When handling a buffer overrun, get a single buffer emptied and handed back to the hardware as quickly as possible, then deal with the second buffer. This at least minimizes data loss compared to the old logic that fully processed both buffers before restarting the hardware.
Rewrite the logic for handling buffers after a receive timeout. The original author speculated in a comment that there may be a race with high speed data. There was, although it was rare. The code now handles all three possible scenarios on receive timeout: two empty buffers, one empty and one partial buffer, or one full and one partial buffer.
Reviewed by: imp
|
248961 |
31-Mar-2013 |
ian |
When running on armv6, set alignment checking to modulo-4 mode rather than modulo-8, because clang emits ldrd and strd instructions for addresses that are only 4-byte aligned.
|
248944 |
31-Mar-2013 |
ian |
Fix a typo in the CF device driver name that prevented instantiation.
|
248911 |
29-Mar-2013 |
ian |
Add userland access to at91 gpio functionality via ioctl calls. Also, add the ability for userland to be notified of changes on gpio pins via a select(2)/read(2) interface.
Change the interrupt handler from filtered to threaded.
Because of the uiomove() calls in the new interface, change locking from standard mutex to sx.
Add / restore the at91_gpio_high_z() function.
Reviewed by: imp (long ago)
|
248910 |
29-Mar-2013 |
ian |
Change the API for at91_pio_gpio_get() to return the entire masked set of bits, not just a 0/1 indicating whether any of the masked bits are on. This is compatible with the single in-tree caller of this function right now (at91_vbus_poll() in dev/usb/controller/at91dci_atemelarm.c).
|
248909 |
29-Mar-2013 |
ian |
Call soc_info.soc_data->soc_clock_init() before at91_pmc_init_clock(), so that the latter correctly fills in the clock data structures based on proper hardware-specific shift and mask values from the soc_data structure.
|
248907 |
29-Mar-2013 |
ian |
Add a couple forward declarations, so that board support routines don't have to pre-include a bunch of header files they don't need just to use this one.
|
248904 |
29-Mar-2013 |
ian |
Redo the workaround for at91rm9200 erratum #26 in a way that doesn't cause a lockup on some rm92 hardware.
|
248902 |
29-Mar-2013 |
ian |
Fix a typo: the RXD0 pin is PA18, not PA19.
|
248899 |
29-Mar-2013 |
ian |
Remove a really noisy printf left over from debugging hardware errata.
|
248655 |
23-Mar-2013 |
ian |
Don't check and warn about pmap mismatch on every call to busdma sync. With some recent busdma refactoring, sometimes it happens that a sync op gets called when bus_dmamap_load() never got called, which results in a spurious warning about a map mismatch when no sync operations will actually happen anyway. Now the check is done only if a sync operation is actually performed, and the result of the check is a panic, not just a printf.
Reviewed by: cognet (who prevented me from donning a point hat)
|
248585 |
21-Mar-2013 |
mav |
Minimal timer period of 100us introduced in r244758 is overkill. While original 2us are indeed not enough, 3us are working quite well on my tests. To be more safe set minimal period to 5us and to be even more safe replicate here from HPET mechanism of rereading counter after programming comparator.
This change allows to handle 30K of short nanosleep() calls per second on Raspberry Pi instead of just 8K before.
Discussed with: gonzo
|
248557 |
20-Mar-2013 |
ray |
Integrate Efika MX project back to home.
Sponsored by: The FreeBSD Foundation
|
248508 |
19-Mar-2013 |
kib |
Implement the concept of the unmapped VMIO buffers, i.e. buffers which do not map the b_pages pages into buffer_map KVA. The use of the unmapped buffers eliminate the need to perform TLB shootdown for mapping on the buffer creation and reuse, greatly reducing the amount of IPIs for shootdown on big-SMP machines and eliminating up to 25-30% of the system time on i/o intensive workloads.
The unmapped buffer should be explicitely requested by the GB_UNMAPPED flag by the consumer. For unmapped buffer, no KVA reservation is performed at all. The consumer might request unmapped buffer which does have a KVA reserve, to manually map it without recursing into buffer cache and blocking, with the GB_KVAALLOC flag.
When the mapped buffer is requested and unmapped buffer already exists, the cache performs an upgrade, possibly reusing the KVA reservation.
Unmapped buffer is translated into unmapped bio in g_vfs_strategy(). Unmapped bio carry a pointer to the vm_page_t array, offset and length instead of the data pointer. The provider which processes the bio should explicitely specify a readiness to accept unmapped bio, otherwise g_down geom thread performs the transient upgrade of the bio request by mapping the pages into the new bio_transient_map KVA submap.
The bio_transient_map submap claims up to 10% of the buffer map, and the total buffer_map + bio_transient_map KVA usage stays the same. Still, it could be manually tuned by kern.bio_transient_maxcnt tunable, in the units of the transient mappings. Eventually, the bio_transient_map could be removed after all geom classes and drivers can accept unmapped i/o requests.
Unmapped support can be turned off by the vfs.unmapped_buf_allowed tunable, disabling which makes the buffer (or cluster) creation requests to ignore GB_UNMAPPED and GB_KVAALLOC flags. Unmapped buffers are only enabled by default on the architectures where pmap_copy_page() was implemented and tested.
In the rework, filesystem metadata is not the subject to maxbufspace limit anymore. Since the metadata buffers are always mapped, the buffers still have to fit into the buffer map, which provides a reasonable (but practically unreachable) upper bound on it. The non-metadata buffer allocations, both mapped and unmapped, is accounted against maxbufspace, as before. Effectively, this means that the maxbufspace is forced on mapped and unmapped buffers separately. The pre-patch bufspace limiting code did not worked, because buffer_map fragmentation does not allow the limit to be reached.
By Jeff Roberson request, the getnewbuf() function was split into smaller single-purpose functions.
Sponsored by: The FreeBSD Foundation Discussed with: jeff (previous version) Tested by: pho, scottl (previous version), jhb, bf MFC after: 2 weeks
|
248467 |
18-Mar-2013 |
ray |
o Switch to use physical addresses in rman for FDT. o Remove vtophys used to translate virtual address to physical in case rman carry virtual.
Sponsored by: The FreeBSD Foundation
|
248430 |
17-Mar-2013 |
ian |
Eliminate an intermediate buffer and some memcpy() operations, and do DMA directly to/from the buffers passed in from higher layer drivers.
Reviewed by: gonzo
|
248407 |
17-Mar-2013 |
ian |
Add a macro that gets the physical address of a memory mapped device register from a bus space resource.
Note that this macro is just for ARM, and is intended to have a short lifespan. The DMA engines in some SoCs need the physical address of a memory-mapped device register as one of the arguments for the transfer. Several scattered ad-hoc solutions have been converted to use this macro, which now also serves to mark the places where a more complete fix needs to be applied (after that fix has been designed).
|
248366 |
16-Mar-2013 |
andrew |
Move the __aeabi_unwind_cpp_pr{0,1,2} functions to libkern so they can be referenced in a non-debug kernel.
|
248364 |
16-Mar-2013 |
andrew |
Implement the required but unused __aeabi_unwind_cpp_* functions in the trampoline kernel.
|
248361 |
16-Mar-2013 |
andrew |
Add an END macro to ARM. This is mostly used to tell gas where the bounds of the functions are when creating the EABI unwind tables.
|
248280 |
14-Mar-2013 |
kib |
Add pmap function pmap_copy_pages(), which copies the content of the pages around, taking array of vm_page_t both for source and destination. Starting offsets and total transfer size are specified.
The function implements optimal algorithm for copying using the platform-specific optimizations. For instance, on the architectures were the direct map is available, no transient mappings are created, for i386 the per-cpu ephemeral page frame is used. The code was typically borrowed from the pmap_copy_page() for the same architecture.
Only i386/amd64, powerpc aim and arm/arm-v6 implementations were tested at the time of commit. High-level code, not committed yet to the tree, ensures that the use of the function is only allowed after explicit enablement.
For sparc64, the existing code has known issues and a stab is added instead, to allow the kernel linking.
Sponsored by: The FreeBSD Foundation Tested by: pho (i386, amd64), scottl (amd64), ian (arm and arm-v6) MFC after: 2 weeks
|
248207 |
12-Mar-2013 |
glebius |
Functions m_getm2() and m_get2() have different order of arguments, and that can drive someone crazy. While m_get2() is young and not documented yet, change its order of arguments to match m_getm2().
Sorry for churn, but better now than later.
|
248189 |
12-Mar-2013 |
glebius |
Use m_get2() to get an mbuf of appropriate size.
Reviewed by: marius Sponsored by: Nginx, Inc.
|
248153 |
11-Mar-2013 |
cognet |
Don't use an empty struct.
|
248125 |
10-Mar-2013 |
andrew |
Fix a typo where db_printf was spelt printf.
|
248124 |
10-Mar-2013 |
andrew |
Update how we read the stack pointer to work on both GCC and clang.
|
248123 |
10-Mar-2013 |
andrew |
Tell the unwinder we can't unwind swi_entry. This fixes an infinite loop when the kernel attempts to unwind through this function.
The .fnstart and .fnend in this function should be moved to macros but we are currently missing an END macro on ARM.
|
248119 |
10-Mar-2013 |
andrew |
__FreeBSD_ARCH_armv6__ is undefined on clang. We can use __ARM_ARCH in it's place. This makes 'uname -p' correctly output 'armv6' on a kernel built with clang.
|
248084 |
09-Mar-2013 |
attilio |
Switch the vm_object mutex to be a rwlock. This will enable in the future further optimizations where the vm_object lock will be held in read mode most of the time the page cache resident pool of pages are accessed for reading purposes.
The change is mostly mechanical but few notes are reported: * The KPI changes as follow: - VM_OBJECT_LOCK() -> VM_OBJECT_WLOCK() - VM_OBJECT_TRYLOCK() -> VM_OBJECT_TRYWLOCK() - VM_OBJECT_UNLOCK() -> VM_OBJECT_WUNLOCK() - VM_OBJECT_LOCK_ASSERT(MA_OWNED) -> VM_OBJECT_ASSERT_WLOCKED() (in order to avoid visibility of implementation details) - The read-mode operations are added: VM_OBJECT_RLOCK(), VM_OBJECT_TRYRLOCK(), VM_OBJECT_RUNLOCK(), VM_OBJECT_ASSERT_RLOCKED(), VM_OBJECT_ASSERT_LOCKED() * The vm/vm_pager.h namespace pollution avoidance (forcing requiring sys/mutex.h in consumers directly to cater its inlining functions using VM_OBJECT_LOCK()) imposes that all the vm/vm_pager.h consumers now must include also sys/rwlock.h. * zfs requires a quite convoluted fix to include FreeBSD rwlocks into the compat layer because the name clash between FreeBSD and solaris versions must be avoided. At this purpose zfs redefines the vm_object locking functions directly, isolating the FreeBSD components in specific compat stubs.
The KPI results heavilly broken by this commit. Thirdy part ports must be updated accordingly (I can think off-hand of VirtualBox, for example).
Sponsored by: EMC / Isilon storage division Reviewed by: jeff Reviewed by: pjd (ZFS specific review) Discussed with: alc Tested by: pho
|
248028 |
08-Mar-2013 |
kientzle |
This file is specific to arm11x6 processors, so tell the assembler it's okay to use arm11x6 instructions.
|
247864 |
06-Mar-2013 |
andrew |
Fix stack alignment in the kernel to be on an 8 byte boundary as required by AAPCS.
|
247855 |
05-Mar-2013 |
gonzo |
- Reset DMA channel if error occured - Initialize info field in bcm_dma_reset
Submitted by: Daisuke Aoyama <aoyama@peach.ne.jp>
|
247776 |
04-Mar-2013 |
cognet |
If we're using a PIPT L2 cache, only merge 2 segments if both the virtual and the physical addreses are contiguous.
Submitted by: Thomas Skibo <ThomasSkibo@sbcglobal.net>
|
247610 |
02-Mar-2013 |
andrew |
Move some virtual memory constants to the top of the file where they are on other architectures [1].
While here: - Remove an unused and commented out include. - Add a comment describing the file that other copies have. - Fix the style of the defines and add a comment on what each one is.
Suggested by: [1] alc
|
247609 |
02-Mar-2013 |
andrew |
Build the Raspberry Pi dtb file when building the kernel so we can copy it to the boot partition for U-Boot.
|
247608 |
02-Mar-2013 |
andrew |
Ensure the stack is correctly aligned before calling the first C function.
|
247587 |
01-Mar-2013 |
andrew |
Increase the maximum text size on ARM to 64MiB. Without this clang would be sent a SIGABRT when it is loaded as it is too large. This is the smallest power of two MiB value that allows us to execute clang.
While here wrap it in an #ifndef to be consistent with the other architectures.
Submitted by: Daisuke Aoyama <aoyama at peach.ne.jp>
|
247564 |
01-Mar-2013 |
alc |
Eliminate a redundant #include: machine/pmap.h is already included through vm/pmap.h.
|
247535 |
01-Mar-2013 |
alc |
Copy the definition of VM_MAX_AUTOTUNE_MAXUSERS from i386. (See r242847.)
Tested by: andrew
|
247520 |
01-Mar-2013 |
ganbold |
Enable uart driver for A10.
Approved by: gonzo@
|
247497 |
28-Feb-2013 |
gonzo |
Add platform DMA support to SDHCI driver for BCM2835
Submitted by: Daisuke Aoyama <aoyama at peach.ne.jp> Reviewed by: ian@
|
247496 |
28-Feb-2013 |
gonzo |
Add driver for BCM2835's DMA engine
This is a version of code submitted by Daisuke Aoyama <aoyama at peach.ne.jp> with some architectural changes.
|
247463 |
28-Feb-2013 |
mav |
MFcalloutng: Switch eventtimers(9) from using struct bintime to sbintime_t. Even before this not a single driver really supported full dynamic range of struct bintime even in theory, not speaking about practical inexpediency. This change legitimates the status quo and cleans up the code.
|
247429 |
28-Feb-2013 |
attilio |
Complete r247297: Remove unused inclusions of vm/vm_pager.h and vm/vnode_pager.h.
Sponsored by: EMC / Isilon storage division
|
247391 |
27-Feb-2013 |
gonzo |
Fix typo
|
247390 |
27-Feb-2013 |
gonzo |
- Initialize GPIO_OE register based on pinmux configuration
Although AM335x TRM states that GPIO_OE register is not used and just reflects pads configuration in practice it does control pin behavior and shoiuld be set in addition to pinmux setup
|
247360 |
26-Feb-2013 |
attilio |
Merge from vmc-playground branch: Replace the sub-optimal uma_zone_set_obj() primitive with more modern uma_zone_reserve_kva(). The new primitive reserves before hand the necessary KVA space to cater the zone allocations and allocates pages with ALLOC_NOOBJ. More specifically: - uma_zone_reserve_kva() does not need an object to cater the backend allocator. - uma_zone_reserve_kva() can cater M_WAITOK requests, in order to serve zones which need to do uma_prealloc() too. - When possible, uma_zone_reserve_kva() uses directly the direct-mapping by uma_small_alloc() rather than relying on the KVA / offset combination.
The removal of the object attribute allows 2 further changes: 1) _vm_object_allocate() becomes static within vm_object.c 2) VM_OBJECT_LOCK_INIT() is removed. This function is replaced by direct calls to mtx_init() as there is no need to export it anymore and the calls aren't either homogeneous anymore: there are now small differences between arguments passed to mtx_init().
Sponsored by: EMC / Isilon storage division Reviewed by: alc (which also offered almost all the comments) Tested by: pho, jhb, davide
|
247341 |
26-Feb-2013 |
cognet |
Export vfp_init() prototype, for use in the MP code.
|
247340 |
26-Feb-2013 |
cognet |
Fix SMP build.
|
247339 |
26-Feb-2013 |
cognet |
Don't forget to init the VFP stuff for all cores.
|
247314 |
26-Feb-2013 |
alc |
Be more conservative in auto-sizing and capping the kmem submap. In fact, use the same values here that we use on 32-bit x86 and MIPS. Some machines were reported to have problems with the more aggressive values.
Reported and tested by: andrew
|
247313 |
26-Feb-2013 |
alc |
Eliminate a redundant #include: machine/pmap.h is already included through vm/pmap.h.
|
247304 |
26-Feb-2013 |
kientzle |
RPi users might want to touch the boot partition, which is always FAT formatted on this board, so compile-in MSDOSFS.
Comment out the compiled-in FDT and explain why.
|
247297 |
26-Feb-2013 |
attilio |
Merge from vmobj-rwlock branch: Remove unused inclusion of vm/vm_pager.h and vm/vnode_pager.h.
Sponsored by: EMC / Isilon storage division Tested by: pho Reviewed by: alc
|
247259 |
25-Feb-2013 |
gonzo |
Fix off-by-one error in sanity checks
|
247252 |
25-Feb-2013 |
gonzo |
- Fix off-by-one error when returning max pin number - Fix GPIOGET for output pins. Requesting state for output pin is valid operation, get the state from TI_GPIO_DATAOUTX register
|
247204 |
23-Feb-2013 |
gonzo |
Add macroses to properly map IO peripherals memory window from ARM physical memory address space to VideoCore address space
|
247195 |
23-Feb-2013 |
mav |
Add basic and not very reliable protection against going to sleep with thread scheduled by interrupt fired after we entered critical section. None of cpu_sleep() implementations on ARM check sched_runnable() now, so put the first line of defence here. This mostly fixes unexpectedly long sleeps in synthetic tests of calloutng code and probably other situations.
|
247046 |
20-Feb-2013 |
alc |
Initialize vm_max_kernel_address on non-FDT platforms. (This should have been included in r246926.)
The second parameter to pmap_bootstrap() is redundant. Eliminate it.
Reviewed by: andrew
|
247010 |
19-Feb-2013 |
gonzo |
Spelling fixes
Spotted by: N. J. Mann
|
247009 |
19-Feb-2013 |
gonzo |
Roll back change of frequency for initialization sequence since it seems to cause more problems then previous behavior: it either breaks initilization sequence in other places or uncovers problems with high-speed mode timing for SDHCI 3.0
|
246955 |
19-Feb-2013 |
ganbold |
Define gpio constants rather than using enum. Fix pull-up and pull-down values of gpio. According to A10 user manual possible pull register values are 00 Pull-up/down disable, 01 Pull-up, 10 Pull-down.
Approved by: gonzo@
|
246929 |
18-Feb-2013 |
alc |
Place a cap on the size of the kernel's heap, also known as the kmem submap. Otherwise, after r246204, the auto-scaling logic in kern_malloc.c tries to create a kmem submap that consumes the entire kernel map on a Pandaboard with 1 GB of RAM.
Tested by: gonzo
|
246926 |
18-Feb-2013 |
alc |
On arm, like sparc64, the end of the kernel map varies from one type of machine to another. Therefore, VM_MAX_KERNEL_ADDRESS can't be a constant. Instead, #define it to be a variable, vm_max_kernel_address, just like we do on sparc64.
Reviewed by: kib Tested by: ian
|
246888 |
17-Feb-2013 |
gonzo |
- Add hw.bcm2835.sdhci.hs tunable to enable/disable highspeed mode in SDHCI driver Suggested by: Daisuke Aoyama
- Set initilization sequence frequency to 8MHz. It should fix Data CRC errors. Standard requires initialization sequence to be executed at 400KHz but on this hardware low frequncies seems to cause Data CRC errors.
Value was derived from analyzing hardware signals after Raspberry Pi is powered up. Before any data is read though DATA line adapter's clock frequency is changed to 8MHz.
Modern cards should function fine at 8MHz but for older MMC cards it can be overriden by setting hw.bcm2835.sdhci.min_freq tunable.
|
246881 |
16-Feb-2013 |
ian |
In _bus_dmamap_addseg(), the return value must be zero for error, or the size actually added to the segment (possibly smaller than the requested size if boundary crossings had to be avoided).
|
246859 |
15-Feb-2013 |
ian |
Set map->pmap before _bus_dmamap_count_pages() tries to use it.
Obtained from: Thomas Skibo <ThomasSkibo@sbcglobal.net>
|
246851 |
15-Feb-2013 |
gonzo |
Enable USB1 (which is EHCI0) for Allwinner A10
Tested by: ganbold@
|
246850 |
15-Feb-2013 |
gonzo |
Fix copy-paste error in bus_space_unmap argument
While I'm at it - fix some style(9) issues
Submitted by: Mikael Urankar
|
246713 |
12-Feb-2013 |
kib |
Reform the busdma API so that new types may be added without modifying every architecture's busdma_machdep.c. It is done by unifying the bus_dmamap_load_buffer() routines so that they may be called from MI code. The MD busdma is then given a chance to do any final processing in the complete() callback.
The cam changes unify the bus_dmamap_load* handling in cam drivers.
The arm and mips implementations are updated to track virtual addresses for sync(). Previously this was done in a type specific way. Now it is done in a generic way by recording the list of virtuals in the map.
Submitted by: jeff (sponsored by EMC/Isilon) Reviewed by: kan (previous version), scottl, mjacob (isp(4), no objections for target mode changes) Discussed with: ian (arm changes) Tested by: marius (sparc64), mips (jmallet), isci(4) on x86 (jharris), amd64 (Fabian Keil <freebsd-listen@fabiankeil.de>)
|
246707 |
12-Feb-2013 |
gonzo |
Remove debug output
|
246661 |
11-Feb-2013 |
gonzo |
A10 reset mechanism is the same for all boards in this family so remove redundant reset function implementation pointer. We might want to ressurect it later when support for other Allwinner chips is introduced.
|
246660 |
11-Feb-2013 |
gonzo |
Add watchdog driver for Allwinner A10
|
246601 |
09-Feb-2013 |
kientzle |
Fix breakage introduced in r246318.
|
246375 |
06-Feb-2013 |
ganbold |
Use and set gpio pin to high to power up usb.
Approved by: gonzo@
|
246353 |
05-Feb-2013 |
ganbold |
Remove two dead assignments and make use of sc more explicit and clear
Submitted by: Christoph Mallon Approved by: gonzo@
|
246342 |
05-Feb-2013 |
ganbold |
Add gpio driver and update dts and kernel config accordingly.
Approved by: gonzo@
|
246318 |
04-Feb-2013 |
andrew |
Use the STACKALIGN macro to alight the stack rather than with a magic mask.
Submitted by: Christoph Mallon <christoph.mallon gmx.de>
|
246276 |
03-Feb-2013 |
kientzle |
Another overhaul of the CPSW driver for BeagleBone
Major changes: * Finally tracked down the flow control setting that seems to have been causing TX stalls and watchdog timeouts * RX and TX paths now share a lot more code * TX interrupt is no longer used; we instead GC finished tx queue entries at the bottom of the start routine. * TX start now queues fragmented packets directly; it only invokes defrag() for occasional very fragmented packets. * "sysctl dev.cpsw" dumps controller statistics and queue counts * Host Error Interrupt will give extensive debugging information if the controller chokes on the queued data.
|
246228 |
02-Feb-2013 |
kientzle |
Tweaks to standard BEAGLEBONE config, as recently discussed on FreeBSD-ARM.
|
246204 |
01-Feb-2013 |
andre |
Add VM_KMEM_SIZE_SCALE parameter set to 2 (50%) for all ARM platforms.
VM_KMEM_SIZE_SCALE specifies which fraction of the available physical memory, after deduction of the kernel itself and other early statically allocated memory, can be used for the kmem_map. The kmem_map provides for all UMA/malloc allocations in KVM space.
Previously ARM was using a fixed kmem_map size of (12*1024*1024) = 12MB without regard to effectively available memory. This is too small for recent ARM SoC with more than 128MB of RAM.
For reference a description of others related kmem_map parameters:
VM_KMEM_SIZE default start size of kmem_map if SCALE is not defined VM_KMEM_SIZE_MIN hard floor on the kmem_map size VM_KMEM_SIZE_MAX hard ceiling on the kmem_map size VM_KMEM_SIZE_SCALE fraction of the available real memory to be used for the kmem_map, limited by the MIN and MAX parameters.
Tested by: ian MFC after: 1 week
|
246158 |
31-Jan-2013 |
kib |
Use pmap_kextract() instead of inlining the page table walk. Remove the comment referencing non-existing code.
Reviewed by: cognet, ian (previous version) Tested by: ian
|
246057 |
29-Jan-2013 |
ganbold |
Add simple clock driver and ehci glue code for a10 Update dts and kernel config
Approved by: gonzo@
|
246025 |
28-Jan-2013 |
dmarion |
Fix case for some signal names.
Submitted by: Emmanuel Vadot <elbarto@megadrive.org>
|
246024 |
28-Jan-2013 |
dmarion |
Filled in missing pads for AM335x / Beaglebone.
Submitted by: Emmanuel Vadot <elbarto@megadrive.org>
|
246001 |
27-Jan-2013 |
ian |
Fix off-by-one errors in low-level arm9 and arm10 cache maintenance routines.
In all the routines that loop through a range of virtual addresses, the loop is controlled by subtracting the cache line size from the total length of the request. After the subtract, a 'bpl' instruction was used, which branches if the result of the subtraction is zero or greater, but we need to exit the loop when the count hits zero. Thus, all the bpl instructions in those loops have been changed to 'bhi' (branch if greater than zero).
In addition, the two routines that walk through the cache using set-and-index were correct, but confusing. The loop control for those has been simplified, just so that it's easier to see by examination that the code is correct.
Routines for other arm architectures and generations still have the bpl instruction, but compensate for the off-by-one situation by decrementing the count register by one before entering the loop.
PR: arm/174461 Approved by: cognet (mentor)
|
246000 |
27-Jan-2013 |
ian |
Restore the irq number to the display string; I fumbled this in the previous commit while trying to make the code internally self-consistant.
Approved by: cognet (mentor) Obtained from: Christoph Mallon
|
245999 |
27-Jan-2013 |
ian |
Remove the remaining references to the now-obsolete sheevaplug config files, which have been replaced by the generic db88f6xxx config which works for all kirkwood-series chips.
Approved by: cognet (mentor)
|
245955 |
27-Jan-2013 |
ian |
Add support for the GlobalScale Technologies DreamPlug computer.
This adds support for version 10, revision 01, but it should also work without changes for the 0901 model, at least until we get drivers for the two different wifi chips involved.
Many users contributed to and tested the various patchsets floating around for the past year that have eventually evolved into this checkin, most notably Richard Neese who provided the bulk of the kernel config file.
Approved by: cognet (mentor)
|
245954 |
27-Jan-2013 |
ian |
Add a default do-nothing implementation of fdt_pci_devmap() using a weak alias, so that we don't need an empty implementation of it for every Marvell platform that has no PCI. This allows the removal of the SheevaPlug-specific stub and config files, and eliminates the need to add similar stubs for future models.
Marvell platforms that do expose PCI are compiled with 'device pci' which causes the real (non-weak) implementation in dev/fdt/fdt_pci.c to be used.
Approved by: cognet (mentor)
|
245948 |
26-Jan-2013 |
ian |
Fix a buffer overrun while pre-formatting the names array, perpetrated in the prior commit. Use essentially the same sprintf() statement for both formatting and pre-formatting, and use a format string which eliminates the need for an extra temporary buffer when formatting the name.
Noted by: Christoph Mallon Pointy hat to: ian Approved by: cognet (mentor)
|
245942 |
26-Jan-2013 |
andrew |
Align td_frame as it will be placed into the sp register which must be 8 byte aligned on ARM EABI.
|
245900 |
25-Jan-2013 |
ganbold |
Fix method of naming compatible string to follow "<manufacturer>,<model>" as described in http://www.devicetree.org/Device_Tree_Usage
Reviewed by: andrew@ Approved by: gonzo@
|
245876 |
24-Jan-2013 |
ganbold |
Fix timer to support oneshot and periodic mode Use 64 bit high and low counter for timecounter and delay
Reviewed by: mav@, ian@ Approved by: gonzo@
|
245672 |
19-Jan-2013 |
kientzle |
Clarify the error messages for unrecognized pins and muxtypes.
|
245637 |
19-Jan-2013 |
ian |
Eliminate the need for an intermediate array of indices into the arrays of interrupt counts and names, by making the names into an array of fixed-length strings that can be directly indexed. This eliminates extra memory accesses on every interrupt to increment the counts.
As a side effect, it also fixes a bug that would corrupt the names data if a name was longer than MAXCOMLEN, which led to incorrect vmstat -i output.
Approved by: cognet (mentor)
|
245551 |
17-Jan-2013 |
andrew |
* Correct KINFO_PROC_SIZE for ARM EABI. * Update the syscall interface to pass in the syscall value in register r7.
|
245549 |
17-Jan-2013 |
andrew |
Implement stack unwinding based on section 9 of the "Exception handling ABI for the ARM architecture" documentation. The unwind tables are currently not stored in the kernel but will be added later.
|
245500 |
16-Jan-2013 |
ganbold |
Fix style bugs Use defined constant instead of variable for reg_shift Change u_int32_t to uint32_t
Approved by: gonzo Suggested by: bde, wkoszek
|
245478 |
15-Jan-2013 |
cognet |
Use armv7_drain_writebuf() and armv7_context_switch, instead of the arm11 variants.
|
245477 |
15-Jan-2013 |
cognet |
Only spin on the blocked_lock for SCHED_ULE+SMP, as it's done on the other arches.
|
245475 |
15-Jan-2013 |
cognet |
Don't define rel/acq variants of some atomic operations as the regular version for armv6.
|
245455 |
15-Jan-2013 |
ganbold |
Add mistakenly removed third clause to license
Reviewed by: joel
|
245454 |
15-Jan-2013 |
ganbold |
Fix formatting of license according to share/examples/etc/bsd-style-copyright
Reviewed by: joel
|
245453 |
15-Jan-2013 |
ganbold |
Fix license to follow standard license template
Reviewed by: joel
|
245450 |
15-Jan-2013 |
ganbold |
Initial support for Allwinner A10 SoC (Cubieboard) Add simple console driver Add interrupt handling and timer codes Add kernel config file Add dts file Approved by: gonzo
|
245414 |
14-Jan-2013 |
andrew |
Update sigcode to use both the current ABI and FreeBSD's version of the ARM EABI syscall calling convention.
The current ABI encodes the syscall number in the instruction. This causes issues with the thumb mode as it only has 8 bits to encode this value and we have too many system calls and by using a register will simplify the code to get the syscall number in the kernel.
With the ARM EABI we reuse the Linux calling convention by storing the value in r7. Because of this we use both methods to encode the syscall number in this function.
|
245389 |
13-Jan-2013 |
ray |
Enable syscons framebuffer support for bcm2835. It makes possible to run Xorg on Raspberry Pi. o convert mmap address to physical. o add FBIOGTYPE ioctl handler - allow to get screen resolution by new xf86-video-scfb driver. Originally designed for "Efika MX" project.
Sponsored by: FreeBSD Foundation
|
245388 |
13-Jan-2013 |
gonzo |
Remove accidentally copypasted comment
Spotted by: gavin
|
245203 |
09-Jan-2013 |
cognet |
Define IPI_IRQ_START and IPI_IRQ_END.
|
245202 |
09-Jan-2013 |
cognet |
Use get_pcpu() instead of using pcpup, as it's wrong for SMP.
Submitted by: Lukasz Plachno <luk@semihalf.com>
|
245192 |
08-Jan-2013 |
cognet |
Remove old declarations.
|
245147 |
08-Jan-2013 |
gonzo |
Switch default cache type for ARMv6/ARMv7 from write-through to writeback-writeallocate
|
245146 |
08-Jan-2013 |
gonzo |
Fix cache-related issue with pmap for ARMv6/ARMv7:
- Missing PTE_SYNC in pmap_kremove caused memory corruption in userland applications - Fix lack of cache flushes when using special PTEs for zeroing or copying pages. If there are dirty lines for destination memory and page later remapped as a non-cached region actual content might be overwritten by these dirty lines when cache eviction happens as a result of applying cache eviction policy or because of wbinv_all call. - icache sync for new mapping for userland applications.
Tested by: gber
|
245137 |
07-Jan-2013 |
gonzo |
- Identify more devices for OMAP4 SoC (up to OMAP4470) - Whitespace fixes
|
245135 |
07-Jan-2013 |
gonzo |
Implement barriers for AMRv6 and ARMv7
Submitted by: Daisuke Aoyama <aoyama at peach.ne.jp> Reviewed by: ian, cognet
|
245120 |
07-Jan-2013 |
gonzo |
Release version check for erratum 727915 workaround in l2_wbinv_range function implementation causes function fail to flush caches for chip with RTL number 0x7. I failed to find official PL310 revision with this RTL number so further research on this matter required.
|
245087 |
06-Jan-2013 |
andrew |
Fix the build:
* Use pl310_softc when the softc is otherwise unavailable. * Use the correct spelling of sc_rtl_revision.
|
245083 |
06-Jan-2013 |
andrew |
Only work around errata when we are on a part where the erratum applies.
Reviewed by: gonzo
|
245080 |
05-Jan-2013 |
gonzo |
Export board serial and board revision obtained from FDT blob
|
245079 |
05-Jan-2013 |
gonzo |
Add hw.board.serial and hw.board.revision for exporting board-specific info
|
245071 |
05-Jan-2013 |
gonzo |
Fix background color calculation
Spotted by: ray@
|
245070 |
05-Jan-2013 |
kientzle |
Shuffle the TX underrun to work the same way as the RX underrun, as suggested by YongHyeon PYUN.
|
245068 |
05-Jan-2013 |
kientzle |
Prefer the new NFS modules
|
245064 |
05-Jan-2013 |
kientzle |
While trying to track down the root cause for TX stalls in this driver, I've also had some time to evaluate the effectiveness of different watchdog strategies.
This is the latest attempt, which consolidates all of the watchdog logic in one place and consistently detects TX stalls and resets within a couple of seconds.
|
244939 |
01-Jan-2013 |
kientzle |
Overhauled CPSW driver for TI CPSW Ethernet module (as used in AM335x SoC for BeagleBone).
Among other things: * Watchdog reset doesn't hang the driver. * Disconnecting cable doesn't hang the driver. * ifconfig up/down doesn't hang the driver * Out-of-memory no longer panics the driver.
Known issues: * Doesn't have good support for fragmented packets (calls m_defrag() on TX, assumes RX packets are never fragmented) * Promisc and allmulti still unimplimented * addmulti and delmulti still unimplemented * TX queue still stalls (but watchdog now consistently recovers in ~5s) * No sysctl monitoring * Only supports port0 * No switch configuration support * Not tested on anything but BeagleBone
Committed from: BeagleBone
|
244919 |
01-Jan-2013 |
andrew |
Document the known values of the RTL release field in the cache is register
|
244914 |
31-Dec-2012 |
gonzo |
PL310 driver update:
- Add pl310.disable tunable to disable L2 cache altogether. In order to make sure that it's 100% disabled we use cache event counters for cache line eviction and read allocate events and panic if any of these counters increased. This is purely for debugging purpose - Direct access DEBUG_CTRL and CTRL might be unavailable in unsecure mode, so use platform-specific functions for these registers - Replace #if 1 with proper erratum numbers - Add erratum 753970 workaround - Remove wait function for atomic operations - Protect cache operations with spin mutex in order to prevent race condition - Disable instruction cache prefetch and make sure data cache prefetch is enabled in OMAP4-specific intialization
|
244912 |
31-Dec-2012 |
gonzo |
Merge r234561 from busdma_machdep.c to ARMv6 version of busdma:
Interrupts must be disabled while handling a partial cache line flush, as otherwise the interrupt handling code may modify data in the non-DMA part of the cache line while we have it stashed away in the temporary stack buffer, then we end up restoring a stale value.
PR: 160431 Submitted by: Ian Lepore
|
244762 |
28-Dec-2012 |
gonzo |
Add makeshift implementation for framebuffer console's cursor
Basically it's replica of VersatilePB code which is replica of XBox FB code. All of them are linear framebuffers and should have common bits moved to reusable framework.
|
244758 |
28-Dec-2012 |
gonzo |
Fix event timer on Raspberry Pi
- Disable interrupt when updating compare value in order to make this operation atomical
- Increase minimum period for event timer. Systimer on BCM2835 is compare timer, so if minimum period is too small it might be less then fraction of time between "read current value" and "set compare timer" operations. It means that when timer is armed actual counter value is more then compare value and it will take whole cycle (~32sec for 1MHz timer) to fire interrupt.
Submitted by: Daisuke Aoyama <aoyama at peach.ne.jp>
|
244755 |
28-Dec-2012 |
gonzo |
Add custom renderer for poor man's cursor support for framebuffer console
|
244575 |
22-Dec-2012 |
cognet |
The manpage states that bus_dmamap_create(9) returns ENOMEM if it can't allocate a map or mapping resources. That seems to imply that any memory allocations it does must use M_NOWAIT and check for NULL.
Submitted by: Ian Lepore <freebsd@damnhippie.dyndns.org>
|
244574 |
22-Dec-2012 |
cognet |
The VM_MEMATTR_ constants are enumerated, not a bitset. Compare accordingly.
Submitted by: Ian Lepore <freebsd@damnhippie.dyndns.org>
|
244480 |
20-Dec-2012 |
gonzo |
Replace generic ARM11 option with more specific support for ARM1136 and ARM1176
Submitted by: Daisuke Aoyama <aoyama at peach.ne.jp> Obtained from: NetBSD
|
244476 |
20-Dec-2012 |
gonzo |
Fix misleading comment
|
244473 |
20-Dec-2012 |
cognet |
Use C comments instead of C++ comments.
Spotted out by: gonzo (thanks, man)
|
244471 |
20-Dec-2012 |
cognet |
Busdma enhancements, especially for managing small uncacheable buffers.
- Use the new architecture-agnostic buffer pool manager that uses uma(9) to manage a set of power-of-2 sized buffers for bus_dmamem_alloc().
- Create pools of buffers backed by both regular and uncacheable memory, and use them to handle regular versus BUS_DMA_COHERENT allocations.
- Use uma(9) to manage a pool of bus_dmamap structs instead of local code to manage a static list of 500 items (it took 3300 maps to get to multi-user mode, so the static pool wasn't much of an optimization).
- Small BUS_DMA_COHERENT allocations no longer waste an entire page per allocation, or set pages to uncached when they contain data other than DMA buffers. There's no longer a need for drivers to work around the inefficiency by allocing large buffers then sub-dividing them.
- Because we know the alignment and padding of buffers allocated by bus_dmamem_alloc() (whether coherent or regular memory, and whether obtained from the pool allocator or directly from the kernel) we can avoid doing partial cacheline flushes on them.
- Add a fast-out to _bus_dma_could_bounce() (and some comments about what the routine really does because the old misplaced comment was wrong).
- Everywhere the dma tag alignment is used, the interpretation is that an alignment of 1 means no special alignment. If the tag is created with an alignment argument of zero, store it in the tag as one, and remove all the code scattered around that changed 0->1 at point of use.
- Remove stack-allocated arrays of segments, use a local array of two segments within the tag struct, or dynamically allocate an array at first use if nsegments > 2. On an arm system I tested, only 5 of 97 tags used more than two segments. On my x86 desktop it was only 7 of 111 tags.
Submitted by: Ian Lepore <freebsd@damnhippie.dyndns.org>
|
244469 |
20-Dec-2012 |
cognet |
Use the new allocator in bus_dmamem_alloc().
|
244446 |
19-Dec-2012 |
gonzo |
Use NFSCL since NFSCLIENT build is broken at the moment
|
244414 |
19-Dec-2012 |
cognet |
Properly implement pmap_[get|set]_memattr
Submitted by: Ian Lepore <freebsd@damnhippie.dyndns.org>
|
244412 |
18-Dec-2012 |
gonzo |
Add sysctls for changing GPIO pins function
Submitted by: Luiz Otavio O Souza
|
244281 |
16-Dec-2012 |
gonzo |
Fix comment to represent actual file purpose
Spotted by: gavin@
|
244197 |
13-Dec-2012 |
gonzo |
Add support for QEMU's version of Versatile Platform Board
|
244195 |
13-Dec-2012 |
gonzo |
Add driver for PrimeCell Vectored Interrupt Controller (PL190)
|
243909 |
05-Dec-2012 |
cognet |
Don't write-back the cachelines if we really just want to invalidate them.
Spotted out by: Ian Lepore <freebsd at damnhippie DOT dyndns dot org>
|
243882 |
05-Dec-2012 |
glebius |
Mechanically substitute flags from historic mbuf allocator with malloc(9) flags within sys.
Exceptions:
- sys/contrib not touched - sys/mbuf.h edited manually
|
243701 |
30-Nov-2012 |
gonzo |
- Enable syscons/framebuffer by default - Enable NFS client by default. Might be useful for building ports
|
243691 |
30-Nov-2012 |
gonzo |
Get reserved memory regions and exclude them from available memory map
|
243688 |
30-Nov-2012 |
gonzo |
Get frequency from "clock-frequency" property of "/axi/sdhci" FDT node
|
243687 |
30-Nov-2012 |
gonzo |
Fix RGB565 case
|
243666 |
29-Nov-2012 |
gonzo |
Fix hardcoded bpp value
|
243602 |
27-Nov-2012 |
gonzo |
Do not enable data cache until later in kernel init. Stale bits in cache might cause erroneus behavior on early stage.
Submitted by: Ian Lepore Tested on: Atmel, Marvell, and Eyxnos
|
243581 |
27-Nov-2012 |
marcel |
Add NOTES and Makefile in order to generate LINT. NOTES contains pretty much all the union of all the kernel configuration files, including all the CPU types, Marvell SOC types and at91 board types. Any device not supported (read: does not compile) has been removed, which is a fairly small set actually. As such, LINT gives us very good coverage without having to build a zillion kernels.
|
243580 |
27-Nov-2012 |
marcel |
Allow building LINT by defining both SAMPLE_AT_RESET on the one hand and SAMPLE_AT_RESET_{LO|HI} on the other. It doesn't matter which values they take, as long as they are defined.
|
243579 |
27-Nov-2012 |
marcel |
Don't include arm/xscale/i8134x/i81342reg.h when we're compiling LINT. The definitions in i81342reg.h clash with those in i80321reg.h.
|
243578 |
27-Nov-2012 |
marcel |
Remove print_kernel_section_addr(). All statements in that function expand to uncompilable code when the kernel configuration contains "options DEBUG", such as it is for LINT. The toolchain is often a better approach to figure this out, as it doesn't require one to boot the kernel.
|
243576 |
27-Nov-2012 |
marcel |
Don't define intr_disable and intr_restore as macros. The macros interfere with structure fields of the same name in drivers, like the intr_disable function pointer in struct cphy_ops in cxgb(4). Instead define intr_disable and intr_restore as inline functions.
With intr_disable() an inline function, the I32_bit and F32_bit macros now need to be visible in MI code and given the rather poor names, this is not at all good. Define ARM_CPSR_F32 and ARM_CPSR_I32 and use that instead of F32_bit and I32_bit (resp) for now.
|
243575 |
26-Nov-2012 |
marcel |
Unbreak building a kernel with EHCI: there's no ehci_atmelarm.c.
|
243523 |
25-Nov-2012 |
kientzle |
Fix spelling.
|
243465 |
23-Nov-2012 |
gonzo |
Add Raspberry Pi GPIO driver
Submitted by: Luiz Otavio O Souza
|
243462 |
23-Nov-2012 |
imp |
Strip trailing newline.
|
243434 |
23-Nov-2012 |
gonzo |
Now that we have working USB keyboard add ukbd to the syscons-enabling part of config
|
243423 |
23-Nov-2012 |
gonzo |
Multiple fixes for BCM2835 framebuffer
- Get resolution settings from FDT blob - Properly handle 24 and 16 bits per pixel - Add colors support for text console
|
243359 |
21-Nov-2012 |
cognet |
Make sure the address starts on a cache line boundary.
|
243227 |
18-Nov-2012 |
adrian |
Correctly use spaces here.
Pointed out by: pjd
|
243194 |
17-Nov-2012 |
andrew |
Clean up the two i80321 copies of initarm to be closer to one another.
|
243189 |
17-Nov-2012 |
adrian |
Just compile the whole ath chipset support in.
|
243132 |
16-Nov-2012 |
kib |
Move the declaration of vm_phys_paddr_to_vm_page() from vm/vm_page.h to vm/vm_phys.h, where it belongs.
Requested and reviewed by: alc MFC after: 2 weeks
|
243109 |
16-Nov-2012 |
cognet |
Don't forget to unlock the pmap lock on failure.
|
243108 |
15-Nov-2012 |
cognet |
Remove a useless printf
|
243107 |
15-Nov-2012 |
cognet |
Use the "inner shareable" variations of flush/invalidate functions for SMP.
Submitted by: Giovanni Trematerra <gianni at freebsd DOT org>
|
243040 |
14-Nov-2012 |
kib |
Flip the semantic of M_NOWAIT to only require the allocation to not sleep, and perform the page allocations with VM_ALLOC_SYSTEM class. Previously, the allocation was also allowed to completely drain the reserve of the free pages, being translated to VM_ALLOC_INTERRUPT request class for vm_page_alloc() and similar functions.
Allow the caller of malloc* to request the 'deep drain' semantic by providing M_USE_RESERVE flag, now translated to VM_ALLOC_INTERRUPT class. Previously, it resulted in less aggressive VM_ALLOC_SYSTEM allocation class.
Centralize the translation of the M_* malloc(9) flags in the single inline function malloc2vm_flags().
Discussion started by: "Sears, Steven" <Steven.Sears@netapp.com> Reviewed by: alc, mdf (previous version) Tested by: pho (previous version) MFC after: 2 weeks
|
243026 |
14-Nov-2012 |
cognet |
Make it clear the L2 ops are filled for any cpu using a PL310 cache, not just the omap4.
Spotted out by: Giovanni Trematerra <gianni at freebsd DOT org>
|
243024 |
14-Nov-2012 |
cognet |
Use the arrmv7 version for flushID too, as it does something different for SMP.
Submitted by: Giovanni Trematerra <gianni at freebsd DOT org>
|
242746 |
08-Nov-2012 |
imp |
Reduce differences between these two initarms a bit more.
|
242700 |
07-Nov-2012 |
imp |
Minor cosmetic changes to bring atmel's initarm and the default initarm for FDT closer together. More to follow.
|
242692 |
07-Nov-2012 |
kevlo |
Fix typo; s/ouput/output
|
242531 |
03-Nov-2012 |
andrew |
Merge the FDT versions of initarm.
The copies of initarm used on platforms with FDT support were almost identical. The differences were pulled out into separate functions that were called by initarm.
This change merges the, now identical, copies of initarm and a few of it's support functions. This is a step towards a common kernel on ARMv6.
|
242431 |
01-Nov-2012 |
cognet |
Fix build for SMP.
Submitted by: Giovanni Trematerra <gianni at freebsd DOT org>
|
242394 |
31-Oct-2012 |
andrew |
Merge r242125 into the other ARMv6 copies of initarm.
|
242362 |
30-Oct-2012 |
cognet |
Fix SMP build for omap4
Submitted by: Giovanni Trematerra <gianni at freebsd DOT org>
|
242343 |
30-Oct-2012 |
andrew |
Move the call to platform_gpio_init() into initarm_gpio_init() to reduce the diff to the other FDT versions of initarm.
|
242321 |
29-Oct-2012 |
gonzo |
Add BCM2835 SDHCI driver and enable it in Raspberry Pi config
|
242191 |
27-Oct-2012 |
kientzle |
Missing paren.
Pointy hat:me
|
242171 |
27-Oct-2012 |
kientzle |
Comment out the other BOOTP option This should make PANDABOARD suitable for building bootable SD images.
Submitted by: Giovanni Trematerra
|
242125 |
26-Oct-2012 |
kientzle |
set the kernelname from the boot loader environment. This fixes kern.bootfile sysctl.
Submitted by: Giovanni Trematerra
|
242124 |
26-Oct-2012 |
kientzle |
Comment out the BOOTP/NFSROOT support. Transition this config file to support a production kernel mounted on an SD card.
|
242068 |
25-Oct-2012 |
kientzle |
Do proper padding of runt packets using code copied from bge(4).
Reviewed by: gnn
|
242067 |
25-Oct-2012 |
kientzle |
Refer to headers locally. This makes it a lot easier to build this driver out-of-tree.
|
242063 |
25-Oct-2012 |
kientzle |
Support FreeBSD Boot loaders.
|
242062 |
25-Oct-2012 |
kientzle |
Everybody needs bpf.
|
242061 |
25-Oct-2012 |
kientzle |
Support boot loaders in the standard kernel.
|
241885 |
22-Oct-2012 |
eadler |
This isn't functionally identical. In some cases a hint to disable unit 0 would in fact disable all units.
This reverts r241856
Approved by: cperciva (implicit)
|
241856 |
22-Oct-2012 |
eadler |
Now that device disabling is generic, remove extraneous code from the device drivers that used to provide this feature.
Reviewed by: des Approved by: cperciva MFC after: 1 week
|
241844 |
22-Oct-2012 |
eadler |
remove duplicate semicolons where possible.
Approved by: cperciva MFC after: 1 week
|
241831 |
22-Oct-2012 |
kientzle |
Don't repeat the POSTREAD dma sync.
|
241721 |
19-Oct-2012 |
kientzle |
Replace deprecated M_DONTWAIT with M_NOWAIT.
|
241572 |
15-Oct-2012 |
kientzle |
Fix an mbuf leak in cpsw driver, clean up mbuf management: * Record TX mbufs when we get them so we can release them. * Set TX/RX mbuf slots to NULL when we are no longer responsible for them * Move dma sync on RX into RX intr routine
|
241564 |
14-Oct-2012 |
kientzle |
Cut-and-paste dropped semicolon.
|
241563 |
14-Oct-2012 |
kientzle |
Name cpsw_stop to cpsw_stop_locked consistently with other functions in this file that assume locks are already held.
|
241562 |
14-Oct-2012 |
kientzle |
Return correct packet size.
|
241333 |
07-Oct-2012 |
imp |
Loop reading the RTC registers until the same values are obtained twice, as advised in the atmel docs.
Submitted by: Ian Lapore
|
241308 |
07-Oct-2012 |
imp |
Improve a few comments.
|
241307 |
07-Oct-2012 |
imp |
Use the RTC unit to get the time. This works on all known AT91SAM9* processors, either on reboot or after power down with battery backup. However, the AT91RM9200 RTC always resets on reboot making it just about useless at the moment (if we support a low-power mode or an extended sleep mode, it might become useful).
Submitted by: Ian Lepore
|
241100 |
01-Oct-2012 |
kientzle |
Support kernel options from ubldr.
|
241081 |
01-Oct-2012 |
andrew |
Remove unused variables from the OMAP ehci code.
|
241080 |
01-Oct-2012 |
andrew |
Fix the clobber list on the atomic operators that do comparisons. Without this some compilers will place a cmp instruction before the atomic operation and expect to be able to use the result afterwards. By adding "cc" to the list of used registers we tell the compiler to not do this.
|
241063 |
30-Sep-2012 |
alc |
Stop calling pmap_remove_write() from pmap_remove_all(). Doing so is not only inefficient but also leads to recursive lock acquisition.
Tested by: ray
|
241058 |
29-Sep-2012 |
alc |
Eliminate an unused declaration.
|
241055 |
29-Sep-2012 |
alc |
Eliminate unused variables.
|
241054 |
29-Sep-2012 |
alc |
Add support for mincore(). Specifically, this is an adaptation of the pmap_mincore() implementation that was added to the original arm pmap in r235717.
|
241044 |
29-Sep-2012 |
alc |
Update a comment to reflect recent locking changes.
|
240983 |
27-Sep-2012 |
alc |
Implementing pmap_kextract(va) as pmap_extract(kernel_pmap, va) is problematic because some callers to pmap_kextract() expect its implementation to be lock-less. In particular, uma_dbg_alloc() implicitly requires this. Otherwise, lock-order reversals occur between pmap locks and UMA zone locks. So, this change introduces a lock-less implementation of pmap_kextract().
Disable recursion on the pvh global lock in the new armv6 pmap. While recursion on this locks occurs in the old arm pmap, it thankfully doesn't occur in the armv6 pmap.
Tested by: jmg
|
240956 |
26-Sep-2012 |
andrew |
Create the new initarm_ functions to reduce the diff to the other FDT versions of initarm
|
240953 |
26-Sep-2012 |
andrew |
Use arm_dump_avail_init to build the dump_avail array
|
240952 |
26-Sep-2012 |
andrew |
Start to clean up the lpc initarm as it also uses FDT.
|
240913 |
25-Sep-2012 |
alc |
Eliminate an unused declaration.
|
240869 |
23-Sep-2012 |
andrew |
Clean up the bcm2835 initarm. It is now identical to the other ARMv6 copies
Tested by: Alexander Yerenkow
|
240853 |
23-Sep-2012 |
andrew |
Fix a typo in a Broadcom initarm debug printf
|
240846 |
23-Sep-2012 |
andrew |
Pull out the SoC specific parts of initarm into separate functions
|
240845 |
23-Sep-2012 |
andrew |
Update different versions of physmap_init to be identical in preparation for merging them.
|
240844 |
22-Sep-2012 |
andrew |
Reduce the diff between the FDT implementations of initarm. This only touches whitespace and comments.
|
240803 |
22-Sep-2012 |
alc |
Since UMA_ZONE_NOFREE is specified when l2zone and l2table_zone are created, there is no need to release and reacquire the pmap and pvh global locks around calls to uma_zfree(). Recursion into the pmap simply won't occur.
Eliminate the use of M_USE_RESERVE. It is deprecated and, in fact, counter- productive, meaning that it actually makes the memory allocation request more likely to fail.
Eliminate the macros pmap_{alloc,free}_l2_dtable(). They are of limited utility, and pmap_free_l2_dtable() was inconsistently used.
Tidy up pmap_init(). In particular, change the initialization of the PV zone so that it doesn't span the initialization of the l2 and l2table zones.
Tested by: jmg
|
240802 |
22-Sep-2012 |
andrew |
Create a common set_stackptrs in sys/arm/machdep.c.
On single core devices set_stackptrs is only ever called with cpu = 0 in initarm and will be identical to the existing function. On SMP this needs to be implemented for sys/arm/mp_machdep.c, but the implementations are identical for each SoC.
|
240596 |
17-Sep-2012 |
andrew |
Add a kernel config for the Toshiba AC100. The AC100 is an ARM laptop with an NVidia Tegra 2 CPU.
Tegra 2 needs an external patch to pmap for atomic operations to work. Even with this the Kernel only gets to the mount root prompt. As such Tegra support is considered experimental, however adding the kernel config will help ensure the Tegra code builds.
|
240572 |
16-Sep-2012 |
jmg |
fix the kernel files to match our standard "option<space><tab>" format such that when commenting/uncommentting lines, horizontal spacing is maintained...
Also fix some minor comment formatting to line things up, etc...
Reviewed by: gnn, imp MFC after: 1 week
|
240571 |
16-Sep-2012 |
jmg |
remove some unnecessary debugging statements, dead code and incorrect comment...
Reviewed by: gnn, imp
|
240551 |
16-Sep-2012 |
andrew |
Start to clean up ARMv6 initarm implementations by making the Tegra 2 version similar to the Ti version.
|
240550 |
16-Sep-2012 |
andrew |
In the Tegra 2 standard config: * Remove an unneeded makeoption * Set machine correctly * Properly indent the include of files.tegra2
|
240549 |
16-Sep-2012 |
andrew |
The cpu_reset function is noreturn, make sure this is true on Tegra 2. While here fix a typo.
|
240532 |
15-Sep-2012 |
alc |
Eliminate an unused malloc type.
|
240518 |
14-Sep-2012 |
eadler |
Correct double "the the"
Approved by: cperciva MFC after: 3 days
|
240493 |
14-Sep-2012 |
gber |
Implement MSI support.
MSI are implemented via Inbound Shared Doorbell 1 interrupts. Interrupts are triggered by writing to Software Triggered Interrupt registeri (PCIe card using physical address of this register in BAR0 space). There are 32 interrupts available. It can be increased by using Doorbell 2 and Doorbell 3 registers to 96 interrupts.
Obtained from: Marvell, Semihalf
|
240492 |
14-Sep-2012 |
gber |
Add support for MSI in interrupt controlller.
MSI are implemented via software interrupt. PCIe cards will write into software interrupt register which will cause inbound shared interrupt which will be interpreted as a MSI.
Obtained from: Marvell, Semihalf
|
240491 |
14-Sep-2012 |
gber |
Remove unused structure fields
Obtained from: Semihalf
|
240490 |
14-Sep-2012 |
gber |
Enable PCI for Armada XP
Obtained from: Semihalf
|
240489 |
14-Sep-2012 |
gber |
pci: Implement new memory and io space allocator for PCI.
Cleanup code and move initializing bridge into separate function. Add checking of PCI mode (RC or endpoint).
Obtained from: Semihalf
|
240488 |
14-Sep-2012 |
gber |
Add support for Armada XP A0.
- Add functions to calculate clocks instead using hardcoded values - Update reset and timers functions - Update number of interrupts - Change name of platform from db88f78100 to db78460 - Correct DRAM size and PCI IRQ routing in dts file.
Obtained from: Semihalf
|
240486 |
14-Sep-2012 |
gber |
Support identification of new PJ4B cores.
Obtained from: Semihalf
|
240483 |
14-Sep-2012 |
hselasky |
Add basic USB support to Raspberry PI target.
|
240442 |
13-Sep-2012 |
alc |
Simplify the kernel pmap locking in pmap_enter_pv(). While I'm here, tidy up the comments and whitespace.
Tested by: cognet
|
240376 |
11-Sep-2012 |
hselasky |
Add device entry for DWC OTG.
|
240321 |
10-Sep-2012 |
alc |
Replace all uses of the vm page queues lock by a r/w lock that is private to this pmap.
Revise some comments.
The file vm/vm_param.h includes the file machine/vmparam.h, so there is no need to directly include it.
Tested by: andrew
|
240280 |
09-Sep-2012 |
hselasky |
Add support for DWC OTG.
|
240181 |
07-Sep-2012 |
alc |
Eliminate an unused macro.
|
240177 |
06-Sep-2012 |
jhb |
Dynamically allocate the S/G lists passed to callback routines rather than 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@)
|
240166 |
06-Sep-2012 |
alc |
There is no need to release the pvh global lock around calls to pmap_get_pv_entry(). In fact, some callers already held it around calls. (In earlier versions, the same statements would apply to the page queues lock.)
While I'm here tidy up the style of a few nearby statements and revise some comments.
Tested by: Ian Lepore
|
239934 |
31-Aug-2012 |
alc |
Replace all uses of the vm page queues lock by a r/w lock that is private to this pmap.
Tested by: Ian Lepore
|
239922 |
30-Aug-2012 |
gonzo |
Add barebone Raspberry Pi port. Supported parts: - Interrupts controller - Watchdog - System timer - Framebuffer (hardcoded resolution/bpp)
|
239806 |
29-Aug-2012 |
imp |
4-wire mode isn't working quite right, so turn it off for a bit.
|
239805 |
29-Aug-2012 |
imp |
Make this work on the AT91SAM9G20: o Disable multi-block operations: they sometimes fail. o Don't use the PROOF bits yet: they hang the system hard. o Disable the the multi-block operations for !rm9200, but it still doesn't help. o Fix writing < 12 bytes errata to actually work. o Enable, for the moment, reporting extra bytes soaked up.
|
239804 |
29-Aug-2012 |
imp |
When copying data, use memcpy instead of bcopy. It matches the arguments better. Also, set the need to use the workaround flag before we actually need to use it, rather than after.
|
239785 |
28-Aug-2012 |
imp |
Make AT91_MCI_ALLOW_OVERCLOCK a real option. Rename old use 30MHz to this new option. Only try to use > 25MHz when our best frequency is < 15MHz and overclocking is enabled. Fix minor style chaff.
|
239780 |
28-Aug-2012 |
imp |
Clip the upper end to 31MHz for slow clock speeds. On faster machines, we wind up with a 66MHz clock, which is too fast.
|
239764 |
28-Aug-2012 |
imp |
Move to using a flag instead of checking the CPU type each transaction for the MCI1 rev 2.x write workarounds.
|
239763 |
28-Aug-2012 |
imp |
Style: Move these routines to be before the forward declared functions as is the normal practice.
|
239762 |
28-Aug-2012 |
imp |
Bring in the multi-block patches for mci. These required extensive restructuring of the driver. I've tried to preserve the other silicon workarounds that we've added over the years, but haven't had a chance to extensively test on other hardware. On my AT91RM9200 with 30MHz/1 wire/64 block transfers, I've been able to go from ~.66MB/s to 2.25MB/s in the simple tests I performed, almost a 3.5x improvement. This cuts the boot time almost in half when everything else goes right (timed from rtc message to login: prompt).
PR: 155214 Submitted by: Ian Lapore
|
239722 |
27-Aug-2012 |
kientzle |
Correctly fetch the MAC address.
Break down the bytes directly into the softc; the intermediate buffer isn't needed here. Break down the bytes in the correct order.
|
239721 |
27-Aug-2012 |
imp |
Add hint and sysctl support for 4 wire mode.
PR: 155241 Submitted by: Ian Lapore
|
239720 |
27-Aug-2012 |
imp |
Minor style(9) nit.
|
239719 |
27-Aug-2012 |
imp |
Don't puprosely overclock the SD bus to 30MHz, make the user explicltly enable that. The driver chose to use 60MHz / 2 (30MHz) most of the time rather than 60MHz / 4 (15MHz) based on the Linux driver of the time. This pushes the spec a little in order to not suffer the penalty of running at 15MHz. However, when other bus masters are active in the system, and the user tries 4-wire mode, the internal bus arbitration would fail with data loss as a result.
# Comments from PR were reworked to reflect my historical perspective
PR: 155214 (partial) Submitted by: Ian Lepore
|
239702 |
26-Aug-2012 |
gonzo |
Add ARM11 support for elf trampoline
|
239701 |
26-Aug-2012 |
gonzo |
Add support for ARM11 cpufunc
Obtained from: NetBSD (partially)
|
239699 |
26-Aug-2012 |
gjb |
Grammar fix: s/NIC's/NICs/
MFC after: 3 days
|
239698 |
26-Aug-2012 |
gonzo |
Call set_pcpu for ARMv6 architecture too
|
239697 |
26-Aug-2012 |
gonzo |
Merge fix for hang on ARM11 from NetBSD
|
239696 |
26-Aug-2012 |
gonzo |
Piggyback MIPS changes and add ARM syscons support for devices with framebuffer
While here - sort #if defined() order alphabetically
|
239690 |
25-Aug-2012 |
gonzo |
Style cleanup
|
239688 |
25-Aug-2012 |
gonzo |
ARM11 might have more then 32 interrupts, e.g. BCM2835: 72 interrupts
|
239687 |
25-Aug-2012 |
gonzo |
Add clrex, strex , ldrex, strex and variants
Submitted by: Alexander Rybalko
|
239626 |
23-Aug-2012 |
imp |
Fetch the chip select in the bridge driver, like all the other spi bridges do.
|
239623 |
23-Aug-2012 |
imp |
Use proper resource type when freeing.
Submitted by: Ian Lapore (indirectly in a larger patch)
|
239597 |
22-Aug-2012 |
gonzo |
Do not change "cachable" attribute for DMA memory allocated with BUS_DMA_COHERENT attribute
The minimum unit for changing "cachable" attribute is page, so call to pmap_change_attr effectively disable cache for all pages that newly allocated DMA memory region spans on. The problem is that general-purpose memory could reside on these pages too and disabling cache might affect performance. Moreover ldrex/strex operators raise Data Abort exception when accessing memory on page with "cachable" attribute off.
BUS_DMA_COHERENT does nto require memory to be coherent. It just suggests to do best effort for reducing synchronization overhead.
|
239553 |
22-Aug-2012 |
kientzle |
After r239366, fix the ti_edma3.c driver to use the exact name as used in the FDT.
|
239530 |
21-Aug-2012 |
hselasky |
Make some at91_pcm_xxx() functions NULL safe.
|
239508 |
21-Aug-2012 |
hrs |
- Calculate the I2C baud rate to keep them <100 kHz under different TCLK frequencies. The maximum freqency is 100 kHz according to the datasheet.
- Add child device probing support based on the device tree. It now tries to find i2c-address property in the tree and attach the device with given slave address to iicbus.
|
239371 |
18-Aug-2012 |
hrs |
Add mvts(4) driver for internal thermal sensor found on 88F6282 and 88F6283. The temperature value will be exported via sysctl like this:
dev.mvts.0.temperature: 52.1C
|
239370 |
18-Aug-2012 |
hrs |
Sort IDs.
|
239369 |
18-Aug-2012 |
hrs |
Fix build when DEBUG is defined.
|
239368 |
18-Aug-2012 |
hrs |
- MV_DEV_88F6282 has 256KB 4-way L2 cache. - Sort IDs in win_cpu_can_remap() and remove MV_DEV_MV78100 because it is included in MV_DEV_DISCOVERY. - Add MV_DEV_MV78XXX to xor_max_eng().
|
239367 |
18-Aug-2012 |
hrs |
Fix a bug that could fail to initialize GPIO pins specified in "gpios" because "gpio-controller" property at the controller node was always ignored.
|
239363 |
18-Aug-2012 |
andrew |
Remove machine from the LN2410SBC config, it is set by std.s3c2410
|
239362 |
18-Aug-2012 |
andrew |
Set machine correctly on ARM. This allows universe to use the correct world when building each kernel.
Reviewed by: imp
|
239351 |
17-Aug-2012 |
rpaulo |
The GPIO drivers were initialising their mutexes with type of MTX_NETWORK_LOCK. This is wrong since these mutexes have nothing to do with networking.
|
239324 |
16-Aug-2012 |
imp |
Preliminary Embest ATEB9200 support.
|
239323 |
16-Aug-2012 |
imp |
Hmmm, somehow this file was completely deleted, rather than just having the bogus lines being removed.
|
239322 |
16-Aug-2012 |
imp |
Remove unused hints.
|
239308 |
15-Aug-2012 |
gonzo |
Unbreak build for the rest of AT91 platforms
|
239307 |
15-Aug-2012 |
jceel |
Switch lpc initarm() to use struct arm_boot_params and therefore fix EA3250 kernel build.
Approved by: gonzo
|
239291 |
15-Aug-2012 |
gonzo |
Unbreak ATMEL kernel build
|
239283 |
15-Aug-2012 |
gonzo |
Specify architecture for assembler
|
239281 |
15-Aug-2012 |
gonzo |
Merging of projects/armv6, part 10
- Support for Texas Instruments SoCs: - AM335x - OMAP4
- Kernel configs, DTS for Beaglebone and Pandaboard
Submitted by: Ben Gray, Damjan Marion
|
239280 |
15-Aug-2012 |
gonzo |
Merging of projects/armv6, part 9
Very basic support for Nvidia Tegra2: timer, interrupts, UART.
Submitted by: Damjan Marion <dmarion@freebsd.org>
|
239279 |
15-Aug-2012 |
gonzo |
Merging of projects/armv6, intermission
Add configs missed in previous commits: - ARMADA XP - Embedded Artists EA3250
|
239278 |
15-Aug-2012 |
gonzo |
Merging of projects/armv6, part 8
r235162:
Initial LPC32x0 support. Includes DTS file for Embedded Artists EA3250 board.
Peripherals currently supported: - Serial ports - Interrupt controller - Timers - Ethernet - USB host - Framebuffer (in conjunction with SSD1289 LCD controller) - RTC - SPI - GPIO
Submitted by: Jakub Wojciech Klama <jceel@freebsd.org>
|
239277 |
15-Aug-2012 |
gonzo |
Merging of projects/armv6, part 7
Add Marvell ARMADA XP support
Obtained from: Marvell, Semihalf
|
239268 |
15-Aug-2012 |
gonzo |
Merging projects/armv6, part 1
Cummulative patch of changes that are not vendor-specific: - ARMv6 and ARMv7 architecture support - ARM SMP support - VFP/Neon support - ARM Generic Interrupt Controller driver - Simplification of startup code for all platforms
|
239191 |
11-Aug-2012 |
andrew |
Move the decoding of the swi instruction to the syscall function. With the ARM EABI the syscall value will be moved to a register to ease adding thumb support. When this happens decoding of the instruction will no longer be required.
|
239190 |
11-Aug-2012 |
imp |
Correct the PLLA setting functions and centralize.
|
239189 |
11-Aug-2012 |
imp |
Update comments about setting PLLA and refernce the tables in the datasheet that express the limits.
|
239188 |
11-Aug-2012 |
imp |
Don't use C++ comments.
|
239168 |
10-Aug-2012 |
imp |
More comments about setting PLLA, or rather that we never do.
|
239167 |
10-Aug-2012 |
imp |
Add charge pump current register.
|
239065 |
05-Aug-2012 |
kib |
After the PHYS_TO_VM_PAGE() function was de-inlined, the main reason to pull vm_param.h was removed. Other big dependency of vm_page.h on vm_param.h are PA_LOCK* definitions, which are only needed for in-kernel code, because modules use KBI-safe functions to lock the pages.
Stop including vm_param.h into vm_page.h. Include vm_param.h explicitely for the kernel code which needs it.
Suggested and reviewed by: alc MFC after: 2 weeks
|
239033 |
04-Aug-2012 |
andrew |
Correctly return EFAULT in copyin & copyout on a fault. This fixes NFS when running FreeBSD on QEMU emulating a Gumstix board.
While here remove the use of a magic number in the not-XScale version.
Pointed out by: kib Reviewed by: stas
|
239032 |
04-Aug-2012 |
andrew |
Ensure we align the stack to 8 bytes in system calls.
This is not strictly required with the current ABI but will be when we switch to the ARM EABI. The aapcs requires the stack to be 4 byte aligned at all times and 8 byte aligned when calling a public subroutine where the current ABI only requires sp to be a multiple of 4.
|
238957 |
31-Jul-2012 |
imp |
Prefer ate over macb. macb doesn't work anymore, and ate has more errata workarounds in it.
|
238956 |
31-Jul-2012 |
imp |
Note about where we can boot this.
|
238955 |
31-Jul-2012 |
imp |
Allow chip selects other than 0. The SAM9260EK board has its dataflash on CS1.
|
238932 |
31-Jul-2012 |
imp |
macb doesn't work, switch to ate.
|
238922 |
30-Jul-2012 |
imp |
These files will support the whole at91sam9x5 family when done, so rename them now before they get copied further afield...
|
238921 |
30-Jul-2012 |
imp |
List the members of the AT91SAM9G45 family.
|
238895 |
30-Jul-2012 |
imp |
Fix a couple of comments about the rm9200, and fix a couple of indentation issues. Add note that we need to implement at91sam9260 erratum workaround.
|
238881 |
29-Jul-2012 |
imp |
Commit the dci (gadget) support to the one ATMEL kernel config where it might actually work.
|
238880 |
29-Jul-2012 |
imp |
Add usb_template for the gadget support. Even though this isn't a bootable kernel, its config will likely be copied to places that are.
Submitted by: Hans Petter Selasky
|
238873 |
28-Jul-2012 |
hrs |
Add support for Marvell 88F6282.
Sponsored by: Plat'Home, Co.,Ltd.
|
238850 |
27-Jul-2012 |
imp |
Add gadget devices. Not yet added to the child lists, but here to keep things from bit-rotting.
|
238849 |
27-Jul-2012 |
imp |
Add the usb device (gadget) side of things. Also add ehci bindings while I'm here in anticipation of usb2 support for newer SoCs.
Requested by: Hans Petter Selasky
|
238847 |
27-Jul-2012 |
imp |
Neither of these systems has PCI, but they do have ohci interface, so fix comments.
|
238846 |
27-Jul-2012 |
imp |
Add new at91sam9g45 support and sn9g45 board to the ATMEL kernel. Adapt SN9G45 board support to cope with multi-board.
|
238823 |
27-Jul-2012 |
imp |
Document the dataflash/mmc-sd issue. Add umass driver and usb. Boot off da0s1a instead of ate0. Note that MMC/SD is slot B. Until I switch over to NAND boot, dataflash booting will preclude having SD cards inserted at boot, so this last bit is untested.
My SAM9260-EK not boots to multi-user prompt.
|
238821 |
27-Jul-2012 |
imp |
Turns out the ETHERNUT5 isn't anything like the SAM9260-EK. Make this board init match better: UART1 instead of UART2, No RMMI, no SPI0, SPI1 comments.
|
238820 |
27-Jul-2012 |
imp |
Add (back?) ohci atmel attachment.
|
238811 |
26-Jul-2012 |
imp |
Trim read/write sizes to 128 bytes. Pages are only 128 bytes in size. Writes larger than this will wrap to the same page. Reads larger than this are permitted, but why take chances.
|
238789 |
26-Jul-2012 |
andrew |
Add support for the DesignA Electronics Snapper9g45 System on Module.
Reviewed by: imp
|
238788 |
26-Jul-2012 |
andrew |
Add support for the Atmel AT91SAM9G45 CPU.
Reviewed by: imp
|
238787 |
26-Jul-2012 |
imp |
Some models have 6 USARTS + DBGU. Set a consistent name.
|
238786 |
26-Jul-2012 |
imp |
Fix typo in comment. spibus uses cs= rather than addr=, so fix hints to use that (nop since spibus cs defaults to 0, and at91_spi assumes 0).
|
238785 |
26-Jul-2012 |
imp |
Update partitions to reflect "sam9 demo" defaults. Update i2c devices to just include the eeprom. Update dataflash chip select to be CS 1 (this doesn't work yet and needs changes to at91_spi and the spibus infrastructure). Fix typo in comment.
|
238545 |
17-Jul-2012 |
gonzo |
Move unmask IRQ function call up to nexus device level.
FDT-enabled targets were broken after r238043 that relies on device up the hierarchy to properly setup interrupt. nexus device for ARM platforms did job only partially: setting handler but not unmasking interrupt. Unmasking was performed by platform code.
Reviewed by: andrew@
|
238467 |
15-Jul-2012 |
imp |
These were never used, remove them.
|
238465 |
15-Jul-2012 |
imp |
Configure the peripheral pins for MCI devices. Eliminate the now-unused at91_pio_rm9200.h.
|
238443 |
14-Jul-2012 |
imp |
Add preliminary support for Atmel SAM9260-EK evaluation kit. Initially identical to the Ethernut5, but will diverge shortly before I refactor...
|
238442 |
14-Jul-2012 |
imp |
uboot should be telling us it is an ETHERNUT5 for this board. Tag it as such.
|
238439 |
14-Jul-2012 |
imp |
Create common routines for configuring the serial ports and use them on all the at91rm9200 boards.
|
238415 |
13-Jul-2012 |
imp |
For our at91rm9200 boards, register which subtype of SoC is on the board. We'll use this later to control the differences between these two variants' pins.
|
238404 |
12-Jul-2012 |
imp |
This file is no longer AT91RM9200 specific, but now is generic to all Atmel AT91 SoC's we support. Rename to reflect that.
|
238403 |
12-Jul-2012 |
imp |
Remember where we found the DBGU and use that for our console.
|
238398 |
12-Jul-2012 |
imp |
Fix whitespace divot.
|
238397 |
12-Jul-2012 |
imp |
Complete the transition away from newbus to populate the children to the linker set of CPU modules. The newbus method, although clever, had many flaws: it didn't really support multiple SoC, many of the comments about order were just wrong, and it did a few things far too late to be useful. delay and cpu_reset now work much earlier in the boot process.
|
238390 |
12-Jul-2012 |
imp |
Create the children devices for the SoC in atmelarm bus node, not in the identify routine of the CPU.
|
238389 |
12-Jul-2012 |
imp |
Export the interrupt status vector via soc_data. Set the interrupt priorities in the AIC in the atmelarm driver before attaching the children. Delete redunant copies of the code.
|
238376 |
11-Jul-2012 |
imp |
Make the SoC stuff a little more modular, and start to move away from having the CPU device that's a child of atmelarm that does stuff.
o Create a linker_set for the support fucntions for the SoCs. o Rename soc_data to soc_info. o Move the delay and reset function pointers to new soc_data struct o Create elements for all known SoCs o Add lookup of the SoC we found, and print a warning if it isn't one we know about.
|
238370 |
11-Jul-2012 |
imp |
at91pit->at91_pit for consistnecy with other drivers.
|
238369 |
11-Jul-2012 |
imp |
at91$DEV->at91_$DEV to match other Atmel drivers. Also, export at91_rst_cpu_reset.
|
238358 |
10-Jul-2012 |
imp |
Remove some more unused code.
|
238354 |
10-Jul-2012 |
imp |
Go ahead and disable the interrupts for the DBGU the boot loader may have left enabled after we detect the CPU, and remove the multiplely copied code from the SoC modules.
|
238348 |
10-Jul-2012 |
imp |
Remove a useless bit of indirection. On all Atmel ARM products, irq 1 is the system IRQ, so use the define for it and get on with life.
|
238347 |
10-Jul-2012 |
imp |
Revert committal of local change accidentally swept up in r238329.
|
238341 |
10-Jul-2012 |
imp |
Pure style mischief. at91_$DEV_ rather than at91$DEV_ to match others.
|
238340 |
10-Jul-2012 |
imp |
Minor rework to eliminate at91rm9200reg.h dependency and possibly set the stage for a detach routine (unlikely to be useful, but while I was here..)
|
238335 |
10-Jul-2012 |
imp |
Revert last change. It was accidental.
|
238334 |
10-Jul-2012 |
imp |
Collapse all copies of at91_add_child into at91.c. They were logically identical before today, and actually identical after today's changes.
|
238332 |
10-Jul-2012 |
imp |
Missed one of the special AT91SAM9xxx_BASE defines. This should be AT91_BASE.
|
238331 |
10-Jul-2012 |
imp |
The system IRQ is always IRQ 1. Make it so.
|
238330 |
10-Jul-2012 |
imp |
Eliminate the AT91XXXX_BASE for each SoC. AT91_BASE is the right way to spell this since we only have one AT91_BASE for all Atmel arm9 SoCs.
|
238329 |
10-Jul-2012 |
imp |
Remove some unused variables/externs that have been copied too many times...
|
238327 |
10-Jul-2012 |
imp |
Not quite ready for this yet, so comment it out.
|
238325 |
10-Jul-2012 |
imp |
There's nothing AT91RM9200 specific about this file at all.
|
238189 |
07-Jul-2012 |
imp |
Create a generic way to support multiple boards within an arm platform. Add all the atmel boards to the ATMEL kernel for testing purposes. Until boot loader arg parsing of baord type is done, this won't actually be able to do the runtime selection.
|
238130 |
05-Jul-2012 |
marcel |
Fix LINT.
Obtained from: Juniper Networks, Inc.
|
237883 |
01-Jul-2012 |
imp |
Create a pseudo-lint kernel for all at91 SoCs. This kernel will not currently boot, but will serve as a good linting. make universe could now be altered to skip building all the other at91 kernels...
|
237881 |
01-Jul-2012 |
imp |
Opt-in rather than opt-out of the SoC. We don't really support running with multiple SoCs compiled in very well anyway, so this just wastes space. As more and more SoCs arrive in the tree, it is better to edit one master file that builds them all than many board files.
|
237841 |
30-Jun-2012 |
marius |
Exclude at91sam9x25 support, which just wastes space for Ethernut 5.
|
237745 |
29-Jun-2012 |
imp |
Tweak comment.
|
237744 |
29-Jun-2012 |
imp |
Add PIOD, make at91sam9x25 a standard SoC, tweak some comments.
|
237743 |
29-Jun-2012 |
imp |
Ooops, replaced the at91sam9g20 interrupt list with the at91sam9x25 ones.
|
237742 |
29-Jun-2012 |
imp |
Initital support for AT91SAM9X25 SoC and the SAM9X25-EK evaluation board. Much work remains.
|
237741 |
29-Jun-2012 |
imp |
All xscale ports are armeb, so mark it here. This should reduce universe times a little.
|
237517 |
24-Jun-2012 |
andrew |
Make the wchar_t type machine dependent.
This is required for ARM EABI. Section 7.1.1 of the Procedure Call for the ARM Architecture (AAPCS) defines wchar_t as either an unsigned int or an unsigned short with the former preferred.
Because of this requirement we need to move the definition of __wchar_t to a machine dependent header. It also cleans up the macros defining the limits of wchar_t by defining __WCHAR_MIN and __WCHAR_MAX in the same machine dependent header then using them to define WCHAR_MIN and WCHAR_MAX respectively.
Discussed with: bde
|
237433 |
22-Jun-2012 |
kib |
Implement mechanism to export some kernel timekeeping data to usermode, using shared page. The structures and functions have vdso prefix, to indicate the intended location of the code in some future.
The versioned per-algorithm data is exported in the format of struct vdso_timehands, which mostly repeats the content of in-kernel struct timehands. Usermode reading of the structure can be lockless. Compatibility export for 32bit processes on 64bit host is also provided. Kernel also provides usermode with indication about currently used timecounter, so that libc can fall back to syscall if configured timecounter is unknown to usermode code.
The shared data updates are initiated both from the tc_windup(), where a fast task is queued to do the update, and from sysctl handlers which change timecounter. A manual override switch kern.timecounter.fast_gettime allows to turn off the mechanism.
Only x86 architectures export the real algorithm data, and there, only for tsc timecounter. HPET counters page could be exported as well, but I prefer to not further glue the kernel and libc ABI there until proper vdso-based solution is developed.
Minimal stubs neccessary for non-x86 architectures to still compile are provided.
Discussed with: bde Reviewed by: jhb Tested by: flo MFC after: 1 month
|
237432 |
22-Jun-2012 |
imp |
Fix a stray debug that I committed accidentally years ago...
|
237430 |
22-Jun-2012 |
kib |
Reserve AT_TIMEKEEP auxv entry for providing usermode the pointer to timekeeping information.
MFC after: 1 week
|
237429 |
22-Jun-2012 |
imp |
Move these #defines to at91reg.h (where I should have put them in the first place).
|
237239 |
18-Jun-2012 |
marius |
Revert the part of r236495 that introduced checking of SPI_SR_TXEMPTY for TX transfer completion as for reasons unknown this occasionally causes SPI_SR_RXBUFF and SPI_SR_ENDRX to not rise. In any case, once the RX part of the transfer is done it's obvious that the preceding TX part had finished and checking of SPI_SR_TXEMPTY was introduced to rule out a possible cause for the data corruption mentioned in r236495 but which didn't turn out to be the problem anyway.
MFC after: 3 days
|
237238 |
18-Jun-2012 |
marius |
Try to bring this file closer to style(9).
|
237237 |
18-Jun-2012 |
marius |
Unbreak after r236658 by comparing the right things.
|
237168 |
16-Jun-2012 |
alc |
The page flag PGA_WRITEABLE is set and cleared exclusively by the pmap layer, but it is read directly by the MI VM layer. This change introduces pmap_page_is_write_mapped() in order to completely encapsulate all direct access to PGA_WRITEABLE in the pmap layer.
Aesthetics aside, I am making this change because amd64 will likely begin using an alternative method to track write mappings, and having pmap_page_is_write_mapped() in place allows me to make such a change without further modification to the MI VM layer.
As an added bonus, tidy up some nearby comments concerning page flags.
Reviewed by: kib MFC after: 6 weeks
|
237151 |
16-Jun-2012 |
imp |
Throw this debug behind bootverbose. The information isn't all that exciting once the initial board bring up is over.
|
237137 |
15-Jun-2012 |
imp |
Remove stray line from merge.
|
237130 |
15-Jun-2012 |
imp |
Make it possible to link together a sam and an rm kernel. The results aren't very pretty yet, but this takes DELAY and cpu_reset and makes them pointers.
# I worry that these are set too late in the boot, especially cpu_reset.
|
237125 |
15-Jun-2012 |
imp |
These options are unused, and can safely be retired.
|
237124 |
15-Jun-2012 |
imp |
This hints file doesn't actually do anything, and besides it is commented out here. Remove it.
|
237122 |
15-Jun-2012 |
imp |
Collapse the files.at91 and files.at91sam9 back into files.at91. Create a new option for at91rm9200 support. Set this option in std.at91. Create a new option for the at91sam9 standard devices. Set this option in std.at91sam9. Retire files.at91sam9. Add options for at91sam9x25 SoC and SAM9X25EK board, but don't connect it just yet as the supporting files aren't quite ready.
Note: device at91rm9200 and device at91sam9 are presently mutually exclusive.
|
237118 |
15-Jun-2012 |
imp |
Fix a global shadowing problem when LINUX_BOOT_ABI was defined.
|
237115 |
15-Jun-2012 |
imp |
Take half a step closer towards having a unified atmel kernel by rearranging where we initialize the time counter and putting the common stubs into a central place.
|
237089 |
14-Jun-2012 |
imp |
Fix missing straggler for the move to parse_boot_param()
|
237069 |
14-Jun-2012 |
imp |
Defines for parsing linux ATAGs lists.
|
237045 |
14-Jun-2012 |
imp |
More Linux boot support. Create arm_dump_avail_init() to initialize this array either from Linux boot data, when enabled, or in the typical way that most ports do it. arm_pyhs_avail_init is coming soon since it must be a separate function.
|
237044 |
14-Jun-2012 |
imp |
Add support for parsing Linux ATAGs such as you'd see from uboot or redboot. Support is very preiminary and likely needs some work. Also, do some minor code shuffling of the FreeBSD /boot/loader metadata parsing code. This code is preliminary and should be used with caution.
|
237042 |
14-Jun-2012 |
imp |
Create default_parse_boot_param which, if FreeBSD /boot/loader support is enabled, sets values based on the metadata passed in. Otherwise fake_preload_metadata is called. Change the default parse_boot_param to default_parse_boot_param. Enable this functionality only on the mv platform, which is where most of the code is from.
Reviewed by: cognet, Ian Lapore
|
237040 |
14-Jun-2012 |
imp |
Modify all the arm platform files to call parse_boot_param passing in the boot parameters from initarm first thing. parse_boot_param parses the boot arguments and converts them to the /boot/loader metadata the rest of the kernel uses. parse_boot_param is a weak alias to fake_preload_metadata, which all the platforms use now, but may become more extensive in the future.
Since it is a weak symbol, specific boards may define their own parse_boot_param to interface to custom boot loaders.
Reviewed by: cognet@, Ian Lapore
|
237010 |
13-Jun-2012 |
imp |
Remove leakage of other patches into last commit.
|
236997 |
13-Jun-2012 |
fabient |
Add ARM callchain support for hwpmc.
Sponsored by: NETASQ MFC after: 3 days
|
236992 |
13-Jun-2012 |
imp |
trim trailing whitespace
|
236991 |
13-Jun-2012 |
imp |
Final whitespace trim.
|
236990 |
13-Jun-2012 |
imp |
Trim trailing whitespace...
|
236989 |
13-Jun-2012 |
imp |
Strip trailing whitespace before other changes.
|
236988 |
13-Jun-2012 |
imp |
Strip trailing whitespace.
|
236987 |
13-Jun-2012 |
imp |
trim trailing spaces that have accumulated over the years (these files served as the basis for too many other platforms).
|
236846 |
10-Jun-2012 |
andrew |
Remove an unneeded increment from initarm. The variable is uninitialised, is not used in this part of the function and correctly initialised later when it is used.
|
236845 |
10-Jun-2012 |
andrew |
The GUMSTIX-QEMU config file is almost identical to the GUMSTIX config, include the latter file from the former rather than duplicating it.
|
236828 |
10-Jun-2012 |
andrew |
Pull out the common code to initialise proc0 & thread0 from initarm to a common function.
Reviewed by: imp
|
236681 |
06-Jun-2012 |
imp |
Remove stray break; that resulted from a last-minute, untested change.
|
236658 |
06-Jun-2012 |
imp |
Enhance the Atmel SoC chip identification routines to account for more SoC variants. Fold the AT91SAM9XE chips into the AT91SAM9260 handling, where appropriate. The following SoCs/SoC families are recognized: at91cap9, at91rm9200, at91sam9260, at91sam9261, at91sam9263, at91sam9g10, at91sam9g20, at91sam9g45, at91sam9n12, at91sam9rl, at91sam9x5 and the following variations are also recognized: at91rm9200_bga, at91rm9200_pqfp, at91sam9xe, at91sam9g45, at91sam9m10, at91sam9g46, at91sam9m11, at91sam9g15, at91sam9g25, at91sam9g35, at91sam9x25, at91sam9x35 This is only the identification routine: no additional Atmel devices are supported at this time.
# With these changes, I'm able to boot to the point of identification # on a few different Atmel SoCs that we don't yet support using the # KB920X config file -- someday tht will be an ATMEL config file...
|
236617 |
05-Jun-2012 |
imp |
Remove dead code.
|
236535 |
04-Jun-2012 |
imp |
Eliminate the now-unused AT91C_MASTER_CLOCK option and change the one place in the source it was used to the more correct AT91C_MAIN_CLOCK. Sort AT91C_MAIN_CLOCK into a better location in the options.arm file.
|
236524 |
03-Jun-2012 |
imp |
Minor rearrangement of the locore <-> initarm interface. Pass in a structure with the first 4 registers to allow a wider range of boot loaders to work. Future commits will make use of this to centralize support for the different loaders.
|
236498 |
03-Jun-2012 |
imp |
Remove stray repeated line...
|
236497 |
03-Jun-2012 |
marius |
- Now that the DataFlash related drivers work properly (at91_spi(4) since r236495 and at45d(4) since r236496), enable them by default. - Sort BOOTP options.
|
236495 |
03-Jun-2012 |
marius |
- Prepend the device description with "AT91" to reflect its nature. [1] - Move DMA tag and map creature to at91_spi_activate() where the other resource allocation also lives. [1] - Flesh out at91_spi_deactivate(). [1] - Work around the "Software Reset must be Written Twice" erratum. - For now, run the bus at the slowest speed possible in order to work around data corruption on transit even seen with 9 MHz on ETHERNUT5 (15 MHz maximum) and AT45DB321D (20 MHz maximum). This also serves as a poor man's work-around for the "NPCSx rises if no data data is to be transmitted" erratum of RM9200. Being able to use the appropriate bus speed would require: 1) Adding a proper work-around for the RM9200 bug consisting of taking the chip select control away from the SPI peripheral and managing it directly as a GPIO line. 2) Taking the maximum frequencies supported by the actual board and the slave devices into account and basing the whole thing on the master clock instead of hardcoding a divisor as previously done. 3) Fixing the above mentioned data corruption. - KASSERT that TX/RX command and data sizes match on transfers. - Introduce a mutex ensuring that only one child device is running a SPI transfer at a time. [1] - Add preliminary, #ifdef'ed out support for setting the chip select. [1] - Use the RX instead of the TX commando size when setting up the RX side of a transfer. - For controllers having SPI_SR_TXEMPTY, i.e. !RM9200, also wait for the completion of the TX part of transfers before stopping the whole thing again. - Use DEVMETHOD_END. [1] - Use NULL instead of 0 for pointers. [1, partially]
Additional testing by: Ian Lepore
Submitted by: Ian Lepore [1] MFC after: 1 week
|
236373 |
01-Jun-2012 |
imp |
Revert debug and other immature code accidentally committed in r236372.
|
236372 |
01-Jun-2012 |
imp |
Initialize the clocks before we call cninit() so that the serial console so initialized will work upon return from cninit. While this is the very next line, other platforms setup all this stuff before calling cninit. Also, initialize the SDRAM base register in the inner block in at91_ramsize().
|
236308 |
30-May-2012 |
gber |
Print userspace backtrace for current thread.
Reviewed by: imp Obtained from: Semihalf
|
236307 |
30-May-2012 |
gber |
Flush D and I caches after setting a breakpoint.
Reviewed by: imp Obtained from: Semihalf
|
236215 |
29-May-2012 |
imp |
Compute the master clock frequency, so we no longer need to have it compiled into the kernel. This allows us to boot the same kernel on machines with different master clock frequencies, so long as we can determine the main clock frequency accurately. Cleanup the pmc clock init function so it can be called in early boot so we can use the serial port just after we call cninit.
# We have two calls to at91_pmc_clock_init for reasons unknown, that will # be fixed later -- it is harmless for now.
|
236191 |
28-May-2012 |
marius |
- Correct the comments regarding the sizes of some partitions in the DataFlash. - Add a mapping for the Nut/OS configuration DataFlash partition according to the board manual (but not known to either Linux or U-Boot (patches).
|
235941 |
24-May-2012 |
bz |
MFp4 bz_ipv6_fast:
in_cksum.h required ip.h to be included for struct ip. To be able to use some general checksum functions like in_addword() in a non-IPv4 context, limit the (also exported to user space) IPv4 specific functions to the times, when the ip.h header is present and IPVERSION is defined (to 4).
We should consider more general checksum (updating) functions to also allow easier incremental checksum updates in the L3/4 stack and firewalls, as well as ponder further requirements by certain NIC drivers needing slightly different pseudo values in offloading cases. Thinking in terms of a better "library".
Sponsored by: The FreeBSD Foundation Sponsored by: iXsystems
Reviewed by: gnn (as part of the whole) MFC After: 3 days
|
235908 |
24-May-2012 |
gber |
Return Supervisor SP and LR registers instead of User ones while in KDB thread.
Obtained from: Semihalf
|
235907 |
24-May-2012 |
gber |
ARMs don't have motherboards.
Obtained from: Semihalf
|
235898 |
24-May-2012 |
mav |
MFprojects/zfsd: Generalize and unify ses device description.
|
235831 |
23-May-2012 |
fabient |
Soft PMC support for ARM. Callgraph is not captured, only current location.
Sample system wide profiling: "pmcstat -Sclock.hard -T"
|
235718 |
21-May-2012 |
imp |
Be a little less magical, not that these values are likely to change...
|
235717 |
21-May-2012 |
imp |
Implement pmap_mincore for arm. Now programs using it don't cause a flood of console messages.
Reviewed by: alc@
|
235715 |
21-May-2012 |
imp |
Another minor re-arrangement of the code: calcualte the master clock frequency in the at91_pmc_clock_init rather than passing it in. Allow for frequencies >= 21MHz by rounding to the nearest 500Hz (Idea from Ian Lapore whose company uses a similar arrangement in their product). at91_pmc_clock_init() is now nearly independent of the rest of the pmc driver (which means we may be able to call it much earlier in boot soon to eliminate the master clock config file requirement for printf to work during early boot and also eliminate some interdependencies with the device ordering which requires pmc to be the first device added).
|
235698 |
20-May-2012 |
imp |
Minor cleanup before some more major changes: o main_clock_hz isn't used, eliminate it o move main clock calculation code and table so we have only one ifdef.
|
235656 |
19-May-2012 |
marcel |
Unbreak LINT for ARM: DEBUG is a kernel configuration option.
|
235611 |
18-May-2012 |
gber |
Add localbus driver for Marvell's platforms.
Obtained from: Semihalf Supported by: FreeBSD Foundation, Juniper Networks
|
235609 |
18-May-2012 |
gber |
Add architecture dependent code to support NAND Framework on Marvell SoCs.
Obtained from: Semihalf Supported by: FreeBSD Foundation, Juniper Networks
|
235348 |
12-May-2012 |
marius |
Add glue/support for the SAM9XE512-based Ethernut 5 boards. Currently, all integrated and on-board peripherals except the DataFlash (at91_spi(4) and at45d(4) still need to be unb0rken) and NAND Flash (missing NAND framework) are working. AFAICT, this makes FreeBSD the first operating system besides Nut/OS supporting Ethernut 5 out of tree.
|
235278 |
11-May-2012 |
imp |
Remove unused cruft. We call through memcpy more directly when we need to move the kernel, so we no longer need this.
|
235277 |
11-May-2012 |
imp |
This comment has become unmoored from the code to which it applies. Move it back.
|
235273 |
11-May-2012 |
imp |
Remove obsolte big endian flag. It is no longer needed.
|
235271 |
11-May-2012 |
imp |
Hack to unbreak boot2 for at91rm9200 boot loader. When the at91sam code came in, it moved things around which wound up breaking the build. We have to do this bit of a hack to avoid duplication of a lot of #defines.
|
235234 |
10-May-2012 |
imp |
Generate board id's from Linux's mach-types database for all arm ports. This currently is a nop, but will soon be used to allow support for multiple boards to be built into one kernel (starting with AT91RM9200 and expanding out from there).
|
235072 |
06-May-2012 |
imp |
Fix the MACHINE_ARCH for big endian arm to be armeb.
|
235062 |
05-May-2012 |
imp |
I need to change uname -p, not uname -m, so back this out. Also, fix a couple of style(9) issues while I'm here.
Submitted by: nathanw, bde
|
235050 |
05-May-2012 |
imp |
Big endian arm boxes need to have a uname -m of armeb, not arm, so that the bootstrap from source works correctly.
MFC after: 4 days
|
234931 |
02-May-2012 |
imp |
Fix comment about what board this is really for left over from early cut and paste.
|
234923 |
02-May-2012 |
imp |
The PIT is really 16 bytes long (0x10) not 10 bytes long. Doesn't matter much, since these defines are unused...
Obtained from: AT91SAM9G20 datasheet
|
234901 |
01-May-2012 |
marius |
- Add missing locking in at91_usart_getc(). - Align the RX buffers on the cache line size, otherwise the requirement of partial cache line flushes on every are pretty much guaranteed. [1] - Make the code setting the RX timeout match its comment (apparently, start and stop bits were missed in the previous calculation). [1] - Cover the busdma operations in at91_usart_bus_{ipend,transmit}() with the hardware mutex, too, so these don't race against each other. - In at91_usart_bus_ipend(), reduce duplication in the code dealing with TX interrupts. - In at91_usart_bus_ipend(), turn the code dealing with RX interrupts into an else-if cascade in order reduce its complexity and to improve its run-time behavior. - In at91_usart_bus_ipend(), add missing BUS_DMASYNC_PREREAD calls on the RX buffer map before handing things over to the hardware again. [1] - In at91_usart_bus_getsig(), used a variable of sufficient width for storing the contents of USART_CSR. - Use KOBJMETHOD_END. - Remove an unused header.
Submitted by: Ian Lepore [1] Reviewed by: Ian Lepore MFC after: 1 week
|
234785 |
29-Apr-2012 |
dim |
Add a convenience macro for the returns_twice attribute, and apply it to the prototypes of the appropriate functions (getcontext, savectx, setjmp, sigsetjmp and vfork).
MFC after: 2 weeks
|
234688 |
25-Apr-2012 |
stas |
- Disable MMU before reconfiguring the pagetables in the trampoline code. Otherwise we might end up overwriting the PTEs we're currently using for some reason.
Reviewed by: cognet
|
234561 |
22-Apr-2012 |
marius |
Interrupts must be disabled while handling a partial cache line flush, as otherwise the interrupt handling code may modify data in the non-DMA part of the cache line while we have it stashed away in the temporary stack buffer, then we end up restoring a stale value.
PR: 160431 Submitted by: Ian Lepore MFC after: 1 week
|
234560 |
22-Apr-2012 |
marius |
- Add support for MCI1 revision 2xx controllers and a work-around for their "Data Write Operation and number of bytes" erratum. - Use DEVMETHOD_END. - Use NULL instead of 0 for pointers.
|
234337 |
16-Apr-2012 |
andrew |
Replace the C implementation of __aeabi_read_tp with an assembly version. This ensures we follow the ABI by preserving registers r1-r3.
Reviewed by: jmallett, imp
|
234293 |
14-Apr-2012 |
marius |
Generate an obviously missing STOP when having finished transmitting data. This fixes communication with PCF8563.
|
234292 |
14-Apr-2012 |
marius |
Add support for the Atmel SAM9XE familiy of microcontrollers, which consist of a ARM926EJ-S processor core with up to 512 Kbytes of on-chip flash. Tested with SAM9XE512.
This file was missed in r234291.
|
234291 |
14-Apr-2012 |
marius |
Add support for the Atmel SAM9XE familiy of microcontrollers, which consist of a ARM926EJ-S processor core with up to 512 Kbytes of on-chip flash. Tested with SAM9XE512.
|
234281 |
14-Apr-2012 |
marius |
- Try to bring these files closer to style(9). - Use DEVMETHOD_END. - Use NULL instead of 0 for pointers.
|
234006 |
07-Apr-2012 |
stas |
- Revert part of r234005, which I did not intend to commit. Sorry! :(
|
234005 |
07-Apr-2012 |
stas |
- Add kernel config file for QEMU-emulated gumstix board.
|
234004 |
07-Apr-2012 |
stas |
- Add new ARM kernel option QEMU_WORKAROUNDS which can be used in the code which needs to implement some specific behaviour when being run under QEMU. - Make PXA UART probe code to work under QEMU gumstix, which doesn't emulate all the ports properly.
|
233628 |
28-Mar-2012 |
fabient |
Add software PMC support.
New kernel events can be added at various location for sampling or counting. This will for example allow easy system profiling whatever the processor is with known tools like pmcstat(8).
Simultaneous usage of software PMC and hardware PMC is possible, for example looking at the lock acquire failure, page fault while sampling on instructions.
Sponsored by: NETASQ MFC after: 1 month
|
233271 |
21-Mar-2012 |
ed |
Remove pty(4) from our kernel configurations.
As of FreeBSD 8, this driver should not be used. Applications that use posix_openpt(2) and openpty(3) use the pts(4) that is built into the kernel unconditionally. If it turns out high profile depend on the pty(4) module anyway, I'd rather get those fixed. So please report any issues to me.
The pty(4) module is still available as a kernel module of course, so a simple `kldload pty' can be used to run old-style pseudo-terminals.
|
233013 |
15-Mar-2012 |
raj |
Fix error check.
Submitted by: Lukasz Plachno Obtained from: Semihalf
|
232619 |
06-Mar-2012 |
attilio |
Disable the option VFS_ALLOW_NONMPSAFE by default on all the supported platforms. This will make every attempt to mount a non-mpsafe filesystem to the kernel forbidden, unless it is expressely compiled with VFS_ALLOW_NONMPSAFE option.
This patch is part of the effort of killing non-MPSAFE filesystems from the tree.
No MFC is expected for this patch.
|
232512 |
04-Mar-2012 |
raj |
Remove unused #defines. All this is now retrieved from the device tree.
MFC after: 1 week
|
232356 |
01-Mar-2012 |
jhb |
- Change contigmalloc() to use the vm_paddr_t type instead of an unsigned long for specifying a boundary constraint. - Change bus_dma tags to use bus_addr_t instead of bus_size_t for boundary constraints.
These allow boundary constraints to be fully expressed for cases where sizeof(bus_addr_t) != sizeof(bus_size_t). Specifically, it allows a driver to properly specify a 4GB boundary in a PAE kernel.
Note that this cannot be safely MFC'd without a lot of compat shims due to KBI changes, so I do not intend to merge it.
Reviewed by: scottl
|
232295 |
29-Feb-2012 |
cognet |
Make sure we do not provide the page 0 to the VM. It can't handle it properly, because pmap_extract() returns 0 when there's no mapping.
PR: arm/154227 MFC after: 1 week
|
230475 |
23-Jan-2012 |
das |
Add C11 macros describing subnormal numbers to float.h.
Reviewed by: bde
|
230455 |
22-Jan-2012 |
pjd |
TDF_* flags should be used with td_flags field and TDP_* flags should be used with td_pflags field. Correct two places where it was not the case.
Discussed with: kib MFC after: 1 week
|
230366 |
20-Jan-2012 |
das |
Add parentheses where required. Without them, `sizeof LDBL_MAX' is a syntax error and shouldn't be, while `1 FLT_ROUNDS' isn't a syntax error and should be. Thanks to bde for the examples.
|
230229 |
16-Jan-2012 |
das |
Fix the value of float_t to match what is implied by FLT_EVAL_METHOD.
|
230198 |
16-Jan-2012 |
das |
Fix the definition of FLT_EVAL_METHOD and some minor bugs.
|
230191 |
16-Jan-2012 |
das |
Implement FLT_ROUNDS for arm. Some (all?) arm FPUs lack support for dynamic rounding modes, but FPUless chips that use softfloat can support it because everything is emulated anyway. (We presently have incomplete support for hardware FPUs.)
Submitted by: Ian Lepore
|
230133 |
15-Jan-2012 |
uqs |
Remove spurious 8bit chars, turning files into plain ASCII.
|
229639 |
05-Jan-2012 |
adrian |
Add missing options so modules build/load correctly.
|
229125 |
31-Dec-2011 |
marius |
Fix header pollution, possibly unbreaking the build of cfi_bus_ixp4xx.c as part of cfi.ko.
|
228530 |
15-Dec-2011 |
raj |
ARM pmap fixes:
- Write Buffers have to be drained after write to Page Table even if caches are in write-through mode.
- Make sure to sync PTE in pmap_zero_page_generic().
Submitted by: Michal Mazur Reviewed by: cognet Obtained from: Semihalf MFC after: 1 month
|
228522 |
15-Dec-2011 |
alc |
Eliminate vestiges of page coloring.
|
228504 |
14-Dec-2011 |
raj |
Make *intr{cnt,names} on ARM reside in data section, similar to other arches.
sintrnames and sintrcnt are initialized with non-zero values, which were discarded by the .bss directive, so consumers like "vmstat -i" were not getting correct data.
Submitted by: Lukasz Plachno Obtained from: Semihalf MFC after: 1 month
|
228483 |
14-Dec-2011 |
hselasky |
Implement better support for USB controller suspend and resume.
This patch should remove the need for kldunload of USB controller drivers at suspend and kldload of USB controller drivers at resume.
This patch also fixes some build issues in avr32dci.c
MFC after: 2 weeks
|
228469 |
13-Dec-2011 |
ed |
Replace __signed by signed.
The signed keyword is an integral part of the C syntax. There's no need to use __signed.
|
228201 |
02-Dec-2011 |
jchandra |
Fix OF_finddevice error return value in case of FDT.
According to the open firmware standard, finddevice call has to return a phandle with value of -1 in case of error.
This commit is to: - Fix the FDT implementation of this interface (ofw_fdt_finddevice) to return (phandle_t)-1 in case of error, instead of 0 as it does now. - Fix up the callers of OF_finddevice() to compare the return value with -1 instead of 0 to check for errors. - Since phandle_t is unsigned, the return value of OF_finddevice should be checked with '== -1' rather than '<= 0' or '> 0', fix up these cases as well.
Reported by: nwhitehorn
Reviewed by: raj Approved by: raj, nwhitehorn
|
227849 |
22-Nov-2011 |
hselasky |
Rename device_delete_all_children() into device_delete_children().
Suggested by: jhb @ and marius @ MFC after: 1 week
|
227843 |
22-Nov-2011 |
marius |
- There's no need to overwrite the default device method with the default one. Interestingly, these are actually the default for quite some time (bus_generic_driver_added(9) since r52045 and bus_generic_print_child(9) since r52045) but even recently added device drivers do this unnecessarily. Discussed with: jhb, marcel - While at it, use DEVMETHOD_END. Discussed with: jhb - Also while at it, use __FBSDID.
|
227730 |
19-Nov-2011 |
raj |
Initial version of cesa(4) driver for Marvell crypto engine and security accelerator.
The following algorithms and schemes are supported: - 3DES, AES, DES - MD5, SHA1
Obtained from: Semihalf Written by: Piotr Ziecik
|
227701 |
19-Nov-2011 |
hselasky |
Move the device_delete_all_children() function from usb_util.c to kern/subr_bus.c. Simplify this function so that it no longer depends on malloc() to execute. Identify a few other places where it makes sense to use device_delete_all_children().
MFC after: 1 week
|
227333 |
08-Nov-2011 |
attilio |
Introduce the option VFS_ALLOW_NONMPSAFE and turn it on by default on all the architectures. The option allows to mount non-MPSAFE filesystem. Without it, the kernel will refuse to mount a non-MPSAFE filesytem.
This patch is part of the effort of killing non-MPSAFE filesystems from the tree.
No MFC is expected for this patch.
Tested by: gianni Reviewed by: kib
|
227309 |
07-Nov-2011 |
ed |
Mark all SYSCTL_NODEs static that have no corresponding SYSCTL_DECLs.
The SYSCTL_NODE macro defines a list that stores all child-elements of that node. If there's no SYSCTL_DECL macro anywhere else, there's no reason why it shouldn't be static.
|
227293 |
07-Nov-2011 |
ed |
Mark MALLOC_DEFINEs static that have no corresponding MALLOC_DECLAREs.
This means that their use is restricted to a single C file.
|
226995 |
01-Nov-2011 |
marius |
- Import the common MII bitbang'ing code from NetBSD and convert drivers to take advantage of it instead of duplicating it. This reduces the size of the i386 GENERIC kernel by about 4k. The only potential in-tree user left unconverted is xe(4), which generally should be changed to use miibus(4) instead of implementing PHY handling on its own, as otherwise it makes not much sense to add a dependency on miibus(4)/mii_bitbang(4) to xe(4) just for the MII bitbang'ing code. The common MII bitbang'ing code also is useful in the embedded space for using GPIO pins to implement MII access. - Based on lessons learnt with dc(4) (see r185750), add bus barriers to the MII bitbang read and write functions of the other drivers converted in order to ensure the intended ordering. Given that register access via an index register as well as register bank/window switching is subject to the same problem, also add bus barriers to the respective functions of smc(4), tl(4) and xl(4). - Sprinkle some const.
Thanks to the following testers: Andrew Bliznak (nge(4)), nwhitehorn@ (bm(4)), yongari@ (sis(4) and ste(4)) Thanks to Hans-Joerg Sirtl for supplying hardware to test stge(4).
Reviewed by: yongari (subset of drivers) Obtained from: NetBSD (partially)
|
226832 |
27-Oct-2011 |
kevlo |
Check the return value of BUS_SETUP_INTR()
Reviewed by: imp
|
226607 |
21-Oct-2011 |
das |
People porting FreeBSD to new architectures ought not have to implement a deprecated FPU control interface in addition to the standard one. To make this clearer, further deprecate ieeefp.h by not declaring the function prototypes except on architectures that implement them already.
Currently i386 and amd64 implement the ieeefp.h interface for compatibility, and for fp[gs]etprec(), which doesn't exist on most other hardware. Powerpc, sparc64, and ia64 partially implement it and probably shouldn't, and other architectures don't implement it at all.
|
226498 |
18-Oct-2011 |
des |
Trace attempts to call restricted MD syscalls.
|
226443 |
16-Oct-2011 |
cognet |
Fix 2 bugs :
- A race condition could happen if two threads were using RAS at the same time as the code didn't reset RAS_END, the RAS code could believe we were not in a RAS, when we were in fact. - Using signed value logic to compare addresses wasn't such a good idea.
Many thanks to Ian to investigate on these issues.
Pointy hat to: cognet PR: arm/161498 Submitted by: Ian Lepore <freebsd At damnhippie DOT dyndns dot org MFC after: 1 week
|
226441 |
16-Oct-2011 |
cognet |
Explicitely set ARM_RAS_START and ARM_RAS_END once the cacheline or the page has been allocated, or we could end up using random values, and bad things could happen.
PR: arm/161492 Submitted by: Ian Lepore <freebsd AT damnhippie dot dyndns DOT org> MFC after: 1 week
|
226325 |
12-Oct-2011 |
thompsa |
Name these gpio pins better, they are on an external PLD and not the same as the cpu wired gpio.
|
226324 |
12-Oct-2011 |
thompsa |
Dont just set the pin high when turning on output, use the current value. Also let this value be set when in input mode.
|
226112 |
07-Oct-2011 |
kib |
Remove unused define.
MFC after: 1 month
|
226034 |
05-Oct-2011 |
thompsa |
Add missing newbus glue, this has never attached properly to gpiobus.
|
225995 |
04-Oct-2011 |
marcel |
Properly guard definitions of DFLDSIZ, MAXDSIZ, DFLSSIZ, MAXSSIZ and SGROWSIZ. They can be set in the kernel configuration file.
|
225991 |
04-Oct-2011 |
marcel |
Fix build when DEBUG is defined in the kernel configuration file (e.g. LINT).
|
225990 |
04-Oct-2011 |
marcel |
Include opt_* headers first. Otherwise we can end up with redefined symbols.
|
225988 |
04-Oct-2011 |
marcel |
Fix build when DEBUG is defined (e.g. for LINT).
|
225973 |
04-Oct-2011 |
kib |
Convert ARM to the syscallenter/syscallret system call sequence handlers.
Tested by: gber MFC after: 1 month
|
225882 |
30-Sep-2011 |
kevlo |
Remove pointless semicolons after label
|
225617 |
16-Sep-2011 |
kmacy |
In order to maximize the re-usability of kernel code in user space this patch modifies makesyscalls.sh to prefix all of the non-compatibility calls (e.g. not linux_, freebsd32_) with sys_ and updates the kernel entry points and all places in the code that use them. It also fixes an additional name space collision between the kernel function psignal and the libc function of the same name by renaming the kernel psignal kern_psignal(). By introducing this change now we will ease future MFCs that change syscalls.
Reviewed by: rwatson Approved by: re (bz)
|
225482 |
11-Sep-2011 |
brueffer |
Fix a zyd(4) comment typo that was copy+pasted into most kernel config files.
PR: 160276 Submitted by: MATSUMIYA Ryo <matsumiya@mma.club.uec.ac.jp> Approved by: re (kib) MFC after: 1 week
|
225418 |
06-Sep-2011 |
kib |
Split the vm_page flags PG_WRITEABLE and PG_REFERENCED into atomic flags field. Updates to the atomic flags are performed using the atomic ops on the containing word, do not require any vm lock to be held, and are non-blocking. The vm_page_aflag_set(9) and vm_page_aflag_clear(9) functions are provided to modify afalgs.
Document the changes to flags field to only require the page lock.
Introduce vm_page_reference(9) function to provide a stable KPI and KBI for filesystems like tmpfs and zfs which need to mark a page as referenced.
Reviewed by: alc, attilio Tested by: marius, flo (sparc64); andreast (powerpc, powerpc64) Approved by: re (bz)
|
225214 |
27-Aug-2011 |
rwatson |
Follow up to r225203 refining break-to-debugger run-time configuration improvements:
(1) Implement new model in previously missed at91 UART driver (2) Move BREAK_TO_DEBUGGER and ALT_BREAK_TO_DEBUGGER from opt_comconsole.h to opt_kdb.h (spotted by np) (3) Garbage collect now-unused opt_comconsole.h
MFC after: 3 weeks Approved by: re (bz)
|
224746 |
09-Aug-2011 |
kib |
- Move the PG_UNMANAGED flag from m->flags to m->oflags, renaming the flag to VPO_UNMANAGED (and also making the flag protected by the vm object lock, instead of vm page queue lock). - Mark the fake pages with both PG_FICTITIOUS (as it is now) and VPO_UNMANAGED. As a consequence, pmap code now can use use just VPO_UNMANAGED to decide whether the page is unmanaged.
Reviewed by: alc Tested by: pho (x86, previous version), marius (sparc64), marcel (arm, ia64, powerpc), ray (mips) Sponsored by: The FreeBSD Foundation Approved by: re (bz)
|
224699 |
07-Aug-2011 |
rmacklem |
Change all the sample kernel configurations to use NFSCL, NFSD instead of NFSCLIENT, NFSSERVER since NFSCL and NFSD are now the defaults. The client change is needed for diskless configurations, so that the root mount works for fstype nfs. Reported by seanbru at yahoo-inc.com for i386/XEN.
Approved by: re (hrs)
|
224612 |
02-Aug-2011 |
attilio |
Fix for arm and mips case the size of storage for sintrcnt/sintrnames. It seems that "info as" is not much precise on what expect by pseudo-op .word, by the way.
No MFC is previewed for this patch.
Tested by: andreast, pluknet Approved by: re (kib)
|
224207 |
19-Jul-2011 |
attilio |
Add the possibility to specify from kernel configs MAXCPU value. This patch is going to help in cases like mips flavours where you want a more granular support on MAXCPU.
No MFC is previewed for this patch.
Tested by: pluknet Approved by: re (kib)
|
224187 |
18-Jul-2011 |
attilio |
- Remove the eintrcnt/eintrnames usage and introduce the concept of sintrcnt/sintrnames which are symbols containing the size of the 2 tables. - For amd64/i386 remove the storage of intr* stuff from assembly files. This area can be widely improved by applying the same to other architectures and likely finding an unified approach among them and move the whole code to be MI. More work in this area is expected to happen fairly soon.
No MFC is previewed for this patch.
Tested by: pluknet Reviewed by: jhb Approved by: re (kib)
|
224051 |
15-Jul-2011 |
marcel |
Do not call platform_gpio_init() early. It doesn't work because we do not have enough information to reliably setup GPIO pins. Do it when we attach the gpio driver. This prevents hangs and the need to fake up a softc.
|
224050 |
15-Jul-2011 |
marcel |
Set preload_addr_relocate accordingly so that preloaded modules and images are properly relocated.
|
224049 |
15-Jul-2011 |
marcel |
In pmap_protect(), don't call vm_page_dirty() if the page is unmanaged.
|
223692 |
30-Jun-2011 |
jonathan |
Add some checks to ensure that Capsicum is behaving correctly, and add some more explicit comments about what's going on and what future maintainers need to do when e.g. adding a new operation to a sys_machdep.c.
Approved by: mentor(rwatson), re(bz)
|
223677 |
29-Jun-2011 |
alc |
Add a new option, OBJPR_NOTMAPPED, to vm_object_page_remove(). Passing this option to vm_object_page_remove() asserts that the specified range of pages is not mapped, or more precisely that none of these pages have any managed mappings. Thus, vm_object_page_remove() need not call pmap_remove_all() on the pages.
This change not only saves time by eliminating pointless calls to pmap_remove_all(), but it also eliminates an inconsistency in the use of pmap_remove_all() versus related functions, like pmap_remove_write(). It eliminates harmless but pointless calls to pmap_remove_all() that were being performed on PG_UNMANAGED pages.
Update all of the existing assertions on pmap_remove_all() to reflect this change.
Reviewed by: kib
|
223668 |
29-Jun-2011 |
jonathan |
We may split today's CAPABILITIES into CAPABILITY_MODE (which has to do with global namespaces) and CAPABILITIES (which has to do with constraining file descriptors). Just in case, and because it's a better name anyway, let's move CAPABILITIES out of the way.
Also, change opt_capabilities.h to opt_capsicum.h; for now, this will only hold CAPABILITY_MODE, but it will probably also hold the new CAPABILITIES (implying constrained file descriptors) in the future.
Approved by: rwatson Sponsored by: Google UK Ltd
|
223665 |
29-Jun-2011 |
kevlo |
Typo
Submitted by: Damjan Marion <damjan dot marion at gmail dot com> MFC after: 3 days
|
223562 |
26-Jun-2011 |
kevlo |
Remove duplicate header includes
|
223523 |
24-Jun-2011 |
cognet |
Comment out AH_DEBUG, to get this kernel to compile, until AH_DEBUG is fixed.
|
222813 |
07-Jun-2011 |
attilio |
etire the cpumask_t type and replace it with cpuset_t usage.
This is intended to fix the bug where cpu mask objects are capped to 32. MAXCPU, then, can now arbitrarely bumped to whatever value. Anyway, as long as several structures in the kernel are statically allocated and sized as MAXCPU, it is suggested to keep it as low as possible for the time being.
Technical notes on this commit itself: - More functions to handle with cpuset_t objects are introduced. The most notable are cpusetobj_ffs() (which calculates a ffs(3) for a cpuset_t object), cpusetobj_strprint() (which prepares a string representing a cpuset_t object) and cpusetobj_strscan() (which creates a valid cpuset_t starting from a string representation). - pc_cpumask and pc_other_cpus are target to be removed soon. With the moving from cpumask_t to cpuset_t they are now inefficient and not really useful. Anyway, for the time being, please note that access to pcpu datas is protected by sched_pin() in order to avoid migrating the CPU while reading more than one (possible) word - Please note that size of cpuset_t objects may differ between kernel and userland. While this is not directly related to the patch itself, it is good to understand that concept and possibly use the patch as a reference on how to deal with cpuset_t objects in userland, when accessing kernland members. - KTR_CPUMASK is changed and now is represented through a string, to be set as the example reported in NOTES.
Please additively note that no MAXCPU is bumped in this patch, but private testing has been done until to MAXCPU=128 on a real 8x8x2(htt) machine (amd64).
Please note that the FreeBSD version is not yet bumped because of the upcoming pcpu changes. However, note that this patch is not targeted for MFC.
People to thank for the time spent on this patch: - sbruno, pluknet and Nicholas Esborn (nick AT desert DOT net) tested several revision of the patches and really helped in improving stability of this work. - marius fixed several bugs in the sparc64 implementation and reviewed patches related to ktr. - jeff and jhb discussed the basic approach followed. - kib and marcel made targeted review on some specific part of the patch. - marius, art, nwhitehorn and andreast reviewed MD specific part of the patch. - marius, andreast, gonzo, nwhitehorn and jceel tested MD specific implementations of the patch. - Other people have made contributions on other patches that have been already committed and have been listed separately.
Companies that should be mentioned for having participated at several degrees: - Yahoo! for having offered the machines used for testing on big count of CPUs. - The FreeBSD Foundation for having sponsored my devsummit attendance, which has been instrumental. - Sandvine for having offered offices and infrastructure during development.
(I really hope I didn't forget anyone, if it happened I apologize in advance).
|
221855 |
13-May-2011 |
mdf |
Move the ZERO_REGION_SIZE to a machine-dependent file, as on many architectures (i386, for example) the virtual memory space may be constrained enough that 2MB is a large chunk. Use 64K for arches other than amd64 and ia64, with special handling for sparc64 due to differing hardware.
Also commit the comment changes to kmem_init_zero_region() that I missed due to not saving the file. (Darn the unfamiliar development environment).
Arch maintainers, please feel free to adjust ZERO_REGION_SIZE as you see fit.
Requested by: alc MFC after: 1 week MFC with: r221853
|
221844 |
13-May-2011 |
cognet |
In pmap_change_wiring(), use the right argument for pmap_modify_pv(). It only worked because the only consumer calls pmap_change_wiring() to remove the wiring.
|
221218 |
29-Apr-2011 |
jhb |
Change rman_manage_region() to actually honor the rm_start and rm_end constraints on the rman and reject attempts to manage a region that is out of range. - Fix various places that set rm_end incorrectly (to ~0 or ~0u instead of ~0ul). - To preserve existing behavior, change rman_init() to set rm_start and rm_end to allow managing the full range (0 to ~0ul) if they are not set by the caller when rman_init() is called.
|
221207 |
29-Apr-2011 |
jhb |
Fix build of this kernel config. The ath(4) bits need the 11n frame format even though ar5416 isn't enabled.
Reviewed by: adrian
|
221173 |
28-Apr-2011 |
attilio |
Add the watchdogs patting during the (shutdown time) disk syncing and disk dumping. With the option SW_WATCHDOG on, these operations are doomed to let watchdog fire, fi they take too long.
I implemented the stubs this way because I really want wdog_kern_* KPI to not be dependant by SW_WATCHDOG being on (and really, the option only enables watchdog activation in hardclock) and also avoid to call them when not necessary (avoiding not-volountary watchdog activations).
Sponsored by: Sandvine Incorporated Discussed with: emaste, des MFC after: 2 weeks
|
221071 |
26-Apr-2011 |
mav |
- Add shim to simplify migration to the CAM-based ATA. For each new adaX device in /dev/ create symbolic link with adY name, trying to mimic old ATA numbering. Imitation is not complete, but should be enough in most cases to mount file systems without touching /etc/fstab. - To know what behavior to mimic, restore ATA_STATIC_ID option in cases where it was present before. - Add some more details to UPDATING.
|
221025 |
25-Apr-2011 |
cognet |
Typo fix
|
220982 |
24-Apr-2011 |
mav |
Switch the GENERIC kernels for all architectures to the new CAM-based ATA stack. It means that all legacy ATA drivers are disabled and replaced by respective CAM drivers. If you are using ATA device names in /etc/fstab or other places, make sure to update them respectively (adX -> adaY, acdX -> cdY, afdX -> daY, astX -> saY, where 'Y's are the sequential numbers for each type in order of detection, unless configured otherwise with tunables, see cam(4)).
ataraid(4) functionality is now supported by the RAID GEOM class. To use it you can load geom_raid kernel module and use graid(8) tool for management. Instead of /dev/arX device names, use /dev/raid/rX.
|
220836 |
19-Apr-2011 |
pluknet |
Call init_param1() much earlier, so that msgbufsize is non-zero when we want to map and use the msgbuf.
Reviewed by: cognet MFC after: 1 week
|
220774 |
18-Apr-2011 |
philip |
Delete mistakenly added sys/files.ts7800 Add mistakenly forgotten sys/arm/conf/TS7800
Not sure how this happened. Apologies for the repo-churn.
Submitted by: glebius Pointy hat to: philip
|
220653 |
15-Apr-2011 |
philip |
Add basic support for the Marvell Orion TS-7800.
Submitted by: Kristof Provost <kristof -at- freebsd.org>
|
220558 |
12-Apr-2011 |
hselasky |
We don't need to call EOWRITE4(sc, EHCI_USBINTR, 0) directly from each EHCI bus driver at detach, hence ehci_detach() does exactly this since r199718.
Submitted by: Luiz Otavio O Souza MFC after: 7 days Approved by: thompsa (mentor)
|
220303 |
03-Apr-2011 |
hselasky |
- Correct EHCI interrupt disabling at detach.
Submitted by: Luiz Otavio O Souza MFC after: 7 days Approved by: thompsa (mentor)
|
220185 |
31-Mar-2011 |
adrian |
Break out the ath PCI logic into a separate device/module.
Introduce the AHB glue for Atheros embedded systems. Right now it's hard-coded for the AR9130 chip whose support isn't yet in this HAL; it'll be added in a subsequent commit.
Kernel configuration files now need both 'ath' and 'ath_pci' devices; both modules need to be loaded for the ath device to work.
|
219684 |
16-Mar-2011 |
marcel |
Fix mv_gpio_in() for pin numbers that occupy bits 8-31 in GPIO registers. The compiler will truncate the 32-bit return value of mv_gpio_value_get() to match the 8-bit return value of mv_gpio_in(). A conditional expression is used to have mv_gpio_in() always return 0 or 1 instead.
|
219653 |
14-Mar-2011 |
jkim |
Make get_cyclecount(9) little bit more useful where binuptime(9) is used.
|
219405 |
08-Mar-2011 |
dchagin |
Extend struct sysvec with new method sv_schedtail, which is used for an explicit process at fork trampoline path instead of eventhadler(schedtail) invocation for each child process.
Remove eventhandler(schedtail) code and change linux ABI to use newly added sysvec method.
While here replace explicit comparing of module sysentvec structure with the newly created process sysentvec to detect the linux ABI.
Discussed with: kib
MFC after: 2 Week
|
219134 |
01-Mar-2011 |
rwatson |
Continue to introduce Capsicum capability mode:
White list sysarch calls allowed in capability mode; arguably, there should be some link between the capability mode model and the privilege model here. Sysarch is a morass similar to ioctl, in many senses.
Submitted by: anderson Discussed with: benl, kris, pjd Sponsored by: Google, Inc. Obtained from: Capsicum Project MFC after: 3 months
|
219025 |
25-Feb-2011 |
obrien |
Add a real dependency on the microcode. Now when one does 'make kernel ; make kernel' the second invocation only does: `kernel.ko' is up to date. rather than reproduce all the binary microcode files and relink the kernel. [continuation of r212429]
|
218913 |
21-Feb-2011 |
cognet |
Get myself a brain, move the call to init_param1() before the first use in at91_machdep.c, and do it for the files I forgot the first time
Reported by: andrew Submitted by: pluknet
|
218909 |
21-Feb-2011 |
brucec |
Fix typos - remove duplicate "the".
PR: bin/154928 Submitted by: Eitan Adler <lists at eitanadler.com> MFC after: 3 days
|
218780 |
17-Feb-2011 |
marcel |
Fix the R_ARM_ABS32 relocation implementation. The memory address contains the addend that we need to include.
Obtained from: Juniper Networks. Fixed by: Santhanakrishnan Balraj <sbalraj@juniper.net>
|
218773 |
17-Feb-2011 |
alc |
Remove pmap fields that are either unused or not fully implemented.
Discussed with: kib
|
218667 |
13-Feb-2011 |
cognet |
Oops, wasn't supposed to commit this.
|
218666 |
13-Feb-2011 |
cognet |
Call init_param1() much earlier, so that msgbufsize is non-zero when we want to map and use the msgbuf.
|
218482 |
09-Feb-2011 |
jhb |
Whitespace tweak.
|
218427 |
08-Feb-2011 |
marcel |
In arm_get_next_irq(), use the last IRQ argument in order to prevent a hard hang due to an interrupt storm or stuck interrupt pin. We return the next IRQ that is larger than the last one returned and in doing so give all interrupts a fair chance of being handled. Consequently, we're able to break into the kernel debugger in such an event.
|
218426 |
08-Feb-2011 |
marcel |
o Make sure to mask off timer1 interrupts. It's not necessarily masked-off by the firmware. o In DELAY(). Make sure we have an inner-loop body that the compiler cannot eliminate. While timing does not have to be perfect, the loops must be there to have at least some notion of delay.
Obtained from: Juniper Networks
|
218388 |
07-Feb-2011 |
marcel |
Remove use_high from the softc and simply check the number of GPIO pins to determine whether there's a high register set or not. This allows platform_gpio_init() to work without duplicating the work done in the attach method.
|
218387 |
07-Feb-2011 |
ticso |
unbreak mutlicast hash creation for the second time. at91_emac hardware is *not* using ether_crc32_be algorithm!
|
218311 |
05-Feb-2011 |
imp |
phys_addr is a PA not a VA so declare it as a vm_paddr_t not a vm_offset_t.
|
218310 |
05-Feb-2011 |
imp |
Make md_tp a register_t not a void *. This will keep us from accidentally dereferencng it and might be one fewer things to change if arm64 happens...
Submitted by: rwatson's question on irc...
|
218228 |
03-Feb-2011 |
marcel |
The FDT describes the host controller directly. There's no need to get properties from the parent. The parent is in fact the FDT bus itself and will therefore not have the properties we're looking for.
Sponsored by: Juniper Networks
|
218227 |
03-Feb-2011 |
marcel |
Accept r1 as having the metadata pointer argument if r0 is 0. This provides backward compatibility with Juniper loaders.
Sponsored by: Juniper Networks
|
218195 |
02-Feb-2011 |
mdf |
Put the general logic for being a CPU hog into a new function should_yield(). Use this in various places. Encapsulate the common case of check-and-yield into a new function maybe_yield().
Change several checks for a magic number of iterations to use should_yield() instead.
MFC after: 1 week
|
218073 |
29-Jan-2011 |
marcel |
Introduce macro FDT_MAP_IRQ to map from an interrupt controller and interrupt pin pair to a global IRQ number. When multiple PICs exist on a board, the interrupt pin alone is not unique.
|
218054 |
29-Jan-2011 |
andrew |
Move the load address of the kernel to the start of KVA as the s3c24x0 copy of initarm expects the kernel to be loaded there.
Approved by: imp (mentor)
|
217709 |
22-Jan-2011 |
marcel |
Fix r217688. We need to call init_param1() before we use msgbufsize, now that the size of the message buffer is a tunable.
|
217708 |
22-Jan-2011 |
marcel |
Fix backtraces by defining ksym_start & ksym_end if DDB is defined. The kernel linker doesn't deal with symbols of type NOTYPE and typically gives the wrong symbol ($a) for local symbols.
Obtained from: Juniper Networks, Inc.
|
217688 |
21-Jan-2011 |
pluknet |
Make MSGBUF_SIZE kernel option a loader tunable kern.msgbufsize.
Submitted by: perryh pluto.rain.com (previous version) Reviewed by: jhb Approved by: kib (mentor) Tested by: universe
|
217561 |
18-Jan-2011 |
kib |
For architectures not using direct map , and requiring real KVA page for sf buf allocation, use wakeup() instead of wakeup_one() to notify sf buffer waiters about free buffer.
sf_buf_alloc() calls msleep(PCATCH) when SFB_CATCH flag was given, and for simultaneous wakeup and signal delivery, msleep() returns EINTR/ERESTART despite the thread was selected for wakeup_one(). As result, we loose a wakeup, and some other waiter will not be woken up.
Reported and tested by: az Reviewed by: alc, jhb MFC after: 1 week
|
217519 |
17-Jan-2011 |
jkim |
Remove empty dev_mem_md_init() stubs.
|
217515 |
17-Jan-2011 |
jkim |
Add reader/writer lock around mem_range_attr_get() and mem_range_attr_set(). Compile sys/dev/mem/memutil.c for all supported platforms and remove now unnecessary dev_mem_md_init(). Consistently define mem_range_softc from mem.c for all platforms. Add missing #include guards for machine/memdev.h and sys/memrange.h. Clean up some nearby style(9) nits.
MFC after: 1 month
|
217290 |
11-Jan-2011 |
marcel |
Don't re-use MODINFOMD_BOOTINFO as MODINFOMD_DTBP. It breaks compatibility without any means for the kernel to work with an older loader.
|
217265 |
11-Jan-2011 |
jhb |
Remove unneeded includes of <sys/linker_set.h>. Other headers that use it internally contain nested includes.
Reviewed by: bde
|
217192 |
09-Jan-2011 |
kib |
Move repeated MAXSLP definition from machine/vmparam.h to sys/vmmeter.h. Update the outdated comments describing MAXSLP and the process selection algorithm for swap out.
Comments wording and reviewed by: alc
|
217147 |
08-Jan-2011 |
tijl |
On mixed 32/64 bit architectures (mips, powerpc) use __LP64__ rather than architecture macros (__mips_n64, __powerpc64__) when 64 bit types (and corresponding macros) are different from 32 bit. [1]
Correct the type of INT64_MIN, INT64_MAX and UINT64_MAX.
Define (U)INTMAX_C as an alias for (U)INT64_C matching the type definition for (u)intmax_t. Do this on all architectures for consistency.
Suggested by: bde [1] Approved by: kib (mentor)
|
217146 |
08-Jan-2011 |
tijl |
On 32 bit architectures define (u)int64_t as (unsigned) long long instead of (unsigned) int __attribute__((__mode__(__DI__))). This aligns better with macros such as (U)INT64_C, (U)INT64_MAX, etc. which assume (u)int64_t has type (unsigned) long long.
The mode attribute was used because long long wasn't standardised until C99. Nowadays compilers should support long long and use of the mode attribute is discouraged according to GCC Internals documentation.
The type definition has to be marked with __extension__ to support compilation with "-std=c89 -pedantic".
Discussed with: bde Approved by: kib (mentor)
|
217145 |
08-Jan-2011 |
tijl |
Fix types of some values in machine/_limits.h.
On some architectures UCHAR_MAX and USHRT_MAX had type unsigned int. However, lacking integer suffixes for types smaller than int, their type should correspond to that of an object of type unsigned char (or short) when used in an expression with objects of type int. In that case unsigned char (short) are promoted to int (i.e. signed) so the type of UCHAR_MAX and USHRT_MAX should also be int.
Where MIN/MAX constants implicitly have the correct type the suffix has been removed.
While here, correct some comments.
Reviewed by: bde Approved by: kib (mentor)
|
217128 |
07-Jan-2011 |
tijl |
Remove unused support for 64 bit long on 32 bit architectures.
It was used mainly to discover and fix some 64-bit portability problems before 64-bit arches were widely available.
Discussed with: bde Approved by: kib (mentor)
|
217097 |
07-Jan-2011 |
kib |
Add AT_STACKPROT elf aux vector. Will be used to inform rtld about the initial stack protection set by the kernel image activator.
|
217072 |
06-Jan-2011 |
jhb |
Remove bogus usage of INTR_FAST. "Fast" interrupts are now indicated by registering a filter handler rather than a threaded handler. Also remove a bogus use of INTR_MPSAFE for a filter.
|
217069 |
06-Jan-2011 |
jhb |
- Add a proper return value to mv_gpio_intr(). - Remove an obsolete use of INTR_FAST.
|
217062 |
06-Jan-2011 |
jhb |
- Use macbstart_locked() directly instead of deferring it to a task. - Expand locking scope in interrupt handler. - Flesh out the detach routine.
Reviewed by: cognet
|
217036 |
06-Jan-2011 |
imp |
Remove support for SKYEYE simulator
|
217032 |
05-Jan-2011 |
imp |
Remove ancient simulation code. Skyeye simulation never really worked quite right and hasn't been used in ages and is likely broken. QEMU with GUMSTIX is a more promising road to FreeBSD/arm in emulation anyway.
Reviewed by: cognet@
|
216681 |
23-Dec-2010 |
imp |
IXP4XX_GPIO_{,UN}LOCK() don't take args. Remove the sc here to make this compile again.
|
216227 |
06-Dec-2010 |
kevlo |
Fix double ;;
|
216143 |
03-Dec-2010 |
brucec |
Revert r216134. This checkin broke platforms where bus_space are macros: they need to be a single statement, and do { } while (0) doesn't work in this situation so revert until a solution can be devised.
|
216134 |
02-Dec-2010 |
brucec |
Disallow passing in a count of zero bytes to the bus_space(9) functions.
Passing a count of zero on i386 and amd64 for [I386|AMD64]_BUS_SPACE_MEM causes a crash/hang since the 'loop' instruction decrements the counter before checking if it's zero.
PR: kern/80980 Discussed with: jhb
|
215319 |
14-Nov-2010 |
thompsa |
Provide a mutex around the read/modify/write of the IXP425_GPIO_* registers. Giant was used in some places, but not all.
|
215142 |
11-Nov-2010 |
thompsa |
Add a GPIO driver for the Gateworks Cambria platform.
The external gpio pins are connected to a PLD on the i2c bus, unfortunatley this device does not conform by failing to send an ack after each byte written. The iicbb driver will abort the transfer when the address is not ack'd and it would introduce a lot of churn to be able to pass a flag down to iicbb_start/iicbb_write. Instead we do bad things by grabbing the iicbus but then doing our own bit banging.
|
215124 |
11-Nov-2010 |
ticso |
add hint for at45d flash device sitting of spibus0
|
215054 |
09-Nov-2010 |
jhb |
- Remove <machine/mutex.h>. Most of the headers were empty, and the contents of the ones that were not empty were stale and unused. - Now that <machine/mutex.h> no longer exists, there is no need to allow it to override various helper macros in <sys/mutex.h>. - Rename various helper macros for low-level operations on mutexes to live in the _mtx_* or __mtx_* namespaces. While here, change the names to more closely match the real API functions they are backing. - Drop support for including <sys/mutex.h> in assembly source files.
Suggested by: bde (1, 2)
|
215034 |
09-Nov-2010 |
brucec |
Fix typos.
PR: bin/148894 Submitted by: olgeni
|
215031 |
09-Nov-2010 |
kevlo |
Minor cosmetic changes
|
214972 |
08-Nov-2010 |
kevlo |
Intel IXP425 SoC is based on the ARMv5TE architecture
MFC after: 3 days
|
214948 |
07-Nov-2010 |
thompsa |
Remove line for the uncommitted Cambria gpio drive that snuck in with r214946.
|
214946 |
07-Nov-2010 |
thompsa |
Hook up the five gpio pins on the Avila board to the gpio framework. There are actually 16 I/O lines but the other ones are used for system devices and interrupts.
The IXP4XX platform can set interrupts on these pins for high/low/rising/falling/transitional but this is not implemented yet.
The Cambria has the same interface but as all the pins are assigned to system functions the gpio header is toggled via a PLD on the i2c bus and is not supported by this commit.
|
214835 |
05-Nov-2010 |
jhb |
Adjust the order of operations in spinlock_enter() and spinlock_exit() to work properly with single-stepping in a kernel debugger. Specifically, these routines have always disabled interrupts before increasing the nesting count and restored the prior state of interrupts after decreasing the nesting count to avoid problems with a nested interrupt not disabling interrupts when acquiring a spin lock. However, trap interrupts for single-stepping can still occur even when interrupts are disabled. Now the saved state of interrupts is not saved in the thread until after interrupts have been disabled and the nesting count has been increased. Similarly, the saved state from the thread cannot be read once the nesting count has been decreased to zero. To fix this, use temporary variables to store interrupt state and shuffle it between the thread's MD area and the appropriate registers.
In cooperation with: bde MFC after: 1 month
|
214648 |
01-Nov-2010 |
cognet |
Try to be a little smart at guessing where _start is located in flash, instead of relying on a binutils bug.
Reported by: dim
|
214016 |
18-Oct-2010 |
mav |
Set of legacy mode SATA enchancements: - Implement proper combined mode decoding for Intel controllers to properly identify SATA and PATA channels and associate ATA channels with SATA ports. This fixes wrong reporting and in some cases hard resets to wrong SATA ports. - Improve SATA registers support to handle hot-plug events and potentially interface errors. For ICH5/6300ESB chipsets these registers accessible via PCI config space. For later ones they may be accessible via PCI BAR(5). - For controllers not generating interrupts on hot-plug events, implement periodic status polling. Use it to detect hot-plug on Intel and VIA controllers. Same probably could also be used for Serverworks and SIS.
|
213896 |
15-Oct-2010 |
marius |
Remove a device_printf() accidentally left in r213894.
Submitted by: jhb
|
213894 |
15-Oct-2010 |
marius |
Converted the remainder of the NIC drivers to use the mii_attach() introduced in r213878 instead of mii_phy_probe(). Unlike r213893 these are only straight forward conversions though.
Reviewed by: yongari
|
213893 |
15-Oct-2010 |
marius |
Convert the PHY drivers to honor the mii_flags passed down and convert the NIC drivers as well as the PHY drivers to take advantage of the mii_attach() introduced in r213878 to get rid of certain hacks. For the most part these were: - Artificially limiting miibus_{read,write}reg methods to certain PHY addresses; we now let mii_attach() only probe the PHY at the desired address(es) instead. - PHY drivers setting MIIF_* flags based on the NIC driver they hang off from, partly even based on grabbing and using the softc of the parent; we now pass these flags down from the NIC to the PHY drivers via mii_attach(). This got us rid of all such hacks except those of brgphy() in combination with bce(4) and bge(4), which is way beyond what can be expressed with simple flags.
While at it, I took the opportunity to change the NIC drivers to pass up the error returned by mii_attach() (previously by mii_phy_probe()) and unify the error message used in this case where and as appropriate as mii_attach() actually can fail for a number of reasons, not just because of no PHY(s) being present at the expected address(es).
Reviewed by: jhb, yongari
|
213499 |
06-Oct-2010 |
cognet |
Add the QILA9G20 config files.
Submitted by: Greg Ansley
|
213498 |
06-Oct-2010 |
cognet |
Add support for the AT91SAM9260
Submitted by: Greg Ansley
|
213497 |
06-Oct-2010 |
cognet |
Add the AT91SAM9G20EK config files.
Submitted by: Greg Ansley
|
213496 |
06-Oct-2010 |
cognet |
if_ate.c:
* Support for sam9 "EMAC" controller. * Support for rmii interface to phy.
at91.c & at91sam9.c:
* Eliminate separate at91sam9.c file. * Add new devices to at91sam9_devs table.
at91_machdep.c & at at91sam9_machdep.c:
* Automatic chip type determination. * Remove compile time chip dependencies. * Eliminate separate at91sam9_machdep.c file.
at91_pmc.c:
* Corrected support for all of the sam926? and sam9g20 chips. * Remove compile time chip dependencies.
My apologies to Greg for taking so long to take care of it.
|
213251 |
28-Sep-2010 |
ticso |
fix outdated comment
|
213203 |
27-Sep-2010 |
ticso |
The TWI controller automatically stops if we don't fill up with new data in time.
|
213201 |
27-Sep-2010 |
ticso |
fix off by one error for twi reads with len != 1. STOP must be requested before the last byte is received.
|
212825 |
18-Sep-2010 |
mav |
Add basic cpu_sleep() support for Marvell SoCs. This drops my SheevaPlug's heatsink termperature in open air from 49C to 43C when idle.
|
212823 |
18-Sep-2010 |
mav |
Clear timer interrupt status before calling callback, not after it, This fixes timer interrupt losses, fatal in one-shot mode.
|
212507 |
12-Sep-2010 |
cognet |
In pmap_remove_all(), do not decrease pm_stats.wired_count if the mapping was wired, as it's been done later in pmap_nuke_pv().
Submitted by: Mark Tinguely
|
212413 |
10-Sep-2010 |
avg |
bus_add_child: change type of order parameter to u_int
This reflects actual type used to store and compare child device orders. Change is mostly done via a Coccinelle (soon to be devel/coccinelle) semantic patch. Verified by LINT+modules kernel builds.
Followup to: r212213 MFC after: 10 days
|
212332 |
08-Sep-2010 |
emax |
Add custom kernel configuration and device tree source files for Seagate FreeAgent DockStar(tm) device. It seems to be a dumb down version of Marvell SheevaPlug. Device tree source file could use more tweaking, but at least it wll network boot and run FreeBSD/arm.
|
211412 |
17-Aug-2010 |
kib |
Supply some useful information to the started image using ELF aux vectors. In particular, provide pagesize and pagesizes array, the canary value for SSP use, number of host CPUs and osreldate.
Tested by: marius (sparc64) MFC after: 1 month
|
211197 |
11-Aug-2010 |
jhb |
Update various places that store or manipulate CPU masks to use cpumask_t instead of int or u_int. Since cpumask_t is currently u_int on all platforms this should just be a cosmetic change.
|
210550 |
27-Jul-2010 |
jhb |
Very rough first cut at NUMA support for the physical page allocator. For now it uses a very dumb first-touch allocation policy. This will change in the future. - Each architecture indicates the maximum number of supported memory domains via a new VM_NDOMAIN parameter in <machine/vmparam.h>. - Each cpu now has a PCPU_GET(domain) member to indicate the memory domain a CPU belongs to. Domain values are dense and numbered from 0. - When a platform supports multiple domains, the default freelist (VM_FREELIST_DEFAULT) is split up into N freelists, one for each domain. The MD code is required to populate an array of mem_affinity structures. Each entry in the array defines a range of memory (start and end) and a domain for the range. Multiple entries may be present for a single domain. The list is terminated by an entry where all fields are zero. This array of structures is used to split up phys_avail[] regions that fall in VM_FREELIST_DEFAULT into per-domain freelists. - Each memory domain has a separate lookup-array of freelists that is used when fulfulling a physical memory allocation. Right now the per-domain freelists are listed in a round-robin order for each domain. In the future a table such as the ACPI SLIT table may be used to order the per-domain lookup lists based on the penalty for each memory domain relative to a specific domain. The lookup lists may be examined via a new vm.phys.lookup_lists sysctl. - The first-touch policy is implemented by using PCPU_GET(domain) to pick a lookup list when allocating memory.
Reviewed by: alc
|
210458 |
24-Jul-2010 |
andrew |
Allow external interrupts.
- Set the external pin to interrupt in bus_setup_intr - Implement bus_config_intr for external interrupts - Extend arm_{,un}mask_irq to work with external interrupts
Approved by: imp (mentor)
|
210397 |
22-Jul-2010 |
andrew |
Add the s3c24x0 real time clock driver
Approved by: imp (mentor)
|
210396 |
22-Jul-2010 |
andrew |
Rework how device memory is allocated on the s3c24x0 CPU's.
The device virtual addresses are now able to be allocated at runtime rather than from the static pmap_devmap at boot. The only exception is memory required before we have had a chance to dynamically allocate it.
While here reduce the space between the statically allocated devices by reducing the distance between the virtual addresses.
Approved by: imp (mentor)
|
210298 |
20-Jul-2010 |
mav |
Fix several un-/signedness bugs of r210290 and r210293. Add one more check.
|
210293 |
20-Jul-2010 |
mav |
Refactor Marvell ARM SoC timer driver to the new timer infrastructure.
|
210249 |
19-Jul-2010 |
raj |
Now that we are fully FDT-driven on MRVL platforms, remove PHYSMEM_SIZE option.
|
210247 |
19-Jul-2010 |
raj |
Eliminate FDT_IMMR_VA define.
This removes platform dependencies from <machine>/fdt.h for the benfit of portability.
|
210246 |
19-Jul-2010 |
raj |
Move MRVL FDT fixups and PIC decode routine to a platform specific area.
This allows for better encapsulation (and eliminates generic fdt_arm.c, at least for now).
|
210040 |
14-Jul-2010 |
cognet |
Import preliminary support for Atmel AT91SAM9G20 cpu, and the Hot-e HL201. This fine work was done by Yohanes Nugroho <yohanes a gmail dot com> Many thanks to John Nicholls and Thinlinx for providing sample hardware.
|
209909 |
11-Jul-2010 |
raj |
Get rid of bootinfo for good in loader (U-Boot-based) and ARM.
For FDT-enabled platforms the device tree is a modern replacement for bootinfo config data.
|
209613 |
30-Jun-2010 |
jhb |
Move prototypes for kern_sigtimedwait() and kern_sigprocmask() to <sys/syscallsubr.h> where all other kern_<syscall> prototypes live.
|
209232 |
16-Jun-2010 |
raj |
Move ARM nexus rman initialization to attach routine.
This fixes a panic, which started to trigger after r209129 cleanup.
Submitted by: Andrew Turner
|
209223 |
15-Jun-2010 |
cognet |
Turn off cache if there's more than one kernel mapping, and one is writable.
Submitted by: Mark Tinguely
|
209161 |
14-Jun-2010 |
raj |
Temporarily bring back the ARM bootinfo (and make tinderbox happy).
BI will be eliminated for good when powerpc transition to FDT is complete.
|
209131 |
13-Jun-2010 |
raj |
Convert Marvell ARM platforms to FDT convention.
The following systems are involved:
- DB-88F5182 - DB-88F5281 - DB-88F6281 - DB-78100 - SheevaPlug
This overhaul covers the following major changes:
- All integrated peripherals drivers for Marvell ARM SoC, which are currently in the FreeBSD source tree are reworked and adjusted so they derive config data out of the device tree blob (instead of hard coded / tabelarized values).
- Since the common FDT infrastrucutre (fdtbus, simplebus) is used we say good by to obio / mbus drivers and numerous hard-coded config data.
Note that world needs to be built WITH_FDT for the affected platforms.
Reviewed by: imp Sponsored by: The FreeBSD Foundation.
|
209130 |
13-Jun-2010 |
raj |
Initial FDT infrastructure elements for ARM.
Reviewed by: imp Sponsored by: The FreeBSD Foundation
|
209129 |
13-Jun-2010 |
raj |
Improve style.
|
209048 |
11-Jun-2010 |
alc |
Relax one of the new assertions in pmap_enter() a little. Specifically, allow pmap_enter() to be performed on an unmanaged page that doesn't have VPO_BUSY set. Having VPO_BUSY set really only matters for managed pages. (See, for example, pmap_remove_write().)
|
208990 |
10-Jun-2010 |
alc |
Reduce the scope of the page queues lock and the number of PG_REFERENCED changes in vm_pageout_object_deactivate_pages(). Simplify this function's inner loop using TAILQ_FOREACH(), and shorten some of its overly long lines. Update a stale comment.
Assert that PG_REFERENCED may be cleared only if the object containing the page is locked. Add a comment documenting this.
Assert that a caller to vm_page_requeue() holds the page queues lock, and assert that the page is on a page queue.
Push down the page queues lock into pmap_ts_referenced() and pmap_page_exists_quick(). (As of now, there are no longer any pmap functions that expect to be called with the page queues lock held.)
Neither pmap_ts_referenced() nor pmap_page_exists_quick() should ever be passed an unmanaged page. Assert this rather than returning "0" and "FALSE" respectively.
ARM:
Simplify pmap_page_exists_quick() by switching to TAILQ_FOREACH().
Push down the page queues lock inside of pmap_clearbit(), simplifying pmap_clear_modify(), pmap_clear_reference(), and pmap_remove_write(). Additionally, this allows for avoiding the acquisition of the page queues lock in some cases.
PowerPC/AIM:
moea*_page_exits_quick() and moea*_page_wired_mappings() will never be called before pmap initialization is complete. Therefore, the check for moea_initialized can be eliminated.
Push down the page queues lock inside of moea*_clear_bit(), simplifying moea*_clear_modify() and moea*_clear_reference().
The last parameter to moea*_clear_bit() is never used. Eliminate it.
PowerPC/BookE:
Simplify mmu_booke_page_exists_quick()'s control flow.
Reviewed by: kib@
|
208846 |
05-Jun-2010 |
alc |
Don't set PG_WRITEABLE in pmap_enter() unless the page is managed.
Correct a typo in a nearby comment on sparc64.
|
208688 |
01-Jun-2010 |
alc |
In pmap_enter_locked(), don't require the vector page to be VPO_BUSY.
|
208574 |
26-May-2010 |
alc |
Push down page queues lock acquisition in pmap_enter_object() and pmap_is_referenced(). Eliminate the corresponding page queues lock acquisitions from vm_map_pmap_enter() and mincore(), respectively. In mincore(), this allows some additional cases to complete without ever acquiring the page queues lock.
Assert that the page is managed in pmap_is_referenced().
On powerpc/aim, push down the page queues lock acquisition from moea*_is_modified() and moea*_is_referenced() into moea*_query_bit(). Again, this will allow some additional cases to complete without ever acquiring the page queues lock.
Reorder a few statements in vm_page_dontneed() so that a race can't lead to an old reference persisting. This scenario is described in detail by a comment.
Correct a spelling error in vm_page_dontneed().
Assert that the object is locked in vm_page_clear_dirty(), and restrict the page queues lock assertion to just those cases in which the page is currently writeable.
Add object locking to vnode_pager_generic_putpages(). This was the one and only place where vm_page_clear_dirty() was being called without the object being locked.
Eliminate an unnecessary vm_page_lock() around vnode_pager_setsize()'s call to vm_page_clear_dirty().
Change vnode_pager_generic_putpages() to the modern-style of function definition. Also, change the name of one of the parameters to follow virtual memory system naming conventions.
Reviewed by: kib
|
208538 |
25-May-2010 |
raj |
Initial loader(8) support for Flattened Device Tree.
o This is disabled by default for now, and can be enabled using WITH_FDT at build time.
o Tested with ARM and PowerPC.
Reviewed by: imp Sponsored by: The FreeBSD Foundation
|
208504 |
24-May-2010 |
alc |
Roughly half of a typical pmap_mincore() implementation is machine- independent code. Move this code into mincore(), and eliminate the page queues lock from pmap_mincore().
Push down the page queues lock into pmap_clear_modify(), pmap_clear_reference(), and pmap_is_modified(). Assert that these functions are never passed an unmanaged page.
Eliminate an inaccurate comment from powerpc/powerpc/mmu_if.m: Contrary to what the comment says, pmap_mincore() is not simply an optimization. Without a complete pmap_mincore() implementation, mincore() cannot return either MINCORE_MODIFIED or MINCORE_REFERENCED because only the pmap can provide this information.
Eliminate the page queues lock from vfs_setdirty_locked_object(), vm_pageout_clean(), vm_object_page_collect_flush(), and vm_object_page_clean(). Generally speaking, these are all accesses to the page's dirty field, which are synchronized by the containing vm object's lock.
Reduce the scope of the page queues lock in vm_object_madvise() and vm_page_dontneed().
Reviewed by: kib (an earlier version)
|
208453 |
23-May-2010 |
kib |
Reorganize syscall entry and leave handling.
Extend struct sysvec with three new elements: sv_fetch_syscall_args - the method to fetch syscall arguments from usermode into struct syscall_args. The structure is machine-depended (this might be reconsidered after all architectures are converted). sv_set_syscall_retval - the method to set a return value for usermode from the syscall. It is a generalization of cpu_set_syscall_retval(9) to allow ABIs to override the way to set a return value. sv_syscallnames - the table of syscall names.
Use sv_set_syscall_retval in kern_sigsuspend() instead of hardcoding the call to cpu_set_syscall_retval().
The new functions syscallenter(9) and syscallret(9) are provided that use sv_*syscall* pointers and contain the common repeated code from the syscall() implementations for the architecture-specific syscall trap handlers.
Syscallenter() fetches arguments, calls syscall implementation from ABI sysent table, and set up return frame. The end of syscall bookkeeping is done by syscallret().
Take advantage of single place for MI syscall handling code and implement ptrace_lwpinfo pl_flags PL_FLAG_SCE, PL_FLAG_SCX and PL_FLAG_EXEC. The SCE and SCX flags notify the debugger that the thread is stopped at syscall entry or return point respectively. The EXEC flag augments SCX and notifies debugger that the process address space was changed by one of exec(2)-family syscalls.
The i386, amd64, sparc64, sun4v, powerpc and ia64 syscall()s are changed to use syscallenter()/syscallret(). MIPS and arm are not converted and use the mostly unchanged syscall() implementation.
Reviewed by: jhb, marcel, marius, nwhitehorn, stas Tested by: marcel (ia64), marius (sparc64), nwhitehorn (powerpc), stas (mips) MFC after: 1 month
|
208175 |
16-May-2010 |
alc |
On entry to pmap_enter(), assert that the page is busy. While I'm here, make the style of assertion used by pmap_enter() consistent across all architectures.
On entry to pmap_remove_write(), assert that the page is neither unmanaged nor fictitious, since we cannot remove write access to either kind of page.
With the push down of the page queues lock, pmap_remove_write() cannot condition its behavior on the state of the PG_WRITEABLE flag if the page is busy. Assert that the object containing the page is locked. This allows us to know that the page will neither become busy nor will PG_WRITEABLE be set on it while pmap_remove_write() is running.
Correct a long-standing bug in vm_page_cowsetup(). We cannot possibly do copy-on-write-based zero-copy transmit on unmanaged or fictitious pages, so don't even try. Previously, the call to pmap_remove_write() would have failed silently.
|
208052 |
14-May-2010 |
cognet |
Catchup with new prototype for db_printf().
|
207954 |
12-May-2010 |
kevlo |
The FA526 belongs to the ARM9TDMI family
|
207796 |
08-May-2010 |
alc |
Push down the page queues into vm_page_cache(), vm_page_try_to_cache(), and vm_page_try_to_free(). Consequently, push down the page queues lock into pmap_enter_quick(), pmap_page_wired_mapped(), pmap_remove_all(), and pmap_remove_write().
Push down the page queues lock into Xen's pmap_page_is_mapped(). (I overlooked the Xen pmap in r207702.)
Switch to a per-processor counter for the total number of pages cached.
|
207611 |
04-May-2010 |
kevlo |
Add support for FA626TE. Tested on GM8181 development board.
|
207554 |
03-May-2010 |
sobomax |
Add new tunable 'net.link.ifqmaxlen' to set default send interface queue length. The default value for this parameter is 50, which is quite low for many of today's uses and the only way to modify this parameter right now is to edit if_var.h file. Also add read-only sysctl with the same name, so that it's possible to retrieve the current value.
MFC after: 1 month
|
207536 |
02-May-2010 |
mav |
Import mvs(4) - Marvell 88SX50XX/88SX60XX/88SX70XX/SoC SATA controllers driver for CAM ATA subsystem. This driver supports same hardware as atamarvell, ataadaptec and atamvsata drivers from ata(4), but provides many additional features, such as NCQ, PMP, etc.
|
207410 |
30-Apr-2010 |
kmacy |
On Alan's advice, rather than do a wholesale conversion on a single architecture from page queue lock to a hashed array of page locks (based on a patch by Jeff Roberson), I've implemented page lock support in the MI code and have only moved vm_page's hold_count out from under page queue mutex to page lock. This changes pmap_extract_and_hold on all pmaps.
Supported by: Bitgravity Inc.
Discussed with: alc, jeffr, and kib
|
207269 |
27-Apr-2010 |
kib |
Style: use #define<TAB> instead of #define<SPACE>.
Noted by: bde, pluknet gmail com MFC after: 11 days
|
207155 |
24-Apr-2010 |
alc |
Resurrect pmap_is_referenced() and use it in mincore(). Essentially, pmap_ts_referenced() is not always appropriate for checking whether or not pages have been referenced because it clears any reference bits that it encounters. For example, in mincore(), clearing the reference bits has two negative consequences. First, it throws off the activity count calculations performed by the page daemon. Specifically, a page on which mincore() has called pmap_ts_referenced() looks less active to the page daemon than it should. Consequently, the page could be deactivated prematurely by the page daemon. Arguably, this problem could be fixed by having mincore() duplicate the activity count calculation on the page. However, there is a second problem for which that is not a solution. In order to clear a reference on a 4KB page, it may be necessary to demote a 2/4MB page mapping. Thus, a mincore() by one process can have the side effect of demoting a superpage mapping within another process!
|
207152 |
24-Apr-2010 |
kib |
Move the constants specifying the size of struct kinfo_proc into machine-specific header files. Add KINFO_PROC32_SIZE for struct kinfo_proc32 for architectures providing COMPAT_FREEBSD32. Add CTASSERT for the size of struct kinfo_proc32.
Submitted by: pluknet Reviewed by: imp, jhb, nwhitehorn MFC after: 2 weeks
|
207077 |
22-Apr-2010 |
thompsa |
Change USB_DEBUG to #ifdef and allow it to be turned off. Previously this had the illusion of a tunable setting but was always turned on regardless.
MFC after: 1 week
|
206404 |
08-Apr-2010 |
imp |
Add BUS_SPACE_UNRESTRICTED and define it to be ~0, just like all the other platforms.
|
206054 |
01-Apr-2010 |
mav |
Oops! Wrong copy-paste in r206053.
|
206053 |
01-Apr-2010 |
mav |
Fill extended ATA command registers in cPRD to support 48bit commands.
|
205864 |
29-Mar-2010 |
imp |
Build modules for this config to make sure they stay buildable...
|
205705 |
26-Mar-2010 |
rpaulo |
Pass the correct pointer to fled_cb().
|
205642 |
25-Mar-2010 |
nwhitehorn |
Change the arguments of exec_setregs() so that it receives a pointer to the image_params struct instead of several members of that struct individually. This makes it easier to expand its arguments in the future without touching all platforms.
Reviewed by: jhb
|
205425 |
21-Mar-2010 |
cognet |
Make sure we insert and remove the PV entries related to unmanaged kernel mappings into the kernel pmap, not into the pmap related to the pmap_enter_pv()/pmap_remove_pv() call.
|
205354 |
20-Mar-2010 |
imp |
Add support for the Samsung S3C2xx0 family of ARM SoCs written by Andrew Turner. The kernel supports the LN2410SBC evaluation board, and likely others. These parts (or similar ones) are in some open hardware designs for phones.
Submitted by: Andrew Turner
|
205103 |
12-Mar-2010 |
ticso |
fix type in comment
|
205028 |
11-Mar-2010 |
raj |
Fix ARM cache handling yet more.
1) vm_machdep.c: remove the dangling allocations so they do not un-necessarily turn off the cache upon consecutive access.
2) busdma_machdep.c: remove the same amount than shadow mapped.
Reported by: Maks Verver Submitted by: Mark Tinguely Reviewed by: Grzegorz Bernacki MFC after: 3 days
|
205027 |
11-Mar-2010 |
raj |
Let detailed info about CPU features print on Marvell Sheeva CPU as well.
Provide missing entry in the cpu_classes[].
Reported by: Maks Verver MFC after: 1 week
|
204764 |
05-Mar-2010 |
raj |
Provide correct TCLK value for Kirkwood A1 silicon revision.
While there improve SOC ID output accordingly.
Obtained from: Semihalf MFC after: 1 week
|
204476 |
28-Feb-2010 |
ticso |
simplify hash calculation
|
204463 |
28-Feb-2010 |
ticso |
remove debug leftover
|
204462 |
28-Feb-2010 |
ticso |
Fix multicast hashes. Atmel uses a simple xor hash instead of the typical crc based one.
|
204283 |
24-Feb-2010 |
raj |
Do not force verbose and single mode in non-metadata boot case.
We want to go multi-user by default also in case of booting without loader(8).
|
204280 |
24-Feb-2010 |
brucec |
Update the commented out option for omitting the sysctl descriptions; it was committed as NO_SYSCTL_DESCR.
Approved by: rrs (mentor)
|
204198 |
22-Feb-2010 |
rpaulo |
Fix previous commit: led_func() doesn't exist, it should be fled_cb().
Pointed out by: bz
|
204122 |
20-Feb-2010 |
kevlo |
Show the cpu info for fa526
Submitted by: Yohanes Nugroho <yohanes at gmail dot com>
|
204121 |
20-Feb-2010 |
kevlo |
Correct both FA526/FA626TE cpu ids since the cpu id is always masked with 0xfffffff0
|
203974 |
16-Feb-2010 |
imp |
The NetBSD Foundation has granted permission to remove clauses 3 and 4.
Obtained from: NetBSD
|
203938 |
15-Feb-2010 |
attilio |
Adjust style (following the already existing rules) for the newly introduced option DEADLKRES.
Reported by: danfe, julian, avg
|
203852 |
14-Feb-2010 |
kevlo |
Correct cpu id for FA526. While I'm here, add cpu id for FA626TE.
|
203758 |
10-Feb-2010 |
attilio |
Add the options DEADLKRES (introducing the deadlock resolver thread) in the 'debugging' section of any HEAD kernel and enable for the mainstream ones, excluding the embedded architectures. It may, of course, enabled on a case-by-case basis.
Sponsored by: Sandvine Incorporated Requested by: emaste Discussed with: kib
|
203752 |
10-Feb-2010 |
rpaulo |
Turn on the front LED at boot time like we do with the Avila.
|
203637 |
07-Feb-2010 |
raj |
Improve checking whether an ARM VA has a valid mapping before performing cache sync.
VIPT/PIPT caches need valid VA-PA mapping in PTE for a cache operation to succeed (unlike VIVT). Prior to this fix pmap was using l2pte_valid() for that check, but this is not sufficient as the function merely checks if a PTE exists (there can be existing but _invalid_ entries in the table).
A new pmap_has_valid_mapping() routine is introduced to do this job right by checking proper PTE flags.
Among other potential problems this cures coherency issues with L2 caches on MV-78100.
Submitted by: Grzegorz Bernacki, Piotr Ziecik Reviewed, tested by: marcel Obtained from: Semihalf MFC after: 1 week
|
203171 |
29-Jan-2010 |
marcel |
When backtracing self, start with the current frame (i.e. the frame of db_trace_self()) and not the caller's frame. The use of builtin_frame_address(1) to get the caller's frame is not reliable and can cause panics.
|
202634 |
19-Jan-2010 |
jhb |
Move the examples for the 'hints' and 'env' keywords from various GENERIC kernel configs into NOTES.
Reviewed by: imp
|
202353 |
15-Jan-2010 |
cognet |
Do not free the dmamap if it is still busy.
Submitted by: Mark Tinguely MFC after: 3 days
|
201534 |
04-Jan-2010 |
imp |
Revert 200594. This file isn't intended for these sorts of things.
|
201469 |
04-Jan-2010 |
rpaulo |
Remove CNS11XXNAS.hints.
|
201468 |
04-Jan-2010 |
rpaulo |
Add support for Cavium Econa CNS11XX ARM boards. These boards were previously know by StarSemi STR9104.
Tested by the submitter on an Emprex NSD-100 board.
Submitted by: Yohanes Nugroho <yohanes at gmail.com> Reviewed by: freebsd-arm, stas Obtained from: //depot/projects/str91xx/...
|
201223 |
29-Dec-2009 |
rnoland |
Update d_mmap() to accept vm_ooffset_t and vm_memattr_t.
This replaces d_mmap() with the d_mmap2() implementation and also changes the type of offset to vm_ooffset_t.
Purge d_mmap2().
All driver modules will need to be rebuilt since D_VERSION is also bumped.
Reviewed by: jhb@ MFC after: Not in this lifetime...
|
200928 |
23-Dec-2009 |
rpaulo |
Intel XScale hwpmc(4) support.
This brings hwpmc(4) support for 2nd and 3rd generation XScale cores. Right now it's enabled by default to make sure we test this a bit. When the time comes it can be disabled by default. Tested on Gateworks boards.
A man page is coming.
Obtained from: //depot/user/rpaulo/xscalepmc/...
|
200594 |
16-Dec-2009 |
dougb |
Add INCLUDE_CONFIG_FILE, and a note in comments about how to also include the comments with CONFIGARGS
|
200275 |
08-Dec-2009 |
mav |
Fix the build.
|
200171 |
06-Dec-2009 |
mav |
MFp4: Introduce ATA_CAM kernel option, turning ata(4) controller drivers into cam(4) interface modules. When enabled, this options deprecates all ata(4) peripheral drivers (ad, acd, ...) and interfaces and allows cam(4) drivers (ada, cd, ...) and interfaces to be natively used instead.
As side effect of this, ata(4) mode setting code was completely rewritten to make controller API more strict and permit above change. While doing this, SATA revision was separated from PATA mode. It allows DMA-incapable SATA devices to operate and makes hw.ata.atapi_dma tunable work again.
Also allow ata(4) controller drivers (except some specific or broken ones) to handle larger data transfers. Previous constraint of 64K was artificial and is not really required by PCI ATA BM specification or hardware.
Submitted by: nwitehorn (powerpc part)
|
200015 |
02-Dec-2009 |
thompsa |
Add missing ath_ar9* ath hal entries.
|
200014 |
02-Dec-2009 |
thompsa |
Remove unknown ath hal device entries.
|
199868 |
27-Nov-2009 |
alc |
Simplify the invocation of vm_fault(). Specifically, eliminate the flag VM_FAULT_DIRTY. The information provided by this flag can be trivially inferred by vm_fault().
Discussed with: kib
|
199557 |
19-Nov-2009 |
jhb |
- Initialize callout before it is used in atestop() during attach. - Reorder detach so that ether_ifdetach() is called first. This removes the race that ATE_FLAG_DETACHING closed, so that flag can be removed. - Trim a duplicate clearing of IFF_DRV_RUNNING.
Reviewed by: imp
|
199537 |
19-Nov-2009 |
jhb |
These drivers only set if_timer but never set if_watchdog. Just remove the assignments to if_timer.
|
199135 |
10-Nov-2009 |
kib |
Extract the code that records syscall results in the frame into MD function cpu_set_syscall_retval().
Suggested by: marcel Reviewed by: marcel, davidxu PowerPC, ARM, ia64 changes: marcel Sparc64 tested and reviewed by: marius, also sunv reviewed MIPS tested by: gonzo MFC after: 1 month
|
198944 |
05-Nov-2009 |
marcel |
Fix gdb_cpu_getreg() to actually match GDB's register definition.
|
198943 |
05-Nov-2009 |
marcel |
Implement db_trace_thread() by calling db_stack_trace_cmd() and passing a frame pointer that comes from the thread context. This fixes DDB backtraces by not unwinding debugger functions first.
|
198942 |
05-Nov-2009 |
marcel |
Implement db_trace_self() by calling db_stack_trace_cmd() and not db_trace_thread().
|
198872 |
04-Nov-2009 |
alc |
Eliminate an unnecessary vm include file.
|
198717 |
31-Oct-2009 |
mav |
MFp4: - Remove most of direct relations between ATA(4) peripherial and controller levels. It makes logic more transparent and is a mandatory step to wrap ATA(4) controller level into ATA-native CAM SIM. - Tune AHCI and SATA2 SiI drivers memory allocation a bit to allow bigger I/O transaction sizes without additional cost.
|
198507 |
27-Oct-2009 |
kib |
In r197963, a race with thread being selected for signal delivery while in kernel mode, and later changing signal mask to block the signal, was fixed for sigprocmask(2) and ptread_exit(3). The same race exists for sigreturn(2), setcontext(2) and swapcontext(2) syscalls.
Use kern_sigprocmask() instead of direct manipulation of td_sigmask to reschedule newly blocked signals, closing the race.
Reviewed by: davidxu Tested by: pho MFC after: 1 month
|
198342 |
21-Oct-2009 |
marcel |
Review previous change. It has no relation to the I-cache coherency changes and thus unintentional.
Spotted by: rdivacky@
|
198341 |
21-Oct-2009 |
marcel |
o Introduce vm_sync_icache() for making the I-cache coherent with the memory or D-cache, depending on the semantics of the platform. vm_sync_icache() is basically a wrapper around pmap_sync_icache(), that translates the vm_map_t argumument to pmap_t. o Introduce pmap_sync_icache() to all PMAP implementation. For powerpc it replaces the pmap_page_executable() function, added to solve the I-cache problem in uiomove_fromphys(). o In proc_rwmem() call vm_sync_icache() when writing to a page that has execute permissions. This assures that when breakpoints are written, the I-cache will be coherent and the process will actually hit the breakpoint. o This also fixes the Book-E PMAP implementation that was missing necessary locking while trying to deal with the I-cache coherency in pmap_enter() (read: mmu_booke_enter_locked).
The key property of this change is that the I-cache is made coherent *after* writes have been done. Doing it in the PMAP layer when adding or changing a mapping means that the I-cache is made coherent *before* any writes happen. The difference is key when the I-cache prefetches.
|
198044 |
13-Oct-2009 |
jhb |
Sync with other GENERIC kernel configs: - Move USB serial drivers earlier to match their placement in other kernel configs. - Add descriptions to various USB drivers. - Move the USB wireless drivers into a new section. - Add ulscom to the list of USB serial drivers.
|
197933 |
10-Oct-2009 |
kib |
Define architectural load bases for PIE binaries. Addresses were selected by looking at the bases used for non-relocatable executables by gnu ld(1), and adjusting it slightly.
Discussed with: bz Reviewed by: kan Tested by: bz (i386, amd64), bsam (linux) MFC after: some time
|
197770 |
05-Oct-2009 |
stas |
- Drop unused pmap_use_l1 function and comment out currently unused pmap_dcache_wbinv_all/pmap_copy_page functions which we might want to take advatage of later. This fixes the build with PMAP_DEBUG defined.
Discussed with: cognet
|
197733 |
03-Oct-2009 |
rpaulo |
Remove remaining bits of performance counter support.
Submitted by: Tom Judge <tom at tomjudge.com>
|
197729 |
03-Oct-2009 |
bz |
Make sure that the primary native brandinfo always gets added first and the native ia32 compat as middle (before other things). o(ld)brandinfo as well as third party like linux, kfreebsd, etc. stays on SI_ORDER_ANY coming last.
The reason for this is only to make sure that even in case we would overflow the MAX_BRANDS sized array, the native FreeBSD brandinfo would still be there and the system would be operational.
Reviewed by: kib MFC after: 1 month
|
197704 |
02-Oct-2009 |
rpaulo |
Remove performance counter headers. This code came from NetBSD, but our hardware perf. counter support is different, so we don't need these files.
Reviewed by: freebsd-arm (no comments)
|
197523 |
26-Sep-2009 |
rpaulo |
Promote the cpu_class local variable to global and expose it in md_var.h
Reviewed by: freebsd-arm
|
197316 |
18-Sep-2009 |
alc |
Add a new sysctl for reporting all of the supported page sizes.
Reviewed by: jhb MFC after: 3 weeks
|
196994 |
08-Sep-2009 |
phk |
Get rid of the _NO_NAMESPACE_POLLUTION kludge by creating an architecture specific include file containing the _ALIGN* stuff which <sys/socket.h> needs.
|
196730 |
01-Sep-2009 |
kib |
Reintroduce the r196640, after fixing the problem with my testing.
Remove the altkstacks, instead instantiate threads with kernel stack allocated with the right size from the start. For the thread that has kernel stack cached, verify that requested stack size is equial to the actual, and reallocate the stack if sizes differ [1].
This fixes the bug introduced by r173361 that was committed several days after r173004 and consisted of kthread_add(9) ignoring the non-default kernel stack size.
Also, r173361 removed the caching of the kernel stacks for a non-first thread in the process. Introduce separate kernel stack cache that keeps some limited amount of preallocated kernel stacks to lower the latency of thread allocation. Add vm_lowmem handler to prune the cache on low memory condition. This way, system with reasonable amount of the threads get lower latency of thread creation, while still not exhausting significant portion of KVA for unused kstacks.
Submitted by: peter [1] Discussed with: jhb, julian, peter Reviewed by: jhb Tested by: pho (and retested according to new test scenarious) MFC after: 1 week
|
196648 |
29-Aug-2009 |
kib |
Reverse r196640 and r196644 for now.
|
196640 |
29-Aug-2009 |
kib |
Remove the altkstacks, instead instantiate threads with kernel stack allocated with the right size from the start. For the thread that has kernel stack cached, verify that requested stack size is equial to the actual, and reallocate the stack if sizes differ [1].
This fixes the bug introduced by r173361 that was committed several days after r173004 and consisted of kthread_add(9) ignoring the non-default kernel stack size.
Also, r173361 removed the caching of the kernel stacks for a non-first thread in the process. Introduce separate kernel stack cache that keeps some limited amount of preallocated kernel stacks to lower the latency of thread allocation. Add vm_lowmem handler to prune the cache on low memory condition. This way, system with reasonable amount of the threads get lower latency of thread creation, while still not exhausting significant portion of KVA for unused kstacks.
Submitted by: peter [1] Discussed with: jhb, julian, peter Reviewed by: jhb Tested by: pho MFC after: 1 week
|
196605 |
27-Aug-2009 |
sam |
revert r196600; didn't notice it'd been done already
Submitted by: jhay
|
196600 |
27-Aug-2009 |
sam |
enable mesh by default
|
196536 |
25-Aug-2009 |
raj |
Introduce SheevaPlug support.
- The device is based on Marvell 88F6281 system on chip. - More info about the platform at http://www.plugcomputer.org
- To build the FreeBSD kernel: make buildkernel TARGET_ARCH=arm KERNCONF=SHEEVAPLUG
- Installation notes at: http://wiki.freebsd.org/FreeBSDMarvell
Submitted by: Michal Hajduk Obtained from: Semihalf
|
196533 |
25-Aug-2009 |
raj |
Exclude common Kirkwood settings so they can be shared among various platforms based on this SOC. This is a preliminary step for SheevaPlug support.
Submitted by: Michal Hajduk Obtained from: Semihalf
|
196532 |
25-Aug-2009 |
raj |
Properly handle initial state of power mgmt.
Modules on Marvell SOC can be selectively PM-disabled, and we must not access disabled devices' registers (attempt to initialize them) unconditionally, as this leads to the system hang. This patch introduces graceful handling of the PM state during devices init.
Submitted by: Michal Hajduk Obtained from: Semihalf
|
196531 |
25-Aug-2009 |
raj |
Eliminate platform_pmap_init() to simplify Marvell bootstrap code.
|
196484 |
23-Aug-2009 |
cognet |
KDB needs <machine/db_machdep.h>, so move it under #ifdef KDB. While I'm there, remove dead code, we will never support acorn26.
|
196479 |
23-Aug-2009 |
cognet |
No need to remove the same flag multiple times.
|
196246 |
15-Aug-2009 |
stas |
- Proprely intialize UART parameters at probe stage, so uart(4) will initialize the FIFO memory correctly on attach. Before that this values was intialized in only in at91_usart_bus_attach which is called after the uart(4) memory allocation happens.
Approved by: re (kib) MFC after: 1 week
|
196193 |
13-Aug-2009 |
raj |
Use correct wbinv operation in pmap_l2cache_wbinv_range().
Submitted by: Michal Hajduk Reviewed by: stas Approved by: re (kib) Obtained from: Semihalf
|
196019 |
01-Aug-2009 |
rwatson |
Merge the remainder of kern_vimage.c and vimage.h into vnet.c and vnet.h, we now use jails (rather than vimages) as the abstraction for virtualization management, and what remained was specific to virtual network stacks. Minor cleanups are done in the process, and comments updated to reflect these changes.
Reviewed by: bz Approved by: re (vimage blanket)
|
195840 |
24-Jul-2009 |
jhb |
Add a new type of VM object: OBJT_SG. An OBJT_SG object is very similar to a device pager (OBJT_DEVICE) object in that it uses fictitious pages to provide aliases to other memory addresses. The primary difference is that it uses an sglist(9) to determine the physical addresses for a given offset into the object instead of invoking the d_mmap() method in a device driver.
Reviewed by: alc Approved by: re (kensmith) MFC after: 2 weeks
|
195798 |
21-Jul-2009 |
raj |
Make dcache_inv_range() point to the proper routines on ARM9 and ARM9E/ARM10.
On some ARM variations CPU func dispatcher has the D-cache invalidate method point to write-back invalidate, which is wrong, and can lead to a crash/panic on affected platforms.
Spotted by: HPS Reviewed by: cognet Approved by: re (kib)
|
195779 |
20-Jul-2009 |
raj |
ARM pmap fixes.
a) nocache-remap problem
When a page is remapped into a non-cacheable virtual memory region there was no associated write-back invalidate operation performed. We remove writeback of the original buffer size from bus_dmamem_alloc() and add appropriate L1/L2 flush operation.
b) missing write-back invalidate operation
In pmap_kremove a page is removed so we must do a write-back invalidate operation aligned to the page virtual address.
Submitted by: Michal Hajduk Reviewed by: Mark Tinguely, rpaulo, stas Approved by: re (kib) Obtained from: Semihalf
|
195742 |
17-Jul-2009 |
rpaulo |
Add IEEE80211_SUPPORT_MESH, following similar change to nanobsd and other GENERIC kernels.
Approved by: re (kib)
|
195649 |
12-Jul-2009 |
alc |
Add support to the virtual memory system for configuring machine- dependent memory attributes:
Rename vm_cache_mode_t to vm_memattr_t. The new name reflects the fact that there are machine-dependent memory attributes that have nothing to do with controlling the cache's behavior.
Introduce vm_object_set_memattr() for setting the default memory attributes that will be given to an object's pages.
Introduce and use pmap_page_{get,set}_memattr() for getting and setting a page's machine-dependent memory attributes. Add full support for these functions on amd64 and i386 and stubs for them on the other architectures. The function pmap_page_set_memattr() is also responsible for any other machine-dependent aspects of changing a page's memory attributes, such as flushing the cache or updating the direct map. The uses include kmem_alloc_contig(), vm_page_alloc(), and the device pager:
kmem_alloc_contig() can now be used to allocate kernel memory with non-default memory attributes on amd64 and i386.
vm_page_alloc() and the device pager will set the memory attributes for the real or fictitious page according to the object's default memory attributes.
Update the various pmap functions on amd64 and i386 that map pages to incorporate each page's memory attributes in the mapping.
Notes: (1) Inherent to this design are safety features that prevent the specification of inconsistent memory attributes by different mappings on amd64 and i386. In addition, the device pager provides a warning when a device driver creates a fictitious page with memory attributes that are inconsistent with the real page that the fictitious page is an alias for. (2) Storing the machine-dependent memory attributes for amd64 and i386 as a dedicated "int" in "struct md_page" represents a compromise between space efficiency and the ease of MFCing these changes to RELENG_7.
In collaboration with: jhb
Approved by: re (kib)
|
195376 |
05-Jul-2009 |
sam |
Cleanup ALIGNED_POINTER: o add to platforms where it was missing (arm, i386, powerpc, sparc64, sun4v) o define as "1" on amd64 and i386 where there is no restriction o make the type returned consistent with ALIGN o remove _ALIGNED_POINTER o make associated comments consistent
Reviewed by: bde, imp, marcel Approved by: re (kensmith)
|
195256 |
01-Jul-2009 |
raj |
Map DPCPU pages into ARM kernel VA space.
DPCPU area was not properly mapped into kernel VA space, which caused page fault on the first DPCPU access. This patch fixes the problem by mapping DPCPU area into kernel VA space.
Submitted by: Michal Hajduk, Piotr Ziecik Reviewed by: cognet, stas Approved by: re (kib) Obtained from: Semihalf
|
195060 |
26-Jun-2009 |
alc |
Correct the #endif comment.
Noticed by: jmallett Approved by: re (kib)
|
195049 |
26-Jun-2009 |
rwatson |
Use if_maddr_rlock()/if_maddr_runlock() rather than IF_ADDR_LOCK()/ IF_ADDR_UNLOCK() across network device drivers when accessing the per-interface multicast address list, if_multiaddrs. This will allow us to change the locking strategy without affecting our driver programming interface or binary interface.
For two wireless drivers, remove unnecessary locking, since they don't actually access the multicast address list.
Approved by: re (kib) MFC after: 6 weeks
|
195033 |
26-Jun-2009 |
alc |
This change is the next step in implementing the cache control functionality required by video card drivers. Specifically, this change introduces vm_cache_mode_t with an appropriate VM_CACHE_DEFAULT definition on all architectures. In addition, this changes adds a vm_cache_mode_t parameter to kmem_alloc_contig() and vm_phys_alloc_contig(). These will be the interfaces for allocating mapped kernel memory and physical memory, respectively, with non-default cache modes.
In collaboration with: jhb
|
194983 |
25-Jun-2009 |
sam |
temporarily disable optional uarts; apparently we hang when probing them (and they are not present)
|
194949 |
25-Jun-2009 |
raj |
Enable all populated TWSI (I2C) controllers on Marvell SOCs.
Obtained from: Semihalf
|
194908 |
24-Jun-2009 |
cognet |
Fix typo.
|
194906 |
24-Jun-2009 |
cognet |
Fix typo.
|
194845 |
24-Jun-2009 |
raj |
Introduce ata(4) support for Marvell integrated SATA controllers (found on 88F5xxx, 88F6xxx and MV78xxx system on chip devices).
Reviewed by: stas Obtained from: Semihalf
|
194784 |
23-Jun-2009 |
jeff |
Implement a facility for dynamic per-cpu variables. - Modules and kernel code alike may use DPCPU_DEFINE(), DPCPU_GET(), DPCPU_SET(), etc. akin to the statically defined PCPU_*. Requires only one extra instruction more than PCPU_* and is virtually the same as __thread for builtin and much faster for shared objects. DPCPU variables can be initialized when defined. - Modules are supported by relocating the module's per-cpu linker set over space reserved in the kernel. Modules may fail to load if there is insufficient space available. - Track space available for modules with a one-off extent allocator. Free may block for memory to allocate space for an extent.
Reviewed by: jhb, rwatson, kan, sam, grehan, marius, marcel, stas
|
194753 |
23-Jun-2009 |
sam |
Now that we have UARTs running with fast interrupt handlers the ata driver's i/o ops must be locked to avoid chaos. Extend the cambria bus tag to support ata and add a spin lock. The ata driver is hacked to use that instead of it's builtin hack for ixp425. Once the ata driver is fixed to not be confused about byte order we can generalize the cambria bus tag code and make it generally useful.
While here take advantage of our being ixp435-specific to remove delays when switching between byte+word accesses and to eliminate the 2us delay for the uarts (the spin lock overhead looks to do this for us).
|
194752 |
23-Jun-2009 |
sam |
use consistent style
|
194673 |
22-Jun-2009 |
sam |
kill left over cruft
|
194671 |
22-Jun-2009 |
sam |
enable optional GPS+RS485 uarts
|
194670 |
22-Jun-2009 |
sam |
o add a bus space tag that forces a 2usec delay between r/w ops; this is used for the optional GPS+RS485 uarts on the Gateworks Cambria boards which otherwise are unreliable o setup the hack bus space tag for the GPS+RS485 uarts o program the gpio interrupts for the uarts to be edge-rising o force timing on the expansion bus for the uarts to be "slow"
Thanks to Chris Lang of Gateworks for these tips.
|
194669 |
22-Jun-2009 |
sam |
fix typo
|
194668 |
22-Jun-2009 |
sam |
o remove hack to write UUE+RTOIE in the uart's IER; force them with hints o honor hints for the rclk
|
194656 |
22-Jun-2009 |
sam |
hook arm_post_filter to ACK GPIO interrupts; this fixes the interrupt storm observed on the GPS+RS485 uarts on Gateworks Cambria boards
Reviewed by: cognet
|
194655 |
22-Jun-2009 |
sam |
always define Cambria GPS+RS485 mappings as they are no longer conditional
|
194654 |
22-Jun-2009 |
sam |
map the optional GPS and RS485 uart's on the Gateworks Cambria board (may want to make these conditional)
|
194653 |
22-Jun-2009 |
sam |
add ixp425_set_gpio to program the gpio interrupt type
|
194652 |
22-Jun-2009 |
sam |
rewrite arm_get_next_irq to always make forward progress (should be optimized)
|
194651 |
22-Jun-2009 |
sam |
kill stray whitespace
|
194650 |
22-Jun-2009 |
sam |
move logic to ACK a GPIO to a separate function
|
194649 |
22-Jun-2009 |
sam |
swap order in ddb show gpio printf
|
194648 |
22-Jun-2009 |
sam |
make type use consistent
|
194609 |
21-Jun-2009 |
cognet |
Disable write-back until I figure out what's wrong with it on the i81342. There's no need to disable the MMU once we're done inflating the kernel.
|
194459 |
18-Jun-2009 |
thompsa |
Track the kernel mapping of a physical page by a new entry in vm_page structure. When the page is shared, the kernel mapping becomes a special type of managed page to force the cache off the page mappings. This is needed to avoid stale entries on all ARM VIVT caches, and VIPT caches with cache color issue.
Submitted by: Mark Tinguely Reviewed by: alc Tested by: Grzegorz Bernacki, thompsa
|
194379 |
17-Jun-2009 |
sam |
enable npe-a now that it works
|
194378 |
17-Jun-2009 |
sam |
Add workaround to get IXP435 NPE-A working: reseting NPE-A after NPE-C causes both to become inoperative; this apparently was done by the original IAL code as a workaround for IMEM parity errors which we've not seen so just disable the reset.
Note this problem does not occur on IXP425 boards. The linux driver does fuse-resets on each NPE but in the order NPE-A < NPE-B < NPE-C (when probing for which NPE's are present/operational); we may want to switch to a similar scheme but for now disable the resets until we see an issue.
|
194325 |
17-Jun-2009 |
sam |
correct data/instruction memory sizes for non-ixp425 parts (these are only used to bounds-check writes when loading firmware)
|
194322 |
17-Jun-2009 |
sam |
remove IAL vestige for defining the max data/instruction memory size; instead of defining them according to ixp46x add new defines so we can do this at run time
|
194321 |
17-Jun-2009 |
sam |
o correct default miibase for NPE-B and NPE-C; these values are normally taken from the hints file so this should have no effect o set the port address "just in case" o add NPE-A support to the tx done qmgr callback
|
194319 |
17-Jun-2009 |
sam |
add ixp4xx_write_feature_bits
|
194072 |
12-Jun-2009 |
marcel |
Move the memory layout definitions and logic from mvreg.h to mvwin.h so that it isn't exposured unless needed. In particular this means that it's easier to tune the memory layout based on board details. While here, remove inclusion of <machine/intr.h> from mvreg.h. This also contains exposure to SoC specifics in MI drivers, because NIRQ depends on the SoC.
|
194044 |
12-Jun-2009 |
imp |
devclass_find_free_unit(xxx, 0) is identical to -1 for most applications (including this one). Switch to it since the former is a racy interface.
|
194015 |
11-Jun-2009 |
avg |
strict kobj signatures: number of fixes for arm architecture
no functional changes should result
Reviewed by: imp, current@ Approved by: jhb (mentor)
|
193934 |
10-Jun-2009 |
imp |
Eliminate devclass_find_free_unit call here, since -1 gives the same net behavior.
|
193847 |
09-Jun-2009 |
marcel |
Pass the previously returned IRQ back to arm_get_next_irq() so that the implementation can guarantee forward progress in the event of a stuck interrupt or interrupt storm. This is especially critical for fast interrupt handlers, as they can cause a hard hang in that case. When first called, arm_get_next_irq() is passed -1.
Obtained from: Juniper Networks, Inc.
|
193846 |
09-Jun-2009 |
marcel |
Disable interrupts to allow booting on firmware (e.g. U-Boot) that has interrupts enabled and active.
Obtained from: Juniper Networks, Inc.
|
193712 |
08-Jun-2009 |
raj |
Invalidate cache in pmap_remove_all() on ARM.
When pages are removed from virtual address space by calling pmap_remove_all() CPU caches were not invalidated, which led to read corruption when another page got mapped at this same virtual address at later time (the CPU was retrieving stale contents).
Submitted by: Piotr Ziecik Obtained from: Semihalf
|
193104 |
30-May-2009 |
sam |
maintain existing style
|
193096 |
30-May-2009 |
attilio |
When user_frac in the polling subsystem is low it is going to busy the CPU for too long period than necessary. Additively, interfaces are kept polled (in the tick) even if no more packets are available. In order to avoid such situations a new generic mechanism can be implemented in proactive way, keeping track of the time spent on any packet and fragmenting the time for any tick, stopping the processing as soon as possible.
In order to implement such mechanism, the polling handler needs to change, returning the number of packets processed. While the intended logic is not part of this patch, the polling KPI is broken by this commit, adding an int return value and the new flag IFCAP_POLLING_NOCOUNT (which will signal that the return value is meaningless for the installed handler and checking should be skipped).
Bump __FreeBSD_version in order to signal such situation.
Reviewed by: emaste Sponsored by: Sandvine Incorporated
|
193066 |
29-May-2009 |
jamie |
Place hostnames and similar information fully under the prison system. The system hostname is now stored in prison0, and the global variable "hostname" has been removed, as has the hostname_mtx mutex. Jails may have their own host information, or they may inherit it from the parent/system. The proper way to read the hostname is via getcredhostname(), which will copy either the hostname associated with the passed cred, or the system hostname if you pass NULL. The system hostname can still be accessed directly (and without locking) at prison0.pr_host, but that should be avoided where possible.
The "similar information" referred to is domainname, hostid, and hostuuid, which have also become prison parameters and had their associated global variables removed.
Approved by: bz (mentor)
|
192901 |
27-May-2009 |
thompsa |
Delete the old USB stack. The new stack has settled in and has all the drivers/functionality and then some.
|
192660 |
23-May-2009 |
sam |
accumulate npe statistics and expose them through dev.npe.X.stats
|
192599 |
22-May-2009 |
des |
Expand $FreeBSD$
|
192323 |
18-May-2009 |
marcel |
Add cpu_flush_dcache() for use after non-DMA based I/O so that a 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.
|
192135 |
15-May-2009 |
imp |
Fix name for driver to assign to the SPI device.
|
192064 |
13-May-2009 |
stas |
- Set MAC address in ateinit, so it can be changed later.
|
192063 |
13-May-2009 |
stas |
- Style(9) and consistency nitpicking.
Reviewed by: imp
|
192059 |
13-May-2009 |
gonzo |
- Make SPI bus bridge be non-arch dependent by using more generic name
Reviewed by: imp
|
192028 |
12-May-2009 |
stas |
- Resurrect the debug printf message I accidentally dropped in the previous commit. - Use device_printf instead of printf. - Put all printfs in the interrupt handler under bootverbose.
|
192027 |
12-May-2009 |
stas |
- Eliminate extra register reads by using a variable to store registers contents. - Use memory barriers to preserve the order of buffer space operations. This might be needed if we'll ever use this driver on architectures where ordering is not guaranteed.
|
192018 |
12-May-2009 |
stas |
- Implement detach path. - Release memory and DMA resources on stop. - Unload the associated DMA maps after transmit is complete.
|
191961 |
10-May-2009 |
stas |
- Fix build with INVARIANTS enabled.
|
191960 |
10-May-2009 |
stas |
- Fix multicast operation that I broke in previous commit. - Do not enable multicast hash lookup if no multicast addresses were configured or if promisc mode is enabled.
|
191959 |
10-May-2009 |
stas |
- Fix promisc/multicast/broadcast parameters setting by introducing the new ate_rxfilter function to set requested parameters. Use this function on parameters change rather than reinitializing the chip.
|
191954 |
10-May-2009 |
kuriyama |
- Use "device\t" and "options \t" for consistency.
|
191873 |
07-May-2009 |
alc |
Define the kernel pmap in the same way on arm as on every other architecture.
Eliminate an unused definition.
Tested by: cognet
|
191858 |
06-May-2009 |
cognet |
Use the good hints for the NSLU, it should fix the network adapter.
PR: arm/134092 Submitted by: gavin
|
191817 |
05-May-2009 |
stas |
- Add support for PXA270 cpu.
Submitted by: Jacques Fourie <jacques.fourie@gmail.com>
|
191438 |
23-Apr-2009 |
jhb |
Reduce the number of bounce zones (and thus the number of bounce pages used in some cases): - Ignore DMA tag boundaries when allocating bounce pages. The boundaries don't determine whether or not parts of a DMA request bounce. Instead, they are just used to carve up segments. - Allow tags with sub-page alignment to share bounce pages since bounce pages are always page aligned.
Reviewed by: scottl (amd64) MFC after: 1 month
|
191410 |
23-Apr-2009 |
stas |
- Whitespace nitpicking.
|
191408 |
22-Apr-2009 |
stas |
- Add the driver for AT91RM9200 CompactFlash controller. The driver operates in the common memory mode and use polling mode to control the status of operations as I don't have any board with interrupt line routed yet. I'll add the GPIO interrupt driven mode as soon as I get one.
|
191369 |
21-Apr-2009 |
stas |
- Rename ds1672 and ds133x devices to "ds1672_rtc" and "ds133x_rtc" respectivly. This will allow one to have a kernel with both devices present and use it for multiple boards with different types of RTC sitting on a bus.
Discussed with: imp
|
191322 |
20-Apr-2009 |
stas |
- Give a warning and start the oscillator if it was not previously runned. - Rename ds1672 -> rtc to follow the other drivers. - Refactor/simplify the code a bit.
MFC after: 2 weeks
|
191309 |
20-Apr-2009 |
rwatson |
Don't conditionally define CACHE_LINE_SHIFT, as we anticipate sizing 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
|
191278 |
19-Apr-2009 |
rwatson |
Add description and cautionary note regarding CACHE_LINE_SIZE.
MFC after: 2 weeks Suggested by: alc
|
191276 |
19-Apr-2009 |
rwatson |
For each architecture, define CACHE_LINE_SHIFT and a derived 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@
|
191228 |
17-Apr-2009 |
ticso |
minor cleanup
|
191201 |
17-Apr-2009 |
jhb |
Restore bus DMA bounce pages to an offset of 0 when they are released by a tag that has BUS_DMA_KEEP_PG_OFFSET set. Otherwise the page could be reused with a non-zero offset by a tag that doesn't have BUS_DMA_KEEP_PG_OFFSET leading to data corruption.
Sleuthing by: avg Reviewed by: scottl
|
191141 |
16-Apr-2009 |
raj |
Minor style fixes and better comments.
|
191140 |
16-Apr-2009 |
raj |
Adjust Marvell Discovery (MV78xxx) support to recognize newest chip revisions, handle Z0 revision (early silicon) explicitly due to its quirks.
Obtained from: Marvell, Semihalf
|
191011 |
13-Apr-2009 |
kib |
The bus_dmamap_load_uio(9) shall use pmap of the thread recorded in the uio_td to extract pages from, instead of unconditionally use kernel pmap.
Submitted by: Jason Harmening <jason.harmening gmail com> (amd64 version) PR: amd64/133592 Reviewed by: scottl (original patch), jhb MFC after: 2 weeks
|
190845 |
08-Apr-2009 |
raj |
Minor description fix.
|
190844 |
08-Apr-2009 |
raj |
Properly handle KDB entry in fatal abort. This lets KDB_UNATTENDED work on ARM.
Submitted by: Grzegorz Bernacki gjb ! semihalf dot com
|
190740 |
05-Apr-2009 |
thompsa |
MFp4 //depot/projects/usb@159992
at91_udp.c does not exist anymore, it is now replaced by at91dci in src/sys/dev/usb/controller. Also remove the ohci_atmelarm.c because it is also included in src/sys/conf/files
Submitted by: Sylvestre Gallon
|
190708 |
05-Apr-2009 |
dchagin |
Fix KBI breakage by r190520 which affects older linux.ko binaries:
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
|
190705 |
04-Apr-2009 |
alc |
Retire VM_PROT_READ_IS_EXEC. It was intended to be a micro-optimization, but I see no benefit from it today.
VM_PROT_READ_IS_EXEC was only intended for use on processors that do not distinguish between read and execute permission. On an mmap(2) or mprotect(2), it automatically added execute permission if the caller specified permissions included read permission. The hope was that this would reduce the number of vm map entries needed to implement an address space because there would be fewer neighboring vm map entries that differed only in the presence or absence of VM_PROT_EXECUTE. (See vm/vm_mmap.c revision 1.56.)
Today, I don't see any real applications that benefit from VM_PROT_READ_IS_EXEC. In any case, vm map entries are now organized as a self-adjusting binary search tree instead of an ordered list. So, the need for coalescing vm map entries is not as great as it once was.
|
190634 |
01-Apr-2009 |
jhb |
Remove some pointless mergeinfo that is the result of doing a local 'svn cp' and having svn create empty mergeinfo for the file.
|
190633 |
01-Apr-2009 |
piso |
Implement an ipfw action to reassemble ip packets: reass.
|
190603 |
31-Mar-2009 |
cognet |
Fix the userland, RAS, version of atomic_fetchadd_32 : return the correct value, and do not store the wrong one in the supplied pointer.
Submitted by: Mark Tinguely <tinguely casselton net>
|
190602 |
31-Mar-2009 |
cognet |
Use Oxf0000000 instead of 0xff000000 to guess the physical address, relative to the virtual one. I may had a reason at some point to use the later, but can't remember which, and it can leads to issues.
Reported by: Guillaume Ballet <gballet gmail com>
|
190581 |
30-Mar-2009 |
mav |
Integrate user/mav/ata branch:
Add ch_suspend/ch_resume methods for PCI controllers and implement them for AHCI. Refactor AHCI channel initialization according to it.
Fix Port Multipliers operation. It is far from perfect yet, but works now. Tested with JMicron JMB363 AHCI + SiI 3726 PMP pair. Previous version was also tested with SiI 4726 PMP.
Hardware sponsored by: Vitsch Electronics / VEHosting.nl
|
190580 |
30-Mar-2009 |
sam |
revert unintended change
|
190579 |
30-Mar-2009 |
sam |
Hoist 802.11 encapsulation up into net80211: o call ieee80211_encap in ieee80211_start so frames passed down to drivers are already encapsulated o remove ieee80211_encap calls in drivers o fixup wi so it recreates the 802.3 head it requires from the 802.11 header contents o move fast-frame aggregation from ath to net80211 (conditional on IEEE80211_SUPPORT_SUPERG): - aggregation is now done in ieee80211_start; it is enabled when the packets/sec exceeds ieee80211_ffppsmin (net.wlan.ffppsmin) and frames are held on a staging queue according to ieee80211_ffagemax (net.wlan.ffagemax) to wait for a frame to combine with - drivers must call back to age/flush the staging queue (ath does this on tx done, at swba, and on rx according to the state of the tx queues and/or the contents of the staging queue) - remove fast-frame-related data structures from ath - add ieee80211_ff_node_init and ieee80211_ff_node_cleanup to handle per-node fast-frames state (we reuse 11n tx ampdu state) o change ieee80211_encap calling convention to include an explicit vap so frames coming through a WDS vap are recognized w/o setting M_WDS
With these changes any device able to tx/rx 3Kbyte+ frames can use fast-frames.
Reviewed by: thompsa, rpaulo, avatar, imp, sephe
|
190571 |
30-Mar-2009 |
sam |
Remove ATH_SUPPORT_TDMA and use IEEE80211_SUPPORT_TDMA instead. It doesn't make much sense to configure driver support w/o net80211. Note this means ath now depends on opt_wlan.h.
|
190100 |
19-Mar-2009 |
thompsa |
Remove the uscanner(4) driver, this follows the removal of the kernel scanner driver in Linux 2.6. uscanner was just a simple wrapper around a fifo and contained no logic, the default interface is now libusb (supported by sane).
Reviewed by: HPS
|
189926 |
17-Mar-2009 |
kib |
Add AT_EXECPATH ELF auxinfo entry type. The value's a_ptr is a pointer 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
|
189771 |
13-Mar-2009 |
dchagin |
Implement new way of branding ELF binaries by looking to a ".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)
|
189656 |
11-Mar-2009 |
sam |
switch to !legacy usb stack
|
189652 |
10-Mar-2009 |
sam |
configure flash support
|
189651 |
10-Mar-2009 |
sam |
add IXP4XX_FLASH_SIZE config knob that can be used to override the default flash size; this is necessary at the moment because we map all of flash at boot, eventually we'll do this on the fly
|
189650 |
10-Mar-2009 |
sam |
map CS0 on 2358 so flash is accessible
|
189645 |
10-Mar-2009 |
sam |
mark device capable of vlan-size frames
Obtained from: netbsd
|
189642 |
10-Mar-2009 |
sam |
turn off inclusion of FCS in rx'd frames; we don't use it anywhere and dhclient gets annoyed when it receives FCS in frames via bpf
|
189641 |
10-Mar-2009 |
sam |
o add missing bus_release_resource and bus_deactivate_resource that just operate on the resource (we have no local resources to manage); this fixes drivers that alloc/release resources in their probe method and then do it again in attach o while here add some prints to catch failures and massage style a bit
|
189633 |
10-Mar-2009 |
sam |
bring in ddb "show gpio" support from Cambria branch
|
189632 |
10-Mar-2009 |
sam |
Small cleanup of memory resource allocation from Cambria branch: o encode need for A4 bus space tag hackery according to the memory address; checking for "uart" breaks down with the GPS chip support which is also a uart but does not require the same hackery o encode the correct memory window instead of carving up all of i/o space, potentially with a larger window than a device should have; this likely should be handled in the drivers by using a proper bus alloc call but since some drivers depend on the bus support to figure this out we cannot simply mod them o add optional GPS and RS485 support (conditionally as the support isn't ready yet)
|
189630 |
10-Mar-2009 |
sam |
catch up with r189306; handle delayed activation of resources
Submitted by: jhb
|
189609 |
09-Mar-2009 |
sam |
add cfid and geom_redboot
|
189548 |
08-Mar-2009 |
sam |
o mark unexpected callbacks more clearly o unwrap some lines
|
189463 |
06-Mar-2009 |
sam |
Cleanup virtual device mapping some more: o improves understandability by replacing numerous relative address calculations with fixed addresses; everything should now match up more easily with the vm layout shown at the top of the file o move the expansion bus chip select regions to be contiguous with the expansion bus configuration area; this is not exploited right now but allows map consolidation in the future o leave a gap between the expansion bus regions and the pci config space in case we want to map more exp bus cs regions
Reviewed by: imp, thompsa
|
189461 |
06-Mar-2009 |
sam |
remove unneeded static mappings for NPE and MAC regions; these are already mapped through the IO region so never used
Reviewed by: imp, thompsa
|
189460 |
06-Mar-2009 |
sam |
enable tdma support by default; many people using these boards are using them to setup tdma p2p links
|
189459 |
06-Mar-2009 |
sam |
legacy USB is required on these platforms at the moment
|
189457 |
06-Mar-2009 |
sam |
fix legacy usb configuration
|
189456 |
06-Mar-2009 |
sam |
o simplify code in ixppcib_conf_setup o fixup debug printfs
|
189126 |
27-Feb-2009 |
imp |
Move to new usb stack that puts the front-end bus attachments with the usb stack rather than with the rest of the processor support code. Not sure that's a good idea, as we were moving away from it, but this fixes the build in the mean time so we can have that discussion.
|
189020 |
24-Feb-2009 |
thompsa |
Update paths for ehci_ixp4xx.c in the old and new stacks.
|
189019 |
24-Feb-2009 |
thompsa |
Fix path and config name for ehci_mbus.c
|
188944 |
23-Feb-2009 |
thompsa |
Change over the usb kernel options to the new stack (retaining existing naming). The old usb stack can be compiled in my prefixing the name with 'o'.
|
188744 |
18-Feb-2009 |
sam |
use mii instead of miibus so we don't drag in all phy support (we only need ukphy which is brought in by mii)
MFC after: 1 week
|
188698 |
16-Feb-2009 |
marcel |
Include Marvell EHCI HC driver for USB2.
|
188581 |
13-Feb-2009 |
cognet |
Oops. ARM_RAS_END is ARM_TP_ADDRESS + 8, not 4.
Spotted out by: Mark Tinguely <tinguely at casselton d0t net>
|
188540 |
12-Feb-2009 |
cognet |
To prevent various race conditions in the RAS code, store and restore the values in ARM_RAS_START and ARM_RAS_END at context switch time.
MFC after: 1 week
|
188539 |
12-Feb-2009 |
cognet |
Do not set thread0.td_frame to a bogus value, as it's going to overwrite the thread0 pcb, while the board-dependant code already set a good trapframe.
Reported by: Mark Tinguely <tinguely at casselton d0t net>
MFC after: 1 week
|
188505 |
11-Feb-2009 |
sam |
fix ARM_USE_SMALL_ALLOC after memory layout changes
Submitted by: cognet
|
188403 |
09-Feb-2009 |
cognet |
The bounce zone sees its page number increased if multiple dma maps use it in the same dma tag. However, it can happen multiple dma tags share the same bounce zone too, so add a per-bounce zone map counter, and check it instead of the dma tag map counter, to know if we have to alloc more pages.
Reported by: miwi Reviewed by: scottl
|
188350 |
08-Feb-2009 |
imp |
When bouncing pages, allow a new option to preserve the intra-page offset. This is needed for the ehci hardware buffer rings that assume this behavior.
This is an interim solution, and a more general one is being worked on. This solution doesn't break anything that doesn't ask for it directly. The mbuf and uio variants with this flag likely don't work and haven't been tested.
Universe builds with these changes. I don't have a huge-memory machine to test these changes with, but will be happy to work with folks that do and hps if this changes turns out not to be sufficient.
Submitted by: alfred@ from Hans Peter Selasky's original
|
188112 |
04-Feb-2009 |
cognet |
Erm... Report the buffer as being bounced even when it's the entire buffer, or we would end up invalidating the cache line for what we just copied...
Reported by: thompsa Pointy at to: cognet
MFC after: 3 days
|
188088 |
03-Feb-2009 |
sam |
Add support for the StrataFlash on 2348 boards: o add bus shim for cfi driver o add static mapping for CS0 (we map all 16M as the cfi driver doesn't support demand mapping)
Note this needs some tweaking to work for 2358 boards which is why the CAMBRIA config is not touched.
|
188085 |
03-Feb-2009 |
sam |
force atomic_cmpset_ptr types to match atomic_cmpset_32; this matches what powerpc does
Submitted by: stass MFC after: 2 weeks
|
188020 |
02-Feb-2009 |
cognet |
Move a comment to where it belongs.
Spotted out by: Christoph Mallon <christoph d0t mallon AT gmx d0t de>
|
188019 |
02-Feb-2009 |
cognet |
Remove unused variables.
Spotted out by: Christoph Mallon <christoph d0t mallon AT gmx d0t de>
|
187911 |
30-Jan-2009 |
thompsa |
Increment total_bounced busdma stat as required.
|
187606 |
23-Jan-2009 |
imp |
Move to having a caps flag. Newer versions of the AT91 family don't need the bouncing, so save a few copies in that case. Also convert 4-bit code selection to using it.
|
187603 |
22-Jan-2009 |
imp |
Don't over-commit the DMA. Use the passed in size of the transfer rather than a fixed 512... This fixes the mount root problem on at91. Prior to the SD card reorg, all data transfers were 512 bytes, so we didn't notice.
|
187602 |
22-Jan-2009 |
imp |
Migrate towards using at91_master_clock. Initialize the clocks for the serial port class when we set the devclass since it is now no-longer a compile time constant. Eliminate the pci include, as it isn't relevant or necessary.
|
187601 |
22-Jan-2009 |
imp |
Use at91_master_clock instead of AT91C_MASTER_CLOCK.
|
187600 |
22-Jan-2009 |
imp |
Remove now-redundant declaration.
|
187599 |
22-Jan-2009 |
imp |
Store at91_master_clock in a global variable as opposed to a compile time constant. This allows us to potentially change it at runtime or autodetect it early in the boot (the latter being much more likely to have a good outcome).
|
187592 |
22-Jan-2009 |
cognet |
Add a comment explaining what ARM_KERN_DIRECTMAP is all about.
Suggested by: raj
|
187548 |
21-Jan-2009 |
imp |
o The f_max is really at91_master_clock / 2, not 30MHz, so compute it as such. o Only set 4-bit caps on those boards that have 4-bit caps (this means that because we don't set wire4 yet, this forces us to always use 1-bit bus). o Don't test wire4 when setting up the bus width, since bad things will happen if we do.
# This likely won't fix the busted at91 sd card support, but these are # needful changes for correctness.
|
187476 |
20-Jan-2009 |
mav |
Implement MMCBR_IVAR_CAPS. It should better be implemented, or results can be unpredictable.
PR: arm/128987
|
187340 |
16-Jan-2009 |
cognet |
Remove a duplicate #include.
|
187192 |
13-Jan-2009 |
thompsa |
Restore the if_*var.h and if_*reg.h to their original names, they dont need to be different.
|
186947 |
09-Jan-2009 |
raj |
Check PCIE link status before accessing the bus.
Some 88F5182-based systems (Linkstation) have problems when PCIE is accessed without any peripherals present.
|
186934 |
09-Jan-2009 |
raj |
Rename Marvell ARM CPU specific file according to r186933.
|
186933 |
09-Jan-2009 |
raj |
Fix confusing naming of Marvell ARM CPU specific routines.
- The contents of 'feroceon_cpufuncs' dispatch table was really dedicated for the new Sheeva CPU (in 88F6xxx and MV-78xxx SOCs), and NOT Feroceon.
- Feroceon CPU (in 88F5xxx SOCs) appears as a regular ARM926EJ-S core and does not require dedicated routines.
This will be accompanied by a file rename commit.
|
186932 |
09-Jan-2009 |
raj |
Improve Marvell SOCs PCI/PCIE driver.
- Provide dedicated rmans for MEM and IO resources.
- Convert PCI IRQ routing info into a table (from callback approach), provide config data for alternative DB- boards.
- Fix a wrong boundary check error in pcib_mbus_init_bar()
Obtained from: Semihalf
|
186909 |
08-Jan-2009 |
raj |
Improve and extend Marvell SOCs platform code.
- Allow for setting per platform MPP/GPIO configuration in the kernel, so that we can override all settings firmware might set.
- Set decode windows for the remaining on-chip peripherals: CESA, SATA and XOR.
- Improve handling of USB controllers so that all port are available on the given SOC/platform (e.g. up to three on DB-78xxx), this includes rework of USB decode windows set-up.
- Other minor fixes and cosmetics.
Obtained from: Semihalf
|
186901 |
08-Jan-2009 |
raj |
Minor style(9) corrections.
|
186899 |
08-Jan-2009 |
raj |
Adjust Marvell SOC support for A0 chip revision.
- Clean up TCLK handling so that it's dynamically recognized depending on registers settings or chip version/revision. Update registers definitions.
- Teach SOC ident routine about A0 (initial silicon version for general audience)
Obtained from: Marvell, Semihalf
|
186539 |
28-Dec-2008 |
bz |
Include std.ixp425 for "cpu" and comment out duplicate memory map options. Using the already included std.avila is not considered to be entirely right (and the options slightly differ) but the best match we currently have. Upcoming work should fit better.
Reorder another variable to match the layout of other configs.
Reviewed by: sam, warner (earlier version with options removed)
|
186525 |
27-Dec-2008 |
bz |
In additions to the configs from r185478, which also enabled the use of modules for arm, disable them by adding MODULES_OVERRIDE="" here as well.
Reviewed by: sam MFC after: 3 weeks
|
186524 |
27-Dec-2008 |
sam |
arm is in DEFAULTS; remove dup
Submitted by: bz
|
186523 |
27-Dec-2008 |
bz |
Removed duplicate makeoptions MODULES_OVERRIDE=""
|
186461 |
23-Dec-2008 |
marcel |
Add support for the FPA floating-point format on ARM. The FPA floating-point format is identical to the VFP format, but is always stored in big-endian. Introduce _IEEE_WORD_ORDER to describe the byte-order of the FP representation.
Obtained from: Juniper Networks, Inc
|
186441 |
23-Dec-2008 |
sam |
move IXP4XX EHCI bus shim to the usb directory and rename
|
186420 |
23-Dec-2008 |
sam |
NPE cleanups needed for ancillary drivers (e.g. crypto acceleration): o check feature bits when probing NPE ethernet support o move firmware loading logic from if_npe to core npe support o allow multiple refs to core NPE driver o while here fix hw.npe.debug tunable path
|
186419 |
23-Dec-2008 |
sam |
kill NPE_PORTS_MAX, it's not used and likely will not be
|
186418 |
23-Dec-2008 |
sam |
Fill in feature control support: o add definitions for more bits, for masking out IXP465-specific bits, and %b format string o add ixp4xx_read_feature_bits to retrieve the mask of valid features (aka fuse bits) o add cpu_is_ixp42x() macro o print feature bits at boot
|
186417 |
23-Dec-2008 |
sam |
add IXP465 and generic IXP425 definition
|
186416 |
23-Dec-2008 |
sam |
o enable TT and big-endian MMIO o force a reset before ehci_init to get byte-select setup
LS, FS, and HS devices now work on the Cambria board
|
186352 |
20-Dec-2008 |
sam |
Merge support for Gateworks Cambria boards: o add support for IXP435 cpu's (e.g. 64 irq's) o add support for Cambria-specific devices: npe, led's (front panel and octal latch), ehci, mcu, ide cf o redo memory mapping for xscale/ixp4xx boards: previously memory was assumed aliased to 0x10000000 but this appears to be true only for ixp425 systems and breaks operation on others; rework so memory is assumed to start at 0 o rework NPE configuration support to use NPE id's instead of port #'s; these changes also rename the associated MAC's to follow the NPE's they are attached to o update npe firmware to latest rev (same license) and update default fw imageid's to match; in particular this adds NPE-A and crypto support o re-style NPE fw handling code and add a console msg identifying the attributes of the loaded fw o fix numerous problems with handling failures during npe setup o fix npe rx q setup; need to spin waiting for mailbox responses during early boot stages as qmgr interrupts are not delivered; this fixes the problem where all 8 traffic classifications were not tied to the rx q (and eliminates the console msg "remember to fix rx q setup") o add DELAY to npe MII wait logic for IXP435 o strip down builtin phys->virt address translation table in resource handling to just those resources that require it and add a console msg to alert people when this (kludge) table needs to be extended o purge a bunch of dead netbsd-ism's o cleanup avila led driver o add Cambria support to boot2 and rework code for better multi-board support
Notes: 1. NPE-A doesn't work and causes NPE-C to stop working; it is disabled in the hints 2. USB isn't working yet; controller communicates ok but device discovery fails 3. Cambria support must be configured separately from IXP425 boards; multi-board support is TBD
Sponsored by: Hobnob, Gateworks (board donation) Reviewed by: imp
|
186240 |
17-Dec-2008 |
marcel |
Make gpart the default partitioning class on all platforms. Both ia64 and powerpc were using gpart exclusively already so there's no change for those two.
Discussed on: arch@
|
186212 |
17-Dec-2008 |
imp |
AT_DEBUG and AT_BRK were OBE like 10 years ago, so retire them.
Reviewed by: peter
|
185640 |
05-Dec-2008 |
raj |
Avoid confusion and adjust link address range of Marvell Orion kernel so it is the same as for Kirkwood and Discovery.
|
185639 |
05-Dec-2008 |
raj |
Fix configuration of the PCI bridge. This got omitted in the initial import of this code.
|
185539 |
02-Dec-2008 |
peter |
Delete a bunch of empty mergeinfo records caused by local copies.
|
185522 |
01-Dec-2008 |
sam |
Switch to ath hal source code. Note this removes the ath_hal 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.
|
185513 |
01-Dec-2008 |
stas |
- Fix spelling error in comments.
PR: arm/128891 Submitted by: Pavel Pankov <pankov_p@mail.ru> Approved by: kib (mentor)
|
185494 |
30-Nov-2008 |
stas |
- Get rid of unused variable in KTR checks. This allows ktr(4) enabled ARM kernel to compile.
PR: arm/128897 Submitted by: Pankov Pavel <pankov_p@mail.ru> Reviewed by: raj Approved by: kib (mentor, implicit) MFC after: 1 week
|
185492 |
30-Nov-2008 |
stas |
- Get rid of extra include file, erroneously added by the previous commit. This include file was required by the first version of the patch.
Approved by: kib (mentor, implicit)
|
185491 |
30-Nov-2008 |
stas |
- Obtain main clock frequency dynamically based on CKGR_MCFR register contents. - It is possible to override the dynamic configuration by using AT91C_MAIN_CLOCK option in kernel config.
PR: arm/128961 (based on) Submitted by: Bjorn Konig <bkoenig@alpha-tierchen.de> Reviewed by: imp Approved by: kib (mentor, implicit)
|
185478 |
30-Nov-2008 |
sam |
enable use of modules but disable them by adding MODULES_OVERRIDE="" in each config file until we can sort out issues in the modules tree
Reviewed by: imp MFC after: 1 month
|
185477 |
30-Nov-2008 |
imp |
opt_at91.h isn't needed here at all anymore, since the board init routines have been split out. Remove it. This leaves only one instance of it in the tree that will be going away soon.
|
185307 |
25-Nov-2008 |
imp |
Convert BWCT and HL200 over to new board mechanism as well. The TSC4370 config file wasn't committed to this tree, so I don't know if my changes will work on it or not.
|
185305 |
25-Nov-2008 |
imp |
Start to make it easier to add AT91RM9200 based boards: o Copy kb920x_machdep.c to at91_machdep.c o Move board_init to new board_kb920x.c o rename ramsize to at91_ramsize and make it accessible to board_* files. o Delete files.kb920x. We can do this selection with the new boards. o Add a stub for the tsc4370 board init, which will be added in a future commit. o Add new 'devices' at91_board_kb920x and at91_board_tsc4370. More are needed and will be added in future commits.
Reviewed by: stass, cognet
|
185300 |
25-Nov-2008 |
imp |
Whitespace nit.
|
185288 |
25-Nov-2008 |
imp |
Save boot args.
|
185287 |
25-Nov-2008 |
imp |
more silly whitespace changes.
|
185270 |
25-Nov-2008 |
imp |
Fix various whitespace botches, mostly having them at the end of a line.
|
185267 |
25-Nov-2008 |
imp |
Replace disclaimer with the one from COPYRIGHT. Joint authors aggreed to the change.
|
185266 |
25-Nov-2008 |
imp |
Replace three magic constants with L1_S_SIZE, since that's what is really meant in those places.
|
185265 |
25-Nov-2008 |
imp |
Tweak the disclaimer section of the license to match COPYRIGHT, for better or worse. Ok'd by folks that have additional copyrights to the files in cases where there's joint authorship.
|
185169 |
22-Nov-2008 |
kib |
Add sv_flags field to struct sysentvec with intention to provide description 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
|
185162 |
22-Nov-2008 |
kmacy |
- bump __FreeBSD version to reflect added buf_ring, memory barriers, and ifnet functions
- add memory barriers to <machine/atomic.h> - update drivers to only conditionally define their own
- add lockless producer / consumer ring buffer - remove ring buffer implementation from cxgb and update its callers
- add if_transmit(struct ifnet *ifp, struct mbuf *m) to ifnet to allow drivers to efficiently manage multiple hardware queues (i.e. not serialize all packets through one ifq) - expose if_qflush to allow drivers to flush any driver managed queues
This work was supported by Bitgravity Inc. and Chelsio Inc.
|
185098 |
19-Nov-2008 |
raj |
Improve error handling in pcib_mbus_identify().
|
185092 |
19-Nov-2008 |
raj |
Improve style(9) and other cosmetics in Marvell SOCs code.
|
185091 |
19-Nov-2008 |
raj |
Fix off-by-one error in mbus_attach().
|
185090 |
19-Nov-2008 |
raj |
Enable PCI in Marvell kernel configs.
|
185089 |
19-Nov-2008 |
raj |
PCI/PCI-Express support for Marvell systems.
Obtained from: Marvell, Semihalf
|
185049 |
18-Nov-2008 |
stas |
- Fix two minor errors in at91 code.
PR: arm/128959 Submitted by: Bjorn Konig <bkoenig@alpha-tierchen.de> Approved by: kib (mentor)
|
184730 |
06-Nov-2008 |
raj |
ARM pmap style(9) and cosmetics.
|
184729 |
06-Nov-2008 |
raj |
Auto-size kernel page tables allocation on Marvell systems.
This allows mini dumps to fully work for these platforms.
Obtained from: Juniper Networks, Semihalf
|
184728 |
06-Nov-2008 |
raj |
Support kernel crash mini dumps on ARM architecture.
Obtained from: Juniper Networks, Semihalf
|
184452 |
29-Oct-2008 |
mav |
Allow card reader bridge driver to report maximum supported transfer size. sdhci supports up to 65535 blocks transfers, at91_mci - one block.
Enable multiblock operations disabled before to follow at91_mci driver limitations.
Reviewed by: imp@
|
184310 |
26-Oct-2008 |
stas |
- Add stream bus_space operations.
Reviewed by: cognet Approved by: kib (mentor, implicit) MFC after: 1 week
|
184309 |
26-Oct-2008 |
stas |
- Add a missing NULL-pointer check.
Reviewed by: cognet Approved by: kib (mentor, implicit) MFC after: 3 days
|
184205 |
23-Oct-2008 |
des |
Retire the MALLOC and FREE macros. They are an abomination unto style(9).
MFC after: 3 months
|
184193 |
23-Oct-2008 |
marcel |
Add arm/conf/DEFAULTS and populate it with: machine arm device mem options GEOM_BSD options GEOM_MBR
Remove the first two from all kernel configuration files and change geom_bsd and geom_mbr from standard to optional.
|
183958 |
16-Oct-2008 |
raj |
Eliminate flushing of L2 cache in ARM context switch routines.
With VIPT L2 cache such syncing not only is redundant, but also a performance penalty.
Pointed out by: cognet
|
183886 |
14-Oct-2008 |
sam |
correct sizeof calculation
PR: arm/128095 Submitted by: Henning Petersen MFC after: 1 week
|
183878 |
14-Oct-2008 |
raj |
Initial support of loader(8) for ARM machines running U-Boot.
This uses the common U-Boot support lib (sys/boot/uboot, already used on FreeBSD/powerpc), and assumes the underlying firmware has the modern API for stand-alone apps enabled in the config (CONFIG_API).
Only netbooting is supported at the moment.
Obtained from: Marvell, Semihalf
|
183873 |
14-Oct-2008 |
raj |
Add kernel config files for Marvell development boards.
FreeBSD 8-CURRENT was tested and run successfully on the following eval boards and devices :
* DB-88F5182, DB-88F5281 (Orion based)
* DB-88F6281, RD-88F6281 (Kirkwood based)
* DB-78100 (Discovery based)
For more detailed info on build instructions and other examples please refer to http://wiki.freebsd.org/FreeBSDMarvell
Obtained from: Marvell, Semihalf
|
183840 |
13-Oct-2008 |
raj |
Introduce basic support for Marvell families of system-on-chip ARM devices:
* Orion - 88F5181 - 88F5182 - 88F5281
* Kirkwood - 88F6281
* Discovery - MV78100
The above families of SOCs are built around CPU cores compliant with ARMv5TE instruction set architecture definition. They share a number of integrated peripherals. This commit brings support for the following basic elements:
* GPIO * Interrupt controller * L1, L2 cache * Timers, watchdog, RTC * TWSI (I2C) * UART
Other peripherals drivers will be introduced separately.
Reviewed by: imp, marcel, stass (Thanks guys!) Obtained from: Marvell, Semihalf
|
183839 |
13-Oct-2008 |
raj |
One more L2 cache synchronization call that didn't make the previous commit.
|
183838 |
13-Oct-2008 |
raj |
Provide L2 cache synchronization (write back + invalidation) on ARM.
Note the cpu_l2cache_wbinv_* routines are no-ops on systems not populated with L2 caches.
Obtained from: Marvell, Semihalf
|
183836 |
13-Oct-2008 |
raj |
Do not use cached page for temporary mapping in pmap_zero_page_generic()
The physical page which we clear is accessed via additional temp kernel mapping for the period of zeroing operation. However in systems with virtual d-cache (most ARMs) when write-allocate feature is enabled, we can have modified but unflushed content pertaining to this physical page still in the d-cache due to its primary (pre-existing) mapping. In such scenario that cached content upon flush is likely to overwrite [portions of] the physical page we want to zero here..
This is a general problem with multiple virtual mappings covering the same physical page with write-allocate and virtual d-cache: there is inherent potential for corruptions of this kind, which are not easily resolved; it is best policy that such multiple mappings be not allowed.
Obtained from: Marvell, Semihalf
|
183835 |
13-Oct-2008 |
raj |
Introduce low-level support for new Marvell core CPUs: 88FR131, 88FR571.
They are compliant with ARMv5TE and integrated on 88F6281 (Kirkwood) and MV78100 (Discovery) system-on-chip families.
Obtained from: Marvell, Semihalf
|
183670 |
07-Oct-2008 |
imp |
Use bus_get_dma_tag() instead of NULL here. Not really needed for atmel at the moment, but it is more correct.
|
183557 |
02-Oct-2008 |
bms |
Allow static hints to override kenv.
|
183527 |
01-Oct-2008 |
peter |
Collect N identical (or near identical) mkdumpheader() implementations into one, as threatened in the comment. Textdump magic can be passed in.
|
183479 |
30-Sep-2008 |
imp |
Properly implement read only. Also, the caps implementation is wrong here, so I'm backing it out.
|
183451 |
28-Sep-2008 |
imp |
Implement MMCBR_IVAR_CAPS for AT91 MCI device.
Submitted by: mav@ (well, not this one, but the base impl was)
|
183429 |
28-Sep-2008 |
imp |
White space nit.
|
183397 |
27-Sep-2008 |
ed |
Replace all calls to minor() with dev2unit().
After I removed all the unit2minor()/minor2unit() calls from the kernel yesterday, I realised calling minor() everywhere is quite confusing. Character devices now only have the ability to store a unit number, not a minor number. Remove the confusion by using dev2unit() everywhere.
This commit could also be considered as a bug fix. A lot of drivers call minor(), while they should actually be calling dev2unit(). In -CURRENT this isn't a problem, but it turns out we never had any problem reports related to that issue in the past. I suspect not many people connect more than 256 pieces of the same hardware.
Reviewed by: kib
|
183322 |
24-Sep-2008 |
kib |
Change the static struct sysentvec and struct Elf_Brandinfo initializers to the C99 style. At least, it is easier to read sysent definitions that way, and search for the actual instances of sigcode etc.
Explicitely initialize sysentvec.sv_maxssiz that was missed in most sysvecs.
No objection from: jhb MFC after: 1 month
|
182946 |
11-Sep-2008 |
cognet |
Bandaid: disable interrupts to make sure intr_enabled and the IER register are in sync. I'm not sure why it is needed, and why it wouldn't be on other arm platforms, but it prevents a lockup under heavy I/O.
|
182945 |
11-Sep-2008 |
cognet |
Remove the unused field "pc_prvspace" from the MD fields for the struct pcpu. There's not even a thing such as a "struct pcup". While I'm there, remove a comment that makes no sense for arm.
Spotted out by: Mark Tinguely
|
182934 |
11-Sep-2008 |
raj |
ARM nexus style(9) improvements.
|
182933 |
11-Sep-2008 |
raj |
ARM interrupts improvements.
- Fix nexus_setup_intr() abuse of setting up multiple IRQs in one go. Calling arm_setup_irqhandler() in loop is bogus, as there's just one cookie given from the caller and it is overwritten in each iteration so that only the last handler's cookie value prevails.
- Proper intr masking/unmasking handling: the IRQ source is masked at PIC level only after the last handler has been removed from the list.
Reviewed by: cognet, imp, sam, stass Obtained from: Grzegorz Bernacki gjb ! semihalf dot com
|
182932 |
11-Sep-2008 |
raj |
IXP425: split handling of the two QMGR interrupts so they are separately managed. Adjust ixpqmgr_{attach,detach} to comply with device_* interface.
Reviewed by: cognet, imp, sam, stass Tested by: cognet
|
182859 |
08-Sep-2008 |
imp |
Commit the no-brainer parts of my space saving kernel experiments. We don't inline the locking primitives, and only grab those parts of mii that we really need. Other space optimizations are too agressive for the generic file (removing all of usb, and loading it as kernel modules).
|
182852 |
07-Sep-2008 |
imp |
Minor cleanup of this config file: o It has been tested only on KB9202, KB9202A and KB9202B boards o Better comments about hints o option<space><tab> o Add newer SX_NOINLINE option. o Fix a few comments
|
182807 |
05-Sep-2008 |
imp |
Turn some lame pseudo-code into a less lame comment.
|
182806 |
05-Sep-2008 |
imp |
Kill bogus #if 0'd stuff for interrupts. They don't happen, and this driver will need more serious help to work with an interrupt driven path. There's many subtleties in driving the DMA engine with interrupts in many configurations. Best to not "guess" what the right way would be and mislead people.
|
182805 |
05-Sep-2008 |
imp |
Kill vestiges of the special case code we once had in place for usb memory allocation. It was change to include the range in the normal memory area, so these ifdef'd out special cases are no longer useful to keep around.
|
182803 |
05-Sep-2008 |
imp |
Kill bogus #if 1. There's no need for it since usb works these days.
|
182555 |
31-Aug-2008 |
imp |
Use a locally assigned address rather than stealing Atmel's which might cause a conflict...
|
182524 |
31-Aug-2008 |
stas |
- Fix comment. - Set U/L bit of generated ethernet address to 1 to not clash with Atmel assigned addresses.
Suggested by: yar Approved by: kib (mentor)
|
182477 |
30-Aug-2008 |
stas |
- Try to look for MAC address in all SA registers, not only in the first one. U-boot, for example, uses the second register to store MAC.[1] - Use random MAC address if none configured instead of failing.
Submitted by: Bjorn Konig <bkoenig@alpha-tierchen.de> [1] Reviewed by: imp Approved by: kib (mentor) MFC after: 1 week
|
182476 |
30-Aug-2008 |
stas |
- Style fix.
Approved by: kib (mentor) MFC after: 1 week
|
182086 |
23-Aug-2008 |
imp |
Whitespace nit.
|
181884 |
19-Aug-2008 |
imp |
Provide hooks into the GPIO lines and the ability to set/clear interrupts from them. This should be more generalized, but is sufficient for now.
Submitted by: Hans Petter Selasky
|
181883 |
19-Aug-2008 |
imp |
Use the proper clock domain for the usb host controller.
Submitted by: Hans Petter Selasky
|
181882 |
19-Aug-2008 |
imp |
Add IRQ line for usb device. I'm not 100% sure this is the right place to add this connection, since the interrupt is for a GPIO pin, but since we have no alternative at the moment...
Submitted by: Hans Petter Selasky
|
181875 |
19-Aug-2008 |
jhb |
Export 'struct pcpu' to userland w/o requiring _KERNEL. A few ports already define _KERNEL to get to this and I'm about to add hooks to libkvm to access per-CPU data.
MFC after: 1 week
|
181803 |
17-Aug-2008 |
bz |
Commit step 1 of the vimage project, (network stack) virtualization work done by Marko Zec (zec@).
This is the first in a series of commits over the course of the next few weeks.
Mark all uses of global variables to be virtualized with a V_ prefix. Use macros to map them back to their global names for now, so this is a NOP change only.
We hope to have caught at least 85-90% of what is needed so we do not invalidate a lot of outstanding patches again.
Obtained from: //depot/projects/vimage-commit2/... Reviewed by: brooks, des, ed, mav, julian, jamie, kris, rwatson, zec, ... (various people I forgot, different versions) md5 (with a bit of help) Sponsored by: NLnet Foundation, The FreeBSD Foundation X-MFC after: never V_Commit_Message_Reviewed_By: more people than the patch
|
181303 |
04-Aug-2008 |
jhb |
Add locking to the various iicbus(4) bridge drivers: - Just grab Giant in the ixp425_iic(4) driver since this driver uses a shared address/data register window pair to access the actual I2C registers. None of the other ixp425 drivers lock access to these shared address/data registers yet and that would need to be done before this could use any meaningful locking. - Add locking to the interrupt handler and 'iicbus_reset' methods of the at91_twi(4) driver. - Add locking to the pcf(4) driver. Other pcf(4) fixes include: - Don't needlessly zero the softc. - Use bus_foo rather than bus_space_foo and remove bus space tag and handle from softc. - The lpbb(4) driver just grabs Giant for now. This will be refined later when ppbus(4) is locked. - As was done with smbus earlier, move the DRIVER_MODULE() lines to match the bus driver (either iicbus or iicbb) to the bridge driver into the bridge drivers.
Tested by: sam (arm/ixp425)
|
181302 |
04-Aug-2008 |
cognet |
Do not modify td->td_intr_nesting_level, it is now done in the MI code. This fixes the cpu time being falsely reported as interrupt time.
MFC after: 3 days
|
181296 |
04-Aug-2008 |
raj |
Fix ARM nocache allocator:
- let the loop iterate every page (as intended), and not some multiplies (which led to a fake exhaustion of the ARM_NOCACHE_KVA_SIZE)
- eliminate using MIN(): it compared number of pages vs. address (ARM_TP_ADDRESS), which was bogus
Reviewed by: cognet, imp Obtained from: Piotr Ziecik kosmo ! semihalf dot com MFC after: 3 days
|
181293 |
04-Aug-2008 |
cognet |
Remove unneeded #include <stdlib.h> (?)
MFC after: 3 days
|
181253 |
03-Aug-2008 |
cognet |
Add "add pc, whatever" as a branch instruction, we use it in memcpy().
MFC after: 3 days
|
181233 |
03-Aug-2008 |
ed |
Disconnect drivers that haven't been ported to MPSAFE TTY yet.
As clearly mentioned on the mailing lists, there is a list of drivers that have not been ported to the MPSAFE TTY layer yet. Remove them from the kernel configuration files. This means people can now still use these drivers if they explicitly put them in their kernel configuration file, which is good.
People should keep in mind that after August 10, these drivers will not work anymore. Even though owners of the hardware are capable of getting these drivers working again, I will see if I can at least get them to a compilable state (if time permits).
|
181229 |
03-Aug-2008 |
imp |
Kernel config for the Linksys NSLU2. This is just a basic configuration, with no support for the LED, buttons, realtime clock or flash support.
|
181223 |
03-Aug-2008 |
cognet |
Handle ldr pc, [reg] in branch_taken().
Obtained from: NetBSD MFC after: 3 days
|
181222 |
03-Aug-2008 |
cognet |
Add blx as a branch instruction.
MFC after: 3 days
|
181219 |
02-Aug-2008 |
imp |
Minor style nit.
|
181174 |
02-Aug-2008 |
cognet |
Add yet another branch instruction.
Obtained from: NetBSD MFC after: 3 days
|
181158 |
02-Aug-2008 |
ed |
Make the at91 uart(4) driver compile again.
As of r178766 this driver didn't compile anymore, because it missed a switch()-statement. I'm getting tired of seeing this driver being broken for two months already. When I run `make universe', everything passes, except the BWCT kernel configuration file.
|
181157 |
02-Aug-2008 |
imp |
ixp425 parts aren't multicore, so remove the SMP option. They also don't support the ioapic either, so remove that option too. These were commented out, but could never be enabled, unlike the other options in the file that are commented out.
|
181156 |
02-Aug-2008 |
imp |
Conform to the options<space><tab> convention everywhere in this file. This is just a white space change, no functional change.
|
181144 |
02-Aug-2008 |
cognet |
Store the PC while context switching, for the benefits of DDB.
|
180693 |
22-Jul-2008 |
stas |
- Whitespace fixes.
Approved by: gonzo MFC after: 1 week
|
180584 |
18-Jul-2008 |
alc |
Eliminate unused global variables. (These global variables became fields of struct kva_md_info many years ago.)
|
180486 |
12-Jul-2008 |
ticso |
fix multicast hash register definition
|
180209 |
03-Jul-2008 |
peter |
Exclude .cvsignore files from $FreeBSD$ checking
|
179990 |
25-Jun-2008 |
ed |
Remove the unused major/minor numbers from iodev and memdev.
Now that st_rdev is being automatically generated by the kernel, there is no need to define static major/minor numbers for the iodev and memdev. We still need the minor numbers for the memdev, however, to distinguish between /dev/mem and /dev/kmem.
Approved by: philip (mentor)
|
179745 |
12-Jun-2008 |
kevlo |
Fix a typo: i80321_pci_probe -> i81342_pci_probe
|
179701 |
10-Jun-2008 |
kevlo |
Add the pxa_teardown_intr() bus method function to de-associate the interrupt handler
|
179700 |
10-Jun-2008 |
kevlo |
Pull all the code to deal with bus space methods into a shared set of routines.
|
179693 |
09-Jun-2008 |
wkoszek |
Since we create a DMA tag "mtag" for TX map with bus_dmamap_create(), we must synchronize such a map against "mtag" with bus_dmamap_sync(), not the tag designated for RX map.
Fix it.
Approved by: cognet
|
179664 |
09-Jun-2008 |
kevlo |
Remove sa1_cache_clean_addr
|
179663 |
09-Jun-2008 |
kevlo |
Unify arminit() and clean up
|
179595 |
06-Jun-2008 |
benno |
Support for the XScale PXA255 SoC as found on the Gumstix Basix and Connex boards. This is enough to net-boot to multiuser.
Also supported is the SMSC LAN91C111 parts used on the netCF, netDUO and netMMC add-on boards.
I'll be putting some instructions on how to boot this on the Gumstix boards online soon.
This is still fairly rough and will be refined over time but I felt it was better to get this out there where other people can help out.
|
179375 |
28-May-2008 |
imp |
Release the resources for the registers for the TWI device with SYS_RES_MEMORY to match how we allocate them...
Noticed by: Ian Lepore
|
179229 |
23-May-2008 |
alc |
The VM system no longer uses setPQL2(). Remove it and its helpers.
|
179081 |
18-May-2008 |
alc |
Retire pmap_addr_hint(). It is no longer used.
|
178893 |
09-May-2008 |
alc |
Add a stub for pmap_align_superpage() on machines that don't (yet) implement pmap-level support for superpages.
|
178766 |
04-May-2008 |
peter |
Expand kdb_alt_break a little, most commonly used with the option ALT_BREAK_TO_DEBUGGER. In addition to "Enter ~ ctrl-B" (to enter the debugger), there is now "Enter ~ ctrl-P" (force panic) and "Enter ~ ctrl-R" (request clean reboot, ala ctrl-alt-del on syscons).
We've used variations of this at work. The force panic sequence is best used with KDB_UNATTENDED for when you just want it to dump and get on with it.
The reboot request is a safer way of getting into single user than a power cycle. eg: you've hosed the ability to log in (pam, rtld, etc). It gives init the reboot signal, which causes an orderly reboot.
I've taken my best guess at what the !x86 and non-sio code changes should be.
This also makes sio release its spinlock before calling KDB/DDB.
|
178471 |
25-Apr-2008 |
jeff |
- Add an integer argument to idle to indicate how likely we are to wake from idle over the next tick. - Add a new MD routine, cpu_wake_idle() to wakeup idle threads who are suspended in cpu specific states. This function can fail and cause the scheduler to fall back to another mechanism (ipi). - Implement support for mwait in cpu_idle() on i386/amd64 machines that support it. mwait is a higher performance way to synchronize cpus as compared to hlt & ipis. - Allow selecting the idle routine by name via sysctl machdep.idle. This replaces machdep.cpu_idle_hlt. Only idle routines supported by the current machine are permitted.
Sponsored by: Nokia
|
178429 |
22-Apr-2008 |
phk |
Now that all platforms use genclock, shuffle things around slightly for better structure.
Much of this is related to <sys/clock.h>, which should really have been called <sys/calendar.h>, but unless and until we need the name, the repocopy can wait.
In general the kernel does not know about minutes, hours, days, timezones, daylight savings time, leap-years and such. All that is theoretically a matter for userland only.
Parts of kernel code does however care: badly designed filesystems store timestamps in local time and RTC chips almost universally track time in a YY-MM-DD HH:MM:SS format, and sometimes in local timezone instead of UTC. For this we have <sys/clock.h>
<sys/time.h> on the other hand, deals with time_t, timeval, timespec and so on. These know only seconds and fractions thereof.
Move inittodr() and resettodr() prototypes to <sys/time.h>. Retain the names as it is one of the few surviving PDP/VAX references.
Move startrtclock() to <machine/clock.h> on relevant platforms, it is a MD call between machdep.c/clock.c. Remove references to it elsewhere.
Remove a lot of unnecessary <sys/clock.h> includes.
Move the machdep.disable_rtc_set sysctl to subr_rtc.c where it belongs. XXX: should be kern.disable_rtc_set really, it's not MD.
|
178372 |
21-Apr-2008 |
phk |
Make genclock standard on all platforms.
Thanks to: grehan & marcel for platform support on ia64 and ppc.
|
178366 |
20-Apr-2008 |
cognet |
On the AT91, we need to write on the EOI register after we handle an interrupt. So, add a new function pointer, arm_post_filter, which defaults to NULL, and which will be used as the post_filter arg for intr_event_create(). Set it properly for the AT91, so that it boots again.
Reported by: hps
|
178354 |
20-Apr-2008 |
sam |
Multi-bss (aka vap) support for 802.11 devices.
Note this includes changes to all drivers and moves some device firmware loading to use firmware(9) and a separate module (e.g. ral). Also there no longer are separate wlan_scan* modules; this functionality is now bundled into the wlan module.
Supported by: Hobnob and Marvell Reviewed by: many Obtained from: Atheros (some bits)
|
178092 |
11-Apr-2008 |
jeff |
- Add the interrupt vector number to intr_event_create so MI code can lookup hard interrupt events by number. Ignore the irq# for soft intrs. - Add support to cpuset for binding hardware interrupts. This has the side effect of binding any ithread associated with the hard interrupt. As per restrictions imposed by MD code we can only bind interrupts to a single cpu presently. Interrupts can be 'unbound' by binding them to all cpus.
Reviewed by: jhb Sponsored by: Nokia
|
178001 |
08-Apr-2008 |
kevlo |
Remove some long-dead code
Reviewed by: cognet
|
177944 |
05-Apr-2008 |
cognet |
Remove bus_space_generic.c from the per-plarform files. Having it in the per-cpu files should be enough.
|
177943 |
05-Apr-2008 |
cognet |
Add bus_space_generic.c for the i81342 as well.
|
177940 |
05-Apr-2008 |
jhb |
Add a MI intr_event_handle() routine for the non-INTR_FILTER case. This allows all the INTR_FILTER #ifdef's to be removed from the MD interrupt code. - Rename the intr_event 'eoi', 'disable', and 'enable' hooks to 'post_filter', 'pre_ithread', and 'post_ithread' to be less x86-centric. Also, add a comment describe what the MI code expects them to do. - On amd64, i386, and powerpc this is effectively a NOP. - On arm, don't bother masking the interrupt unless the ithread is scheduled in the non-INTR_FILTER case to match what INTR_FILTER did. Also, don't bother unmasking the interrupt in the post_filter case if we never masked it. The INTR_FILTER case had been doing this by having arm_unmask_irq for the post_filter (formerly 'eoi') hook. - On ia64, stray interrupts are now masked for the non-INTR_FILTER case. They were already masked in the INTR_FILTER case. - On sparc64, use the a NULL pre_ithread hook and use intr_enable_eoi() for both the 'post_filter' and 'post_ithread' hooks to match what the non-INTR_FILTER code did. - On sun4v, retire the ithread wrapper hack by using an appropriate 'post_ithread' hook instead (it's what 'post_ithread'/'enable' was designed to do even in 5.x).
Glanced at by: piso Reviewed by: marius Requested by: marius [1], [5] Tested on: amd64, i386, arm, sparc64
|
177920 |
04-Apr-2008 |
imp |
Fix stupid typo
|
177916 |
04-Apr-2008 |
raj |
Make kernel.tramp build properly on ARM9E.
Reviewed by: imp Approved by: cognet (mentor)
|
177888 |
03-Apr-2008 |
raj |
Now really add the bus_space_generic.c file...
Reviewed by: sam Approved by: cognet (mentor)
|
177887 |
03-Apr-2008 |
raj |
Refactor certain ARM bus space methods: instead of having multiple copies of the same code introduce sys/arm/arm/bus_space_generic.c for a shared set of routines.
Reviewed by: sam Approved by: cognet (mentor)
|
177886 |
03-Apr-2008 |
raj |
Fix AVILA build.
Reviewed by: sam Approved by: cognet(mentor)
|
177883 |
03-Apr-2008 |
imp |
Take the first baby step towards unifying and cleaning up arminit(): - Pull all the code to deal with the trampoline stuff into one centeralized place and use it from everywhere. - Some minor style tidiness
Reviewed by: tinguely
|
177874 |
03-Apr-2008 |
imp |
KERNBASE + 0x00200000 is the same thing as KERNVIRTADDR on this platform, so use the latter in preference to the former. This makes the fake_preload setup be the same between kb920x_machdep.c and avila_machdep.c....
|
177873 |
03-Apr-2008 |
imp |
Remove unnecessary #define.
|
177662 |
27-Mar-2008 |
dfr |
Add kernel module support for nfslockd and krpc. Use the module system to detect (or load) kernel NLM support in rpc.lockd. Remove the '-k' option to rpc.lockd and make kernel NLM the default. A user can still force the use of the old user NLM by building a kernel without NFSLOCKD and/or removing the nfslockd.ko module.
|
177661 |
27-Mar-2008 |
jb |
When building a kernel module, define MAXCPU the same as SMP so that modules work with and without SMP.
|
177508 |
22-Mar-2008 |
cognet |
We need to prototype _start() as well, as we use it to test if we're running from flash or from RAM.
Reported by: imp MFC After: 3 days
|
177506 |
22-Mar-2008 |
sam |
add hints to specify how NPE ports are mapped to MAC+PHY; these could be commented out as they just duplicate the defaults that are built into the code
Reviewed by: imp MFC after: 1 week
|
177505 |
22-Mar-2008 |
sam |
Improve mac+phy configuration so that hints can be used to describe layouts different than the defaults: o hint.npe.0.mac="A", "B", etc. specifies the window for MAC register accesses o hint.npe.0.mii="A", "B", etc. specifies PHY registers o hint.npe.1.phy=%d specifies the PHY to map to a port
This allows devices like NSLU to be setup w/o code changes and will also be used for forthcoming support for more Avila boards.
Reviewed by: imp MFC after 1 week
|
177461 |
20-Mar-2008 |
sam |
add usb devices and more wlan stuff now that usb is functional
MFC after: 1 month
|
177456 |
20-Mar-2008 |
sam |
map device 5; the optional USB controller on Gateworks 2348 boards shows up here instead of the minipci slot at J4
Reviewed by: cognet, imp MFC after: 1 week
|
177325 |
17-Mar-2008 |
jhb |
Simplify the interrupt code a bit: - Always include the ie_disable and ie_eoi methods in 'struct intr_event' and collapse down to one intr_event_create() routine. The disable and eoi hooks simply aren't used currently in the !INTR_FILTER case. - Expand 'disab' to 'disable' in a few places. - Use function casts for arm and i386:intr_eoi_src() instead of wrapper routines since to trim one extra indirection.
Compiled on: {arm,amd64,i386,ia64,ppc,sparc64} x {FILTER, !FILTER} Tested on: {amd64,i386} x {FILTER, !FILTER}
|
177253 |
16-Mar-2008 |
rwatson |
In keeping with style(9)'s recommendations on macros, use a ';' after each SYSINIT() macro invocation. This makes a number of lightweight C parsers much happier with the FreeBSD kernel source, including cflow's prcc and lxr.
MFC after: 1 month Discussed with: imp, rink
|
177181 |
14-Mar-2008 |
jhb |
Add preliminary support for binding interrupts to CPUs: - Add a new intr_event method ie_assign_cpu() that is invoked when the MI code wishes to bind an interrupt source to an individual CPU. The MD code may reject the binding with an error. If an assign_cpu function is not provided, then the kernel assumes the platform does not support binding interrupts to CPUs and fails all requests to do so. - Bind ithreads to CPUs on their next execution loop once an interrupt event is bound to a CPU. Only shared ithreads are bound. We currently leave private ithreads for drivers using filters + ithreads in the INTR_FILTER case unbound. - A new intr_event_bind() routine is used to bind an interrupt event to a CPU. - Implement binding on amd64 and i386 by way of the existing pic_assign_cpu PIC method. - For x86, provide a 'intr_bind(IRQ, cpu)' wrapper routine that looks up an interrupt source and binds its interrupt event to the specified CPU. MI code can currently (ab)use this by doing:
intr_bind(rman_get_start(irq_res), cpu);
however, I plan to add a truly MI interface (probably a bus_bind_intr(9)) where the implementation in the x86 nexus(4) driver would end up calling intr_bind() internally.
Requested by: kmacy, gallatin, jeff Tested on: {amd64, i386} x {regular, INTR_FILTER}
|
177105 |
12-Mar-2008 |
raj |
Respect RF_SHAREABLE flag in ARM nexus_setup_intr()
Reviewed by: imp Approved by: cognet (mentor)
|
177103 |
12-Mar-2008 |
raj |
Improve ARM bus_dmamap_load_buffer() error handling.
Reviewed by: imp Approved by: cognet (mentor) Spotted by: Grzegorz Bernacki gjb AT semihalf DOT com
|
177091 |
12-Mar-2008 |
jeff |
Remove kernel support for M:N threading.
While the KSE project was quite successful in bringing threading to FreeBSD, the M:N approach taken by the kse library was never developed to its full potential. Backwards compatibility will be provided via libmap.conf for dynamically linked binaries and static binaries will be broken.
|
176886 |
06-Mar-2008 |
cognet |
MFi386: revision 1.6 date: 2004/08/21 18:50:34; author: alc; state: Exp; lines: +3 -1 Properly free the temporary sf_buf in uiomove_fromphys() if a copyin or copyout fails.
Obtained from: DragonFlyBSD
Spotted out by: Mark Tinguely MFC After: 3 days
|
176885 |
06-Mar-2008 |
cognet |
Remove unused pv_list_count from the vm_page, and pm_count from the struct pmap.
Submitted by: Mark Tinguely
|
176820 |
05-Mar-2008 |
kevlo |
Add rl(4) support
|
176759 |
03-Mar-2008 |
kevlo |
Convert to be a 2-clause bsd-only license.
Pointed out by: rwatson
|
176589 |
26-Feb-2008 |
rwatson |
Remove errant % in license comment.
MFC after: 3 days
|
176588 |
26-Feb-2008 |
rwatson |
On the ixp425, when we fail to initialize the memory rman instance, the panic message should read "memory", not "IRQ".
MFC after: 3 days
|
175983 |
05-Feb-2008 |
raj |
ARM locore cosmetics.
Approved by: cognet (mentor)
|
175982 |
05-Feb-2008 |
raj |
Improve ARM_TP_ADDRESS and RAS area.
De-hardcode usage of ARM_TP_ADDRESS and RAS local storage, and move this special purpose page to a more convenient place i.e. after the vectors high page, more towards the end of address space. Previous location (0xe000_0000) caused grief if KVA was to go beyond the default limit.
Note that ARM world rebuilding is required after this change since the location of ARM_TP_ADDRESS is shared between kernel and userland.
Submitted by: Grzegorz Bernacki (gjb AT semihalf dot com) Reviewed by: imp Approved by: cognet (mentor)
|
175840 |
31-Jan-2008 |
cognet |
Bring in the nice work from Mark Tinguely on arm pmap. The only downside is that it renames pmap_vac_me_harder() to pmap_fix_cache(). From Mark's email on -arm : pmap_get_vac_flags(), pmap_vac_me_harder(), pmap_vac_me_kpmap(), and pmap_vac_me_user() has been rewritten as pmap_fix_cache() to be more efficient in the kernel map case. I also removed the reference to the md.kro_mappings, md.krw_mappings, md.uro_mappings, and md.urw_mappings counts.
In pmap_clearbit(), we can also skip over tests and writeback/invalidations in the PVF_MOD and PVF_REF cases if those bits are not set in the pv_flag. PVF_WRITE will turn caching back on and remove the PV_MOD bit.
In pmap_nuke_pv(), the vm_page_flag_clear(pg, PG_WRITEABLE) has been moved to the pmap_fix_cache().
We can be more agressive in attempting to turn caching back on by calling pmap_fix_cache() at times that may be appropriate to turn cache on (a kernel mapping has been removed, a write has been removed or a read has been removed and we know the mapping does not have multiple write mappings to a page).
In pmap_remove_pages() the cpu_idcache_wbinv_all() is moved to happen before the page tables are NULLed because the caches are virtually indexed and virtually tagged.
In pmap_remove_all(), the pmap_remove_write(m) is added before the page tables are NULLed because the caches are virtually indexed and virtually tagged. This also removes the need for the caches fixing routine (whichever is being used pmap_vac_me_harder() or pmap_fix_cache()) to be called on any of these mappings.
In pmap_remove(), I simplified the cache cleaning process and removed extra TLB removals. Basically if more than PMAP_REMOVE_CLEAN_LIST_SIZE are removed, then just flush the entire cache.
|
175768 |
28-Jan-2008 |
ru |
Add a wrapper function that bound checks writes to the dump device.
|
175418 |
17-Jan-2008 |
jhb |
- Retire npe_defrag(), gem_defrag(), msk_defrag(), nfe_defrag(), and re_defrag() and use m_collapse() instead. - Replace a reference to ath_defrag() in a comment in if_wpi.c with m_collapse().
|
175397 |
17-Jan-2008 |
cognet |
Unbreak build by adding the missing parameter to pmap_enter().
|
175255 |
12-Jan-2008 |
cognet |
Back when I committed the arm port, I've been asked to move memcpy/memset/memcmp and friends from libkern/arm to arm/arm/support.S, and so I did, but in the process, I didn't add the appropriate copyrights. This is a major oversight from me, and I apology to the NetBSD people for it.
MFC After: 1 day
|
175120 |
07-Jan-2008 |
cognet |
Add a missing \n.
|
175067 |
03-Jan-2008 |
alc |
Add an access type parameter to pmap_enter(). It will be used to implement superpage promotion.
Correct a style error in kmem_malloc(): pmap_enter()'s last parameter is a Boolean.
|
175066 |
03-Jan-2008 |
imp |
Use correct function name in panic message
|
175064 |
03-Jan-2008 |
imp |
Modernize comment about diagnostic.
|
174938 |
27-Dec-2007 |
alc |
Add configuration knobs for the superpage reservation system. Initially, the reservation will only be enabled on amd64.
|
174898 |
25-Dec-2007 |
rwatson |
Add a new 'why' argument to kdb_enter(), and a set of constants to use for that argument. This will allow DDB to detect the broad category of reason why the debugger has been entered, which it can use for the purposes of deciding which DDB script to run.
Assign approximate why values to all current consumers of the kdb_enter() interface.
|
174880 |
23-Dec-2007 |
stas |
- Fix a typo in comments.
MFC after: 1 week Approved by: cognet
|
174781 |
19-Dec-2007 |
imp |
Actually program the interrupt controller for priorities. As we support more AT91 platforms, we'll need to move this into some platform init routine.
|
174700 |
17-Dec-2007 |
kevlo |
Use M_NOWAIT instead of M_WAITOK to cause malloc() to return NULL
Reviewed by: imp
|
174661 |
16-Dec-2007 |
stas |
- Don't return 0xffff if PHY id isn't equal 0. This allows PHYs with non-zero addresses to be used.
Approved by: cognet MFC after: 2 weeks
|
174540 |
11-Dec-2007 |
cognet |
There's no need to call pmap_vac_me_harder() in pmap_protect(), as it already happened in pmap_modify_pv().
Submitted by: Mark Tinguely <tinguely AT casselton DOT net>
|
174405 |
07-Dec-2007 |
jkoshy |
Add stubs to unbreak LINT.
|
174402 |
07-Dec-2007 |
cognet |
Fix style in previous commit.
Pointed out by: njl
|
174378 |
06-Dec-2007 |
cognet |
Erm, add a missing else, we do not want to increase the mapping counters for both kernel and userland when we create a pv for pmap_kernel.
Reported by: Mark Tinguely <tinguely AT casselton DOT net> MFC After: 3 days
|
174195 |
02-Dec-2007 |
rwatson |
Break out stack(9) from ddb(4):
- Introduce per-architecture stack_machdep.c to hold stack_save(9). - Introduce per-architecture machine/stack.h to capture any common definitions required between db_trace.c and stack_machdep.c. - Add new kernel option "options STACK"; we will build in stack(9) if it is defined, or also if "options DDB" is defined to provide compatibility with existing users of stack(9).
Add new stack_save_td(9) function, which allows the capture of a stacktrace of another thread rather than the current thread, which the existing stack_save(9) was limited to. It requires that the thread be neither swapped out nor running, which is the responsibility of the consumer to enforce.
Update stack(9) man page.
Build tested: amd64, arm, i386, ia64, powerpc, sparc64, sun4v Runtime tested: amd64 (rwatson), arm (cognet), i386 (rwatson)
|
174181 |
02-Dec-2007 |
cognet |
Fix a potential bug in pmap : We used to allocate the domains 0-14 for userland, and leave the domain 15 for the kernel. Now supersections requires the use of domain 0, so we switched the kernel domain to 0, and use 1-15 for userland. How it's done currently, the kernel domain could be allocated for a userland process. So switch back to the previous way we did things, set the first available domain to 0, and just add 1 to get the real domain number in the struct pmap.
Reported by: Mark Tinguely <tinguely AT casselton DOT net> MFC After: 3 days
|
174176 |
02-Dec-2007 |
cognet |
Move the strongarm-specific files from conf/files.arm to sa11x0/files.sa11xO.
Submitted by: Rafal Jaworowski <raj AT semihalf DOT com>
|
174172 |
02-Dec-2007 |
cognet |
Cleanup : make nexus standard, as it is mandatory anyway. Garbage-collect unused nexus_io.c and nexus_io_asm.S
Submitted by: Rafal Jaworowski <raj AT semihalf DOT com>
|
174170 |
02-Dec-2007 |
cognet |
Close a race.
The RAS implementation would set the end address, then the start address. These were used by the kernel to restart a RAS sequence if it was interrupted. When the thread switching code ran, it would check these values and adjust the PC and clear them if it did.
However, there's a small flaw in this scheme. Thread T1, sets the end address and gets preempted. Thread T2 runs and also does a RAS operation. This resets end to zero. Thread T1 now runs again and sets start and then begins the RAS sequence, but is preempted before the RAS sequence executes its last instruction. The kernel code that would ordinarily restart the RAS sequence doesn't because the PC isn't between start and 0, so the PC isn't set to the start of the sequence. So when T1 is resumed again, it is at the wrong location for RAS to produce the correct results. This causes the wrong results for the atomic sequence.
The window for the first race is 3 instructions. The window for the second race is 5-10 instructions depending on the atomic operation. This makes this failure fairly rare and hard to reproduce.
Mutexs are implemented in libthr using atomic operations. When the above race would occur, a lock could get stuck locked, causing many downstream problems, as you might expect.
Also, make sure to reset the start and end address when doing a syscall, or a malicious process could set them before doing a syscall.
Reviewed by: imp, ups (thanks guys) Pointy hat to: cognet MFC After: 3 days
|
174058 |
28-Nov-2007 |
cognet |
Fixes for ARM9/ARM10 : Call uma_sel_align() there at well. Set CPU_CONTROL_VECRELOC if we're using the high vectors page.
Submitted by: Rafal Jaworowski <raj AT semihalf DOT com> MFC After: 1 week
|
174051 |
28-Nov-2007 |
cognet |
Correct the logic : we can just invalidate the cache lines, and not write-back them, only if PREWRITE is not set, and if the buffer is cache-line aligned.
MFC After: 1 week
|
173999 |
27-Nov-2007 |
cognet |
In atomic_fetchadd_32(), do not blindly increase the value of %3. It should just contain the value we want to add, as if we're interrupted between the add and the str, we will restart from the beginning. Just use a register we can scratch instead.
MFC After: 1 week
|
173988 |
27-Nov-2007 |
jhb |
Remove the 'needbounce' variable from the _bus_dmamap_load_buffer() routine. It is not needed as the existing tests for segment coalescing already handle bounced addresses and it prevents legal segment coalescing in certain edge cases.
MFC after: 1 week Reviewed by: scottl
|
173708 |
17-Nov-2007 |
alc |
Prevent the leakage of wired pages in the following circumstances: First, a file is mmap(2)ed and then mlock(2)ed. Later, it is truncated. Under "normal" circumstances, i.e., when the file is not mlock(2)ed, the pages beyond the EOF are unmapped and freed. However, when the file is mlock(2)ed, the pages beyond the EOF are unmapped but not freed because they have a non-zero wire count. This can be a mistake. Specifically, it is a mistake if the sole reason why the pages are wired is because of wired, managed mappings. Previously, unmapping the pages destroys these wired, managed mappings, but does not reduce the pages' wire count. Consequently, when the file is unmapped, the pages are not unwired because the wired mapping has been destroyed. Moreover, when the vm object is finally destroyed, the pages are leaked because they are still wired. The fix is to reduce the pages' wired count by the number of wired, managed mappings destroyed. To do this, I introduce a new pmap function pmap_page_wired_mappings() that returns the number of managed mappings to the given physical page that are wired, and I use this function in vm_object_page_remove().
Reviewed by: tegge MFC after: 6 weeks
|
173696 |
17-Nov-2007 |
cognet |
Add a kernel config file for the Hot-e HL200 (AT91RM92 based). Many thanks to John Nicholls from Thinklinx for sending sample hardware.
|
173615 |
14-Nov-2007 |
marcel |
o Rename cpu_thread_setup() to cpu_thread_alloc() to better communicate that it relates to (is called by) thread_alloc() o Add cpu_thread_free() which is called from thread_free() to counter-act cpu_thread_alloc().
i386: Have cpu_thread_free() call cpu_thread_clean() to preserve behaviour. ia64: Have cpu_thread_free() call mtx_destroy() for the mutex initialized in cpu_thread_alloc().
PR: ia64/118024
|
173600 |
14-Nov-2007 |
julian |
generally we are interested in what thread did something as opposed to what process. Since threads by default have teh name of the process unless over-written with more useful information, just print the thread name instead.
|
173442 |
08-Nov-2007 |
cognet |
Add entries for the L2 cache-related functions for armv5.
Spotted out by: Rafal Jaworowski
|
173361 |
05-Nov-2007 |
kib |
Fix for the panic("vm_thread_new: kstack allocation failed") and silent NULL pointer dereference in the i386 and sparc64 pmap_pinit() when the kmem_alloc_nofault() failed to allocate address space. Both functions now return error instead of panicing or dereferencing NULL.
As consequence, vmspace_exec() and vmspace_unshare() returns the errno int. struct vmspace arg was added to vm_forkproc() to avoid dealing with failed allocation when most of the fork1() job is already done.
The kernel stack for the thread is now set up in the thread_alloc(), that itself may return NULL. Also, allocation of the first process thread is performed in the fork1() to properly deal with stack allocation failure. proc_linkup() is separated into proc_linkup() called from fork1(), and proc_linkup0(), that is used to set up the kernel process (was known as swapper).
In collaboration with: Peter Holm Reviewed by: jhb
|
173336 |
04-Nov-2007 |
cognet |
Remove a staled comment, NPE-C should work fine.
Reviewed by: sam
|
173249 |
01-Nov-2007 |
kevlo |
__CPU_XSCALE_PXA2XX -> CPU_XSCALE_PXA2X0
|
173215 |
31-Oct-2007 |
kevlo |
Don't define get_cachetype() for CPU_ARM9E unless it's going to be used.
|
173155 |
29-Oct-2007 |
imp |
kill commented out line of code.
|
172993 |
25-Oct-2007 |
cognet |
Add an option to be able to override the value of the AT91 master clock frequency. It'd be better to be able to calculate it at runtime, but we need the information very early, to setup the uart.
|
172992 |
25-Oct-2007 |
cognet |
Move some KB920x-specific options into the KB920x file.
|
172989 |
25-Oct-2007 |
cognet |
Oooops, get the end of the memory right.
|
172945 |
24-Oct-2007 |
cognet |
KERNBASE should really be KERNVIRTADDR there too.
MFC after: 1 week
|
172944 |
24-Oct-2007 |
cognet |
In ate_get_mac(), try to get the mac address in the right order, at least in the same order as it's set in ate_set_mac. I remember a discussion about this on -arm, but apparently nothing was done. Warner, is this wrong ?
X-MFC After: proper review
|
172943 |
24-Oct-2007 |
cognet |
Handle the case where PHYSADDR != KERNPHYSADDR (ie we do not load the kernel at the beginning of the RAM).
MFC After: 1 week
|
172942 |
24-Oct-2007 |
cognet |
Correct a comment, this was not true anymore.
|
172739 |
18-Oct-2007 |
imp |
correct guard variable names.
|
172738 |
18-Oct-2007 |
imp |
Merge support from p4 (from NetBSD) for arm9e and arm10, arm11 cores. Not yet connected to the build, but reduces diffs to p4 repo.
Obtained from: NetBSD
|
172734 |
18-Oct-2007 |
imp |
Merge definitions for ARM9E, ARM10 and ARM11 processors from p4 (which got them from NetBSD).
|
172713 |
16-Oct-2007 |
cognet |
Use the direct mapping, if available, for pmap_zero_page_xscale() as well.
|
172614 |
13-Oct-2007 |
cognet |
Do not use __XSCALE__ to detect if pld/strd/ldrd is available, use _ARM_ARCH_5E instead.
MFC After: 3 days
|
172613 |
13-Oct-2007 |
cognet |
Define _ARM_ARCH_5E too, so that we know if pld/strd/ldrd are available.
MFC After: 3 days
|
172568 |
12-Oct-2007 |
kevlo |
Spelling fix for interupt -> interrupt
|
172394 |
30-Sep-2007 |
marius |
Make the PCI code aware of PCI domains (aka PCI segments) so we can support machines having multiple independently numbered PCI domains and don't support reenumeration without ambiguity amongst the devices as seen by the OS and represented by PCI location strings. This includes introducing a function pci_find_dbsf(9) which works like pci_find_bsf(9) but additionally takes a domain number argument and limiting pci_find_bsf(9) to only search devices in domain 0 (the only domain in single-domain systems). Bge(4) and ofw_pcibus(4) are changed to use pci_find_dbsf(9) instead of pci_find_bsf(9) in order to no longer report false positives when searching for siblings and dupe devices in the same domain respectively. Along with this change the sole host-PCI bridge driver converted to actually make use of PCI domain support is uninorth(4), the others continue to use domain 0 only for now and need to be converted as appropriate later on. Note that this means that the format of the location strings as used by pciconf(8) has been changed and that consumers of <sys/pciio.h> potentially need to be recompiled.
Suggested by: jhb Reviewed by: grehan, jhb, marcel Approved by: re (kensmith), jhb (PCI maintainer hat)
|
172358 |
27-Sep-2007 |
cognet |
Ok I hope I got it right this time. After discussion with Sam, switch back to use firmware(9) instead of having the firmware in hex format. Put the binary firmware uuencoded into sys/contrib/dev/npe, and slap a LICENSE file, as found on the Intel website.
Approved by: re (blanket), mux (mentor) MFC After: 1 week
|
172357 |
27-Sep-2007 |
cognet |
Now that Intel changed the license for the NPE firmware, import it directly hexed into our tree, instead of requiring the user to download it.
Approved by: re (blanket) MFC after: 1 week
|
172356 |
27-Sep-2007 |
cognet |
Fix a comment to reflect the truth.
Spotted out by: Marius Nuennerich <marius.nuennerich AT gmx D0T de> Approved by: re (blanket)
|
172317 |
25-Sep-2007 |
alc |
Change the management of cached pages (PQ_CACHE) in two fundamental ways:
(1) Cached pages are no longer kept in the object's resident page splay tree and memq. Instead, they are kept in a separate per-object splay tree of cached pages. However, access to this new per-object splay tree is synchronized by the _free_ page queues lock, not to be confused with the heavily contended page queues lock. Consequently, a cached page can be reclaimed by vm_page_alloc(9) without acquiring the object's lock or the page queues lock.
This solves a problem independently reported by tegge@ and Isilon. Specifically, they observed the page daemon consuming a great deal of CPU time because of pages bouncing back and forth between the cache queue (PQ_CACHE) and the inactive queue (PQ_INACTIVE). The source of this problem turned out to be a deadlock avoidance strategy employed when selecting a cached page to reclaim in vm_page_select_cache(). However, the root cause was really that reclaiming a cached page required the acquisition of an object lock while the page queues lock was already held. Thus, this change addresses the problem at its root, by eliminating the need to acquire the object's lock.
Moreover, keeping cached pages in the object's primary splay tree and memq was, in effect, optimizing for the uncommon case. Cached pages are reclaimed far, far more often than they are reactivated. Instead, this change makes reclamation cheaper, especially in terms of synchronization overhead, and reactivation more expensive, because reactivated pages will have to be reentered into the object's primary splay tree and memq.
(2) Cached pages are now stored alongside free pages in the physical memory allocator's buddy queues, increasing the likelihood that large allocations of contiguous physical memory (i.e., superpages) will succeed.
Finally, as a result of this change long-standing restrictions on when and where a cached page can be reclaimed and returned by vm_page_alloc(9) are eliminated. Specifically, calls to vm_page_alloc(9) specifying VM_ALLOC_INTERRUPT can now reclaim and return a formerly cached page. Consequently, a call to malloc(9) specifying M_NOWAIT is less likely to fail.
Discussed with: many over the course of the summer, including jeff@, Justin Husted @ Isilon, peter@, tegge@ Tested by: an earlier version by kris@ Approved by: re (kensmith)
|
172300 |
22-Sep-2007 |
cognet |
Make sure we do not call _arm_bzero() or _arm_memcpy() if the size is not at least the minimum asked by the driver.
Approved by: re (blanket)
|
172299 |
22-Sep-2007 |
cognet |
Add various macros for the ADMA unit.
Approved by: re (blanket)
|
172297 |
22-Sep-2007 |
cognet |
Add a driver for the 7seg found on the CRB board, largely based on the IQ31244 version.
Approved by: re (blanket)
|
172296 |
22-Sep-2007 |
cognet |
Twist the RAS logic a bit to avoid branching.
MFC After: 1 week Approved by: re (blanket)
|
172245 |
19-Sep-2007 |
cognet |
Remove dead code.
Approved by: re (blanket) Beer from: jadawin
|
172196 |
16-Sep-2007 |
imp |
Kill bogus printf debugs.
Approved by: re@ (blanket)
|
172195 |
16-Sep-2007 |
imp |
Kill overly verbose messages about setting bus width.
Approved by: re@ (blanket)
|
172189 |
15-Sep-2007 |
alc |
It has been observed on the mailing lists that the different categories of pages don't sum to anywhere near the total number of pages on amd64. This is for the most part because uma_small_alloc() pages have never been counted as wired pages, like their kmem_malloc() brethren. They should be. This changes fixes that.
It is no longer necessary for the page queues lock to be held to free pages allocated by uma_small_alloc(). I removed the acquisition and release of the page queues lock from uma_small_free() on amd64 and ia64 weeks ago. This patch updates the other architectures that have uma_small_alloc() and uma_small_free().
Approved by: re (kensmith)
|
172152 |
12-Sep-2007 |
cognet |
It's probably time I learn C. Fix a few while (!uart_getreg() & SR1_TNF) when while (!(uart_getreg() & SR18TNF)) was really meant. This driver should die anyway, it's awful, and uart_ns8250 should be fine for the StrongArm 1110. I'll kill it later.
Submitted by: Mikhael Skvorts Approved by: re (blanket)
|
172104 |
09-Sep-2007 |
cognet |
In __bswap16_var(), make sure the 16 upper bits are cleared; while optimizing, gcc4 doesn't always do so.
Reported by: Nathan Whitehorn Approved by: re (blanket)
|
172046 |
04-Sep-2007 |
cognet |
There's no need to re-read PCIR_COMMAND once we set it.
Approved by: re (blanket)
|
171890 |
18-Aug-2007 |
cognet |
Just wbinv if both PREREAD and PREWRITE are set. In PREREAD, just invalidate the cache lines, and do not write back them, if the buffer is properly aligned.
Approved by: re (blanket)
|
171788 |
08-Aug-2007 |
cognet |
Ooops, we need to define TD_LOCK here.
Approved by: re (blanket) Pointy hat to: cognet
|
171781 |
07-Aug-2007 |
cognet |
Add cast to silent gcc warnings.
Approved by: re (blanket)
|
171780 |
07-Aug-2007 |
cognet |
Use the third argument of cpu_switch(), as done for i386/amd63, as it is required for ULE.
Approved by: re (blanket)
|
171674 |
31-Jul-2007 |
imp |
Add in all the USB devices and all the wireless goo. The KB9202 has only USB 1.1 speeds available, but this shouldn't hurt. Now that we have working usb support for this board, this is a natural followup.
Approved by: re (kensmith)
|
171673 |
31-Jul-2007 |
imp |
Make USB work on the KB9202{,A,B} boards. This has been in p4 for about 7 months. You must have JP6 in the 1-2 position to supply power to the USB devices, but I've used uftdi, uplcom and umass successfully. If you have it in 2-3, then nothing will show up. Also, if you have the FQPA packaging for the AT91RM9200 (like the KN9202 boards have), you will get the following message
uhub0: device problem (IOERROR), disabling port 2
due to a hardware erratum. It is safe to ignore as it is about pins that aren't brought out on the FQPA package and aren't proeprly terminated either. Alas, there's no register to read to tell the FQPA from the BGA versions.
Submitted by: Daan Vreeken Approved by: re (kensmith)
|
171672 |
31-Jul-2007 |
cognet |
MFppc: revision 1.66 date: 2007/07/31 06:23:26; author: marcel; state: Exp; lines: +2 -2 Fix backward compatibility of the "old" (i.e. FreeBSD6) lseek syscall. It was broken when a new lseek syscall was introduced. The problem is that we need to swap the 32-bit td_retval values for the __syscall indirect syscall when the actual syscall has a 32-bit return value. Hence, we need to exclude lseek(2). And this means the "old" lseek(2) as well -- which we didn't.
Based on a patch from: grehan@
Approved by: re (blanket)
|
171631 |
27-Jul-2007 |
cognet |
CRB config file.
Approved by: re (blanket)
|
171630 |
27-Jul-2007 |
cognet |
XScale core 3 definitions.
Approved by: re (blanket)
|
171629 |
27-Jul-2007 |
cognet |
Cleanup
Approved by: re (blanket)
|
171628 |
27-Jul-2007 |
cognet |
Do not define NIRQ, it is already defined in include/intr.h
Approved by: re (blanket)
|
171627 |
27-Jul-2007 |
cognet |
Share the timer and watchdog drivers with the i81342. It's the same, except it uses different registers.
Approved by: re (blanket)
|
171626 |
27-Jul-2007 |
cognet |
Add initial IOP342 support. Thanks to Intel for providing sample hardware.
Approved by: re (blanket)
|
171625 |
27-Jul-2007 |
cognet |
Say if the L2 cache is enabled or disabled as well.
Approved by: re (blanket)
|
171623 |
27-Jul-2007 |
cognet |
Handle supersections and L2 cache.
Approved by: re (blanket)
|
171622 |
27-Jul-2007 |
cognet |
Use supersection instead of standard sections to map the whole memory when available.
Approved by: re (blanket)
|
171621 |
27-Jul-2007 |
cognet |
Fix the cache mode description.
Approved by: re (blanket)
|
171620 |
27-Jul-2007 |
cognet |
Properly handle supersections. Make sure we cache entries in the L2 cache.
Approved by: re (blanket)
|
171619 |
27-Jul-2007 |
cognet |
Bring in two bandaids to get the elf trampoline to work again, until I find a proper solution. - Add a dummy entry point which just calls the C entry points, and try to make sure it's the first code in the binary. - Copy a bit more than func_end to try to copy the whole load_kernel() function. gcc4 puts code behind the func_end symbol.
Approved by: re (blanket)
|
171618 |
27-Jul-2007 |
cognet |
Add a new set of functions to handle L2 cache. Make them no-op for every CPU except Xscale core 3.
Approved by: re (blanket)
|
171617 |
27-Jul-2007 |
cognet |
Import xscale core 3 cache management functions.
Approved by: re (blanket)
|
171616 |
27-Jul-2007 |
cognet |
INTR_FILTER bits for arm
Approved by: re (blanket)
|
170827 |
16-Jun-2007 |
cognet |
The iop34x has 128 interrupts.
|
170582 |
11-Jun-2007 |
cognet |
Introduce pmap_kenter_supersection(), which maps 16MB super-sections into the kernel pmap. Document a bit more the behavior of the xscale core 3.
|
170574 |
11-Jun-2007 |
imp |
Fix a spacing nit.
|
170502 |
10-Jun-2007 |
cognet |
Initialize the dma tag's bounce_zone to NULL if we didn't allocate it.
|
170473 |
09-Jun-2007 |
marcel |
Add kdb_cpu_sync_icache(), intended to synchronize instruction caches with data caches after writing to memory. This typically is required to make breakpoints work on ia64 and powerpc. For those architectures the function is implemented.
|
170406 |
07-Jun-2007 |
cognet |
There's no nobounce_dmamap on arm.
|
170388 |
06-Jun-2007 |
jeff |
- PCPU_ADD is no longer spelled with LAZY_ in the middle.
Submitted by: attilio
|
170305 |
04-Jun-2007 |
jeff |
- Change comments and asserts to reflect the removal of the global scheduler lock.
Tested by: kris, current@ Tested on: i386, amd64, ULE, 4BSD, libthr, libkse, PREEMPTION, etc. Discussed with: kris, attilio, kmacy, jhb, julian, bde (small parts each)
|
170291 |
04-Jun-2007 |
attilio |
Rework the PCPU_* (MD) interface: - Rename PCPU_LAZY_INC into PCPU_INC - Add the PCPU_ADD interface which just does an add on the pcpu member given a specific value.
Note that for most architectures PCPU_INC and PCPU_ADD are not safe. This is a point that needs some discussions/work in the next days.
Reviewed by: alc, bde Approved by: jeff (mentor)
|
170286 |
04-Jun-2007 |
marcel |
Revert to the previous version where the return value of uart_getenv() is being ignored. It's optional and the lack of environment variable is not an error condition.
|
170277 |
04-Jun-2007 |
alc |
Add the machine-specific definitions for configuring the new physical memory allocator.
Approved by: re
|
170170 |
31-May-2007 |
attilio |
Revert VMCNT_* operations introduction. Probabilly, a general approach is not the better solution here, so we should solve the sched_lock protection problems separately.
Requested by: alc Approved by: jeff (mentor)
|
170162 |
31-May-2007 |
piso |
In some particular cases (like in pccard and pccbb), the real device handler is wrapped in a couple of functions - a filter wrapper and an ithread wrapper. In this case (and just in this case), the filter wrapper could ask the system to schedule the ithread and mask the interrupt source if the wrapped handler is composed of just an ithread handler: modify the "old" interrupt code to make it support this situation, while the "new" interrupt code is already ok.
Discussed with: jhb
|
170109 |
29-May-2007 |
jhay |
Remove the hardcoded IXP425_UART?_VBASE values in the uart_ixp425_probe() and uart_cpu_getdev(). Change uart_cpu_getdev() to use hints to find the console.
Reviewed by: marcel
|
170086 |
29-May-2007 |
yongari |
Honor maxsegsz of less than a page size in a DMA tag. Previously it used to return PAGE_SIZE without respect to restrictions of a DMA tag. This affected all of the busdma load functions that use _bus_dmamap_loader_buffer() as their back-end.
Reviewed by: scottl
|
170072 |
28-May-2007 |
alc |
Eliminate some unused definitions that came from NetBSD.
|
170069 |
28-May-2007 |
jhay |
We do not need to get the irq out of ivars in ixp425_setup_intr(). By this time they have already been set. In fact trying to set it here too breaks irqs for pci devices.
|
170068 |
28-May-2007 |
jhay |
Optimize a bit more, both the Avila and Pronghorn Metro boards work with GPIO_TYPE_EDG_RISING.
Reviewed by: sam
|
169954 |
24-May-2007 |
sam |
Search for a proper ucode image to use by incrementing the minor release number up to the max. This should eliminate the need to tweak the default imageid define for later releases that are found on the Intel web site.
MFC after: 1 month
|
169953 |
24-May-2007 |
sam |
o add hints for avila boards; brings back i2c devices lost when iicbus started using hints instead of wired down device enumeration o add usb commented out; will enable when support works
MFC after: 1 month
|
169952 |
24-May-2007 |
sam |
Move to hints for configuring numerous devices so we can eliminate various quirky code: uarts, led, cf/ide, ixpqmgr, npe are now specified with hints.
May want to put some of these devices back in the code and just use hints to override/specify configuration.
MFC after: 1 month
|
169950 |
24-May-2007 |
sam |
Don't muck with the internal state of a uart during probe, all we should setup is the class. This corrects an issue where enabling uart1 on the avila board caused uart0 to stop working during boot (no msgs generated by rc scripts were displayed).
Reviewed by: imp MFC after: 3 weeks
|
169947 |
24-May-2007 |
sam |
Fix interrupt setup; rev 1.3 switched the irq to GPIO_TYPE_ACT_LOW but this does not work on avila boards; special case them to use GPIO_TYPE_EDG_RISING.
MFC after: 3 weeks Submitted by: jhay
|
169900 |
23-May-2007 |
cognet |
Remove duplicate includes.
Submitted by: Cyril Nguyen Huu <cyril ci0 org>
|
169846 |
22-May-2007 |
kan |
Allow FreeBSD's native ELF image activators to execute shared libraries the same way it was enabled for Linux binares in linuxulator.
This allows binaries built with -pie. Many ports auto-detect -fPIE support in GCC 4.2 and build binaries FreeBSD was unable to run.
|
169768 |
19-May-2007 |
cognet |
Use __mcount() instead of _mcount() to reduce diffs with NetBSD.
|
169764 |
19-May-2007 |
cognet |
Constify to please gcc 4.2.
|
169763 |
19-May-2007 |
cognet |
Do not try to inline pmap_kremove(), as it's exported.
|
169761 |
19-May-2007 |
cognet |
Do not try to inline bus_dmamap_sync_buf(), gcc 4.2 doesn't want to do so because it uses alloca(). Initialize lastaddr in bus_dmamap_load_uio().
|
169756 |
19-May-2007 |
cognet |
Switch the kernel's pmap domain from 15 to 0. This should be a no-op, and this is needed for xscale core 3 supersections support, as they are always part of the domain 0
|
169667 |
18-May-2007 |
jeff |
- define and use VMCNT_{GET,SET,ADD,SUB,PTR} macros for manipulating vmcnts. This can be used to abstract away pcpu details but also changes to use atomics for all counters now. This means sched lock is no longer responsible for protecting counts in the switch routines.
Contributed by: Attilio Rao <attilio@FreeBSD.org>
|
169291 |
05-May-2007 |
alc |
Define every architecture as either VM_PHYSSEG_DENSE or VM_PHYSSEG_SPARSE depending on whether the physical address space is densely or sparsely populated with memory. The effect of this definition is to determine which of two implementations of vm_page_array and PHYS_TO_VM_PAGE() is used. The legacy implementation is obtained by defining VM_PHYSSEG_DENSE, and a new implementation that trades off time for space is obtained by defining VM_PHYSSEG_SPARSE. For now, all architectures except for ia64 and sparc64 define VM_PHYSSEG_DENSE. Defining VM_PHYSSEG_SPARSE on ia64 allows the entirety of my Itanium 2's memory to be used. Previously, only the first 1 GB could be used. Defining VM_PHYSSEG_SPARSE on sparc64 allows USIIIi-based systems to boot without crashing.
This change is a combination of Nathan Whitehorn's patch and my own work in perforce.
Discussed with: kmacy, marius, Nathan Whitehorn PR: 112194
|
169230 |
03-May-2007 |
kevlo |
Remove sa1_cache_clean_addr. It isn't needed.
|
168281 |
02-Apr-2007 |
marcel |
Don't expose the uart_ops structure directly, but instead have it obtained through the uart_class structure. This allows us to declare the uart_class structure as weak and as such allows us to reference it even when it's not compiled-in. It also allows is to get the uart_ops structure by name, which makes it possible to implement the dt tag handling in uart_getenv(). The side-effect of all this is that we're using the uart_class structure more consistently which means that we now also have access to the size of the bus space block needed by the hardware when we map the bus space, eliminating any hardcoding.
|
167950 |
27-Mar-2007 |
n_hibma |
Revisit the watchdogs: Resetting the error to EINVAL after failing to set the watchdog might hide the succesful arming of an earlier one. Accept that on failing to arm any watchdog (because of non-supported timeouts) EOPNOTSUPP is returned instead of the more appropriate EINVAL.
MFC after: 3 days
|
167935 |
27-Mar-2007 |
kevlo |
Don't map mini-data cache page since ARM920T doesn't have it.
|
167858 |
23-Mar-2007 |
imp |
Default to booting off the SD card. It is more useful, and a full FreeBSD/arm installworld install is only 170MB. The smallest SD card I could find at the store today was 512MB (and it was only $10 after rebate), with a 2GB card for as low as $25.00...
Now that the IIC stuff has been sorted out, include that as well. Include hints for the icee 16kb 16-bit i2c device. It should include info about the temperature sensor as well, but that driver isn't quite ready.
Add bpf for dhclient happiness.
MFC After: 1 week
|
167852 |
23-Mar-2007 |
imp |
MFp4: A bunch of patches from myself and Tisco to improve the robustness of IIC transactions when parts aren't present. This also removes a bunch of debug. This also moves this driver to 7-1 addressing rather than 6-0 addressing, which is more inline with all the other iic drivers in the tree. I've tested this for about a million years on the systems at work.
|
167761 |
21-Mar-2007 |
kevlo |
Fix a comment
|
167752 |
21-Mar-2007 |
kevlo |
Remove __P
|
167570 |
14-Mar-2007 |
jhay |
Map the second CS of the compact flash too. This allow us access to the alternate status and the control registers. Remove the local version of ata_reset.
Add support for the ADI Pronghorn Metro boards. They use CS3 and CS4 instead of Avila's CS1 and CS2.
|
167565 |
14-Mar-2007 |
jhay |
Map the second CS of the compact flash too. This allow us access to the alternate status and the control registers. Remove the local version of ata_reset.
Add support for the ADI Pronghorn Metro boards. They use CS3 and CS4 instead of Avila's CS1 and CS2.
OKed by: sam, cognet
|
167429 |
11-Mar-2007 |
alc |
Push down the implementation of PCPU_LAZY_INC() into the machine-dependent header file. Reimplement PCPU_LAZY_INC() on amd64 and i386 making it atomic with respect to interrupts.
Reviewed by: bde, jhb
|
167263 |
06-Mar-2007 |
piso |
Wrap ixppcib_setup_intr() at 80.
|
167262 |
06-Mar-2007 |
piso |
Wrap a BUS_SETUP_INTR() line at 80.
|
167261 |
06-Mar-2007 |
piso |
o substitute INTR_FAST with FILTER in a panic message. o wrap a BUS_SETUP_INTR() line at 80.
|
167255 |
06-Mar-2007 |
kevlo |
Reverse this change. malloc() with M_WAITOK never fails.
Noted by: cognet, brian and thompsa
|
167219 |
05-Mar-2007 |
kevlo |
Check for malloc return value
|
167135 |
01-Mar-2007 |
piso |
Update bus_setup_intr().
Pointed by: Krassimir Slavchev
|
167082 |
27-Feb-2007 |
jhb |
Use tsleep() rather than msleep() with a NULL mtx.
|
167069 |
27-Feb-2007 |
piso |
Correct return code (int) for at91_rtc_intr() prototype.
Approved by: cognet
|
167009 |
26-Feb-2007 |
kevlo |
Remove unused header file <machine/katelib.h>
|
167004 |
26-Feb-2007 |
cognet |
Define FLASHADDR and LOADERRAMADDR for the Avila, so that we can boot a kernel from the onboard flash.
|
167003 |
26-Feb-2007 |
cognet |
Erm we can't change the value of arm_memcpy if we're running from flash. Instead, make memcpy() check if we're running from flash, and avoid using arm_memcpy if we're doing so.
|
166996 |
25-Feb-2007 |
cognet |
Update for the new prototype of bus_setup_intr().
|
166974 |
25-Feb-2007 |
piso |
Fix attach of at91_pio() after bus_setup_intr() modification.
Reported and tested by: Krassimir Slavchev
|
166901 |
23-Feb-2007 |
piso |
o break newbus api: add a new argument of type driver_filter_t to bus_setup_intr()
o add an int return code to all fast handlers
o retire INTR_FAST/IH_FAST
For more info: http://docs.freebsd.org/cgi/getmsg.cgi?fetch=465712+0+current/freebsd-current
Reviewed by: many Approved by: re@
|
166820 |
19-Feb-2007 |
cognet |
Add two new options, FLASHADDR, which defines the address the flash is mapped at, and LOADERRAMADDR, the address at which the loader maps the ram at at the time the kernel is booted. They are used to detect if the kernel is booted from the onboard flash. Define those for the IQ31244
|
166819 |
19-Feb-2007 |
cognet |
Teach the kernel and the ELF trampoline how to boot from onboard flash.
|
166818 |
19-Feb-2007 |
cognet |
There's no such thing as a GENERIC kernel on arm.
Spotted out by: csjp MFC After: 3 days
|
166756 |
15-Feb-2007 |
luigi |
Cleanup and document the implementation of firmware(9) based on a version that i posted earlier on the -current mailing list, and subsequent feedback received.
The core of the change is just in sys/firmware.h and kern/subr_firmware.c, while other files are just adaptation of the clients to the ABI change (const-ification of some parameters and hiding of internal info, so this is fully compatible at the binary level).
In detail: - reduce the amount of information exported to clients in struct firmware, and constify the pointer;
- internally, document and simplify the implementation of the various functions, and make sure error conditions are dealt with properly.
The diffs are large, but the code is really straightforward now (i hope).
Note also that there is a subtle issue with the implementation of firmware_register(): currently, as in the previous version, we just store a reference to the 'imagename' argument, but we should rather copy it because there is no guarantee that this is a static string. I realised this while testing this code, but i prefer to fix it in a later commit -- there is no regression with respect to the past.
Note, too, that the version in RELENG_6 has various bugs including missing locks around the module release calls, mishandling of modules loaded by /boot/loader, and so on, so an MFC is absolutely necessary there. I was just postponing it until this cleanup to avoid doing things twice.
MFC after: 1 week
|
166697 |
14-Feb-2007 |
kevlo |
Add KTR tracing
|
166695 |
14-Feb-2007 |
kevlo |
style(9) cleanup.
|
166694 |
14-Feb-2007 |
kevlo |
In sendsig:
- Add sigacts locking. - Add a mutex to struct sigacts that protects all the members of the struct. - Create and log events via the CTRx macros.
Reviewed by: cognet
|
166688 |
13-Feb-2007 |
cognet |
Make sure the address is valid before mapping it.
MFC after: 1 week
|
166686 |
13-Feb-2007 |
kevlo |
Fix typo: MacPPC -> ARM
|
166655 |
11-Feb-2007 |
cognet |
Use uma_set_align().
|
166625 |
10-Feb-2007 |
mlaier |
Fix small altq related copy and paste error.
|
166573 |
08-Feb-2007 |
imp |
Add sanity check to make sure that the MAC address isn't all 0's. Bad boot loaders can do this, and this leads to all kinds of ill effects downstream. Also, minor formatting nits.
|
166551 |
07-Feb-2007 |
marcel |
Evolve the ctlreq interface added to geom_gpt into a generic partitioning class that supports multiple schemes. Current schemes supported are APM (Apple Partition Map) and GPT. Change all GEOM_APPLE anf GEOM_GPT options into GEOM_PART_APM and GEOM_PART_GPT (resp).
The ctlreq interface supports verbs to create and destroy partitioning schemes on a disk; to add, delete and modify partitions; and to commit or undo changes made.
|
166532 |
06-Feb-2007 |
imp |
at91_twi depends on the iicbus module to satisfy its symbols when loaded, so make that explicit. Works for the monolithic kernel case, won't work for the kldload case.
|
166510 |
05-Feb-2007 |
kevlo |
<sys/sx.h> is unneeded.
|
166454 |
03-Feb-2007 |
kevlo |
ether_ifattach() sets if_mtu to ETHERMTU, don't bother set it again.
Approved by: imp, cognet
|
166414 |
02-Feb-2007 |
kevlo |
Remove a bogus i = 0
Approved by: cognet
|
166339 |
30-Jan-2007 |
kevlo |
Use our own timer that piggybacks on npe_tick() callout instead of if_watchdog/if_timer interface.
Approved by: sam, cognet
|
166248 |
26-Jan-2007 |
kevlo |
Fix comments.
Approved by: cognet
|
166100 |
18-Jan-2007 |
marius |
- Add a uart_rxready() and corresponding device-specific implementations that can be used to check whether receive data is ready, i.e. whether the subsequent call of uart_poll() should return a char, and unlike uart_poll() doesn't actually receive data. - Remove the device-specific implementations of uart_poll() and implement uart_poll() in terms of uart_getc() and the newly added uart_rxready() in order to minimize code duplication. - In sunkbd(4) take advantage of uart_rxready() and use it to implement the polled mode part of sunkbd_check() so we don't need to buffer a potentially read char in the softc. - Fix some mis-indentation in sunkbd_read_char().
Discussed with: marcel
|
166064 |
17-Jan-2007 |
cognet |
Create bus dma tags for both the PCI bus and the IXP425 root bus. Set the PCI bus' one as the default one, and explicitely use the other one for non-PCI devices. This is needed because the PCI bus can only address 64MB of RAM, while some IXP425 boards have 128MB or more, and most of the PCI drivers do not bother providing the parent dma tag.
|
166063 |
17-Jan-2007 |
cognet |
- Add bounce pages for arm, largely based on the i386 implementation. - Add a default parent dma tag, similar to what has been done for sparc64. - Before invalidating the dcache in POSTREAD, save the bits which are in the same cachelines than our buffers, but not part of it, and restore them after the invalidation.
|
165799 |
05-Jan-2007 |
ticso |
Hints are handled differently on -current Don't include hints.at91rm9200 for now
|
165787 |
05-Jan-2007 |
ticso |
MFp4: Use the next possible value for hz instead of defaulting to 128 Update tick value after modifying hz.
|
165786 |
05-Jan-2007 |
ticso |
MFp4: Add missing atomic functions Based on a patch by: des
|
165784 |
05-Jan-2007 |
ticso |
MFp4: add BWCT kernel configuration
|
165783 |
05-Jan-2007 |
ticso |
MFp4: Make at91_rtc optional to allow other RTC choices
|
165781 |
05-Jan-2007 |
ticso |
MFp4: Read access require PDC to be setup first otherwise we might get overrun errors. Write access however need cmd first, so keep the existing order for them.
|
165780 |
05-Jan-2007 |
ticso |
MFp4: BWCT boards are using an 16MHz xtal
|
165779 |
05-Jan-2007 |
ticso |
MFp4: Add VLAN_MTU support
|
165778 |
05-Jan-2007 |
ticso |
MFp4: fix a race in transmit buffer handling
|
165713 |
01-Jan-2007 |
imp |
MFp4: Fix bit name for SPI SR register
|
165712 |
01-Jan-2007 |
imp |
MFp4: Remove watchdog timeout that appears to be unused.
|
165711 |
01-Jan-2007 |
imp |
Merge from FreeBSD-tsf-6 by way of p4: correct values for PIO registers
submitted by: patrick schweiger
|
165260 |
15-Dec-2006 |
n_hibma |
Align the interfaces for the various watchdogs and make the interface behave as expected.
Also: - Return an error if WD_PASSIVE is passed in to the ioctl as only WD_ACTIVE is implemented at the moment. See sys/watchdog.h for an explanation of the difference between WD_ACTIVE and WD_PASSIVE. - Remove the I_HAVE_TOTALLY_LOST_MY_SENSE_OF_HUMOR define. If you've lost your sense of humor, than don't add a define.
Specific changes:
i80321_wdog.c Don't roll your own passive watchdog tickle as this would defeat the purpose of an active (userland) watchdog tickle.
ichwd.c / ipmi.c: WD_ACTIVE means active patting of the watchdog by a userland process, not whether the watchdog is active. See sys/watchdog.h.
kern_clock.c: (software watchdog) Remove a check for WD_ACTIVE as this does not make sense here. This reverts r1.181.
|
164970 |
07-Dec-2006 |
sam |
Handle a missing NPE firmware file better; if it's missing print a (somewhat) meaningful message and terminate the build. It'd be nice to print a proper URL from which to fetch the file but that seems problematic. Leave a suggested starting point in this file (TBD: add it to the man page).
Submitted by: ru
|
164969 |
07-Dec-2006 |
cognet |
Unbreak build for Skyeye: do not attempt to do any DMA, as Skyeye doesn't emulate it.
Reported by: ru
|
164936 |
06-Dec-2006 |
julian |
Threading cleanup.. part 2 of several.
Make part of John Birrell's KSE patch permanent.. Specifically, remove: Any reference of the ksegrp structure. This feature was never fully utilised and made things overly complicated. All code in the scheduler that tried to make threaded programs fair to unthreaded programs. Libpthread processes will already do this to some extent and libthr processes already disable it.
Also: Since this makes such a big change to the scheduler(s), take the opportunity to rename some structures and elements that had to be moved anyhow. This makes the code a lot more readable.
The ULE scheduler compiles again but I have no idea if it works.
The 4bsd scheduler still reqires a little cleaning and some functions that now do ALMOST nothing will go away, but I thought I'd do that as a separate commit.
Tested by David Xu, and Dan Eischen using libthr and libpthread.
|
164874 |
04-Dec-2006 |
cognet |
Do not forget to call pmap_free_l2_bucket() in pmap_remove_pages(). This can fix the pmap-related panics reported on arm.
MFC After: 3 days
|
164824 |
02-Dec-2006 |
cognet |
Provide stream operations.
|
164790 |
01-Dec-2006 |
cognet |
We can have no PV entry here if the previous mapping was unmanaged, and the new one is unmanaged too, so update the KASSERT to reflect this.
|
164779 |
30-Nov-2006 |
cognet |
In pmap_ts_referenced(), don't attempt to do anything if the page is fictitious, and just return 0.
|
164778 |
30-Nov-2006 |
cognet |
First bits of Xscale core 3 support (the VM bits are far from being optimal yet).
|
164777 |
30-Nov-2006 |
cognet |
Introduce CPU_XSCALE_CORE3, as XScale Core 3 is significally different than regular Xscale (it has no mini data cache, has armv6-style 16MB supersections, and can address 36bits). Define it for i81342.
|
164763 |
30-Nov-2006 |
kevlo |
Better i2c bit definitions.
Approved by: cognet
|
164760 |
30-Nov-2006 |
jb |
Turn console printf buffering into a kernel option and only on by default for sun4v where it is absolutely required.
This change moves the buffer from struct pcpu to the stack to avoid using the critical section which created a LOR in a couple of cases due to interaction with the tty code and kqueue. The LOR can't be fixed with the critical section and the pcpu buffer can't be used without the critical section.
Putting the buffer on the stack was my initial solution, but it was pointed out that the stress on the stack might cause problems depending on the call path. We don't have a way of creating tests for those possible cases, so it's best to leave this as an option for the time being. In time we may get enough data to enable this option more generally.
|
164745 |
29-Nov-2006 |
imp |
MFp4: formatting nit
|
164744 |
29-Nov-2006 |
imp |
Make this work a lot better: Remove a lot of older cruft not needed. Improve ISR support, but it is still unused since polling is faster Properly initalize the speed register to get 90kb/s, not 400b/s. Try to catch NACK Allow 0 length read transfers to generate start/top pairs.
|
164741 |
29-Nov-2006 |
imp |
MFp4: correct data counts so that we clock enough data for the spi transaction. This allows complete spi transactions to happen.
|
164508 |
22-Nov-2006 |
kevlo |
Bring in status led support for /dev/led/gpioled on Avila.
Approved by: cognet
|
164503 |
22-Nov-2006 |
imp |
MFp4: Make it work :-) o Don't delay when checking the done bits. There's no gain other than a small performance hit. o calculate the clock divisors better (things are still way slow, so maybe there's more here?) o don't always fail reset. Always succeed instead. o fix inverted logic around at91_twi_wait() return value o remove debug code o remove unneeded, unworking junk
|
164440 |
20-Nov-2006 |
kevlo |
Match bus space unmap prototype.
Approved by: cognet
|
164432 |
20-Nov-2006 |
imp |
MFp4: Tweak descriptions in preparation for porting to other members of the AT91 arm9 family.
|
164428 |
19-Nov-2006 |
sam |
config for Gateworks Avila board booting with NFS-mounted root on npe0
Reviewed by: cognet, imp MFC after: 1 month
|
164426 |
19-Nov-2006 |
sam |
Gateworks Avila board support: o ixp425 support o NPE network driver (requires Intel microcode) o h/w qmgr support o True IDE compact flash over expansion bus o pci (ath and hifn795x parts tested) o xscale watchdog timer o ds1672 RTC on i2c bus o ad7418 voltage + temp monitoring on i2c bus o uart
Work done together with cognet, kevlo, and jmg. Parts of the ixp425 support obtaine/derived from netbsd.
Reviewed by: cognet, imp MFC after: 1 month
|
164425 |
19-Nov-2006 |
sam |
change bus space unmap protoype
Reviewed by: cognet, imp MFC After: 1 month
|
164424 |
19-Nov-2006 |
sam |
correct bus space unmap prototype
Reviewed by: cognet, imp MFC after: 1 month
|
164423 |
19-Nov-2006 |
sam |
elaborate on stepping names; add intel terminology to help people cross-referencing intel docs
Reviewed by: imp, cognet MFC after: 1 month
|
164355 |
17-Nov-2006 |
cognet |
Erm we really want to mask all interrupts in the range, just not the first one.
Submitted by: ru
|
164351 |
17-Nov-2006 |
kevlo |
Compile -- remove an unused global variable avail_end.
Approved by: cognet
|
164250 |
13-Nov-2006 |
ru |
Fix a comment.
|
164229 |
12-Nov-2006 |
alc |
Make pmap_enter() responsible for setting PG_WRITEABLE instead of its caller. (As a beneficial side-effect, a high-contention acquisition of the page queues lock in vm_fault() is eliminated.)
|
164198 |
11-Nov-2006 |
alc |
Eliminate unused global variables.
|
164090 |
08-Nov-2006 |
alc |
MFamd64/ia64/i386/sun4v Use cnt.v_page_count, the actual count of available physical pages, instead of vm_page_array_size to compute the maximum number of pv entries.
|
164087 |
08-Nov-2006 |
cognet |
Increate cnt.v_intr on interrupt.
|
164080 |
07-Nov-2006 |
cognet |
Identify the xscale 81342.
|
164079 |
07-Nov-2006 |
cognet |
In the ARM_USE_SMALL_ALLOC case, vm_page_t may have an address < KERNBASE, so adjust the KASSERT to reflect this.
|
164059 |
07-Nov-2006 |
cognet |
Add atomic_cmpset_acq_32.
|
163937 |
03-Nov-2006 |
imp |
MFp4: o Fix the packet statistics o Make sure we set the FD bit when in full duplex o Improve TX side efficency by eliminating a data copy for unfragmented mbufs (the hardware can't do s/g). o Minor busdma pedantry o better comments in some places, more XXX in others o Minor style nits.
This solves a problem I was seeing where I'd get no ethernet when not booting with a NFS root. Well, unless I unplugged the cable and plugged it back in first so I'd get the same up down up messages I get for NFS root...
Thanks to sam and scottl for suggestions on making this driver more efficient through better use of approrpiate APIs.
|
163871 |
01-Nov-2006 |
cognet |
Do not include both <sys/types.h> and <sys/param.h>, it is a style bug as sys/types.h is included in sys/param.h, so instead just move the #include <sys/param.h> before the headers that need it.
Spotted out by: bde
|
163858 |
01-Nov-2006 |
jb |
Add a cnputs() function to write a string to the console with a lock to prevent interspersed strings written from different CPUs at the same time.
To avoid putting a buffer on the stack or having to malloc one, space is incorporated in the per-cpu structure. The buffer size if 128 bytes; chosen because it's the next power of 2 size up from 80 characters.
String writes to the console are buffered up the end of the line or until the buffer fills. Then the buffer is flushed to all console devices.
Existing low level console output via cnputc() is unaffected by this change. ithread calls to log() are also unaffected to avoid blocking those threads.
A minor change to the behaviour in a panic situation is that console output will still be buffered, but won't be written to a tty as before. This should prevent interspersed panic output as a number of CPUs panic before we end up single threaded running ddb.
Reviewed by: scottl, jhb MFC after: 2 weeks
|
163810 |
30-Oct-2006 |
cognet |
Include <sys/types.h>, to get definition for uint32_t.
Submitted by: David Sharp
|
163711 |
26-Oct-2006 |
jb |
Remove the KSE option now that it's in DEFAULTS on these arches/machines.
The 'nooption' kernel config entry has to be used to turn KSE off now. This isn't my preferred way of dealing with this, but I'll defer to scottl's experience with the io/mem kernel option change and the grief experienced over that.
Submitted by: scottl@
|
163709 |
26-Oct-2006 |
jb |
Make KSE a kernel option, turned on by default in all GENERIC kernel configs except sun4v (which doesn't process signals properly with KSE).
Reviewed by: davidxu@
|
163694 |
25-Oct-2006 |
cognet |
Let allow to teardown multiple irqs as well.
|
163693 |
25-Oct-2006 |
cognet |
Setup multiple interrupts if needed.
|
163681 |
25-Oct-2006 |
imp |
MFp4: Move the parameters that are basically dictated by the AT91 organization to that file.
|
163680 |
25-Oct-2006 |
imp |
MFp4: Status register bits
|
163674 |
24-Oct-2006 |
cognet |
Ooops, dump_avail[i] can be 0 if the RAM starts at 0x00000000, so check that dump_avail[i + 1] is == 0 as a stop condition instead. MFC after: 3 days
|
163553 |
21-Oct-2006 |
kevlo |
style(9) cleanup.
Approved by: cognet
|
163551 |
21-Oct-2006 |
cognet |
Ok I am an idiot. On 32 bits big-endian systems, it is needed to handle the syscalls using __syscall but only actually returning 32bits, such as mmap(), specially : they set the return value in td->td_retval[0], but the userland functions will expect this in r1, and not in r0 as it is normally done, as it is the LSB. So add a special case for all these syscalls (all except lseek, which truly returns 64bits).
Many thanks to Peter Grehan for his patience while explaining me the issue.
|
163547 |
20-Oct-2006 |
cognet |
Use __QUAD_LOWWORD for __syscall, to always use the good word, whatever the endianness is.
|
163537 |
20-Oct-2006 |
cognet |
There's no need to special-case lseek for arm/big-endian.
|
163526 |
20-Oct-2006 |
imp |
MFp4: Working SPI driver.
|
163525 |
20-Oct-2006 |
imp |
Commit WIP SSC driver, more work is needed here, but it configures things OK.
|
163524 |
20-Oct-2006 |
imp |
More register definitions.
|
163523 |
20-Oct-2006 |
imp |
Progress commit for getting TWI working
|
163522 |
20-Oct-2006 |
imp |
Add sysctl to export current state of rmii vs mii configuraiton. Fix a typo in resource allocation.
|
163521 |
20-Oct-2006 |
imp |
Add configuration of the SSC lines for second SSC.
|
163517 |
20-Oct-2006 |
imp |
MMC/SD bridge driver (host adapter) for AT91RM9200's MCI interface. This interface also appears in the AT91SAM9260 and '61 as well as the AVR32 based micros from Atmel. We don't yet support write protect or hot-swap in this bridge driver.
|
163449 |
17-Oct-2006 |
davidxu |
o Add keyword volatile for user mutex owner field. o Fix type consistent problem by using type long for old umtx and wait channel. o Rename casuptr to casuword.
|
163016 |
04-Oct-2006 |
jb |
PR: Submitted by: Reviewed by: Approved by: Obtained from: MFC after: Security: Move the relocation definitions to the common elf header so that DTrace can use them on one architecture targeted to a different one.
Add the additional ELF types defines in Sun's "Linker and Libraries" manual.
|
162954 |
02-Oct-2006 |
phk |
First part of a little cleanup in the calendar/timezone/RTC handling.
Move relevant variables to <sys/clock.h> and fix #includes as necessary.
Use libkern's much more time- & spamce-efficient BCD routines.
|
162487 |
21-Sep-2006 |
kan |
Use __builtin_va_start instead of __builtin_stdarg_start. GCC4 obsoletes the former and __builtin_va_start was present in all GCC version 3.1 and later.
|
162130 |
07-Sep-2006 |
imp |
MFp4: first cut at getting I2C transfers working (generically). I'm unsure if this driver correctly implements all the start/stop junk right (but it did or didn't before I made this commit).
|
162129 |
07-Sep-2006 |
imp |
MFp4: berndt pointed me at an errata that shows that the stat register offsets were originally documented incorrectly. This fixes that. It shouldn't affect anything other than error stat reporting.
|
161735 |
30-Aug-2006 |
cognet |
Remove dead code, already defined in sys/cdef.h
Spotted out by: bde
|
161734 |
30-Aug-2006 |
cognet |
Use ENTRY_NP for alternate entry points instead of ENTRY to avoid calling mcount twice when profiling.
Spotted out by: bde
|
161727 |
29-Aug-2006 |
cognet |
Use ENTRY instead of ALTENTRY, it doesn't exist on arm.
|
161705 |
28-Aug-2006 |
cognet |
Ooops m->md.pvh_attrs can't be used to know if the page is writeable, because it only remembers if the page is modified or referenced.
Bad review from: cognet
|
161704 |
28-Aug-2006 |
cognet |
Relocate the vector page for AT91, to work around bugs with the LOW_VECTOR code.
|
161675 |
28-Aug-2006 |
davidxu |
Implement casuword32, compare and set user integer, thank Marcel Moolenarr who wrote the IA64 version of casuword32.
|
161670 |
27-Aug-2006 |
cognet |
Fill in dump_avail[] before pmap_boostrap() is called so that ARM_USE_SMALL_ALLOC work.
|
161628 |
25-Aug-2006 |
alc |
Eliminate unused definitions. (They came from NetBSD.)
Discussed with: cognet, grehan, marcel
|
161618 |
25-Aug-2006 |
cognet |
Explicitely set the "allocbuffer" field to NULL when creating a new dmamap.
|
161617 |
25-Aug-2006 |
cognet |
Do not create dma maps with bus_dmamap_create, as we call bus_dmamem_alloc later which will overwrite the value, leading to a small memory leak.
|
161592 |
24-Aug-2006 |
cognet |
Finally bring it support for the i80219 XScale processor.
Submitted by: Max M. Boyarov <m.boyarov bsd by>
|
161591 |
24-Aug-2006 |
cognet |
Use ELFDATA2MSB if we're building big endian.
Noticed by: Oleksandr Tymoshenko <gonzo freebsd org>
|
161334 |
15-Aug-2006 |
imp |
add comment about why we include opt_global.h
|
161323 |
15-Aug-2006 |
cognet |
Ooops we need to include <machine/vmparam.h> to get the definition of KERNBASE and VM_MAXUSER_ADDRESS. Remove the useless include of opt_global.h, as noticed by netchild@ (the one in arm/elf_trampoline.c is legit, because this file is compiled outside the kernel, and doesn't use the standard CFLAGS).
|
161138 |
09-Aug-2006 |
imp |
Hook into the watchdog device, if present. Also, turn off the watchdog timer stuff when we boot because the boot blocks are turning it on...
|
161105 |
08-Aug-2006 |
cognet |
Rewrite ARM_USE_SMALL_ALLOC so that instead of the current behavior, it maps whole the physical memory, cached, using 1MB section mappings. This reduces the address space available for user processes a bit, but given the amount of memory a typical arm machine has, it is not (yet) a big issue. It then provides a uma_small_alloc() that works as it does for architectures which have a direct mapping.
|
161063 |
08-Aug-2006 |
kevlo |
Remove a bogus i = 0. Approved by: cognet
|
160889 |
01-Aug-2006 |
alc |
Complete the transition from pmap_page_protect() to pmap_remove_write(). Originally, I had adopted sparc64's name, pmap_clear_write(), for the function that is now pmap_remove_write(). However, this function is more like pmap_remove_all() than like pmap_clear_modify() or pmap_clear_reference(), hence, the name change.
The higher-level rationale behind this change is described in src/sys/amd64/amd64/pmap.c revision 1.567. The short version is that I'm trying to clean up and fix our support for execute access.
Reviewed by: marcel@ (ia64)
|
160801 |
28-Jul-2006 |
jhb |
Retire SYF_ARGMASK and remove both SYF_MPSAFE and SYF_ARGMASK. sy_narg is now back to just being an argument count.
|
160798 |
28-Jul-2006 |
jhb |
Now that all system calls are MPSAFE, retire the SYF_MPSAFE flag used to mark system calls as being MPSAFE: - Stop conditionally acquiring Giant around system call invocations. - Remove all of the 'M' prefixes from the master system call files. - Remove support for the 'M' prefix from the script that generates the syscall-related files from the master system call files. - Don't explicitly set SYF_MPSAFE when registering nfssvc.
|
160773 |
27-Jul-2006 |
jhb |
Unify the checking for lock misbehavior in the various syscall() implementations and adjust some of the checks while I'm here: - Add a new check to make sure we don't return from a syscall in a critical section. - Add a new explicit check before userret() to make sure we don't return with any locks held. The advantage here is that we can include the syscall number and name in syscall() whereas that info is not available in userret(). - Drop the mtx_assert()'s of sched_lock and Giant. They are replaced by the more general checks just added.
MFC after: 2 weeks
|
160740 |
27-Jul-2006 |
cognet |
Define BYTE_MSF if we're compiling a big endian kernel, so that DDB can correctly disassemble instructions on big endian.
|
160683 |
25-Jul-2006 |
cognet |
Use virtual_avail instead of freemempos as the starting point of the available physical memory, as the vm uses the memory between freemempos and virtual_avail.
MFC After: 3 days
|
160655 |
25-Jul-2006 |
kevlo |
Cleanup. Approved by: cognet
|
160537 |
20-Jul-2006 |
alc |
Implement pmap_clear_write().
Discussed with: cognet@
|
160533 |
20-Jul-2006 |
cognet |
Fix ALT_BREAK_TO_DEBUGGER on the AT91 : The core uart code expects the receive method to actually puts the characters read into its buffers. For AT91, it's done in the ipend routine, so also check if we have the alternate break sequence here.
MFC after: 3 days
|
160459 |
18-Jul-2006 |
cognet |
Make sure we use REDUCE32 on the result of do_cksum(), as in_cksum_skip() expects this. If we do not, this could result in wrong checksums.
MFC after: 1 day
|
160455 |
17-Jul-2006 |
cognet |
If we can't defrag a packet, re-queue it instead of dropping it.
|
160453 |
17-Jul-2006 |
cognet |
#if => #ifdef
|
160451 |
17-Jul-2006 |
cognet |
at91_spi won't compile without spibus, so add it.
|
160393 |
15-Jul-2006 |
cognet |
Oops bring back code that shouldn't have been removed by the previous commit.
|
160392 |
15-Jul-2006 |
cognet |
Make sure that if uma_small_alloc() gets called recursively, we just give up and call kmem_malloc(), to avoid a deadlock.
|
160374 |
15-Jul-2006 |
cognet |
Add a comment explaining why the OHCI mapping has been commented out.
|
160369 |
14-Jul-2006 |
imp |
MFp4: this now depends on new spi bus stuff
|
160368 |
14-Jul-2006 |
imp |
MFp4: tweaks
|
160366 |
14-Jul-2006 |
imp |
MFp4: elevate quality of slow clock a little
|
160365 |
14-Jul-2006 |
imp |
MFp4: paren police
|
160363 |
14-Jul-2006 |
imp |
MFp4: Introduce framework to configure the multiplexed pins on boot.
Since the USART supprots RS-485 multidrop mode, it allows the TX pins to float. However, for RS-232 operations, we don't want these pins to float. Instead, they should be pulled up to avoid mismatches. Linux does something similar when it configures the TX lines. This implies that we also allow the RX lines to float rather than be in the state they are left in by the boot loader. Since they are input pins, I think that this is the right thing to do.
Plus minor for our board.
|
160362 |
14-Jul-2006 |
imp |
MFp4: Fix typo in RTC_CALR_MK.
|
160361 |
14-Jul-2006 |
imp |
The TSC board uses a 16MHz base clock for the AT91RM9200, while the Kwikbyte board uses a 10MHz base clock. Cope with this difference.
|
160359 |
14-Jul-2006 |
imp |
Implement the set_time function. Rather pointless with this RTC, as it resets when the core resets, but there may be some use for it...
|
160358 |
14-Jul-2006 |
imp |
MF p4:
Adapt to forthcoming spi framework. The ioctls for SPI commands and such belong in the higher level driver.
|
160357 |
14-Jul-2006 |
imp |
Be sure to flush the cache after a partial read on timeout. Expand comments about timeouts. Fix a style nit. Sometimes small messages were getting corrupted.
|
160348 |
14-Jul-2006 |
imp |
Move some of the common parameters into the std. files for this platform. Also migrate from MD disk to NFS boot.
|
160343 |
14-Jul-2006 |
cognet |
Remove prototype for the undefined function counterhandler().
Submitted by: kevlo
|
160332 |
14-Jul-2006 |
cognet |
Add remote GDB bits for arm.
|
160312 |
12-Jul-2006 |
jhb |
Simplify the pager support in DDB. Allowing different db commands to install custom pager functions didn't actually happen in practice (they all just used the simple pager and passed in a local quit pointer). So, just hardcode the simple pager as the only pager and make it set a global db_pager_quit flag that db commands can check when the user hits 'q' (or a suitable variant) at the pager prompt. Also, now that it's easy to do so, enable paging by default for all ddb commands. Any command that wishes to honor the quit flag can do so by checking db_pager_quit. Note that the pager can also be effectively disabled by setting $lines to 0.
Other fixes: - 'show idt' on i386 and pc98 now actually checks the quit flag and terminates early. - 'show intr' now actually checks the quit flag and terminates early.
|
160282 |
12-Jul-2006 |
cognet |
Comment out the mapping of the OHCI controller registers va == pa. This address is in the userland address space. The proper thing is either to choose a virtual address in the kernel address space beyond the KVA, or to use pmap_mapdev().
|
160260 |
11-Jul-2006 |
cognet |
Add a new flag to pmap_enter_locked() to say if it's OK to wait. If it is, and we're unable to allocate the memory for a PTE, we'll wait until we can. If not, we'll just return. Use M_NOWAIT|M_USE_RESERVE to allocate PTEs, it is less aggressive than M_NOWAIT alone.
Suggested by: alc
|
160072 |
02-Jul-2006 |
imp |
Add support for configuring pins to be one of {GPIO, PERIPHERAL A or PERIPHERAL B}, as well as direction of GPIO pin. Add defines for all the pins.
|
160071 |
02-Jul-2006 |
imp |
MFp4:
Make serial ports more robust and reliable. Make non-console ports work. This might have broken skyeye stuff.
o Introduce ping-pong receive buffers. o Use DMA to copy characters directly into memory. o Support baud rates other than 115200 o Use 1 stop bit when 1 stop bit is requested (otherwise 2 were used, which caused dropped characters when received in bursts). o Use 1.5 stop bits for 5-bit bytes, and 2 stop bits otherwise when 2 stop bits were requested. o Actually update line parameters. o Fix comments o Move init into attach o Tweaks to TX interrupt registers to get them reliable and non-storming. o harvest data in ipend since the latency between it and the callback was too long. This likely is how it should be, I don't know why I deferred things to the callback before. o disable all interrupts in console init. We don't want interrupts until we turn on an ISR. o cosmetic tweaks o Automatically detect of the TIMEOUT interrupt is supported. If so, use it so we get better CPU utilization. Otherwise do a character at a time RX. Good news here is that it seems we have enough CPU and low enough fast interrupt latency to do this reliably. o Don't read USART_CR. It is a write-only register. o start to implement bus_ioctl. Do BAUD now...
|
159902 |
23-Jun-2006 |
cognet |
Backout previous commit, Warner committed at91_pio.c...
|
159901 |
23-Jun-2006 |
cognet |
There's no need to allocate that much phdr/shdr from the stack.
|
159900 |
23-Jun-2006 |
cognet |
Add the arm9_setup() prototype.
|
159899 |
23-Jun-2006 |
cognet |
Comment out at91_pio.c, it's not in CVS.
|
159868 |
22-Jun-2006 |
cognet |
arm9_setup() is now needed even if we're not using a gzipped kernel, so move it outside the #ifdef KZIP
Pointy Hat to: cognet
|
159849 |
21-Jun-2006 |
imp |
Nitsville: the routine is called initarm, not init_arm, correct it in a comment.
|
159834 |
21-Jun-2006 |
cognet |
Don't forget to define uart_sa1110_vaddr.
Submitted by: kevlo
|
159814 |
20-Jun-2006 |
imp |
Compute physmem so we can print it correctly on boot. Slightly optimize while I'm here.
|
159795 |
20-Jun-2006 |
imp |
Probe the memory size of the board better. Look at the bus width, number of banks, rows and columns the SDRAMC is programmed to access to determine the RAM size for the board, rather than hard-wiring it to be 32MB. My company's board with 64MB now probes correctly, as does the KB9202 with only 32MB. This means that to detect the right memory size, our boot loader must correctly initialize these values. This is a fairly safe assumption because the boot loader has to initialize SDRAM already, and it isn't really possible to change this register after we've accessed SDRAM.
|
159758 |
18-Jun-2006 |
cognet |
Make sure the stack is properly aligned. Enable the MMU when relocating as well, and use write-through cache.
|
159709 |
17-Jun-2006 |
imp |
comment out twi for now: no iicbus in KB920X: it breaks booting
|
159708 |
17-Jun-2006 |
imp |
Carefully note the RMII bit in the config register at attach time. The boot loader is supposed to leave this bit set to the right value for the board. If this bit was set at attach time, use it to init the config register correctly.
Note: this means the boot loader has to properly initialize it.
|
159707 |
17-Jun-2006 |
imp |
improve reporting of clocks
|
159651 |
15-Jun-2006 |
netchild |
Remove COMPAT_43 from GENERIC (and other kernel configs). For amd64 there's an explicit comment that it's needed for the linuxolator. This is not the case anymore. For all other architectures there was only a "KEEP THIS". I'm (and other people too) running a COMPAT_43-less kernel since it's not necessary anymore for the linuxolator. Roman is running such a kernel for a for longer time. No problems so far. And I doubt other (newer than ia32 or alpha) architectures really depend on it.
This may result in a small performance increase for some workloads.
If the removal of COMPAT_43 results in a not working program, please recompile it and all dependencies and try again before reporting a problem.
The only place where COMPAT_43 is needed (as in: does not compile without it) is in the (outdated/not usable since too old) svr4 code.
Note: this does not remove the COMPAT_43TTY option.
Nagging by: rdivacky
|
159627 |
15-Jun-2006 |
ups |
Remove mpte optimization from pmap_enter_quick(). There is a race with the current locking scheme and removing it should have no measurable performance impact. This fixes page faults leading to panics in pmap_enter_quick_locked() on amd64/i386.
Reviewed by: alc,jhb,peter,ps
|
159557 |
12-Jun-2006 |
cognet |
MFp4: - Try hard to calculate a safe sp, so that the stack doesn't get smashed while uncompressing or relocating the kernel. - Bring in code needed to calculate the cacheline size etc, needed for arm9_idcache_wbinv_all.
|
159556 |
12-Jun-2006 |
cognet |
MFp4: Increase the L1 pagetable needed for the kernel from 8 to 22, to be able to boot fat kernels.
|
159500 |
11-Jun-2006 |
alc |
Remove pmap_pagedaemon_waken and update pmap_get_pv_entry() to match the current interface with the machine-independent layer. Without this change, the page daemon would only have been awakened the first time that the number of pv entries went above the high water mark, not each time.
|
159499 |
11-Jun-2006 |
alc |
Eliminate spl calls.
|
159474 |
10-Jun-2006 |
alc |
Add a lock assertion. Remove dead (locking) code. Change some white space.
Reviewed by: cognet@
|
159450 |
09-Jun-2006 |
alc |
Add pmap locking to pmap_extract().
Tested by: cognet@
|
159387 |
07-Jun-2006 |
cognet |
Oops it seems I forgot to remove ARM32_NEW_VM_LAYOUT from here.
|
159384 |
07-Jun-2006 |
alc |
Add pmap locking to pmap_fault_fixup().
Add an assertion to pmap_vac_me_harder().
Tested by: cognet@
|
159378 |
07-Jun-2006 |
alc |
Properly synchronize access to the pmap in pmap_extract_and_hold().
Eliminate an unneeded variable from pmap_extract_and_hold().
Tested by: cognet@
|
159371 |
07-Jun-2006 |
cognet |
Now that we use pmap_mapdev_boostrap(), we can get ride of the got_mmu hack.
Submitted by: kevlo
|
159365 |
07-Jun-2006 |
imp |
Remove sa1_cache_clean_addr. It isn't needed.
Submitted by: kevlo
|
159359 |
06-Jun-2006 |
cognet |
Convert the last offender, the SA1110 port, to ARM32_NEW_VM_LAYOUT, and completely nuke the !ARM32_NEW_VM_LAYOUT case.
|
159358 |
06-Jun-2006 |
cognet |
Remove a bogus, useless, "i++".
|
159352 |
06-Jun-2006 |
alc |
Add partial pmap locking.
Tested by: cognet@
|
159325 |
06-Jun-2006 |
alc |
Add partial pmap locking.
Eliminate the unused allpmaps list.
Tested by: cognet@
|
159322 |
06-Jun-2006 |
cognet |
Make VERBOSE_INIT_ARM compile by fixing various printf formats, and add it as an option.
Submitted by: Max N. Boyarov <m.boyarov at bsd dot by>
|
159321 |
05-Jun-2006 |
cognet |
vm_page_alloc_contig() can sleep, so don't even think about using it in the M_NOWAIT case.
|
159303 |
05-Jun-2006 |
alc |
Introduce the function pmap_enter_object(). It maps a sequence of resident pages from the same object. Use it in vm_map_pmap_enter() to reduce the locking overhead of premapping objects.
Reviewed by: tegge@
|
159167 |
02-Jun-2006 |
cognet |
Don't #error if no CPU is defined but we're not compiling the kernel.
|
159145 |
01-Jun-2006 |
cognet |
Don't enable the FIQ in enable_interrupts() if F32_bit is not specified. This has been committed by mistake.
Reported by: ssouhlal
|
159127 |
01-Jun-2006 |
alc |
Introduce pmap_enter_locked() and use it to reimplement pmap_enter_quick().
Tested by: cognet@
|
159108 |
31-May-2006 |
cognet |
Avoid a LOR by unlocking the vm_page_queue_mtx before calling uma_zalloc, and freeing the allocated memory if another thread already did the same.
|
159107 |
31-May-2006 |
cognet |
If our buffer is not aligned on the cache line size, write back/invalidate the first and last cache line in PREREAD, and just invalidate the cache lines in POSTREAD, instead of write-back/invalidating in POSTREAD, which could lead to stale data overriding what has been transfered by DMA.
|
159101 |
31-May-2006 |
cognet |
Ooops arm10 is armv5, not armv4.
Submitted by: kevlo
|
159100 |
31-May-2006 |
cognet |
Include machine/cpuconf.h in pmap.h in order to get ARM_NMMUS defined, to appease -Wundef.
|
159088 |
30-May-2006 |
cognet |
Protect the mapping used for pmap_copy_page/pmap_zero_page with a mutex.
|
159084 |
30-May-2006 |
cognet |
To avoid problems, invalidate the data cache and disable the MMU once we're done uncompressing the kernel.
|
159073 |
30-May-2006 |
cognet |
In pmap_is_prefaultable(), assert that the pte isn't NULL if pmap_get_pde_pte() returns TRUE.
Suggested by: ssouhlal
|
159070 |
30-May-2006 |
cognet |
The Assabet has 32MB of RAM, not 16.
Submitted by: kevlo
|
159068 |
30-May-2006 |
benno |
In pmap_mapdev we correctly round the address off to the nearest page boundary, but we must also add the offset back on to the va we return.
|
159067 |
30-May-2006 |
cognet |
Uncomment the call to cpu_idcache_wbinv_all() after the MMU has been enabled. It has been commented out for a reason I forgot but I suspect does not apply anymore. Technically speaking it's not required to do it, has the data and the instruction cache have been disabled in _start(). However, it may change in the future, so I don't want to rely on this behavior.
Submitted by: kevlo
|
159047 |
29-May-2006 |
cognet |
Nuke sa11x0_attach_args. It's a NetBSDIsm, and we have no use for it.
Submitted by: kevlo
|
158928 |
26-May-2006 |
cognet |
Remove any reference to enable_mmu(), it's been gone for a long time.
Submitted by: kevlo
|
158854 |
23-May-2006 |
cognet |
Use pmap_devmap_bootstrap(), instead of mapping the SACOM1 registers with pmap_map_entry. More use of macros instead of hardcoding the addr.
Submitted by: kevlo
|
158839 |
22-May-2006 |
cognet |
Use macros instead of hardcoding the address for SACOM1. Also don't pretend we're working with SACOM3, as we're really mapping SACOM1.
Submitted by: kevlo
|
158746 |
19-May-2006 |
cognet |
We have an implementation of generic_bs_rr_1, so use it, as some drivers use it.
Submitted by: kevlo
|
158740 |
19-May-2006 |
cognet |
Comment out SYSCTL_OMIT_DESCR until it's committed.
|
158733 |
18-May-2006 |
cognet |
Implement sa11x0_bs_unmap. Submitted by: kevlo
|
158732 |
18-May-2006 |
cognet |
Make this compile (UART_IPEND_* => SER_INT_*).
|
158593 |
15-May-2006 |
cognet |
Add definitions for atomic_subtract_rel_32, atomic_add_rel_32 and atomic_load_acq_32, needed for hwpmc.
|
158590 |
15-May-2006 |
benno |
Display real/avail memory as per other platforms.
Approved by: cognet
|
158581 |
15-May-2006 |
cognet |
Switch to a 64bit time_t, while it's not a big problem to do so.
Suggested by: imp
|
158531 |
13-May-2006 |
cognet |
Resurrect Skyeye support : Add a new option, SKYEYE_WORKAROUNDS, which as the name suggests adds workarounds for things skyeye doesn't simulate. Specifically : - Use USART0 instead of DBGU as the console, make it not use DMA, and manually provoke an interrupt when we're done in the transmit function. - Skyeye maintains an internal counter for clock, but apparently there's no way to access it, so hack the timecounter code to return a value which is increased at every clock interrupts. This is gross, but I didn't find a better way to implement timecounters without hacking Skyeye to get the counter value. - Force the write-back of PTEs once we're done writing them, even if they are supposed to be write-through. I don't know why I have to do that.
|
158507 |
13-May-2006 |
imp |
Tidy up a bit...
|
158445 |
11-May-2006 |
phk |
Clean out sysctl machdep.* related defines.
The cmos clock related stuff should really be in MI code.
|
158432 |
11-May-2006 |
cognet |
Get this to compile : - The prototype of uart_bus_probe() hasn't been changed in cvs yet, so use the old one. - Add at91_pdcreg.h, needed by uart_dev_at91usart.c.
|
158396 |
10-May-2006 |
cognet |
Move the call to cpu_setup() before the call to vm_ksubmap_init(). vm_ksubmap_init() calls pmap_copy_page(), which uses the mini data cache to do the copy, but we're running uncaching before cpu_setup(). For some reason it hasn't been a problem so far, but it is for the PXA255.
Spotted out by: benno
|
158319 |
05-May-2006 |
cognet |
Setting the rid of the resource is a good idea, but we still need to return the resource after.
|
157970 |
22-Apr-2006 |
cognet |
MFother arches : date: 2006/04/12 04:22:50; author: alc; state: Exp; lines: +14 -41 Retire pmap_track_modified(). We no longer need it because we do not create managed mappings within the clean submap. To prevent regressions, add assertions blocking the creation of managed mappings within the clean submap.
Reviewed by: tegge
|
157891 |
20-Apr-2006 |
imp |
When returning a resource that we've allocated with rman_reserve_resource, go ahead and set the rid for that resource.
|
157726 |
13-Apr-2006 |
cognet |
We need to adjust the bus handle if the resource is SYS_RES_MEMORY, NOT SYS_RES_IOPORT.
|
157725 |
13-Apr-2006 |
cognet |
Disable/enable fiqs as well as irqs.
|
157618 |
09-Apr-2006 |
cognet |
MFp4: Use CPU_CONTROL_ROUNDROBIN for arm9, it seems to give marginally better performances.
|
157616 |
09-Apr-2006 |
cognet |
Not only disable/enable interrupts, do it for FIQs as well, when needed.
|
157615 |
09-Apr-2006 |
cognet |
MFp4: Don't write-back the PTEs if they are mapped write-through, this was apparently only needed because skyeye has bugs in its cache emulation.
|
157570 |
06-Apr-2006 |
cognet |
MFp4: Catchup with recent UART changes.
|
157567 |
06-Apr-2006 |
cognet |
Add a new option, XSCALE_DISABLE_CCNT, to not use the xscale ccnt as a timecounter (because gxemul doesn't emule it yet).
|
157564 |
06-Apr-2006 |
imp |
Add debug writes in error cases that, in theory, should never happen
|
157563 |
06-Apr-2006 |
imp |
Connect twi to the FreeBSD iicbus infrastructure.
|
157562 |
06-Apr-2006 |
imp |
Pull in numerous fixes from myself and cognet. With these fixes the KB9202 eval board is finally stable with a nfs root.
|
157561 |
06-Apr-2006 |
imp |
Remove unused bit definitions. Minor style cleanup while I'm here.
|
157560 |
06-Apr-2006 |
imp |
Optimize the TX side of the part by using the PDC to move bytes out to the wire. This increases the speed considerably. Start to put infrastructure in place to do RX side, but that requires more study before it can be done.
|
157443 |
03-Apr-2006 |
peter |
Remove the unused sva and eva arguments from pmap_remove_pages().
|
157156 |
26-Mar-2006 |
cognet |
Implement pmap_object_init_pt() the way it is on sparc64/alpha, by doing nothing except asserting the vm object is locked, and a device object, instead of a useless printf.
|
157091 |
24-Mar-2006 |
imp |
Skeleton support for the SSC device, which implements I2S interfaces, amoung others.
|
157089 |
24-Mar-2006 |
imp |
Skeleton PIO support.
|
157088 |
24-Mar-2006 |
imp |
Add the sekelton of support for the Power Management Controller.
|
157087 |
24-Mar-2006 |
imp |
Add rtc to files.at91
|
157086 |
24-Mar-2006 |
imp |
Add RTC support. This may be of dubious value since the RTC is reset to 1998 every reboot.
|
157029 |
22-Mar-2006 |
cognet |
MFp4: Don't force single-user now we can go multi-user. Call cninit() only after the pagetable has been set, as locore.S won't map the system device for us anymore.
|
157027 |
22-Mar-2006 |
cognet |
MFp4: More special casing of when vector_page == 0x00000000 : catch attempts to write to vector_page earlier in pmap_fault_fixup(), and deny it.
|
157025 |
22-Mar-2006 |
cognet |
MFp4: If we're mapping the vector page (this will happen if we didn't relocate it), do not attempt to call pmap_vac_me_harder() on the page. At this point m will be NULL, and we know we won't have any cache issues with this page.
|
157024 |
22-Mar-2006 |
cognet |
MFp4: teach the KB920x bits how to know where the ELF trampoline puts the strtab and the symtab.
|
157023 |
22-Mar-2006 |
cognet |
MFp4: Handle break interrupts (it seems to only work for USART, not DBGU).
|
156833 |
18-Mar-2006 |
imp |
MFp4:
Add bus attachment for the ohci device on this chip. The bus and hub are detected correctly, but the children devices aren't detected correctly for reasons unknown.
|
156832 |
18-Mar-2006 |
imp |
Add ohci controller mapping.
|
156831 |
18-Mar-2006 |
imp |
MFp4:
o update TODO list o Better use of busdma o mark RX dtors as COHERENT. This helps performance a lot by not requiring so many EXPENSIVE cache flushes. The cost of accessing it non-cached is much smaller. o Copy data from Rx buffers to make IP header 4 byte aligned. o CRC length included in reported length, so cope o Don't free TX buffer twice o Manage TX buffers better. o Enable just the interrupts we want. o Manage OACTIVE better
# Some of these done by cognet # These changes let us get to # via NFS root.
|
156830 |
18-Mar-2006 |
imp |
MFP4: Gratuitously sort alphabetically.
|
156829 |
18-Mar-2006 |
imp |
MFP4:
GC and fix definitions.
# some of this may have been done by cognet
|
156828 |
18-Mar-2006 |
imp |
MFp4:
o Add memory barrier to bus space o Allow for up to 3 IRQs per device o Move to table driven population of children devices. o Add support for usb ohci memory mapped controller resource allocation. o Clean up a bunch of extra writes to disable interrupts that are now done elsewhere. o Force all system interrupt handlers be fast. We get deadlock if they aren't.
|
156827 |
18-Mar-2006 |
imp |
MFp4:
o Disable all interrupts that the ST can generate until we have an ISR to service them. o Correct clock calculation to make DELAY the right length...
Submitted by: cognet (#2)
|
156520 |
09-Mar-2006 |
cognet |
MFp4: Forget the asm inlined version of in_cksum_hdr(). It doesn't work if the pointer is unaligned, and it just doesn't worth it.
|
156212 |
02-Mar-2006 |
cognet |
Use BUS_DMA_COHERENT.
|
156199 |
02-Mar-2006 |
cognet |
Use 8 * sizeof(int) instead of hardcoding 32, for the unlikely case this code ever get used on a plateform where sizeof(int) != 4.
Suggested by: jmg
|
156191 |
01-Mar-2006 |
cognet |
Try to honor BUS_DMA_COHERENT : if the flag is set, normally allocate memory with malloc() or contigmalloc() as usual, but try to re-map the allocated memory into a VA outside the KVA, non-cached, thus making the calls to bus_dmamap_sync() for these buffers useless.
|
156175 |
01-Mar-2006 |
cognet |
Use a better panic message than lol.
|
156174 |
01-Mar-2006 |
cognet |
Make sure we decrement p_lock before leaving prefetch_abort_handler()
|
156166 |
01-Mar-2006 |
cognet |
userret() now only takes 2 parameters.
|
156094 |
27-Feb-2006 |
cognet |
Get this to compile with the recent UART changes.
|
155922 |
22-Feb-2006 |
jhb |
Close some races between procfs/ptrace and exit(2): - Reorder the events in exit(2) slightly so that we trigger the S_EXIT stop event earlier. After we have signalled that, we set P_WEXIT and then wait for any processes with a hold on the vmspace via PHOLD to release it. PHOLD now KASSERT()'s that P_WEXIT is clear when it is invoked, and PRELE now does a wakeup if P_WEXIT is set and p_lock drops to zero. - Change proc_rwmem() to require that the processing read from has its vmspace held via PHOLD by the caller and get rid of all the junk to screw around with the vmspace reference count as we no longer need it. - In ptrace() and pseudofs(), treat a process with P_WEXIT set as if it doesn't exist. - Only do one PHOLD in kern_ptrace() now, and do it earlier so it covers FIX_SSTEP() (since on alpha at least this can end up calling proc_rwmem() to clear an earlier single-step simualted via a breakpoint). We only do one to avoid races. Also, by making the EINVAL error for unknown requests be part of the default: case in the switch, the various switch cases can now just break out to return which removes a _lot_ of duplicated PRELE and proc unlocks, etc. Also, it fixes at least one bug where a LWP ptrace command could return EINVAL with the proc lock still held. - Changed the locking for ptrace_single_step(), ptrace_set_pc(), and ptrace_clear_single_step() to always be called with the proc lock held (it was a mixed bag previously). Alpha and arm have to drop the lock while the mess around with breakpoints, but other archs avoid extra lock release/acquires in ptrace(). I did have to fix a couple of other consumers in kern_kse and a few other places to hold the proc lock and PHOLD.
Tested by: ps (1 mostly, but some bits of 2-4 as well) MFC after: 1 week
|
155793 |
17-Feb-2006 |
imp |
These files apply to all the atmel parts that freebsd is going to run on, so name them more generically. If we do support the MMU-less ARM7 parts, then we'll need to, at that time, expand the files we have.
|
155791 |
17-Feb-2006 |
imp |
This file was obsolete when committed. Catchup and delete it.
|
155527 |
11-Feb-2006 |
imp |
Use the correct address for the ohci device.
|
155455 |
08-Feb-2006 |
phk |
Simplify system time accounting for profiling.
Rename struct thread's td_sticks to td_pticks, we will need the other name for more appropriately named use shortly. Reduce it from uint64_t to u_int.
Clear td_pticks whenever we enter the kernel instead of recording its value as reference for userret(). Use the absolute value of td->pticks in userret() and eliminate third argument.
|
155445 |
07-Feb-2006 |
cognet |
Set the MAC address after we just read it at attach time, as it seems needed.
|
155443 |
07-Feb-2006 |
cognet |
Set m_pkthdr.len and m_pkthdr.rcvif.
|
155437 |
07-Feb-2006 |
imp |
This file isn't GENERIC, so change the header
|
155436 |
07-Feb-2006 |
imp |
Rather than pull in all the phy, just pull in the lxt phy that we need for this board (although our lxtphy driver isn't claiming it, but that's a different problem).
This saves 57k in this kernel.
|
155405 |
06-Feb-2006 |
cognet |
- Call mii_phy_probe() after we allocated an ifp. mii has this evil hack where it assumes the first field of the driver softc is the struct ifnet, and it copies its value in mii_phy_probe(). - In the interrupt handler, set the mbuf m_len field on packet receive.
|
155391 |
06-Feb-2006 |
cognet |
Use memory clobbers, to be on the safe side. Suggested by: jhb
|
155355 |
05-Feb-2006 |
cognet |
Backout rev 1.12. It would have been a good thing, if gcc was smart enough not to generate bad code.
|
155324 |
04-Feb-2006 |
imp |
Import support for the Atmel AT91RM9200 CPU/Microcontroller. This SoC is a ARM920T based CPU with a bunch of built-in peripherals. The inital import supports the SPI bus, the TWI bus (although iicbus integration is not complete), the uarts, the system timer and the onboard ethernet. Support for the Kwikbyte KB9202 (http://www.kwikbyte.com) board is also included, although there's no reason why the 9200 and the 9201 wouldn't also work. Primitive support for running under the skyeye emulator is also provided (although skyeye's support for the AT91RM9200 is a little weak).
The code has been structured so that other members of Atmel's arm family can be supported in the future. The AT91SAM9260 is not presently supported due to lack of hardware. The arm7tdmi families are also not supported becasue they lack an MMU.
Many thanks to cognet@ for his help and assistance in bringing up this board. He did much of the vm work and wrote parts of the uart and system timer code as well as the bus space implementation.
The system boots to single user w/o problem, although the serial console is a little slow and the ethernet driver is still in flux.
This work was sponsored by Timing Solutions, Corporation. I am grateful to their support of the FreeBSD project in this manner.
|
155308 |
04-Feb-2006 |
cognet |
Don't forget to set the address of the next descriptor to 0 when we're zeroing a physical page, or we could end up re-zeroing portions of memory we have zeroed before, which is clearly not wanted.
|
155306 |
04-Feb-2006 |
cognet |
MFi386: revision 1.288 date: 2006/02/04 14:11:33; author: wsalamon; state: Exp; lines: +4 -1 Hook up the audit system to system call entry and exit. System calls will now be audited.
Obtained from: TrustedBSD Project Approved by: rwatson (mentor)
|
155242 |
03-Feb-2006 |
imp |
MFp4: Small cleanup of cpu messages at boot.
|
155241 |
03-Feb-2006 |
imp |
Merge from p4: minor formatting nits.
|
154928 |
27-Jan-2006 |
cognet |
Try harder not to recurse.
|
154712 |
23-Jan-2006 |
cognet |
Donc recompute the io port address if it's already the good one.
|
154561 |
20-Jan-2006 |
cognet |
Build a minimal pagetables, with only section mappings, mapped write through, to speed up the decompression.
|
154128 |
09-Jan-2006 |
imp |
By popular demand, move __HAVE_ACPI and __PCI_REROUTE_INTERRUPT into param.h. Per request, I've placed these just after the _NO_NAMESPACE_POLLUTION ifndef. I've not renamed anything yet, but may since we don't need the __.
Submitted by: bde, jhb, scottl, many others.
|
154074 |
06-Jan-2006 |
jhb |
Fix various places that were testing td_critnest to see if interrupts should remain disabled during a trap or not to check td_md.md_spinlock_count instead.
|
153955 |
01-Jan-2006 |
imp |
Define __HAVE_ACPI and/or __PCI_REROUTE_INTERRUPT, as appropriate for each platform. These will be used in the pci code in preference to the complicated #ifdefs we have there now.
|
153940 |
31-Dec-2005 |
netchild |
MI changes: - provide an interface (macros) to the page coloring part of the VM system, this allows to try different coloring algorithms without the need to touch every file [1] - make the page queue tuning values readable: sysctl vm.stats.pagequeue - autotuning of the page coloring values based upon the cache size instead of options in the kernel config (disabling of the page coloring as a kernel option is still possible)
MD changes: - detection of the cache size: only IA32 and AMD64 (untested) contains cache size detection code, every other arch just comes with a dummy function (this results in the use of default values like it was the case without the autotuning of the page coloring) - print some more info on Intel CPU's (like we do on AMD and Transmeta CPU's)
Note to AMD owners (IA32 and AMD64): please run "sysctl vm.stats.pagequeue" and report if the cache* values are zero (= bug in the cache detection code) or not.
Based upon work by: Chad David <davidc@acns.ab.ca> [1] Reviewed by: alc, arch (in 2004) Discussed with: alc, Chad David, arch (in 2004)
|
153741 |
26-Dec-2005 |
sobomax |
Remove kern.elf32.can_exec_dyn sysctl. Instead extend Brandinfo structure with flags bitfield and set BI_CAN_EXEC_DYN flag for all brands that usually allow executing elf dynamic binaries (aka shared libraries). When it is requested to execute ET_DYN elf image check if this flag is on after we know the elf brand allowing execution if so.
PR: kern/87615 Submitted by: Marcin Koziej <creep@desk.pl>
|
153666 |
22-Dec-2005 |
jhb |
Tweak how the MD code calls the fooclock() methods some. Instead of passing a pointer to an opaque clockframe structure and requiring the MD code to supply CLKF_FOO() macros to extract needed values out of the opaque structure, just pass the needed values directly. In practice this means passing the pair (usermode, pc) to hardclock() and profclock() and passing the boolean (usermode) to hardclock_cpu() and hardclock_process(). Other details: - Axe clockframe and CLKF_FOO() macros on all architectures. Basically, all the archs were taking a trapframe and converting it into a clockframe one way or another. Now they can just extract the PC and usermode values directly out of the trapframe and pass it to fooclock(). - Renamed hardclock_process() to hardclock_cpu() as the latter is more accurate. - On Alpha, we now run profclock() at hz (profhz == hz) rather than at the slower stathz. - On Alpha, for the TurboLaser machines that don't have an 8254 timecounter, call hardclock() directly. This removes an extra conditional check from every clock interrupt on Alpha on the BSP. There is probably room for even further pruning here by changing Alpha to use the simplified timecounter we use on x86 with the lapic timer since we don't get interrupts from the 8254 on Alpha anyway. - On x86, clkintr() shouldn't ever be called now unless using_lapic_timer is false, so add a KASSERT() to that affect and remove a condition to slightly optimize the non-lapic case. - Change prototypeof arm_handler_execute() so that it's first arg is a trapframe pointer rather than a void pointer for clarity. - Use KCOUNT macro in profclock() to lookup the kernel profiling bucket.
Tested on: alpha, amd64, arm, i386, ia64, sparc64 Reviewed by: bde (mostly)
|
153616 |
21-Dec-2005 |
cognet |
Ooops, I removed the wrong bits. This unbreak boot from a VA which is different from the PA.
|
153615 |
21-Dec-2005 |
cognet |
Remove #undef DDB I shouldn't have committed.
|
153550 |
20-Dec-2005 |
cognet |
- Disable the instruction cache very early, until it's time to enable it again. - Revamp the code that jumps from physical to virtual address.
|
153549 |
20-Dec-2005 |
cognet |
Make the elf trampoline disable the MMU, and link it at physical address, to avoid bad surprises.
|
153279 |
09-Dec-2005 |
cognet |
- Better use of the busdma API. - Use spin locks instead of sleep locks.
|
153278 |
09-Dec-2005 |
cognet |
Fix a harmless bug in the way we allocate the early PTEs.
|
153277 |
09-Dec-2005 |
cognet |
The IQ80321 clock is 200MHz, but the IQ80321 is 198MHz, so add a kernel option to override the frequency
|
153276 |
09-Dec-2005 |
cognet |
A #define is not enough, we need to cast from u_long * to uint32_t *.
|
153275 |
09-Dec-2005 |
cognet |
Define atomic_whatever_long
|
153273 |
09-Dec-2005 |
cognet |
In copyout(), quad-align the source buffer, and use ldrd if possible.
|
153168 |
06-Dec-2005 |
ru |
Drop _MACHINE_ARCH and _MACHINE defines (not to be confused with MACHINE_ARCH and MACHINE). Their purpose was to be able to test in cpp(1), but cpp(1) only understands integer type expressions. Using such unsupported expressions introduced a number of subtle bugs, which were discovered by compiling with -Wundef.
|
153113 |
05-Dec-2005 |
cognet |
Try to use contigmalloc() even if M_NOWAIT has been specified.
|
153112 |
05-Dec-2005 |
cognet |
Teach the elf trampoline how to deal with gzipped kernels.
|
152753 |
24-Nov-2005 |
ru |
Add missing "struct" in i386/i386/machdep.c,v 1.497 by deischen@.
|
152743 |
24-Nov-2005 |
cognet |
Use a magic number to know we were started from the elf wrapper. Add a dummy _start function to make the non-elf version of the wrapper work.
|
152723 |
23-Nov-2005 |
cognet |
MFP4: Bring in arm9 cache-related functions
Obtained from: NetBSD
|
152654 |
21-Nov-2005 |
cognet |
Force pmap to write-back the pte cacheline after each pte modification, even if the pte is supposed to be cached in write through mode (might be a skyeye bug, I'll have to check).
|
152653 |
21-Nov-2005 |
cognet |
Add an alternate ID for the arm920t (the real solution is to have per-cpu class masks, but oh well).
|
152630 |
20-Nov-2005 |
alc |
Eliminate pmap_init2(). It's no longer used.
|
152189 |
08-Nov-2005 |
cognet |
There's no need to include <machine/asmacros.h> here.
|
152128 |
06-Nov-2005 |
cognet |
MFi386 rev 1.536 (sort of) Move what can be moved (UMA zones creation, pv_entry_* initialization) from pmap_init2() to pmap_init(). Create a new function, pmap_postinit(), called from cpu_startup(), to do the L1 tables allocation. pmap_init2() is now empty for arm as well.
|
151897 |
31-Oct-2005 |
rwatson |
Normalize a significant number of kernel malloc type names:
- Prefer '_' to ' ', as it results in more easily parsed results in memory monitoring tools such as vmstat.
- Remove punctuation that is incompatible with using memory type names as file names, such as '/' characters.
- Disambiguate some collisions by adding subsystem prefixes to some memory types.
- Generally prefer lower case to upper case.
- If the same type is defined in multiple architecture directories, attempt to use the same name in additional cases.
Not all instances were caught in this change, so more work is required to finish this conversion. Similar changes are required for UMA zone names.
|
151658 |
25-Oct-2005 |
jhb |
Reorganize the interrupt handling code a bit to make a few things cleaner and increase flexibility to allow various different approaches to be tried in the future. - Split struct ithd up into two pieces. struct intr_event holds the list of interrupt handlers associated with interrupt sources. struct intr_thread contains the data relative to an interrupt thread. Currently we still provide a 1:1 relationship of events to threads with the exception that events only have an associated thread if there is at least one threaded interrupt handler attached to the event. This means that on x86 we no longer have 4 bazillion interrupt threads with no handlers. It also means that interrupt events with only INTR_FAST handlers no longer have an associated thread either. - Renamed struct intrhand to struct intr_handler to follow the struct intr_foo naming convention. This did require renaming the powerpc MD struct intr_handler to struct ppc_intr_handler. - INTR_FAST no longer implies INTR_EXCL on all architectures except for powerpc. This means that multiple INTR_FAST handlers can attach to the same interrupt and that INTR_FAST and non-INTR_FAST handlers can attach to the same interrupt. Sharing INTR_FAST handlers may not always be desirable, but having sio(4) and uhci(4) fight over an IRQ isn't fun either. Drivers can always still use INTR_EXCL to ask for an interrupt exclusively. The way this sharing works is that when an interrupt comes in, all the INTR_FAST handlers are executed first, and if any threaded handlers exist, the interrupt thread is scheduled afterwards. This type of layout also makes it possible to investigate using interrupt filters ala OS X where the filter determines whether or not its companion threaded handler should run. - Aside from the INTR_FAST changes above, the impact on MD interrupt code is mostly just 's/ithread/intr_event/'. - A new MI ddb command 'show intrs' walks the list of interrupt events dumping their state. It also has a '/v' verbose switch which dumps info about all of the handlers attached to each event. - We currently don't destroy an interrupt thread when the last threaded handler is removed because it would suck for things like ppbus(8)'s braindead behavior. The code is present, though, it is just under #if 0 for now. - Move the code to actually execute the threaded handlers for an interrrupt event into a separate function so that ithread_loop() becomes more readable. Previously this code was all in the middle of ithread_loop() and indented halfway across the screen. - Made struct intr_thread private to kern_intr.c and replaced td_ithd with a thread private flag TDP_ITHREAD. - In statclock, check curthread against idlethread directly rather than curthread's proc against idlethread's proc. (Not really related to intr changes)
Tested on: alpha, amd64, i386, sparc64 Tested on: arm, ia64 (older version of patch by cognet and marcel)
|
151596 |
23-Oct-2005 |
cognet |
Unbreak for !__XSCALE__.
|
151524 |
20-Oct-2005 |
cognet |
Cleanup.
|
151415 |
17-Oct-2005 |
cognet |
Use the clock count register as a timecounter, as it's more accurate.
|
151340 |
14-Oct-2005 |
jhb |
Whitespace.
|
151334 |
14-Oct-2005 |
jhb |
Change the userland atomic operations on arm to use memory operands for the modified memory rather than using register operands that held a pointer to the memory. The biggest effect is that we now correctly tell the compiler that these functions change the memory that these functions modify.
Reviewed by: cognet
|
151316 |
14-Oct-2005 |
davidxu |
1. Change prototype of trapsignal and sendsig to use ksiginfo_t *, most changes in MD code are trivial, before this change, trapsignal and sendsig use discrete parameters, now they uses member fields of ksiginfo_t structure. For sendsig, this change allows us to pass POSIX realtime signal value to user code.
2. Remove cpu_thread_siginfo, it is no longer needed because we now always generate ksiginfo_t data and feed it to libpthread.
3. Add p_sigqueue to proc structure to hold shared signals which were blocked by all threads in the proc.
4. Add td_sigqueue to thread structure to hold all signals delivered to thread.
5. i386 and amd64 now return POSIX standard si_code, other arches will be fixed.
6. In this sigqueue implementation, pending signal set is kept as before, an extra siginfo list holds additional siginfo_t data for signals. kernel code uses psignal() still behavior as before, it won't be failed even under memory pressure, only exception is when deleting a signal, we should call sigqueue_delete to remove signal from sigqueue but not SIGDELSET. Current there is no kernel code will deliver a signal with additional data, so kernel should be as stable as before, a ksiginfo can carry more information, for example, allow signal to be delivered but throw away siginfo data if memory is not enough. SIGKILL and SIGSTOP have fast path in sigqueue_add, because they can not be caught or masked. The sigqueue() syscall allows user code to queue a signal to target process, if resource is unavailable, EAGAIN will be returned as specification said. Just before thread exits, signal queue memory will be freed by sigqueue_flush. Current, all signals are allowed to be queued, not only realtime signals.
Earlier patch reviewed by: jhb, deischen Tested on: i386, amd64
|
150996 |
06-Oct-2005 |
cognet |
Export PAGE_SIZE from genassym.c, and include assym.s in bcopy_page.S, instead of <machine/param.h>.
|
150944 |
04-Oct-2005 |
cognet |
Remove a never reached RET.
|
150943 |
04-Oct-2005 |
cognet |
strd needs the destination to be double-word aligned, but the pointer passed to savectx isn't always, so always use stmia, savectx isn't called enough to need that kind of optimization.
|
150936 |
04-Oct-2005 |
cognet |
dump_avail has nothing to do with ARM_USE_SMALL_ALLOC, so move its declaration out of the #ifdef.
|
150919 |
04-Oct-2005 |
cognet |
Remove duplicate entry for DDB.
|
150916 |
04-Oct-2005 |
cognet |
Fix build when DDB isn't defined.
|
150893 |
03-Oct-2005 |
cognet |
Bring in the good version of this file.
|
150873 |
03-Oct-2005 |
cognet |
Add dma and aau.
|
150872 |
03-Oct-2005 |
cognet |
Import dummy drivers for the i80321 DMA controller and AAU. The DMA controller driver only knows how to do memory to memory copies, and the AAU driver how to zero a chunk of memory. Use them to process big (>=1KB) copying/zeroing.
|
150871 |
03-Oct-2005 |
cognet |
Make mem.c know about the pages allocated with ARM_USE_SMALL_ALLOC.
|
150870 |
03-Oct-2005 |
cognet |
Export the variables needed for the copy/zero API.
|
150869 |
03-Oct-2005 |
cognet |
Make sure the interrupt is masked before processing it, or bad things can happen.
|
150868 |
03-Oct-2005 |
cognet |
If a thread already tries to allocate a new memory range, wait for it instead of trying to do the same.
|
150867 |
03-Oct-2005 |
cognet |
Provide a dump_avail[] variable, which contains the page ranges to be dumped.
For iq31244_machdep.c, attempt to recognize hints provided by the elf trampoline.
|
150865 |
03-Oct-2005 |
cognet |
- Provide the kernel l1pt physical address, for userland. - Use the new API for pmap_copy_page() and pmap_zero_page(). - Just write-back the pages in pmap_qenter(), and invalidate it in pmap_qremove(). - Nuke the cache flushing in pmap_enter_quick(), it's not needed anymore.
|
150864 |
03-Oct-2005 |
cognet |
Add a new API to let platform-specific ports provide functions for big copy/zeroing.
|
150863 |
03-Oct-2005 |
cognet |
Export the virtual and physical address in which the kernel was loaded, needed for userland when reading kernel dumps.
|
150861 |
03-Oct-2005 |
cognet |
Import a small ELF trampoline, in which the kernel is embedded, and that is able to load the kernel into memory, symbol table included. This is needed to be able to access the symbol table from DDB without a boot loader.
|
150860 |
03-Oct-2005 |
cognet |
*blush* Don't try to dereference map if it's NULL. While I'm there, increase the minimum value to write-back/invalidate the whole dcache in bus_dmamap_sync().
|
150859 |
03-Oct-2005 |
cognet |
Only save the registers that are used.
|
150858 |
03-Oct-2005 |
cognet |
asm versions of in_cksum_hdr() and in_pseudo().
|
150856 |
03-Oct-2005 |
cognet |
Implement savectx().
Obtained from: NetBSD
|
150855 |
03-Oct-2005 |
cognet |
Kernel dump for arm, ripped from the ia64/amd64 version.
|
150627 |
27-Sep-2005 |
jhb |
Add a new atomic_fetchadd() primitive that atomically adds a value to a variable and returns the previous value of the variable.
Tested on: i386, alpha, sparc64, arm (cognet) Reviewed by: arch@ Submitted by: cognet (arm) MFC after: 1 week
|
150552 |
25-Sep-2005 |
cognet |
Fix multiple abuses of __RMAN_RESOURCE_VISIBLE in the arm code.
Spotted out by: phk
|
149925 |
10-Sep-2005 |
marcel |
Move the prototypes of db_md_set_watchpoint(), db_md_clr_watchpoint() and db_md_list_watchpoints() to ddb/ddb.h.
|
149768 |
03-Sep-2005 |
alc |
Pass a value of type vm_prot_t to pmap_enter_quick() so that it determine whether the mapping should permit execute access.
|
149337 |
20-Aug-2005 |
stefanf |
Move MINSIGSTKSZ from <machine/signal.h> to <machine/_limits.h> and rename it to __MINSIGSTKSZ. Define MINSIGSTKSZ in <sys/signal.h>.
This is done in order to use MINSIGSTKSZ for the macro PTHREAD_STACK_MIN in <pthread.h> (soon <limits.h>) without having to include the whole <sys/signal.h> header.
Discussed with: bde
|
148666 |
03-Aug-2005 |
jeff |
- Add support for saving stack traces and displaying them via printf(9) and KTR.
Contributed by: Antoine Brodin <antoine.brodin@laposte.net> Concept code from: Neal Fachan <neal@isilon.com>
|
148455 |
27-Jul-2005 |
imp |
msdosfs_conv.c references cmos_wall_clock and adjkerntz. Since these are 0 for arm, define them as such to make msdosfs_conv.c compile again on arm.
|
148453 |
27-Jul-2005 |
jhb |
Add extra constraints to tell the compiler that the memory be modified in the arm __swp() and sparc64 casa() and casax() functions is actually being used as an input and output and not just the value of the register that points to the memory location. This was the underlying source of the mbuf refcount problems on sparc64 a while back. For arm this should be a nop because __swp() has a constraint to clobber all memory which can probably be removed now.
Reviewed by: alc, cognet MFC after: 1 week
|
148452 |
27-Jul-2005 |
jhb |
Use a + constraint modifier for a register arg in __bswap16_var().
Reviewed by: cognet
|
148067 |
15-Jul-2005 |
jhb |
Convert the atomic_ptr() operations over to operating on uintptr_t variables rather than void * variables. This makes it easier and simpler to get asm constraints and volatile keywords correct.
MFC after: 3 days Tested on: i386, alpha, sparc64 Compiled on: ia64, powerpc, amd64 Kernel toolchain busted on: arm
|
147889 |
10-Jul-2005 |
davidxu |
Validate if the value written into {FS,GS}.base is a canonical address, writting non-canonical address can cause kernel a panic, by restricting base values to 0..VM_MAXUSER_ADDRESS, ensuring only canonical values get written to the registers.
Reviewed by: peter, Josepha Koshy < joseph.koshy at gmail dot com > Approved by: re (scottl)
|
147591 |
24-Jun-2005 |
cognet |
- Use a TAILQ instead of parsing the array to find a free dmamap. - Inline busdma_alloc_dmamap, busdma_free_dmamap and bus_dmamap_sync_buf.
Approved by: re (blanket)
|
147555 |
23-Jun-2005 |
jhb |
Fix a typo.
Approved by: re (scottl)
|
147545 |
23-Jun-2005 |
cognet |
Remove the va == pa mapping.
Approved by: re (blanket)
|
147544 |
23-Jun-2005 |
cognet |
Call kdb_trap() on fatal abort.
Approved by: re (blanket)
|
147543 |
23-Jun-2005 |
cognet |
Implement db_frame() and use it to obtain the registers value.
Approved by: re (blanket)
|
147542 |
23-Jun-2005 |
cognet |
Don't abuse UMA_SLAB_KMEM.
Approved by: re (blanket)
|
147504 |
20-Jun-2005 |
obrien |
Add .cvsignore files just like in sys/<arch>/compiled, this keeps CVS from questing kernel config files not in CVS.
Approved by: re(kensmith)
|
147417 |
16-Jun-2005 |
cognet |
Try harder to detect if the allocated memory for L2 PTP comes from a 1MB section or not.
Approved by: re (blanket)
|
147416 |
16-Jun-2005 |
cognet |
Don't pass the kernel_pmap to pmap_fault_fixup() if the fault comes from kernel mode, always use the curthread pmap instead. There are valid cases were we can fault on a user address from the kernel without pcb_onfault being set.
Approved by: re (blanket)
|
147249 |
10-Jun-2005 |
cognet |
Remove the last use of pmap_initialized.
|
147217 |
10-Jun-2005 |
alc |
Introduce a procedure, pmap_page_init(), that initializes the vm_page's machine-dependent fields. Use this function in vm_pageq_add_new_page() so that the vm_page's machine-dependent and machine-independent fields are initialized at the same time.
Remove code from pmap_init() for initializing the vm_page's machine-dependent fields.
Remove stale comments from pmap_init().
Eliminate the Boolean variable pmap_initialized from the alpha, amd64, i386, and ia64 pmap implementations. Its use is no longer required because of the above changes and earlier changes that result in physical memory that is being mapped at initialization time being mapped without pv entries.
Tested by: cognet, kensmith, marcel
|
147191 |
09-Jun-2005 |
jkoshy |
MFP4:
- Implement sampling modes and logging support in hwpmc(4).
- Separate MI and MD parts of hwpmc(4) and allow sharing of PMC implementations across different architectures. Add support for P4 (EMT64) style PMCs to the amd64 code.
- New pmcstat(8) options: -E (exit time counts) -W (counts every context switch), -R (print log file).
- pmc(3) API changes, improve our ability to keep ABI compatibility in the future. Add more 'alias' names for commonly used events.
- bug fixes & documentation.
|
147171 |
09-Jun-2005 |
cognet |
Use tabs, not spaces.
Reported by: ru
|
147168 |
09-Jun-2005 |
cognet |
Add ata stuff.
|
147166 |
09-Jun-2005 |
cognet |
- MFp4: modify slightly the arm intr API, there's arm CPUs with more than 32 interrupts. - Implement teardown methods where appropriate.
|
147114 |
07-Jun-2005 |
cognet |
Add a new arm-specific option, ARM_USE_SMALL_ALLOC. If defined, it provides an implementation of uma_small_alloc() which tries to preallocate memory 1MB per 1MB, and maps it into a section mapping.
|
146948 |
03-Jun-2005 |
cognet |
Bring in bits I forgot while importing write back support for arm9.
|
146932 |
03-Jun-2005 |
cognet |
Remove a useless printf.
|
146794 |
29-May-2005 |
marcel |
Create nexus in configure_first() instead of in configure(). This makes sure that sysinit tasks that run after configure_first(), but before configure() have a nexus to hang devices off.
|
146790 |
29-May-2005 |
marcel |
Call cninit_finish() and set cold to 0 in configure_final() instead of in configure(). Call cninit_finish() before setting cold to 0. This is how it's done for other platforms. Be alike to avoid problems.
|
146734 |
29-May-2005 |
nyan |
Remove bus_{mem,p}io.h and related code for a micro-optimization on i386 and amd64. The optimization is a trivial on recent machines.
Reviewed by: -arch (imp, marcel, dfr)
|
146668 |
27-May-2005 |
cognet |
Remove pmap_deactivate(), we do not use it.
|
146649 |
26-May-2005 |
cognet |
s/_KLD_MODULE/KLD_MODULE/
|
146648 |
26-May-2005 |
cognet |
Don't enable interrupts in the dispatcher, there's no need to do so.
|
146647 |
26-May-2005 |
cognet |
Don't call vm_page_dirty() in pmap_nuke_pv(), it's not the place to do so, and it leads to funny things, such as pmap_remove_all() marking the page as dirty.
|
146619 |
25-May-2005 |
cognet |
Remove bits specific to CPUs we won't support (< armv4).
|
146618 |
25-May-2005 |
cognet |
Increase the refresh rate.
|
146605 |
24-May-2005 |
cognet |
MFp4: Setup arm9 to write back by default.
Obtained from: NetBSD
|
146604 |
24-May-2005 |
cognet |
Remove kcopy(), we don't use it.
|
146600 |
24-May-2005 |
cognet |
We need to decrease p->p_lock after vm_fault() has been called.
|
146599 |
24-May-2005 |
cognet |
Correctly setup the UND stack in cpu_set_upcall(), and the trapframe in cpu_thread_setup(), as done in cpu_fork().
|
146597 |
24-May-2005 |
cognet |
- Try to avoid calling malloc() in bus_dmamap_create() and bus_dmamem_alloc() for the dmamap by using static dmamaps. - Don't do anything for BUS_DMASYNC_PREREAD and BUS_DMASYNC_POSTWRITE in bus_dmamap_sync(), it's not needed anymore.
|
146596 |
24-May-2005 |
cognet |
Write back affected pages in pmap_qremove() as well. This removes the need to change the DACR when switching to a kernel thread, thus making userland thread => kernel thread => same userland thread switch cheaper by totally avoiding data cache and TLB invalidation.
|
146595 |
24-May-2005 |
cognet |
Use a more sane value for HZ.
|
146594 |
24-May-2005 |
cognet |
Use asm versions of in_cksum() and friends.
|
146592 |
24-May-2005 |
cognet |
Asm version of bswap16().
Obtained from: NetBSD
|
146591 |
24-May-2005 |
cognet |
Make sure we clean the RAS start address once we're done. This fixes the random segfaults which occurs at high interrupts rate.
|
146122 |
11-May-2005 |
cognet |
Don't forget to copy the TP when forking, or bad things will happen to the child process if it tries to use threads.
|
145594 |
27-Apr-2005 |
cognet |
Allocating the memory for the kernel stack one time is enough.
|
145452 |
23-Apr-2005 |
cognet |
Don't use fusufault in casuptr(), as it assumes the current PCB will be stored in r2, which can't be easily done with casuptr(). Introduce casuptrfault instead.
|
145433 |
23-Apr-2005 |
davidxu |
Change cpu_set_kse_upcall to more generic style, so we can reuse it in other codes. Add cpu_set_user_tls, use it to tweak user register and setup user TLS. I ever wanted to merge it into cpu_set_kse_upcall, but since cpu_set_kse_upcall is also used by M:N threads which may not need this feature, so I wrote a separated cpu_set_user_tls.
|
145332 |
20-Apr-2005 |
marcel |
Add empty header (except of the multiple-inclusion protection) to get hwpmc(4) to compile on this platform.
|
145253 |
18-Apr-2005 |
imp |
Break out the definition of bus_space_{tag,handle}_t and a few other types into _bus.h to help with name space polution from including all of bus.h. In a few days, I'll commit changes to the MI code to take advantage of thse sepration (after I've made sure that these changes don't break anything in the main tree, I've tested in my trees, but you never know...).
Suggested by: bde (in 2002 or 2003 I think) Reviewed in principle by: jhb
|
145071 |
14-Apr-2005 |
cognet |
Unbreak the vector_page == 0x00000000 case. Map the vector page L1PT into the kernel domain for each pmap, as we don't update the page table when we're switching to a kernel thread, but we do however update the DACR.
|
145017 |
13-Apr-2005 |
cognet |
pmap_update() is gone.
|
144971 |
12-Apr-2005 |
jhb |
Use PCPU_LAZY_INC() for cnt.v_{intr,trap,syscalls} rather than atomic operations in some places and simple non-per CPU math in others.
|
144967 |
12-Apr-2005 |
cognet |
We have an asm version of bcmp(), so we could use it as well.
|
144763 |
07-Apr-2005 |
cognet |
Don't announce the range SDRAM_START-freemempos until I figure out what's going on, it produces random memory corruption.
|
144762 |
07-Apr-2005 |
cognet |
pmap_update() is gone.
|
144761 |
07-Apr-2005 |
cognet |
Import a basic implementation of the restartable atomic sequences to provide atomic operations to userland (this is OK for UP only, but SMP is still so far away).
|
144760 |
07-Apr-2005 |
cognet |
- Try harder to report dirty page. - Garbage-collect pmap_update(), it became quite useless.
|
144637 |
04-Apr-2005 |
jhb |
Divorce critical sections from spinlocks. Critical sections as denoted by critical_enter() and critical_exit() are now solely a mechanism for deferring kernel preemptions. They no longer have any affect on interrupts. This means that standalone critical sections are now very cheap as they are simply unlocked integer increments and decrements for the common case.
Spin mutexes now use a separate KPI implemented in MD code: spinlock_enter() and spinlock_exit(). This KPI is responsible for providing whatever MD guarantees are needed to ensure that a thread holding a spin lock won't be preempted by any other code that will try to lock the same lock. For now all archs continue to block interrupts in a "spinlock section" as they did formerly in all critical sections. Note that I've also taken this opportunity to push a few things into MD code rather than MI. For example, critical_fork_exit() no longer exists. Instead, MD code ensures that new threads have the correct state when they are created. Also, we no longer try to fixup the idlethreads for APs in MI code. Instead, each arch sets the initial curthread and adjusts the state of the idle thread it borrows in order to perform the initial context switch.
This change is largely a big NOP, but the cleaner separation it provides will allow for more efficient alternative locking schemes in other parts of the kernel (bare critical sections rather than per-CPU spin mutexes for per-CPU data for example).
Reviewed by: grehan, cognet, arch@, others Tested on: i386, alpha, sparc64, powerpc, arm, possibly more
|
143857 |
20-Mar-2005 |
cognet |
Bring in a version of float.h more correct for softfloat.
|
143773 |
17-Mar-2005 |
cognet |
Bring back some of the cleanups and fixes jmg did in the TS7200 port.
|
143728 |
17-Mar-2005 |
cognet |
Use PCIR_BARS instead of PCIR_MAPS.
|
143724 |
16-Mar-2005 |
cognet |
Introduce a new function, pmap_wb_page(), which check all userland mappings for a given page and, if the pmap is the current pmap, write back the associated cache line. Use pmap_wb_page in pmap_qenter() instead of inconditionally write back/invalidating the data cache.
|
143682 |
16-Mar-2005 |
jmg |
MFp4: add in making fiq's work by coping to the correct page incase we have the vectors relocated high..
|
143681 |
16-Mar-2005 |
jmg |
fix up white space, I had a simple comment fix, but I might as well do the rest while I'm here...
|
143671 |
16-Mar-2005 |
jmg |
make bus_dmamem_alloc always allocate a new map like we are suppose to.. This was found when I tried to run the usb code on my arm board...
Approved by: cognet
|
143655 |
15-Mar-2005 |
jmg |
fix arm wrt to busdma...
also wrap the two macros that have bare if's w/ do {} while(0) so that my epe driver doesn't get a warning about braces around confused else...
|
143598 |
14-Mar-2005 |
scottl |
Refactor the bus_dma header files so that the interface is described in sys/bus_dma.h instead of being copied in every single arch. This slightly reorders a flag that was specific to AXP and thus changes the ABI there. The interface still relies on bus_space definitions found in <machine/bus.h> so it cannot be included on its own yet, but that will be fixed at a later date. Add an MD <machine/bus_dma.h> for ever arch for consistency and to allow for future MD augmentation of the API. sparc64 makes heavy use of this right now due to its different bus_dma implemenation.
|
143294 |
08-Mar-2005 |
mux |
Fixup KTR traces.
|
143284 |
08-Mar-2005 |
mux |
Use __func__ in the KTR_BUSDMA traces. This avoids copy and paste errors like in the bus_dmamap_load_mbuf_sg() case where we were wrongly displaying the function name as bus_dmamap_load_mbuf.
|
143199 |
07-Mar-2005 |
mux |
Fix typo.
|
143193 |
06-Mar-2005 |
cognet |
Use [ldr|str]t instead of [ldr|str] when accessing ARM_TP_ADDRESS.
|
143192 |
06-Mar-2005 |
cognet |
Make sure ARM_TP_ADDRESS is accessible right now by calling pmap_fault_fixup, as we can't rely on a trap happening, as it is done normally. While I'm there, uncomment the call to cpu_dcache_wbinv_range() in pmap_kenter_internal, as we don't call cpu_dcache_wbinv_all() there anymore.
|
143175 |
06-Mar-2005 |
cognet |
Unlike NetBSD's bcopy(), our bcopy allows the two strings to overlap, even in kernel. So bring in the userland version, instead of just calling memcpy.
|
143116 |
03-Mar-2005 |
cognet |
Handle endianness correctly.
Spotted out by: jmg
|
143063 |
02-Mar-2005 |
joerg |
netchild's mega-patch to isolate compiler dependencies into a central place.
This moves the dependency on GCC's and other compiler's features into the central sys/cdefs.h file, while the individual source files can then refer to #ifdef __COMPILER_FEATURE_FOO where they by now used to refer to #if __GNUC__ > 3.1415 && __BARC__ <= 42.
By now, GCC and ICC (the Intel compiler) have been actively tested on IA32 platforms by netchild. Extension to other compilers is supposed to be possible, of course.
Submitted by: netchild Reviewed by: various developers on arch@, some time ago
|
142955 |
01-Mar-2005 |
cognet |
In cpu_throw(), correctly calculate td->td_md.md_tp. In cpu_switch(), set the DACR even if we're switching to a kernel thread.
|
142947 |
01-Mar-2005 |
cognet |
Introduce realmem.
|
142570 |
26-Feb-2005 |
cognet |
Instead of using sysarch() to store-retrieve the tp, add a magic address, ARM_TP_ADDRESS, where the tp will be stored. On CPUs that support it, a cache line will be allocated and locked for this address, so that it will never go to RAM. On CPUs that does not, a page is allocated for it (it will be a bit slower, and is wrong for SMP, but should be fine for UP). The tp is still stored in the mdthread struct, and at each context switch, ARM_TP_ADDRESS gets updated.
Suggested by: davidxu
|
142528 |
26-Feb-2005 |
cognet |
Add the field in the md part of the struct thread required by ARM_[GET|SET]_TP.
|
142519 |
25-Feb-2005 |
cognet |
Implement two new sysarch for arm, ARM_GET_TP and ARM_SET_TP, to work around the lack of tls on arm.
|
142518 |
25-Feb-2005 |
cognet |
Make sure casuptr() reset pcb->pcb_onfault when returning.
|
142145 |
20-Feb-2005 |
cognet |
MFp4: get the code that set the pc correctly to work, remove a few IQ31244 specific mappings from locore.S, re-organize iq31244_machdep.c to work with the new locore.S
Spotted out by: jmg
|
142116 |
20-Feb-2005 |
cognet |
Removing the #endif as well sounds like a good idea.
|
142115 |
20-Feb-2005 |
cognet |
In cpufunc_control, uncomment the code responsible for returning the old state of the control register.
|
142107 |
19-Feb-2005 |
ru |
Use a common multi-inclusion protection, and add such a protection to alpha/include/exec.h.
|
142050 |
18-Feb-2005 |
cognet |
Support high vectors for arm9.
Obtained from: NetBSD
|
141820 |
13-Feb-2005 |
cognet |
Define NIRQ to 64 for CPU_ARM9, because Cirrus Logic EP93XX cores provides 64 irqs. This should be re-thought later.
|
141819 |
13-Feb-2005 |
cognet |
Remove unused prototype.
|
141817 |
13-Feb-2005 |
cognet |
Remove redondant includes.
|
141813 |
13-Feb-2005 |
cognet |
Don't prototype pmap_kenter().
|
141551 |
09-Feb-2005 |
jmg |
move pmap.h after vm.h include... some of the headers from pmap.h depend upon vm.h
|
141378 |
06-Feb-2005 |
njl |
Finish the job of sorting all includes and fix the build by including malloc.h before proc.h on sparc64. Noticed by das@
Compiled on: alpha, amd64, i386, pc98, sparc64
|
141249 |
04-Feb-2005 |
njl |
Sort includes a little so that bus.h comes before cpu.h (for device_t).
|
141237 |
04-Feb-2005 |
njl |
Add an implementation of cpu_est_clockrate(9). This function estimates the current clock frequency for the given CPU id in units of Hz.
|
141094 |
01-Feb-2005 |
njl |
Sort functions.
|
140683 |
23-Jan-2005 |
cognet |
Make sure we can boot both with and without MMU enabled.
|
140682 |
23-Jan-2005 |
cognet |
Define bus_dmamap_load_buffer before bus_dmamap_load to make gcc happy.
|
140680 |
23-Jan-2005 |
cognet |
Fix compile for !KTR.
|
140533 |
20-Jan-2005 |
cognet |
Remove references to non-existing symbols DO_corb and got_mmu. While I'm there, remove dead code.
|
140478 |
19-Jan-2005 |
cognet |
Fix compile for __ARMEB__.
|
140462 |
19-Jan-2005 |
cognet |
MFpowerpc: Work around the problem of returning a 32 bits value from __syscall() on a 32 bits big-endian arch.
Spotted out by: grehan
|
140425 |
18-Jan-2005 |
cognet |
Start to support the big endian case as well.
|
140350 |
16-Jan-2005 |
cognet |
Add a new sysctl, hw.sevenseg.freq, to control the update frequency.
|
140349 |
16-Jan-2005 |
cognet |
Erm, don't forget to store the mbuf in the dmamap in bus_dmamap_load_mbuf_sg(), so that bus_dmamap_sync() knows what to invalidate. This makes em(4) work again. While I'm there, remove the unused "first" variable.
|
140313 |
15-Jan-2005 |
cognet |
Add support for KTR_BUSDMA.
|
140312 |
15-Jan-2005 |
cognet |
Add the prototype for bus_dmamap_load_mbuf_sg().
Spotted out by: scottl
|
140310 |
15-Jan-2005 |
cognet |
MFi386: add bus_dmamap_load_mbuf_sg().
|
140309 |
15-Jan-2005 |
cognet |
Add the 7 seg display.
|
140308 |
15-Jan-2005 |
cognet |
Add support for the IQ31244 7 seg display.
Obtained from: NetBSD
|
140307 |
15-Jan-2005 |
cognet |
Start the license statement with /*-
|
140305 |
15-Jan-2005 |
cognet |
Use device_set_desc().
|
140304 |
15-Jan-2005 |
cognet |
Add the i80321 watchdog.
|
140303 |
15-Jan-2005 |
cognet |
Add a driver for the i80321 watchdog.
Obtained from: NetBSD
|
140001 |
10-Jan-2005 |
cognet |
Add support for ptrace() and gdb breakpoints.
|
140000 |
10-Jan-2005 |
cognet |
Don't assume pmap_update() will cpwait for us, pmap_update will disappear soon.
|
139735 |
05-Jan-2005 |
imp |
Start all license statements with /*-
|
139241 |
23-Dec-2004 |
alc |
Modify pmap_enter_quick() so that it expects the page queues to be locked on entry and it assumes the responsibility for releasing the page queues lock if it must sleep.
Remove a bogus comment from pmap_enter_quick().
Using the first change, modify vm_map_pmap_enter() so that the page queues lock is acquired and released once, rather than each time that a page is mapped.
|
139117 |
21-Dec-2004 |
cognet |
- The IQ80321 has a jumper which changes the PCI device id from 4 to 8 for the GigE controller, so handle this. - Use the outbound window 0 if the PCI mem requested is in its range, instead of inconditionally use the outbound window 1. This should be enough to get FreeBSD/arm to work on the IQ80321 board as well.
Reported and tested by: Jia-Shiun Li <jiashiun at gmail dot com>
|
139022 |
18-Dec-2004 |
cognet |
Update the StrongArm port to match the current code. - Implement arm_mask_irqs and arm_unmask_irqs - Provide the available physical address range after pmap_bootstrap allocated things, instead or before, or bad things happen.
|
139021 |
18-Dec-2004 |
cognet |
Make sure gcc doesn't generate something such as swp r3, r4, [r3] for __swp, as it has unpredictable results.
|
138897 |
15-Dec-2004 |
alc |
In the common case, pmap_enter_quick() completes without sleeping. In such cases, the busying of the page and the unlocking of the containing object by vm_map_pmap_enter() and vm_fault_prefault() is unnecessary overhead. To eliminate this overhead, this change modifies pmap_enter_quick() so that it expects the object to be locked on entry and it assumes the responsibility for busying the page and unlocking the object if it must sleep. Note: alpha, amd64, i386 and ia64 are the only implementations optimized by this change; arm, powerpc, and sparc64 still conservatively busy the page and unlock the object within every pmap_enter_quick() call.
Additionally, this change is the first case where we synchronize access to the page's PG_BUSY flag and busy field using the containing object's lock rather than the global page queues lock. (Modifications to the page's PG_BUSY flag and busy field have asserted both locks for several weeks, enabling an incremental transition.)
|
138857 |
14-Dec-2004 |
cognet |
Enable interrupts once the active ones have been masked.
|
138856 |
14-Dec-2004 |
cognet |
Update the sp after popping the regs. This is a good candidate for the golden pointy hat awards.
|
138751 |
12-Dec-2004 |
cognet |
Save a few more cycles in cpu_switch() and cpu_throw().
|
138710 |
11-Dec-2004 |
cognet |
Fix style.
|
138709 |
11-Dec-2004 |
cognet |
Add entries to trace syscalls with KTR.
|
138683 |
11-Dec-2004 |
cognet |
Fix compilation with INVARIANTS.
|
138665 |
10-Dec-2004 |
cognet |
s/RETEQ/RETeq/.
|
138525 |
07-Dec-2004 |
cognet |
Include <sys/signalvar.h> for trapsignal().
|
138417 |
05-Dec-2004 |
cognet |
Make sure to map the whole kernel into 1MB pages. Try to use the remaining memory for things such as the kernel stack.
|
138415 |
05-Dec-2004 |
cognet |
Reactivate the use of the minidata cache.
|
138414 |
05-Dec-2004 |
cognet |
Do not change the page directory and do not flush the TLB when switching to a kernel thread.
|
138413 |
05-Dec-2004 |
cognet |
Remove an unused field from the struct pv_entry. While I'm there, fix style.
|
138328 |
02-Dec-2004 |
cognet |
Include <sys/signalvar.h> for trapsignal().
|
138129 |
27-Nov-2004 |
das |
Don't include sys/user.h merely for its side-effect of recursively including other headers.
|
138022 |
23-Nov-2004 |
cognet |
Enable interrupts as soon as the pending interrupts have been masked.
|
138021 |
23-Nov-2004 |
cognet |
Use ns8250.
|
137977 |
21-Nov-2004 |
cognet |
Cleanup.
|
137976 |
21-Nov-2004 |
cognet |
Set the frame pointer to 0 in fork_trampoline().
|
137975 |
21-Nov-2004 |
cognet |
Implement breakpoints and single stepping on arm.
Obtained from: NetBSD
|
137941 |
20-Nov-2004 |
cognet |
Remove useless code.
|
137940 |
20-Nov-2004 |
cognet |
Implement enough to be able to enter and leave DDB.
|
137939 |
20-Nov-2004 |
cognet |
Get the kernel stack right now that the u-area is gone.
|
137919 |
20-Nov-2004 |
das |
Remove UAREA_PAGES and USPACE definitions. The definitions of USPACE_SVC_STACK_TOP, USPACE_SVC_STACK_BOTTOM, USPACE_UNDEF_STACK_TOP, and USPACE_UNDEF_STACK_BOTTOM look wrong to me, so I'm leaving them alone.
Reviewed by: arch@
|
137918 |
20-Nov-2004 |
das |
Remove some references to U area here while trying not to break anything. Someone with ARM hardware could do a lot more to untangle this code.
Reviewed by: arch@
|
137917 |
20-Nov-2004 |
das |
Remove references to U area and garbage collect includes.
Reviewed by: arch@
|
137912 |
20-Nov-2004 |
das |
U areas are going away, so don't allocate one for process 0.
Reviewed by: arch@
|
137903 |
20-Nov-2004 |
cognet |
Increase cnt.v_syscall and cnt.v_trap when needed.
|
137838 |
18-Nov-2004 |
cognet |
Move KERNPHYSADDR and KERNVIRTADDR from std.i80321 to std.iq31244. Use the correct KERNPHYSADDR.
|
137760 |
16-Nov-2004 |
cognet |
Simplify a bit bus_dmamap_load_buffer by removing the "first" parameter, use nseg == -1 instead.
Obtained from: NetBSD
|
137758 |
15-Nov-2004 |
cognet |
MFi386: - inlina bus_dmamap_load_buffer - Directly pass the pmap to bus_dmamap_load_buffer, instead of the struct thread
|
137665 |
13-Nov-2004 |
cognet |
Remove debugging printf.
|
137664 |
13-Nov-2004 |
cognet |
Don't forget to clear the PG_WRITEABLE flag when appropriate.
|
137663 |
13-Nov-2004 |
cognet |
Use uma_prealloc() on the l2table_zone to prevent a LOR at startup.
|
137629 |
12-Nov-2004 |
cognet |
Implement interrupt counting, so that vmstat -i work.
|
137552 |
10-Nov-2004 |
cognet |
Don't forget to include opt_vm.h.
|
137551 |
10-Nov-2004 |
cognet |
Convert the IQ31244 code to use ARM32_NEW_VM_LAYOUT.
|
137549 |
10-Nov-2004 |
cognet |
Invalidate the data cache in pmap_qremove() instead of in pmap_kenter(), and in pmap_enter_quick() instead of pmap_enter().
|
137498 |
10-Nov-2004 |
trhodes |
Remove __P here too.
Ok'ed by: cognet
|
137463 |
09-Nov-2004 |
cognet |
Use the RET macro.
|
137462 |
09-Nov-2004 |
cognet |
Import a RET macro, that will use bx if the arch supports it.
Obtained from: NetBSD
|
137372 |
08-Nov-2004 |
alc |
Introduce two new options, "CPU private" and "no wait", to sf_buf_alloc(). Change the spelling of the "catch" option to be consistent with the new options. Implement the "no wait" option. An implementation of the "CPU private" for i386 will be committed at a later date.
|
137363 |
07-Nov-2004 |
cognet |
Add device mem in config files.
|
137362 |
07-Nov-2004 |
cognet |
Import md bits for mem(4) on arm. While I'm there, cleanup a bit pmap.h.
|
137341 |
07-Nov-2004 |
cognet |
Remove useless code.
|
137282 |
05-Nov-2004 |
cognet |
Disable interrupts for atomic_cmpset_32, this one is just not atomic. Don't export it to userland.
|
137275 |
05-Nov-2004 |
cognet |
Copy the syscall args in a tmp variable instead of directly using the trapframe, as it can be modified in the syscall. Call thread_user_enter() when appropriate.
|
137274 |
05-Nov-2004 |
cognet |
Save a few cycles in context switch. Update comments to reflect reality.
|
137273 |
05-Nov-2004 |
cognet |
If we're still running at the physical address, jump to the virtual address instead before calling initarm(). This removes the need to map virtual == physical in initarm().
|
137272 |
05-Nov-2004 |
cognet |
Be more verbose about cache capacities.
|
137271 |
05-Nov-2004 |
cognet |
Implement casuptr.
|
137270 |
05-Nov-2004 |
cognet |
Call pmap_pte_init_arm9 instead of pmap_pte_init_generic if ARM9_CACHE_WRITE_THROUGH is defined.
|
137264 |
05-Nov-2004 |
cognet |
In cpu_critical_fork_exit(), make sure to set td_md.md_critnest so that interrupts will be enabled.
Spotted out by: jhb
|
137229 |
04-Nov-2004 |
cognet |
Protect the function declarations with #ifdef _KERNEL.
|
137228 |
04-Nov-2004 |
cognet |
Directly use __pcpu for PCPU_* instead of pcpup.
|
137227 |
04-Nov-2004 |
cognet |
Decrease KSTACK_PAGES and UAREA_PAGES.
|
137226 |
04-Nov-2004 |
cognet |
Use interrupts_disable() and interrupts_restore() as intr_disable() and intr_restore() instead of re-implement it.
|
137224 |
04-Nov-2004 |
cognet |
Don't barf if no CPU type is defined while compiling kernel modules.
|
137223 |
04-Nov-2004 |
cognet |
Implement get_cyclecount().
|
137222 |
04-Nov-2004 |
cognet |
Try to implement atomic operations using swp, instead of disabling interrupts.
|
137216 |
04-Nov-2004 |
cognet |
Use casts to enforce the return type of bswap16() and bswap32().
|
137215 |
04-Nov-2004 |
cognet |
Implement cpu_thread_siginfo() and set_mcontext(). Nuke getframe(), and choose which stack to use directly in sendsig().
|
137214 |
04-Nov-2004 |
cognet |
Implement cpu_set_upcall and cpu_set_upcall_kse. Calculate td_frame and td_pcb the right way in cpu_thread_setup.
|
137211 |
04-Nov-2004 |
cognet |
Get kernel modules to work.
|
137137 |
02-Nov-2004 |
andre |
Reduce annoying SCSI probing delay from 15 to 5 seconds in all GENRIC kernels.
Discussed on: -current
|
137117 |
01-Nov-2004 |
jhb |
- Change the ddb paging "support" to use a variable (db_lines_per_page) to control the number of lines per page rather than a constant. The variable can be examined and changed in ddb as '$lines'. Setting the variable to 0 will effectively turn off paging. - Change db_putchar() to force out pending whitespace before outputting newlines and carriage returns so that one can rub out content on the current line via '\r \r' type strings. - Change the simple pager to rub out the --More-- prompt explicitly when the routine exits. - Add some aliases to the simple pager to make it more compatible with more(1): 'e' and 'j' do a single line. 'd' does half a page, and 'f' does a full page.
MFC after: 1 month Inspired by: kris
|
136743 |
21-Oct-2004 |
cognet |
We want to ignore BUS_DMASYNC_POSTWRITE, not BUS_DMASYNC_POSTREAD. Spotted out by: mux Pointy hat to: cognet
|
136383 |
11-Oct-2004 |
cognet |
Use a default MD_ROOT_SIZE of 65535.
|
136382 |
11-Oct-2004 |
cognet |
Use MD_ROOT_SIZE, instead of our own macro.
|
136033 |
01-Oct-2004 |
cognet |
Add optimized version of the bswap macroes for constants if __OPTIMIZED__ is defined.
|
136032 |
01-Oct-2004 |
cognet |
There's no need to turn on MALLOC_PROFILE by default.
|
135881 |
28-Sep-2004 |
cognet |
Calling fuword from fuword32 with bl and without returning after is really a bad idea. Any way I get a customized CVS template with "Pointy hat to: cognet" pre-filled ?
|
135880 |
28-Sep-2004 |
cognet |
Always invalidate the whole data cache in pmap_enter() for now. It should not be needed.
|
135879 |
28-Sep-2004 |
cognet |
Remove dead code.
|
135675 |
23-Sep-2004 |
cognet |
Add the config file for the IQ31244 board.
|
135674 |
23-Sep-2004 |
cognet |
Use the new KERNVIRTADDR and PHYSADDR options. Add KDB.
|
135669 |
23-Sep-2004 |
cognet |
Import partial support for the IQ31244 eval board (i80321 CPU). IQ80321 might work out of the box too, but I have no hardware to test. It works well enough to go multiuser. Network works, SATA does not, as I have no drive to test. Thanks to Intel for sending such a board.
Obtained from: NetBSD
|
135668 |
23-Sep-2004 |
cognet |
Add Xscale common headers.
|
135667 |
23-Sep-2004 |
cognet |
Big cleanup: get ride of the whole spl level logic, as FreeBSD doesn't use it anymore.
|
135666 |
23-Sep-2004 |
cognet |
Now that we have pmap_growkernel(), use more KVA.
|
135665 |
23-Sep-2004 |
cognet |
Remove the empty definition of struct osigcontext, as it will never be used.
|
135664 |
23-Sep-2004 |
cognet |
Remove the pcb32_cstate field of struct pcb.
|
135663 |
23-Sep-2004 |
cognet |
Declare sigcode and szsigcode.
|
135662 |
23-Sep-2004 |
cognet |
Define VM_PROT_READ_IS_EXEC.
|
135661 |
23-Sep-2004 |
cognet |
Implement _mcount().
Obtained from: NetBSD
|
135660 |
23-Sep-2004 |
cognet |
Define STACKALIGNBYTES and STACKALIGN.
|
135659 |
23-Sep-2004 |
cognet |
We are using _mcount, not __mcount. Remove the !__ELF__ case.
|
135658 |
23-Sep-2004 |
cognet |
Use sf_bufs for uiomove_fromphys().
|
135657 |
23-Sep-2004 |
cognet |
On Xscale, use the minicache for the kernel stack.
|
135656 |
23-Sep-2004 |
cognet |
Make sure to call cred_update_thread() if needed. Add partial support for KTRACE.
|
135655 |
23-Sep-2004 |
cognet |
Implement cpu_throw().
Obtained from: NetBSD
|
135654 |
23-Sep-2004 |
cognet |
Remove unused macroes. Add user, btrap, etrap, bintr and eintrt in the GPROF case.
|
135653 |
23-Sep-2004 |
cognet |
Implement sigreturn().
|
135652 |
23-Sep-2004 |
cognet |
Add the hw.machine sysctl.
|
135651 |
23-Sep-2004 |
cognet |
Remove definitions related to the pmap cache state, and add TDF_NEEDRESCHED.
|
135650 |
23-Sep-2004 |
cognet |
Add new functions to know which irqs are pending, and to mask and unmask interrupts, as these are CPU specific. If the interrupt handler is not marked as INTR_FAST, don't unmask the interrupt until it as been serviced.
|
135649 |
23-Sep-2004 |
cognet |
Rename macroes, as we don't need to mess with alignment faults. Call ast() if TDF_NEEDRESCHED is set too, not just TDF_ASTPENDING.
|
135648 |
23-Sep-2004 |
cognet |
Use sigcode.
|
135647 |
23-Sep-2004 |
cognet |
In db_stack_trace_cmd, remove the "pc" variable, we don't need it.
|
135646 |
23-Sep-2004 |
cognet |
Use the right path for xscale files.
|
135645 |
23-Sep-2004 |
cognet |
Remove bus_space_vaddr(), it does not exists in FreeBSD.
|
135644 |
23-Sep-2004 |
cognet |
Don't attempt to manage our own segment list, and just remember the buffers provided.
Obtained from: NetBSD
|
135643 |
23-Sep-2004 |
cognet |
Use the right path for the bcopyinout_xscale.S file.
|
135642 |
23-Sep-2004 |
cognet |
Add MD syscalls to sync the icache and to drain the write buffer.
Obtained from: NetBSD
|
135641 |
23-Sep-2004 |
cognet |
Implement pmap_growkernel() and pmap_extract_and_hold(). Remove the cache state logic : right now, it provides more problems than it helps. Add helper functions for mapping devices while bootstrapping. Reorganize the code a bit, and remove dead code.
Obtained from: NetBSD (partially)
|
135640 |
23-Sep-2004 |
cognet |
Map the kernel very early if needed. Implement sigcode.
|
135529 |
20-Sep-2004 |
jhb |
- Add support for "paging" in stack trace output. That is, when you do a stack trace from ddb, the output will pause with a '--More--' prompt every 18 lines. If you hit Enter, it will print another line and prompt again. If you hit space it will output another page and then prompt. If you hit 'q' or 'x' it will abort the rest of the stack trace. - Fix the sparc64 userland stack trace to honor the total count of lines to print. This is useful if your trace happens to walk back onto 0xdeadc0de and gets stuck in an endless loop.
MFC after: 1 month Tested on: i386, alpha, sparc64
|
134934 |
08-Sep-2004 |
scottl |
Fix a problem with tag->boundary inheritence that has existed since day one and was propagated to nearly every platform. The boundary of the child needs to consider the boundary of the parent and pick the minimum of the two, not the maximum. However, if either is 0 then pick the appropriate one. This bug was exposed by a recent change to ATA, which should now be fixed by this change. The alignment and maxsegsz tag attributes likely also need a similar review in the near future.
This is a MT5 candidate.
Reviewed by: marcel Submitted by: sos (in part)
|
134791 |
05-Sep-2004 |
julian |
Refactor a bunch of scheduler code to give basically the same behaviour but with slightly cleaned up interfaces.
The KSE structure has become the same as the "per thread scheduler private data" structure. In order to not make the diffs too great one is #defined as the other at this time.
The KSE (or td_sched) structure is now allocated per thread and has no allocation code of its own.
Concurrency for a KSEGRP is now kept track of via a simple pair of counters rather than using KSE structures as tokens.
Since the KSE structure is different in each scheduler, kern_switch.c is now included at the end of each scheduler. Nothing outside the scheduler knows the contents of the KSE (aka td_sched) structure.
The fields in the ksegrp structure that are to do with the scheduler's queueing mechanisms are now moved to the kg_sched structure. (per ksegrp scheduler private data structure). In other words how the scheduler queues and keeps track of threads is no-one's business except the scheduler's. This should allow people to write experimental schedulers with completely different internal structuring.
A scheduler call sched_set_concurrency(kg, N) has been added that notifies teh scheduler that no more than N threads from that ksegrp should be allowed to be on concurrently scheduled. This is also used to enforce 'fainess' at this time so that a ksegrp with 10000 threads can not swamp a the run queue and force out a process with 1 thread, since the current code will not set the concurrency above NCPU, and both schedulers will not allow more than that many onto the system run queue at a time. Each scheduler should eventualy develop their own methods to do this now that they are effectively separated.
Rejig libthr's kernel interface to follow the same code paths as linkse for scope system threads. This has slightly hurt libthr's performance but I will work to recover as much of it as I can.
Thread exit code has been cleaned up greatly. exit and exec code now transitions a process back to 'standard non-threaded mode' before taking the next step. Reviewed by: scottl, peter MFC after: 1 week
|
134398 |
27-Aug-2004 |
marcel |
Move the kernel-specific logic to adjust frompc from MI to MD. For these two reasons: 1. On ia64 a function pointer does not hold the address of the first instruction of a functions implementation. It holds the address of a function descriptor. Hence the user(), btrap(), eintr() and bintr() prototypes are wrong for getting the actual code address. 2. The logic forces interrupt, trap and exception entry points to be layed-out contiguously. This can not be achieved on ia64 and is generally just bad programming.
The MCOUNT_FROMPC_USER macro is used to set the frompc argument to some kernel address which represents any frompc that falls outside the kernel text range. The macro can expand to ~0U to bail out in that case. The MCOUNT_FROMPC_INTR macro is used to set the frompc argument to some kernel address to represent a call to a trap or interrupt handler. This to avoid that the trap or interrupt handler appear to be called from everywhere in the call graph. The macro can expand to ~0U to prevent adjusting frompc. Note that the argument is selfpc, not frompc.
This commit defines the macros on all architectures equivalently to the original code in sys/libkern/mcount.c. People can take it from here...
Compile-tested on: alpha, amd64, i386, ia64 and sparc64 Boot-tested on: i386
|
133464 |
11-Aug-2004 |
marcel |
Add __elfN(dump_thread). This function is called from __elfN(coredump) to allow dumping per-thread machine specific notes. On ia64 we use this function to flush the dirty registers onto the backingstore before we write out the PRSTATUS notes.
Tested on: alpha, amd64, i386, ia64 & sparc64 Not tested on: arm, powerpc
|
133453 |
10-Aug-2004 |
alc |
Add a comment describing pmap_extract_and_hold() noting that the protection check still needs implementation on arm.
|
133237 |
06-Aug-2004 |
cognet |
Use the new prototype for the zone constructor.
|
133143 |
04-Aug-2004 |
alc |
- Push down the acquisition and release of Giant into pmap_enter_quick() on those architectures without pmap locking. - Eliminate the acquisition and release of Giant in vm_map_pmap_enter().
|
133084 |
03-Aug-2004 |
mux |
Instead of calling ia32_pause() conditionally on __i386__ or __amd64__ being defined, define and use a new MD macro, cpu_spinwait(). It only expands to something on i386 and amd64, so the compiled code should be identical.
Name of the macro found by: jhb Reviewed by: jhb
|
133012 |
02-Aug-2004 |
cognet |
*blush* Fix htonl and htons.
|
133011 |
02-Aug-2004 |
cognet |
Fix comments.
Spotted out by: mux
|
132899 |
30-Jul-2004 |
alc |
- Push down the acquisition and release of Giant into pmap_protect() on those architectures without pmap locking. - Eliminate the acquisition and release of Giant from vm_map_protect().
(Translation: mprotect(2) runs to completion without touching Giant on alpha, amd64, i386 and ia64.)
|
132834 |
29-Jul-2004 |
cognet |
Don't use cast as lvalue.
|
132702 |
27-Jul-2004 |
rwatson |
Correct typo in prior commit: s/cd/td/
|
132700 |
27-Jul-2004 |
rwatson |
Pass a thread argument into cpu_critical_{enter,exit}() rather than dereference curthread. It is called only from critical_{enter,exit}(), which already dereferences curthread. This doesn't seem to affect SMP performance in my benchmarks, but improves MySQL transaction throughput by about 1% on UP on my Xeon.
Head nodding: jhb, bmilekic
|
132560 |
22-Jul-2004 |
alc |
MFi386 revision 1.421 - Use kmem_alloc_nofault() rather than kmem_alloc_pageable() in pmap_mapdev(). See revision 1.140 of kern/sys_pipe.c for a detailed rationale.
|
132516 |
21-Jul-2004 |
cognet |
Do not declare curpcb.
|
132514 |
21-Jul-2004 |
cognet |
Use the kernel pmap if no thread is provided.
|
132513 |
21-Jul-2004 |
cognet |
Define pmap_page_is_mapped().
|
132503 |
21-Jul-2004 |
cognet |
Do not use NULL as a malloc type for contigmalloc().
|
132482 |
21-Jul-2004 |
marcel |
Unify db_stack_trace_cmd(). All it did was look up the thread given the thread ID and call db_trace_thread(). Since arm has all the logic in db_stack_trace_cmd(), rename the new DB_COMMAND function to db_stack_trace to avoid conflicts on arm. While here, have db_stack_trace parse its own arguments so that we can use a more natural radix for IDs. If the ID is not a thread ID, or more precisely when no thread exists with the ID, try if there's a process with that ID and return the first thread in it. This makes it easier to print stack traces from the ps output.
requested by: rwatson@ tested on: amd64, i386, ia64
|
132474 |
20-Jul-2004 |
cognet |
Implement ptrace_set_pc(). Add a stub for ptrace_clear_single_step().
|
132473 |
20-Jul-2004 |
cognet |
Remove astpending, it has not been used for a long time.
|
132472 |
20-Jul-2004 |
cognet |
Uncomment the vector relocation code.
|
132471 |
20-Jul-2004 |
cognet |
Nuke disable_intr() and enable_intr(), as it already exists elsewhere.
|
132402 |
19-Jul-2004 |
cognet |
Make kdb_backtrace() sort of work.
|
132383 |
19-Jul-2004 |
das |
Make FLT_ROUNDS correctly reflect the dynamic rounding mode.
|
132119 |
13-Jul-2004 |
cognet |
In pmap_remove_pages(), when the pv_list is entry, we want to clean the PG_WRITEABLE flag, not the PG_REFERENCED flag.
Submitted by: alc
|
132082 |
13-Jul-2004 |
alc |
Push down the acquisition and release of the page queues lock into pmap_remove_pages(). (The implementation of pmap_remove_pages() is optional. If pmap_remove_pages() is unimplemented, the acquisition and release of the page queues lock is unnecessary.)
Remove spl calls from the alpha, arm, and ia64 pmap_remove_pages().
|
132059 |
12-Jul-2004 |
cognet |
Update to kdb.
|
132058 |
12-Jul-2004 |
cognet |
Remove the kbd_trap() declaration.
|
132057 |
12-Jul-2004 |
cognet |
Protect setjmp.h with #ifndef _MACHINE_SETJMP_H_.
|
132056 |
12-Jul-2004 |
cognet |
Forward declare "struct pcb", so that one does not need to include <machine/pcb.h> before including <machine/pmap.h>.
|
132055 |
12-Jul-2004 |
cognet |
Implement a stub breakpoint().
|
132054 |
12-Jul-2004 |
cognet |
Implement makectx().
|
132053 |
12-Jul-2004 |
cognet |
Prototype makectx().
|
132052 |
12-Jul-2004 |
cognet |
Import bus_memio.h and bus_pio.h for arm.
|
132051 |
12-Jul-2004 |
cognet |
Import a kdb.h for arm, which contains stubs right now.
|
131837 |
08-Jul-2004 |
cognet |
Define NSFBUFS and use it.
|
131658 |
05-Jul-2004 |
alc |
Correct pmap_extract()'s return type. It should be vm_paddr_t, not vm_offset_t.
|
131496 |
02-Jul-2004 |
cognet |
ithread_schedule() now only takes one argument.
|
131495 |
02-Jul-2004 |
cognet |
Define __RMAN_RESOURCE_VISIBLE where appropriate.
|
131231 |
28-Jun-2004 |
cognet |
Remove unused includes.
Spotted out by: pjd
|
130745 |
19-Jun-2004 |
cognet |
Fix compilation for Xscale.
|
130734 |
19-Jun-2004 |
cognet |
Include sys/module.h.
|
130733 |
19-Jun-2004 |
cognet |
I happened to have a sys/pool.h file in my tree, but most people do not, so nuke this useless include.
|
130645 |
17-Jun-2004 |
cognet |
Nuke dead code.
|
130644 |
17-Jun-2004 |
cognet |
Nuke bus_space_mmap(), as it does not exist in FreeBSD.
|
130585 |
16-Jun-2004 |
phk |
Do the dreaded s/dev_t/struct cdev */ Bump __FreeBSD_version accordingly.
|
130164 |
06-Jun-2004 |
phk |
Remove filename+line number from panic messages.
|
130028 |
03-Jun-2004 |
tjr |
Remove checks for curthread == NULL - it can't happen.
|
130023 |
03-Jun-2004 |
tjr |
Move TDF_DEADLKTREAT into td_pflags (and rename it accordingly) to avoid having to acquire sched_lock when manipulating it in lockmgr(), uiomove(), and uiomove_fromphys().
Reviewed by: jhb
|
129750 |
26-May-2004 |
tmm |
Retire cpu_sched_exit(); it is not used any more.
|
129580 |
22-May-2004 |
mux |
Remove two debugging printf().
On behalf of: cognet
|
129444 |
19-May-2004 |
bde |
Moved most of the "MI" definitions and declarations from <machine/profile.h> to <sys/gmon.h>. Cleaned them up a little by not attempting to ifdef for incomplete and out of date support for GUPROF in userland, as in the sparc64 version.
|
129393 |
18-May-2004 |
stefanf |
<stdint.h> should define WINT_M{AX,IN} independent from whether WCHAR_MIN is defined. Otherwise first including <wchar.h> and then <stdint.h> leads to no WINT_M{AX,IN} at all.
PR: 64956 Approved by: das (mentor)
|
129282 |
16-May-2004 |
peter |
Make a small revision to the api between the elf linker core and the elf_reloc() backends for two reasons. First, to support the possibility of there being two elf linkers in the kernel (eg: amd64), and second, to pass the relocbase explicitly (for relocating .o format kld files).
|
129254 |
14-May-2004 |
cognet |
Implement bcopy, memcpy and memcmp in support.S.
|
129250 |
14-May-2004 |
cognet |
Implement bzero et memset in support.S
|
129227 |
14-May-2004 |
cognet |
This is FreeBSD/arm, not FreeBSD/i386
Submitted by: ru
|
129220 |
14-May-2004 |
cognet |
Define uart_sa1110_ops and uart_sa1110_classe in .c files instead of spamming uart_cpu.h
|
129212 |
14-May-2004 |
cognet |
Implement enough of an uart driver to get serial console working.
|
129198 |
14-May-2004 |
cognet |
Import FreeBSD/arm kernel bits. It only supports sa1110 (on simics) right now, but xscale support should come soon. Some of the initial work has been provided by : Stephane Potvin <sepotvin at videotron.ca> Most of this comes from NetBSD.
|
128940 |
04-May-2004 |
cognet |
Don't declare osigset_t, as it is done in sys/_sigset.h.
|
128938 |
04-May-2004 |
cognet |
Add some endianess-related functions and macros.
|
128937 |
04-May-2004 |
cognet |
Add the Elf32_Auxinfo declaretion. Define AT_*. (Maybe some of this could go in a MI header ?)
|
128936 |
04-May-2004 |
cognet |
Define __double_t and __float_t.
|
127914 |
05-Apr-2004 |
imp |
Remove advertising clause from University of California Regent's license, per letter dated July 22, 1999.
Approved by: core
|
127239 |
20-Mar-2004 |
marcel |
Introduce the cpumask_t type. The purpose of the type is to create a level of abstraction for any and all CPU mask and CPU bitmap variables so that platforms have the ability to break free from the hard limit of 32 CPUs, simply because we don't have more bits in an u_int. Note that the type is not supposed to solve massive parallelism, where the number of CPUs can be larger than the width of the widest integral type. As such, cpumask_t is not supposed to be a compound type. If such would be necessary in the future, we can deal with the issues then and there. For now, it can be assumed that the type is integral and unsigned.
With this commit, all MD definitions start off as u_int. This allows us to phase-in cpumask_t at our leasure without breaking anything. Once cpumask_t is used consistently, platforms can switch to wider (or smaller) types if such would be beneficial (or not; whatever :-)
Compile-tested on: i386
|
120422 |
25-Sep-2003 |
peter |
Add sysentvec->sv_fixlimits() hook so that we can catch cases on 64 bit systems where the data/stack/etc limits are too big for a 32 bit process.
Move the 5 or so identical instances of ELF_RTLD_ADDR() into imgact_elf.c.
Supply an ia32_fixlimits function. Export the clip/default values to sysctl under the compat.ia32 heirarchy.
Have mmap(0, ...) respect the current p->p_limits[RLIMIT_DATA].rlim_max value rather than the sysctl tweakable variable. This allows mmap to place mappings at sensible locations when limits have been reduced.
Have the imgact_elf.c ld-elf.so.1 placement algorithm use the same method as mmap(0, ...) now does.
Note that we cannot remove all references to the sysctl tweakable maxdsiz etc variables because /etc/login.conf specifies a datasize of 'unlimited'. And that causes exec etc to fail since it can no longer find space to mmap things.
|
118382 |
03-Aug-2003 |
obrien |
Style sync.
|
115164 |
19-May-2003 |
kan |
sys/sys/limits.h:
- Fix visibilty test for LONG_BIT and WORD_BIT. `#if defined(__FOO_VISIBLE)' is alays wrong because __FOO_VISIBLE is always defined (to 0 for invisibility).
sys/<arch>/include/limits.h sys/<arch>/include/_limits.h:
- Style fixes.
Submitted by: bde Reviewed by: bsdmike Approved by: re (scottl)
|
114678 |
04-May-2003 |
kan |
Style fixes. Remove DBL_DIG, DBL_MIN, DBL_MAX and their FLT_ counterparts, they were marked for deprecation ever since SUSv1 at least. Only define ULLONG_MIN/MAX and LLONG_MAX if long long type is supported. Restore a lost comment in MI _limits.h file and remove it from sys/limits.h where it does not belong.
|
114216 |
29-Apr-2003 |
kan |
Deprecate machine/limits.h in favor of new sys/limits.h. Change all in-tree consumers to include <sys/limits.h>
Discussed on: standards@ Partially submitted by: Craig Rodrigues <rodrigc@attbi.com>
|
113941 |
23-Apr-2003 |
kan |
Add a new sys/limits.h file which in turn depends on machine/_limits.h to get actual constant values. This is in preparation for machine/limits.h retirement.
Discussed on: standards@ Submitted by: Craig Rodrigues <rodrigc@attbi.com> (*) Modified by: kan
|
112569 |
25-Mar-2003 |
jake |
- Add vm_paddr_t, a physical address type. This is required for systems where physical addresses larger than virtual addresses, such as i386s with PAE. - Use this to represent physical addresses in the MI vm system and in the i386 pmap code. This also changes the paddr parameter to d_mmap_t. - Fix printf formats to handle physical addresses >4G in the i386 memory detection code, and due to kvtop returning vm_paddr_t instead of u_long.
Note that this is a name change only; vm_paddr_t is still the same as vm_offset_t on all currently supported platforms.
Sponsored by: DARPA, Network Associates Laboratories Discussed with: re, phk (cdevsw change)
|
108175 |
22-Dec-2002 |
tjr |
MB_LEN_MAX is not MD, move it to the MI limits.h.
|
105014 |
13-Oct-2002 |
mike |
Add standards visibility conditionals. Change any uses of sigset_t to struct __sigset to avoid depending on objects from <sys/signal.h>.
|
103436 |
17-Sep-2002 |
peter |
Initiate deorbit burn for the i386-only a.out related support. Moves are under way to move the remnants of the a.out toolchain to ports. As the comment in src/Makefile said, this stuff is deprecated and one should not expect this to remain beyond 4.0-REL. It has already lasted WAY beyond that.
Notable exceptions: gcc - I have not touched the a.out generation stuff there. ldd/ldconfig - still have some code to interface with a.out rtld. old as/ld/etc - I have not removed these yet, pending their move to ports. some includes - necessary for ldd/ldconfig for now.
Tested on: i386 (extensively), alpha
|
102874 |
03-Sep-2002 |
mike |
Now that _BSD_CLK_TCK_ and _BSD_CLOCKS_PER_SEC_ are the same on all architectures, move the definition directly into <time.h> and finish the removal of <machine/ansi.h>.
|
102429 |
26-Aug-2002 |
mike |
Since arm and powerpc aren't far enough to set stathz, take a preemptive strike and change _BSD_CLK_TCK_ and _BSD_CLOCKS_PER_SEC_ to 128.
Approved by: benno
|
102315 |
23-Aug-2002 |
mike |
Move several MI types from <machine/_types.h> to <sys/_types.h>. These types are unlikely to ever become very MD. They include: clockid_t, ct_rune_t, fflags_t, intrmask_t, mbstate_t, off_t, pid_t, rune_t, socklen_t, timer_t, wchar_t, and wint_t.
While moving them, make a few adjustments (submitted by bde): o __ct_rune_t needs to be precisely `int', not necessarily __int32_t, since the arg type of the ctype functions is int. o __rune_t, __wchar_t and __wint_t inherit this via a typedef of __ct_rune_t. o Some minor wording changes in the comment blocks for ct_rune_t and mbstate_t.
Submitted by: bde (partially)
|
102227 |
21-Aug-2002 |
mike |
o Merge <machine/ansi.h> and <machine/types.h> into a new header called <machine/_types.h>. o <machine/ansi.h> will continue to live so it can define MD clock macros, which are only MD because of gratuitous differences between architectures. o Change all headers to make use of this. This mainly involves changing: #ifdef _BSD_FOO_T_ typedef _BSD_FOO_T_ foo_t; #undef _BSD_FOO_T_ #endif to: #ifndef _FOO_T_DECLARED typedef __foo_t foo_t; #define _FOO_T_DECLARED #endif
Concept by: bde Reviewed by: jake, obrien
|
100882 |
29-Jul-2002 |
mike |
Create a new header <machine/_stdint.h> for storing MD parts of <stdint.h>. Previously, parts were defined in <machine/ansi.h> and <machine/limits.h>. This resulted in two problems: (1) Defining macros in <machine/ansi.h> gets in the way of that header only defining types. (2) Defining C99 limits in <machine/limits.h> adds pollution to <limits.h>.
|
99733 |
10-Jul-2002 |
mike |
Remove label_t and physadr, which seem to have never been used in FreeBSD.
Submitted by: bde
|
99630 |
09-Jul-2002 |
mike |
Remove an unused type.
|
99594 |
08-Jul-2002 |
mike |
Move __offsetof() macro from <machine/ansi.h> to <sys/cdefs.h>. It's hardly MD, since all our platforms share the same macro. It's not really compiler dependent either, but this helps in reducing <machine/ansi.h> to only type definitions.
|
98710 |
23-Jun-2002 |
iedowse |
Make vm_pindex_t 64-bit on all platforms. This is necessary to avoid overflows with the large file sizes that UFS2 permits.
Reviewed by: dillon, alc, tegge
|
96606 |
14-May-2002 |
phk |
Move MI stuff out of MD param.h files.
It can all still be overridden in the MD files should need suddenly arise.
|
96604 |
14-May-2002 |
phk |
Remove the unused definitions of ctod() and dotc().
|
96319 |
10-May-2002 |
obrien |
Sync with the other platforms.
|
93092 |
24-Mar-2002 |
obrien |
Guard against redefining __gnuc_va_list.
|
92812 |
20-Mar-2002 |
alfred |
Remove __P.
|
87575 |
09-Dec-2001 |
obrien |
We need machine/{signal,ucontext}.h to build a cross GCC compiler. So craft the proper versions of these and commit em.
|
87574 |
09-Dec-2001 |
obrien |
Following sys/i386/include/ansi.h rev 1.33, add additional integer types in <machine/ansi.h> and that are required by <sys/stdint.h>.
|
87571 |
09-Dec-2001 |
obrien |
We need machine/types.h to build a cross GCC compiler. (copied from src/sys/i386/include/types.h rev 1.23, except for the label_t size, which is '10' everywhere BUT on i386)
|
87567 |
09-Dec-2001 |
obrien |
machine/limits.h (taken from i386/include/limits.h rev 1.19)
|
87158 |
01-Dec-2001 |
mike |
o Stop abusing MD headers with non-MD types. o Hide nonstandard functions and types in <netinet/in.h> when _POSIX_SOURCE is defined. o Add some missing types (required by POSIX.1-200x) to <netinet/in.h>. o Restore vendor ID from Rev 1.1 in <netinet/in.h> and make use of new __FBSDID() macro. o Fix some miscellaneous issues in <arpa/inet.h>. o Correct final argument for the inet_ntop() function (POSIX.1-200x). o Get rid of the namespace pollution from <sys/types.h> in <arpa/inet.h>.
Reviewed by: fenner Partially submitted by: bde
|
85335 |
23-Oct-2001 |
mike |
Remove funky right justification.
Pointed out by: bde
|
85187 |
19-Oct-2001 |
obrien |
Try two on the preprocessing logic.
Reviewed by: ru
|
85183 |
19-Oct-2001 |
obrien |
Blah, fix braino where ru had to remind me of proper preprocessor syntax. Bad fingers, no cookie.
|
85108 |
18-Oct-2001 |
obrien |
My attempts at minimizing the number of #def's got me in trouble.
|
84783 |
10-Oct-2001 |
ps |
Make MAXTSIZ, DFLDSIZ, MAXDSIZ, DFLSSIZ, MAXSSIZ, SGROWSIZ loader tunable.
Reviewed by: peter MFC after: 2 weeks
|
82530 |
30-Aug-2001 |
mike |
o Remove some GCCisms in src/powerpc/include/endian.h. o Unify <machine/endian.h>'s across all architectures. o Make bswapXX() functions use a different spelling of u_int16_t and friends to reduce namespace pollution. The bswapXX() functions don't actually exist, but we'll probably import these at some point. Atleast one driver (if_de) depends on bswapXX() for big endian cases. o Deprecate byteorder(3) prototypes from <sys/types.h>, these are now prototyped indirectly in <arpa/inet.h>. o Deprecate in_addr_t and in_port_t typedefs in <sys/types.h>, these are now typedef'd in <arpa/inet.h>. o Change byteorder(3) prototypes to use standards compliant uint32_t (spelled __uint32_t to reduce namespace pollution). o Document new preferred headers and standards compliance.
Discussed with: bde PR: 29946 Reviewed by: bmilekic
|
79053 |
01-Jul-2001 |
imp |
Don't need the .keep_me files. Obrien and I committed past each other.
Add 0-9 to the list of possible kernel names at matsushita-san's suggestion.
Submitted by: Makoto MATSUSHITA-san <matusita@jp.FreeBSD.org>
|
79032 |
30-Jun-2001 |
obrien |
Add .cvsignore so that CVS stop's complaining about people's kernel build dirs.
|
79030 |
30-Jun-2001 |
obrien |
Ensure sys/${MACHINE}/compile/FOO exists
Reviewed by: arch, imp, peter, and the USENIX terminal room secret kernel cabal
|
77931 |
09-Jun-2001 |
obrien |
Fix style of defines.
|
76785 |
18-May-2001 |
obrien |
Make _BSD_TIME_T_ (time_t) an `int' rather than `long'. This will help flag errors where programmers assume time_t is a long, which it is not on 64-bit platforms.
Submitted by: bde
|
76784 |
18-May-2001 |
obrien |
Style changes -- revert ordering to mostly two revs ago. Embellish some comments, fix tab'ing.
Requested by: bde
|
76701 |
16-May-2001 |
obrien |
Consistently define the rune types. Follow NetBSD's lead and add a _BSD_MBSTATE_T_ type.
|
76700 |
16-May-2001 |
obrien |
Move the int typedefs to the top so they can be used in defining other types. Ensure every platform has __offsetof. Make multiple inclusion detection consistent with other <platform>/include/*.h files.
|
72569 |
17-Feb-2001 |
ume |
Correct disordering which is corresponding to bde's fix to i386/include/ansi.h.
|
72510 |
15-Feb-2001 |
ume |
Correct 2nd argument of getnameinfo(3) to socklen_t.
Reviewed by: itojun
|
72358 |
11-Feb-2001 |
markm |
RIP <machine/lock.h>.
Some things needed bits of <i386/include/lock.h> - cy.c now has its own (only) copy of the COM_(UN)LOCK() macros, and IMASK_(UN)LOCK() has been moved to <i386/include/apic.h> (AKA <machine/apic.h>). Reviewed by: jhb
|
71576 |
24-Jan-2001 |
jasone |
Convert all simplelocks to mutexes and remove the simplelock implementations.
|
70786 |
08-Jan-2001 |
obrien |
Remove seconds types we don't use that came in thru the NetBSD heiratage.
|
70651 |
04-Jan-2001 |
obrien |
StrongARM platform-specific definitions.
|