summaryrefslogtreecommitdiff
path: root/sys/arch/mvme88k
AgeCommit message (Collapse)Author
2009-04-19Rename max_cpus to ncpusfound and compute it regardless of optionMiod Vallat
MULTIPROCESSOR.
2009-04-14Convert the waitok field of uvm_pglistalloc to "flags", more will be added soon.Owain Ainsworth
For the possibility of sleeping, the first two flags are UVM_PLA_WAITOK and UVM_PLA_NOWAIT. It is an error not to show intention, so assert that one of the two is provided. Switch over every caller in the tree to using the appropriate flag. ok art@, ariane@
2009-03-29make various strings ("can't map mem space" and similar) more consistentStuart Henderson
between instances, saving space in the kernel. feedback from many (some incorporated, some left for future work). ok deraadt, kettenis, "why not" miod.
2009-03-15Generic softinterrupt support for m88k based platforms, adapted from armMiod Vallat
with different locking mechanism. 88110 soft ipi are replaced with an ipi callback which is checked upon return from exception (it can not be kept as a softintr, as the generic softinterrupt code doesn't have per-cpu pending softintr queues).
2009-03-09Switch mvme88k to timecounters.Miod Vallat
2009-03-08Move more z8536 defines from MVME188 specific code to the MI header and use it.Miod Vallat
2009-03-07When allocating memory in bus_dmamem_alloc() with uvm_pglistalloc(), do notMiod Vallat
try to be smart for the address range, uvm_pglistalloc() is smart enough nowadays.
2009-03-05Change SMP secondary processor startup to have them ``hatch'' earlier,Miod Vallat
so that they can invoke sched_init_cpu() before the scheduler starts, which allows the horrible kluge in cpu_configure() to die.
2009-03-04Clean up the ipi code a bit and try to provide useful comments as well.Miod Vallat
2009-03-04When handling clock interrupts, check the overflow counter to know how manyMiod Vallat
times hardclock() needs to be invoked; fixes clock drift found on 197DP with SMP kernels.
2009-03-01Make more IPI synchronous. Performance slightly down, stability slightly up.Miod Vallat
ok deraadt@
2009-02-27Rework nmi handling to handle ``complex'' NMI faster, and return as fast asMiod Vallat
possible from the exception, without doing the AST and softintr dance. This should avoid too much stack usage under load. ok deraadt@
2009-02-27Be a bin more paranoid in m88410_inval() in the operation complete check.Miod Vallat
ok deraadt@
2009-02-21Move part of the mp lock logic into per-cpu callbacks; on MVME197DP we needMiod Vallat
to disable NMI sources in addition to interrupt sources, and we can not use a quick sequence with shadowing frozen as done for atomic ops. This lets GENERIC.MP boot multiuser on MVME197DP boards, and is so far stable enough to be able to recompile a kernel from scratch (with make -j2).
2009-02-21Get rid of 88110 nmi stacks. This was a good idea, but I outsmarted myselfMiod Vallat
since it was intended to service NMI occuring in user mode, and we could end up invoking preempt() and have another cpu start using this stack, with interesting results.
2009-02-20When looping to process external interrupts, do not complain (and panic)Miod Vallat
if another processors sends us an IPI, it will get handled later.
2009-02-20Let M188 kernel compile.Miod Vallat
2009-02-18Fix thinko in list traversal in vsbic_cmd_ccb().Miod Vallat
2009-02-17Pass a cpu_info * to setsoftipi() so it does not need to curcpu(), whichMiod Vallat
synchronizes the pipeline on 88110.
2009-02-17Be sure to pass a valid confargs * to child devices of vme0 when attaching,Miod Vallat
for they will attempt to dereference it and having NULL readable while in the kernel is just cheating.
2009-02-16More 88110 SMP work. Contains, horribly entangled:Miod Vallat
- dma_cachectl() split into a ``local cpu only'' and ``all cpus'', and an ipi to broadcast ``local dma_cachectl'' is added. - cpu_info fields are rearranged, to have the 88100-specific information and the 88110-specific information overlap, and has many more 88110 ugly things. - more ipi handling in the 197-specific area. Since it is not possible to have the second processor receive any hardware interrupt (selection is done on a level basis via ISEL, and we definitely do not want the main cpu to lose interrupts), the best we can do is to inflict ourselves a soft interrupt for late ipi processing. It gets used for softclock and hardclock on the secondary processor, but since the soft interrupt dispatcher doesn't have an exception frame, we have to remember parts of it to build a fake clockframe from the soft ipi handler (ugly but works). This now lets GENERIC.MP run a few userland binaries before bugs trigger.
2009-02-16Since NMI are now handled separately, remove the ``interrupt type'' argumentMiod Vallat
from interrupt() and related function pointers.
2009-02-16Extend the scsi_adapter minphys() callback to take a struct scsi_link *Miod Vallat
as additional argument. This will allow intermediate layers between scsi devices such as sd and scsi host adapters to take appropriate action if necessary.
2009-02-15Properly send a request sense command if the command status asks for it.Miod Vallat
2009-02-14Sync device lists with GENERIC.Miod Vallat
2009-02-14Add vsbic(4), a drive for the MVME327A SCSI and floppy controller, only forMiod Vallat
the SCSI part so far.
2009-02-14Fix a few defines.Miod Vallat
2009-02-13Use a different dispatcher for the NMI traps on 88110, these are tooMiod Vallat
different from regular hardware interrupts to be worth handling the same way. Disable IPI reception while we are handling pending IPIs. And do not reenable them by mistake if we need to send an IPI in return. This lets GENERIC.MP boot single user on a MVME197DP. There are still many bugs to fix.
2009-02-13Release the secondary processor initialization interlock a bit later,Miod Vallat
after the currently running processor has advertized itself as ready.
2009-02-13Allow IPIs on the secondary processors later in the bootstrap process, whenMiod Vallat
we are sure the NMI stack exists.
2009-02-13Provide a specific delay() routine using separate timers for the two cpusMiod Vallat
on MVME197DP boards running the MP kernel.
2009-02-13Make delay() a per-board function pointer.Miod Vallat
2009-02-12BPP routines for ``intelligent'' Motorola MVME boards. Currently not usedMiod Vallat
by anything, will eventually be used by the vx(4) MVME332 driver (once I take the time to fix it) and the vsbic(4) MVME327 driver being worked on.
2009-02-08Oops, initialize the nmi stack correctly for the boot processor.Miod Vallat
2009-02-08On 88110 processors, use a separate stack to handle NMI; these can occurMiod Vallat
while we are switching pcbs and all sort of bad things could happen.
2009-02-08Use the correct flags when bus_dmamap_sync()ing the s/g lists.Miod Vallat
2009-02-01Nuke whitespace at EOL.Miod Vallat
2009-02-01Remove dma_cachectl() and rename dma_cachectl_pa() to dma_cachectl() now thatMiod Vallat
the old vs(4) code is gone.
2009-02-01Get the cpu speed from the pcctwo configuration on MVME187.Miod Vallat
2009-02-01Finally switch this driver to bus_dma.Miod Vallat
2009-01-29Add a few cache operations after I/O completes.Miod Vallat
2009-01-29The ``flush before inval'' 88410 workaround needs to be done inMiod Vallat
m88410_initialize_cpu() as well. Since we can't flush unknown data, just make sure all 88410 lines are filled with valid data before flushing it. This should fix the spurious ``197DP hangs or loops on osiop errors after autoconf'' issue I've been seeing.
2009-01-25Remove /dev/drum and related code.Miod Vallat
2009-01-18Define HEAP_START so that we can use space below it for ethernet buffers;Miod Vallat
this prevents if_ie buffers from possibly overwriting the stack. Crank bootloader versions.
2009-01-18Recompute file pointer position when seeking backwards, as it gets reinitializedMiod Vallat
to zero otherwise; allows the tftp bootloader to work again after the switch to the MI loadfile code.
2009-01-11Fix a sed bug in the makefile's depend target.Paul Irofti
What happened was that the output of mkdep was fed to a sed expression that trimmed a bit more than required and also failed to work when attempting to do make depend with pcc. Example: genassym_c.o: /tmp/genassym.whatever ../../../../../sys/param.h \ was changed to: assym.h: \ but what was intended was: assym.h: ../../../../../sys/param.h \ For the pcc -M output things were a bit different and after the make depend the genassym entry would still remain and make would fail. This affected all platforms except amd64 and sgi. Okay miod@.
2008-11-28Eliminate the redundant bits of code for MTU and multicast handlingBrad Smith
from the individual drivers now that ether_ioctl() handles this. Shrinks the i386 kernels by.. RAMDISK - 2176 bytes RAMDISKB - 1504 bytes RAMDISKC - 736 bytes Tested by naddy@/okan@/sthen@/brad@/todd@/jmc@ and lots of users. Build tested on almost all archs by todd@/brad@ ok naddy@
2008-11-27It turns out Motorola manufactured ECC 128MB memory boards for MVME188Miod Vallat
assemblies, so allow up to 512MB of memory on MVME188 systems. Thanks maz for the 128MB board!
2008-10-30Initialize random seed for secondary processors.Miod Vallat
2008-10-30Give the dummy struct cpu_info used for secondary processor early bootstrap,Miod Vallat
the size of a full blown struct cpu_info, instead of the first few fields.