Commit Graph

196846 Commits

Author SHA1 Message Date
gjb
b6cfb220f7 MFC r271078:
Fix typo: s/_maske/_mask/

Approved by:	re (rodrigc)
Sponsored by:	The FreeBSD Foundation
2014-09-07 00:44:59 +00:00
jhibbits
f971f9cd08 MFC r269701:
Set the si_code appropriately for exception-caused signals.

LLDB checks the si_code, and aborts if a code isn't known.

Approved by:	re (gjb)
Relnotes:	yes
2014-09-06 22:37:47 +00:00
marcel
1e706702bd Fix the PCPU access macros. It was found that the PCPU pointer, when
held in register r13, is used outside the bounds of critical_enter()
and critical_exit() by virtue of optimizations performed by the
compiler. The net effect being that address computations of fields
in the PCPU structure could be relative to the PCPU structure of the
CPU on which the address computation was performed and not related
to the CPU that executes the actual load or store operation.
The typical failure mode being that the per-CPU cache of UMA got
corrupted due to accesses from other CPUs.

Adding more volatile decorating to the register expression does not
help. The thinking being that volatile is assumed to work on memory
references and not register references. Thus, the fix is to perform
the address computation using a volatile inline assembly statement.

Additionally, since the reference is fundamentally non-atomic on ia64
by virtue of have a distinct address computation followed by the
actual load or store operation, it is required to wrap the entire
PCPU access in a critical section.

With PCPU_GET and friends requiring curthread now that they're in a
critical section, low-level use of these macros in functions like
cpu_switch() is not possible anymore. Consequently, a second order
set of changes is needed to avoid using PCPU_GET and friends where
curthread is either not set yet, or in the process of being changed.
In those cases, explicit dereferencing of pcpup is needed. In those
cases it is also possible to do that.

This is a direct commit to stable/10.

Approved by:	re@ (marius)
2014-09-06 22:17:54 +00:00
gjb
52ea0d605b MFC r271043:
Update the autofs(5) manual to reflect it first appeared iN
  FreeBSD 10.1-RELEASE.

Approved by:	re (marius)
Sponsored by:	The FreeBSD Foundation
2014-09-06 20:16:45 +00:00
jhibbits
021e2fad89 MFC r259657,r264205,r264207:
r259657:

Add suspend/resume capabilities to the ATI backlight ppc driver.

With this, also shut off the display (DPMS-style) and disable the
clocking when the backlight level is set to 0.  This is taken from the
radeonkms driver (radeon_legacy_encoders.c) which doesn't yet support
PowerPC.

r264205,r264207:

Fix the ATI backlight driver off/on handling.  Now this driver works
correctly with the ATI Radeon 9700 in the PowerBook G4 1.67GHz.

Code shamelessly taken in spirit from the radeonkms driver, which I
hope will make this driver redundant in the future.

Approved by:	re (marius)
Relnotes:	yes (not suspend/resume, but the rest)
2014-09-06 19:38:40 +00:00
mav
c5202a10e4 MFC r270423:
Restore pre-r239157 handling of sched_yield(), when thread time slice
was aborted, allowing other threads to run.  Without this change thread
is just rescheduled again, that was illustrated by provided test tool.

PR:		192926
Submitted by:	eric@vangyzen.net
Approved by:	re (marius)
2014-09-06 15:26:38 +00:00
mav
273fd13216 MFC r269228:
Add support for SOUND_MIXER_INFO IOCTL, used by gstreamer.

Submitted by:   Dmitry Luhtionov <dmitryluhtionov@gmail.com>
Approved by:	re (marius)
2014-09-06 15:24:48 +00:00
jhb
ed4c49e7dd MFC 270826:
MFamd64: Add a machdep.bootmethod sysctl to inform the installer which
firmware method was used for booting.  This is hardcoded to BIOS on i386.

PR:		192962
Approved by:	re (gjb)
2014-09-06 15:15:06 +00:00
markj
5a094736fb MFC r270348:
Add some missing checks for unsupported interfaces (e.g. pflog(4)) when
handling ioctls. While here, remove duplicated checks for a NULL ifp in
in6_control(): this check is already done near the beginning of the
function.

MFC r270349:
Suppress warnings when retrieving protocol stats from interfaces that
don't support IPv6 (e.g. pflog(4)).

PR:		189117
Approved by:	re (gjb)
2014-09-06 04:39:26 +00:00
jhb
27eceb3a0f MFC 270722:
Correct the destroy example.  The -n argument is not needed (and is not
valid).

Approved by:	re (gjb for 10)
2014-09-05 17:44:10 +00:00
jhb
e5fbff9d81 MFC 270674:
Clarify that the -c argument clears the list of tracepoints specified by
-t (it does not clear all tracepoints).

