x86: Pull dbregs buffer allocation out from under lwp_lock.
Sprinkle assertions and notes about locking rules while here.
PR kern/60595: System lockup using gdb(1) on kernel with DEBUG+LOCKDEBUG
This fixes a bug that was revealed by lifting up rock while fixing:
PR kern/60556: panic in process_read_fpregs_xmm
Add an optional mechanism, enabled by setting rcorder_cache=YES in
/etc/rc.conf, to precompute and cache the list of rc.d scripts that
will actually result in useful boot-time work. This cached list is
then consulted on subsequent boots to reduce the number of scripts
run during boot. This can have a huge impact on boot time on machines
with slow CPUs and/or highly constrained I/O. On the machine that
inspired this change, it reduced the number of scripts visited during
boot from 130 to 45 and reduced the boot time from 13 minutes to 7.
PR bin/60607
pciconf(9): Configure some registers and variables for PCI-PCI bridge
Reviewed by rin@
- Configure BARs for PCI-PCI bridge if implemented
PCI-to-PCI Bridge Spec rev. 1.2 "3.2.5.1 Base Address registers" says
that if the optional BARs are implemented, the configuration software
must map address ranges.
- Configure interrupt related registers for PCI-PCI bridge
- Skip min_gnt/max_lat calculations for PCI-PCI bridges because those
are not supported.
- Handle expansion ROM base address register correctly for PCI-PCI bridges.
sun68k: avoid PROM DVMA map aliasing in sun3 bootloader
NetBSD/sun3 11.0 GENERIC fails to boot from a SCSI disk on
my Sun 3/60 with at least PROM revisions 2.8.3 and 3.0.1.
It looks sun3 PROM SCSI driver allocates internal resources
in DVMA space starting at 0xfff00000. The sun3 standalone
DVMA setup currently aliases its local address range starting
at 0x200000 to that same address.
Since the alias is created by sharing PMEGs, PTE changes made by
the PROM in its DVMA space also change the corresponding standalone
mappings. These mappings are inherited by the loaded kernel.
On Sun3, pmap_bootstrap() derives the first available PA from
(nextva - KERNBASE3), assuming that the kernel bootstrap VA range
is backed by the corresponding contiguous physical addresses.
A leaked alias can instead map part of that range to an unrelated
[14 lines not shown]
Pull up following revision(s) (requested by skrll in ticket #417):
sys/external/bsd/dwc2/dwc2.c: revision 1.84
sys/external/bsd/dwc2/dist/dwc2_core.c: revision 1.15
PR/60021: USB-only boot: uhub0 attaches but uhub1 never appears...
Update the dwc2 intial reset sequence to more closely match the upstream
driver - it's changed a bit in the last 10 years.
This reset sequence gets the device out of the state it's left in by the
RaspberryPI firmware when booting from USB.
dwc2: Bring dwc2_wait_for_mode from upstream and use in dwc2_force_mode.
dwc2_wait_for_mode will wait upto 110milliseconds for the controller
to enter the expected mode.
[2 lines not shown]
evbarm/am18xx: sdmmc driver
A first version of the SD card driver for the TI am1808. The driver works fine, but the performance is lower than expected.
evbarm/ti_edma: clear events before transfer
The sdmmc controller on the am18xx fires dma events even in PIO mode. Clear these event before starting a DMA transfer.
newport: ensure a valid ri_stride is provided to rasops_init()
The x resolution is calculated by timings programmed into VC2, rather
than some kind of hard coded width/height from the framebuffer.
Newport always supports up to 1280x1024 regardless of what your monitor
resolution is.
However for some monitor detection timings, the resulting geometry
is not ENTIRELY correct for rasops to work with. So just round it up
to a multiple of four so a newport console will always show up regardless
of said monitor timing.
Submitted by Imre Kaloz <kaloz at dune.hu> .
Fixes PR port-sgimips/60585 .
vdrain: Recompute target after each iteration.
This way if sysctl -w kern.maxvnodes=N fails, the vdrain task doesn't
perpetually keep trying to attain the unattainable.
Doesn't fix everything about racy access to desiredvnodes, but it
should help with the major symptom.
PR kern/60603: Sisyphean vdrain task
Do not require the display device to identify as VGA subclass.
If it's a display device and has AGP capability, we can trust it's a
proper AGP master. This fixes attachment for my Permedia 2 AGP board,
which identifies as subclass miscellaneous (0x80).
ddb(4)/crash(8): Print lock symbols in `show all locks'.
Reorder columns so the variable-width symbol comes last.
PR kern/60030: ddb/crash: show all locks without LOCKDEBUG
crash(8): Add support for `mach cpu N' on x86.
Requires core dump to have the registers saved on cpuN. This happens
with the ddb `sync' command, but not with the kern.dump_on_panic=1
ddb.onpanic=0 path yet -- TBD.
PR bin/58010: crash(8) doesn't support `mach cpu N' to examine
registers/stack of other CPUs