Age | Commit message (Collapse) | Author |
|
This makes it possible to use KVM on GICv2 hosts.
Eg. on a raspberry pi4 linux host:
qemu-system-aarch64 -M virt-2.12,gic-version=2 \
-cpu host -m 2G -smp 2 \
-bios u-boot.bin \
-drive file=9front-10277.arm64.qcow2,if=none,id=disk \
-device virtio-blk-pci-non-transitional,drive=disk \
-nic bridge,br=br0,model=virtio-net-pci-non-transitional \
-nographic -accel kvm
Trying to use gic-version=3 on the same host would give:
qemu-system-aarch64: KVM does not support GICv3 emulation
|
|
|
|
The kernel has been fixed, no need to exclude
nvme drives anymore.
|
|
|
|
|
|
|
|
of "remove" for route and interface operations
The findipifc() function is kind of useless when
it returns an unlocked interface without also
providing the ifcid as the interface can be
subject to reconfiguration while unlocked.
Instead, we make findipifc() keep the interface
that it returns locked.
This is also needed for v4source() and v6source()
functions, which call ipv4local()/ipv4local()
which in turn walk the local interface chain,
and must do so under the rlock.
Also, accept the "del" verb in addition to
"remove" to keep it consistent, which also
leads to much more consistent naming in the code.
Abbreviating remove to "rem" can collide with
abbreviations for remote.
|
|
|
|
|
|
|
|
No need for Physuart.kick() to check Uart.blocked state,
already handled by devuart().
|
|
|
|
Some ports used a messy uarti8250 clone that had its
own backdoor unbuffered uart interface (serialputc()...),
which is really not needed at all, as devuart provides
one with uartputc(), once one sets uartcons variable.
There was some ugly interleaving of prints for mpinit,
which was because uartreset() (called from chandevreset)
would set serialoq ealy before the clocks are ticking,
so the coming up processors would use the buffered uart
while cpuidprint uses the unbufferd one...
Instead, we set serialoq in uartini() (called from
chandevinit) which is guaranteed to be done after
mpinit has completed.
|
|
|
|
|
|
Using the .1 and .2 file extensions was
causing distproto to conflate them for
object files (from skip=) and not copy
them to the install iso.
|
|
None of the other arch specific mkfiles do
this and it causes a mk nuke run with any other
objtype to always nuke amd64.
|
|
we shouldn't mutate the stae of checked in files in place
in tests
|
|
Handle the mapping from MPIDR_EL1 to machno with a
mpidindex() function, that uses a new MPIDMASK
constant from mem.h that signifies the cpuid bits.
This way, other affinity arrangements can be supported
by just changing the MPIDMASK constant.
|
|
|
|
The move from /lib/unicode to /lib/ucd was
not reflected in the proto files.
|
|
|
|
|
|
The 802.11 signal strength was specific to the
pcmcia wavelan driver. I do not think anyone
has one at this point.
Ethernet used to only consider /net/ether0/stats file,
but with usb ethernets or multiple ethernet devices
it seems misleading and arbitrary.
Instead, sum up all the statistics counters of
all ethernet devices found and preset that for the graph.
|
|
when connecting to ngircd, we can get disconnected
with a 'Spoofed prefix' message; this fixes the problem.
|
|
We don't want to blink the disk activity led for wifi,
so handle the disk activity LED from sdmmc when it
is actually used as a disk.
|
|
|
|
|
|
|
|
|
|
|
|
Keep emmc as sdM and sdhc as sdN (pi4 only), so ether4330
works in both pi3 and pi4 configurations.
ether4330 is commented out in pi3 config as we'r currenly
lacking a sdhost driver so we loose the sdcard if we use it.
|
|
|
|
|
|
plan9.ini
|
|
devsd/sdmmc: provide annexsdio() function to take over a
sdio controller from devsd. this removes the tight
coupling between ether4330.
devsd: get rid of legacy function pointer in SDifc struct.
ether4330: cleanup code, fix bugs, set bus speed to 50Mhz,
provide multicast and promiscuous mode support.
|
|
|
|
One might think that specifying the listen address
is enougth to prevent running a open resolver,
but this does not work for global IPv6 addresses.
The -L flag allows answering recursive queries
ONLY for IP addresses that are directly reachable
on a interface.
|
|
|
|
|
|
To properly handle TCP fallback for servers,
we have to avoid sending responses too big
for the client to accept.
We used to accept up to 8K of UDP requests
(and responses when resolving).
Instead, we now advertise a UDP response size
of 1232 (assuming 1280 MTU) to the client
and take even smaller values into account
from clients (tho not smaller than 512).
This makes sure we truncate packets, signaling
the client that it must retry with TCP.
Note that we still accept up to 8K of
UDP data regardless (for lucky clients).
|
|
|
|
|
|
|
|
|
|
Split layout specific code into mem.c from mmu.c,
so generic mmu code can be shared.
|
|
|
|
|
|
|
|
|