Approved by:	re (gjb for 10)
2014-09-05 17:22:20 +00:00
jhb
2c7959e7bd MFC 270222:
Bump the default size of cpuset_t masks in userland from 128 bits to 256.

This should not be an ABI change since the various public APIs that use
cpusets all include an explicit size parameter in addition to the cpuset
parameter.

Approved by:	re (gjb)
2014-09-05 15:45:20 +00:00
jhibbits
7d1fd313b1 MFC r261095,r263464,r263752,r264189
r263464,r263752,r275189:

Mask out SRR1 bits that aren't exported to the MSR.

This appears to fix a strange condition with X on 32-bit PowerBooks I
observed, caused by one of these bits getting set in the mcontext, but
not set in the thread, which is a symptom of another problem, more
difficult to diagnose.  Since these bits aren't exported anyway, this
change makes it more explicit that the bits aren't MSR-related in SRR1.

r261095:

Fix 32-bit signal handling on ppc64.  This was broken when the
PSL_USERSTATIC macro was changed.  Since copying 64-bit srr1 into
32-bit srr1 drops the upper 32 bits, any bits set in the context were
dropped, meaning the context check fails.  Since 32-bit set_context()
can't change those bits anyway, copy the ones from the current context
(td->td_frame) before calling set_context().

Approved by:	re
Relnotes:	yes (Affects 10-stable, but not 10.0-release)
2014-09-05 15:13:41 +00:00
kib
db4159a95c MFC r270797:
Direct access to the quota files, in particular, lookup, causes lock
conflict with the quota metadata access. Mark quota vnode lock as
recursive and always exclusive to avoid the problem.

Approved by:	re (gjb)
2014-09-05 13:25:27 +00:00
kib
78a27e5e59 Add function and wrapper to switch lockmgr and vnode lock back to
auto-promotion of shared to exclusive.

Approved by:	re (gjb)
2014-09-05 13:22:28 +00:00
jhibbits
ddbdadae3d MFC r258078,258079
Increase the stack size for ppc64 from 4 pages to 8.

I found a stack overflow when a coredump was taken onto a ZFS volume with
heavy network activity.  2 DSI traps, plus one DECR trap, along with several
function calls in the stack, overflowed the 4 pages.  8 page stack fixes this.

Discussed with: nwhitehorn
Approved by:	re
Relnotes:	yes
2014-09-05 05:07:38 +00:00
emaste
38e6a286e9 Add UPDATING entry for r271116
Noticed by:	nwhitehorn
2014-09-04 21:10:24 +00:00
emaste
d483443db2 MFC boot1.efi stub loader
r264391 (nwhitehorn):

  Add a simple EFI stub loader. This is a quick and dirty of boot1.chrp
  from the PowerPC port with all the Open Firmware bits removed and
  replaced by their EFI counterparts. On the whole, I think I prefer
  Open Firmware.

  This code is supposed to be an immutable shim that sits on the EFI
  system partition, loads /boot/loader.efi from UFS and tells the real
  loader what disk/partition to look at. It finds the UFS root partition
  by the somewhat braindead approach of picking the first UFS partition
  it can find. Better approaches are called for, but this works for now.
  This shim loader will also be useful for secure boot in the future,
  which will require some rearchitecture.

r264403 (nwhitehorn):

  Fix buildworld. I had some local bits in my build tree that caused
  this to work by accident.

r264404 (nwhitehorn):

  Add my copyright here. Most of this is unmodified from the original
  sparc64 version, but at least some indication of changes that postdate
  the actual invention of EFI is probably a good idea.

r264414 (nwhitehorn):

  Apparently some of the i386 boot blocks are so close to full that
  adding single lines to ufsread.c spills them over. Duplicate a whole
  bunch of code to get file sizes into boot1.efi/boot1.c rather than
  modifying ufsread.c.

r264975 (nwhitehorn):

  Add generation of an EFI filesystem to hold boot1.efi. This is a near-
  exact copy of the code from boot1.chrp again.

  The resulting image is installed to /boot/boot1.efifat. If dd'ed to an
  800K "efi" partition, it should result in a bootable system.

r268975 (sbruno): Remove boot1.efi during clean target.

Relnotes:	Yes
Sponsored by:	The FreeBSD Foundation
2014-09-04 21:05:04 +00:00
emaste
261ad5a21c MFC UEFI loader
This MFC consists of the following SVN revisions:
  258741 261568 261603 261668 263115 263117 263968 264078 264087 264088
  264092 264095 264115 264132 264208 264261 264262 264263 264319 265028
  265057 268974

Detailed commit messages:

r258741: Note that libstand is 32-bit on amd64 and powerpc64

