A device_t should never be cast with void*. This fixes reboot on acorn32.
I also suspect it'll fix a panic mjf was seeing due to corruption of the
alldevs list.
except the ppbus stuff (which doesn't compile) and ulpt(4) which is
unrelated and can be dealt with separately.
As usual, it comes with related cosmetic changes.
register com_cleanup() as the shutdown hook.
Add a generic suspend routine. Suspend and resume com@isa.
Protect against dereferencing a NULL softc in comioctl().
Destroy both a mutex and a callout in com_detach().
Cosmetic: use aprint_*_dev(). Use PMF_FN_ARGS, PMF_FN_PROTO.
* add virtual consoles by using wsdisplay_vcons
* make use of generic scrollback support for consoles
* enable colour support for vidcvideo consoles
* use the default NetBSD font, rather than picking a sony one
* make kernel output green, so it's obvious.
This was tested at 800x600 in 8bpp on an A7000+ and 2MB VRAM RiscPC.
To actually benefit from these changes wscons=YES needs to be added to
your rc.conf
them in the mi "files" file, and remove include statements from md files.
These shouldn't pull in additional kernel code when not in use, so it
shouldn't do any harm except a risk of namespace collisions which
should be easy to fix.
Logically the previous code should have worked but didn't. It appeared to
fail when reading the relocation table from physical memory.
To work-around this issue we now compact the relocation table (it shrinks
from ~800 entries to ~15 on a 2.5MB kernel) The compacted table is small
enough to copy into the page of memory we use to do the relocations. The
relocation code can now find the table, and carry out the relocations.
To help with debugging the screen border will change colour:
Red: Running without the MMU turned on (IE 1-1 physical mapping)
Note that the border will stay red a while as we're copying the
kernel over at this point.
Green: We've finished copying the kernel over (unless the code breaks
this will be rarely seen)
Blue: We're running on the bootstrap L1 table, and just about to call
the kernel.
Other tweaks include:
* copy the kernel 32bits at a time, rather than 8 bits at a time.
* assert that the relocations are 32bit aligned (so the above works)
* flush the cache and write buffers before turning off the MMU.
Tested by myself on an A7000+. Tested by skrll@ on Risc-PC and A7000.
just options CPU_IN_CKSUM.
Include std.arm in all arm platform std files.
This should reenable the asm in_cksum code for all arm platforms.
Also remove the now unused in_cksum_arm.S.
the Processor local memory, so that should provide a speed up.
Currently DMA won't work, as we only tell the kernel about the kinetic
memory, and exclude the motherboard memory. I'll look at fixing this over
the weekend.
Add support for kernels > 4MiB. The -current INSTALL kernel has now hit
25KiB over 4MiB and we were only adding L1 mappings for 4MiB.
Also added lots of tracing which I used to work out what boot32 was doing,
and so what the kernel was meant to be doing. This is disabled by default.
Out of paranoia also become a client of all domains before setting the ttb,
just in case RISC-OS ever decides to use domains.
All of this has been tested on my Kinetic Risc-PC. I've carried out a full
install onto it, and hope to use it for testing out the interrupt work I've
been doing.
With these changes the kinetic dram blocks are correctly identified and
passed into the kernel.
Note that I've a pending kernel change to understand the kinetic blocks
and do something useful with them.
sizeof(*bconfig) not sizeof(bconfig)
Now a small kernel will boot up on my RISC-PC, an install kernel won't
though, it hangs at the switch from RISC-OS to NetBSD.
- Reduce available SPL levels for hardware devices to none, vm, sched, high.
- Acquire kernel_lock only for interrupts at IPL_VM.
- Implement threaded soft interrupts.
SEMMNI, SEMMNS, SEMUME and SHMMAXPGS.
They can be tweaked via sysctl now. Ports that were setting values on
them weren't touched, I only removed the ones that were commented out.
This branch was a major cleanup and rototill of many of the various OEA
cpu based PPC ports that focused on sharing as much code as possible
between the various ports to eliminate near-identical copies of files in
every tree. Additionally there is a new PIC system that unifies the
interface to interrupt code for all different OEA ppc arches. The work
for this branch was done by a variety of people, too long to list here.
TODO:
bebox still needs work to complete the transition to -renovation.
ofppc still needs a bunch of work, which I will be looking at.
ev64260 still needs to be renovated
amigappc was not attempted.
NOTES:
pmppc was removed as an arch, and moved to a evbppc target.