CVSROOT: /cvs Module name: src Changes by: m...@cvs.openbsd.org 2009/02/16 16:03:33
Modified files: sys/arch/m88k/include: cmmu.h cpu.h sys/arch/m88k/m88k: m8820x_machdep.c m88k_machdep.c sys/arch/mvme88k/include: cpu.h mvme197.h sys/arch/mvme88k/mvme88k: m188_machdep.c m197_machdep.c m88110.c machdep.c Log message: More 88110 SMP work. Contains, horribly entangled: - 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.