r261568: Build libstand as a 64-bit library on amd64

  The 32-bit bootloaders now link against libstand.a in
  sys/boot/libstand32, so there is no need to force /usr/lib/libstand.a
  to be 32-bit.

r261603: Don't force efi to a 32-bit build on amd64

r261668: Build libstand as a 64-bit library on ppc64

  The 32-bit bootloaders now link against libstand.a in
  sys/boot/libstand32, so there is no need to force /usr/lib/libstand.a
  to be 32-bit.

  This is equivalent to r261568 for amd64.

r263115: Add amd64 EFI headers

r263117: Connect 64-bit boot ficl to the build

  It is not yet used, but this will ensure it doesn't get broken.

r263968: Use EFI types for EFI values (silences warnings).

  EFI UINTN is actually a 64-bit type on 64-bit processors.

r264078: Put each source file on a separate line

  This will simplify rebasing the amd64 UEFI patch set.

r264087: Build boot/ficl as 64-bit library on amd64

  The 32-bit bootloaders on amd64 now use the 32-bit version in ficl32,
  as is done with libstand32.  The native 64-bit ficl will be used by the
  upcoming UEFI loader.

r264088: Merge efilib changes from projects/uefi

  r247216: Add the ability for a device to have an "alias" handle.

  r247379: Fix network device registration.

  r247380: Adjust our load device when we boot from CD under UEFI.

    The process for booting from a CD under UEFI involves adding a FAT
    filesystem containing your loader code as an El Torito boot image.
    When UEFI detects this, it provides a block IO instance that points
    at the FAT filesystem as a child of the device that represents the CD
    itself. The problem being that the CD device is flagged as a "raw
    device" while the boot image is flagged as a "logical partition".
    The existing EFI partition code only looks for logical partitions and
    so the CD filesystem was rendered invisible.

    To fix this, check the type of each block IO device. If it's found to
    be a CD, and thus an El Torito boot image, look up its parent device
    and add that instead so that the loader will then load the kernel from
    the CD filesystem.  This is done by using the handle for the boot
    filesystem as an alias.

    Something similar to this will be required for booting from other media
    as well as the loader will live in the EFI system partition, not on the
    partition containing the kernel.

  r247381: Remove a scatalogical debug printf that crept in.

r264092: Add -fPIC for amd64

r264095: Support UEFI booting on amd64 via loader.efi

  This is largely the work from the projects/uefi branch, with some
  additional refinements.  This is derived from (and replaces) the
  original i386 efi implementation; i386 support will be restored later.

  Specific revisions of note from projects/uefi:

  r247380:

    Adjust our load device when we boot from CD under UEFI.

    The process for booting from a CD under UEFI involves adding a FAT
    filesystem containing your loader code as an El Torito boot image.
    When UEFI detects this, it provides a block IO instance that points at
    the FAT filesystem as a child of the device that represents the CD
    itself. The problem being that the CD device is flagged as a "raw
    device" while the boot image is flagged as a "logical partition". The
    existing EFI partition code only looks for logical partitions and so
    the CD filesystem was rendered invisible.

    To fix this, check the type of each block IO device. If it's found to
    be a CD, and thus an El Torito boot image, look up its parent device
    and add that instead so that the loader will then load the kernel from
    the CD filesystem.  This is done by using the handle for the boot
    filesystem as an alias.

    Something similar to this will be required for booting from other
    media as well as the loader will live in the EFI system partition, not
    on the partition containing the kernel.

  r246231:

    Add necessary code to hand off from loader to an amd64 kernel.

  r246335:

    Grab the EFI memory map and store it as module metadata on the kernel.

    This is the same approach used to provide the BIOS SMAP to the kernel.

  r246336:

    Pass the ACPI table metadata via hints so the kernel ACPI code can
    find them.

  r246608:

    Rework copy routines to ensure we always use memory allocated via EFI.

    The previous code assumed it could copy wherever it liked. This is not
    the case. The approach taken by this code is pretty ham-fisted in that
    it simply allocates a large (32MB) buffer area and stages into that,
    then copies the whole area into place when it's time to execute. A more
    elegant solution could be used but this works for now.

  r247214:

    Fix a number of problems preventing proper handover to the kernel.

    There were two issues at play here. Firstly, there was nothing
    preventing UEFI from placing the loader code above 1GB in RAM. This
    meant that when we switched in the page tables the kernel expects to
    be running on, we are suddenly unmapped and things no longer work. We
    solve this by making our trampoline code not dependent on being at any
    given position and simply copying it to a "safe" location before
    calling it.

    Secondly, UEFI could allocate our stack wherever it wants. As it
    happened on my PC, that was right where I was copying the kernel to.
    This did not cause happiness. The solution to this was to also switch
    to a temporary stack in a safe location before performing the final
    copy of the loaded kernel.

  r246231:

    Add necessary code to hand off from loader to an amd64 kernel.

  r246335:

    Grab the EFI memory map and store it as module metadata on the kernel.

    This is the same approach used to provide the BIOS SMAP to the kernel.

  r246336:

    Pass the ACPI table metadata via hints so the kernel ACPI code can
    find them.

  r246608:

    Rework copy routines to ensure we always use memory allocated via EFI.

    The previous code assumed it could copy wherever it liked. This is not
    the case. The approach taken by this code is pretty ham-fisted in that
    it simply allocates a large (32MB) buffer area and stages into that,
    then copies the whole area into place when it's time to execute. A more
    elegant solution could be used but this works for now.

  r247214:

    Fix a number of problems preventing proper handover to the kernel.

    There were two issues at play here. Firstly, there was nothing
    preventing UEFI from placing the loader code above 1GB in RAM. This
    meant that when we switched in the page tables the kernel expects to
    be running on, we are suddenly unmapped and things no longer work. We
    solve this by making our trampoline code not dependent on being at any
    given position and simply copying it to a "safe" location before
    calling it.

    Secondly, UEFI could allocate our stack wherever it wants. As it
    happened on my PC, that was right where I was copying the kernel to.
    This did not cause happiness. The solution to this was to also switch
    to a temporary stack in a safe location before performing the final
    copy of the loaded kernel.

  r247216:

    Use the UEFI Graphics Output Protocol to get the parameters of the
    framebuffer.

