Deleted Added
full compact
ofw_pcib_subr.c (153342) ofw_pcib_subr.c (163260)
1/*-
2 * Copyright (c) 2003 by Thomas Moestl <tmm@FreeBSD.org>
3 * All rights reserved.
4 *
5 * Redistribution and use in source and binary forms, with or without
6 * modification, are permitted provided that the following conditions
7 * are met:
8 * 1. Redistributions of source code must retain the above copyright

--- 10 unchanged lines hidden (view full) ---

19 * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
20 * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
21 * CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
22 * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE
23 * USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
24 */
25
26#include <sys/cdefs.h>
1/*-
2 * Copyright (c) 2003 by Thomas Moestl <tmm@FreeBSD.org>
3 * All rights reserved.
4 *
5 * Redistribution and use in source and binary forms, with or without
6 * modification, are permitted provided that the following conditions
7 * are met:
8 * 1. Redistributions of source code must retain the above copyright

--- 10 unchanged lines hidden (view full) ---

19 * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
20 * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
21 * CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
22 * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE
23 * USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
24 */
25
26#include <sys/cdefs.h>
27__FBSDID("$FreeBSD: head/sys/sparc64/pci/ofw_pcib_subr.c 153342 2005-12-12 16:07:11Z marius $");
27__FBSDID("$FreeBSD: head/sys/sparc64/pci/ofw_pcib_subr.c 163260 2006-10-12 04:44:01Z kmacy $");
28
29#include "opt_ofw_pci.h"
28
29#include "opt_ofw_pci.h"
30#include "opt_global.h"
30
31#include <sys/param.h>
32#include <sys/systm.h>
33#include <sys/bus.h>
34
35#include <dev/ofw/ofw_bus.h>
36#include <dev/ofw/ofw_pci.h>
37#include <dev/ofw/openfirm.h>

--- 9 unchanged lines hidden (view full) ---

47
48#include <sparc64/pci/ofw_pci.h>
49#include <sparc64/pci/ofw_pcib_subr.h>
50
51void
52ofw_pcib_gen_setup(device_t bridge)
53{
54 struct ofw_pcib_gen_softc *sc;
31
32#include <sys/param.h>
33#include <sys/systm.h>
34#include <sys/bus.h>
35
36#include <dev/ofw/ofw_bus.h>
37#include <dev/ofw/ofw_pci.h>
38#include <dev/ofw/openfirm.h>

--- 9 unchanged lines hidden (view full) ---

48
49#include <sparc64/pci/ofw_pci.h>
50#include <sparc64/pci/ofw_pcib_subr.h>
51
52void
53ofw_pcib_gen_setup(device_t bridge)
54{
55 struct ofw_pcib_gen_softc *sc;
56#ifndef SUN4V
55 u_int secbus;
56
57 u_int secbus;
58
59#endif
57 sc = device_get_softc(bridge);
58 sc->ops_pcib_sc.dev = bridge;
59 sc->ops_node = ofw_bus_get_node(bridge);
60 KASSERT(sc->ops_node != 0,
61 ("ofw_pcib_gen_setup: no ofw pci parent bus!"));
62
63 /*
64 * Setup the secondary bus number register, by allocating a new unique
65 * bus number for it; the firmware preset does not always seem to be
66 * correct.
67 */
60 sc = device_get_softc(bridge);
61 sc->ops_pcib_sc.dev = bridge;
62 sc->ops_node = ofw_bus_get_node(bridge);
63 KASSERT(sc->ops_node != 0,
64 ("ofw_pcib_gen_setup: no ofw pci parent bus!"));
65
66 /*
67 * Setup the secondary bus number register, by allocating a new unique
68 * bus number for it; the firmware preset does not always seem to be
69 * correct.
70 */
71#ifndef SUN4V
68 secbus = ofw_pci_alloc_busno(sc->ops_node);
69 pci_write_config(bridge, PCIR_PRIBUS_1, pci_get_bus(bridge), 1);
70 pci_write_config(bridge, PCIR_SECBUS_1, secbus, 1);
71 pci_write_config(bridge, PCIR_SUBBUS_1, secbus, 1);
72 sc->ops_pcib_sc.subbus = sc->ops_pcib_sc.secbus = secbus;
73 /* Notify parent bridges. */
74 OFW_PCI_ADJUST_BUSRANGE(device_get_parent(bridge), secbus);
75
72 secbus = ofw_pci_alloc_busno(sc->ops_node);
73 pci_write_config(bridge, PCIR_PRIBUS_1, pci_get_bus(bridge), 1);
74 pci_write_config(bridge, PCIR_SECBUS_1, secbus, 1);
75 pci_write_config(bridge, PCIR_SUBBUS_1, secbus, 1);
76 sc->ops_pcib_sc.subbus = sc->ops_pcib_sc.secbus = secbus;
77 /* Notify parent bridges. */
78 OFW_PCI_ADJUST_BUSRANGE(device_get_parent(bridge), secbus);
79
80#endif
76 ofw_bus_setup_iinfo(sc->ops_node, &sc->ops_iinfo,
77 sizeof(ofw_pci_intr_t));
78}
79
80int
81ofw_pcib_gen_route_interrupt(device_t bridge, device_t dev, int intpin)
82{
83 struct ofw_pcib_gen_softc *sc;

--- 58 unchanged lines hidden ---
81 ofw_bus_setup_iinfo(sc->ops_node, &sc->ops_iinfo,
82 sizeof(ofw_pci_intr_t));
83}
84
85int
86ofw_pcib_gen_route_interrupt(device_t bridge, device_t dev, int intpin)
87{
88 struct ofw_pcib_gen_softc *sc;

--- 58 unchanged lines hidden ---