15 Nov, 2016

7 commits

  • Make sure that the cache flushes correctly by ensuring that the end
    address is correctly aligned.

    Signed-off-by: Simon Glass
    Signed-off-by: Alexander Graf

    Simon Glass
     
  • There is a build warning for three x86 boards since
    write_smbios_table_wrapper() is not used. Fix it.

    Fixes: e824cf3f (smbios: Allow compilation on 64bit systems)
    Signed-off-by: Simon Glass
    Signed-off-by: Alexander Graf

    Simon Glass
     
  • Add support for EFI console modes.
    Mode 0 is always 80x25 and present by EFI specification.
    Mode 1 is always 80x50 and not mandatory.
    Mode 2 and above is freely usable.

    If the terminal can handle mode 1, we mark it as supported.
    If the terminal size is greater than mode 0 and different than mode 1,
    we install it as mode 2.

    Modes can be switch with cout_set_mode.

    Changes in V5:
    Correctly detect mode before enabling mode 2.

    Changes in V4:
    Reset cursor positon on mode switch
    Use local variables in console query code

    Changes in V3:
    Valid mode are 0 to EFIMode-1
    Fix style

    Changes in V2:
    Add mode switch
    Report only the modes that we support

    Signed-off-by: Emmanuel Vadot
    Signed-off-by: Alexander Graf

    Emmanuel Vadot
     
  • When adding network interface node use Messaging device path with
    subtype MAC Address and device's MAC address as a value instead
    of Media Device path type with subtype File Path and path "Net"

    Signed-off-by: Oleksandr Tymoshenko
    Signed-off-by: Alexander Graf

    Oleksandr Tymoshenko
     
  • This line is shown as

    depends on (ARM64 ||\302\240ARM) && OF_LIBFDT

    on my Emacs. Use ASCII characters only.

    Assuming it is (ARM64 || ARM), remove the redundancy.
    Unlike Linux, CONFIG_ARM includes CONFIG_ARM64 in U-Boot.

    Signed-off-by: Masahiro Yamada
    Signed-off-by: Alexander Graf

    Masahiro Yamada
     
  • Signed-off-by: Tom Rini

    Tom Rini
     
  • Ian has not had any time for sunxi for some time now and I'm
    in the same situation now, so I'm stepping down as sunxi
    custodian and marking the sunxi support as Orphan.

    Cc: Maxime Ripard
    Cc: Chen-Yu Tsai
    Cc: Ian Campbell
    Signed-off-by: Hans de Goede
    Acked-by: Ian Campbell

    Hans de Goede
     

14 Nov, 2016

