summaryrefslogtreecommitdiff
path: root/sys/arch/mvme88k
AgeCommit message (Collapse)Author
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
2007-06-02Rename cvtdisklabelv1 -> disklabeltokernlabel. It does more than justKenneth R Westerback
convert version 0 to version 1 disklabels. Suggested by deraadt@. ok deraadt@ otto@
2007-06-01some architectures called setroot() from cpu_configure(), *way* before someTheo de Raadt
subsystems were enabled. others used a *md_diskconf -> diskconf() method to make sure init_main could "do late setroot". Change all architectures to have diskconf(), use it directly & late. tested by todd and myself on most architectures, ok miod too
2007-05-31Minor bounds_check_with_label nits.Kenneth R Westerback
1) Use local variable 'labelsector' not 'labelsect' to be consistant (hp300, mac68k, mvme68k, mvme88k, vax). 2) Having checked for sz == 0, the next check needs only be sz < 0, not <= 0. (mac68k, mvme68k, mvme88k) 3) Use lp->d_partitions + DISKPART(dev), rather than lp->d_partitions[DISKPART(dev)] (hp300). Assuming no typos there should be no functional change.
2007-05-31KNF, whitespace and comment rectification to make allKenneth R Westerback
bounds_check_with_label() routines as identical as possible without changing any code. Code nits and adjustments to come.
2007-05-31convert to new .Dd format;Jason McIntyre
2007-05-29start of dumpconf() unification, which one day we can pray will be MITheo de Raadt
(and part of setroot); ok miod
2007-05-29Updated disklabel format to support larger disks and partitions. WeOtto Moerbeek
free room in struct partition by packing fragment size and fragments/block more tighlty and use the resulting space to make offset and size 48 bits. For the disk part we use spare fields in struct disklabel. Kernel converts in-mem copy of the on-disk label if needed, disklabel(8) writes new version. We are careful to only change fields not used by bootloaders. Conception of basic scheme by deraadt. ok deraadt@ krw@
2007-05-29Refactor readdisklabel() to ensure there is a single point of return, inKenneth R Westerback
preparation for translating all disk labels visible to the kernel to the soon to arrive V1 format. ok otto@ deraadt@
2007-05-28bio for all archs, ok krw@ kettenis@ sounds good marco@ go for it deraadt@Todd T. Fries
2007-05-27Make sure the minaddr hint for uvm_km_suballoc() calls is always initialized.Miod Vallat
ok pedro@
2007-05-27back out bio, breaks dlg's sparc64 v215Todd T. Fries
prompted by/ok dlg@ deraadt@
2007-05-26Dynamic buffer cache. Initial diff from mickey@, okay art@ beck@ toby@Pedro Martelletto
deraadt@ dlg@.
2007-05-26prodded by marco, enable bio everywhereTodd T. Fries
grudgingly ok deraadt@
2007-05-25"interupt" -> "interrupt" in various comments. Mostly from Diego Casati.Kenneth R Westerback
2007-05-23Print real/available memory in MB as well as bytes in dmesg, and unifyPeter Valchev
architectures to print it the same way. ok henning, miod; i386 part from tom
2007-05-19Oops, get the ``disabling cpu'' message correct.Miod Vallat
2007-05-19Silence a diagnostic message in multiprocessor kernels, it makes things worse.Miod Vallat
2007-05-19Force other processors to spin when one is in ddb.Miod Vallat
2007-05-19Add a GENERIC.MP configuration, not for the faint of the heart, if you wantMiod Vallat
to play.
2007-05-19Try reducing the number of IPIs, by only reinflicting them to us if we areMiod Vallat
lowering the spl. Also, warn and halt in tracks if the interrupt pin of a secondary cpu never clears (found the hard way in one of the 2P256 modules here), since there is nothing better we can do. Last, do not attempt to handle VME interrupts on secondary processors yes (this confuses the bus, since both processors will perform a VME interrupt acknowledge sequence, but only one will succeed). This lets processes correctly run on all the available processors in single-user mode, but there are still issues to sort out.
2007-05-18More work in IPI processing: actual processing is now done with interruptsMiod Vallat
enabled, and is delayed if the current spl is not high enough; setipl() and raiseipl() will retrigger an IPI interrupt if there are any pending IPIs.
2007-05-15kill __HAVE_DEVICE_REGISTER by requiring all architectures to have aTheo de Raadt
device_register() function -- even if it does nothing. reduces the cpp-based blather different between architectures idea ok'd by miod; tested on all architectures (except a few miod will need to cleanup because he has them)
2007-05-14Work in progress IPI mechanism, currently only implemented on MVME188, toMiod Vallat
send clock ticks to secondary processors.
2007-05-14Hold kernel_lock when processing interrupts at a level under IPL_SCHED, asMiod Vallat
done on 188, for MULTIPROCESSOR kernels.
2007-05-14Register statclock() at IPL_STATCLOCK, not IPL_CLOCK (no-op since they areMiod Vallat
the same)
2007-05-12Increment ncpus when hatching a secondary processor.Miod Vallat
2007-05-12Change the 88100 interrupt handlers to process DAEs with interrupts enabled,Miod Vallat
as done for DAEs not occuring during interrupts. Remove the check for unprocessed DAE on return from trap() in eh_common.S, since this can't happen. As a result, the return-from-trap code becomes identical on 88100 and 88110 systems.
2007-05-08remove more junk in the setroot() code pathTheo de Raadt
2007-05-04make findblkmajor() and findblkname() MI; ok miodTheo de Raadt
2007-05-04setroot() was a ugly mix of MI and MD code, with different bugs on differentTheo de Raadt
machines. Instead -- build one solid clean MI version, and thenchange all the architectures to use it. ok various people, tested on almost all cases. (it is a 10094 line diff..)
2007-04-10``it's'' -> ``its'' when the grammar gods require this change.Miod Vallat
2007-03-22When registering VME interrupts, maintain a direct ipl->vector table, as longMiod Vallat
as no more than one interrupt is registered for a given level. Then, if the VME interrupt vector reading cycle fails on the 188 interrupt arbiter, we can use this table as a hint if it has a valid entry, since we know on which ipl line the interrupt occured. This basically silences the m188_ext_int: timeout getting VME interrupt vector, level 3, mask 0x400<IRQ3> occasional messages appearing when the MVME376 is overloaded.
2007-02-19only make this interface available to the kernel for now, discussed withaTheo de Raadt
rt and such; tested and ok miod drahn
2007-02-11Rework the cache handling routines again. We now try to operate on the exactMiod Vallat
address range we've been given, rounded to cache line boundaries, instead of being lazy and operating on pages as soon as the range was large enough. Also, since the ranges we'll be invoked for are reasonably small, it does not make sense to check for segment sizes - we're always smaller, really. While there, hardcode the size in cmmu_flush_data_cache(), which becomes cmmu_flush_data_page(), since it was always invoked for complete pages.
2007-02-11Rework the i/o mapping logic so that it allows the 1:1 region to not go up toMiod Vallat
the end of the address space; allows the A16D16 VME space to be mapped correctly again on MVME197.
2007-02-06Add machine/atomic.h to all architectures and define two operationsArtur Grabowski
right now that are supposed to be atomic with respect to interrupts and SMP: atomic_setbits_int and atomic_clearbits_int. All architectures other than i386 and amd64 get dummy implementations since at first we'll be replacing operations that are done with "a |= bit" and "a &= ~bit" today. More proper implementations will follow kettenis@, miod@ ok
2007-01-13Bring back a <machine/frame.h> for m88k platforms, by splitting <machine/pcb.h>Miod Vallat
in its exception-related contents and pcb-related contents.
2006-12-21'tranfer' -> 'transfer' in comments.Kenneth R Westerback
2006-12-01Unbreak.Miod Vallat
2006-11-28give scsi controllers a real attach args to fill in when attaching scsibus.David Gwynne
ok miod@ marco@ deraadt@
2006-11-28rename scsibus_attach_args to scsi_attach_args. this can help avoidDavid Gwynne
confusing when trying to attach scsibus to a hba, since it is really meant for attaching scsi devices to scsibus. ok deraadt@ marco@
2006-11-20Hold the kernel lock when processing low IPL interrupts; one more step towardsMiod Vallat
stable MULTIPROCESSOR kernels.
2006-11-20Directly invoke m188_setipl() instead of setipl() in the external interruptMiod Vallat
handler.
2006-11-19I completely broke pfsr_188_save_double when introducing per-cpuinfoMiod Vallat
pfsr pointers seven months ago. This would work, but not in all fault cases; now it does the right thing.
2006-11-18On 88100 systems which do not need the xxx.usr instruction workaround,Miod Vallat
override the DAE helper routines with workaroundless code while the kernel text is still writable.
2006-11-18Rework the PFSR register analysis code on mvme88k: split it into fourMiod Vallat
independent subfunctions, turn PFSR_SAVE into a couple of NOP, and replace them early at runtime with a branch to the selected routine, which will return to pfsr_save. This is really better for 188 systems.