imp [Fri, 6 Jun 2014 04:09:07 +0000 (04:09 +0000)]
When building picobsd, define WITHOUT_OPENSSL and WITHOUT_KERBEROS and
remove the now-redundant checks for RELEASE_CRUNCH. This originally
was defined for building smaller sysinstall images, but was later also
used by picobsd builds for a similar purpose. Now that we've moved
away from sysinstall, picobsd is the only remaining consumer of this
interface. Adding these two options reduces the RELEASE_CRUNCH
special cases in the tree by half.
zbb [Thu, 5 Jun 2014 21:37:04 +0000 (21:37 +0000)]
Avoid using hard-coded SoC's register address in mptramp code for Armada XP
SoC's registers base address may differ between boards
(0xf1000000 or 0xd0000000). Therefore, in order to use
the proper CPU Boot Address Redirect register during SMP
initialization in mptramp the real, physical address has
to be passed to mptramp based on the value from DT.
zbb [Thu, 5 Jun 2014 21:35:10 +0000 (21:35 +0000)]
Fix broken SMP startup on Armada XP after r265694
During Armada's platform_mp_start_ap(), mptramp code
is being copied to the specific physical location (0xffff0000).
Before r265694 the address to which the code should be copied
was equal to the address of mpentry routine that followed the
mptramp in locore.S. Now the mptramp end address should be
exported and used as a copy limit.
emaste [Thu, 5 Jun 2014 18:38:27 +0000 (18:38 +0000)]
Support "GNU Unifont" format font data
The GNU Unifont .hex format is a text file. Each line represents one
glyph and consists of a four-digit hex code point, a colon, and pairs of
hex digits representing the bitmap. By default an 8x16 font is assumed,
with 16x16 double-width glyphs, resulting in either 32 or 64 hex digits
for the bitmap.
Our version of the file format supports comments at the top of the file
to set the height and width:
hselasky [Thu, 5 Jun 2014 18:17:40 +0000 (18:17 +0000)]
Try to fix DWC OTG regression issues with full and low speed devices:
- Remove double buffering interrupt and isochronous traffic via the
transaction translator. It can be avoided because the DWC OTG will
always delay the start split transactions for interrupt and
isochronous traffic, but will not delay the complete split
transactions, if we set the odd frame bit correctly.
- Need to check the transfer cache field in the device done function
to be sure all allocated channels are freed and not the transfer first
one. This seems to resolve the control endpoint transfer type quirk
which is now removed.
- Make sure any received data upon TX is dumped else RX path will
stop.
- Transmit isochronous data before receiving isochronous data as a
means to optimise the TT schedule.
- Implement a simple TT bandwidth scheduler.
- Cleanup use of old "td->error" variable.
- On interrupt IN traffic via the transaction translator we simply
ignore missed transfer opportunities and silently retry the
transaction upon next available time slot.
imp [Thu, 5 Jun 2014 17:13:42 +0000 (17:13 +0000)]
The code that combines adjacent ranges for BIO_DELETEs to optimize
trims to the device assumes the list is sorted. Don't apply the
optimization of not sorting the queue when we have SSDs to the
delete_queue, since it causes more discard traffic to the drive. While
one could argue that the higher levels should coalesce the trims,
that's not done today, so some optimization at this level is needed.
emaste [Thu, 5 Jun 2014 13:49:37 +0000 (13:49 +0000)]
Update vt(4) "Terminus BSD Console" font
"Terminus BSD Console" is a derivative of Terminus that is provided
by Mr. Dimitar Zhekov under the 2-clause BSD license for use by the FreeBSD vt(4) console.
Reviewed by: jhb
MFC after: 1 week
Sponsored by: The FreeBSD Foundation
cxgbe(4): Properly account for the freelist buffers used when returning
early from service_iq due to a budget restriction. This fixes a potential
rx hang when using INTx.
hselasky [Wed, 4 Jun 2014 16:58:35 +0000 (16:58 +0000)]
More RSU fixes:
- Properly align temporary buffer to 32-bit.
- Add an extra parenthesis to make expression clear.
- Range check the association ID received from hardware.
luigi [Wed, 4 Jun 2014 16:57:05 +0000 (16:57 +0000)]
make sure ifp->if_transmit returns 0 if a buffer is enqueued.
A similar fix should be applied to vmxnet, ixgbe, igb, i40e.
(some of them previously reported by Michael Tuexen)
Drivers using if_transmit are correct, and so are most of the
other drivers that reassing if_transmit.
Among other things, this bug causes panics when using netmap emulation
on top of generic drivers.
kib [Wed, 4 Jun 2014 16:06:38 +0000 (16:06 +0000)]
For Xeon 7500 and 48XX (Nehalem EX and Westmere EX) variants of the
Core i7 and Westmere processors, the uncore PMC subsystem is
completely different from the uncore PMC on smaller versions of CPUs.
Disable existing uncore hwpmc code for EX, otherwise non-existing MSRs
are accessed.
The cores PMCs seems to be identical for non-EX and EX, according to
the SDM.
Reviewed by: davide, fabient
Sponsored by: The FreeBSD Foundation
MFC after: 2 weeks
mav [Wed, 4 Jun 2014 12:05:47 +0000 (12:05 +0000)]
- Add support for SG_GET_SG_TABLESIZE IOCTL to report that we don't support
scatter/gather lists.
- Return error for still unsupported SG 3.x API read/write calls.
hselasky [Wed, 4 Jun 2014 10:29:01 +0000 (10:29 +0000)]
The external USB HUB in the RPI-B rejects control endpoint traffic
using the BULK endpoint type, while other USB HUBs do not. Disable
endpoint type workaround for TT traffic.
hselasky [Wed, 4 Jun 2014 09:18:13 +0000 (09:18 +0000)]
Fixes for the RSU driver:
- The R92S_TCR register is an 8-bit register. Don't access it like a
16-bit register.
- Disable parsing the delete station event, due to many false events.
- Ensure that there is only one transfer queue for each endpoint, so
that packets transmitted don't get out of order.
allanjude [Wed, 4 Jun 2014 04:18:33 +0000 (04:18 +0000)]
Further updates to the netstat(1) man page and usage message
- Reformat the entire man page
- Create a proper synopsis section
- Use itemized-lists to describe each flag, rather than paragraphs
- Cross-reference common flags to a 'general flags' sub-section with short
inline description of the flag
- Label 'general flags' sub-section
- Apply additional fixes suggested by wblock, brueffer, and bdrewery
- Update .Dd that got undone previously
- Change the order of the .Op Fl to be alphabetical
- Add the -i | -I interface flags to the description of 'interface
display mode'
- Fix missing parameters in man page
- Fix missing parameters in usage()
- Sync man page and usage()
MFC Note: stable/9 and stable/10 do not have -R, will need to be removed
when merged
CR: D58
Reviewed by: brueffer, bcr
Approved by: wblock (mentor)
MFC after: 7 days
Sponsored by: ScaleEngine Inc.
emaste [Wed, 4 Jun 2014 03:02:49 +0000 (03:02 +0000)]
vt fontcvt: Use a hash to speed up glyph deduplication
Walking a linked list of all glyphs to look for a duplicate is very slow
for large fonts (e.g., for CJK character sets). In my test the runtime
for a sample 40000 character font went from just over 80 seconds on
average to just over 2 seconds.
jmmv [Tue, 3 Jun 2014 22:34:27 +0000 (22:34 +0000)]
Merge (unused) documentation of WITHOUT_TESTS into WITH_TESTS.
The description of WITH/WITHOUT tweaks should only document the non-default
option. TESTS still defaults to no, so the option to be documented is
WITH_TESTS.
jmg [Tue, 3 Jun 2014 21:46:13 +0000 (21:46 +0000)]
don't check fs_flags for _FLAGS_UPDATED as it is stored in fs_old_flags..
If you had a UFS2 FS that didn't have it's super block at SBLOCK_UFS2,
you'll end up corrupting your FS as the superblock is updated and written
to a different location...
makefs used to put the superblock at SBLOCK_UFS1 for UFS 2 FS's causing
this issue...
Reviewed by: silience from mckusick
MFC after: 1 week
mav [Tue, 3 Jun 2014 21:06:03 +0000 (21:06 +0000)]
Replace gethrtime() with cpu_ticks(), as source of random for the taskqueue
selection. gethrtime() in our port updated with HZ rate, so unusable for
this specific purpose, completely draining benefit of multiple taskqueues.
loos [Tue, 3 Jun 2014 19:24:53 +0000 (19:24 +0000)]
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).
loos [Tue, 3 Jun 2014 14:46:50 +0000 (14:46 +0000)]
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().
ray [Tue, 3 Jun 2014 13:33:43 +0000 (13:33 +0000)]
Fix case when vt(4) started w/o driver assigned.
o Always init locks and cv ASAP.
o Initialize driver-independent parts even if driver probing fail.
o Allow to call vt_upgrade anytime, for later loaded drivers.
o New window flag VWF_READY, to track if window already initialized.
Other updates:
o Pass vd as a cookie for kbd_allocate.
o Do not blank window on driver replacement.
Tested by: hselasky (RPi), emaste(VGA, EFIFB, KMS), me
MFC after: 7 days
Sponsored by: The FreeBSD Foundation
mav [Mon, 2 Jun 2014 19:53:53 +0000 (19:53 +0000)]
Overhaul CAM SG driver IOCTL interfaces.
Make it really work for native FreeBSD programs. Before this it was broken
for years due to different number of pointer dereferences in Linux and
FreeBSD IOCTL paths, permanently returning errors to FreeBSD programs.
This change breaks the driver FreeBSD IOCTL ABI, making it more strict,
but since it was not working any way -- who bother.
Add shims for 32-bit programs on 64-bit host, translating the argument
of the SG_IO IOCTL for both FreeBSD and Linux ABIs.
With this change I was able to run 32-bit Linux sg3_utils tools and simple
32 and 64-bit FreeBSD test tools on both 32 and 64-bit FreeBSD systems.
emaste [Mon, 2 Jun 2014 18:30:57 +0000 (18:30 +0000)]
Remove extraneous "mkdir -p"
The directory hierarchy is created by an mtree file (BSD.usr.dist,
in the case of calendar(1)). An explicit "mkdir -p" in a program's
Makefile is redundant, and can mask a missing mtree entry.
marcel [Mon, 2 Jun 2014 17:54:39 +0000 (17:54 +0000)]
Introduce a procedural interface to the ifnet structure. The new
interface allows the ifnet structure to be defined as an opaque
type in NIC drivers. This then allows the ifnet structure to be
changed without a need to change or recompile NIC drivers.
Put differently, NIC drivers can be written and compiled once and
be used with different network stack implementations, provided of
course that those network stack implementations have an API and
ABI compatible interface.
This commit introduces the 'if_t' type to replace 'struct ifnet *'
as the type of a network interface. The 'if_t' type is defined as
'void *' to enable the compiler to perform type conversion to
'struct ifnet *' and vice versa where needed and without warnings.
The functions that implement the API are the only functions that
need to have an explicit cast.
The MII code has been converted to use the driver API to avoid
unnecessary code churn. Code churn comes from having to work with
both converted and unconverted drivers in correlation with having
callback functions that take an interface. By converting the MII
code first, the callback functions can be defined so that the
compiler will perform the typecasts automatically.
As soon as all drivers have been converted, the if_t type can be
redefined as needed and the API functions can be fix to not need
an explicit cast.
The immediate benefactors of this change are:
1. Juniper Networks - The network stack implementation in Junos
is entirely different from FreeBSD's one and this change
allows Juniper to build "stock" NIC drivers that can be used
in combination with both the FreeBSD and Junos stacks.
2. FreeBSD - This change opens the door towards changing ifnet
and implementing new features and optimizations in the network
stack without it requiring a change in the many NIC drivers
FreeBSD has.
ivoras [Mon, 2 Jun 2014 15:05:25 +0000 (15:05 +0000)]
Document the diskid automatic label class.
While there, also document the glabel "native" labels and explain why
there are additional nodes created for nested GEOM classes.
gahr [Mon, 2 Jun 2014 13:48:57 +0000 (13:48 +0000)]
- Return NULL and set errno to EINVAL if size is 0 (as required by POSIX).
Update the manpage to reflect this change.
- Always set the current position to the first null-byte when opening in append
mode. This makes the implementation compatible with glibc's. Update the test
suite.
bjk [Mon, 2 Jun 2014 03:03:57 +0000 (03:03 +0000)]
Document some more socket features
Add some mention of the functions used by protocol implementations,
upcalls, and other general routines.
Not all functionality is documented; in particular:
o the *at() variants, which are useful only for implementing the
corresponding syscalls.
o soconnect2(), also only used to implement a syscall (socketpair()).
o sockargs(), which is essentually unused and only tangentially
socket-related.
o selsocket(), which is commented as being present solely for use by
netncp and netsmb.
o getsockaddr(), which is just a convenience shortcut for copyin().
bryanv [Sun, 1 Jun 2014 18:16:01 +0000 (18:16 +0000)]
Split the virtio.h header file into multiple files
Reorganize the previous contexts of the file as it is in Linux. The
eventual goal is to install the header files and share them between
the kernel and bhyve.