09 Dec, 2019

2 commits


19 Jul, 2019

1 commit

  • Adds a class for MDIO MUXes, which control access to a series of
    downstream child MDIOs.
    MDIO MUX drivers are required to implement a select function used to switch
    between child buses.
    MUX children are registered as MDIO buses and they can be used just like
    regular MDIOs.

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

    Alex Marginean
     

16 Jul, 2019

1 commit

  • Adds UCLASS_MDIO DM class supporting MDIO buses that are probed as
    stand-alone devices. Useful in particular for systems that support
    DM_ETH and have a stand-alone MDIO hardware block shared by multiple
    Ethernet interfaces.

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

    Alex Marginean
     

25 Oct, 2018

1 commit

  • In upcoming freescale board LX2160AQDS, the MDIO bus is muxed.
    i.e. same MDIO bus can be routed to eight different slots depending
    on mux register settings.

    To support this mdio mux behavior, we add each MDIO bus mux as a
    separate MDIO bus.

    Now, various phy devices can be attached to each of these slots(mux).
    The information about these devices is passed to OS via device tree.

    To do the fdt fixups related to MDIO bus, its necessary that MDIO bus
    list is accessed.Therefore, add a function to retrieve the list head.

    Signed-off-by: Pankaj Bansal
    Acked-by: Joe Hershberger

    Pankaj Bansal
     

07 May, 2018

