While here, add support for the Num Lock key (with all needed changes in the
numeric keypad), Print Screen, Hold Screen, Pause, Insert, and Delete.
Ok'ed by silence in port-mac68k@.
i/o functions to talking to the sab directly, allowing any residual prom
output to drain. There does not appear to be a prom "flush" function.
Adresses PR 26226.
- add a RAS hook in cpu_switch().
- fill in the definition of struct mcontext.
- implement cpu_upcall(), cpu_getmcontext(), cpu_getmcontext() and
cpu_switchto().
- for now, force the right priviledge bits and space regs in setcontext().
- use correct values for __SIMPLELOCK_*.
- move the user stack to start at a multiple of the pthread stack size
so that libpthread can use the sp-masking trick.
This has a couple of beneficial effects:
1) The TOD time will be preserved across boots, as one would expect.
2) Newly-started VMs will get the correct time according to domain 0.
Previously, since we never set the time back to Xen, each VM would
get the uncorrected system clock time, never even seeing any
changes made since the current startup.
I don't understand how XenoLinux slaves the other domain's clocks to
the Xen "wall clock" time that we're setting here, so I haven't even
tried. But now we can run ntpd in each domain without a huge offset
at boot caused by never updating the wall clock time at all...
Note:
- I don't have any hardware docments for this device, so this driver might
have some odd descriptions guessed by results of try-and-errors.
(the only info I have is the Linux driver, but I think it doesn't describe
the hardware specifications very well anyway)
- All RX packets and most TX packets are copied from/to buffers in the driver
due to hardware restriction, so performance is not so good for now.
Maybe RX packets can be directly DMA'ed to mbufs by the same method used
of fxp(4), but the hardware seems to require 4kbyte aligned RX buffers.
- Multicast filter setup function is not tested yet (no info).
- Currently only tested on R5000 O2 with disabled L2 cache, so needs
more tests on other CPU (i.e. RM5200/R10000/R12000) models.
- Currently BUS_DMA_COHERENT is not used for the device control data DMA
to avoid performance issue on memcpy() against RX buffers, but it might be
problematic when L2 cache is enabled or on R10000 models.
across the "coma bug" workaround to avoid clearing the MAPEN bit if it
was originally set by firmware. This appears necessary for proper
functioning of SMM on Geode CPUs, and thus for proper emulation (ugh)
of access to certain PCI configuration registers or VGA register
spaces. With this change, VGA and soundblaster emulation work on Geode
NX1 systems.
This was also the underlying problem that led to the introduction of
the PCI_QUIRK_SKIP_FUNCn quirks in pci_quirks.c, which are no longer
necessary (and counterproductive if you want to use VGA or a
Geode-specific audio driver). See the thread "pci probe" on port-i386
in August 2003 (The Soekris 4801, apparantly the most popular
Geode-based NetBSD box, has neither VGA nor audio, which may explain
why this wasn't noticed at the time).
which is very handy on a laptop to control EST through another program that
you don't necessarily want to run as root (in my case, gkrellm).
The option's name is EST_FREQ_USERWRITE, and is disabled by default.