r264115: Fix printf format mismatches

r264132: Connect sys/boot/amd64 to the build

r264208: Do not build the amd64 UEFI loader with GCC

  The UEFI loader causes buildworld to fail when building with (in-tree)
  GCC, due to a typedef redefinition.  As it happens the in-tree GCC
  cannot successfully build the UEFI loader anyhow, as it does not support
  __attribute__((ms_abi)).  Thus, just avoid trying to build it with GCC,
  rather than disconnecting it from the build until the underlying issue
  is fixed.

r264261: Correct a variable's type for 64-bit Ficl

  FICL_INT is long.

r264262: Fix printf args for 64-bit archs

r264263: Add explicit casts to quiet warnings in libefi

r264319: Fix EFI loader object tree creation on 9.x build hosts

  Previously ${COMPILER_TYPE} was checked in sys/boot/amd64, and the efi
  subdirectory was skipped altogether for gcc (since GCC does not support
  a required attribute).  However, during the early buildworld stages
  ${COMPILER_TYPE} is the existing system compiler (i.e., gcc on 9.x build
  hosts), not the compiler that will eventually be used.  This caused
  "make obj" to skip the efi subdirectory.  In later build stages
  ${COMPILER_TYPE} is "clang", and then the efi loader would attempt to
  build in the source directory.

