27 Jul, 2019

1 commit


26 Jul, 2019

24 commits

  • - DaVinci emac DM work
    - NXP driver work
    - macb updates for RISC-V

    Tom Rini
     
  • H3/H5 can either use the internal phy or an external one.
    Before getting clock and resets for the internal phy,
    test that we are using it because otherwise it break emac
    when using an external phy.

    Tested-on: OrangePi PC2 (H5)
    Fixes: 2348453c41 (net: sun8i_emac: Add EPHY CLK and RESET support)
    Signed-off-by: Emmanuel Vadot
    Acked-by: Joe Hershberger

    Emmanuel Vadot
     
  • Now that we removed all legacy boards selecting TI_EMAC we can
    completely convert the driver code to using the driver model.
    This patch also updates all remaining users of davinci_emac.

    Signed-off-by: Bartosz Golaszewski
    Tested-by: Adam Ford #am3517-evm & da850-evm
    Reviewed-by: Ramon Fried

    Bartosz Golaszewski
     
  • Instead of depending on CONFIG_SYS_LITTLE_ENDIAN, we check at runtime
    whether underlying system is little-endian or big-endian. This way
    we are not dependent on any U-Boot specific OR compiler specific macro
    to check system endianness.

    Signed-off-by: Anup Patel
    Reviewed-by: Bin Meng
    Reviewed-by: Ramon Fried
    Acked-by: Joe Hershberger

    Anup Patel
     
  • The SiFive MACB ethernet has a custom TX_CLK_SEL register to select
    different TX clock for 1000mbps vs 10/100mbps.

    This patch adds SiFive MACB compatible string and extends the MACB
    ethernet driver to change TX clock using TX_CLK_SEL register for
    SiFive MACB.

    Signed-off-by: Anup Patel
    Reviewed-by: Bin Meng
    Reviewed-by: Ramon Fried
    Acked-by: Joe Hershberger

    Anup Patel
     
  • In the case of the tsec network driver, so far there has been no
    mainline user of DM_ETH where the DT bindings get used.

    In the case of the mdio bus, it looks like the "fsl,tsec-mdio" string
    was made up for the documentation, but there is no mainline code that
    parses the "compatible" property anyway.

    In both cases, there are no DT blobs that contain the old strings.

    So change the documentation to "fsl,etsec2" for the Ethernet ports and
    "fsl,etsec2-mdio" for the MDIO buses, which are strings that Linux also
    uses, at least for LS1021A. More compatible strings can be added once
    other (PowerPC) SoCs are migrated to DM_ETH.

    The current ls1021a.dtsi doesn't match what was documented for the MDIO
    buses anyway (the "compatible" is "gianfar" currently). This will be
    fixed in the next patch.

    Fixes: 69a00875e3db ("doc: dt-bindings: Describe Freescale TSEC ethernet controller")
    Signed-off-by: Vladimir Oltean
    Reviewed-by: Bin Meng
    Acked-by: Joe Hershberger

    Vladimir Oltean
     
  • In tsec_init, the MAC address is retrieved from 2 different structures
    depending on whether DM_ETH is enabled or not.

    But since the field name is the same inside both structures, we can
    conditionally define the structure of the correct type and simplify the
    assignments.

    Signed-off-by: Vladimir Oltean
    Acked-by: Joe Hershberger
    Reviewed-by: Bin Meng

    Vladimir Oltean
     
  • This replaces debug() calls with printf() so that it is immediately
    obvious from the console that something is wrong.

    Signed-off-by: Vladimir Oltean
    Acked-by: Joe Hershberger
    Reviewed-by: Bin Meng

    Vladimir Oltean
     
  • This is a cosmetic patch that reorders variable definitions in the
    inverse order of their line length, where possible.

    Signed-off-by: Vladimir Oltean
    Acked-by: Joe Hershberger
    Reviewed-by: Bin Meng

    Vladimir Oltean
     
  • By convention, the eTSEC MDIO controller nodes are defined in DT at
    0x2d24000 and 0x2d50000, but actually U-Boot does not touch the
    interrupt portion of the register map (MDIO_IEVENTM, MDIO_IMASKM,
    MDIO_EMAPM).

    That leaves only the MDIO bus registers (MDIO_MIIMCFG, MDIO_MIIMCOM,
    MDIO_MIIMADD, MDIO_MIIMADD, MDIO_MIIMCON, MDIO_MIIMSTAT) which start at
    the 0x520 offset.

    So shift the DT-defined register map by the offset of MDIO_MIIMCFG when
    mapping the MDIO bus registers.

    Signed-off-by: Vladimir Oltean
    Acked-by: Joe Hershberger
    Reviewed-by: Bin Meng

    Vladimir Oltean
     
  • The point of this patch is to eliminate the use of the locally-defined
    "reg" variable (which interferes with next patch) and simplify the
    fallback to the default CONFIG_SYS_TBIPA_VALUE in case "tbi-handle" is
    missing.

    Signed-off-by: Vladimir Oltean
    Acked-by: Joe Hershberger
    Reviewed-by: Bin Meng

    Vladimir Oltean
     
  • Macb Ethernet controller requires a RX buffer of 128 bytes. It is
    highly sub-optimal for Gigabit-capable GEM that is able to use
    a bigger DMA buffer. Change this constant and associated macros
    with data stored in the private structure.
    RX DMA buffer size has to be multiple of 64 bytes as indicated in
    DMA Configuration Register specification.

    Signed-off-by: Ramon Fried
    Acked-by: Joe Hershberger

    Ramon Fried
     
  • DMA configuration was heavily dependent on the HW
    defaults, add function to properly set the required
    fields, including the new dma_burst_length.

    Signed-off-by: Ramon Fried
    Reviewed-by: Anup Patel
    Tested-by: Anup Patel
    Acked-by: Joe Hershberger

    Ramon Fried
     
  • GEM support higher DMA burst writes/reads than the default (4).
    add configuration structure with dma burst length so it could be
    applied later to DMA configuration.

    Signed-off-by: Ramon Fried
    Reviewed-by: Anup Patel
    Tested-by: Anup Patel
    Acked-by: Joe Hershberger

    Ramon Fried
     
  • This patch adds support for the sgmii phy interface,
    available only to DM users, dictated by current driver
    design.

    Signed-off-by: Ramon Fried
    Reviewed-by: Anup Patel
    Tested-by: Anup Patel
    Acked-by: Joe Hershberger

    Ramon Fried
     
  • macb.h provides macros for reading/setting bitfields,
    in macb registers and descriptors. use that instead
    of redefining them in the source file.

    Signed-off-by: Ramon Fried
    Reviewed-by: Anup Patel
    Tested-by: Anup Patel
    Acked-by: Joe Hershberger

    Ramon Fried
     
  • add support for clock rates higher than 2.4Mhz

    Signed-off-by: Ramon Fried
    Reviewed-by: Anup Patel
    Tested-by: Anup Patel
    Acked-by: Joe Hershberger

    Ramon Fried
     
  • Few registers and bits were added by Cadence and
    they were not updated in the headers.
    Take the latest definitions as defined in Linux
    header (5.1) that also includes some comments
    about existing registers.

    One register was improperly named (UR), fix that.

    Signed-off-by: Ramon Fried
    Reviewed-by: Anup Patel
    Tested-by: Anup Patel
    Acked-by: Joe Hershberger

    Ramon Fried
     
  • This driver is used for MDIO muxes driven over I2C. This is currently
    used on Freescale LS1028A QDS board, on which the physical MDIO MUX is
    controlled by an on-board FPGA which in turn is configured through I2C.

    Signed-off-by: Alex Marginean
    Acked-by: Joe Hershberger
    Reviewed-by: Bin Meng

    Alex Marginean
     
  • Using 'phy_connect' instead of 'phy_find_by_mask' and 'phy_connect_dev'
    both deduplicates code and adds support for 'fixed-link'.

    Signed-off-by: Simon Goldschmidt
    Acked-by: Joe Hershberger

    Simon Goldschmidt
     
  • SGMII 2500 as supported on NXP SoCs requires AN to be disabled, handle
    this case in the enetc sgmii init code.

    Signed-off-by: Alex Marginean
    Acked-by: Joe Hershberger

    Alex Marginean
     
  • Ethernet interfaces using serial protocols go through the serdes block
    integrated in the SoC. This is accessed over dedicated internal MDIOs
    which are part of the Ethernet PCI functions. Set up serdes at _start,
    along with other protocol specific port/MAC configuration.
    MDIO code is shared with enetc_mdio, read/write functions are exported
    from fsl_enetc_mdio for this reason.

    Signed-off-by: Alex Marginean
    Reviewed-by: Bin Meng
    Acked-by: Joe Hershberger

    Alex Marginean
     
  • Adds a driver for the MDIO interface currently integrated in LS1028A SoC.
    This MDIO interface is shared by multiple ethernet interfaces and is
    presented as a stand-alone PCI function on the SoC ECAM.
    Ethernet has a functional dependency on MDIO, for simplicity there is a
    single config option for both.

    Signed-off-by: Alex Marginean
    Reviewed-by: Bin Meng
    Acked-by: Joe Hershberger

    Alex Marginean
     
  • Adds a driver for NXP ENETC ethernet controller currently integrated in
    LS1028A. ENETC is a fairly straight-forward BD ring device and interfaces
    are presented as PCI EPs on the SoC ECAM.

    Signed-off-by: Catalin Horghidan
    Signed-off-by: Alex Marginean
    Reviewed-by: Bin Meng
    Acked-by: Joe Hershberger

    Alex Marginean
     

25 Jul, 2019

7 commits


24 Jul, 2019

1 commit


23 Jul, 2019

1 commit


22 Jul, 2019

6 commits