cvs commit: src/sys/bus/firewire firewire.c fwohci_pci.c src/sys/bus/isa isa_common.c isahint.c pnp.c src/sys/bus/pci pci.c pci_pcib.c pcivar.h src/sys/bus/pci/i386 pcibus.c src/sys/bus/ppbus ppbconf.c src/sys/dev/acpica5 acpi.c acpi_ec.c ...

Matthew Dillon dillon at
Sat Oct 29 21:43:46 PDT 2005

dillon      2005/10/29 21:41:15 PDT

DragonFly src repository

  Modified files:
    sys/bus/firewire     firewire.c fwohci_pci.c 
    sys/bus/isa          isa_common.c isahint.c pnp.c 
    sys/bus/pci          pci.c pci_pcib.c pcivar.h 
    sys/bus/pci/i386     pcibus.c 
    sys/bus/ppbus        ppbconf.c 
    sys/dev/acpica5      acpi.c acpi_ec.c acpi_pci.c acpi_timer.c 
    sys/dev/misc/orm     orm.c 
    sys/dev/netif/ep     if_ep_isa.c 
    sys/dev/netif/ex     if_ex_isa.c 
    sys/dev/sound/isa    es1888.c 
    sys/i386/i386        nexus.c pnpbios.c 
    sys/kern             bus_if.m subr_bus.c 
    sys/sys              bus.h 
  Add another parameter to BUS_ADD_CHILD to allow children to inherit
  code from grandparents.
  Formalize and document the IDENTIFY mechanism and actually use it properly
  to add PCI busses rather then the severe hacks that existed before.
  Instead of attaching PCI busses (pcib) directly to nexus, create a pass-through
  bus layer under nexus called 'legacypci' and attach the PCI busses to that.
  Use the new BUS_ADD_CHILD and IVARS recursion capability to still allow
  the pcib's under legacypci to get nexus generated IVARS.
  NOTE ON IVARS:  These can be utterly confusing because a BUS device may
  manage and control the IVARS attached to its children.  In addition, if the
  BUS method for the device accessing the IVARs does not properly match up
  with or recurse to the device that actually created the ivars, mass
  confusion can result.  I have attempted to document the issue but XXX it
  needs some sanity check code.
  Add a 'pcib_owner' global that is used to determine which of the several
  possible PCI mainbus subsystems actually own the PCI mainbus.  This is not
  yet tied into ACPI but will be soon.  No longer add legacy "pcib" busses
  if it is detected that another subsystem controls the mainbus.  Before
  the busses were added but then simply not scanned later on, creating
  confusing pcibX designations.  Now the busses aren't added... legacypci
  stops cold if it doesn't own the PCI mainbus.  Get rid of the twisted
  checks for "pci" devices that used to handle this job.
  Document many aspects of the PCI code and redo some of the APIs slightly
  to make them more obvious.  In particular, document the odd fact that
  pci_*() accessor function actually operate on a pci function code based
  sub-device of the "pci" driver and call device_get_parent() to get to the
  pci" driver layer.  This sub layer really needs its own formal designation.
  Change "pciX" attachments to "pcibY" busses.  Use the secondary bus id
  for 'X' and require it to be unique.  Also reorder "pcibY" attachments
  so the physical bus number tends to (but is not guarenteed to be) the
  same 'Y' in pcibY.
  Change IVARS access for bridges.  Require that the device representing the
  "pcib" device be passed to pcib_get/set_*() routines instead of children
  of said device.
  Add a function devclass_find_unit() to shortcut the more complex operation
  of locating the devclass by name and then getting the device relative to
  the devclass.
  Add numerous bus_generic_*() BUS methods which now recurse through the
  parent instead of terminate with an error.
  Revision  Changes    Path
  1.13      +4 -4      src/sys/bus/firewire/firewire.c
  1.20      +6 -6      src/sys/bus/firewire/fwohci_pci.c
  1.9       +2 -2      src/sys/bus/isa/isa_common.c
  1.5       +1 -1      src/sys/bus/isa/isahint.c
  1.8       +2 -1      src/sys/bus/isa/pnp.c
  1.28      +28 -3     src/sys/bus/pci/pci.c
  1.5       +62 -16    src/sys/bus/pci/pci_pcib.c
  1.10      +12 -3     src/sys/bus/pci/pcivar.h
  1.14      +150 -92   src/sys/bus/pci/i386/pcibus.c
  1.9       +2 -2      src/sys/bus/ppbus/ppbconf.c
  1.17      +7 -6      src/sys/dev/acpica5/acpi.c
  1.6       +1 -1      src/sys/dev/acpica5/acpi_ec.c
  1.4       +2 -3      src/sys/dev/acpica5/acpi_pci.c
  1.7       +1 -1      src/sys/dev/acpica5/acpi_timer.c
  1.5       +1 -1      src/sys/dev/misc/orm/orm.c
  1.9       +2 -1      src/sys/dev/netif/ep/if_ep_isa.c
  1.10      +2 -1      src/sys/dev/netif/ex/if_ex_isa.c
  1.4       +1 -1      src/sys/dev/sound/isa/es1888.c
  1.20      +10 -26    src/sys/i386/i386/nexus.c
  1.4       +1 -1      src/sys/i386/i386/pnpbios.c
  1.8       +6 -1      src/sys/kern/bus_if.m
  1.29      +87 -12    src/sys/kern/subr_bus.c
  1.18      +8 -0      src/sys/sys/bus.h

More information about the Commits mailing list