1 commit

  • When U-Boot started using SPDX tags we were among the early adopters and
    there weren't a lot of other examples to borrow from. So we picked the
    area of the file that usually had a full license text and replaced it
    with an appropriate SPDX-License-Identifier: entry. Since then, the
    Linux Kernel has adopted SPDX tags and they place it as the very first
    line in a file (except where shebangs are used, then it's second line)
    and with slightly different comment styles than us.

    In part due to community overlap, in part due to better tag visibility
    and in part for other minor reasons, switch over to that style.

    This commit changes all instances where we have multiple licenses (in
    these cases, dual license) declared in the SPDX-License-Identifier tag.
    In this case we change from listing "LICENSE-A LICENSE-B" or "LICENSE-A
    or LICENSE-B" or "(LICENSE-A OR LICENSE-B)" to "LICENSE-A OR LICENSE-B"
    as per the Linux Kernel style document. Note that parenthesis are
    allowed so when they were used before we continue to use them.

    Reviewed-by: Fabio Estevam
    Signed-off-by: Tom Rini

    Tom Rini
     

20 Dec, 2016

1 commit

  • The most of ethernet drivers are using this mdio registration sequence.
    strcpy(priv->bus->name, "emac");
    mdio_register(priv->bus);
    Where driver can be used only with one MDIO bus because only unique
    name should be used.

    Other drivers are using unique device name for MDIO registration to
    support multiple instances.
    snprintf(priv->bus->name, sizeof(bus->name), "%s", name);

    With DM dev->seq is used more even in logs
    (like random MAC address generation:
    printf("\nWarning: %s (eth%d) using random MAC address - %pM\n",
    dev->name, dev->seq, pdata->enetaddr);
    )
    where eth%d prefix is used.

    Simplify driver code to register mdio device with dev->seq number
    to simplify mdio registration and reduce code duplication across
    all drivers. With DM_SEQ_ALIAS enabled dev->seq reflects alias setting.

    Signed-off-by: Michal Simek
    Acked-by: Joe Hershberger
    Reviewed-by: Simon Glass

    Michal Simek
     

09 Dec, 2016

1 commit


08 Dec, 2016

1 commit

  • The most of ethernet drivers are using this mdio registration sequence.
    strcpy(priv->bus->name, "emac");
    mdio_register(priv->bus);
    Where driver can be used only with one MDIO bus because only unique
    name should be used.

    Other drivers are using unique device name for MDIO registration to
    support multiple instances.
    snprintf(priv->bus->name, sizeof(bus->name), "%s", name);

    With DM dev->seq is used more even in logs
    (like random MAC address generation:
    printf("\nWarning: %s (eth%d) using random MAC address - %pM\n",
    dev->name, dev->seq, pdata->enetaddr);
    )
    where eth%d prefix is used.

    Simplify driver code to register mdio device with dev->seq number
    to simplify mdio registration and reduce code duplication across
    all drivers. With DM_SEQ_ALIAS enabled dev->seq reflects alias setting.

    Signed-off-by: Michal Simek
    ---
    For example:

    Board: Xilinx Zynq
    Net: ZYNQ GEM: e000b000, phyaddr 7, interface rgmii-id

    Warning: ethernet@e000b000 (eth0) using random MAC address -
    7a:fc:90:53:6a:41
    eth0: ethernet@e000b000ZYNQ GEM: e000c000, phyaddr ffffffff, interface
    rgmii-id

    Warning: ethernet@e000c000 (eth3) using random MAC address -
    1a:ff:d7:1a:a1:b2
    , eth3: ethernet@e000c000
    ** Bad device size - mmc 0 **
    Checking if uenvcmd is set ...
    Hit any key to stop autoboot: 0
    Zynq> mdio list
    eth0:
    17 - Marvell 88E1111S ethernet@e000b000
    eth3:
    17 - Marvell 88E1111S ethernet@e000c000
    Zynq>

    Michal Simek
     

16 Aug, 2016

2 commits


30 Oct, 2015

1 commit


20 Sep, 2013

1 commit

  • The SPDX License List version 1.19 now contains an official entry for
    the IBM-pibs license. However, instead of our suggestion "ibm-pibs",
    the SPDX License List uses "IBM-pibs", with the following rationale:
    "The reason being that all other SPDX License List short identifiers
    tend towards using capital letters unless spelling a word. I'd prefer
    to be consistent to this end".

    Change the license IDs to use the official name.

    Signed-off-by: Wolfgang Denk

    Wolfgang Denk
     

20 Aug, 2013

1 commit

  • This commit adapts the files that were derived from PIBS (PowerPC
    Initialization and Boot Software) codeto using SPDX License
    Identifiers.

    So far, SPDX has not assigned an official License ID for the PIBS
    license yet, so this should be considered preliminary.

    Note that the following files contained incorrect license information:

    arch/powerpc/cpu/ppc4xx/4xx_uart.c
    arch/powerpc/cpu/ppc4xx/start.S
    arch/powerpc/include/asm/ppc440.h

    These files included, in addition to the GPL-2.0 / ibm-pibs dual
    license as inherited from PIBS, a GPL-2.0+ license header which was
    obviously incorrect. This has been removed.

    Signed-off-by: Wolfgang Denk
    Cc: Stefan Roese
    Signed-off-by: Wolfgang Denk

    Conflicts:
    Licenses/README
    Acked-by: Stefan Roese

    Wolfgang Denk
     

19 Mar, 2012

1 commit

  • A few subsystems are using the same define "NAMESIZE". This has been
    working so far because they define it to the same number. However, I
    want to change the size of eth_device's NAMESIZE, so rather than tweak
    the define names, simply drop references to it. Almost no one does,
    and the handful that do can easily be changed to a sizeof().

    Signed-off-by: Mike Frysinger

    Mike Frysinger
     

07 Dec, 2011

2 commits

  • This reverts commit 5c45a22b9203351a32aec4600514341b91175542.

    It causes a lot of "incompatible pointer type" warnings for a large
    number of Ethernet drivers, which are not really worth fixing
    especially as this patch was only supposed to help the old,
    deprecated miiphy API. Instead of adding more efforts to a lost case
    we rather revert it.

    Signed-off-by: Wolfgang Denk

    Wolfgang Denk
     
  • This patch is added for PHY whose register offset value exceeds 0xFF and
    cannot be used with "unsigned char" datatype in miiphy_read, miiphy_write
    and miiphy_register functions. Datatype of register offset is changed to
    unsigned short instead of unsigned char so that offset value greater then
    0xFF can be used.

    Signed-off-by: Chandan Nath
    Acked-by: Mike Frysinger

    Chandan Nath
     

21 Apr, 2011

2 commits

  • Extends the mii_dev structure to participate in a full-blown MDIO and
    PHY driver scheme. The mii_dev structure and miiphy calls are modified
    in such a way to allow the original mii command and miiphy
    infrastructure to work as before, but also to support a new set of APIs
    which allow (among other things) sharing of PHY driver code and 10G support

    The mii command will continue to support normal PHY management functions
    (Clause 22 of 802.3), but will not be changed to support 10G
    (Clause 45).

    The basic design is similar to PHY Lib from Linux, but simplified for
    U-Boot's network and driver infrastructure.

    We now have MDIO drivers and PHY drivers

    An MDIO driver provides:
    read
    write
    reset

    A PHY driver provides:
    (optionally): probe
    config - initial setup, starting of auto-negotiation
    startup - waiting for AN, and reading link state
    shutdown - any cleanup needed

    The ethernet drivers interact with the PHY Lib using these functions:
    phy_connect()
    phy_config()
    phy_startup()
    phy_shutdown()

    Each PHY driver can be configured separately, or all at once using
    config_phylib_all_drivers.h (added in the patch which adds the drivers)

    We also provide generic drivers for Clause 22 (10/100/1000), and
    Clause 45 (10G) PHYs.

    We also implement phy_reset(), and call it in phy_connect(). Because
    phy_reset() is essentially the same as miiphy_reset, but:
    a) must support 10G PHYs, and
    b) should use the phylib primitives,

    we implement miiphy_reset, using phy_reset(), but only when
    CONFIG_PHYLIB is set. Otherwise, we just use the old version. In this
    way, we save on compile size, even if we don't manage to save code size.

    Pulled ethtool.h and mdio.h from:
    git://git.kernel.org/pub/scm/linux/kernel/git/davem/net-next-2.6
    782d640afd15af7a1faf01cfe566ca4ac511319d
    With many, many deletions so as to enable compilation under u-boot

    Signed-off-by: Andy Fleming
    Signed-off-by: Kumar Gala
    Acked-by: Detlev Zundel

    Andy Fleming
     
  • Mostly putting a space between function name and "(", and
    doing return (foo)

    Signed-off-by: Andy Fleming
    Acked-by: Detlev Zundel

    Andy Fleming
     

