that is priority is rasied. Add a new spllowersoftclock() to provide the
atomic drop-to-softclock semantics that the old splsoftclock() provided,
and update calls accordingly.
This fixes a problem with using the "rnd" pseudo-device from within
interrupt context to extract random data (e.g. from within the softnet
interrupt) where doing so would incorrectly unblock interrupts (causing
all sorts of lossage).
XXX 4 platforms do not have priority-raising capability: newsmips, sparc,
XXX sparc64, and VAX. This platforms still have this bug until their
XXX spl*() functions are fixed.
- 'struct fbsoftc' created, which points to a 'struct fbinfo'
- 'struct fbinfo' for each device is allocated with fballoc()
This means:
- Console device doesn't get different 'struct fbinfo' at attach
- Console device doesn't get initialized twice
- Color rcons now works
- The current Xserver MUST BE REBUILT.
- fix emitrules() like emitfiles() to deal with the prefix (otherwise it
would attempt to find the file in the normal base for the NORMAL_C rule).
- add emitincludes() which adds include directives for each prefix to the
$INCLUDES variable in the makefile.
- add %INCLUDES to each Makefile.arch to deal with the above.
this makes "prefix" actually work in a usable manner, and now i can move
on to fixing compiler warnings (errors) in the ESP code. :)
these and pass as the first parameter of ddb_init(). We used to pass
the contents of the start of the symbol table cast to an int, which for
an ELF kernel is "0x7f ELF" - not quite the symbol table size! How this
used to ever work I dunno...
be instead of hardcoding values.
+ Print the host SCSI ID in siiattach().
XXX - probably should do the same to the ASC driver?? The manuals for
the 5000 series machines don't mention the scsiidN env variable, but it
is present on all the models I've looked at...
+ Add prom_scsiid() to read and decode the prom scsiidN environment
variable that says what the host SCSI id should be.
+ Include <pmax/pmax/machdep.h> instead of declaring our own
prom_*() prototypes.
has PAGEABLE and INTRSAFE flags. PAGEABLE now really means "pageable",
not "allocate vm_map_entry's from non-static pool", so update all map
creations to reflect that. INTRSAFE maps are maps that are used in
interrupt context (e.g. kmem_map, mb_map), and thus use the static
map entry pool (XXX as does kernel_map, for now). This will eventually
change now these maps are locked, as well.
managed pages, into KVA space. Since the pages are managed, we should
use pmap_enter(), not pmap_kenter_pa().
Also, when entering the mappings, enter with an access_type of
VM_PROT_READ | VM_PROT_WRITE. We do this for a couple of reasons:
(1) On systems that have H/W mod/ref attributes, the hardware
may not be able to track mod/ref done by a bus master.
(2) On systems that have to do mod/ref emulation, this prevents
a mod/ref page fault from potentially happening while in an
interrupt context, which can be problematic.
This latter change is fairly important if we ever want to be able to
transfer DMA-safe memory pages to anonymous memory objects; we will need
to know that the pages are modified, or else data could be lost!
Note that while the pages are unowned (i.e. "just DMA-safe memory pages"),
they won't consume any swap resources, as the mappings are wired, and
the pages aren't on the active or inactive queues.
routines now reside in locore.S. No functional difference is expected.
- Replace abused splx() abuse with _splset() to change MIPS processor
interrupt mask bit. 'mips/trap.c' side will be fixed soon.
initialization code.
- Abandon mips_init_proc0() and do the 4 lines straightly in MD mach_init().
- Restore a block of code accidentally lost in prevous commit.
- Change the term 'tlbpid' to a MIPS3 nomenclature 'asid'.
- Hide PTE size exposures by symbolic names in locore.S
netbooting on machines that can't netboot a fullsize kernel.
This is only a stop-gap solution until the pmax gets a working two stage
netboot, and is not enabled by default.
so that devices which must allocate DMA memory in this range (e.g.
PixelStamp graphics boards) have a better chance of doing so, without
an awful hack.
exposure of TC device any more. Correct comments which are no longer
feasible. Reorder declarations and definitions. Introduce 'clkread'
pointer to pull up model dependent high resolution timer value. Have
prom_systype() call.
- Place routines for model dependent high resolution timer.
- Program IOASIC registers inside os_init() call and nuke ioasic_init().
totally broken for the PXG and will remain so until more documentation is
available. This destroys the queueing, hardware clipping, and VDAC update
mechanisms on the PXG.
bootinfo record to 1kB (we are using less than 200 bytes now) so that it
doesn't run into addition PROM memory.
At 0x8001f00 the bootinfo record was stomping on some memory used by the
SFB cards for font information.