Changeset c30fa94 in rtems-libbsd


Ignore:
Timestamp:
Feb 5, 2018, 12:57:11 PM (17 months ago)
Author:
Sebastian Huber <sebastian.huber@…>
Branches:
eeb3fd5d9b07ac9a2e280cff60a1b762bd273a8d, 1e989998de954bef51e6c19cc3d64d39f32100aa
Children:
138bf25
Parents:
9906c4a
git-author:
Sebastian Huber <sebastian.huber@…> (02/05/18 12:57:11)
git-committer:
Sebastian Huber <sebastian.huber@…> (02/06/18 08:55:31)
Message:

Add device tree support for Altera/Intel? Cyclone V

Close #3290.

Files:
2 added
1 deleted
7 edited

Legend:

Unmodified
Added
Removed
  • freebsd/sys/dev/dwc/if_dwc.c

    r9906c4a rc30fa94  
    7070#include <dev/mii/mii.h>
    7171#include <dev/mii/miivar.h>
    72 #ifndef __rtems__
    7372#include <dev/ofw/ofw_bus.h>
    7473#include <dev/ofw/ofw_bus_subr.h>
    75 #else /* __rtems__ */
    76 #include <rtems/bsd/bsd.h>
    77 #endif /* __rtems__ */
    7874
    7975#ifdef EXT_RESOURCES
     
    11601156dwc_get_hwaddr(struct dwc_softc *sc, uint8_t *hwaddr)
    11611157{
    1162 #ifndef __rtems__
    11631158        uint32_t hi, lo, rnd;
    1164 #else /* __rtems__ */
    1165         uint32_t hi, lo;
     1159#ifdef __rtems__
     1160        int i;
     1161
     1162        i = OF_getprop(ofw_bus_get_node(sc->dev), "local-mac-address",
     1163            hwaddr, 6);
     1164        if (i == 6)
     1165                return (0);
    11661166#endif /* __rtems__ */
    11671167
     
    11851185                hwaddr[5] = (hi >>  8) & 0xff;
    11861186        } else {
    1187 #ifndef __rtems__
    11881187                rnd = arc4random() & 0x00ffffff;
    11891188                hwaddr[0] = 'b';
     
    11931192                hwaddr[4] = rnd >>  8;
    11941193                hwaddr[5] = rnd >>  0;
    1195 #else /* __rtems__ */
    1196                 rtems_bsd_get_mac_address(device_get_name(sc->dev),
    1197                     device_get_unit(sc->dev), hwaddr);
    1198 #endif /* __rtems__ */
    11991194        }
    12001195
     
    12941289{
    12951290
    1296 #ifndef __rtems__
    12971291        if (!ofw_bus_status_okay(dev))
    12981292                return (ENXIO);
     
    13001294        if (!ofw_bus_is_compatible(dev, "snps,dwmac"))
    13011295                return (ENXIO);
    1302 #endif /* __rtems__ */
    13031296
    13041297        device_set_desc(dev, "Gigabit Ethernet Controller");
     
    15691562static devclass_t dwc_devclass;
    15701563
    1571 #ifndef __rtems__
    15721564DRIVER_MODULE(dwc, simplebus, dwc_driver, dwc_devclass, 0, 0);
    1573 #else /* __rtems__ */
    1574 DRIVER_MODULE(dwc, nexus, dwc_driver, dwc_devclass, 0, 0);
    1575 #endif /* __rtems__ */
    15761565DRIVER_MODULE(miibus, dwc, miibus_driver, miibus_devclass, 0, 0);
    15771566
  • freebsd/sys/dev/mii/micphy.c

    r9906c4a rc30fa94  
    5858#include <rtems/bsd/local/miibus_if.h>
    5959
    60 #ifndef __rtems__
    6160#include <dev/fdt/fdt_common.h>
    6261#include <dev/ofw/openfirm.h>
    6362#include <dev/ofw/ofw_bus.h>
    6463#include <dev/ofw/ofw_bus_subr.h>
    65 #endif /* __rtems__ */
    6664
    6765#define MII_KSZPHY_EXTREG                       0x0b
     
    118116};
    119117
    120 #ifndef __rtems__
    121118static uint32_t
    122119ksz9031_read(struct mii_softc *sc, uint32_t devaddr, uint32_t reg)
     
    132129        return (PHY_READ(sc, MII_KSZ9031_MMD_ACCESS_DATA));
    133130}
    134 #endif /* __rtems__ */
    135131
    136132static void
     
    149145}
    150146
    151 #ifndef __rtems__
    152147static uint32_t
    153148ksz9021_read(struct mii_softc *sc, uint32_t reg)
     
    158153        return (PHY_READ(sc, MII_KSZPHY_EXTREG_READ));
    159154}
    160 #endif /* __rtems__ */
    161155
    162156static void
     
    168162}
    169163
    170 #ifndef __rtems__
    171164static void
    172165ksz90x1_load_values(struct mii_softc *sc, phandle_t node,
     
    246239            "txd2-skew-ps", 0xf, 8, "txd3-skew-ps", 0xf, 12);
    247240}
    248 #endif /* __rtems__ */
    249241
    250242static int
     
    259251{
    260252        struct mii_softc *sc;
    261 #ifndef __rtems__
    262253        phandle_t node;
    263254        device_t miibus;
    264255        device_t parent;
    265 #endif /* __rtems__ */
    266256
    267257        sc = device_get_softc(dev);
     
    270260        mii_phy_setmedia(sc);
    271261
    272 #ifndef __rtems__
    273262        miibus = device_get_parent(dev);
    274263        parent = device_get_parent(miibus);
     
    281270        else
    282271                ksz9021_load_values(sc, node);
    283 #else /* __rtems__ */
    284         /* FIXME */
    285         if (sc->mii_mpd_model == MII_MODEL_MICREL_KSZ9031) {
    286                 BSD_ASSERT(0);
    287         } else {
    288                 ksz9021_write(sc, MII_KSZPHY_CLK_CONTROL_PAD_SKEW, 0xf0f0);
    289                 ksz9021_write(sc, MII_KSZPHY_RX_DATA_PAD_SKEW, 0x0000);
    290                 ksz9021_write(sc, MII_KSZPHY_TX_DATA_PAD_SKEW, 0x0000);
    291         }
    292 #endif /* __rtems__ */
    293272
    294273        return (0);
  • libbsd.py

    r9906c4a rc30fa94  
    22#  Copyright (c) 2015-2016 Chris Johns <chrisj@rtems.org>. All rights reserved.
    33#
    4 #  Copyright (c) 2009, 2016 embedded brains GmbH.  All rights reserved.
     4#  Copyright (c) 2009, 2018 embedded brains GmbH.  All rights reserved.
    55#
    66#   embedded brains GmbH
     
    161161            'sys/dev/usb/controller/ohci_lpc.c',
    162162            'sys/dev/usb/controller/ohci_lpc32xx.c',
    163             'sys/dev/usb/controller/dwc_otg_nexus.c',
    164163            'sys/dev/usb/controller/usb_otg_transceiver.c',
    165164            'sys/dev/usb/controller/usb_otg_transceiver_dump.c',
     
    707706            'sys/dev/usb/controller/uhcireg.h',
    708707            'sys/dev/usb/controller/xhcireg.h',
     708            'sys/dev/usb/controller/dwc_otg_fdt.h',
    709709            'sys/dev/usb/controller/dwc_otg.h',
    710710            'sys/dev/usb/controller/dwc_otgreg.h',
     
    719719            'sys/dev/usb/controller/usb_controller.c',
    720720            'sys/dev/usb/controller/dwc_otg.c',
     721            'sys/dev/usb/controller/dwc_otg_fdt.c',
    721722            'sys/dev/usb/controller/saf1761_otg.c',
    722723            'sys/dev/usb/controller/saf1761_otg_fdt.c',
  • libbsd_waf.py

    r9906c4a rc30fa94  
    18781878              'freebsd/sys/dev/tsec/if_tsec_fdt.c',
    18791879              'freebsd/sys/dev/usb/controller/dwc_otg.c',
     1880              'freebsd/sys/dev/usb/controller/dwc_otg_fdt.c',
    18801881              'freebsd/sys/dev/usb/controller/ehci.c',
    18811882              'freebsd/sys/dev/usb/controller/musb_otg.c',
     
    23862387              'rtemsbsd/sys/dev/smc/if_smc_nexus.c',
    23872388              'rtemsbsd/sys/dev/tsec/if_tsec_nexus.c',
    2388               'rtemsbsd/sys/dev/usb/controller/dwc_otg_nexus.c',
    23892389              'rtemsbsd/sys/dev/usb/controller/ehci_mpc83xx.c',
    23902390              'rtemsbsd/sys/dev/usb/controller/ohci_lpc.c',
  • rtemsbsd/include/bsp/nexus-devices.h

    r9906c4a rc30fa94  
    11/*
    2  * Copyright (c) 2013-2015 embedded brains GmbH.  All rights reserved.
     2 * Copyright (c) 2013, 2018 embedded brains GmbH.  All rights reserved.
    33 *
    44 *  embedded brains GmbH
     
    105105#elif defined(LIBBSP_ARM_ALTERA_CYCLONE_V_BSP_H)
    106106
    107 #include <bsp/socal/hps.h>
    108 #include <bsp/irq.h>
     107RTEMS_BSD_DEFINE_NEXUS_DEVICE(ofwbus, 0, 0, NULL);
     108SYSINIT_DRIVER_REFERENCE(simplebus, ofwbus);
    109109
    110 RTEMS_BSD_DRIVER_DWC0((unsigned long) ALT_EMAC1_ADDR,
    111                       ALT_INT_INTERRUPT_EMAC1_IRQ);
    112 RTEMS_BSD_DRIVER_MIPHY;
    113 RTEMS_BSD_DRIVER_DWCOTG0((unsigned long) ALT_USB1_ADDR,
    114                          ALT_INT_INTERRUPT_USB1_IRQ);
    115 RTEMS_BSD_DRIVER_DWC_MMC;
    116 RTEMS_BSD_DRIVER_MMC;
     110RTEMS_BSD_DRIVER_DW_ETH;
     111RTEMS_BSD_DRIVER_PHY_MIC;
     112
     113RTEMS_BSD_DRIVER_DW_OTG;
    117114RTEMS_BSD_DRIVER_USB;
    118115RTEMS_BSD_DRIVER_USB_MASS;
     116
     117RTEMS_BSD_DRIVER_DW_MMC;
     118RTEMS_BSD_DRIVER_MMC;
    119119
    120120#elif defined(LIBBSP_ARM_IMX_BSP_H)
  • rtemsbsd/include/machine/rtems-bsd-nexus-bus.h

    r9906c4a rc30fa94  
    4646 *
    4747 *  USB:
    48  *   RTEMS_BSD_DRIVER_DWCOTG0
    49  *   RTEMS_BSD_DRIVER_DWCOTG0_BASE_ADDR
    50  *    RTEMS_BSD_DRIVER_DWCOTG0_IRQ
     48 *   RTEMS_BSD_DRIVER_DW_OTG
    5149 *   RTEMS_BSD_DRIVER_LPC32XX_OHCI
    52  *   RTEMS_BSD_DRIVER_DWC_MMC
    5350 *   RTEMS_BSD_DRIVER_MMC
    5451 *   RTEMS_BSD_DRIVER_USB
     
    8077 *   RTEMS_BSD_DRIVER_ICSPHY
    8178 *   RTEMS_BSD_DRIVER_REPHY
    82  *   RTEMS_BSD_DRIVER_MIPHY
     79 *   RTEMS_BSD_DRIVER_PHY_MIC
    8380 */
    8481
     
    180177 * Designware/Synopsys OTG USB Controller.
    181178 */
    182 #if !defined(RTEMS_BSD_DRIVER_DWCOTG0)
    183   #define RTEMS_BSD_DRIVER_DWCOTG0(_base, _irq)                  \
    184     static const rtems_bsd_device_resource dwcotg0_res[] = {     \
    185       {                                                          \
    186         .type = RTEMS_BSD_RES_MEMORY,                            \
    187         .start_request = 0,                                      \
    188         .start_actual = (_base)                                  \
    189       }, {                                                       \
    190         .type = RTEMS_BSD_RES_IRQ,                               \
    191         .start_request = 0,                                      \
    192         .start_actual = (_irq)                                   \
    193       }                                                          \
    194     };                                                           \
    195     RTEMS_BSD_DEFINE_NEXUS_DEVICE(dwcotg, 0,                     \
    196                                   RTEMS_ARRAY_SIZE(dwcotg0_res), \
    197                                   &dwcotg0_res[0])
    198 #endif /* RTEMS_BSD_DRIVER_DWCOTG0 */
     179#if !defined(RTEMS_BSD_DRIVER_DW_OTG)
     180  #define RTEMS_BSD_DRIVER_DW_OTG                                           \
     181    SYSINIT_DRIVER_REFERENCE(dwcotg, simplebus)
     182#endif /* RTEMS_BSD_DRIVER_DW_OTG */
    199183
    200184/*
     
    226210 * Designware/Synopsys MMC.
    227211 */
    228 #if !defined(RTEMS_BSD_DRIVER_DWC_MMC)
    229   #define RTEMS_BSD_DRIVER_DWC_MMC                                \
    230     RTEMS_BSD_DEFINE_NEXUS_DEVICE(dw_mmc, 0, 0, NULL)
    231 #endif /* RTEMS_BSD_DRIVER_DWC_MMC */
     212#if !defined(RTEMS_BSD_DRIVER_DW_MMC)
     213  #define RTEMS_BSD_DRIVER_DW_MMC                                \
     214    SYSINIT_DRIVER_REFERENCE(dw_mmc, simplebus)
     215#endif /* RTEMS_BSD_DRIVER_DW_MMC */
    232216
    233217/*
     
    250234                                  RTEMS_ARRAY_SIZE(at91_mci0_res), \
    251235                                  &at91_mci0_res[0])
    252 #endif /* RTEMS_BSD_DRIVER_DWC0 */
     236#endif /* RTEMS_BSD_DRIVER_AT91_MCI0 */
    253237
    254238/*
     
    392376 * Designware/Synopsys Ethernet MAC Controller.
    393377 */
    394 #if !defined(RTEMS_BSD_DRIVER_DWC0)
    395   #define RTEMS_BSD_DRIVER_DWC0(_base, _irq)                     \
    396     static const rtems_bsd_device_resource dwc0_res[] = {        \
    397       {                                                          \
    398         .type = RTEMS_BSD_RES_MEMORY,                            \
    399         .start_request = 0,                                      \
    400         .start_actual = (_base)                                  \
    401       }, {                                                       \
    402         .type = RTEMS_BSD_RES_IRQ,                               \
    403         .start_request = 0,                                      \
    404         .start_actual = (_irq)                                   \
    405       }                                                          \
    406     };                                                           \
    407     RTEMS_BSD_DEFINE_NEXUS_DEVICE(dwc, 0,                        \
    408                                   RTEMS_ARRAY_SIZE(dwc0_res),    \
    409                                   &dwc0_res[0])
    410 #endif /* RTEMS_BSD_DRIVER_DWC0 */
     378#if !defined(RTEMS_BSD_DRIVER_DW_ETH)
     379  #define RTEMS_BSD_DRIVER_DW_ETH                                   \
     380    SYSINIT_DRIVER_REFERENCE(dwc, simplebus);
     381#endif /* RTEMS_BSD_DRIVER_DW_ETH */
    411382
    412383/*
     
    502473 * MI PHY.
    503474 */
    504 #if !defined(RTEMS_BSD_DRIVER_MIPHY)
    505   #define RTEMS_BSD_DRIVER_MIPHY                  \
     475#if !defined(RTEMS_BSD_DRIVER_PHY_MIC)
     476  #define RTEMS_BSD_DRIVER_PHY_MIC                  \
    506477    SYSINIT_DRIVER_REFERENCE(micphy, miibus);
    507 #endif /* RTEMS_BSD_DRIVER_MIPHY */
     478#endif /* RTEMS_BSD_DRIVER_PHY_MIC */
    508479
    509480#ifdef __cplusplus
  • rtemsbsd/sys/dev/dw_mmc/dw_mmc.c

    r9906c4a rc30fa94  
    5252#include <machine/resource.h>
    5353
     54#include <dev/ofw/openfirm.h>
     55#include <dev/ofw/ofw_bus.h>
     56#include <dev/ofw/ofw_bus_subr.h>
     57
    5458#include <dev/dw_mmc/dw_mmcreg.h>
    5559
     
    223227}
    224228
     229static struct ofw_compat_data compat_data[] = {
     230        {"altr,socfpga-dw-mshc",        1},
     231        {NULL,                          0},
     232};
     233
    225234static int
    226235dw_mmc_probe(device_t dev)
    227236{
     237
     238        if (!ofw_bus_status_okay(dev))
     239                return (ENXIO);
     240
     241        if (!ofw_bus_search_compatible(dev, compat_data)->ocd_data)
     242                return (ENXIO);
    228243
    229244        device_set_desc(dev, "DesignWare Mobile Storage Host");
     
    11031118static devclass_t dw_mmc_devclass;
    11041119
    1105 DRIVER_MODULE(dw_mmc, nexus, dw_mmc_driver, dw_mmc_devclass, NULL, NULL);
     1120DRIVER_MODULE(dw_mmc, simplebus, dw_mmc_driver, dw_mmc_devclass, NULL, NULL);
    11061121DRIVER_MODULE(mmc, dw_mmc, mmc_driver, mmc_devclass, NULL, NULL);
    11071122MODULE_DEPEND(dw_mmc, mmc, 1, 1, 1);
Note: See TracChangeset for help on using the changeset viewer.