which bustype should be attached with a specific call to config_found()
(from a "mainbus" or a bus bridge).
Do it for isa/eisa/mca and pci/agp for now. These buses all attach to
an mi interface attribute "isabus", "eisabus" etc., and the autoconf
framework now allows to specify an interface attribute on config_found()
and config_search(), which limits the search of matching config data
to these which attach to that specific attribute.
So we basically have to call config_found_ia(..., "foobus", ...) where
such a bus is attached.
As a consequence, where a "mainbus" or alike also attaches other
devices (eg CPUs) which do not attach to a specific attribute yet,
we need at least pass an attribute name (different from "foobus") so
that the foo bus is not found at these places. This made some minor
changes necessary which are not obviously related to the mentioned buses.
com_mainbus_cninit() and move these cn functions from cobalt/console.c
to dev/com_mainbus.c
- call cninit() only once
- remove unneeded includes
- use ANSI function decls
in cpu_initclocks(9) via a callback function.
Fixes the "hardclock(9) is called before cpu_initclocks(9)" problem
reported by KIYOHARA Takashi on port-cobalt.
- Use bus_space(9) functions to access GT64111 registers and
add register definitions for GT64111 in gtreg.h.
(XXX this could be in sys/dev/marvell?)
- Move microtime(9) from machdep.c to clock.c, and read timer0 register
via a callback function. Also change microtime(9) like other ports
to guarantee that the time will be greater than the value obtained
by a previous call.
* Get rid of PTmap, PTD, PTDpde, APTmap, APTD, and APTDpde from locore.S.
* Rename PTDpaddr to PDPpaddr, ptdpaddr in struct cpu_kcore_hdr to pdppaddr for consistency.
obtained.
Switch to EVCNT_ATTACH_STATIC*
In DEBUG/DIAGNOSTIC, decrement/increment pmap_pvo_enter_depth around pool
calls since they could possibly cause a recursion back into pmap_pvo_enter.
preprocessor hackery. If supporting Thumb add an 18th undefined
handler for undefined instruction traps taken in Thumb state. Kill
MAX_COPROCS and use NUM_UNKNOWN_HANDLERS instead.
Add support for breakpoints set in Thumb code and hand them off to
GDB as required.
Note: this may need further work. For the momement we unconditionally
convert a Thumb SWI insn into an ARM SWI with the operation code
zero-extended to 24 bits. However, this should really be a property
of the emulation (how do we know that all emulated systems would want
to work this way?), but that would mean pushing all the handling down
into each of the emulators.
If supporting architecture 5, enable Thumb code support.
Note: we could probably enable this for 4T processors as well, but
getting interworking right is much more tricky.
architecture defines passed from the compiler.
Define RET and RETc macros for return and conditional return. If BX is
available in the current instruction set then make use of it.
Note: these really are from the compiler's -march/-mcpu flags, not
from the kernel config, so they can be relied on in user space.
ata_channel.
- Add and use a CHAN_TO_WDC_REGS() macro to get the wdc_regs from an
ata_channel.
- Add and use a CHAN_TO_PCIIDE() macro to get the pciide_softc from an
ata_channel.
- Add and use a CHAN_TO_PCHAN() macro to get the pciide_channel from an
ata_channel. (This one just hides a cast, and is really just for
consistency with the others.)
(E++):
o The static configuration table now identifies by HPC offset.
o Added sq(4) entries for IP12, IP20, and IP24.
o Accomodated HPC revision forcing based on kernel config flags.
adapter) to work on IP24:
o Force HPC and GIO slot endianness.
o Allow slots one and two to be masters and configure for
realtime mode.
Also, while we're here move IP22 invariants into the IP22 case.
I suspect that IP20 will work as well since it exhibited the same
broken DMA that IP24 did before I flipped the master bit.
rather than taking the value from the bios.
Should allow the system to use a serial console that is also a 'bios serial
console' and isn't in the bios serial port table.
Probably fixes (with a few other changes) PR port-i386/9236
wdc_regs structure, and array of which (indexed per channel) is pointed
to by struct wdc_softc.
- Move the resulting wdc_channel structure to atavar.h and rename it to
ata_channel. Rename the corresponding flags.
- Add a "ch_ndrive" member to struct ata_channel, which indicates the
maximum number of drives that can be present on the channel. For now,
this is always 2. Add an ATA_MAXDRIVES constant that places an upper
limit on this value, also currently 2.