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.
need to understand the locking around that field. Instead of setting
B_ERROR, set b_error instead. b_error is 'owned' by whoever completes
the I/O request.
from doc/BRANCHES:
idle lwp, and some changes depending on it.
1. separate context switching and thread scheduling.
(cf. gmcgarry_ctxsw)
2. implement idle lwp.
3. clean up related MD/MI interfaces.
4. make scheduler(s) modular.
debugging and its main use is in device drivers. Its used there to signal
that the flagged buffer has a special meaning or should be handled
differently.
OK'd by Bill Sudenmund on tech-kern.
- finish implementing splraiseipl (and makeiplcookie).
http://mail-index.NetBSD.org/tech-kern/2006/07/01/0000.html
- complete workqueue(9) and fix its ipl problem, which is reported
to cause audio skipping.
- fix netbt (at least compilation problems) for some ports.
- fix PR/33218.
- Add COMPAT_15 to all the kernel that had COMPAT_14, for the sake of coherency
- Remove the only occurences of #ifdef COMPAT_15 in the tree: for the ARM
ports, COMPAT_15 was always used in conjunction with EXEC_AOUT. Only EXEC_AOUT
matters here.
This address kern/18407
an Amiga DMA controller, and #if 0'ed WD33C93 definitions that are duplicated
in sbicreg.h. uPD71071 definitions can stay for now, since they're not
actually useless even though they're unused.
we use the standard mode list from videomode.c rather than one generated
by makemodes.awk. This is less useful than it might be since without a useful
frame rate from the bootloader we're likely to end up choosing a screen mode
that's either flickery or too fast for the monitor (or DRAM bandwidth).
to RiscBSD and had been lurking in dark corners scaring people (mostly me)
for far too long. It will be missed, but not much, and I hope we can clear
up any fallout before 5.0.
While I'm in the area, also remove rpckbd(4), since pckbd(4) has
been supported on acorn32 for ages.
This allows us to convert aucom to just another com attachment, and cleanup
some code in the com_arbus.c.
Additionally, we use a common com_cleanup routine rather than having a
zillion copies of it in the attachment points.
This has been tested on a number architectures, and it has been shown to get
close to comparable performance when COM_REGMAP is defined, and comparable
when it is not defined.
Approved by core@. Fixes PR port-evbmips/32362.