Changeset af5333e in rtems-libbsd for freebsd/sys/sh


Ignore:
Timestamp:
Nov 4, 2013, 10:33:00 AM (6 years ago)
Author:
Sebastian Huber <sebastian.huber@…>
Branches:
4.11, afaeccc05a556f6aa25ba044a7e49d6aa634a59e, freebsd-9.3, master
Children:
cd48afc
Parents:
6779ce5
git-author:
Sebastian Huber <sebastian.huber@…> (11/04/13 10:33:00)
git-committer:
Sebastian Huber <sebastian.huber@…> (11/04/13 14:28:21)
Message:

Update to FreeBSD 8.4

Location:
freebsd/sys/sh
Files:
3 edited

Legend:

Unmodified
Added
Removed
  • freebsd/sys/sh/include/machine/legacyvar.h

    r6779ce5 raf5333e  
    3232enum legacy_device_ivars {
    3333        LEGACY_IVAR_PCIDOMAIN,
    34         LEGACY_IVAR_PCIBUS
     34        LEGACY_IVAR_PCIBUS,
     35        LEGACY_IVAR_PCISLOT,
     36        LEGACY_IVAR_PCIFUNC
    3537};
    3638
     
    4042LEGACY_ACCESSOR(pcidomain,              PCIDOMAIN,      uint32_t)
    4143LEGACY_ACCESSOR(pcibus,                 PCIBUS,         uint32_t)
     44LEGACY_ACCESSOR(pcislot,                PCISLOT,        int)
     45LEGACY_ACCESSOR(pcifunc,                PCIFUNC,        int)
    4246
    4347#undef LEGACY_ACCESSOR
     
    5458struct resource *legacy_pcib_alloc_resource(device_t dev, device_t child,
    5559    int type, int *rid, u_long start, u_long end, u_long count, u_int flags);
     60int     legacy_pcib_map_msi(device_t pcib, device_t dev, int irq,
     61    uint64_t *addr, uint32_t *data);
    5662
    5763#endif /* !_MACHINE_LEGACYVAR_H_ */
  • freebsd/sys/sh/pci/pci_bus.c

    r6779ce5 raf5333e  
    3838#include <sys/malloc.h>
    3939#include <sys/module.h>
     40#include <sys/rman.h>
    4041#include <sys/sysctl.h>
    4142
     
    113114}
    114115
    115 static int
     116int
    116117legacy_pcib_map_msi(device_t pcib, device_t dev, int irq, uint64_t *addr,
    117118    uint32_t *data)
    118119{
    119         device_t bus;
     120        device_t bus, hostb;
     121        int error, func, slot;
    120122
    121123        bus = device_get_parent(pcib);
    122         return (PCIB_MAP_MSI(device_get_parent(bus), dev, irq, addr, data));
     124        error = PCIB_MAP_MSI(device_get_parent(bus), dev, irq, addr, data);
     125        if (error)
     126                return (error);
     127
     128        slot = legacy_get_pcislot(pcib);
     129        func = legacy_get_pcifunc(pcib);
     130        if (slot == -1 || func == -1)
     131                return (0);
     132        hostb = pci_find_bsf(0, slot, func);
     133        KASSERT(hostb != NULL, ("%s: missing hostb for 0:%d:%d", __func__,
     134            slot, func));
     135        pci_ht_map_msi(hostb, *addr);
     136        return (0);
     137       
    123138}
    124139
     
    445460                        device_set_desc(child, s);
    446461                        legacy_set_pcibus(child, busnum);
     462                        legacy_set_pcislot(child, slot);
     463                        legacy_set_pcifunc(child, func);
    447464
    448465                        found = 1;
     
    578595
    579596        /* Bus interface */
    580         DEVMETHOD(bus_print_child,      bus_generic_print_child),
    581597        DEVMETHOD(bus_read_ivar,        legacy_pcib_read_ivar),
    582598        DEVMETHOD(bus_write_ivar,       legacy_pcib_write_ivar),
    583599        DEVMETHOD(bus_alloc_resource,   legacy_pcib_alloc_resource),
     600        DEVMETHOD(bus_adjust_resource,  bus_generic_adjust_resource),
    584601        DEVMETHOD(bus_release_resource, bus_generic_release_resource),
    585602        DEVMETHOD(bus_activate_resource, bus_generic_activate_resource),
     
    599616        DEVMETHOD(pcib_map_msi,         legacy_pcib_map_msi),
    600617
    601         { 0, 0 }
     618        DEVMETHOD_END
    602619};
    603620
     
    674691
    675692        /* Bus interface */
    676         DEVMETHOD(bus_print_child,      bus_generic_print_child),
    677693        DEVMETHOD(bus_read_ivar,        pcib_read_ivar),
    678694        DEVMETHOD(bus_write_ivar,       pcib_write_ivar),
     
    695711        DEVMETHOD(pcib_map_msi,         pcib_map_msi),
    696712
    697         {0, 0}
     713        DEVMETHOD_END
    698714};
    699715
  • freebsd/sys/sh/sh/legacy.c

    r6779ce5 raf5333e  
    6262static MALLOC_DEFINE(M_LEGACYDEV, "legacydrv", "legacy system device");
    6363struct legacy_device {
    64         int                     lg_pcibus;
     64        int     lg_pcibus;
     65        int     lg_pcislot;
     66        int     lg_pcifunc;
    6567};
    6668
     
    9092        DEVMETHOD(bus_write_ivar,       legacy_write_ivar),
    9193        DEVMETHOD(bus_alloc_resource,   bus_generic_alloc_resource),
     94        DEVMETHOD(bus_adjust_resource,  bus_generic_adjust_resource),
    9295        DEVMETHOD(bus_release_resource, bus_generic_release_resource),
    9396        DEVMETHOD(bus_activate_resource, bus_generic_activate_resource),
     
    185188                return(NULL);
    186189        atdev->lg_pcibus = -1;
     190        atdev->lg_pcislot = -1;
     191        atdev->lg_pcifunc = -1;
    187192
    188193        child = device_add_child_ordered(bus, order, name, unit);
     
    208213                *result = atdev->lg_pcibus;
    209214                break;
     215        case LEGACY_IVAR_PCISLOT:
     216                *result = atdev->lg_pcislot;
     217                break;
     218        case LEGACY_IVAR_PCIFUNC:
     219                *result = atdev->lg_pcifunc;
     220                break;
    210221        default:
    211222                return ENOENT;
     
    225236        case LEGACY_IVAR_PCIBUS:
    226237                atdev->lg_pcibus = value;
     238                break;
     239        case LEGACY_IVAR_PCISLOT:
     240                atdev->lg_pcislot = value;
     241                break;
     242        case LEGACY_IVAR_PCIFUNC:
     243                atdev->lg_pcifunc = value;
    227244                break;
    228245        default:
     
    261278        DEVMETHOD(bus_add_child,        cpu_add_child),
    262279        DEVMETHOD(bus_read_ivar,        cpu_read_ivar),
    263         DEVMETHOD(bus_print_child,      bus_generic_print_child),
    264280        DEVMETHOD(bus_get_resource_list, cpu_get_rlist),
    265281        DEVMETHOD(bus_get_resource,     bus_generic_rl_get_resource),
     
    267283        DEVMETHOD(bus_alloc_resource,   bus_generic_rl_alloc_resource),
    268284        DEVMETHOD(bus_release_resource, bus_generic_rl_release_resource),
    269         DEVMETHOD(bus_driver_added,     bus_generic_driver_added),
    270285        DEVMETHOD(bus_activate_resource, bus_generic_activate_resource),
    271286        DEVMETHOD(bus_deactivate_resource, bus_generic_deactivate_resource),
     
    273288        DEVMETHOD(bus_teardown_intr,    bus_generic_teardown_intr),
    274289
    275         { 0, 0 }
     290        DEVMETHOD_END
    276291};
    277292
     
    295310         * bridges (which are added at order 100).
    296311         */
    297         for (i = 0; i <= mp_maxid; i++)
    298                 if (!CPU_ABSENT(i)) {
    299                         child = BUS_ADD_CHILD(parent, 150, "cpu", i);
    300                         if (child == NULL)
    301                                 panic("legacy_attach cpu");
    302                 }
     312        CPU_FOREACH(i) {
     313                child = BUS_ADD_CHILD(parent, 150, "cpu", i);
     314                if (child == NULL)
     315                        panic("legacy_attach cpu");
     316        }
    303317}
    304318
Note: See TracChangeset for help on using the changeset viewer.