r265028 (dteske): Disable the beastie menu for EFI console ...

  which doesn't support ANSI codes (so things like `at-xy', `clear', and
  other commands don't work making it impossible to generate a living
  menu).

r265057 (nwhitehorn): Turn off various fancy instruction sets...

  as well as deduplicate some options.  This makes the EFI loader build
  work with CPUTYPE=native in make.conf on my Core i5.

r268974 (sbruno): Supress clang warning for FreeBSD printf %b and %D formats

Relnotes:	Yes
Sponsored by:	The FreeBSD Foundation
2014-09-04 21:01:10 +00:00
emaste
ae111330ce MFC r269077 (sbruno): libstand qdivrem warning fixes
libstand's qdivrem.c assumes that sizeof(int) == sizeof(long), this is not
  true on amd64 I'm not quite positive this is the "correct" solution for
  this but it does seem to compile and shut up the spew of warnings when
  compiling libstand for userboot.

  Add two _Static_asserts() so that in the future somebody will get a compile
  failure if an architecture develops that violates the assumptions of this
  code. (strongly suggested by jmg)

  Change commetns to indicate int types instead of long.  (noted by ian in
  phabric review)

  Phabric:    https://phabric.freebsd.org/D443
2014-09-04 20:49:11 +00:00
emaste
f8ae63e6ed MFC r263005 by royger: howto_names: unify declaration 2014-09-04 20:47:14 +00:00
emaste
8902ebf6cd MFC libstand32 clean target fixes
r269029 (sbruno):

  Update so that clean target in sys/boot will delete the symlink
  created for machine

r269036 (sbruno):

  Delete the entire cleandepend/cleanmachine target thing now that its
  been cleared out in r269029
2014-09-04 20:44:41 +00:00
emaste
a3fd928a80 r261567: Build a 32-bit libstand under sys/boot/
A 32-bit libstand is needed on 64-bit platforms for use by various
  bootloaders.  Previously only the 32-bit version was built, installed
  as /usr/lib/libstand.a.

  A new 64-bit libstand consumer will arrive in the near future, so move
  the bootloader-specific 32-bit version to sys/boot/libstand32/.

  Explicitly link against this version in the 32-bit loaders.

r261614: Build a 32-bit libstand under sys/boot/ for ppc64

  This change is equivalent to r261567 for i386/amd64.

Relnotes:	Yes
Sponsored by:	The FreeBSD Foundation
2014-09-04 20:35:53 +00:00
emaste
2c0d103cf1 MFC r261591 (nwhitehorn):
Make libstand setjmp work for both 64- and 32-bit ABIs.
2014-09-04 20:21:30 +00:00
emaste
1a3d3113bf MFC vt(4) improvements / sync with HEAD
These are largely dumbbell@'s changes.  Most significantly they address
the extreme performance degradation with VGA hardware.

SVN revisions in this MFC:
  269471 270290 270293 270322 270324 270329 270331 270336 270338 270340
  270341 270342 270343 270388 270390 270404 270411 270412 270413 270431
  270446 270448 270485 270587 270589 270613 270618 270620 270667 270702
  270707 270708 270720 270721 270785 270786

Detailed commit list:

r270290: Test if the cursor is shown only once

  Later, we just see if the "struct mouse_cursor" pointer is set. This
  avoids the need to mess with all the conditions several times; this
  has been error prone.

  While here, rename the variable "m" to a more meaningful "cursor",
  like it's done elsewhere in the code.

r270293: Rename the "mouse_cursor" structure to "vt_mouse_cursor"

  At the same time, "w" and "h" members are now called "width" and
  "height". The goal is to have a more "public" structure, because it
  will soon be passed as argument to a new callback, replacing
  vd_bitbltchr_t.

r269471 (ray):

  Fix vt_vga driver to draw not-8-bit-aligned fonts correctly.
  Still one bug here: mouse left some gaps on track when moving left.

r270322:

  Add new vd_bitblt_text_t callback, and implement it for vt_vga

  Compared to the deprecated vd_bitbltchr_t callback, vd_bitblt_text_t
  receives:
    o  the whole text buffer
    o  the dirty area
    o  the mouse cursor (map, position, colors)

  This allows the backend to perform optimization on how to draw things.
  The goal is to remove vd_bitbltchr_t and vd_putchar_t, once all driver
  are converted (only vt_vga is included in this commit).

  In vt_vga, this allows to draw the text and the cursor in one pass,
  without ever reading from video memory (because it has all the context).
  The main benefit is the speed improvement: no more slideshow during
  boot!

  Other bugs fixed in vt_vga are:
    o  left-most characters are drawn properly (the left-most pixels were
       missing with bold characters and some wide letters such as 'm')
    o  no more black square around the cursor
    o  no cursor flickering when the text is scrolling

  There are still many problems to fix: the known issues are marked with
  "FIXME" inside the code.

r270411:

  vt_fb: Implement vd_bitblt_text_t for vt_fb and derivatives

r270412:

  creator_fb: Implement vd_bitblt_text_t

r270413: ofwfb: Implement vd_bitblt_text_t

r270324: vt_vga: Clip the draw area to never draw offscreen

  This fixes a bug when two windows use different fonts, but a longer-
  term solution is required. The dirty area should be stored as pixels,
  not character cells, because such coordinates don't have the same
  meaning in all windows, when using different fonts.

r270329: Mark new mouse position as dirty only when it's actually displayed

r270331: Store cursor bitmap & colors in struct vt_device

  This removes the need to specify them to each call to vd_bitblt_text_t
  and, therefore, simplifies the API.

r270336: Give the window to vd_bitblt_text_t callback

  ... instead of both the buffer and the font. Again, this simplifies
  the API.

r270338: The offset to center the text area is per-window now

  The previous global offset, based on the last loaded font, had no
  meaning for other windows. This caused a shifted text area, often
  partly out-of-screen.

r270341:  vt_vga: Remove a "FIXME" comment; the issue was solved in r270338

r270340: Don't run vt_set_border() and vt_flush() concurrently

  In the case of vt_vga, the two concurrent calls were writing to the
  same VGA registers, causing incorrect refresh of the screen.

r270342: Use the actual size of the mouse when marking its position as dirty

  This fixes a bug where part of the cursor was not erased.

r270343: Remove "FIXME" about multiple locking of vt_buf in vt_flush()

  After some testing, it appears that acquiring the lock once and keeping
  it longer is slower than taking it multiple times.

  While here, fix a typo in another comment.

r270388: vt_vga: Give only the character part of term_char_t to vga_get_cp437()

  This fixes a bug where vga_get_cp437() was called with an invalid
  argument. The screen was then filled with '?' instead of the actual
  character.

r270390: Fix a crash in vt_mark_mouse_position_as_dirty() when in textmode

  In textmode, no font is loaded, thus the page fault in
  vt_mark_mouse_position_as_dirty() when it wants the font width/height.

  For now, create a fake area for the textmode. This needs to be
  modified if vt_vga gains mouse support in textmode.

  While here, fix a build failure when SC_NO_CUTPASTE is defined:
  vt_mark_mouse_position_as_dirty() must not be included in this case.

r270404: Fix cursor handling in vt_flush()

  There were situations where the cursor was not erased/redrawn or its
  position was marked as dirty even though it's not displayed. The code
  is now more straightforward.

  At the same, add a function to determine if the cursor covers a given
  area. This is used by backends to know if they need to draw the
  cursor.

  This new function should be paired with a new state in struct
  vt_device, called vd_mshown, which indicates if the cursor should be
  displayed.  This again simplifies vd_bitblt_text_t callback's API.

r270431: vt(4): Add vd_bitblt_bmp_t callback

  The code was already there in all backends, we just expose it. This is
  used to display the splash screen.

r270446: Remove vd_bitbltchr_t

  It's replaced by vd_bitblt_text_t, which gives more context to the
  backend and allows it to perform more efficiently when redrawing a
  given area.

r270448: Fix order of arguments (x <-> y) when showing the splash screen

r270485: vt_vga: Fix the display of the splash screen

r270587: Take font offset into account in vt_is_cursor_in_area()

  This fixes a "General protection fault" in vt_vga, where
  vt_is_cursor_in_area() erroneously reported that the cursor was over
  the text. This led to negative integers stored in "unsigned int" and
  chaos.

r270589: The cursor coordinates are relative to the drawn area

  ... not the whole screen. Don't use font offsets in
  vt_mark_mouse_position_as_dirty().

  This fixes a bug where the mouse position wasn't marked as dirty when
  approaching the borders of the drawn area.

r270613: Store a rectangle for the drawable area, not just the top-left corner

  This allows backends to verify they do not draw outside of this area.
  This fixes a bug in vt_vga where the text was happily drawn over the
  right and bottom margins, when using the Gallant font.

r270618: Intialize drawable area rectangle each time a font is loaded

  This also fixes a problem where early in boot, the area was zero,
  leading to nothing displayed for a few seconds.

r270620: vt_vga: Use Write Mode 0 to draw group of 8 pixels using 3 or more colors

  This replaces the method based on Write Mode 3, which required reads
  from the video memory to load the latches.

r270667: When creating a window buffer, fill it entirely

  ... not just the visible part.

  This fixes a bug where, when switching from eg. vt_vga to vt_fb (ie.
  the resolution goes up), the originally hidden, uninitialized area of
  the buffer is displayed on the screen. This leads to a missing text
  cursor when it's over an unitialized area.

  This was also visible when selecting text: the uninitialized area was
  not highlighted.

  Internally, this area was zeroed: characters were all 0x00000000,
  meaning the foreground and background color was black. Now, everything
  is filled with a space with a gray foreground color, like the visible
  area.

  While here, remove the check for the mute flag and always use
  TERMINAL_NORM_ATTR as the character attribute (ie. gray foreground,
  black background).

r270702: Implement basic support for KDSETMODE ioctl

  With the current implementation, this allows an X11 server to tell
  the console it switches a particular window in "graphics mode". This
  information is used by the mouse handling code to ignore sysmouse events
  in the window taken by the X server: only him should receive those
  events.

r270707: Pause the vt_flush() timer when the screen is up-to-date

  The timer is restarted whenever a window buffer is marked as dirty or
  the mouse cursor moves.

  There's still room for improvement. For instance, we should not mark a
  window buffer as dirty when this window isn't displayed.

r270708: vt(4): Recompute the drawable area when the resolution changes

  This was only done when the font changed.

r270720: vt(4): Fix mouse cursor handling in vt_fb/creator_vt/ofwfb

  There were two issues:
    1. The area given to vt_is_cursor_in_area() was adding the drawable
       area offset, something already handled by this function.
    2. The cursor was shifted on the screen by the offset of this area
       and thus was misplaced or not erased. Furthermore, when reaching
       the bottom or right borders, the cursor was either totally
       removed or not erased correctly.

r270721: vt(4): If the terminal shrinks, make sure the mouse is inside
   the new area

r270785: vt(4): Change vb_history_size from "int" to "unsigned int"

  CID:		1230002, 1230003

r270786: Indicate that KDSETRAD case falls through the next case

  CID:		1229953

Relnotes:	Yes
2014-09-04 20:18:08 +00:00
hselasky
ec8cd58eaa MFC r270710 and r270821:
- Update the OFED Linux Emulation layer as a preparation for a
hardware driver update from Mellanox Technologies.
- Remove empty files from the OFED Linux Emulation layer.
- Fix compile warnings related to printf() and the "%lld" and "%llx"
format specifiers.
- Add some missing 2-clause BSD copyrights.
- Add "Mellanox Technologies, Ltd." to list of copyright holders.
- Add some new compatibility files.
- Fix order of uninit in the mlx4ib module to avoid crash at unload
using the new module_exit_order() function.

Sponsored by:	Mellanox Technologies
2014-09-04 20:12:36 +00:00
ngie
0475b83655 MFC r270216:
Add ${LIBC} to DPADD to fix "make checkdpadd"

  Phabric: D632
  Approved by: jmmv (mentor)
2014-09-04 20:02:28 +00:00
emaste
c3376ddfe1 MFC r270299 (dumbbell): vt_vga: When clearing video memory, don't read from it
The goal is to clear the video memory, in case an application drew to
  it. So the content shouldn't be loaded in the latches, it can't be
  trusted anyway.

  This improves a bit the window switch speed.

Sponsored by:	The FreeBSD Foundation
2014-09-04 19:22:01 +00:00
emaste
f4cd1af86e MFC r269685 (nwhitehorn): Retire vd_maskbitbltchr.
The same functionality can be obtained by testing for mask != NULL in
  vd_bitbltchr, which all implementations of vd_bitbltchr() were doing
  anyway.

Sponsored by:	The FreeBSD Foundation
2014-09-04 19:13:07 +00:00
emaste
2b70382fb3 MFC r269636 by nwhitehorn:
Set fb_pbase properly on PowerPC in the case where we have to guess at
  the right register bank for the framebuffer. Disable the assigned-
  addresses path on SPARC since it is just a hack for IBM PPC systems
  and was neither relevant for nor worked on SPARC anyway.

Sponsored by:	The FreeBSD Foundation
2014-09-04 18:54:01 +00:00
emaste
d3502c5201 MFC fbd(4) and vt_fb disentanglement:
r268472 (ray):

  Should check fb_read method presence instead of double check for fb_write.

r269620 (nwhitehorn):

  Retire various intertwined bits of fbd(4) and vt_fb, in particular the
  pixel modification indirection. No actual drivers use it and those
  that might (e.g. creatorfb) use custom implementations of
  vd_bitbltchr().

Relnotes:	No
Sponsored by:	The FreeBSD Foundation
2014-09-04 18:43:40 +00:00
emaste
2a3f3e6567 MFC r269278 (nwhitehorn):
Make mmap() of the console device when using ofwfb work like other
  supported framebuffer drivers. This lets ofwfb work with
  xf86-video-scfb and makes the driver much more generic and less
  PCI-centric. This changes some user-visible behavior and will require
  updates to the xorg-server port on PowerPC when using ATI graphics
  cards.

Relnotes:	Yes
Sponsored by:	The FreeBSD Foundation
2014-09-04 18:34:22 +00:00
emaste
eae0f4b63a MFC r268350 (nwhitehorn):
Use common vt_fb parts in ofwfb as far as we are able without
  sacrificing performance.

Sponsored by:	The FreeBSD Foundation
2014-09-04 18:30:33 +00:00
nwhitehorn
d02b558c93 MFC r265883,268898:
Repair bitrot in PS3 memory and interrupt allocation.
2014-09-04 18:28:30 +00:00
nwhitehorn
ff75003b88 MFC r268880:
Allow mappings of memory not previously direct-mapped by the kernel when
calling mmap on /dev/mem and add a handler for the possible userland
machine checks that may result. Remove some pointless and wrong copy/paste
that has been in here for a decade as well.

This results in a /dev/mem with identical semantics to the x86 version.
2014-09-04 18:24:47 +00:00
emaste
fb8b6d3e04 MFC vt(4) driver for Sun creator(4) framebuffers
r269601 (nwhitehorn):

  Add a simple unaccelerated vt(4) framebuffer driver for Sun
  framebuffers handled by creator(4) (Sun Creator 3D, Elite 3D, etc.).
  This provides vt(4) consoles on all devices currently supported by
  syscons on sparc64.  The driver should also be easily adaptable to
  support newer Sun framebuffers such as the XVR-500 and higher.

  Many thanks to dumbbell@ (Jean-Sebastien Pedron) for testing this
  remotely during development.

r269783 (dumbbell):

  vt(4): Colors are indexed against a console palette, not a VGA palette

Sponsored by:	The FreeBSD Foundation
2014-09-04 18:18:29 +00:00
emaste
cc4c44cb58 MFC PS3 vt(4) console support
r265871 (nwhitehorn):

  Move the PS3 framebuffer console to use vt instead of syscons and
  adjust GENERIC64 for PowerPC to use vt with it.

  Much to my chagrin, PS3 support seems to have bitrotted somewhat since
  the last time I tried it. ehci panics on attach and interrupt handling
  seems to be faulty. This should be fixed soon...

r269783 (dumbbell):

  Fix two files forgotten in r269783 (vt_generate_cons_palette)

r268895 (nwhitehorn):

  Enable X11 via xf86-video-scfb on the Playstation 3. This commit made
  from an xterm running for the first time on said Playstation.

Approved by:	nwhitehorn
Relnotes:	yes
2014-09-04 18:15:36 +00:00
se
ec5503de3e Fix debug output that has erroneously been committed with the last update.
Obtained from:	Jan Beich
2014-09-04 17:21:54 +00:00
rodrigc
6f8ba46826 MFC r270512 r270513 r270754
- add comments which describe exit status codes of /usr/sbin/bhyve
   - move bhyvectl --destroy outside of the while loop
   - Use "file -s" so that we can run vmrun.sh against special devces such as
     /dev/md memory files systems or zvols
2014-09-04 16:55:01 +00:00
emaste
741bbf130d MFC r260047: Clean up license text
- Renumber Regents clauses
  - Remove clause 3 and 4 from TNF license, following upstream change

Sponsored by:	The FreeBSD Foundation
2014-09-04 16:51:45 +00:00
tijl
1e988094dc MFC r270757:
In r253839 the default behaviour of ld(1) was changed such that all
libraries that need to be linked into an executable or library have to be
listed on the command line explicitly.  This commit fixes a bug in ld(1)
where it would scan dependencies of the libraries on the command line and
link them if needed if they were also found in ld.so.cache.

The important bit of the patch is the initialisation of needed.by such that
libraries found by scanning dependencies are marked as such and not used in
the link.

The patch is a backport of binutils git commit
d5c8b1f8561426b41aa5330ed60f578178fe6be2

The author gave permission to use it under GPLv2 terms.

PR:		192062
2014-09-04 16:05:12 +00:00
se
3d900a4d5b MFC r270931: Fix typo ("by" -> "be"). 2014-09-04 13:47:55 +00:00
se
395db98c3c MFC r270647: Add references to vt(4) and the configuration files in /usr/sha
MFC r270653: Update man-pages to correctly refer to changed pathes and namin
MFC r270657: More man pages that need to know about vt in addition to syscon
MFC r270659: (by pluknet@) Missed comma.
MFC r270660: Back-out the references to vt(4) from this man-page. It appears
MFC r270933: Add references to vt(4) to further man-pages.
MFC r270934: Final patches to the tools used to convert syscons keymaps for
MFC r270935: Add vt(4) support to the console initialisation script, specifi

Second batch of MFCs to add support for Unicode keymaps for use with vt(4).

It contains the following changes:

- Add references to vt(4) to relevant man-pages.
- Update comment in defaults/rc.conf to mention vt
- Update rc.d/syscons to warn about syscons keymaps used under vt.
  An attempt is made to identify the vt keymap to load instead.
- Minor changes to the conversion tool based on mail comments on keymaps.

Relnotes:	yes
2014-09-04 13:45:16 +00:00
gjb
b97bfa455f Document r271069, Mac Mini 3,1 support added to asmc(4).
Sponsored by:	The FreeBSD Foundation
2014-09-04 11:15:38 +00:00
dumbbell
82aaaa84fb drm/radeon: Fix a memory leak when radeonkms is unloaded
This an MFC of r270750.
2014-09-04 09:42:36 +00:00
gjb
68b3b15c73 Document r262566, sshd(8) startup script creates ed25519 keys
if ENOENT on startup.

Sponsored by:	The FreeBSD Foundation
2014-09-04 02:14:57 +00:00
gjb
f9b0b57357 Document r264438, mdconfig(8) rc.conf(5) listing is no longer
required to be sequential.

Sponsored by:	The FreeBSD Foundation
2014-09-04 02:14:55 +00:00
gjb
d270d2b3cb Document r259141, jail(8) ipv6 allocation startup bug.
Sponsored by:	The FreeBSD Foundation
2014-09-04 02:14:53 +00:00
neel
e7f9a84216 MFC r270289:
Change file permissions for some setuid executables so they are "o+r".
The executable itself doesn't contain any privileged information.

An example of where this is useful is when makefs(8) is creating an image
that includes /sbin/shutdown. This can now be done without root privileges.
2014-09-04 01:38:31 +00:00
pfg
4480b8a63d MFC r270844:
Minor space/tab cleanups.

Most of them were ripped from the GSoC 2104
SMAP + kpatch project (but unrelated).
Only cosmetic changes.

Taken from:	Oliver Pinter (op@)
2014-09-04 00:40:41 +00:00