pmap_kenter_pa. pmap(9) says unmanage mappings don't get referenced/modified
tracking, and this seems to stop me getting a panic while starting up with
root on NFS.
(eca_init_rx_soft()) just sets up software state, and the other of
which (eca_init_rx_hard()) actually puts the interface into receive
mode and sets up the FIQ handler etc. Arrange that when we transmit a
frame, eca_init_rx_soft() has already been called, so we only need to
call eca_init_rx_hard() from the Tx downgrade handler.
The point of this is that I should be able to incorporate the
functionality of eca_init_rx_hard() into the Tx FIQ handler so that we
can switch from Tx to Rx with little enough delay that we don't drop
the first few bytes of the incoming frame.
to zero page, and it branches to either the rx or tx handler. My intention
is that the tx handler should switch to the rx one the moment it finishes,
without needing a downgrade, which I hope will get rid of the start-of-frame
rx overruns I'm seeing.
While I'm here, move the constants describing the shape of the FIQ state
structures out of if_ecavar.h and into genassym.cf where they belong.
complete for some reason, we defer it for a bit and then try again. This
gets ping down to 0% packet loss.
Of course, ping _should_ have been at 0% packet loss anyway, and that's the
next thing to deal with.
worked out by observing RISC iX's behaviour, so it may be technically
wrong. The only implementations of IP-over-Econet for which I've got
sources don't support broadcasts.
Tested using broadcast ping from RISC iX to NetBSD, and using rwhod.
This will allow improvements to the pmaps so that they can more easily defer expensive operations, eg tlb/cache flush, til the last possible moment.
Currently this is a no-op on most platforms, so they should see no difference.
Reviewed by Jason.
Make splhigh disable IRQs at the CPU rather than at the IOC. This has the
potential to be faster, and more importantly ensures that splhigh() blocks
FIQ downgrades.
Have a variable which indicates that a FIQ downgrade is required, and ensure
that the IOC "force IRQ" bit is turned on in this case. This ensures that
FIQ downgrades don't get lost if something happens to be fiddling with the
interrupt mask at the wrong moment.
Add ioc_fiq_setmask().
Change ioc_irq_status_full() to use the request registers rather than the
status registers. This is brings it into line with the Unix baclplane, and
makes detecting downgraded FIQs possible.