10 Jan, 2011

1 commit

  • The include/miiphy.h header duplicates a lot of things from linux/mii.h.
    So punt all the things that overlap to keep the API simple and to make
    merging between U-Boot and Linux simpler.

    Signed-off-by: Mike Frysinger

    Mike Frysinger
     

10 Aug, 2010

1 commit


11 Oct, 2009

1 commit

  • …y number of mii buses.

    This feature is useful when your board uses different mii buses for different
    phys and all (or a part) of these buses are implemented via bit-banging mode.

    The driver requires that the following macros should be defined into the board
    configuration file:

    CONFIG_BITBANGMII - Enable the miiphybb driver
    CONFIG_BITBANGMII_MULTI - Enable the multi bus support

    If the CONFIG_BITBANGMII_MULTI is not defined, the board's config file needs
    to define at least the following macros:

    MII_INIT - Generic code to enable the MII bus (optional)
    MDIO_DECLARE - Declaration needed to access to the MDIO pin (optional)
    MDIO_ACTIVE - Activate the MDIO pin as out pin
    MDIO_TRISTATE - Activate the MDIO pin as input/tristate pin
    MDIO_READ - Read the MDIO pin
    MDIO(v) - Write v on the MDIO pin
    MDC_DECLARE - Declaration needed to access to the MDC pin (optional)
    MDC(v) - Write v on the MDC pin

    The previous macros make the driver compatible with the previous version
    (that didn't support the multi-bus).

    When the CONFIG_BITBANGMII_MULTI is also defined, the board code needs to fill
    the bb_miiphy_buses[] array with a record for each required bus and declare
    the bb_miiphy_buses_num variable with the number of mii buses.
    The record (struct bb_miiphy_bus) has the following fields/callbacks (see
    miiphy.h for details):

    char name[] - The symbolic name that must be equal to the MII bus
    registered name
    int (*init)() - Initialization function called at startup time (just
    before the Ethernet initialization)
    int (*mdio_active)() - Activate the MDIO pin as output
    int (*mdio_tristate)() - Activate the MDIO pin as input/tristate pin
    int (*set_mdio)() - Write the MDIO pin
    int (*get_mdio)() - Read the MDIO pin
    int (*set_mdc)() - Write the MDC pin
    int (*delay)() - Delay function
    void *priv - Private data used by board specific code

    The board code will look like:

    struct bb_miiphy_bus bb_miiphy_buses[] = {
    { .name = miibus#1, .init = b1_init, .mdio_active = b1_mdio_active, ... },
    { .name = miibus#2, .init = b2_init, .mdio_active = b2_mdio_active, ... },
    ...
    int bb_miiphy_buses_num = sizeof(bb_miiphy_buses) /
    sizeof(bb_miiphy_buses[0]);

    Signed-off-by: Luigi 'Comio' Mantellini <luigi.mantellini@idf-hit.com>
    Signed-off-by: Ben Warren <biggerbadderben@gmail.com>

    Luigi 'Comio' Mantellini
     

10 Aug, 2009

1 commit

  • It was brought to our attention that U-Boot contains code derived from the
    IBM OpenBIOS source code originally provided with some of the older PowerPC
    4xx development boards. As a result, the original license of this code has
    been carried in the various files for a number of years in the U-Boot project.

    IBM is dual-licensing the IBM code contributions already present in U-Boot
    under either the terms of the GNU General Public License version 2, or the
    original code license already present.

    Signed-off-by: Josh Boyer

    Josh Boyer
     

19 Oct, 2008

1 commit


06 Nov, 2007

2 commits


01 Dec, 2005

1 commit


29 Oct, 2005

1 commit


25 Apr, 2004

1 commit

  • Use U-boot's miiphy.h for PHY register names, rather than
    introducing a new header file.

    * Update pci_ids.h from linux-2.4.26

    * Patch by Masami Komiya, 19 Apr 2004:
    Fix problem cause by VLAN function on little endian architecture
    without VLAN environment

    wdenk
     

15 Mar, 2004

1 commit

  • - Fix Gigabit Ethernet support for 440GX
    - Add Gigabit Ethernet Support to MII PHY utilities

    * Patch by Brad Kemp, 12 Mar 2004:
    Fixes for drivers/cfi_flash.c:
    - Better support for x8/x16 implementations
    - Added failure for AMD chips attempting to use CFG_FLASH_USE_BUFFER_WRITE
    - Added defines for AMD command and address constants

    * Patch by Leon Kukovec, 12 Mar 2004:
    Fix get_dentfromdir() to correctly handle deleted dentries

    * Patch by George G. Davis, 11 Mar 2004:
    Remove hard coded network settings in TI OMAP1610 H2
    default board config

    * Patch by George G. Davis, 11 Mar 2004:
    add support for ADS GraphicsClient+ board.

    wdenk
     

09 Oct, 2003

1 commit

  • fix pll_pci_to_mem_multiplier table for MPC8245

    * Patch by Anders Larsen, 22 Sep 2003:
    enable timed autoboot on PXA

    * Patch by David Müller, 22 Sep 2003:

    - add $(CFLAGS) to "-print-libgcc-filename" so compiler driver
    returns correct libgcc file path
    - "latency" reduction of busy-loop waiting to improve "U-Boot" boot
    time on s3c24x0 systems

    * Patch by Jon Diekema, 19 Sep 2003:
    - Add CFG_FAULT_ECHO_LINK_DOWN option to echo the inverted Ethernet
    link state to the fault LED.
    - In NetLoop, make the Fault LED reflect the link status. The link
    status gets updated on entry, and on timeouts.

    wdenk
     

18 Sep, 2003

1 commit


28 Jun, 2003

1 commit

  • - remove trailing white space, trailing empty lines, C++ comments, etc.
    - split cmd_boot.c (separate cmd_bdinfo.c and cmd_load.c)

    * Patches by Kenneth Johansson, 25 Jun 2003:
    - major rework of command structure
    (work done mostly by Michal Cendrowski and Joakim Kristiansen)

    wdenk
     

09 Oct, 2001

1 commit