summaryrefslogtreecommitdiffstats
Commit message (Collapse)AuthorAgeFilesLines
...
* Remove #include <machine/asmacros.h> from files that don't need it.ian2014-03-114-4/+1
|
* Remove the unreferenced DATA() macro. That leaves only GET_CURTHREAD_PTR()ian2014-03-111-26/+8
| | | | | | | which was added by cognet in 2012, so remove the no-longer-applicable license stuff that referred to all the old contents, and put in a standard 2-clause BSD license (to cover the 6 lines of useful code left in here).
* Don't try to return a vector to a caller that only cares if a vectortychon2014-03-111-2/+6
| | | | | | is pending or not. Approved by: neel (co-mentor)
* Enhance the mechanism that lets you configure the ubldr boot device byian2014-03-115-81/+304
| | | | | | | | | | | | | | | | setting the u-boot environment variable loaderdev=. It used to accept only 'disk' or 'net'. Now it allows specification of unit, slice, and partition as well. In addition to the generic 'disk' it also accepts specific storage device types such as 'mmc' or 'sata'. If there isn't a loaderdev env var, the historical behavior is maintained. It will use the first storage device it finds, or a network device if no working storage device exists. 99% of the work on this was done by Patrick Kelsey, but I made some changes, so if anything goes wrong, blame me. Submitted by: Patrick Kelsey <kelsey@ieee.org>
* Garbage collect the old way of adding the libstdc++ include directoriesdim2014-03-111-8/+0
| | | | | | | | | | | | in clang's InitHeaderSearch.cpp. This has been superseded by David Chisnall's commit in r255321. Moreover, if libc++ is used, the libstdc++ include directories should not be in the search path at all. These directories are now only used if you pass -stdlib=libstdc++. MFC after: 3 days X-MFC-With: r261991
* Repair recognition of "CC" as an alias for the C++ compiler, since itdim2014-03-111-0/+2
| | | | | | | | | | was silently broken by upstream for a Windows-specific use-case. Apparently some versions of CMake still rely on this archaic feature... Reported by: rakuco MFC after: 3 days X-MFC-With: r261991
* MFV of 263039, tzdata2014a:edwin2014-03-115-38/+78
| | | | | | - Fix historical info about asia/Zion, Ukraine - Fiji starts DST at 02:00 instead of 03:00 - Turkey will move to DST at 31 March this year.
* Remove clause 3 (the advertising clause), per the regent's letter.imp2014-03-113-7/+3
|
* Remove clause 3 (advertising clause), per regent's letter.imp2014-03-111-5/+1
|
* Replace the userspace atpic stub with a more functional vmm.ko model.tychon2014-03-1119-128/+916
| | | | | | | | New ioctls VM_ISA_ASSERT_IRQ, VM_ISA_DEASSERT_IRQ and VM_ISA_PULSE_IRQ can be used to manipulate the pic, and optionally the ioapic, pin state. Reviewed by: jhb, neel Approved by: neel (co-mentor)
* Use panic rather than printf to "handle" an arm26 address exceptionian2014-03-111-6/+5
| | | | | (should never happen on arm32). Pass the right arguments to panic for the reset exception (which also should never happen).
* No functional changes. Rewrite comments, use tabs consistantly, reorderian2014-03-111-159/+141
| | | | some of the functions so that similar things are grouped together.
* Remove some unnecessary indirection and jump right to the handler functions.ian2014-03-111-36/+3
|
* Support Last-Modified behind proxies which return UTC instead of GMT.bdrewery2014-03-111-0/+6
| | | | | | | | | | | | | | | | The standard states that GMT must be used, but that UTC is equivalent. Still parse UTC as otherwise this causes problems for pkg(8). It will refetch the repository every time 'pkg update' or other remote operations are used behind these proxies. RFC2616: "All HTTP date/time stamps MUST be represented in Greenwich Mean Time (GMT), without exception. For the purposes of HTTP, GMT is exactly equal to UTC (Coordinated Universal Time)."" Approved by: bapt (mentor) Reviewed by: des, peter Sponsored by: EMC / Isilon Storage Division MFC after: 1 week
* xen: add a hook to perform AP startuproyger2014-03-115-6/+105
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | AP startup on PVH follows the PV method, so we need to add a hook in order to diverge from bare metal. Approved by: gibbs Sponsored by: Citrix Systems R&D amd64/amd64/machdep.c: - Add hook for start_all_aps on native (using native_start_all_aps defined in mp_machdep). amd64/amd64/mp_machdep.c: - Make some variables global because they will also be used by the Xen PVH AP startup code. - Use the start_all_aps hook to start APs. - Rename start_all_aps to native_start_all_aps. amd64/include/smp.h: - Add declaration for native_start_all_aps. x86/include/init.h: - Declare start_all_aps hook in init_ops. x86/xen/pv.c: - Pick external declarations from mp_machdep. - Introduce Xen PV code to start APs on PVH. - Set start_all_aps init hook to use the Xen PVH implementation.
* xen: changes to hvm code in order to support PVH guestsroyger2014-03-111-5/+42
| | | | | | | | | | | | | On PVH we don't need to init the shared info page, or disable emulated devices. Also, make sure PV IPIs are set before starting the APs. Approved by: gibbs Sponsored by: Citrix Systems R&D x86/xen/hvm.c: - Return early from functions that are no-ops on Xen PVH guests. - In order to make sure PV IPIs are setup before AP startup, initialize them in SI_SUB_SMP-1.
* xen: add hook for AP bootstrap memory reservationroyger2014-03-112-4/+12
| | | | | | | | | | | | | | | This hook will only be implemented for bare metal, Xen doesn't require any bootstrap code since APs are started in long mode with paging enabled. Approved by: gibbs Sponsored by: Citrix Systems R&D amd64/amd64/machdep.c: - Set mp_bootaddress hook for bare metal. x86/include/init.h: - Define mp_bootaddress in init_ops.
* xen: add an apic_enumerator for PVHroyger2014-03-112-0/+135
| | | | | | | | | | | | | | | | On PVH there's no ACPI, so the CPU enumeration must be implemented using Xen hypercalls. Approved by: gibbs Sponsored by: Citrix Systems R&D x86/xen/pvcpu_enum.c: - Enumerate avaiable vCPUs on PVH by using the VCPUOP_is_up hypercall. - Set vcpu_id for PVH guests. conf/files.amd64: - Include the PV CPU enumerator in the XENHVM build.
* xen: use the same hypercall mechanism for XEN and XENHVMroyger2014-03-114-29/+19
| | | | | | | | | | | | | | | | | | | Currently XEN (PV) and XENHVM (PVHVM) ports use different ways to issue hypercalls, unify this by filling the hypercall_page under HVM also. Approved by: gibbs Sponsored by: Citrix Systems R&D amd64/include/xen/hypercall.h: - Unify Xen hypercall code by always using the PV way. i386/i386/locore.s: - Define hypercall_page on i386 XENHVM. x86/xen/hvm.c: - Fill hypercall_page on XENHVM kernels using the HVM method (only when running as an HVM guest).
* xen: implement hook to fetch and parse e820 memory maproyger2014-03-114-19/+59
| | | | | | | | | | | | | | | | | | | | | | | | | e820 memory map is fetched using a hypercall under Xen PVH, so add a hook to init_ops in oder to diverge from bare metal and implement a Xen variant. Approved by: gibbs Sponsored by: Citrix Systems R&D x86/include/init.h: - Add a parse_memmap hook to init_ops, that will be called to fetch and parse the memory map. amd64/amd64/machdep.c: - Decouple the fetch and the parse of the memmap, so the parse function can be shared with Xen code. - Move code around in order to implement the parse_memmap hook. amd64/include/pc/bios.h: - Declare bios_add_smap_entries (implemented in machdep.c). x86/xen/pv.c: - Implement fetching of e820 memmap when running as a PVH guest by using the XENMEM_memory_map hypercall.
* xen: implement an early timer for Xen PVHroyger2014-03-1115-59/+222
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | When running as a PVH guest, there's no emulated i8254, so we need to use the Xen PV timer as the early source for DELAY. This change allows for different implementations of the early DELAY function and implements a Xen variant for it. Approved by: gibbs Sponsored by: Citrix Systems R&D dev/xen/timer/timer.c: dev/xen/timer/timer.h: - Implement Xen early delay functions using the PV timer and declare them. x86/include/init.h: - Add hooks for early clock source initialization and early delay functions. i386/i386/machdep.c: pc98/pc98/machdep.c: amd64/amd64/machdep.c: - Set early delay hooks to use the i8254 on bare metal. - Use clock_init (that will in turn make use of init_ops) to initialize the early clock source. amd64/include/clock.h: i386/include/clock.h: - Declare i8254_delay and clock_init. i386/xen/clock.c: - Rename DELAY to i8254_delay. x86/isa/clock.c: - Introduce clock_init that will take care of initializing the early clock by making use of the init_ops hooks. - Move non ISA related delay functions to the newly introduced delay file. x86/x86/delay.c: - Add moved delay related functions. - Implement generic DELAY function that will use the init_ops hooks. x86/xen/pv.c: - Set PVH hooks for the early delay related functions in init_ops. conf/files.amd64: conf/files.i386: conf/files.pc98: - Add delay.c to the kernel build.
* xen: rework xen timer so it can be used early in boot processroyger2014-03-111-9/+28
| | | | | | | | | | | | | | | | | | This should not introduce any functional change, and makes the functions suitable to be called before we have actually mapped the vcpu_info struct on a per-cpu basis. Approved by: gibbs Sponsored by: Citrix Systems R&D dev/xen/timer/timer.c: - Remove citrical_{enter/exit}, the clock code will already be called with preemption disabled when needed. Add a comment to that regard in xentimer_get_timecount. - Allow xen_fetch_vcpu_time to be called with a specifc vcpu_info that will be used to fetch current time. - Assert that xentimer_et_start will always be called with preemption disabled.
* amd64: introduce hook for custom preload metadata parsersroyger2014-03-113-11/+136
| | | | | | | | | | | | | | | | | | | | | | Add hooks to amd64 in order to have diverging implementations, since on Xen PV the metadata is passed to the kernel in a different form. Approbed by: gibbs Sponsored by: Citrix Systems R&D amd64/amd64/machdep.c: - Define init_ops for native. - Put native code inside of native_parse_preload_data hook. - Call the parse_preload_data in order to fill the metadata info. x86/include/init.h: - Declare the init_ops struct. x86/xen/pv.c: - Declare xen_init_ops that contains the Xen PV implementation of init_ops. - Implement the parse_preload_data for Xen PVH, the info is fetched from HYPERVISOR_start_info->cmd_line as provided by Xen.
* howto_names: unify declarationroyger2014-03-1111-202/+65
| | | | | | | | | | | | | | | | | | | | | | | Approved by: gibbs Sponsored by: Citrix Systems R&D boot/i386/efi/bootinfo.c: boot/i386/libi386/bootinfo.c: boot/ia64/common/bootinfo.c: boot/powerpc/ofw/metadata.c: boot/powerpc/ps3/metadata.c: boot/sparc64/loader/metadata.c: boot/uboot/common/metadata.c: boot/userboot/userboot/bootinfo.c: i386/xen/xen_machdep.c: - Include sys/boot.h - Remove custom definition of howto_names. sys/boot.h: - Define howto_names. x86/xen/pv.c: - Include sys/boot.h
* xen: add and enable Xen console for PVH guestsroyger2014-03-117-35/+100
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This adds and enables the PV console used on XEN kernels to GENERIC/XENHVM kernels in order for it to be used on PVH. Approved by: gibbs Sponsored by: Citrix Systems R&D dev/xen/console/console.c: - Define console_page. - Move xc_printf debug function from i386 XEN code to generic console code. - Rework xc_printf. - Use xen_initial_domain instead of open-coded checks for Dom0. - Gate the attach of the PV console to PV(H) guests. dev/xen/console/xencons_ring.c: - Allow the PV Xen console to output earlier by directly signaling the event channel in start_info if the event channel is not yet initialized. - Use HYPERVISOR_start_info instead of xen_start_info. i386/include/xen/xen-os.h: - Remove prototype for xc_printf since it's now declared in global xen-os.h i386/xen/xen_machdep.c: - Remove previous version of xc_printf. - Remove definition of console_page (now it's defined in the console itself). - Fix some printf formatting errors. x86/xen/pv.c: - Add some early boot debug messages using xc_printf. - Set console_page based on the value passed in start_info. xen/xen-os.h: - Declare console_page and add prototype for xc_printf.
* xen: add macro to detect if running as Dom0royger2014-03-111-0/+7
| | | | | | | | Approved by: gibbs Sponsored by: Citrix Systems R&D xen/xen-os.h: - Add macro to detect if running as Dom0.
* xen: add PV/PVH kernel entry pointroyger2014-03-119-0/+240
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Add the PV/PVH entry point and the low level functions for PVH early initialization. Approved by: gibbs Sponsored by: Citrix Systems R&D amd64/amd64/genassym.c: - Add __FreeBSD_version define to assym.s so it can be used for the Xen notes. amd64/amd64/locore.S: - Make bootstack global so it can be used from Xen kernel entry point. amd64/amd64/xen-locore.S: - Add Xen notes to the kernel. - Add the Xen PV entry point, that is going to call hammer_time_xen. amd64/include/asmacros.h: - Add ELFNOTE macros. i386/xen/xen_machdep.c: - Define HYPERVISOR_start_info for the XEN i386 PV port, which is going to be used in some shared code between PV and PVH. x86/xen/hvm.c: - Define HYPERVISOR_start_info for the PVH port. x86/xen/pv.c: - Introduce hammer_time_xen which is going to perform early setup for Xen PVH: - Setup shared Xen variables start_info, shared_info and xen_store. - Set guest type. - Create initial page tables as FreeBSD expects to find them. - Call into native init function (hammer_time). xen/xen-os.h: - Declare HYPERVISOR_start_info. conf/files.amd64: - Add amd64/amd64/locore.S and x86/xen/pv.c to the list of files.
* amd64/i386: switch IPI handlers to C code.royger2014-03-118-539/+322
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Move asm IPIs handlers to C code, so both Xen and native IPI handlers share the same code. Reviewed by: jhb Approved by: gibbs Sponsored by: Citrix Systems R&D amd64/amd64/apic_vector.S: i386/i386/apic_vector.s: - Remove asm coded IPI handlers and instead call the newly introduced C variants. amd64/amd64/mp_machdep.c: i386/i386/mp_machdep.c: - Add C coded clones to the asm IPI handlers (moved from x86/xen/hvm.c). i386/include/smp.h: amd64/include/smp.h: - Add prototypes for the C IPI handlers. x86/xen/hvm.c: - Move the C IPI handlers to mp_machdep and call those in the Xen IPI handlers. i386/xen/mp_machdep.c: - Add dummy IPI handlers to the i386 Xen PV port (this port doesn't support SMP).
* Fixed MSI interrupt allocation and handling.edavis2014-03-111-78/+36
| | | | | | | Fixed a DMA mapping leak that occurs when defragmenting packet chains. Approved by: davidch (mentor) MFC after: 1 week
* Revert r262994 for now, it fails to boot on armv5.ian2014-03-111-37/+83
|
* Pass the actual baudrate to tty_init_console(). This defines the initialmarcel2014-03-111-1/+1
| | | | | | baudrate of the device special file, and makes sure that on open(2) the UART is programmed with the correct baudrate. This then eliminates the need in uart_tty_param() to override the speed setting.
* Now that the PUSHFRAME and PULLFRAME macros are used only in the swiian2014-03-111-83/+37
| | | | | entry/exit code, they don't need to be macros. Now they're just inline code, and rewritten to use shorter instruction sequences.
* allow the kern.cryptodevallowsoft sysctl to enable symetric/hashes too...jmg2014-03-112-7/+10
| | | | | | | | This will allow us to more easily test the software versions of these routines... Considering that we've never had an software asymetric implmentation, it's doubtful anyone has this enabled...
* some minor clean up.. Always _ZERO memory so mtx_init won't panic...jmg2014-03-112-6/+1
| | | | | | | use the proper macro instead of hand rolling it... Reviewed by: jhb (only the malloc change) MFC after: 1 week
* libbsdstat: fix warnings, set WARNSeadler2014-03-112-3/+1
| | | | libbsdstat can build with WARNS=6 with a one line change.
* Correct a typo in nlm_find_host_by_addr(): the intention of thedelphij2014-03-111-1/+1
| | | | | | | code is to give "<unknown>" rather than comparing the buffer against it. MFC after: 2 weeks
* MFV r262983:delphij2014-03-111-1/+21
| | | | | | 4638 Panic in ZFS via rfs3_setattr()/rfs3_write(): dirtying snapshot! illumos/illumos-gate@2144b121c08e0eb676cc6ca4662ebbc9f9c22fe3
* Export _libc_arm_fpu_present as a private symbol to be used by otherandrew2014-03-111-0/+2
| | | | system libraries, for example libm.
* Arrange for arm fork_trampoline() to return to userland via the standardian2014-03-103-223/+228
| | | | | | | swi_exit code in exception.S instead of having its own inline expansion of the DO_AST and PULLFRAME macros. That means that now all references to the PUSH/PULLFRAME and DO_AST macros are localized to exception.S, so move the macros themselves into there and remove them from asmacros.h
* Change the way the asm GET_CURTHREAD_PTR() macro is defined so that codeian2014-03-103-10/+4
| | | | using it doesn't have to have an "AST_LOCALS" macro somewhere in the file.
* Repair a few minor mismerges from r262261 in the clang-sparc64 projectdim2014-03-104-85/+1
| | | | | | | branch. This is also to minimize differences with upstream. MFC after: 3 weeks X-MFC-With: r262613
* Remove vestigial global, no-longer used since SVN r262904.dteske2014-03-101-6/+0
|
* Whitespace.dteske2014-03-101-2/+2
|
* Move the exception vector table (so-called "page0" data) into exception.Sian2014-03-105-125/+74
| | | | | | | | | | | | | | and eliminate vectors.S. All low-level exception handling is now consolidated into exception.S. Along with moving the default FIQ handler, change it to disable FIQs before returning. An FIQ should never happen, but if it does, it's got to be disabled as part of ignoring it. In general, we have hand-wavy support for FIQs that probably hasn't been used for 10 years and probably doesn't work (almost certainly doesn't work for SMP because it only updates the vector on the current cpu). This change doesn't really make the overall situation any better or worse.
* Eliminate irq_dispatch.S. Move the data items it contained into arm/intr.cian2014-03-1026-145/+18
| | | | | | | | and the functionality it provided into arm/exception.S. Rename the main irq handling routine from arm_handler_execute() to arm_irq_handler() to make it more congruent with how other exception handlers are named, and also update its signature to reflect what has long been reality: it is passed just a trapframe pointer, no interrupt number argument.
* Pass the size of the top-level table to map when mapping the table insteadjhb2014-03-101-1/+1
| | | | | | | of the size of the pointer. Reported by: Coverity Coverity CID: 1147171
* Add the makefile forgotten in previous commitbapt2014-03-101-0/+10
|
* Add a mailer.conf example to use dmabapt2014-03-104-0/+11
|
* Update libucl to 2014-03-03bapt2014-03-1010-62/+371
|\
| * Update libucl to 2014-03-02 version which fixes an important bug when ↵bapt2014-03-1010-62/+371
| | | | | | | | parsing empty arrays
OpenPOWER on IntegriCloud