imp [Tue, 24 Nov 2009 07:50:19 +0000 (07:50 +0000)]
Rewrite to try to be more sane:
o Introduce a uart bus space so that we don't have to hack dev/uart to do 8
byte reads. This also handles the shift properly, so reset the shift we
want dev/uart doing to 0. In effect, this bus space makes the octeon
registers have an interface to dev/uart that looks just like the old ISA
bus, but does the necessary 64-bit read/write to the bus. We only support
read/write operations. We do all the widths, but likely could get away
with only 64-bit and 8-bit given the restricted nature of use of this bus.
o use bus_space_map to set the .bsh rather than a direct assignment.
o Minor cleanup of uart_cpu_getdev to make it conform more to the other
implementations.
o Add some coments for future work.
# with these changes, we now make it through cninit, but there's still some
# problem that's preventing output, as well as another problem that causes
# us to call panic just after we return from cninit() in platform_start.
gonzo [Wed, 18 Nov 2009 22:52:05 +0000 (22:52 +0000)]
- Add cpu_init_interrupts function that is supposed to
prepeare stuff required for spinning out interrupts later
- Add API for managing intrcnt/intrnames arrays
- Some minor style(9) fixes
neel [Fri, 13 Nov 2009 09:24:09 +0000 (09:24 +0000)]
Make pmap_copy_page() L2-cache friendly by doing the copy through the
cacheable window on physical memory (KSEG0). On the Sibyte processor
going through the uncacheable window (KSEG1) bypasses both L1 and L2
caches so we may end up with stale contents in the L2 cache.
This also makes it consistent with the rest of the function that
uses cacheable mappings to copy pages.
gonzo [Thu, 12 Nov 2009 21:27:58 +0000 (21:27 +0000)]
- Handle multiphy MAC case: create interface with
fixed-state media with parameters set via hints
and configure MAC accordingly to these parameters.
All the underlying PHY magic is done by boot manager
on startup. At the moment there is no proper way
to make active and control all PHYs simultaneously
from one MII bus and there is no way to associate
incoming/outgoing packet with specific PHY.
rrs [Wed, 11 Nov 2009 22:36:19 +0000 (22:36 +0000)]
Ok set in the values in clock 7 as in the
original codes (I had changed one by accident)
Also do the pic_ack/pic_delayed_ack after the interrupt
so we clear it. The clock with these changes starts working.
Its off doing a short/long short/long warning but it
now runs.
My NFS mount now works but has the same problem with
sbin/init (errno 8 ENOEXEC) so it panics with no init.
Either this is a problem with my buildworld.. OR its a
yet undiscovered RMI issue.
jfv [Wed, 11 Nov 2009 19:13:40 +0000 (19:13 +0000)]
With an i386 kernel the igb driver can cause a
page fault panic on initialization due to a large
number of bounce pages being allocated. This is due
to the dma tag requiring page alignment on mbuf mapping.
This was removed some time back from the ixgbe driver
and is not needed here either.
jh [Wed, 11 Nov 2009 15:43:07 +0000 (15:43 +0000)]
Create verifier used by FreeBSD NFS client is suboptimal because the
first part of a verifier is set to the first IP address from
V_in_ifaddrhead list. This address is typically the loopback address
making the first part of the verifier practically non-unique. The second
part of the verifier is initialized to zero making its initial value
non-unique too.
This commit changes the strategy for create verifier initialization:
just initialize it to a random value. Also move verifier handling into
its own function and use a mutex to protect the variable.
This change is a candidate for porting to sys/nfsclient.
roam [Wed, 11 Nov 2009 11:37:43 +0000 (11:37 +0000)]
Correct the information about the doceng@ team members - Murray Stokely
stepped down some time ago, about the same time as Giorgos Keramidas
joined the team.
mav [Wed, 11 Nov 2009 11:10:36 +0000 (11:10 +0000)]
MFp4:
- Move tagged queueing control from ADA to ATA XPT. It allows to control
device command queue length correctly. First step to support < 32 tags.
- Limit queue for non-tagged devices by 2 slots for ahci(4) and siis(4).
- Implement quirk matching for ATA devices.
- Move xpt_schedule_dev_sendq() from header to source file.
- Move delayed queue shrinking to the more expected place - element freeing.
- Remove some SCSIsms in ATA.
ed [Wed, 11 Nov 2009 09:43:26 +0000 (09:43 +0000)]
Place home and end before insert and delete.
These keys have different sequences when using cursorkeys, while insert
and delete stay the same. If they are placed like this, libteken will
return NULL instead of a proper sequence for these characters.
ed [Wed, 11 Nov 2009 08:39:57 +0000 (08:39 +0000)]
Add a new flag to vidcontrol, -T, that allows terminal mode switching.
This will make it more easy for people to experiment with TERM=xterm.
Instead of echoing these strange escape sequences, I can just instruct
them to run `vidcontrol -T xterm'.
ed [Wed, 11 Nov 2009 08:20:19 +0000 (08:20 +0000)]
Allow Syscons terminal emulators to provide function key strings.
xterm and cons25 have some incompatibilities when it comes to escape
sequences for special keys, such as F1 to F12, home, end, etc. Add a new
te_fkeystr() that can be used to override the strings.
scterm-sck won't do anything with this, but scterm-teken will use
teken_get_sequences() to obtain the proper sequence.
ed [Wed, 11 Nov 2009 08:11:21 +0000 (08:11 +0000)]
Always home the cursor when changing the scrolling region.
I thought this only had to be done when in origin mode, to ensure that
the cursor is not placed outside the origin, but it seems this is also
done when not in origin mode.
This fixes some artifacts when pressing ^L while running irssi in tmux.
(Almost) nobody noticed this, because cons25 doesn't have scrolling
regions.
nwhitehorn [Wed, 11 Nov 2009 03:17:51 +0000 (03:17 +0000)]
Reduce probe priority of USB input devices to BUS_PROBE_GENERIC from
BUS_PROBE_SPECIFIC. This allows device-specific drivers like atp to
attach reliably.
pjd [Tue, 10 Nov 2009 22:27:33 +0000 (22:27 +0000)]
Be careful which vattr fields are set during setattr replay.
Without this fix strange things can appear after unclean shutdown like
files with mode set to 07777.
jhb [Tue, 10 Nov 2009 22:04:19 +0000 (22:04 +0000)]
- Locking fixes to not do silly things like drop the lock only to call a
function that immediately reacquires the lock. Also removes recursive
locking.
- Use the statistics timer to drive the transmit watchdog instead of using
if_watchdog and if_timer.
yongari [Tue, 10 Nov 2009 20:29:20 +0000 (20:29 +0000)]
Controller does not update Tx descriptors(send BDs) after sending
frames so remove unnecessary BUS_DMASYNC_PREREAD and
BUS_DMASYNC_POSTREAD of bus_dmamap_sync(9).
rrs [Tue, 10 Nov 2009 13:41:00 +0000 (13:41 +0000)]
Ok, the 40bit reads were causing crashes
when they did their thing i.e. enabling SX mode
and then trying to load in. Since we are o32 this
is all un-needed. So I have re-structured the code
to work without doing this special set of code.
Packets now flow in and out.. however for some
reason dhcp/bootp response comes in and the kernel
does not proceed. Not sure if we have a UDP checksum error
or ?? The packets look all there by comparing wireshark
and the first 64 bytes of the TX and RX packets.
kib [Tue, 10 Nov 2009 11:50:37 +0000 (11:50 +0000)]
When rename("a", "b/.") is performed, target namei() call returns
dvp == vp. Rename syscall does not check for the case, and at least
ufs_rename() cannot deal with it. POSIX explicitely requires that both
rename(2) and rmdir(2) return EINVAL when any of the pathes end in "/.".
Detect the slashdot lookup for RENAME or REMOVE in lookup(), and return
EINVAL.
kib [Tue, 10 Nov 2009 11:46:53 +0000 (11:46 +0000)]
In r198506, kern_sigsuspend() started doing cursig/postsig loop to make
sure that a signal was delivered to the thread before returning from
syscall. Signal delivery puts new return frame on the user stack, and
modifies trap frame to enter signal handler. As a consequence, syscall
return code sets EINTR as error return for signal frame, instead of the
syscall return.
Also, for ia64, due to different registers layout for those two kind of
frames, usermode sigsegfaulted when returned from signal handler.
Use newly-introduced cpu_set_syscall_retval(9) to set syscall result,
and return EJUSTRETURN from kern_sigsuspend() to prevent syscall return
code from modifying this frame [1].
Another issue is that pending SIGCONT might be cancelled by SIGSTOP,
causing postsig() not to deliver any catched signal [2]. Modify
postsig() to return 1 if signal was posted, and 0 otherwise, and use
this in the kern_sigsuspend loop.
des [Tue, 10 Nov 2009 10:34:44 +0000 (10:34 +0000)]
Remove a bunch of code used to detect SMP on ((i386 && !pc98) || amd64) and
offer to install an SMP kernel. The way this worked was: on supported
platforms, code to read ACPI tables and BIOS MP tables was compiled into
sysinstall, and if an SMP kernel config was present in the source tree when
sysinstall was built, code that called it was also compiled. Since we
haven't had SMP kernel configs in years, the latter was never compiled and
the former never ran.
This only removes dead and unreachable code; it does *not* remove the NCpus
variable, nor the code that sets it to 1, nor the code that asks the user to
select a kernel from a list.
gonzo [Mon, 9 Nov 2009 22:01:58 +0000 (22:01 +0000)]
Unbreak booting of FreeBSD/mips by merging r195429 from projects/mips:
- Move dpcpu initialization to mips_proc0_init. It's
more appropriate place for it. Besides dpcpu_init
requires pmap module to be initialized and calling it
int pmap.c hangs the system
edwin [Mon, 9 Nov 2009 20:49:12 +0000 (20:49 +0000)]
MFV of r199105, tzdata2009r:
- Three Australian stations in Antarctica have changed their time zone:
Casey moved from UTC+8 to UTC+11
Davis moved from UTC+7 to UTC+5
Mawson moved from UTC+6 to UTC+5
The changes occurred on 2009-10-18 at 02:00 (local times).
rdivacky [Mon, 9 Nov 2009 20:29:10 +0000 (20:29 +0000)]
Make isa_dma functions MPSAFE by introducing its own private lock. These
functions are selfcontained (ie. they touch only isa_dma.c static variables
and hardware) so a private lock is sufficient to prevent races. This changes
only i386/amd64 while there are also isa_dma functions for ia64/sparc64.
Sparc64 are ones empty stubs and ia64 ones are unused as ia64 does not
have isa (says marcel).
This patch removes explicit locking of Giant from a few drivers (there
are some that requires this but lack ones - this patch fixes this) and
also removes the need for implicit locking of Giant from attach routines
where it's provided by newbus.
trasz [Mon, 9 Nov 2009 19:53:34 +0000 (19:53 +0000)]
Remove ifdefed out part of code, which seems to have originated a decade ago
in OpenBSD. As it is now, there is no way for this to be useful, since IPsec
is free to forward packets via whatever interface it wants, so checking
capabilities of the interface passed from ip_output (fetched from the routing
table) serves no purpose.
nwhitehorn [Mon, 9 Nov 2009 14:26:23 +0000 (14:26 +0000)]
Increase the size of the OFW translations buffer to handle G5 systems
that use many translation regions in firmware, and add bounds checking
to prevent buffer overflows in case even the new value is exceeded.
rpaulo [Mon, 9 Nov 2009 11:23:37 +0000 (11:23 +0000)]
The isr_intval in ieee80211req_scan_result structure should be 16 bit.
This makes ifconfig list scan display the correct beacon interval
(previously it would int overflow). As a side effect, this makes the
ieee80211req_scan_result word aligned.
kuriyama [Mon, 9 Nov 2009 02:54:16 +0000 (02:54 +0000)]
- Add hw.clflush_disable loader tunable to avoid panic (trap 9) at
map_invalidate_cache_range() even if CPU is not Intel.
- This tunable can be set to -1 (default), 0 and 1. -1 is same as
current behavior, which automatically disable CLFLUSH on Intel CPUs
without CPUID_SS (should be occured on Xen only). You can specify 1
when this panic happened on non-Intel CPUs (such as AMD's). Because
disabling CLFLUSH may reduce performance, you can try with setting 0
on Intel CPUs without SS to use CLFLUSH feature.
Reviewed by: kib
Reported by: karl, kuriyama
Related to: kern/138863