pcibus and pci.
(2) remove the #ifdef i386 from pci.c, and provide a machine-dependent
hook (pci_md_attach_hook()) to do any machine-dependent attachment
gunk, e.g. on the i386 printing out the configuration mode (if bus 0)
(3) don't pass max device number for a given bus in, use
PCI_MAX_DEVICE_NUMBER, which can be defined on a per-machine basis.
(defaults to 32. on i386, it's 32 if pci conf mode == 1, 16 if 2.)
assumes that pci_map_mem/pci_map_io provide interfaces which utilitize
bus_{io,mem}_handle_t's, or types which are compatible. This works on the
i386, and will change eventually anyway.)
for U_INT8, INT16, U_INT16 definitions. Convert structs and
definitions in ncr_reg.h (e.g. ncrcmd, the chip register layout, etc.)
to use these definitions.
Add INB_OFF, INL_OFF, and OUTL_OFF macros to access specified offsets into
I/O or memory space. Convert register dumps (etc.), and cache snoop
test to use these new macros, so that nothing accesses the device
I/O or memory space directly. (Register dumps now come from I/O space
if NCR_IOMAPPED. They used to bogusly use memory space.)
Add a new relocation type for script entries, RELOC_KVAR. Allow scripts
access to mono_time.tv_sec, mono_time, and ncr_cache via this
mechanism, and convert scripts to use it. An ncrcmd is only 32 bits
wide, and KVAs may be > 32 bits wide (e.g. on Alpha), leading to
linker problems. This is a safer way to do this anyway; relocation is
more deterministic this way, and doesn't rely on KVAs not looking like
other relocation types.
Panic if an unmatched relocation other than 'zero' is specified. That's
now a script bug. (This used to be used to convert KVAs of kernel
variables referenced in the script to PCI bus physical addresses,
and that is now handled by RELOC_KVAR relocations.)
Figure out and print the model of chip.
assumes that pci_map_mem/pci_map_io provide interfaces which utilitize
bus_{io,mem}_handle_t's, or types which are compatible. This works on the
i386, and will change eventually anyway.)
substantial reworking of the multi-port drivers, as they need to frob
bits in the io-port spaces of their children. As a result, the
commulti->com attachment interface is substantially more complex.
(This may be fixable in the future by making some of the code common,
but as long as io-port allocation checking is planned, it's necessary.)
macro where appropriate. No point in hard-coding numbers in multiple places.
At the very least, this makes the drivers slightly easier to diff/understand.
attaching, and to the devices when attaching them. #include <machine/bus.h>
to make this backward compatible with old #include requirements.
Also, clean up idempotency so that isa/eisa/pci "var.h" headers are
consistent (make them all idempotent).
and will probably work with Massbus adapters as well. (Not tested,
but it's the same code as for 11/780). Ubareset's may cause crashes
on 8600 also like 11/780, but they are more uncommon. No support
for console RL02 yet, but it's likely to come.
but unconfigured (or unsupported) devices printed at boot time.
The device list is woefully incomplete, because i didn't put much time
in it, and because i don't know good "human names" for many TC devices.