summaryrefslogtreecommitdiff
path: root/sys/arch/mvme88k
AgeCommit message (Collapse)Author
2007-11-17The initial ipl on luna/mvme188 like interrupt arbiters is IPL_HIGH, notMiod Vallat
IPL_NONE; fixes a false splassert warning on boot.
2007-11-17Replace many ``unsigned'' variables with ``unsigned int'', ``u_int'' or otherMiod Vallat
appropriate types. No functional change.
2007-11-17Add some preprocessor magic to let M187 and M188 kernels compile again.Miod Vallat
2007-11-17Rework {get,set,raise}ipl() to minimize psr modification, especially onMiod Vallat
boards such as mvme1[89]7 where spl changes can be atomic.
2007-11-15Stop referring the initial kernel stack as the ``interrupt stack''. It'sMiod Vallat
been years since it has last been used for that purpose, so name it the initialization/startup stack. While there, do not store the initialization stack in cpu_info, and have secondary_pre_main() return its value so that the bootstrap code does not need to fetch it from cpu_info. This might be reconsidered when the startup stacks will be freed after they are not used anymore, but there are more things to do first.
2007-11-14Cache curcpu() value into a local variable when it is used more than once inMiod Vallat
a function, so that it does not get reloaded from cr17 every time.
2007-11-14No need to check whether we are the primary processor in m188_{clock,stat}intr,Miod Vallat
since the corresponding interrupt source is enabled on the primary processor only.
2007-11-14Merge the ci_alive and ci_primary boolean values of struct cpu_info intoMiod Vallat
a single ci_flags bitfield. Also, set_cpu_number() will no longer set CIF_PRIMARY on the primary processor, it's up to the initialization code to do this.
2007-11-14Let ``machine cpu #'' hop to the given cpu.Miod Vallat
2007-11-12Restart clock before invoking hardclock() and statclock(), otherwise theyMiod Vallat
drift in MP kernels.
2007-11-12Split handling of unmaskable vs maskable ipi to make the core simpler,Miod Vallat
no functional change.
2007-11-11Rework ipi handling to delay acking the maskable ipi interrupt, so that itMiod Vallat
gets handled like a real hardware interrupt (which it is supposed to mimic anyway).
2007-11-11Use two software interrupt sources per processor for IPIs, instead of onlyMiod Vallat
one, so that we can have maskable and unmaskable IPIs. Make the clock ipis maskable, and masked at IPL_CLOCK and above. This allows us to get rid of the retrig hack in setipl().
2007-11-09Be more careful when handling ipis:Miod Vallat
- only process the pending ipis once per external interrupt, at the beginning. - use the ipl we were at when the interrupt occured, not the ipl at which we enabled interrupts again, in order to decide whether we can run hardclock or statclock.
2007-11-06Remove the now unused idle_u, and call the secondary processors startupMiod Vallat
stack a startup stack.
2007-10-30avoid intermediate files with same name (ie. a.out) for parallel makeTheo de Raadt
ok miod
2007-10-29When a secondary cpu gets its interrupt pin stuck, be sure to savectxMiod Vallat
and put the process it was running back on the run queue (unless this was the idle proc).
2007-10-28This is a horrible kluge: invoke sched_init_cpu for seconday processorsMiod Vallat
before they are started (and not skipping gaps for machine setups with holes in cpu slots). Since we start secondary cpus very late in the boot process, and sched_init_cpu() has to be invoked before proc0 execve's init, I don't think there is a better way to do this. This lets MVME188 systems with more than one processor boot multiuser.
2007-10-28Start secondary processors synchronously. This only wins us a nicer dmesgMiod Vallat
output, and nothing else.
2007-10-28Do not flag a processor as ``alive'' until it really is ready to accept IPIs.Miod Vallat
2007-10-13Enable interrupts in secondary processors before invoking cpu_switchto(),Miod Vallat
rather the expecting it to do this for us.
2007-10-10Make context switching much more MI:Artur Grabowski
- Move the functionality of choosing a process from cpu_switch into a much simpler function: cpu_switchto. Instead of having the locore code walk the run queues, let the MI code choose the process we want to run and only implement the context switching itself in MD code. - Let MD context switching run without worrying about spls or locks. - Instead of having the idle loop implemented with special contexts in MD code, implement one idle proc for each cpu. make the idle loop MI with MD hooks. - Change the proc lists from the old style vax queues to TAILQs. - Change the sleep queue from vax queues to TAILQs. This makes wakeup() go from O(n^2) to O(n) there will be some MD fallout, but it will be fixed shortly. There's also a few cleanups to be done after this. deraadt@, kettenis@ ok
2007-10-06Some archs used memset() rather than bzero(). So duplicate diffKenneth R Westerback
previously applied to other archs deleting a memset() this time. e.g. - if ((mapstore = malloc(mapsize, M_DEVBUF, - (flags & BUS_DMA_NOWAIT) ? M_NOWAIT : M_WAITOK)) == NULL) + if ((mapstore = malloc(mapsize, M_DEVBUF, (flags & BUS_DMA_NOWAIT) ? + (M_NOWAIT | M_ZERO) : (M_WAITOK | M_ZERO))) == NULL) return (ENOMEM); - memset(mapstore, 0, mapsize);
2007-10-06Oops. Forgot to do FREE -> free when I did MALLOC -> malloc.Kenneth R Westerback
2007-10-03MALLOC+bzero -> malloc+M_ZERO.Kenneth R Westerback
In ip_esp.c all allocated memory is now zero'd in the "malloc(sizeof(*tc) + alen ..." case. The +alen memory was not initialized by the bzero() call. Noticed by chl@. "Looks good" art@ "seems ok" chl@
2007-09-22M_ZERO -> bzero.Kenneth R Westerback
ok art@
2007-09-03Typos from miod. 'functin' -> 'functin' in some comments.Kenneth R Westerback
2007-07-30Shuffle the order in which we look for header files, when doingThordur I. Bjornsson
kernel builds locally this doesnt change much but over NFS this cuts about 12% of the build time on my setup (i386). OK miod@, deraadt@.
2007-06-20b_cylinder does not need to be set on the callpath down into drivers.Theo de Raadt
cpu_disklabel can go away, since nothing anymore needs to use it; ok miod
2007-06-18move comment to right placeTheo de Raadt
2007-06-18include not neededTheo de Raadt
2007-06-17amd64/standTheo de Raadt
2007-06-17significantly simplified disklabel infrastructure. MBR handling becomes MITheo de Raadt
to support hotplug media on most architectures. disklabel setup and verification done using new helper functions. Disklabels must *always* have a correct checksum now. Same code paths are used to learn on-disk location disklabels, to avoid new errors sneaking in. Tested on almost all cases, testing help from todd, kettenis, krw, otto, dlg, robert, gwk, drahn
2007-06-15no need to include machine/disklabel.h when sys/disklabel.h is alreadyTheo de Raadt
pulled in. look at how doing it in one architecture gets that code copied to the derivative architectures... amazing..
2007-06-14excessive blank lines making the versions differentTheo de Raadt
2007-06-14set the prototype disklabel to version 1Theo de Raadt
2007-06-14do not depend on previous loop variable, use a constant insteadTheo de Raadt
2007-06-12all disksubr.c did their b_flags manipulation differently (and wrong).Theo de Raadt
correct and unify; ok thib miod
2007-06-09The differences in the last non-homogeneous bounds_check_with_label()Kenneth R Westerback
routines (alpha, vax) prove to be not worth keeping. Move bounds_check_with_label() into the MI world. Eliminate unreliable and almost certainly useless checks for overwriting a disklabel. After discussion with deraadt@
2007-06-09various simple typo cleanups, basically making this look a lot more likeTheo de Raadt
other disksubr functions without changing any of the effect.
2007-06-09by hand i carefully found that all the differences in setdisklabel()Theo de Raadt
implimentations were simply either missing code, or spacing and such. setdisklabel() can become MI now.
2007-06-09Eliminate some duplicate code. No functional change.Kenneth R Westerback
ok deraadt@
2007-06-08we need a new sub-code in the VID driver to indicate new "struct partition"Theo de Raadt
fields which contain p_sizeh and such fields. handle both kinds correctly, we hope. tested on mvme68k
2007-06-08all disklabels read from the kernel now always contain a total sectorTheo de Raadt
size which is the REAL DISK SIZE. always. if a driver fails to set this right, please fix it. agreed with otto and krw
2007-06-07Comment 'fixes'. All bounds_check_with_label now identical except forKenneth R Westerback
vax and alpha.
2007-06-07More bounds_check_with_label homogenization. Fix a couple of typos whileKenneth R Westerback
there. 'so go to it!' deraadt@
2007-06-06now that all partition size/offsets are potentially 64-bit, change theTheo de Raadt
type of all variables to daddr64_t. this includes the APIs for XXsize() and XXdump(), all range checks inside bio drivers, internal variables for disklabel handling, and even uvm's swap offsets. re-read numerous times by otto, miod, krw, thib to look for errors
2007-06-06a fair sprinking of knf, code movement, and sometimes character-by-characterTheo de Raadt
accuracy so that the variious disksubr.c's can be compared easier. setdisklabel() starts taking an int for openmask. ok krw, and read by quite a few other people
2007-06-05bounds_check_with_label() checks for i/o outside of the partition andKenneth R Westerback
for overwriting the disklabel. Reorder some checks so all copies of bounds_check_with_label do the checks in the same order. Order picked by using the currently most popular one. Should be no functional change. "If it's boring, commit it" deraadt@
2007-06-05use six new macros to access & store the 48-bit disklabel fields relatedTheo de Raadt
to size. tested on almost all machines, double checked by miod and krw next comes the type handling surrounding these values