summaryrefslogtreecommitdiff
path: root/sys/arch/aviion/include
AgeCommit message (Collapse)Author
2013-06-16Add IPL_MPSAFE for some architectures that I missed in the first round.Mark Kettenis
pointed out by & ok miod@
2013-06-01add missing license (PD) blockJasper Lievisse Adriaanse
ok guenther@
2013-03-23refactor sys/param.h and machine/param.h. A lot of #ifdef _KERNEL is addedTheo de Raadt
to keep definitions our of user space. The MD files now follow a consistant order -- all namespace intrusion is at the tail can be cleaned up independently. locore, bootblocks, and libkvm still see enough visibility to build. Checked on 90% of platforms...
2013-01-05Switch m88k ports to ELF.Miod Vallat
2012-12-04Remove the gcc 2 m88k varargs logic. You gave me a lot of trouble and no pony,Miod Vallat
therefore I don't mind you rotting in the Attic for eternity (scheduled to start on the 21st anyway, according to MayaBSD developers). reminded by deraadt@
2006-04-18Oops, correct import this time.Miod Vallat
2012-11-05unifdef -D __HAVE_TIMECOUNTERMiod Vallat
2012-06-26create new machine/_float.h which is namespace clean. create a newTheo de Raadt
MI float.h which pulls in and defines the values that are needed from there, and repair sys/limits.h so that it defines the values it needs as well (depending on POSIX version, XPG version, etc). guenther has a more exact selection of that coming for limits.h. this also fixes a few mistakes for the vax. reviewed by kettenis and guenther.
2011-10-27Specify the TLS variant for each platform.Philip Guenthe
2011-09-27Make bus_addr_t and bus_size_t u_long types, instead of either uint32_t orMiod Vallat
uint64_t, depending upon the platform; this makes the declaration of these types consistent accross all our supported platform, and we do not intend to support a platform where bus_addr_t could be larger than the size of the cpu register. Requested by deraadt@ during s2k11
2011-04-28- enable fenvMartynas Venckus
- add nearbyint, nearbyintf and nearbyintl implemented using fenv
2011-03-23Normalize sentinel. Use _MACHINE_*_H_ and _<ARCH>_*_H_ properly and consitently.Paul Irofti
Discussed and okay drahn@. Okay deraadt@.
2011-01-02Kill pmap_table_t typedef.Miod Vallat
2010-12-31Massive overhauling of the m88k pmap, though I can't pretend it's a new pmapMiod Vallat
since a large part of the structures and logic remains. Since m88k has separate supervisor/user spaces, we can map physical memory 1:1 in supervisor space, and have the kernel virtual address space start from the end of physical memory. This allows us to switch to __HAVE_PMAP_DIRECT. And to get rid of the double mapped sdt, since now their virtual and physical addresses will always match. The upper bound of the kernel virtual memory space is now platform dependent, until the code which relies upon some hardware devices being mapped 1:1 in supervisor mode is updated to no longer require this (this is mainly a PITA on luna88k, where onboard devices start at 0x40000000, leaving only 1GB of KVA at the moment - still much better than the previous 512MB). Tested on mvme88k only (187, 188, 197LE, 197DP). Other platforms ought to work, aviion will be checked shortly and fixed if necessary. No known OpenBSD/luna88k system in working condition at the moment.
2010-12-23The exception vector page on m88k systems has always been the same page asMiod Vallat
the one used by the firmware, which (at least on mvme88k) is at address zero. This is unfortunate, since this means that NULL pointer dereferences in the kernel are not caught, and writes cause havoc. This behaviour was necessary to be able to use the PROM system call interface during early bootstrap, without having to disassemble the VBR page and update branches - which use pc-relative displacement - if we were to use a different VBR address. On mvme88k, change this and actually set up two VBR pages: one, over the PROM page (except for the system call vectors), and another one in the kernel image (which will be mapped read-only). We'll run with the PROM page until the end of autoconf, and then switch to the kernel one, and unmap all the PROM below it. As a bonus, the final kernel page can use optimized data access fault handlers, which do not have to check for faults caused by badaddr(), since badaddr() is only used during device probe on buses which do not support hotplug. There are a few infrastructure collateral damage on aviion and luna88k, but these ports do not change their behaviour yet.
2010-04-24AViiON VDM and VDIT defines, to be used by disksubr.c very soon.Miod Vallat
2010-04-24SMP support for models 4600 and 530, adapted from the MVME188 code. ModelsMiod Vallat
4000 and 4300 will need more work, because they don't have as many distinct software interrupt sources as required by this implementation, so a different IPI scheme will be necessary. Tested on dual-processor 4625 (AV530 family) and single processor 4300 (AV400 family).
2010-04-24Replace heuristics used to figure out which model we are running on, andMiod Vallat
trust the cpuid value returned by the prom itself (verified against /usr/opt/sdk/include/sys/dg_sys_info.h on a DG-UX filesystem).
2010-04-21More reworking of interrupt handling and VME support, and rename variousMiod Vallat
board-specific defines to prevent any risk of collision. This also adds clock support for AV530 family, and timecounter support (cio code sync'ed with mvme88k). And various bugs fixed in the process. This is enough to get models 4600 and 530 to run multiuser with a Hawk Ethernet VME card (the onboard Ethernet is not supported yet, coming soon). There is no way to share a disk with DG/UX yet, the kernel (and fdisk(8)) needs to become aware of its ways.
2010-04-20Add bus_dma and oosiop(4), as found on the AV530 family. Tested on model 4605.Miod Vallat
2010-04-18Work in progress support for AViiON models 4600 and 530.Miod Vallat
Also features support for {awkw,bast}ard 6:1 CMMU:CPU configurations (4I2D). Tested on model 4605, which runs up to cpu_initclocks(), which is not written for this system family yet. No regression on model 4300.
2009-07-30Make sure the BUS_SPACE_BARRIER_xxx constants are all non-zero and can beMiod Vallat
or'ed together, even on platforms where bus_space_barrier() ignores the barrier argument yet.
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-02-16Since NMI are now handled separately, remove the ``interrupt type'' argumentMiod Vallat
from interrupt() and related function pointers.
2007-12-19Overhaul interrupt handling, in order to make it (arguably) simpler andMiod Vallat
more board design-independent. The main changes are: - define logical interrupt sources, which match the on-board devices as well as the seven VME interrupt sources. Use these whenever possible when registering interrupts in the drivers, so that the actual interrupt mask layouts are hidden. - make the on-board and VME interrupt handlers separate. On-board interrupt handlers are not really associated to an interrupt vector, only to a given interrupt source, and only one handler can be registered for a logical interrupt source. On the other hand, VME interrupts come with a vector number, and can be shared. This allows VME devices to really use the whole 256 vectors space, starting at vector zero. - update the real interrupt masks upon interrupt handler registration and removal, so that only interrupt sources for which a handler exists may be enabled. - update the VME interrupt allocation logic to allow exclusive vector allocation. - move the Z8536 clock routines to their own file, since they are not AV400-specific; while there, calibrate the delay constant upon startup for more accurate delay(). The vme driver is the only one left with AV400 tentacles left, to be fixed very soon.
2007-12-19The serial console address apparently does not change accross 88100 designs,Miod Vallat
so stash it in a board-independent header.
2007-12-19Allocate memory for the onboard le interface using uvm functions, instead ofMiod Vallat
stealing pages in pmap_bootstrap. While there, use up to four times more memory for these buffers if the machine has enough physical memory.
2007-12-08Better siginfo fault codes for floating point exceptions on 88110, withMiod Vallat
more work in progress to handle these exceptions correctly, and document a new undocumented and evil chip bug while there.
2007-12-02Rework the __mp_lock code to not spin at spllock(), kinda similar to theMiod Vallat
x86 __mp_lock changes, but keeping the internal __cpu_simplelock_t to guarantee atomic access to the __mp_lock fields.
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-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-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-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-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-11-16Ratibibugle struct frame and <machine/frame.h>Miod Vallat
2006-10-20Try again with local variable to avoid alignment issues.Kenneth R Westerback
"The dosparts member of cpu_disklabel was not used for any persistant data. Eliminate it, and just use the data being read in while processing MBR and EBR records. Should be no functional change. ok weingart@ deraadt@"
2006-10-18back out disksubr changes ... since they violate strict alignment onTheo de Raadt
some architectures (kaboom); that will be fixed in the next iteration hopefully!
2006-10-17The dosparts member of cpu_disklabel was not used for any persistantKenneth R Westerback
data. Eliminate it, and just use the data being read in while processing MBR and EBR records. Should be no functional change. ok weingart@ deraadt@
2006-10-03Don't load bad144 bad sector information into disklabels for archs thatKenneth R Westerback
don't have wd* in GENERIC, since wd* is the only place such info is being used. First step of eliminating bad144 bad sector info from all disklabels. 'go go go' deraadt@
2006-07-01Eliminate redundant get_le() in favour of letoh32(). Add letoh32()Kenneth R Westerback
calls in alpha, hppa, hppa64 and mips63 when accessing the two DOS MBR u_int32_t fields dp_size and dp_start. No functional change.
2006-06-26Clean up some inconsistancies in definitions around DOS MBR code. NoKenneth R Westerback
functional change. ok deraadt@
2006-05-21Fix AV_IEN() computation for cpu #2 and #3.Miod Vallat
2006-05-21Move common definitions shared by the various 88100-based designs to theirMiod Vallat
own header file, and slowly make most of the code board-independent. No functional change.
2006-05-20Introduce a ``struct board'' platform abstraction, to be able to supportMiod Vallat
more AViiON designs in the future. Heuristics to tell designs apart in aviion_identify() are likely too weak, but this is a start and AV400 still gets identified as AV400 (-:
2006-05-20Try and use the CPUCONFIG PROM call even if we did not detect 88204 CMMUs,Miod Vallat
recent PROM might have it implemented, and for 6:1 processor boards on 530 models, this is the only way we'll get to know the split scheme in use, for now.
2006-05-20Save the PROM VBR on startup, rather than assuming the PROM (and thus itsMiod Vallat
VBR) will always reside at the same address. Also, when querying the PROM for the memory size, ask it for the ``user'' size - i.e. with the PROM data area taken out.
2006-05-11Fix stupid bugs in mapping and unmapping of VME regions.Miod Vallat
2006-05-09Oops, correct import this time.Miod Vallat
2006-05-09Oops, correct import this time.Miod Vallat