15 commits

  • Compiling the 'bmp' command with DM and having one of the following macros
    enabled:

    CONFIG_BMP_16BPP, CONFIG_BMP_24BPP ONFIG_BMP_32BPP

    generates this error:

    drivers/video/video_bmp.c: In function ‘video_bmp_display’:
    drivers/video/video_bmp.c:315:22: error: ‘lcd_line_length’ undeclared (first use in this function)
    fb -= width * 2 + lcd_line_length;
    ^

    This patch moves to using the correct variable instead and enables the
    'bmp' command for DM again.

    Signed-off-by: Stefan Roese
    Cc: Simon Glass
    Cc: Anatolij Gustschin

    Stefan Roese
     
  • If mac-address is changed using "setenv ethaddr ...." command the new
    mac-adress also must be written into the responsible ethernet driver.
    This fixes the legacy ethernet handling.

    Signed-off-by: Marek Vasut
    Cc: Hannes Schmelzer
    Cc: Joe Hershberger
    Cc: Tom Rini
    Reviewed-by: Hannes Schmelzer

    Marek Vasut
     
  • Fix the divider calculation logic to choose a value so that the
    resulting baudrate is either equal to or closest possible baudrate less
    than the requested value. While at that, cleanup ti_spi_set_speed().

    Signed-off-by: Vignesh R
    Reviewed-by: Jagan Teki

    Vignesh R
     
  • Update the spi-max-frequency property of m25p80 flash slave to match
    that of TI QSPI controller node, so that QSPI operations happen at
    maximum supported frequency of 76.8MHz.

    Signed-off-by: Vignesh R
    Reviewed-by: Jagan Teki

    Vignesh R
     
  • Only a certain set of PLLM/D values are recommended to configure the DDR
    at the required speeds for a given clock input frequency. Updating these
    values as specified in Data Sheet[1] Table 5-18

    [1] http://www.ti.com/lit/ds/symlink/66ak2g02.pdf

    Signed-off-by: Lokesh Vutla
    Reviewed-by: Tom Rini

    Lokesh Vutla
     
  • Update the PLL initialization sequence to avoid glitches while
    programming. User guide for the same is available at[1].

    [1] http://www.ti.com/lit/ug/sprugv2h/sprugv2h.pdf

    Signed-off-by: Lokesh Vutla
    Reviewed-by: Tom Rini

    Lokesh Vutla
     
  • While we setup the mmu initially we mark set_section_dcache with
    DCACHE_OFF flag. In case of non-LPAE mode the DCACHE_OFF macro
    is rightly defined with TTB_SECT_XN_MASK set so as to mark all the
    4GB XN. In case of LPAE mode XN(Execute-never) bit is not set with
    DCACHE_OFF. Hence XN bit is not set by default for DCACHE_OFF which
    keeps all the regions execute okay and this leads to random speculative
    fetches in random memory regions which was eventually caught by kernel
    omap-l3-noc driver.

    Fix this to mark the regions as XN by default.

    Signed-off-by: Keerthy
    Reviewed-by: Alexander Graf
    Reviewed-by: Tom Rini

    Keerthy
     
  • Printing the option value in hex makes it more comprehensible.

    Signed-off-by: Keerthy
    Reviewed-by: Tom Rini

    Keerthy
     
  • Add a README file to help users getting started with the board.

    Signed-off-by: Diego Dorta
    Reviewed-by: Fabio Estevam
    Reviewed-by: Peng Fan
    Reviewed-by: Jagan Teki

    Diego Dorta
     
  • If the MAC address specified on the EEPROM is invalid (multicast or
    zero address), then u-boot fails to boot. Having a bad MAC address
    in the EEPROM should not prevent the system from booting.

    This commit changes the error path to just print an error messages
    in case of bad MAC address.

    Signed-off-by: Fabien Parent
    Reviewed-by: Tom Rini

    Fabien Parent
     
  • In most cases, the SPL and u-boot.img will be on the same boot media.
    Since the SPL was loaded by the boot rom, the pinmux will already have
    been configured for this media. This, the board will still be able to
    boot successfully, or at least reach the u-boot console, where more
    recovery options are available.

    I've encountered this on a beaglebone black with a corrupted EEPROM.
    Removing this check allowed the board to boot successfully. I've also
    seen this on EVM-based boards with an unprogrammed EEPROM. On those
    boards, for some reason there were no UART messages. This made it look
    as if the SOC was dead.

    Remove the hang(), as it is not a fatal error. Also reformat the error
    message to be clearer as to the cause. The original message made it
    appear as if the wrong binary was being loaded.

    Signed-off-by: Alexandru Gagniuc
    Reviewed-by: Tom Rini

    Alex G
     
  • Tested on IGEPv2 with Micron MT29F4G16ABBDA3W and
    Hynix H27S4G6F2DKA-BM

    Signed-off-by: Ladislav Michl
    Reviewed-by: Javier Martinez Canillas
    Tested-by: Javier Martinez Canillas

    Ladislav Michl
     
  • Defconfigs should remain the same except CONFIG_SYS_EXTRA_OPTIONS.
    Drop NAND specific defconfig as flash type is runtime detected.

    Signed-off-by: Ladislav Michl
    Reviewed-by: Javier Martinez Canillas

    Ladislav Michl
     
  • As a single U-Boot binary can now run on various board modifications,
    drop CONFIG_DISPLAY_BOARDINFO as it prints flash memory information
    too early to give us chance to easily detect it. Also saves few bytes
    as a bonus.

    Signed-off-by: Ladislav Michl
    Reviewed-by: Javier Martinez Canillas
    Tested-by: Javier Martinez Canillas

    Ladislav Michl
     
  • Commit fed329aebe3a ("tools: add mksunxiboot to tools-all target") added
    mksunxiboot to the tools-all target, but used the CONFIG_SUNXI symbol
    to enable its build. Now commit aec9a0f19f64 ("sunxi: Rename CONFIG_SUNXI
    to CONFIG_ARCH_SUNXI"), merged before that, renamed that symbol, so that
    the first patch basically gets ineffective.
    Adjust the symbol name in tools/Makefile to make it build again.

    Reviewed-by: Hans de Goede
    Signed-off-by: Andre Przywara

    Andre Przywara
     

08 Nov, 2016

15 commits

  • Tom Rini
     
  • An SMC call is required for all cache-wide operations on Tegra186. This
    patch implements the two missing hooks now that U-Boot supports them, and
    fixes the mapping of "hook name" to SMC call code.

    Signed-off-by: Stephen Warren
    Signed-off-by: Tom Warren

    Stephen Warren
     
  • SoC-specific logic may be required for all forms of cache-wide
    operations; invalidate and flush of both dcache and icache (note that
    only 3 of the 4 possible combinations make sense, since the icache never
    contains dirty lines). This patch adds an optional hook for all
    implemented cache-wide operations, and renames the one existing hook to
    better represent exactly which operation it is implementing. A dummy
    no-op implementation of each hook is provided.

    Signed-off-by: Stephen Warren
    Reviewed-by: Simon Glass
    Signed-off-by: Tom Warren

    Stephen Warren
     
  • When performing a cache disable function, code must not access DRAM.
    That is because when the cache is disabled, it will be bypassed and all
    loads and stores will be serviced by RAM. This prevents accessing any
    dirty data in the cache. In turn, this means the stack cannot be
    used, since that is in RAM. To guarantee that code doesn't use RAM (and
    in particular the stack) __asm_flush_l3_cache() must be manually
    implemented in assembly, rather than implemented in C since the compiler
    won't know not to touch RAM.

    Signed-off-by: Stephen Warren
    Signed-off-by: Tom Warren

    Stephen Warren
     
  • nvtboot_boot_x0 is a 64-bit variable and hence must be 64-bit aligned.
    So far this has happened by accident! Fix the code so this is guaranteed.

    This fixes the following build error:
    ... relocation truncated to fit: R_AARCH64_LDST64_ABS_LO12_NC
    against symbol `nvtboot_boot_x0' ...

    Signed-off-by: Stephen Warren
    Signed-off-by: Tom Warren

    Stephen Warren
     
  • Tom Rini
     
  • Use random ethernet address if the ethernet address found
    is invalid, not zero and config for random address
    is defined.

    Signed-off-by: Siva Durga Prasad Paladugu
    Signed-off-by: Michal Simek
    Acked-by: Joe Hershberger

    Siva Durga Prasad Paladugu
     
  • Commit 5a49f17481bb ("net: mii: Use spatch to update miiphy_register")
    updated the mvgbe implementation of smi_reg_read/smi_reg_write. Prior to
    that change mvgbe_phy_read and mvgbe_phy_write where used as wrappers to
    satisfy the phylib APIs. Because these functions weren't updated in that
    commit build errors where triggered when CONFIG_PHYLIB was enabled.

    Fix these build errors by removing mvgbe_phy_read and mvgbe_phy_write
    and using smi_reg_read/smi_reg_write directly.

    Signed-off-by: Chris Packham
    Acked-by: Joe Hershberger

    Chris Packham
     
  • Like [1], reset the FLP burst timing for the KSZ9031 to the 16ms
    specified by the IEEE802.3 standard from the chip's default of 8ms.

    For more details, see the "Auto-Negotiation Timing" section of the
    KSZ9031RNX datasheet.

    [1] https://patchwork.kernel.org/patch/6558371/

    Signed-off-by: Ash Charles
    Acked-by: Joe Hershberger

    Ash Charles
     
  • Enable the Ethernet device in DT, provide board-specific configuration,
    and enable the driver in Kconfig.

    Signed-off-by: Stephen Warren
    Reviewed-by: Simon Glass
    Acked-by: Joe Hershberger

    Stephen Warren
     
  • Tegra186 includes a Synopsys DWC EQoS (Ethernet) device. Add this to the
    Tegra186 SoC DT so that boards can make use of it.

    Signed-off-by: Stephen Warren
    Reviewed-by: Simon Glass
    Acked-by: Joe Hershberger

    Stephen Warren
     
  • On Tegra186, the bootloader which runs before U-Boot passes the Ethernet
    MAC address to U-Boot using device tree. Extract this value and write it
    to the environment, so that the Ethernet uclass picks it up and uses it
    for the built-in Ethernet device.

    Signed-off-by: Stephen Warren
    Reviewed-by: Simon Glass
    Acked-by: Joe Hershberger

    Stephen Warren
     
  • Extend the Tegra186 implementation of board_late_init() to call a per-SoC
    "hook" function. This will allow SoC-specific (rather than Tegra-wide)
    functionality to be implemented without the core Tegra code needing to be
    aware of the details. While board186.c is currently only used for
    Tegra186, it should be applicable to any other future SoC, and perhaps its
    simple design could be back-ported to older SoCs in the future too.

    Signed-off-by: Stephen Warren
    Reviewed-by: Simon Glass
    Acked-by: Joe Hershberger

    Stephen Warren
     
  • This driver supports the Synopsys Designware Ethernet QoS (Quality of
    Service) a/k/a eqos IP block, which is a different design than the HW
    supported by the existing designware.c driver. The IP supports many
    options for bus type, clocking/reset structure, and feature list. This
    driver currently supports the specific configuration used in NVIDIA's
    Tegra186 chip, but should be extensible to other combinations quite
    easily, as explained in the source.

    Signed-off-by: Stephen Warren
    Reviewed-by: Simon Glass # V1
    Acked-by: Joe Hershberger

    Stephen Warren
     
  • The Synopsys DWC EQoS is a configurable Ethernet MAC/DMA IP block which
    supports multiple options for bus type, clocking and reset structure, and
    feature list.

    This patch imports the binding from the Linux kernel, including my V3
    patch to extend the binding to cover the Tegra186, which is applied for
    next-20160912. So far, my changes have been acked by Lars Persson, the
    original author of the binding.

    Signed-off-by: Stephen Warren
    Reviewed-by: Simon Glass
    Acked-by: Joe Hershberger

    Stephen Warren
     

06 Nov, 2016

3 commits

  • Since commit ce412b79e7255770 ("drivers: net: phy: atheros: add separate
    config for AR8031") ethernet does not work on mx6sabresd.

    This commit correctly assigns ar8031_config() as the configuration
    function for AR8031 in the same way as done in the Linux kernel.

    However, on wandboard design we need some additional configuration,
    such as enabling the 125 MHz AR8031 output that needs to be done
    in the board file.

    This also aligns with the same method that the kernel performs
    the AR8031 fixup in arch/arm/mach-imx/mach-imx6q.c.

    Signed-off-by: Fabio Estevam
    Acked-by: Joe Hershberger

    Fabio Estevam
     
  • Adds -i option that allows specifying a ramdisk file to be added to the
    FIT image when we are using the automatic FIT mode (no ITS file).

    This makes adding Depthcharge support to LAVA much more convenient, as
    no additional configuration files need to be kept around in the machine
    that dispatches jobs to the boards.

    Signed-off-by: Tomeu Vizoso
    Cc: Simon Glass
    Cc: Matt Hart
    Cc: Neil Williams
    Reviewed-by: Simon Glass

    Tomeu Vizoso
     
  • The way that we have things broken down currently allows for some
    combinations of vendor or CPU to not be built. To fix this, create a
    new catch-all job that excludes everything we've built elsewhere. For
    the sake of simplicity we are allowing for the possibility of some
    overlap between the vendor-based jobs and the CPU-based jobs. While
    we're in here, make a failed build provide the summary of failure.

    Signed-off-by: Tom Rini

    Tom Rini